9 subroutine tm3vdl(l,k,p,r,ld,wkpr,wkpr_v)
49 integer,
intent(in) :: l,k,p,r,ld
50 real(8),
intent(in) :: wkpr(-ld:ld)
51 complex(8),
intent(out) :: wkpr_v(-ld:ld)
55 complex(8),
parameter :: zi=(0.d0,1.d0)
58 real(8),
external :: wigner3j,factn,factn2,factr
61 if (mod(g,2) == 0)
then 62 t0=1.d0/wigner3j(k,p,r,0,0,0)
64 t0=sqrt(factr(g+1,g-2*k)/(factn(g-2*p)*factn(g-2*r)))
65 t0=t0*factn2(g-2*k)*factn2(g-2*p)*factn2(g-2*r)/factn2(g)
67 t0=t0*sqrt(factn(2+p)*factn(2*l-k)*factn(2*l+k+1))/factn(2*l)
68 if (mod(k+p,2) /= 0) t0=-t0
70 t0=t0/sqrt(dble((2*k+1)*(2*p+1)*(2*r+1)))
76 if (mod(t,2) /= 0) t1=-t1
77 wkpr_v(t)=wkpr_v(t)+t1*(1.d0,1.d0)
78 if (mod(k+p+r+t,2) /= 0) t1=-t1
79 wkpr_v(-t)=wkpr_v(-t)+t1*(1.d0,-1.d0)
82 if (mod(g,2) /= 0)
then 84 wkpr_v(-r:r)=wkpr_v(-r:r)*z1
subroutine tm3vdl(l, k, p, r, ld, wkpr, wkpr_v)