6 subroutine cpotcoul(nrmt_,nrmti_,npmt_,ld1,rl,ngridg_,igfft_,ngp,gpc,gclgp,ld2,&
7 jlgprmt,ylmgp,sfacgp,crhoir,ld3,cvclmt,cvclir)
12 integer,
intent(in) :: nrmt_(nspecies),nrmti_(nspecies),npmt_(nspecies)
13 integer,
intent(in) :: ld1
14 real(8),
intent(in) :: rl(ld1,-lmaxo-1:lmaxo+2,nspecies)
15 integer,
intent(in) :: ngridg_(3),igfft_(*),ngp
16 real(8),
intent(in) :: gpc(ngp),gclgp(ngp)
17 integer,
intent(in) :: ld2
18 real(8),
intent(in) :: jlgprmt(0:lnpsd,ld2,nspecies)
19 complex(8),
intent(in) :: ylmgp(lmmaxo,ngp),sfacgp(ld2,natmtot)
20 complex(4),
intent(in) :: crhoir(*)
21 integer,
intent(in) :: ld3
22 complex(4),
intent(inout) :: cvclmt(ld3,natmtot)
23 complex(4),
intent(out) :: cvclir(*)
33 complex(8) qlm(lmmaxo,natmtot),zlm(lmmaxo)
35 real(8),
external :: factn2
42 t2=t1*dble(2*l+1)*
rmtl(l+1,is)
43 lma=l**2+1; lmb=lma+2*l
44 qlm(lma:lmb,ias)=t2*cvclmt(i+lma:i+lmb,ias)
48 call ccopy(ngridg_(1)*ngridg_(2)*ngridg_(3),crhoir,1,cvclir,1)
49 call cfftifc(3,ngridg_,-1,cvclir)
52 rl2(0:lmaxo)=
rmtl(2:lmaxo+2,is)
60 z1=cvclir(jg)*sfacgp(ig,ias)/gpc(ig)
61 zlm(1)=zlm(1)+jlgprmt(1,ig,is)*t1*z1
63 lma=l**2+1; lmb=lma+2*l
64 z2=jlgprmt(l+1,ig,is)*rl2(l)*z1
65 zlm(lma:lmb)=zlm(lma:lmb)+z2*conjg(ylmgp(lma:lmb,ig))
69 zlm(1)=zlm(1)+t2*cvclir(jg)
72 qlm(1:lmmaxo,ias)=qlm(1:lmmaxo,ias)-zlm(1:lmmaxo)
77 t1=factn2(2*lnpsd+1)/
omega 81 t2=t1/(factn2(2*l+1)*
rmtl(l,is))
82 lma=l**2+1; lmb=lma+2*l
83 zlm(lma:lmb)=t2*qlm(lma:lmb,ias)
93 lma=l**2+1; lmb=lma+2*l
95 z1=z1+t3*sum(zlm(lma:lmb)*ylmgp(lma:lmb,ig))
97 z2=jlgprmt(lnpsd,ig,is)*conjg(sfacgp(ig,ias))
98 cvclir(jg)=cvclir(jg)+z1*z2
101 cvclir(jg)=cvclir(jg)+t2*zlm(1)
108 cvclir(jg)=gclgp(ig)*cvclir(jg)
120 z1=cvclir(igfft_(ig))*sfacgp(ig,ias)
121 zlm(1)=zlm(1)+jlgprmt(0,ig,is)*
fourpi*
y00*z1
123 lma=l**2+1; lmb=lma+2*l
124 z2=jlgprmt(l,ig,is)*z1
125 zlm(lma:lmb)=zlm(lma:lmb)+z2*conjg(ylmgp(lma:lmb,ig))
132 do lm=l**2+1,(l+1)**2
133 z1=t1*(zlm(lm)-cvclmt(i+lm,ias))
135 cvclmt(lm:i1:
lmmaxi,ias)=cvclmt(lm:i1:
lmmaxi,ias)+z1*rl(1:nri,l,is)
137 i1=lmmaxo*(nr-iro)+i0
138 cvclmt(i0:i1:lmmaxo,ias)=cvclmt(i0:i1:lmmaxo,ias)+z1*rl(iro:nr,l,is)
143 do lm=l**2+1,(l+1)**2
144 z1=t1*(zlm(lm)-cvclmt(i+lm,ias))
146 i1=lmmaxo*(nr-iro)+i0
147 cvclmt(i0:i1:lmmaxo,ias)=cvclmt(i0:i1:lmmaxo,ias)+z1*rl(iro:nr,l,is)
152 call cfftifc(3,ngridg_,1,cvclir)
integer, dimension(maxatoms, maxspecies) idxas
subroutine cfftifc(nd, n, sgn, c)
real(8), dimension(:,:), allocatable rmtl
real(8), dimension(maxspecies) rmt
subroutine cpotcoul(nrmt_, nrmti_, npmt_, ld1, rl, ngridg_, igfft_, ngp, gpc, gclgp, ld2, jlgprmt, ylmgp, sfacgp, crhoir, ld3, cvclmt, cvclir)
integer, dimension(maxspecies) natoms
integer, dimension(maxatoms *maxspecies) idxis
real(8), parameter fourpi