-
Notifications
You must be signed in to change notification settings - Fork 0
/
channels.f
executable file
·86 lines (67 loc) · 2.25 KB
/
channels.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
module channels
use precision
integer :: lmax !maximum value of l
integer :: lmin ! minimum value of l
real*8 :: ja, jb ! particle spin
! 2-body channels
Type nch_2b
! |(ls)j>
integer :: nchmax ! maximum number
integer,dimension(:),allocatable :: l
real*8,dimension(:),allocatable :: s, j
End type
type(nch_2b) :: alpha2b
contains
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
subroutine alpha_2b()
c index of two body projectile and target system
c in the form of (l (jp jt) s ) J
c
c for a given channel index number,
c one can directly get the l s J quantum numbers
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
implicit none
integer :: l
real*8 :: s,J
integer :: ns, nJ
integer :: nch ! channel index {(l (jb jx)s) J}
alpha2b%nchmax=0
do l=lmin,lmax
do ns=nint(2.*abs(ja-jb)),nint(2.*(ja+jb)),2
s=ns/2.0_dpreal
do nJ=nint(2.*(l-s)),nint(2.*abs(l+s)),2
J=nJ/2.0_dpreal
alpha2b%nchmax=alpha2b%nchmax+1
end do! nJ
end do ! ns
end do ! l
write(8,10)alpha2b%nchmax
C write(*,10)alpha2b%nchmax
10 format('there are',I3,1X,'reaction channels')
allocate(alpha2b%l(1:alpha2b%nchmax))
allocate(alpha2b%s(1:alpha2b%nchmax))
allocate(alpha2b%j(1:alpha2b%nchmax))
nch=1
write(8,20)
write(8,30)
C write(*,20)
C write(*,30)
do l=lmin,lmax
do ns=nint(2.*abs(ja-jb)),nint(2.*(ja+jb)),2
s=ns/2.0_dpreal
do nJ=nint(2.*(l-s)),nint(2.*abs(l+s)),2
J=nJ/2.0_dpreal
alpha2b%l(nch)=l
alpha2b%s(nch)=s
alpha2b%j(nch)=J
write(8,40)nch,l,ja,jb,s,j
nch=nch+1
end do ! nJ
end do ! ns
end do !l
20 format('---The coupling coefficients are')
30 format(' a2b','|','(',' l ','(',' ja ',' jb ',')',' s ',')',' J ')
40 format(I4,1x,I3,2x,f3.1,2x,f3.1,2x,f3.1,2x,f4.1)
end subroutine
c-----------------------------------------------------------------------
end module channels