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 complex(8) f(nr),df(nr),drmt(ld)
67 real(8),
external :: clebgor
102 call splined(nro,wcr(1,iro),f(iro),df(iro))
117 t1=-sqrt(dble(l+1)/dble(2*l+1))
119 t2=sqrt(dble(l)/dble(2*l+1))
129 if (l+1 <=
lmaxi)
then 131 lm1=(l+1)*(l+2)+(m-mu)+1
132 t3=t1*clebgor(l+1,1,l,m-mu,mu,m)
135 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i))
139 if (abs(m-mu) <= l-1)
then 142 t3=t2*clebgor(l-1,1,l,m-mu,mu,m)
145 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i))
155 t1=-sqrt(dble(l+1)/dble(2*l+1))
157 t2=sqrt(dble(l)/dble(2*l+1))
167 if (l+1 <=
lmaxo)
then 168 lm1=(l+1)*(l+2)+(m-mu)+1
169 t3=t1*clebgor(l+1,1,l,m-mu,mu,m)
172 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i))
176 if (abs(m-mu) <= l-1)
then 178 t3=t2*clebgor(l-1,1,l,m-mu,mu,m)
181 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i))
197 gzfmt(i,1)=c1*(z1-gzfmt(i,2))
198 z1=c1*(z1+gzfmt(i,2))
199 gzfmt(i,2)=cmplx(z1%im,-z1%re,8)
206 gzfmt(i,1)=c1*(z1-gzfmt(i,2))
207 z1=c1*(z1+gzfmt(i,2))
208 gzfmt(i,2)=cmplx(z1%im,-z1%re,8)
214 pure subroutine splined(n,wc,f,df)
217 integer,
intent(in) :: n
218 real(8),
intent(in) :: wc(12,n)
219 complex(8),
intent(in) :: f(n)
220 complex(8),
intent(out) :: df(n)
223 complex(8) f1,f2,f3,f4
224 f1=f(1); f2=f(2); f3=f(3); f4=f(4)
225 df(1)=wc(1,1)*f1+wc(2,1)*f2+wc(3,1)*f3+wc(4,1)*f4
226 df(2)=wc(1,2)*f1+wc(2,2)*f2+wc(3,2)*f3+wc(4,2)*f4
228 f1=f(i-1); f2=f(i); f3=f(i+1); f4=f(i+2)
229 df(i)=wc(1,i)*f1+wc(2,i)*f2+wc(3,i)*f3+wc(4,i)*f4
232 df(i)=wc(1,i)*f1+wc(2,i)*f2+wc(3,i)*f3+wc(4,i)*f4
233 df(n)=wc(1,n)*f1+wc(2,n)*f2+wc(3,n)*f3+wc(4,n)*f4
subroutine gradzfmt(nr, nri, ri, wcr, zfmt, ld, gzfmt)
pure subroutine splined(n, wc, f, df)