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)
58 integer np,npi,i0,i1,i,j
61 real(8),
parameter :: c1=0.7071067811865475244d0
65 complex(8) f(nr),df(nr),drmt(ld)
67 real(8),
external :: clebgor
80 f(iro:nr)=zfmt(i0:i1:
lmmaxo)
82 drmt(lm:i:
lmmaxi)=df(1:nri)
83 drmt(i0:i1:
lmmaxo)=df(iro:nr)
88 f(iro:nr)=zfmt(i0:i1:
lmmaxo)
89 call splined(nro,wcr(1,iro),f(iro),df(iro))
90 drmt(i0:i1:
lmmaxo)=df(iro:nr)
100 t1=-sqrt(dble(l+1)/dble(2*l+1))
101 t2=merge(sqrt(dble(l)/dble(2*l+1)),0.d0,l > 0)
108 if (l+1 <=
lmaxi)
then 110 lm1=(l+1)*(l+2)+(m-mu)+1
111 t3=t1*clebgor(l+1,1,l,m-mu,mu,m)
114 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i))
118 if (abs(m-mu) <= l-1)
then 121 t3=t2*clebgor(l-1,1,l,m-mu,mu,m)
124 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i))
134 t1=-sqrt(dble(l+1)/dble(2*l+1))
135 t2=merge(sqrt(dble(l)/dble(2*l+1)),0.d0,l > 0)
142 if (l+1 <=
lmaxo)
then 143 lm1=(l+1)*(l+2)+(m-mu)+1
144 t3=t1*clebgor(l+1,1,l,m-mu,mu,m)
147 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)-dble(l)*ri(ir)*zfmt(i))
151 if (abs(m-mu) <= l-1)
then 153 t3=t2*clebgor(l-1,1,l,m-mu,mu,m)
156 gzfmt(i1,j)=gzfmt(i1,j)+t3*(drmt(i)+dble(l+1)*ri(ir)*zfmt(i))
172 gzfmt(i,1)=c1*(z1-gzfmt(i,2))
173 z1=c1*(z1+gzfmt(i,2))
174 gzfmt(i,2)=cmplx(z1%im,-z1%re,8)
181 gzfmt(i,1)=c1*(z1-gzfmt(i,2))
182 z1=c1*(z1+gzfmt(i,2))
183 gzfmt(i,2)=cmplx(z1%im,-z1%re,8)
189 pure subroutine splined(n,wc,f,df)
192 integer,
intent(in) :: n
193 real(8),
intent(in) :: wc(12,n)
194 complex(8),
intent(in) :: f(n)
195 complex(8),
intent(out) :: df(n)
198 df(1)=wc(1,1)*f(1)+wc(2,1)*f(2)+wc(3,1)*f(3)+wc(4,1)*f(4)
199 df(2)=wc(1,2)*f(1)+wc(2,2)*f(2)+wc(3,2)*f(3)+wc(4,2)*f(4)
201 df(i)=wc(1,i)*f(i-1)+wc(2,i)*f(i)+wc(3,i)*f(i+1)+wc(4,i)*f(i+2)
204 df(i)=wc(1,i)*f(n-3)+wc(2,i)*f(n-2)+wc(3,i)*f(n-1)+wc(4,i)*f(n)
205 df(n)=wc(1,n)*f(n-3)+wc(2,n)*f(n-2)+wc(3,n)*f(n-1)+wc(4,n)*f(n)
subroutine gradzfmt(nr, nri, ri, wcr, zfmt, ld, gzfmt)
pure subroutine splined(n, wc, f, df)