9real(8) function wigner3j(j1,j2,j3,m1,m2,m3)
33integer,
intent(in) :: j1,j2,j3
34integer,
intent(in) :: m1,m2,m3
36integer k,k1,k2,l1,l2,l3,n1,n2
41if ((j1 < 0).or.(j2 < 0).or.(j3 < 0).or.(abs(m1) > j1).or.(abs(m2) > j2) &
42 .or.(abs(m3) > j3))
then
44 write(*,
'("Error(wigner3j): invalid arguments :")')
45 write(*,
'("j1 = ",I8," j2 = ",I8," j3 = ",I8)') j1,j2,j3
46 write(*,
'("m1 = ",I8," m2 = ",I8," m3 = ",I8)') m1,m2,m3
50if ((j1 == 0).and.(j2 == 0).and.(j3 == 0))
then
54if ((j1 > 50).or.(j2 > 50).or.(j3 > 50))
then
56 write(*,
'("Error(wigner3j): angular momenta out of range : ",3I8)') j1,j2,j3
63if ((m1+m2+m3 /= 0).or.(l1 < 0).or.(l2 < 0).or.(l3 < 0))
then
71if (mod(k1-j1+j2+m3,2) /= 0)
then