diff options
| author | Henrik Rydberg <rydberg@euromail.se> | 2011-10-08 20:30:28 +0200 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2011-10-08 20:30:28 +0200 |
| commit | 5df79c53745fde5d6c3340a2979b1429cd5892c1 (patch) | |
| tree | 1a81af141708b826e9c61e8a04019994fcca8298 /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.f | 21 |
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) | ||
| 2 | c gga91 exchange energy for a spin-unpolarized electronic system | ||
| 3 | c input d : density | ||
| 4 | c input s : abs(grad d)/(2*kf*d) | ||
| 5 | c 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 | ||
