Line data Source code
1 : !--------------------------------------------------------------------------------
2 : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
3 : ! This file is part of FLEUR and available as free software under the conditions
4 : ! of the MIT license as expressed in the LICENSE file in more detail.
5 : !--------------------------------------------------------------------------------
6 :
7 : MODULE m_wann_abinv
8 : CONTAINS
9 40 : SUBROUTINE wann_abinv(atoms,sym,acof,bcof,ccof)
10 : ! ***************************************************************
11 : ! Transform acof,bcof,ccof in case of atoms related by inversion
12 : ! symmetry to obtain the coefficients in the global frame.
13 : ! Based on abcrot.
14 : ! Frank Freimuth
15 : ! ***************************************************************
16 : USE m_types
17 : IMPLICIT NONE
18 : ! ..
19 : ! .. Scalar Arguments ..
20 : TYPE(t_atoms),INTENT(IN) :: atoms
21 : TYPE(t_sym),INTENT(IN) :: sym
22 :
23 : COMPLEX, INTENT (INOUT) :: acof(:,0:,:)
24 : COMPLEX, INTENT (INOUT) :: bcof(:,0:,:)
25 : COMPLEX, INTENT (INOUT) :: ccof(-atoms%llod:,:,:,:)!(-llod:llod,neigd,nlod,natd)
26 :
27 : ! .. Local Scalars ..
28 : INTEGER :: itype,ineq,iatom,ilo,l
29 :
30 40 : iatom=0
31 80 : DO itype=1,atoms%ntype
32 160 : DO ineq=1,atoms%neq(itype)
33 80 : iatom=iatom+1
34 80 : IF(sym%invsat(iatom).NE.2) CYCLE
35 160 : DO l=1,atoms%lmax(itype),2
36 : acof(:,l**2:l*(l+2),iatom) = (-1)**l *&
37 7680 : acof(:,l**2:l*(l+2),iatom)
38 : bcof(:,l**2:l*(l+2),iatom) = (-1)**l * &
39 7720 : bcof(:,l**2:l*(l+2),iatom)
40 : ENDDO
41 80 : DO ilo=1,atoms%nlo(itype)
42 0 : l=atoms%llo(ilo,itype)
43 80 : IF(l.GT.0) THEN
44 0 : IF(MOD(l,2).EQ.0)CYCLE
45 : ccof(-l:l,:,ilo,iatom) = (-1)**l * &
46 0 : ccof(-l:l,:,ilo,iatom)
47 : ENDIF
48 : ENDDO
49 : ENDDO
50 : ENDDO
51 :
52 40 : END SUBROUTINE wann_abinv
53 : END MODULE m_wann_abinv
54 :
55 :
56 :
|