Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module sph_int
- CONTAINS
- function sph_igr(l1,m1,l2,m2,l3,m3,n1,n2) result(igr)
- integer, private :: l1,m1,l2,m2,l3,m3,n1,n2
- real(kind=8) :: igr
- logical :: b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18
- b1 = (l1 .eq. 0.AND. m1 .eq.0)
- b2 = (l2 .eq. 0.AND. m1 .eq.0)
- b3 = (l3 .eq. 1.AND. m3 .eq.0)
- b4 = (l1 .eq. 0.AND. m3 .eq.0)
- b5 = (l3 .eq. 0.AND. m3 .eq.0)
- b6 = (l2 .eq. 1.AND. m2 .eq.0)
- b7 = (l2 .eq. 0.AND. m2 .eq.0)
- b8 = (l1 .eq. 0.AND. m1 .eq.0)
- b9 = (l3 .eq. 1.AND. m3 .eq.0)
- b10 = (l2 .eq. 0.AND. m2 .eq.0)
- b11 = (l3 .eq. 0.AND. m3 .eq.0)
- b12 = (l1 .eq. 1.AND. m1 .eq.0)
- b13 = (l3 .eq. 0.AND. m3 .eq.0)
- b14 = (l1 .eq. 0.AND. m1 .eq.0)
- b15 = (l2 .eq. 1.AND. m2 .eq.0)
- b16 = (l3 .eq. 0.AND. m3 .eq.0)
- b17 = (l2 .eq. 0.AND. m2 .eq.0)
- b18 = (l1 .eq. 1.AND. m1 .eq.0)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =0.2666666666666666d0
- return
- end if
- igr = 0.0d0
- return
- b1 = (l1 .eq. 0.AND. m1 .eq.0)
- b2 = (l2 .eq. 1.AND. m1 .eq.-1)
- b3 = (l3 .eq. 1.AND. m3 .eq.0)
- b4 = (l1 .eq. 0.AND. m3 .eq.0)
- b5 = (l3 .eq. 1.AND. m3 .eq.-1)
- b6 = (l2 .eq. 1.AND. m2 .eq.0)
- b7 = (l2 .eq. 0.AND. m2 .eq.0)
- b8 = (l1 .eq. 1.AND. m1 .eq.-1)
- b9 = (l3 .eq. 1.AND. m3 .eq.0)
- b10 = (l2 .eq. 0.AND. m2 .eq.0)
- b11 = (l3 .eq. 1.AND. m3 .eq.-1)
- b12 = (l1 .eq. 1.AND. m1 .eq.0)
- b13 = (l3 .eq. 0.AND. m3 .eq.0)
- b14 = (l1 .eq. 1.AND. m1 .eq.-1)
- b15 = (l2 .eq. 1.AND. m2 .eq.0)
- b16 = (l3 .eq. 0.AND. m3 .eq.0)
- b17 = (l2 .eq. 1.AND. m2 .eq.-1)
- b18 = (l1 .eq. 1.AND. m1 .eq.0)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =0.09817477041685034d0
- return
- end if
- igr = 0.0d0
- return
- b1 = (l1 .eq. 0.AND. m1 .eq.0)
- b2 = (l2 .eq. 1.AND. m1 .eq.0)
- b3 = (l3 .eq. 1.AND. m3 .eq.1)
- b4 = (l1 .eq. 0.AND. m3 .eq.0)
- b5 = (l3 .eq. 1.AND. m3 .eq.0)
- b6 = (l2 .eq. 1.AND. m2 .eq.1)
- b7 = (l2 .eq. 0.AND. m2 .eq.0)
- b8 = (l1 .eq. 1.AND. m1 .eq.0)
- b9 = (l3 .eq. 1.AND. m3 .eq.1)
- b10 = (l2 .eq. 0.AND. m2 .eq.0)
- b11 = (l3 .eq. 1.AND. m3 .eq.0)
- b12 = (l1 .eq. 1.AND. m1 .eq.1)
- b13 = (l3 .eq. 0.AND. m3 .eq.0)
- b14 = (l1 .eq. 1.AND. m1 .eq.0)
- b15 = (l2 .eq. 1.AND. m2 .eq.1)
- b16 = (l3 .eq. 0.AND. m3 .eq.0)
- b17 = (l2 .eq. 1.AND. m2 .eq.0)
- b18 = (l1 .eq. 1.AND. m1 .eq.1)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =-0.1963495408493623d0
- return
- end if
- igr = 0.0d0
- return
- b1 = (l1 .eq. 1.AND. m1 .eq.-1)
- b2 = (l2 .eq. 1.AND. m1 .eq.-1)
- b3 = (l3 .eq. 1.AND. m3 .eq.0)
- b4 = (l1 .eq. 1.AND. m3 .eq.-1)
- b5 = (l3 .eq. 1.AND. m3 .eq.-1)
- b6 = (l2 .eq. 1.AND. m2 .eq.0)
- b7 = (l2 .eq. 1.AND. m2 .eq.-1)
- b8 = (l1 .eq. 1.AND. m1 .eq.-1)
- b9 = (l3 .eq. 1.AND. m3 .eq.0)
- b10 = (l2 .eq. 1.AND. m2 .eq.-1)
- b11 = (l3 .eq. 1.AND. m3 .eq.-1)
- b12 = (l1 .eq. 1.AND. m1 .eq.0)
- b13 = (l3 .eq. 1.AND. m3 .eq.-1)
- b14 = (l1 .eq. 1.AND. m1 .eq.-1)
- b15 = (l2 .eq. 1.AND. m2 .eq.0)
- b16 = (l3 .eq. 1.AND. m3 .eq.-1)
- b17 = (l2 .eq. 1.AND. m2 .eq.-1)
- b18 = (l1 .eq. 1.AND. m1 .eq.0)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =0.0380952380952381d0
- return
- end if
- igr = 0.0d0
- return
- b1 = (l1 .eq. 1.AND. m1 .eq.-1)
- b2 = (l2 .eq. 1.AND. m1 .eq.0)
- b3 = (l3 .eq. 1.AND. m3 .eq.1)
- b4 = (l1 .eq. 1.AND. m3 .eq.-1)
- b5 = (l3 .eq. 1.AND. m3 .eq.0)
- b6 = (l2 .eq. 1.AND. m2 .eq.1)
- b7 = (l2 .eq. 1.AND. m2 .eq.-1)
- b8 = (l1 .eq. 1.AND. m1 .eq.0)
- b9 = (l3 .eq. 1.AND. m3 .eq.1)
- b10 = (l2 .eq. 1.AND. m2 .eq.-1)
- b11 = (l3 .eq. 1.AND. m3 .eq.0)
- b12 = (l1 .eq. 1.AND. m1 .eq.1)
- b13 = (l3 .eq. 1.AND. m3 .eq.-1)
- b14 = (l1 .eq. 1.AND. m1 .eq.0)
- b15 = (l2 .eq. 1.AND. m2 .eq.1)
- b16 = (l3 .eq. 1.AND. m3 .eq.-1)
- b17 = (l2 .eq. 1.AND. m2 .eq.0)
- b18 = (l1 .eq. 1.AND. m1 .eq.1)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =-0.0761904761904762d0
- return
- end if
- igr = 0.0d0
- return
- b1 = (l1 .eq. 1.AND. m1 .eq.0)
- b2 = (l2 .eq. 1.AND. m1 .eq.0)
- b3 = (l3 .eq. 1.AND. m3 .eq.0)
- b4 = (l1 .eq. 1.AND. m3 .eq.0)
- b5 = (l3 .eq. 1.AND. m3 .eq.0)
- b6 = (l2 .eq. 1.AND. m2 .eq.0)
- b7 = (l2 .eq. 1.AND. m2 .eq.0)
- b8 = (l1 .eq. 1.AND. m1 .eq.0)
- b9 = (l3 .eq. 1.AND. m3 .eq.0)
- b10 = (l2 .eq. 1.AND. m2 .eq.0)
- b11 = (l3 .eq. 1.AND. m3 .eq.0)
- b12 = (l1 .eq. 1.AND. m1 .eq.0)
- b13 = (l3 .eq. 1.AND. m3 .eq.0)
- b14 = (l1 .eq. 1.AND. m1 .eq.0)
- b15 = (l2 .eq. 1.AND. m2 .eq.0)
- b16 = (l3 .eq. 1.AND. m3 .eq.0)
- b17 = (l2 .eq. 1.AND. m2 .eq.0)
- b18 = (l1 .eq. 1.AND. m1 .eq.0)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =0.11428571428571428d0
- return
- end if
- igr = 0.0d0
- return
- b1 = (l1 .eq. 1.AND. m1 .eq.0)
- b2 = (l2 .eq. 1.AND. m1 .eq.1)
- b3 = (l3 .eq. 1.AND. m3 .eq.1)
- b4 = (l1 .eq. 1.AND. m3 .eq.0)
- b5 = (l3 .eq. 1.AND. m3 .eq.1)
- b6 = (l2 .eq. 1.AND. m2 .eq.1)
- b7 = (l2 .eq. 1.AND. m2 .eq.0)
- b8 = (l1 .eq. 1.AND. m1 .eq.1)
- b9 = (l3 .eq. 1.AND. m3 .eq.1)
- b10 = (l2 .eq. 1.AND. m2 .eq.0)
- b11 = (l3 .eq. 1.AND. m3 .eq.1)
- b12 = (l1 .eq. 1.AND. m1 .eq.1)
- b13 = (l3 .eq. 1.AND. m3 .eq.0)
- b14 = (l1 .eq. 1.AND. m1 .eq.1)
- b15 = (l2 .eq. 1.AND. m2 .eq.1)
- b16 = (l3 .eq. 1.AND. m3 .eq.0)
- b17 = (l2 .eq. 1.AND. m2 .eq.1)
- b18 = (l1 .eq. 1.AND. m1 .eq.1)
- if( (b1+b2+b3) .or. (b4+b5+b6) .or (b7+b8+b9) .or. (b10+b11+b12) .or. (b13+b14+b15) .or. (b16+b17+b18) .and. (n1 .eq.1) .and. (n2 .eq.2) ) then
- igr =0.1523809523809524d0
- return
- end if
- igr = 0.0d0
- return
- end function sph_igr
- end module sph_int
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement