LCOV - code coverage report
Current view: top level - math - LattHarmsSphHarmsConv.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 24 24 100.0 %
Date: 2024-04-27 04:44:07 Functions: 2 2 100.0 %

          Line data    Source code
       1             : MODULE m_lattHarmsSphHarmsConv
       2             : 
       3             :    USE m_types
       4             : 
       5             : CONTAINS
       6             : 
       7         254 :    SUBROUTINE lattHarmsRepToSphHarms(sym, atoms, lattHarms, iType, funcLattHarms, funcSphHarms)
       8             : 
       9             :       IMPLICIT NONE
      10             : 
      11             :       TYPE(t_sym),    INTENT(IN)    :: sym
      12             :       TYPE(t_atoms),  INTENT(IN)    :: atoms
      13             :       TYPE(t_sphhar), INTENT(IN)    :: lattHarms
      14             :       INTEGER,        INTENT(IN)    :: iType
      15             :       REAL,           INTENT(IN)    :: funcLattHarms(:,0:) ! (iR,iLH)
      16             :       COMPLEX,        INTENT(INOUT) :: funcSphHarms(:,:) ! (iR,lm)
      17             : 
      18             :       INTEGER :: iAtom, iLH, ns, l, iM, m, lm, iR
      19             : 
      20         254 :       iAtom = atoms%firstAtom(iType)
      21         254 :       ns = sym%ntypsy(iAtom)
      22             : 
      23    15202888 :       funcSphHarms = CMPLX(0.0,0.0)
      24             : 
      25       19576 :       DO iLH = 0, lattHarms%nlh(ns)
      26       19322 :          l = lattHarms%llh(iLH,ns)
      27       56118 :          DO iM = 1, lattHarms%nmem(iLH,ns)
      28       36542 :             m = lattHarms%mlh(iM,iLH,ns)
      29       36542 :             lm = l*(l+1) + m + 1
      30    26125364 :             DO iR = 1, atoms%jri(iType)
      31    26106042 :                funcSphHarms(iR,lm) = funcSphHarms(iR,lm) + funcLattHarms(iR,iLH) * lattHarms%clnu(iM,iLH,ns)
      32             :             END DO
      33             :          END DO
      34             :       END DO
      35             : 
      36         254 :    END SUBROUTINE lattHarmsRepToSphHarms
      37             : 
      38          86 : SUBROUTINE sphHarmsRepToLattHarms(sym, atoms, lattHarms, iType, funcSphHarms, funcLattHarms)
      39             : 
      40             :    IMPLICIT NONE
      41             : 
      42             :       TYPE(t_sym),    INTENT(IN)    :: sym
      43             :       TYPE(t_atoms),  INTENT(IN)    :: atoms
      44             :       TYPE(t_sphhar), INTENT(IN)    :: lattHarms
      45             :       INTEGER,        INTENT(IN)    :: iType
      46             :       COMPLEX,        INTENT(IN)    :: funcSphHarms(:,:) ! (iR,lm)
      47             :       REAL,           INTENT(INOUT) :: funcLattHarms(:,0:) ! (iR,iLH)
      48             : 
      49             :       INTEGER :: iAtom, iLH, ns, l, iM, m, lm, iR
      50             : 
      51          86 :       iAtom = atoms%firstAtom(iType)
      52          86 :       ns = sym%ntypsy(iAtom)
      53             : 
      54     4972676 :       funcLattHarms = 0.0
      55             : 
      56        7052 :       DO iLH = 0, lattHarms%nlh(ns)
      57        6966 :          l = lattHarms%llh(iLH,ns)
      58       20210 :          DO iM = 1, lattHarms%nmem(iLH,ns)
      59       13158 :             m = lattHarms%mlh(iM,iLH,ns)
      60       13158 :             lm = l*(l+1) + m + 1
      61     9399636 :             DO iR = 1, atoms%jri(iType)
      62     9392670 :                funcLattHarms(iR,iLH) = funcLattHarms(iR,iLH) + REAL(funcSphHarms(iR,lm) * CONJG(lattHarms%clnu(iM,iLH,ns)))
      63             :             END DO
      64             :          END DO
      65             :       END DO
      66             : 
      67          86 :    END SUBROUTINE sphHarmsRepToLattHarms
      68             : 
      69             : END MODULE m_lattHarmsSphHarmsConv

Generated by: LCOV version 1.14