LCOV - code coverage report
Current view: top level - eigen - rad_ovlp.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 0 17 0.0 %
Date: 2024-04-24 04:44:14 Functions: 0 1 0.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_radovlp
       8             :   CONTAINS
       9           0 :   SUBROUTINE rad_ovlp(atoms,usdus,input,hub1data,vr,epar, uun21,udn21,dun21,ddn21)
      10             :     !***********************************************************************
      11             :     ! calculates the overlap of the radial basis functions with different
      12             :     ! spin directions. These overlapp integrals are needed to calculate
      13             :     ! the contribution to the hamiltonian from the constant constraint
      14             :     ! B-field.
      15             :     !
      16             :     ! Philipp Kurz 2000-04
      17             :     !***********************************************************************
      18             : 
      19             :     USE m_int21
      20             :     USE m_radfun
      21             :     USE m_types
      22             :     IMPLICIT NONE
      23             :     TYPE(t_input),INTENT(IN)   :: input
      24             :     TYPE(t_atoms),INTENT(IN)   :: atoms
      25             :     TYPE(t_hub1data), INTENT(IN) :: hub1data
      26             :     TYPE(t_usdus),INTENT(INOUT):: usdus
      27             : 
      28             :     !     .. Array Arguments ..
      29             :     REAL,    INTENT  (IN):: epar(0:,:,:)!(0:atoms%lmaxd,atoms%ntype,input%jspins)
      30             :     REAL,    INTENT  (IN):: vr(:,0:,:,:)!(atoms%jmtd,0:sphhar%nlhd,atoms%ntype,input%jspins)
      31             :     REAL,    INTENT (OUT):: uun21(0:,:),udn21(0:,:)!(0:atoms%lmaxd,atoms%ntype)
      32             :     REAL,    INTENT (OUT):: dun21(0:,:),ddn21(0:,:)!(0:atoms%lmaxd,atoms%ntype)
      33             :     !     ..
      34             :     !     .. Local Scalars ..
      35             :     INTEGER itype,l,ispin,noded,nodeu,i
      36             :     REAL    wronk
      37             :     LOGICAL l_hia
      38             :     !     ..
      39             :     !     .. Local Arrays ..
      40           0 :     REAL :: f(atoms%jmtd,2,0:atoms%lmaxd,input%jspins)
      41           0 :     REAL :: g(atoms%jmtd,2,0:atoms%lmaxd,input%jspins)
      42           0 :     REAL :: vrTmp(atoms%jmtd)
      43             :     !     ..
      44           0 :     DO itype = 1,atoms%ntype
      45           0 :        DO l = 0,atoms%lmax(itype)
      46           0 :           l_hia=.FALSE.
      47           0 :           DO i = atoms%n_u+1, atoms%n_u+atoms%n_hia
      48           0 :              IF(atoms%lda_u(i)%atomType.EQ.itype.AND.atoms%lda_u(i)%l.EQ.l) THEN
      49           0 :                 l_hia=.TRUE.
      50             :              ENDIF
      51             :           ENDDO
      52           0 :           DO ispin = 1,input%jspins
      53             : 
      54             :              !In the case of a spin-polarized calculation with Hubbard 1 we want to treat 
      55             :              !the correlated orbitals with a non-spin-polarized basis
      56           0 :              IF(l_hia.AND.input%jspins.EQ.2 .AND. hub1data%l_performSpinavg) THEN
      57           0 :                 vrTmp = (vr(:,0,iType,1) + vr(:,0,iType,2))/2.0
      58             :              ELSE
      59           0 :                 vrTmp = vr(:,0,iType,ispin)
      60             :              ENDIF
      61             : 
      62             :              CALL radfun(l,iType,ispin,epar(l,iType,ispin),vrTmp,atoms,&
      63           0 :                  f(1,1,l,ispin),g(1,1,l,ispin),usdus,nodeu,noded,wronk)
      64             : 
      65             :           ENDDO
      66           0 :           CALL int_21(f,g,atoms,itype,l,uun21,udn21,dun21,ddn21)
      67             :        ENDDO
      68             :     ENDDO
      69             : 
      70           0 :   END SUBROUTINE rad_ovlp
      71             : END module
      72             : 

Generated by: LCOV version 1.14