Network Generator
Fortran Routine
This fortran routine
provides the reaction rates v(i) (i=1,ireac) for temperature T and
density RHO from a linear interpolation of the log of the grid-point
rates read from the file tmp'your_IP_address'.rates containing the
output from Netgen and renamed 'vit.dat'.
This program requires the input file to be named 'vit.dat'.
More instructions may be found in the comments just following the statement
'subroutine vit'.
VARIABLES:
- T = temperature (K)
- RHO = density (g cm-3)
- PME = mean molecular weight per electron
- NGRID = maximum number of temperature grid points (currently 250; may be lowered to better match the actual size)
- NRE = maximum number of reactions (currently 10000; may be lowered to better match the actual size)
- KGRID = actual number of grid points (adjusted automatically)
- IREAC = actual number of reactions (adjusted automatically)
- IREAD = 0: The first call to subroutine vit should be done with
iread = 0 to read the vit.dat file first, fill-in the vgrid array and compute the rates v(i)
- IREAD = 1: Subsequent calls to subroutine vit may be done with
iread = 1 to compute reaction rates at temperature T and density RHO, after the vgrid has been initialized by the first call with iread = 0
- TGRID(NGRID) = temperature grid
- VGRID(NGRID,NRE,11) = grid-point `rates' [Na sigma v or lambda(s^-1)], as read from the NetGen output file. NaN might be present in this file if the
user-defined temperature and/or density grid(s) extend(s) beyond the validity
range of the available data for the corresponding rate. In this case,
the program issues a warning and stops. The user should then either modify
his temperature and/or density grid(s) to match the data range, or (risky!)
extrapolate the reaction rate by hand to suppress the NaN in the rate
file.
The last index refers to the density grid for the weak interaction rates dependent upon electron number density. For the other reactions
(with FLAG(I) different from *****; see below), only vgrid(ngrid,nre,1) is relevant.
- V(I): `rate' at temperature T and density RHO for reaction I.
The evolution of the molar fraction Yj of species j due to
the reaction j1 + j2 -> j3 + j4 then writes: dYj/dt = +- V Yj1^n1 Yj2^n2,
where n1, n2 are the stoechiometric factors, and
where the - sign corresponds to the case where j is either j1 or j2, and
the + sign the case where j is either j3 or j4.
In other words, the required factorials accounting for identical
particles have already been included in V(i) when necessary,
as well as the proper density-dependence.
- REACTION(I)*37: character string coding reaction I
- Z1(I),Z2(I),Z3(I),Z4(I): 6-character string coding of the species involved in reaction I (Z1, Z2: reacting nuclei; Z3, Z4: daughter nuclei)
- N1(I),N2(I),N3(I),N4(I): stoechiometric factors for reaction I
- A1(I),A2(I),A3(I),A4(I): atomic masses of species involved in reaction I
- QRAD(I) = energy radiated away by reaction I
- QNU(I) = energy carried away by neutrinos in reaction I
For weak interaction rates dependent upon electron number density,
QNU(I) may also depend upon density and is therefore not listed (NaN)
in the NetGen rate file. A table with QNU as a function of temperature
and density may nevertheless be found in the NetGen log file.
This table is however not integrated in the present routine, which will
issue a warning and stop. The user should edit the data file to remove
these NaNs by hand.
- FLAG(I) = flag describing the type of reaction, and its processing to derive the rate:
- flag(i) = *****: beta-decay dependent upon electron density
- flag(i) = -14: electron capture on Be7: v(i) includes factor RHO / PME
and if (v(i).gt.1.51e-7.and.T8.lt.0.01) then v(i) = 1.51e-7
- flag(i) = -13: electron capture: v(i) includes factor RHO / PME
- flag(i) = -11: photodisintegration or beta-decay
- flag(i) = -10: two-particle reaction: v(i) includes factor RHO /f(n1(i))/f(n2(i)) (where f (n) = n!)
- flag(i) = -100: three-particle reactions: v(i) includes factor RHO * RHO /f(n1(i))/f(n2(i))
- flag(i) = -200: four-particle reactions: v(i) includes factor RHO * RHO * RHO / f(n1(i))/f(n2(i))
The last lines of subroutine vit print all variables to standard output,
to check that it worked properly
TOP