summaryrefslogtreecommitdiff
path: root/src/labat/exchen.f
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2011-10-08 20:30:28 +0200
committerHenrik Rydberg <rydberg@euromail.se>2011-10-08 20:30:28 +0200
commit5df79c53745fde5d6c3340a2979b1429cd5892c1 (patch)
tree1a81af141708b826e9c61e8a04019994fcca8298 /src/labat/exchen.f
Initial import of htcd system 1.0
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src/labat/exchen.f')
-rw-r--r--src/labat/exchen.f21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/labat/exchen.f b/src/labat/exchen.f
new file mode 100644
index 0000000..a3d1112
--- /dev/null
+++ b/src/labat/exchen.f
@@ -0,0 +1,21 @@
1 subroutine exchen(d,s,ex)
2c gga91 exchange energy for a spin-unpolarized electronic system
3c input d : density
4c input s : abs(grad d)/(2*kf*d)
5c output ex : exchange energy per electron
6 implicit double precision (a-h,o-z)
7 data a1,a2,a3,a4/0.19645d0,0.27430d0,0.15084d0,100.d0/
8 data ax,a,b1/-0.7385588d0,7.7956d0,0.004d0/
9 data thrd/0.333333333333d0/
10 fac = ax*d**thrd
11 s2 = s*s
12 s4 = s2*s2
13 p0 = 1.d0/dsqrt(1.d0+a*a*s2)
14 p1 = dlog(a*s+1.d0/p0)
15 p2 = dexp(-a4*s2)
16 p3 = 1.d0/(1.d0+a1*s*p1+b1*s4)
17 p4 = 1.d0+a1*s*p1+(a2-a3*p2)*s2
18 f = p3*p4
19 ex = fac*f
20 return
21 end