9 subroutine gradzfmt(nr,nri,ri,wcr,zfmt,ld,gzfmt)
51 integer,
intent(in) :: nr,nri
52 real(8),
intent(in) :: ri(nr),wcr(12,nr)
53 complex(8),
intent(in) :: zfmt(*)
54 integer,
intent(in) :: ld
55 complex(8),
intent(out) :: gzfmt(ld,3)
61 real(8),
parameter :: c1=0.7071067811865475244d0
65 real(8) f1(nr),f2(nr),g1(nr),g2(nr)
68 real(8),
external :: clebgor
92 drmt(i)=cmplx(g1(ir),g2(ir),8)
96 drmt(i)=cmplx(g1(ir),g2(ir),8)
104 f2(ir)=aimag(zfmt(i))
107 call splined(nro,wcr(1,iro),f1(iro),g1(iro))
108 call splined(nro,wcr(1,iro),f2(iro),g2(iro))
111 drmt(i)=cmplx(g1(ir),g2(ir),8)
123 t1=-sqrt(dble(l+1)/dble(2*l+1))
125 t2=sqrt(dble(l)/dble(2*l+1))
135 if (l+1 <=
lmaxi)
then 137 lm1=(l+1)*(l+2)+(m-mu)+1
138 t3=t1*clebgor(l+1,1,l,m-mu,mu,m)
141 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i))
145 if (abs(m-mu) <= l-1)
then 148 t3=t2*clebgor(l-1,1,l,m-mu,mu,m)
151 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i))
161 t1=-sqrt(dble(l+1)/dble(2*l+1))
163 t2=sqrt(dble(l)/dble(2*l+1))
173 if (l+1 <=
lmaxo)
then 174 lm1=(l+1)*(l+2)+(m-mu)+1
175 t3=t1*clebgor(l+1,1,l,m-mu,mu,m)
178 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i))
182 if (abs(m-mu) <= l-1)
then 184 t3=t2*clebgor(l-1,1,l,m-mu,mu,m)
187 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i))
203 gzfmt(i,1)=c1*(z1-gzfmt(i,2))
204 z1=c1*(z1+gzfmt(i,2))
205 gzfmt(i,2)=cmplx(z1%im,-z1%re,8)
212 gzfmt(i,1)=c1*(z1-gzfmt(i,2))
213 z1=c1*(z1+gzfmt(i,2))
214 gzfmt(i,2)=cmplx(z1%im,-z1%re,8)
subroutine gradzfmt(nr, nri, ri, wcr, zfmt, ld, gzfmt)
pure subroutine splined(n, wc, f, df)