59integer,
intent(in) :: l,k,p,r,ld
60real(8),
intent(in) :: wkpr(-ld:ld)
61complex(8),
intent(out) :: dm(ld,2,ld,2)
66real(8) wkp(-ld:ld,-1:1),dmr(ld,2,ld,2)
68real(8),
external :: wigner3j
71 write(*,
'("Error(tm3todm): l < 0 : ",I8)') l
77 write(*,
'("Error(tm3todm): k < 0 : ",I8)') k
83 write(*,
'("Error(tm3todm): k > 2*l : ",2I8)') k,2*l
87if ((p < 0).or.(p > 1))
then
89 write(*,
'("Error(tm3todm): p should be 0 or 1 : ",I8)') p
95 write(*,
'("Error(tm3todm): r < |k-p| : ",2I8)') r,abs(k-p)
101 write(*,
'("Error(tm3todm): r > k+p : ",2I8)') r,k+p
110 if (abs(t1) < 1.d-8) cycle
114 wkp(x,y)=wkp(x,y)+t1*
wigner3j(k,r,p,-x,t,-y)
129integer,
intent(in) :: n
130real(8),
intent(in) :: dmr(n,n)
131complex(8),
intent(out) :: dm(n,n)
138 a=0.5d0*(dmr(i,j)+dmr(j,i))
140 b=0.5d0*(dmr(i,j)-dmr(j,i))
142 dm(j,i)=cmplx(a,-b,8)
subroutine tm2todm(l, k, p, ld, wkp, dm)
subroutine tm3todm(l, k, p, r, ld, wkpr, dm)
pure subroutine dmrtoz(n, dmr, dm)
real(8) function wigner3j(j1, j2, j3, m1, m2, m3)