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

          Line data    Source code
       1             :       MODULE m_doswt
       2             : c
       3             : c     calculates the weights for each k-point for integrating functions
       4             : c     of k.  the array w has beeen cleared before entering.
       5             : c
       6             :       CONTAINS
       7           0 :       SUBROUTINE doswt(
       8           0 :      >                 ei,nemax,jspins,ntria,itria,atr,eig,
       9           0 :      <                 w)
      10             :       USE m_trisrt
      11             :       IMPLICIT NONE
      12             : C     ..
      13             : C     .. Scalar Arguments ..
      14             :       INTEGER, INTENT (IN) :: jspins
      15             :       INTEGER, INTENT (IN) :: ntria
      16             :       REAL,    INTENT (IN) :: ei
      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             :       REAL,    INTENT (OUT):: w(:,:,:)        !(neigd,nkptd,jspd)
      24             : C     ..
      25             : C     .. Local Scalars ..
      26             :       INTEGER jsp,i,n
      27             :       INTEGER k1,k2,k3
      28             :       INTEGER neig
      29             :       REAL    e1,e2,e3
      30             :       REAl    ee,e32,e31,e21,s
      31             : 
      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             : c--->    e3<e
      47           0 :                     s = atr(n)/3.
      48           0 :                     w(i,k1,jsp) = w(i,k1,jsp) + s
      49           0 :                     w(i,k2,jsp) = w(i,k2,jsp) + s
      50           0 :                     w(i,k3,jsp) = w(i,k3,jsp) + s         
      51           0 :                ELSEIF (ei.GT.e2) THEN
      52             : c--->    e2<ei<e3
      53           0 :                     ee = e3 - ei
      54           0 :                     e31 = ee/ (e3-e1)
      55           0 :                     e32 = ee/ (e3-e2)
      56           0 :                     s = atr(n)/3.
      57           0 :                     w(i,k1,jsp) = w(i,k1,jsp) + s* (1.-e31*e31*e32)
      58           0 :                     w(i,k2,jsp) = w(i,k2,jsp) + s* (1.-e31*e32*e32)
      59           0 :                     w(i,k3,jsp) =w(i,k3,jsp)+s*(1.-e31*e32*(3.-e31-e32))
      60             :                ELSE
      61             : c--->    e1<ei<e2
      62           0 :                     ee = ei - e1
      63           0 :                    e31 = ee/ (e3-e1)
      64           0 :                    e21 = ee/ (e2-e1)
      65           0 :                    s = atr(n)*e31*e21/3.0
      66           0 :                    w(i,k1,jsp) = w(i,k1,jsp) + s* (3.0-e21-e31)
      67           0 :                    w(i,k2,jsp) = w(i,k2,jsp) + s*e21
      68           0 :                    w(i,k3,jsp) = w(i,k3,jsp) + s*e31
      69             :                ENDIF
      70             : 
      71             :             ENDDO
      72             :          ENDDO
      73             :       ENDDO
      74             : 
      75           0 :       END SUBROUTINE doswt
      76             :       END MODULE m_doswt

Generated by: LCOV version 1.13