LCOV - code coverage report
Current view: top level - propcalc/dos - dostetra.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 0 17 0.0 %
Date: 2024-05-15 04:28:08 Functions: 0 1 0.0 %

          Line data    Source code
       1             : MODULE m_dostetra
       2             : 
       3             :    USE m_types_kpts
       4             :    USE m_types_input
       5             :    USE m_tetrahedronInit
       6             : 
       7             :    IMPLICIT NONE
       8             : 
       9             :    CONTAINS
      10             : 
      11           0 :    SUBROUTINE dostetra(kpts,input,eMesh,eig,qal,g,energyShift)
      12             : 
      13             :       TYPE(t_kpts),        INTENT(IN)     :: kpts
      14             :       TYPE(t_input),       INTENT(IN)     :: input
      15             :       REAL,                INTENT(IN)     :: eMesh(:)
      16             :       REAL,                INTENT(IN)     :: eig(:,:,:)
      17             :       REAL,                INTENT(IN)     :: qal(:,:,:)
      18             :       REAL,                INTENT(INOUT)  :: g(:,:)
      19             :       REAL, OPTIONAL,      INTENT(IN)     :: energyShift
      20             : 
      21           0 :       INTEGER :: ikpt,iBand,ie,ispin,neig(kpts%nkpt)
      22           0 :       REAL    :: w(size(eMesh),size(qal,1))
      23             :       REAL    :: shift
      24           0 :       REAL, ALLOCATABLE :: eig_shifted(:,:,:)
      25             : 
      26           0 :       shift = 0.0
      27           0 :       IF(PRESENT(energyShift)) shift = energyShift
      28             : 
      29           0 :       eig_shifted = eig - shift
      30             : 
      31           0 :       g = 0.0
      32           0 :       DO ispin = 1, size(qal,3)
      33           0 :          DO ikpt = 1, kpts%nkpt
      34           0 :             neig=count(eig(:,ikpt,ispin)<1E99)
      35             :          ENDDO
      36           0 :          DO ikpt = 1, kpts%nkpt
      37             :             !------------------------------------------------------
      38             :             ! Calculate the weights for the DOS on the energy Grid
      39             :             !------------------------------------------------------
      40             :             CALL tetrahedronInit(kpts,input,ikpt,eig_shifted(:,:,ispin),MINVAL(neig),eMesh,&
      41           0 :                                  w,dos=.TRUE.)
      42           0 :             DO iBand = 1, neig(ikpt)
      43           0 :                DO ie = 1, SIZE(eMesh)
      44           0 :                   g(ie,ispin) = g(ie,ispin) + w(ie,iBand) * 2.0/input%jspins * qal(iBand,ikpt,ispin)
      45             :                ENDDO
      46             :             ENDDO
      47             :          ENDDO
      48             :       ENDDO
      49             : 
      50           0 :    END SUBROUTINE dostetra
      51             : END MODULE m_dostetra

Generated by: LCOV version 1.14