9real(8) function wigner3jf(j12,j22,j32,m12,m22,m32)
25integer,
intent(in) :: j12,j22,j32
26integer,
intent(in) :: m12,m22,m32
28integer jm1,jm2,jm3,n1,n2
29integer l12,l22,l32,l42
30integer k,k1,k2,l1,l2,l3
35if ((j12 < 0).or.(j22 < 0).or.(j32 < 0).or.(abs(m12) > j12).or. &
36 (abs(m22) > j22).or.(abs(m32) > j32))
then
38 write(*,
'("Error(wigner3jf): invalid arguments :")')
39 write(*,
'("j12 = ",I8," j22 = ",I8," j32 = ",I8)') j12,j22,j32
40 write(*,
'("m12 = ",I8," m22 = ",I8," m32 = ",I8)') m12,m22,m32
44if ((j12 == 0).and.(j22 == 0).and.(j32 == 0))
then
48if ((j12 > 100).or.(j22 > 100).or.(j32 > 100))
then
50 write(*,
'("Error(wigner3jf): angular momenta out of range : ",3I8)') j12, &
58if ((mod(jm1,2) /= 0).or.(mod(jm2,2) /= 0).or.(mod(jm3,2) /= 0))
then
66if ((mod(l12,2) /= 0).or.(mod(l22,2) /= 0).or.(mod(l32,2) /= 0).or. &
67 (mod(l42,2) /= 0))
then
74if ((m12+m22+m32 /= 0).or.(l1 < 0).or.(l2 < 0).or.(l3 < 0))
then
83if (mod(k,2) /= 0)
then