Commit 3fbad4c3 authored by Matthias Redies's avatar Matthias Redies

moved final file xch91

parent 8cc55f94
......@@ -24,10 +24,7 @@ xc-pot/xcpz.f90
xc-pot/xcvwn.f90
xc-pot/xcwgn.f90
xc-pot/xcxal.f90
)
set(fleur_F77 ${fleur_F77}
xc-pot/xch91.F
xc-pot/xch91.f90
)
set(inpgen_F90 ${inpgen_F90}
......@@ -51,10 +48,5 @@ xc-pot/xcpz.f90
xc-pot/xcvwn.f90
xc-pot/xcwgn.f90
xc-pot/xcxal.f90
xc-pot/xch91.f90
)
set(inpgen_F77 ${inpgen_F77}
xc-pot/xch91.F
)
MODULE m_xch91
c.....-----------------------------------------------------------------
c gga91 exchange for a spin-unpolarized electronic system
c.....-----------------------------------------------------------------
c input d: density
c s: abs(grad d)/(2*kf*d)
c u: (grad d)*grad(abs(grad d))/(d**2 * (2*kf)**3)
c v: (laplacian d)/(d*(2*kf)**2)
c output: exchange energy (ex) and potential (vx) in ry.
MODULE m_xch91
!.....-----------------------------------------------------------------
! gga91 exchange for a spin-unpolarized electronic system
!.....-----------------------------------------------------------------
! input d: density
! s: abs(grad d)/(2*kf*d)
! u: (grad d)*grad(abs(grad d))/(d**2 * (2*kf)**3)
! v: (laplacian d)/(d*(2*kf)**2)
! output: exchange energy (ex) and potential (vx) in ry.
c kf=cbrt(3*pai**2*d).
c.....-----------------------------------------------------------------
CONTAINS
SUBROUTINE xch91(
> d,s,u,v,
< exl,exg,vxl,vxg)
! kf=cbrt(3*pai**2*d).
!.....-----------------------------------------------------------------
CONTAINS
SUBROUTINE xch91( &
d,s,u,v, &
exl,exg,vxl,vxg)
IMPLICIT NONE
REAL, INTENT (IN) :: d,s,u,v
REAL, INTENT (OUT) :: exl,exg,vxl,vxg
REAL a,a1,a2,a3,a4,ax,b1,ex,f,fac,fs,fss,
+ p0,p1,p10,p11,p2,p3,p4,p5,p6,p7,p8,p9,s2,s3,s4,
+ thrd,thrd4,vx,a4s2,expsm
c.....-----------------------------------------------------------------
c ..
REAL :: a,a1,a2,a3,a4,ax,b1,ex,f,fac,fs,fss, &
p0,p1,p10,p11,p2,p3,p4,p5,p6,p7,p8,p9,s2,s3,s4, &
thrd,thrd4,vx,a4s2,expsm
!.....-----------------------------------------------------------------
! ..
DATA a1,a2,a3,a4/0.19645,0.27430e0,0.15084e0,100.e0/
DATA ax,a,b1/-0.7385588e0,7.7956e0,0.004e0/
DATA thrd,thrd4/0.333333333333e0,1.33333333333e0/
c.....-----------------------------------------------------------------
c expsm: argument of exponential-smallest.
!.....-----------------------------------------------------------------
! expsm: argument of exponential-smallest.
expsm=minexponent(expsm)/1.5
fac = ax*d**thrd
......@@ -44,11 +44,11 @@ c expsm: argument of exponential-smallest.
p4 = 1.e0 + a1*s*p1 + (a2-a3*p2)*s2
f = p3*p4
ex = fac*f
c local exchange exl
! local exchange exl
exl = fac
exg = ex - exl
c energy done. now the potential:
! energy done. now the potential:
p5 = b1*s2 - (a2-a3*p2)
p6 = a1*s* (p1+a*s*p0)
p7 = 2.e0* (a2-a3*p2) + 2.e0*a3*a4*s2*p2 - 4.e0*b1*s2*f
......@@ -59,15 +59,15 @@ c energy done. now the potential:
p11 = -p3*p3* (a1*p1+a*a1*s*p0+4.e0*b1*s3)
fss = p3*p3* (p5*p9+p6*p8) + 2.e0*p3*p5*p6*p11 + p3*p10 + p7*p11
vx = fac* (thrd4*f- (u-thrd4*s3)*fss-v*fs)
c local exchange vxl:
! local exchange vxl:
vxl = fac*thrd4
vxg = vx - vxl
c in ry and energy density.
! in ry and energy density.
exl = exl*2.e0*d
exg = exg*2.e0*d
vxl = vxl*2.
vxg = vxg*2.
END SUBROUTINE xch91
END MODULE m_xch91
END SUBROUTINE xch91
END MODULE m_xch91
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment