-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchannels.f
88 lines (67 loc) · 2.32 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
87
88
module channels
use precision
use systems
integer :: lmax !maximum value of l
integer :: lmin ! minimum value of l
! 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(jp-jt)),nint(2.*(jp+jt)),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(jp-jt)),nint(2.*(jp+jt)),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,jp,jt,s,j
nch=nch+1
end do ! nJ
end do ! ns
end do !l
20 format('---The coupling coefficients are')
30 format(' a2b','|','(',' l ','(',' jp ',' jt ',')',' 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