LCOV - code coverage report
Current view: top level - wannier - wann_abinv.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 12 15 80.0 %
Date: 2024-04-24 04:44:14 Functions: 1 1 100.0 %

          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             :     

Generated by: LCOV version 1.14