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

          Line data    Source code
       1             :       MODULE m_dosef
       2             : c     
       3             : c---  >    obtain dos at ei (here: ef)
       4             : c     
       5             :       CONTAINS
       6           0 :       SUBROUTINE dosef(
       7           0 :      >     ei,nemax,jspins,sfac,ntria,itria,atr,eig)
       8             : c     
       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             : C     ..
      17             : C     .. Array Arguments ..
      18             :       INTEGER, INTENT (IN) :: nemax(2)
      19             :       INTEGER, INTENT (IN) :: itria(:,:) !(3,ntriad)
      20             :       REAL,    INTENT (IN) :: atr(:) !(ntriad)
      21             :       REAL,    INTENT (IN) :: eig(:,:,:) !(neigd,nkptd,jspd)
      22             : C     ..
      23             : C     .. Local Scalars ..
      24             :       REAL e1,e2,e21,e3,e31,e32,s
      25             :       INTEGER i,jsp,k1,k2,k3,n,neig
      26           0 :       DO  jsp = 1,jspins
      27           0 :          neig = nemax(jsp)
      28           0 :          s = 0.0
      29           0 :          DO i = 1,neig
      30           0 :             DO  n = 1,ntria
      31           0 :                k1 = itria(1,n)
      32           0 :                k2 = itria(2,n)
      33           0 :                k3 = itria(3,n)
      34           0 :                e1 = eig(i,k1,jsp)
      35           0 :                e2 = eig(i,k2,jsp)
      36           0 :                e3 = eig(i,k3,jsp)
      37           0 :                CALL trisrt(e1,e2,e3,k1,k2,k3)
      38           0 :                IF (e1.LE.-9999.0) cycle
      39           0 :                IF ((ei.LT.e1) .OR. (ei.GE.e3)) cycle
      40           0 :                IF (ei.GT.e2) THEN 
      41             : c---  >    e2<ei<e3
      42           0 :                    e31 = e3 - e1
      43           0 :                    e32 = e3 - e2
      44           0 :                    s = s + 2.*atr(n)* (e3-ei)/ (e31*e32)
      45             :               ELSE
      46             : c---  >    e1<ei<e2
      47           0 :                    e31 = e3 - e1
      48           0 :                   e21 = e2 - e1
      49           0 :                   s = s + 2.*atr(n)* (ei-e1)/ (e31*e21)
      50             :               ENDIF
      51             :             ENDDO
      52             :          ENDDO
      53             : !     gb         s = (2./jspins)*s
      54           0 :          s = sfac * s
      55           0 :          WRITE (6,FMT=8000) ei,jsp,s
      56             :       ENDDO
      57             : 
      58             :  8000 FORMAT (/,10x,'density of states at',f12.6,' har for spin',i2,'=',
      59             :      +     e20.8,' states/har')
      60             : 
      61           0 :       END SUBROUTINE dosef
      62             :       END MODULE m_dosef

Generated by: LCOV version 1.13