LCOV - code coverage report
Current view: top level - cdn - int_21.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 11 11 100.0 %
Date: 2024-04-26 04:44:34 Functions: 1 1 100.0 %

          Line data    Source code
       1             : MODULE m_int21
       2             :   !-----------------------------------------------------------
       3             :   !
       4             :   ! Integrates f(:,:,l,s) and g(:,:,l,s) (s=1,2) for given l
       5             :   ! and itype with different spins (s).
       6             :   ! Output is ..n21(l,itype), where .. is a (u,d) combination 
       7             :   ! dependet on the (f,g) combination used. 
       8             :   !
       9             :   !-----------------------------------------------------------
      10             : CONTAINS
      11             : 
      12         836 :   SUBROUTINE int_21(f,g,atoms,ityp,l,uu21n,ud21n,du21n,dd21n)
      13             :     
      14             :     USE m_intgr, ONLY : intgr3
      15             :     USE m_types_setup
      16             : 
      17             :     IMPLICIT NONE
      18             : 
      19             :     TYPE(t_atoms),            INTENT(IN)    :: atoms
      20             : 
      21             :     INTEGER, INTENT (IN) :: l,ityp
      22             : 
      23             :     REAL,    INTENT (IN) :: f(:,:,0:,:)!(atoms%jmtd,2,0:atoms%lmaxd,input%jspins)
      24             :     REAL,    INTENT (IN) :: g(:,:,0:,:)!(atoms%jmtd,2,0:atoms%lmaxd,input%jspins)
      25             :     REAL,    INTENT (INOUT) :: uu21n(0:atoms%lmaxd,atoms%ntype),ud21n(0:atoms%lmaxd,atoms%ntype)
      26             :     REAL,    INTENT (INOUT) :: du21n(0:atoms%lmaxd,atoms%ntype),dd21n(0:atoms%lmaxd,atoms%ntype)
      27             : 
      28         836 :     REAL        uu_tmp(atoms%jri(ityp))
      29             : 
      30             :     uu_tmp(:atoms%jri(ityp)) = f(:atoms%jri(ityp),1,l,2)*f(:atoms%jri(ityp),1,l,1)&
      31      635004 :          + f(:atoms%jri(ityp),2,l,2)*f(:atoms%jri(ityp),2,l,1)
      32         836 :     CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),uu21n(l,ityp))
      33             :     
      34             :     uu_tmp(:atoms%jri(ityp)) = f(:atoms%jri(ityp),1,l,2)*g(:atoms%jri(ityp),1,l,1)&
      35      635004 :          + f(:atoms%jri(ityp),2,l,2)*g(:atoms%jri(ityp),2,l,1)
      36         836 :     CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),ud21n(l,ityp))
      37             :     
      38             :     uu_tmp(:atoms%jri(ityp)) = g(:atoms%jri(ityp),1,l,2)*f(:atoms%jri(ityp),1,l,1)&
      39      635004 :          + g(:atoms%jri(ityp),2,l,2)*f(:atoms%jri(ityp),2,l,1)
      40         836 :     CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),du21n(l,ityp))
      41             :     
      42             :     uu_tmp(:atoms%jri(ityp)) = g(:atoms%jri(ityp),1,l,2)*g(:atoms%jri(ityp),1,l,1)&
      43      635004 :          + g(:atoms%jri(ityp),2,l,2)*g(:atoms%jri(ityp),2,l,1)
      44         836 :     CALL intgr3(uu_tmp,atoms%rmsh(:,ityp),atoms%dx(ityp),atoms%jri(ityp),dd21n(l,ityp))
      45             :     
      46         836 :   END SUBROUTINE int_21
      47             : 
      48             : END MODULE m_int21

Generated by: LCOV version 1.14