2
* $Id: v_bwexc.F 22964 2012-10-08 16:26:17Z bylaska $
6
* ************************************
10
* ************************************
11
subroutine v_bwexc_all(gga,n2ft3d,ispin,dn,xcp,xce)
17
real*8 xcp(n2ft3d,2),xce(n2ft3d)
20
#include "mafdecls.fh"
27
if ((.not.nwxc_is_on().and.gga.eq.0).or.
28
+ (nwxc_is_on().and.nwxc_is_lda())) then
29
if (.not.MA_push_get(mt_dbl,(ispin*n2ft3d),'tmp1',
31
> call errquit('v_bwexc_all: out of stack memory',0,MA_ERR)
33
call vxc(n2ft3d,ispin,dn,xcp,xce,dbl_mb(tmp1(1)))
35
if (.not.MA_pop_stack(tmp1(2)))
36
> call errquit('v_bwexc_all: error popping stack',0,MA_ERR)
41
else if ((.not.nwxc_is_on().and.(gga.ge.10).and.(gga.lt.100)).or.
42
+ (nwxc_is_on().and.nwxc_is_gga())) then
43
call v_bwexc(gga,n2ft3d,ispin,dn,1.0d0,1.0d0,xcp,xce)
45
* **** meta-gga's ****
46
else if (nwxc_is_mgga()) then
47
call v_mexc(gga,n2ft3d,ispin,dn,1.0d0,1.0d0,xcp,xce)
49
* **** hybrid gga's ****
50
else if (gga.eq.110) then
51
call v_bwexc(10,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
52
else if (gga.eq.111) then
53
call v_bwexc(11,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
54
else if (gga.eq.112) then
55
call v_bwexc(12,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
56
else if (gga.eq.114) then
57
call v_bwexc(14,n2ft3d,ispin,dn,1.00d0,1.0d0,xcp,xce)
58
else if (gga.eq.115) then
59
call v_bwexc(15,n2ft3d,ispin,dn,0.80d0,1.0d0,xcp,xce)
67
* ************************************
69
* * v_bwexc_all_tmp1 *
71
* ************************************
72
subroutine v_bwexc_all_tmp1(gga,n2ft3d,ispin,dn,xcp,xce,tmp1)
78
real*8 xcp(n2ft3d,2),xce(n2ft3d)
82
#include "mafdecls.fh"
87
if ((.not.nwxc_is_on().and.gga.eq.0).or.
88
+ (nwxc_is_on().and.nwxc_is_lda())) then
90
call vxc(n2ft3d,ispin,dn,xcp,xce,tmp1)
93
else if ((.not.nwxc_is_on().and.(gga.ge.10).and.(gga.lt.100)).or.
94
+ (nwxc_is_on().and.nwxc_is_gga())) then
96
call v_bwexc(gga,n2ft3d,ispin,dn,1.0d0,1.0d0,xcp,xce)
98
* **** hybrid gga's ****
99
else if (gga.eq.110) then
100
call v_bwexc(10,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
101
else if (gga.eq.111) then
102
call v_bwexc(11,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
103
else if (gga.eq.112) then
104
call v_bwexc(12,n2ft3d,ispin,dn,0.75d0,1.0d0,xcp,xce)
105
else if (gga.eq.114) then
106
call v_bwexc(14,n2ft3d,ispin,dn,1.00d0,1.0d0,xcp,xce)
107
else if (gga.eq.115) then
108
call v_bwexc(15,n2ft3d,ispin,dn,0.80d0,1.0d0,xcp,xce)
114
* ************************************
118
* ************************************
119
subroutine v_bwexc_print(luout,gga)
123
#include "errquit.fh"
126
if (nwxc_is_on()) then
127
call nwxc_print_nwpw()
131
write(luout,1131) 'off'
132
ELSE IF (gga.eq.0) THEN
133
write(luout,1131) 'LDA (Vosko et al) parameterization'
134
ELSE IF (gga.eq.10) THEN
136
> 'PBE96 (White and Bird) parameterization'
137
ELSE IF (gga.eq.11) THEN
139
> 'BLYP (White and Bird) parameterization'
140
ELSE IF (gga.eq.12) THEN
142
> 'revPBE (White and Bird) parameterization'
143
ELSE IF (gga.eq.13) THEN
145
> 'PBEsol (White and Bird) parameterization'
147
ELSE IF (gga.eq.110) THEN
149
> 'PBE0 (White and Bird) parameterization'
150
ELSE IF (gga.eq.111) THEN
152
> 'BLYP0 (White and Bird) parameterization'
153
ELSE IF (gga.eq.112) THEN
155
> 'revPBE0 (White and Bird) parameterization'
156
ELSE IF (gga.eq.113) THEN
158
> 'BNL (White and Bird) parameterization'
159
ELSE IF (gga.eq.114) THEN
161
> 'HSE (White and Bird) parameterization'
162
ELSE IF (gga.eq.115) THEN
164
> 'B3LYP (White and Bird) parameterization'
166
ELSE IF (gga.eq.200) THEN
167
write(luout,1131) 'Hartree-Fock'
169
write(luout,1131) 'unknown parameterization'
170
call errquit('bad exchange_correlation',0, INPUT_ERR)
174
1131 FORMAT(5X,' exchange-correlation = ',A)