18 real(
r_kind),
dimension(:),
allocatable,
public ::
pf
49 if (istat .ne. 0)
then
50 call raise_exception(
'Allocation of "pf" failed.',
"init_nucstuff",320001)
66 integer,
intent(in) :: z
67 integer,
intent(in) :: n
70 integer,
parameter :: numstable=253
71 integer,
dimension(numstable) :: nstable = &
72 (/ 0, 1, 1, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 10, 10, &
73 11, 12, 12, 12, 13, 14, 14, 14, 15, 16, 16, 16, 17, 18, 20, 18, 20, 18, &
74 20, 22, 20, 22, 20, 22, 23, 24, 26, 24, 24, 25, 26, 27, 28, 28, 26, 28, &
75 29, 30, 30, 28, 30, 31, 32, 32, 30, 32, 33, 34, 36, 34, 36, 34, 36, 37, &
76 38, 40, 38, 40, 38, 40, 41, 42, 42, 40, 42, 43, 44, 46, 44, 46, 42, 44, &
77 46, 47, 48, 50, 48, 46, 48, 49, 50, 50, 50, 51, 52, 54, 52, 50, 52, 53, &
78 54, 55, 56, 52, 54, 55, 56, 57, 58, 60, 58, 56, 58, 59, 60, 62, 64, 60, &
79 62, 58, 60, 62, 63, 64, 66, 64, 62, 64, 65, 66, 67, 68, 69, 70, 72, 74, &
80 70, 72, 68, 70, 71, 72, 73, 74, 74, 70, 72, 74, 75, 76, 77, 78, 80, 78, &
81 74, 76, 78, 79, 80, 81, 82, 82, 78, 80, 82, 84, 82, 82, 83, 85, 86, 88, &
82 82, 87, 88, 90, 92, 90, 90, 91, 92, 93, 94, 96, 94, 90, 92, 94, 95, 96, &
83 97, 98, 98, 94, 96, 98, 99, 100, 102, 100, 98, 100, 101, 102, 103, 104, 106, 104, &
84 104, 105, 106, 107, 108, 108, 108, 109, 110, 112, 110, 111, 112, 113, 114, 116, 114, 116, &
85 114, 116, 117, 118, 120, 118, 116, 118, 119, 120, 121, 122, 124, 122, 124, 122, 124, 125, &
87 integer,
dimension(numstable) :: zstable = &
88 (/ 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10, 10, 11, 12, 12, 12, &
89 13, 14, 14, 14, 15, 16, 16, 16, 16, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 20, 20, 21, 22, 22, &
90 22, 22, 22, 23, 24, 24, 24, 24, 25, 26, 26, 26, 26, 27, 28, 28, 28, 28, 28, 29, 29, 30, 30, 30, &
91 30, 30, 31, 31, 32, 32, 32, 32, 33, 34, 34, 34, 34, 34, 35, 35, 36, 36, 36, 36, 36, 36, 37, 38, &
92 38, 38, 38, 39, 40, 40, 40, 40, 41, 42, 42, 42, 42, 42, 42, 44, 44, 44, 44, 44, 44, 44, 45, 46, &
93 46, 46, 46, 46, 46, 47, 47, 48, 48, 48, 48, 48, 48, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, &
94 51, 51, 52, 52, 52, 52, 52, 52, 53, 54, 54, 54, 54, 54, 54, 54, 54, 55, 56, 56, 56, 56, 56, 56, &
95 56, 57, 58, 58, 58, 58, 59, 60, 60, 60, 60, 60, 62, 62, 62, 62, 62, 63, 64, 64, 64, 64, 64, 64, &
96 65, 66, 66, 66, 66, 66, 66, 66, 67, 68, 68, 68, 68, 68, 68, 69, 70, 70, 70, 70, 70, 70, 70, 71, &
97 72, 72, 72, 72, 72, 73, 74, 74, 74, 74, 75, 76, 76, 76, 76, 76, 77, 77, 78, 78, 78, 78, 78, 79, &
98 80, 80, 80, 80, 80, 80, 80, 81, 81, 82, 82, 82, 82 /)
101 if ((n .gt. maxval(nstable)) .or. (n .lt. minval(nstable)))
then
103 elseif ((z .gt. maxval(zstable)) .or. (z .lt. minval(zstable)))
then
107 if ((n .eq. nstable(i)) .and. (z .eq. zstable(i)))
then
134 real(
r_kind),
intent(in) :: temp
135 real(
r_kind),
dimension(0:net_size),
intent(out) :: interpol
139 real(
r_kind) :: lpfk, lpfkl
153 interpol(i) =
isotope(i)%part_func(1)
155 elseif (k .eq.
ntgp+1)
then
161 lpfk = dlog(
isotope(i)%part_func(k))
162 lpfkl = dlog(
isotope(i)%part_func(k-1))
164 interpol(i) = dexp(lpfkl + (temp-
t9_data(k-1))*grad)
192 real(
r_kind),
intent(in) :: t9
196 t9_pow(4) = t9**(1.d0/3.d0)
221 real(
r_kind),
dimension(:),
intent(in) :: y
222 real(
r_kind),
intent(out) :: ye
247 integer,
intent(in) :: nr_react
248 integer,
intent(in) :: nr_prod
252 if ((nr_react .eq. 1) .and. (nr_prod .eq. 1))
then
254 elseif ((nr_react .eq. 1) .and. (nr_prod .eq. 2))
then
256 elseif ((nr_react .eq. 1) .and. (nr_prod .eq. 3))
then
258 elseif ((nr_react .eq. 2) .and. (nr_prod .eq. 1))
then
260 elseif ((nr_react .eq. 2) .and. (nr_prod .eq. 2))
then
262 elseif ((nr_react .eq. 2) .and. (nr_prod .eq. 3))
then
264 elseif ((nr_react .eq. 2) .and. (nr_prod .eq. 4))
then
266 elseif ((nr_react .eq. 3) .and. (nr_prod .eq. 1))
then
268 elseif ((nr_react .eq. 3) .and. (nr_prod .eq. 2))
then
270 elseif ((nr_react .eq. 4) .and. (nr_prod .eq. 2))
then
272 elseif ((nr_react .eq. 1) .and. (nr_prod .eq. 4))
then
277 ", nr. products: "//
int_to_str(nr_prod)//
").",&
278 "get_nr_educts",320004)
303 integer,
intent(in) :: group
320 "get_nr_reactants",320003)
347 integer,
intent(in) :: group
364 "get_nr_products",320003)
386 real(
r_kind),
dimension(:),
intent(in) :: y
387 real(
r_kind),
intent(out) :: m_tot
424 character(len=max_fname_len),
intent(in) :: input_string
425 character(len=4),
dimension(:),
allocatable,
intent(out) :: output_array
426 integer,
intent(out) :: length_output
430 character(len=50) :: help_string
431 character,
parameter :: delimiter =
";"
433 info_entry(
"analyze_src_string")
436 if (trim(adjustl(input_string)) .eq.
"")
then
438 allocate(output_array(1))
446 if (input_string(i:i) .eq. delimiter) length_output = length_output + 1
449 allocate(output_array(length_output))
454 if (input_string(i:i) .eq. delimiter)
then
456 output_array(count) = trim(adjustl(help_string))
457 output_array(count) = adjustr(output_array(count))
460 help_string = trim(adjustl(help_string))//input_string(i:i)
463 output_array(count+1) = trim(adjustl(help_string))
465 info_exit(
"analyze_src_string")