20 real(
r_kind),
dimension(:),
allocatable,
public ::
hv
21 real(
r_kind),
dimension(:),
allocatable,
public ::
htv
22 real(
r_kind),
dimension(:),
allocatable,
public ::
hpv
46 integer,
intent(in) :: nreac
52 allocate(
hv(nreac),
htv(nreac),
hpv(nreac),stat=istat)
54 if (istat .ne. 0)
then
55 call raise_exception(
'Could not allocate screening correction arrays.',&
56 'init_screening',400001)
80 real(
r_kind),
intent(in) :: t9, rho, ye
81 integer,
intent(in) :: mode,n
82 real(
r_kind) :: h1,ht1,hp1,h2,ht2,hp2,h3,ht3,hp3
83 integer :: i,z1,z2,z3,z4,z5,z6,a1,a2,a3,a4,a5,a6
86 select case (
rrate(i)%group)
96 call screening(t9,rho,z1,z2,a1,a2,ye,mode,h1,ht1,hp1)
109 call screening(t9,rho,z1,z2,a1,a2,ye,mode,h1,ht1,hp1)
110 call screening(t9,rho,z3,z4,a3,a4,ye,mode,h2,ht2,hp2)
127 call screening(t9,rho,z1,z2,a1,a2,ye,mode,h1,ht1,hp1)
128 call screening(t9,rho,z3,z4,a3,a4,ye,mode,h2,ht2,hp2)
129 call screening(t9,rho,z5,z6,a5,a6,ye,mode,h3,ht3,hp3)
152 real(
r_kind),
intent(in) :: gamma
155 real(
r_kind),
parameter :: a_1= -0.907
156 real(
r_kind),
parameter :: a_2= 0.62954
157 real(
r_kind),
parameter :: a_3= 0.2771
158 real(
r_kind),
parameter :: b_1= 0.00456
159 real(
r_kind),
parameter :: b_2= 211.6
160 real(
r_kind),
parameter :: b_3= -0.0001
161 real(
r_kind),
parameter :: b_4= 0.00462
163 f_c = a_1*( dsqrt(gamma*(a_2 + gamma)) - a_2 * dlog( dsqrt(gamma/a_2) + dsqrt(1d0+gamma/a_2))) &
164 +2d0*a_3 * (dsqrt(gamma)-datan(dsqrt(gamma))) &
165 +b_1 * (gamma - b_2 * dlog(1d0+gamma/b_2)) &
166 +b_3/2d0 * dlog(1d0 + gamma**2d0 / b_4)
180 subroutine screening(t9,rho,z1,z2,a1,a2,ye,mode,h,ht,hp)
184 integer,
intent(in) :: mode
187 real(
r_kind),
intent(in) :: t9
188 real(
r_kind),
intent(in) :: rho
189 integer,
intent(in) :: z1,z2
190 integer,
intent(in) :: a1,a2
191 real(
r_kind),
intent(in) :: ye
192 real(
r_kind),
intent(out) :: h
193 real(
r_kind),
intent(out) :: ht
194 real(
r_kind),
intent(out) :: hp
196 integer,
parameter :: screen_mode =1
198 if (screen_mode .eq. 1)
then
199 call screening_kravchuk_yakovlev(t9,rho,z1,z2,a1,a2,ye,mode,h,ht,hp)
220 subroutine screening_kravchuk_yakovlev(t9,rho,z1,z2,a1,a2,ye,mode,h,ht,hp)
223 integer,
intent(in) :: mode
226 real(
r_kind),
intent(in) :: t9
227 real(
r_kind),
intent(in) :: rho
228 integer,
intent(in) :: z1,z2
229 integer,
intent(in) :: a1,a2
230 real(
r_kind),
intent(in) :: ye
231 real(
r_kind),
intent(out) :: h
232 real(
r_kind),
intent(out) :: ht
233 real(
r_kind),
intent(out) :: hp
253 if(z1.eq.0 .or. z2.eq.0)
then
267 zz = 2.d0*z1r*z2r/(z1r**(1.d0/3.d0)+z2r**(1.d0/3.d0))
268 tau = 3.3722d0*(2.d0*a1*a2/(a1+a2)*(z1r*z2r)**2/t9)**(1.d0/3.d0)
269 gamma_12= zz*0.22747d-3*(rho*ye)**(1.d0/3.d0)/t9
274 gamma_1= zz*0.22747e-3*(rho*ye)**(1.e0/3.e0)/t9
277 gamma_2= zz*0.22747e-3*(rho*ye)**(1.e0/3.e0)/t9
279 zz=(z1r+z2r)**(5.0/3.0)
280 gamma_c= zz*0.22747e-3*(rho*ye)**(1.e0/3.e0)/t9
288 b2 = -1d0/(16d0) * (1d0+zfrac**(1d0/3d0))**3d0 / (1d0 + zfrac)
290 b4 = zfrac/(64d0) * (1d0+zfrac**(1d0/3d0))**5d0 / ((1d0 + zfrac)**(11d0/3d0))
293 h = gamma_12 * ( b0 + 5d0/8d0*b2*xi**2d0 + 63d0/128d0*b4*xi**4d0 )
298 'screening_kravchuk_yakovlev', 400004)