9 subroutine tm3todm(l,k,p,r,ld,wkpr,dm)
61 integer,
intent(in) :: l,k,p,r,ld
62 real(8),
intent(in) :: wkpr(-ld:ld)
63 complex(8),
intent(out) :: dm(ld,2,ld,2)
68 real(8) wkp(-ld:ld,-1:1),dmr(ld,2,ld,2)
70 real(8),
external :: wigner3j
73 write(*,
'("Error(tm3todm): l < 0 : ",I0)') l
79 write(*,
'("Error(tm3todm): k < 0 : ",I0)') k
85 write(*,
'("Error(tm3todm): k > 2*l :",2(X,I0))') k,2*l
89 if ((p < 0).or.(p > 1))
then 91 write(*,
'("Error(tm3todm): p should be 0 or 1 : ",I0)') p
95 if (r < abs(k-p))
then 97 write(*,
'("Error(tm3todm): r < |k-p| :",2(X,I0))') r,abs(k-p)
103 write(*,
'("Error(tm3todm): r > k+p :",2(X,I0))') r,k+p
112 if (abs(t1) < 1.d-8) cycle
116 wkp(x,y)=wkp(x,y)+t1*wigner3j(k,r,p,-x,t,-y)
127 pure subroutine dmrtoz(n,dmr,dm)
130 integer,
intent(in) :: n
131 real(8),
intent(in) :: dmr(n,n)
132 complex(8),
intent(out) :: dm(n,n)
139 a=0.5d0*(dmr(i,j)+dmr(j,i))
141 b=0.5d0*(dmr(i,j)-dmr(j,i))
143 dm(j,i)=cmplx(a,-b,8)
subroutine tm2todm(l, k, p, ld, wkp, dm)
pure subroutine dmrtoz(n, dmr, dm)
subroutine tm3todm(l, k, p, r, ld, wkpr, dm)