LCOV - code coverage report
Current view: top level - eigen - hsmt_lo.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 13 13 100.0 %
Date: 2019-09-08 04:53:50 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_hsmt_lo
       8             :   USE m_juDFT
       9             :   IMPLICIT NONE
      10             : CONTAINS
      11        4396 :   SUBROUTINE hsmt_lo(input,atoms,sym,cell,mpi,noco,lapw,ud,tlmplm,fj,gj,n,chi,isp,iintsp,jintsp,hmat,smat)
      12             :     USE m_hlomat
      13             :     USE m_slomat
      14             :     USE m_setabc1lo
      15             :     USE m_types
      16             :     IMPLICIT NONE
      17             :     TYPE(t_mpi),INTENT(IN)      :: mpi
      18             :     TYPE(t_input),INTENT(IN)    :: input
      19             :     TYPE(t_noco),INTENT(IN)     :: noco
      20             :     TYPE(t_sym),INTENT(IN)      :: sym
      21             :     TYPE(t_cell),INTENT(IN)     :: cell
      22             :     TYPE(t_atoms),INTENT(IN)    :: atoms
      23             :     TYPE(t_lapw),INTENT(IN)     :: lapw
      24             :     TYPE(t_usdus),INTENT(IN)    :: ud
      25             :     TYPE(t_tlmplm),INTENT(IN)   :: tlmplm
      26             :     
      27             :     CLASS(t_mat),INTENT(INOUT)::hmat,smat
      28             :     
      29             :     !     ..
      30             :     !     .. Scalar Arguments ..
      31             :     INTEGER,INTENT(IN)   :: n
      32             :     INTEGER, INTENT (IN) :: isp,iintsp,jintsp !spins
      33             :     COMPLEX, INTENT(IN)  :: chi
      34             :     
      35             :     !Arrays
      36             :     REAL,INTENT(IN)      :: fj(:,:,:),gj(:,:,:)
      37             :     !     ..
      38             :     !     .. Local Scalars ..
      39             :     INTEGER na,nn
      40             :     !     ..
      41             :     !     .. Local Arrays ..
      42        8792 :     REAL alo1(atoms%nlod),blo1(atoms%nlod),clo1(atoms%nlod)
      43        4396 :     CALL timestart("LO setup")
      44             :        
      45        4396 :     na = sum(atoms%neq(:n-1))
      46        9568 :     DO nn = 1,atoms%neq(n)
      47        5172 :        na = na + 1
      48        9568 :        IF ((atoms%invsat(na).EQ.0) .OR. (atoms%invsat(na).EQ.1)) THEN
      49             :           
      50             :           
      51        4404 :           IF (atoms%nlo(n).GE.1) THEN
      52             :              !--->          set up the a,b and c  coefficients
      53             :              !--->          for the local orbitals, if necessary.
      54             :              !--->          actually, these are the fj,gj equivalents
      55        1028 :              CALL setabc1lo(atoms,n,ud,isp, alo1,blo1,clo1) 
      56             :              
      57             :              !--->       add the local orbital contribution to the overlap and
      58             :              !--->       hamiltonian matrix, if they are used for this atom.
      59             :              
      60             :              CALL slomat(&
      61             :                   input,atoms,mpi,lapw,cell,noco,n,na,&
      62             :                   isp,ud, alo1,blo1,clo1,fj,gj,&
      63        1028 :                   iintsp,jintsp,chi,smat)
      64             :              CALL hlomat(input,atoms,mpi,lapw,ud,tlmplm,sym,cell,noco,isp,&
      65        1028 :                   n,na,fj,gj,alo1,blo1,clo1,iintsp,jintsp,chi,hmat)
      66             :           ENDIF
      67             :     END IF
      68             :     !--->    end loop over equivalent atoms
      69             :  END DO
      70        4396 :  CALL timestop("LO setup")
      71             :    
      72        4396 :  RETURN
      73             : END SUBROUTINE hsmt_lo
      74             : END MODULE m_hsmt_lo

Generated by: LCOV version 1.13