od_chirot.f 1.98 KB
 Gregor Michalicek committed Jun 29, 2016 1 2 3 4 5 6 ``````!-------------------------------------------------------------------------------- ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany ! This file is part of FLEUR and available as free software under the conditions ! of the MIT license as expressed in the LICENSE file in more detail. !-------------------------------------------------------------------------------- `````` Markus Betzinger committed Apr 26, 2016 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 `````` MODULE m_od_chirot CONTAINS SUBROUTINE od_chirot( > odi,ods,bmat,k, < kr,phas) **************************************************************** * perform symmetry operations of the cylindrical group * of symmetries on the reciprocal vector k, given in internal * coordinates * Y.Mokrousov **************************************************************** USE m_types, ONLY : od_inp, od_sym IMPLICIT NONE ! .. TYPE (od_inp), INTENT (IN) :: odi TYPE (od_sym), INTENT (IN) :: ods INTEGER, INTENT (IN) :: k(3) REAL, INTENT (IN) :: bmat(3,3) REAL, INTENT (OUT) :: kr(3,ods%nop) COMPLEX, INTENT (OUT) :: phas(ods%nop) ! .. ! .. Local Scalars .. INTEGER n,inv ! .. ! .. DO n = 1,ods%nop kr(1,n) = k(1)*ods%mrot(1,1,n) + + k(2)*ods%mrot(2,1,n) + + k(3)*ods%mrot(3,1,n) kr(2,n) = k(1)*ods%mrot(1,2,n) + + k(2)*ods%mrot(2,2,n) + + k(3)*ods%mrot(3,2,n) kr(3,n) = k(1)*ods%mrot(1,3,n) + + k(2)*ods%mrot(2,3,n) + + k(3)*ods%mrot(3,3,n) ENDDO IF (odi%chi.NE.1) THEN DO n = 1,ods%nop inv = ods%invtab(n) phas(n) = exp(cmplx(0.,bmat(3,3)*kr(3,n)*ods%tau(3,inv))) END DO ELSE DO n = 1,ods%nop phas(n) = cmplx(1.,0.) END DO END IF RETURN END SUBROUTINE od_chirot END MODULE m_od_chirot ``````