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

            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 2.0-1