LCOV - code coverage report
Current view: top level - tetra - bloechl.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 14 14 100.0 %
Date: 2024-05-15 04:28:08 Functions: 2 2 100.0 %

          Line data    Source code
       1             : MODULE m_bloechl
       2             : 
       3             :    IMPLICIT NONE
       4             : 
       5             :    PRIVATE
       6             :    PUBLIC :: bloechl
       7             : 
       8             :    CONTAINS
       9             : 
      10    23362560 :    PURE REAL FUNCTION bloechl(efermi,etetra,ind,vol,film)
      11             : 
      12             :       REAL,                INTENT(IN)     :: efermi
      13             :       REAL,                INTENT(IN)     :: etetra(:)
      14             :       INTEGER,             INTENT(IN)     :: ind
      15             :       REAL,                INTENT(IN)     :: vol
      16             :       LOGICAL,             INTENT(IN)     :: film
      17             : 
      18             :       REAL dos_ef
      19             : 
      20    23362560 :       bloechl = 0.0
      21    23362560 :       IF(.NOT. film) THEN
      22    23362560 :          dos_ef = dos_tetra(efermi,etetra,vol)
      23   116812800 :          bloechl = 1/40.0*dos_ef*sum(etetra-etetra(ind))
      24             :       ENDIF
      25             : 
      26    23362560 :    END FUNCTION bloechl
      27             : 
      28    23362560 :    PURE REAL FUNCTION dos_tetra(energy,etetra,vol)
      29             : 
      30             :       REAL,                INTENT(IN)     :: energy
      31             :       REAL,                INTENT(IN)     :: etetra(:)
      32             :       REAL,                INTENT(IN)     :: vol
      33             : 
      34    23362560 :       IF((energy.GT.etetra(4)).OR.(energy.LT.etetra(1))) THEN
      35             :          dos_tetra = 0.0
      36     1559088 :       ELSE IF(energy.GE.etetra(3)) THEN
      37             : 
      38      698384 :          dos_tetra = 3.0 * vol * (etetra(4)-energy)**2/((etetra(4)-etetra(1))*(etetra(4)-etetra(2))*(etetra(4)-etetra(3)))
      39             : 
      40      860704 :       ELSE IF(energy.GE.etetra(2)) THEN
      41             : 
      42             :          dos_tetra = vol * 3.0/((etetra(3)-etetra(1))*(etetra(4)-etetra(1))) * (etetra(2) - etetra(1) + 2*(energy - etetra(2)) &
      43      298864 :                -(etetra(3)-etetra(1)+etetra(4)-etetra(2)) * (energy-etetra(2))**2/((etetra(3)-etetra(2))*(etetra(4)-etetra(2)))) 
      44             : 
      45             :       ELSE IF(energy.GE.etetra(1)) THEN
      46             : 
      47      561840 :          dos_tetra = 3.0 * vol * (energy-etetra(1))**2/((etetra(2)-etetra(1))*(etetra(3)-etetra(1))*(etetra(4)-etetra(1)))
      48             : 
      49             :       END IF
      50             : 
      51    23362560 :    END FUNCTION dos_tetra
      52             : 
      53             : END MODULE m_bloechl

Generated by: LCOV version 1.14