LCOV - code coverage report
Current view: top level - fermi - dosint.f (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 29 0.0 %
Date: 2019-09-08 04:53:50 Functions: 0 1 0.0 %

          Line data    Source code
       1             :       MODULE m_dosint
       2             : c
       3             : c     integrated dos to ei
       4             : c
       5             :       CONTAINS
       6           0 :       SUBROUTINE dosint(
       7           0 :      >                  ei,nemax,jspins,sfac,ntria,itria,atr,eig,
       8             :      <                  ct)
       9             :       USE m_trisrt
      10             :       IMPLICIT NONE
      11             : C     ..
      12             : C     .. Scalar Arguments ..
      13             :       INTEGER, INTENT (IN) :: jspins
      14             :       INTEGER, INTENT (IN) :: ntria
      15             :       REAL,    INTENT (IN) :: ei,sfac
      16             :       REAL,    INTENT (OUT):: ct
      17             : C     ..
      18             : C     .. Array Arguments ..
      19             :       INTEGER, INTENT (IN) :: nemax(2)
      20             :       INTEGER, INTENT (IN) :: itria(:,:)    !(3,ntriad)
      21             :       REAL,    INTENT (IN) :: atr(:)        !(ntriad)
      22             :       REAL,    INTENT (IN) :: eig(:,:,:)    !(neigd,nkptd,jspd)
      23             : C     ..
      24             : C     .. Local Scalars ..
      25             :       INTEGER jsp,i,n
      26             :       INTEGER k1,k2,k3
      27             :       INTEGER neig
      28             :       REAL    e1,e2,e3
      29             :       REAl    ee,e32,e31,e21,s
      30             : c
      31           0 :       s = 0.0
      32           0 :       DO  jsp = 1,jspins
      33           0 :          neig = nemax(jsp)
      34           0 :          DO  i = 1,neig
      35           0 :             DO  n = 1,ntria
      36           0 :                k1 = itria(1,n)
      37           0 :                k2 = itria(2,n)
      38           0 :                k3 = itria(3,n)
      39           0 :                e1 = eig(i,k1,jsp)
      40           0 :                e2 = eig(i,k2,jsp)
      41           0 :                e3 = eig(i,k3,jsp)
      42           0 :                CALL trisrt(e1,e2,e3,k1,k2,k3)
      43           0 :                IF (e1.LE.-9999.0) CYCLE
      44           0 :                IF (ei.LE.e1) CYCLE
      45           0 :                IF (ei.GE.e3) THEN
      46           0 :                  s = s + atr(n)
      47           0 :                ELSEIF (ei.GT.e2) THEN
      48           0 :                  e31 = e3 - e1
      49           0 :                  e32 = e3 - e2
      50           0 :                  ee = e3 - ei
      51           0 :                  s = s + atr(n)* (1.-ee*ee/ (e31*e32))  
      52             :                ELSE
      53           0 :                  e21 = e2 - e1
      54           0 :                  e31 = e3 - e1
      55           0 :                  ee = ei - e1
      56           0 :                  s = s + atr(n)*ee*ee/ (e21*e31)
      57             :                ENDIF
      58             :             ENDDO
      59             :          ENDDO
      60             :       ENDDO
      61             : cjr      ct=2.*s
      62             : !gb      ct = (2./jspins)*s
      63           0 :       ct = sfac * s
      64             : 
      65           0 :       END SUBROUTINE dosint
      66             :       END MODULE m_dosint

Generated by: LCOV version 1.13