\subsection{The \moc{CRE:} module}\label{sect:cre}

The \moc{CRE:} module is used for the recovering and interpolation of nuclear
properties from one or many \dds{compo} objects, originated from the transport
calculations using lattice code DRAGON. A resulting \dds{macrolib}
will be created (or updated) by the \moc{CRE:} module, it will contain the nuclear
properties of some selected reactor materials.\\

\noindent
Two types of \dds{macrolib} can be constructed using the \moc{CRE:} module:

\begin{itemize}

\item  A \dds{macrolib} that will be constructed for the few reactor materials,
namely for the devices and/or reflector properties. It can also be created for
the few fuel regions defined in the reactor core. This \dds{macrolib} is
permitted to be updated for the new properties in the subsequent calls to the
\moc{CRE:} module.
\item A fuel-map \dds{macrolib} that will be constructed over the fuel lattice
only. This \dds{macrolib} will contain a set of interpolated fuel properties with
respect to the burnup distribution over the fuel lattice and according to the
interpolation option defined in the \dds{fmap} object. The total number of mixtures
in the resulting \dds{macrolib} will equal to the total number of fuel bundles.
\end{itemize}

\noindent
Note that the \moc{CRE:} module can be used only with the mono-parameter
\dds{compo} objects and the nuclear properties can be interpolated only with
respect to the burnup data. In case of the \dds{macrolib} construction from a
multi-parameter database, the \moc{NCR:} module should be used instead.
In this case, the interpolation of nuclear properties can be made with respect
to global and local parameters, if they were previously specified in the fuel-map
(see \Sect{resiniaram}).\\

\noindent
The \moc{CRE:} module specifications are:

\begin{DataStructure}{Structure \moc{CRE:}}
$\{$ \dusa{MACRO} \moc{:=} \moc{CRE:} $[$ \dusa{MACRO} $]$
$[[$ \dusa{CPO} $]]$  \moc{::} \dstr{desccre1} $|$ \\
~~~\dusa{MACFL} \moc{:=} \moc{CRE:} $[[$ \dusa{CPO} $]]$
\dusa{FMAP} \moc{::} \dstr{desccre2} $\}$
\end{DataStructure}

\noindent where
\begin{ListeDeDescription}{mmmmmmmm}

\item[\dusa{MACRO}] \texttt{character*12} name of the \dds{macrolib}
object to be created or updated for the few reactor material properties.
Note that if \dusa{MACRO} appears on the RHS, the information previously
stored in \dusa{MACRO} is kept.

\item[\dusa{CPO}] \texttt{character*12} name of the \dds{compo} object
containing the mono-parameter database from transport calculations.

\item[\dusa{MACFL}] \texttt{character*12} name of the fuel-map \dds{macrolib}
that will be created only for the fuel properties over the fuel lattice.

\item[\dusa{FMAP}] \texttt{character*12} name of the \dds{fmap} object
containing the fuel-map specification and burnup informations.

\item[\dstr{desccre1}] structure describing the input data to the \moc{CRE:}
module when the \dds{fmap} object is not specified.

\item[\dstr{desccre2}] structure describing the input data to the \moc{CRE:}
module for the fuel-map \dds{macrolib} construction.

\end{ListeDeDescription}

\subsubsection{Input data for the \moc{CRE:} module}

\begin{DataStructure}{Structure \dstr{desccre1}}
$[$ \moc{EDIT} \dusa{iprint} $]$ \\
$[$ \moc{NMIX} \dusa{nmix} $]$ \\
\moc{READ} $[[$ \moc{COMPO} \dusa{CPO} \dstr{descdata1} $]]$ \\
;
\end{DataStructure}

\begin{DataStructure}{Structure \dstr{desccre2}}
$[$ \moc{EDIT} \dusa{iprint} $]$ \\
\moc{READ} $[[$ \moc{TABLE} \dusa{CPO} \dstr{descdata2} $]]$ \\
;
\end{DataStructure}

\goodbreak
\noindent where
\begin{ListeDeDescription}{mmmmmmmm}

\item[\moc{EDIT}] keyword used to set \dusa{iprint}.

\item[\dusa{iprint}] integer index used to control the printing of
information on screen: = 0 for no print; = 1 for minimum printing;
larger values will produce increasing amounts of output.

\item[\moc{NMIX}] keyword used to define the number of material
mixtures \dusa{nmix}. This data must be given only if \dusa{MACRO}
is created and the \dds{fmap} object is not specified.

\item[\dusa{nmix}] integer maximum number of reactor material mixtures,
as defined in the reactor geometry.

\item[\moc{READ}] keyword used to read the \dds{macrolib} specification
from the input data file.

\item[\moc{COMPO}] keyword used to indicate a simple \dds{macrolib} creation,
i.e. according to the first calling specification when \dds{fmap} object is not specified.

\item[\moc{TABLE}] keyword used to indicate a fuel-map \dds{macrolib} creation,
i.e. according to the second calling specification with \dds{fmap} object specified.

\item[\dusa{CPO}] \texttt{character*12} name of the selected \dds{compo} object.
This name must appear in the calling specification to the \moc{CRE:} module.

\item[\dstr{descdata1}] structure containing the interpolation specification if
\moc{COMPO} is the selected option.

\item[\dstr{descdata2}] structure containing the interpolation specification if
\moc{TABLE} is the selected option.

\end{ListeDeDescription}

