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 = 103940000.
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 = 0 and the label string is "nubar, prompt". For delayed neutrons we have the identifier = 1 and string is "nubar, delayed". The flag line is followed by a header of the form,
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 = 3 are
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 - 1.) The data is in two sets. First, we have the incident energies,
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.