WRITE (iocmcf, & '("MCFGEN Date:", i8, 5x, "Library type:", i3)') & i_date, nclibtypHere, the date is in the format such that 12 January 1995 is written as 950112. The code for the library type is
WRITE(iocmcf,'("Source Library Id Word:", i12, & 5x, "Last Changed:", 2x, i6)') & libid, libdateHere, libid is meant to be the library identifier packed in some format, but it is not clear what the components are. The convention given on page 16 of reference [3] is only followed for incident photons, because all of the other `mcf.asc' files have
WRITE(iocmcf,'(i6, 12x, i3, 3x, i3,44x,"*")') & nnza, negi, numcsHere, the meaning of the entries is:
WRITE(iocmcf,'(1p, i2,4e11.4,1x,i6)') & iyi, halflife, elvfd, tmpfd, atm, rpdateThe meaning of the entries is:
WRITE(iocmcf, '(24i3)') & (C_clean(c_count), c_count=1, numcs)
WRITE(iocmcf, '(i4, i7, 1x, a8)') & flag, number, string
The type of data is identified by means of the flag. The
dentification is unique in all cases except that
= 12
has two interpretations--its most common usage is as the flag for
energy distributions (
= 4), but it also used for
the angular distribution of gammas. The header line must be used
to distinguish them. A point to be aware of is that for
= 1 and 2 there is no header line. But these two data
blocks appear only with the first target, and they come
immediately after the list of reactions, before the rest of the
data. We list the types of data blocks ordered in terms of flag because that is what is used by the code mcfbin which
reads the `mcf.asc' file. The user who is accustomed to
working in terms of the data identifier I_number should
consult the following list.
The content of the data blocks as ordered by flag is as follows.
WRITE(iocmcf, '(1p, 6e11.4)') (ebound(j), j=1, nebi)
WRITE(iocmcf, '(1p, 6e11.4)') & (temture(j), j=1, numtemp)
WRITE(iocmcf, '(i4, i2, 1x, a16)') & flag, number, stringFor prompt neutrons we have
WRITE(iocmcf, '(1p, 5i5, 5x, 3e12.5)') & c, I_number, s, igsrt, igend, q0, x1The meaning of these entries is:
WRITE(iocmcf, '(1p, 6e11.4)') & (array(j), j=igsrt, igend)
WRITE(iocmcf, '(1p, 6i5, 3e12.5)') & c, I_number, s, igsrt, igend, & kin_type, q0, x1, temptureThe differences from the header for
The cross section data follows,
WRITE(iocmcf, '(1p, 6e11.4)') & (gpsig0(j), j=igsrt, igend)
The cross section data is followed immediately in the file (without an identification flag) by a line containing the number of particles produced by this reaction, including the residual nucleus.
WRITE(iocmcf, '(i2)') parts_produced(1, nrc)Then come the secondary particles and their multiplicities as pairs (yo, multiplicity). The residual nucleus is the last particle, unless it is light enough to be included with the other secondary particles.
WRITE(iocmcf, '(15i6)') (parts_produced(j, nrc), & j=2, parts_produced(1, nrc)*2 + 1)
WRITE(iocmcf, '(1p, 6e11.4)') & (av_en_avail(j), j=igsrt, igend)
WRITE(iocmcf, '(1p, 6e11.4)') & (qbargp(j), j=igsrt, igend)
WRITE(iocmcf, '(1p, 6e11.4)') & (e10barg(io), io = igsrt, igend)
WRITE(iocmcf, '(1p, 6e11.4)') & (array(j), j=igsrt, igend)
WRITE(iocmcf, '(1p, 4i5, 5x, i5, 3e12.5)') & c, I_number, s, num_engy_in, neqpb, q0, x1For this value of the flag the data identifier I_number is 1. The unusual item in the header is neqpb, the number of equiprobable angular bin edges. (The number of bins is one less.) The first data entries are the incident energies in the format,
WRITE(iocmcf, '(1p, 6e11.4)') & (energy_in(k), k=1, num_engy_in)The equiprobable angular bin boundaries are concatenated into a single long array, with a block for each incident energy. The entries are printed in the format,
WRITE(iocmcf, '(1p, 6e13.6)') & (cpdi2(k), k=1, neqpb*num_engy_in)
WRITE(iocmcf, '(1p, 6i5, 3e12.5)') & c, I_number, s, num_engy_in, & nppbe, neqint, q0, x1
Here, the value of I_number is 3. The number of
equiprobable angular bin edges is
, and the number
of equiprobable energy bin edges is
. Just as
for
= 10 (equiprobable energy distributions), the
block starts with the incident energies in the format,
WRITE(iocmcf, '(1p, 6e11.4)') & (energy_in(k), k=1, num_engy_in)
The joint energy-angle distributions are printed in sections. Each section contains, first, an equiprobable angular bin boundary point
WRITE(iocmcf, '(1p, 6e11.4)') & I1_equi_cos(k, engy_index)There follows the equiprobable energy bin boundaries for this cosine,
WRITE(iocmcf, '(1p, 6e13.6)') & (equi_engy(j), j=1, neqint)
WRITE(iocmcf,'(1p, 4i5, 5x, i5, 3e12.5)') & c, I_number, s, num_engy_in, & neqpb, q0, x1This is standard header information except for neqpb, the number of equiprobable energy bin edges. (The number of bins is
WRITE(iocmcf, '(1p, 6e11.4)') & (energy_in(k), k=1 ,num_engy_in)The equidistributed energy deposition bin boundaries for the various incident energies are concatenated into a single array, and this array is printed in the format,
WRITE(iocmcf, '(1p, 6e13.6)') & (cpdi2(k), k=1, neqpb*num_engy_in)
WRITE(iocmcf, '(1p, 5i5, 5x, 3e12.5)') & c, I_number, s, 2, 2, q0, x1In this case x1 is the energy of the ejected gamma. This line is followed by the energy range
WRITE(iocmcf, '(1p, 6e11.4)') emin, emaxand by the energy of the ejected gamma, four more times!
WRITE(iocmcf, '(1p, 4e13.6)') (x1, i0 = 1, 4)Note that this is the only situation in which the values of emin and emax get printed, even though they are present with all of the data in the `library' file.
WRITE(iocmcf, '(1p, 4i5, 2e12.5)') & c, I_number, s, ndata, q0, x1Here, the value of I_number is 941, and ndata is the length of the data. The scattering form factors are given in the format,
WRITE(iocmcf, '(1p, 6e11.4)') & (scats(j), j=1, ndata)
Incidentally, if
= 1 (grid-based data), there is an
extra phoney-target line containing the interpolation type used for
each value of I_number. The format of this line is,
WRITE(iocmcf,'("999999" / "MCFGEN Date:", i8, & 5x, "Library type:", i3,/, & 3x, i3, " (0) ", & i3, " (7) ", & i3, " (9) ", & i3, " (10) ", & i3, "(94x) ")' & ) i_date, 1, (interp_typ(count), count=1, 5)These entries have the following meanings.