\begin{DataStructure}{Structure \dstr{descdata1}}
$[[$ \moc{MIX} \dusa{mix} \dusa{NAMDIR} $~[$ \moc{DERIV} $]~[$ \moc{UPS} $]$ \\
~~~~$[$ $\{$ \moc{I-BURNUP} \dusa{burn} $|$ \moc{T-BURNUP} \dusa{burn0} \dusa{burn1} $\}$ $]$ \\
~~~~$[$ \moc{MICRO} $\{$ $[[$ \dusa{HISO} $\{$ \dusa{conc} $|$ \moc{*} $\}$ $]]~|$ \moc{ALL} $\}$ $]$ \\
\moc{ENDMIX} $]]$
\end{DataStructure}

\begin{DataStructure}{Structure \dstr{descdata2}}
$[[$ \moc{MIX} \dusa{mix} \dusa{NAMDIR} $~[$ \moc{DERIV} $]~[$ \moc{UPS} $]$ \\
~~~~$[~\{$~\moc{TIMAV-BURN} $|$ \moc{INST-BURN} $|$ \moc{AVG-EX-BURN}~\dusa{ivarty}~$\}~]$ \\
~~~~$[$ \moc{MICRO} $\{$ $[[$ \dusa{HISO} $\{$ \dusa{conc} $|$ \moc{*} $\}$ $]]~|$ \moc{ALL} $\}$ $]$ \\
\moc{ENDMIX} $]]$
\end{DataStructure}

\noindent where
\begin{ListeDeDescription}{mmmmmmmm}

\item[\moc{MIX}] keyword used to set the material mixture \dusa{mix}.

\item[\dusa{mix}] integer identifier for the material mixture that will be
included in the \dds{macrolib}. The maximum number of identifiers
permitted is \dusa{nmix} and the maximum value that \dusa{mix} may
have is \dusa{nmix}. Note that if \moc{TABLE} is the selected option,
then \dusa{mix} identifies the fuel type as defined in the reactor geometry.

\item[\dusa{NAMDIR}] \texttt{character*12} directory name in the
\dusa{CPO} object from which the nuclear properties for material
mixture \dusa{mix} are to be recovered.

\item[\moc{DERIV}] keyword used to compute the derivative of the
\dds{macrolib} information with respect to \dusa{burn} or \dusa{burn1}
value. By default, the \dds{macrolib} information is not differentiated.

\item[\moc{UPS}] keyword used to compute properties with no
up-scattering contribution.

\item[\moc{TIMAV-BURN}] keyword used to compute time-averaged cross-section information.
This option is available {\sl only if} \moc{TABLE} is the selected option.
By default, the type of calculation (\moc{TIMAV-BURN} or \moc{INST-BURN})
is recovered from the \dusa{FMAP} object.

\item[\moc{INST-BURN}] keyword used to compute cross-section information
at specific bundle burnups. This option is available {\sl only if} \moc{TABLE} is the selected option.
By default, the type of calculation (\moc{TIMAV-BURN} or \moc{INST-BURN})
is recovered from the \dusa{FMAP} object.

\item[\moc{AVG-EX-BURN}] keyword used to compute the derivatives of cross-section
information relative to the exit burnup of a single combustion zone. The derivatives are
computed using Eq.~(3.3) of Ref.~\citen{chambon}, written as
$$
{\partial \bar\Sigma_x\over \partial B_j^{\rm e}}={1\over B_j^{\rm e}\, (B_{j,k}^{\rm eoc}-B_{j,k}^{\rm boc})}
\left[- \int_{B_{j,k}^{\rm boc}}^{B_{j,k}^{\rm eoc}}dB \, \Sigma_x(B)+B_{j,k}^{\rm eoc}\, \Sigma_x(B_{j,k}^{\rm eoc})-B_{j,k}^{\rm boc}\, \Sigma_x(B_{j,k}^{\rm boc})\right]
$$

\noindent where $B_{j,k}^{\rm boc}$, $B_{j,k}^{\rm eoc}$, and $B_j^{\rm e}$ are the beginning of cycle burnup of bundle $\{j,k\}$, end of cycle burnup of bundle $\{j,k\}$ and exit burnup of channel $j$. This option is available {\sl only if} \moc{TABLE} is the selected option.

\item[\dusa{ivarty}] index of the combustion zone for differentiation of cross-section information.

\item[\moc{I-BURNUP}] keyword used to perform a single interpolation
and to set the burnup interpolation value \dusa{burn}.

\item[\dusa{burn}] real interpolation value of the burnup, given in
MW$\cdot$day per tonne of initial heavy elements.

\item[\moc{T-BURNUP}] keyword used to perform a time-average
\dds{macrolib} evaluation between the burnup values \dusa{burn0}
and \dusa{burn1}.

\item[\dusa{burn0}] real initial value of the burnup, given in MW$\cdot$day
per tonne of initial heavy elements.

\item[\dusa{burn1}] real final value of the burnup, given in MW$\cdot$day
per tonne of initial heavy elements.

\item[\moc{MICRO}] keyword used to set the number densities of the extracted
isotopes present in the \dds{compo} linked list or \dds{xsm} file. By default, the
extracted isotopes are not added to the resulting \dds{macrolib}.

\item[\dusa{HISO}] \texttt{character*12} name of an extracted isotope.

\item[\dusa{conc}] user-defined real number density of the extracted isotope,
given in $10^{24}$ particles per ${\rm cm}^3$.

\item[\moc{*}] keyword used to indicate that the number density for the
isotope \dusa{HISO} will be recovered from the \dds{compo} object.

\item[\moc{ALL}] keyword used to indicate that all the number densities are to
be recovered from the \dds{compo} object.

\item[\moc{ENDMIX}] keyword used to indicate the end of data specification
for the material mixture \dusa{mix}.

\end{ListeDeDescription}
\clearpage
