6subroutine fxc_pwca(n,rhoup,rhodn,fxcuu,fxcud,fxcdd)
9integer,
intent(in) :: n
10real(8),
intent(in) :: rhoup(n)
11real(8),
intent(in) :: rhodn(n)
12real(8),
intent(out) :: fxcuu(n)
13real(8),
intent(out) :: fxcud(n)
14real(8),
intent(out) :: fxcdd(n)
17real(8),
parameter :: pi=3.1415926535897932385d0
18real(8),
parameter :: thrd=1.d0/3.d0, thrd4=4.d0/3.d0
19real(8),
parameter :: d2f0=1.709921d0
20real(8),
parameter :: a(3)=[ 0.0310907d0, 0.01554535d0, 0.0168869d0 ]
21real(8),
parameter :: a1(3)=[ 0.21370d0, 0.20548d0, 0.11125d0 ]
22real(8),
parameter :: b1(3)=[ 7.5957d0, 14.1189d0, 10.357d0 ]
23real(8),
parameter :: b2(3)=[ 3.5876d0, 6.1977d0, 3.6231d0 ]
24real(8),
parameter :: b3(3)=[ 1.6382d0, 3.3662d0, 0.88026d0 ]
25real(8),
parameter :: b4(3)=[ 0.49294d0, 0.62517d0, 0.49671d0 ]
26real(8) p1,p2,p3,rup,rdn,r,ri,ri2,ri3
27real(8) rs,rs2,rs12,rs32,rsi,rs12i,rs32i
28real(8) mz,z,z2,z3,z4,fz,dfz,d2fz
29real(8) drs,d2rs,dzu,d2zu,dzd,d2zd,d2zud
30real(8) ders,d2ers,dez,d2ez,d2ersz
31real(8) deu,d2eu,ded,d2ed,d2eud,ex
32real(8) ec0,dec0,d2ec0,ec1,dec1,d2ec1
33real(8) ac,dac,d2ac,a2,dt1,d2t1,dt2,d2t2
34real(8) t1,t2,t3,t4,t5,t6,t7,t8
37 write(*,
'("Error(fxc_pwca): n < 1 : ",I8)') n
44p2=t1*(9.d0*pi/4.d0)**thrd
45p3=1.d0/(2.d0**thrd4-2.d0)
47 rup=rhoup(i); rdn=rhodn(i)
50 if ((rup < 0.d0).or.(rdn < 0.d0).or.(r < 1.d-20))
then
128 t4=(t1+d2ersz*dzu)*drs+t3
130 d2eu=t4+t5*dzu+dez*d2zu
132 d2ed=(t1+d2ersz*dzd)*drs+t3+(t2+d2ez*dzd)*dzd+dez*d2zd
134 d2eud=t4+t5*dzd+dez*d2zud
136 fxcuu(i)=2.d0*deu+r*d2eu
137 fxcud(i)=deu+ded+r*d2eud
138 fxcdd(i)=2.d0*ded+r*d2ed
144 t1=a2*(b1(1)*rs12+b2(1)*rs+b3(1)*rs32+b4(1)*rs2)
145 dt1=a2*(0.5d0*b1(1)*rs12i+b2(1)+1.5d0*b3(1)*rs12+2.d0*b4(1)*rs)
146 d2t1=a2*(-0.25d0*b1(1)*rs32i+0.75d0*b3(1)*rs12i+2.d0*b4(1))
151 d2t2=t4*(2.d0*t3*dt1**2-d2t1)
156 dec0=-a2*(a1(1)*t5+t4*t3*dt2)
157 d2ec0=-a2*(2.d0*a1(1)*t3*dt2+t4*t3*(d2t2-t3*dt2**2))
160 t1=a2*(b1(2)*rs12+b2(2)*rs+b3(2)*rs32+b4(2)*rs2)
161 dt1=a2*(0.5d0*b1(2)*rs12i+b2(2)+1.5d0*b3(2)*rs12+2.d0*b4(2)*rs)
162 d2t1=a2*(-0.25d0*b1(2)*rs32i+0.75d0*b3(2)*rs12i+2.d0*b4(2))
167 d2t2=t4*(2.d0*t3*dt1**2-d2t1)
172 dec1=-a2*(a1(2)*t5+t4*t3*dt2)
173 d2ec1=-a2*(2.d0*a1(2)*t3*dt2+t4*t3*(d2t2-t3*dt2**2))
176 t1=a2*(b1(3)*rs12+b2(3)*rs+b3(3)*rs32+b4(3)*rs2)
177 dt1=a2*(0.5d0*b1(3)*rs12i+b2(3)+1.5d0*b3(3)*rs12+2.d0*b4(3)*rs)
178 d2t1=a2*(-0.25d0*b1(3)*rs32i+0.75d0*b3(3)*rs12i+2.d0*b4(3))
183 d2t2=t4*(2.d0*t3*dt1**2-d2t1)
188 dac=a2*(a1(3)*t5+t4*t3*dt2)
189 d2ac=a2*(2.d0*a1(3)*t3*dt2+t4*t3*(d2t2-t3*dt2**2))
197 ders=dec0+dac*t2+t5*t4
200 d2ers=d2ec0+d2ac*t2+t6*t4
208 d2ersz=(dac/d2f0)*t7+t5*t8
212 d2ez=t4*(d2fz*t1-t7-t8)+t3*(d2fz*z4+t7+t8)
221 t4=(t1+d2ersz*dzu)*drs+t3
223 d2eu=t4+t5*dzu+dez*d2zu
225 d2ed=(t1+d2ersz*dzd)*drs+t3+(t2+d2ez*dzd)*dzd+dez*d2zd
227 d2eud=t4+t5*dzd+dez*d2zud
229 fxcuu(i)=fxcuu(i)+2.d0*deu+r*d2eu
230 fxcud(i)=fxcud(i)+deu+ded+r*d2eud
231 fxcdd(i)=fxcdd(i)+2.d0*ded+r*d2ed