\section{Contents of a \dir{saphyb} directory}\label{sect:sapdir}

This object is used to collect information gathered
from many DRAGON {\sl elementary calculations} performed under various conditions.
Each elementary calculation is characterized by a tuple of {\sl global parameters}.
These global parameters are of different types, depending on the nature of the
study under consideration: type of assembly, power, temperature in a mixture,
concentration of an isotope, time, burnup or exposure rate in a depletion calculation,
etc. Each step of a depletion calculation represents an elementay calculation.
The {\sc saphyb} object is often presented as a {\sl multi-parameter reactor database}.
It is used in the SAPHYR code system.

\vskip 0.1cm

The {\sc saphyb} object contains table-of-content information apart from a set of specific
{\sl elementary calculation} directories. These directories are themselve subdivided
into {\sl homogenized mixture} directories. The localization of an elementary calculation
is done using a tuple of global parameters. The elementary calculation indices are
stored in a tree with the number of levels equal to the number of global parameters.
An example of a tree with three global parameters is shown in \Fig{tree}. Each node
of this tree is associated with the index of the corresponding global parameter and with the
reference to the daughter nodes if they exist. The number if leafs is equal to the number
of nodes for the last (third) parameter and is equal to the number of elementary
calculations stored in the {\sc saphyb} object. The index of each elementary calculation is
therefore an attribute of each leaf.

\begin{figure}[h!]  
\begin{center} 
\epsfxsize=12cm
\centerline{ \epsffile{tree.eps}}
\parbox{14cm}{\caption{Global parameter tree in a {\sc saphyb} object}\label{fig:tree}}   
\end{center}  
\end{figure}

\vskip 0.1cm

In each homogenized mixture directory, the {\tt SAP:} module recovers
cross sections for a number of {\sl particularized isotopes} and {\sl macroscopic
sets}, a collection of isotopic cross sections weighted by isotopic number densities.
Cross sections for particularized isotopes and macroscopic sets are recovered for
{\sl selected reactions}. Other information is also recovered: multigroup neutron
fluxes, isotopic number densities, fission spectrum and a set
of {\sl local variables}. The local variables are values that characterize each
homogenized mixture: local power, burnup, exposure rate, etc. Some local variables
are arrays of values (eg: SPH equivalence factors). Finally, note that cross section
information written on the {\sc saphyb} is {\sl not} transport corrected and {\sl not}
SPH corrected.

\subsection{The main \dir{saphyb} directory}\label{sect:sapdirmain}

On its first level, the
following records and sub-directories will be found in the \dir{saphyb} directory:

\begin{DescriptionEnregistrement}{Main records and sub-directories in \dir{saphyb}}{8.0cm}
\CharEnr
  {SIGNATURE\blank{3}}{$*12$}
  {Signature of the data structure $\mathsf{SIGNA}$}
\CharEnr
  {TITLE\blank{7}}{$*80$}
  {Signature of the data structure (for this level of specification,$=${\tt'SAPHYB LIBRARY VER, 0.02'})}
\CharEnr
  {NOMLIB\blank{6}}{$*80$}
  {User--defined name of the data structure}
\IntEnr
  {DIMSAP\blank{6}}{$50$}
  {Vector describing the various parameters associated with this data structure $\mathcal{S}^{\tt sap}_{i}$}
\OptCharEnr
  {COMMEN\blank{6}}{$(N^{\tt sap}_1)*80$}{$\mathcal{S}^{\tt sap}_1> 0$}
  {User--defined comments about the data structure}
\DirEnr
  {constphysiq\blank{1}}
  {General physical data}
\DirEnr
  {contenu\blank{5}}
  {Content description}
\DirEnr
  {geom\blank{8}}
  {Geometric data}
\DirEnr
  {adresses\blank{4}}
  {General localization data for the cross sections}
\DirEnr
  {paramdescrip}
  {General localization data for the global parameters}
\DirEnr
  {paramarbre\blank{2}}
  {Global parameter tree}
\DirEnr
  {paramvaleurs}
  {Global parameter values}
\DirEnr
  {varlocdescri}
  {General localization data for the local variables}
\DirVar
  {\listedir{caldir}}
  {Set of $\mathcal{S}^{\tt sap}_{19}$ sub-directories containing the cross section information
   associated with a specific elementary calculation.}
\end{DescriptionEnregistrement}

The signature variable for this data structure must be $\mathsf{SIGNA}$=\verb*|L_SAPHYB    |.

\vskip 0.1cm

The name of each \listedir{caldir} directory is a {\tt character*12} variable ({\tt text12})
composed using the following FORTRAN instruction:
$$
\mathtt{WRITE(}\mathsf{text12}\mathtt{,'(''calc'',I8)')}\: J
$$
where $J$ is the index of the calculation with $1 \leq J \leq \mathcal{S}^{\tt sap}_{19}$.

\vskip 0.1cm

The dimensioning parameters for this data structure, which are stored in the state vector
$\mathcal{S}^{\tt sap}$ named {\tt DIMSAP}, are defined in the following table:

\vskip 0.1cm

\noindent\begin{tabular}{ p{1cm} p{2cm} p{11cm} }
\multicolumn{3}{ c }{Values in \moc{DIMSAP} } \\
\hline
   & {\tt DIMSAP}  &  \\
\hline
$\mathcal{S}^{\tt sap}_1$ & \moc{NCOMLI}   & Number of lines of comment \\
$\mathcal{S}^{\tt sap}_2$ & \moc{NISOTA}   & Number of isotopes in the reference cross section library \\
$\mathcal{S}^{\tt sap}_3$ & \moc{NCHANN}$^{*}$   & Number of types of radioactive decay reactions \\
$\mathcal{S}^{\tt sap}_4$ & \moc{NREA}$^{*}$     & Number of neutron--induced reaction \\
$\mathcal{S}^{\tt sap}_5$ & \moc{NISO}$^{*}$     & Number of particularized isotopes \\
$\mathcal{S}^{\tt sap}_6$ & \moc{NMAC}$^{*}$     & Number of macroscopic sets. \\
$\mathcal{S}^{\tt sap}_7$ & \moc{NMIL}     & Number of mixtures in the {\sc saphyb} \\
$\mathcal{S}^{\tt sap}_8$ & \moc{NPAR}     & Number of global parameters \\
$\mathcal{S}^{\tt sap}_9$ & \moc{NPCHR}    & Number of global parameters linked with isotopes \\
$\mathcal{S}^{\tt sap}_{10}$ & \moc{NPPNT}    & Number of global parameters linked with {\sc microlib} objects \\
$\mathcal{S}^{\tt sap}_{11}$ & \moc{NPARL}$^{*}$    & Number of local variables. \\
\hline
\end{tabular}
\goodbreak
\noindent\begin{tabular}{ p{1cm} p{2cm} p{11cm} }
\multicolumn{3}{ c }{Values in \moc{DIMSAP} (cntd.)} \\
\hline
 & {\tt DIMSAP}  &  \\
\hline
$\mathcal{S}^{\tt sap}_{12}$ & \moc{NPCHRL}$^{*}$   & Number of local variables linked with isotopes \\
$\mathcal{S}^{\tt sap}_{13}$ & \moc{NPPNTL}$^{*}$   & Number of local variables linked with {\sc microlib} objects\\
$\mathcal{S}^{\tt sap}_{14}$ & \moc{NISOF}$^{*}$    & Number of particularized fissile isotopes \\
$\mathcal{S}^{\tt sap}_{15}$ & \moc{NISOP}$^{*}$    & Number of particularized fission products \\
$\mathcal{S}^{\tt sap}_{16}$ & \moc{NMGY}     & Number of macrogroups for the fission yields ($=1$) \\
$\mathcal{S}^{\tt sap}_{17}$ & \moc{NVP}      & Number of nodes in the global parameter tree \\
$\mathcal{S}^{\tt sap}_{18}$ & \moc{NADRX}$^{*}$    & Number of address sets in array {\tt ADRX} \\
$\mathcal{S}^{\tt sap}_{19}$ & \moc{NCALS}    & Number of elementary calculations \\
$\mathcal{S}^{\tt sap}_{20}$ & \moc{NG}       & Number of energy groups in the {\sc saphyb} \\
$\mathcal{S}^{\tt sap}_{21}$ & \moc{NISOY}$^{*}$    & Number of particularized isotopes and macroscopic
sets for which fission yields are provided. \\
$\mathcal{S}^{\tt sap}_{22}$ & \moc{NVERS}    & Level of {\sc saphyb} specification ($=2$) \\
$\mathcal{S}^{\tt sap}_{23}$ &      & (not used) \\
$\mathcal{S}^{\tt sap}_{24}$ & \moc{NSURFS}   & Number of surfaces in the {\sc saphyb} \\
$\mathcal{S}^{\tt sap}_{25}$ &      & (not used) \\
$\mathcal{S}^{\tt sap}_{26}$ &      & (not used) \\
$\mathcal{S}^{\tt sap}_{27}$ &      & (not used) \\
$\mathcal{S}^{\tt sap}_{28}$ & \moc{NRT}      & Number of unknowns in the reference geometry \\
$\mathcal{S}^{\tt sap}_{29}$ &      & (not used) \\
$\mathcal{S}^{\tt sap}_{30}$ & \moc{NGA}      & Number of energy groups in the reference {\sc microlib} \\
$\mathcal{S}^{\tt sap}_{31}$ & \moc{NPRC}$^{*}$  & Number of delayed neutron precursors groups \\
$\mathcal{S}^{\tt sap}_{32}$ & \moc{NISOTS}  & Maximum number of isotopes in output tables ({\tt NISOTS~$\leq$~NISOTA}) \\
$\mathcal{S}^{\tt sap}_{33}$ & \moc{NMILNR}$^{*}$  & Number of mixtures in the {\sc saphyb} with delayed neutron data \\
\hline
\end{tabular}

\vskip 0.1cm

Elements of array {\tt DIMSAP} identified with ``{\tt *}" may be equal to zero. Consequently,
any array using these dimensions is optional.

\clearpage

\subsection{The {\tt constphysiq} sub-directory in \dir{saphyb}}\label{sect:sapdircons}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt constphysiq} in \dir{saphyb}}{7.0cm}
\CharEnr
  {ISOTA\blank{7}}{$(\mathcal{S}^{\tt sap}_2)*8$}
  {Alias names of isotopes in the reference {\sc microlib}.}
\CharEnr
  {ISOTYP\blank{6}}{$(\mathcal{S}^{\tt sap}_2)*4$}
  {Types of isotopes in the reference {\sc microlib}. $=${\tt 'FISS'}: fissile isotope;
  $=${\tt 'F.P.'}: fission product; $=${\tt '~'}: otherwise.}
\OptCharEnr
  {NOMLAM\blank{6}}{$(\mathcal{S}^{\tt sap}_3)*8$}{$\mathcal{S}^{\tt sap}_3\ge 1$}
  {Character identification of the available radioactive decay reactions.}
\RealEnr
  {ENRGA\blank{7}}{$\mathcal{S}^{\tt sap}_{30}+1$}{MeV}
  {Limits of the reference multigroup energy mesh.}
\RealEnr
  {ENRGS\blank{7}}{$\mathcal{S}^{\tt sap}_{20}+1$}{MeV}
  {Limits of the {\sc saphyb} multigroup energy mesh.}
\IntEnr
  {FGYS\blank{8}}{$\mathcal{S}^{\tt sap}_{16}+1$}
  {Indices limits in array {\tt ENERGS} of the  multigroup energy mesh for the fission yields.}
\end{DescriptionEnregistrement}

\subsection{The {\tt contenu} sub-directory in \dir{saphyb}}\label{sect:sapdircont}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt contenu} in \dir{saphyb}}{7.0cm}
\OptCharEnr
  {NOMISO\blank{6}}{$(\mathcal{S}^{\tt sap}_5)*8$}{$\mathcal{S}^{\tt sap}_5\ge 1$}
  {Names of the particularized isotopes.}
\OptCharEnr
  {NOMMAC\blank{6}}{$(\mathcal{S}^{\tt sap}_6)*8$}{$\mathcal{S}^{\tt sap}_6\ge 1$}
  {Names of the macroscopic sets.}
\OptIntEnr
  {TYPMAC\blank{6}}{$\mathcal{S}^{\tt sap}_6$}{$\mathcal{S}^{\tt sap}_6\ge 1$}
  {Types of the macroscopic sets. $=1$: select all the available isotopes in the macroscopic set;
  $=2$: remove all the particularized isotope contributions from the macroscopic set.}
\OptCharEnr
  {NOMREA\blank{6}}{$(\mathcal{S}^{\tt sap}_4)*12$}{$\mathcal{S}^{\tt sap}_4\ge 1$}
  {Names of the neutron--induced reactions (e.g.: {\tt TOTALE}, {\tt ABSORPTION}, {\tt FISSION}, etc.).}
\IntEnr
  {TOTMAC\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Indices in array {\tt NOMMAC} corresponding to total macroscopic sets (with {\sl all}
  isotopic contributions). $=0$ if a total macroscopic set is not defined.}
\IntEnr
  {RESMAC\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Indices in array {\tt NOMMAC} corresponding to residual macroscopic sets (with isotopic
  contributions for the non--particularized isotopes). $=0$ if a residual macroscopic set is not defined.}
\end{DescriptionEnregistrement}

\newpage
\subsection{The {\tt adresses} sub-directory in \dir{saphyb}}\label{sect:sapdirad}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt adresses} in \dir{saphyb}}{7.0cm}
\IntEnr
  {ISADRC\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Equal to array {\tt ISADRX} (in directory {\tt info}) for the last elementary calculation.}
\IntEnr
  {NISOMN\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Number of particularized isotopes in each output mixture for which cross section information
  is available in at least one elementary calculation.}
\OptIntEnr
  {ISOMIL\blank{6}}{$N^{\rm iso}$}{$N^{\rm iso}\ge 1$}
  {Array containing the particularized isotope indices in each output mixture.
  \hbox{$N^{\rm iso}=(\mathcal{S}^{\tt sap}_5+\mathcal{S}^{\tt sap}_6) \times \mathcal{S}^{\tt sap}_7$}}
\OptIntEnr
  {ADRX\blank{8}}{$N^{\rm adrx}$}{$N^{\rm adrx}\ge 1$}
  {Offsets in the array {\tt RDATAX} containing cross
  section information. If the first index corresponds to reaction {\tt PROFILE}, then {\tt ADRX}
  is the offset in the array {\tt IDATAP} containing
  the profile information of the transfer matrix.
  \hbox{$N^{\rm adrx}=(\mathcal{S}^{\tt sap}_4+2)\times(\mathcal{S}^{\tt sap}_5+\mathcal{S}^{\tt sap}_6)
  \times \mathcal{S}^{\tt sap}_{18}$}}
\end{DescriptionEnregistrement}

The array {\tt ADRX} gives the position of the first value of a cross section in array {\tt RDATAX}
or the first value of profile information in array {\tt IDATAP}. {\tt RDATAX} and {\tt IDATAP} are
located in sub-directory {\tt mili//'~~m'} of the sub-directory {\tt calc//'~~n'}.
For a given reaction with index {\tt irea} in array {\tt NOMREA} (in sub-directory {\tt contenu}),
for a particularized isotope with index {\tt isot} in array {\tt NOMISO} (in sub-directory {\tt contenu}),
and for an output mixture with index {\tt imil}, the first cross section value is located at position
{\tt ADRX(irea,isot,ISADRX(imil))} of array {\tt RDATAX}. {\tt ISADRX} is defined in the sub-directory
{\tt info} of an elementary calculation. If the address is zero, then the corresponding cross sections
are not defined.

\vskip 0.1cm

Information related to Legendre--dependent scattering information is given in the two
extra locations of the {\tt ADRX} array: {\tt ADRX(NREA+1,:,:)} contains the number of components for the
vectorial scattering cross sections (order of anisotropy $+1$); {\tt ADRX(NREA+2,:,:)} contains the
num\-ber of components for the (matrix) transfer cross sections (order of anisotropy $+1$).

\vskip 0.1cm

This system is designed in such a way to keep the value of $\mathcal{S}^{\tt sap}_{18}=${\tt NADRX} as
small as possible.

\newpage
\subsection{The {\tt geom} sub-directory in \dir{saphyb}}\label{sect:sapdirgeom}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt geom} in \dir{saphyb}}{7.0cm}
\CharEnr
  {NOMMIL\blank{6}}{$(\mathcal{S}^{\tt sap}_7)*20$}
  {Names of the output mixtures.}
\RealEnr
  {XVOLMT\blank{6}}{$\mathcal{S}^{\tt sap}_7$}{cm$^3$}
  {Volumes of the output mixtures.}
\OptRealEnr
  {SURFS\blank{7}}{$\mathcal{S}^{\tt sap}_{24}$}{$\mathcal{S}^{\tt sap}_{24}\ge 1$}{cm$^2$}
  {Surfaces of the output geometry.}
\OptDirEnr
  {outgeom\blank{5}}{*}
  {Surfacic data related to discontinuity factor information.}
\end{DescriptionEnregistrement}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt outgeom} in \dir{geom}}{7.0cm}
\RealEnr
  {SURF\blank{8}}{$N_{\rm nsurfd}$}{cm$^2$}
  {Surface assigned to each discontinuity factor.}
\end{DescriptionEnregistrement}

\subsection{The {\tt paramdescrip} sub-directory in \dir{saphyb}}\label{sect:sapdirparam}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt paramdescrip} in \dir{saphyb}}{7.0cm}
\IntEnr
  {NPAR\blank{8}}{$1$}
  {Number of global parameters.}
\IntEnr
  {NPCHR\blank{7}}{$1$}
  {Number of global parameters linked with isotopes.}
\CharEnr
  {PARNAM\blank{6}}{$(\mathcal{S}^{\tt sap}_8)*80$}
  {User--defined names for the global parameters.}
\CharEnr
  {PARKEY\blank{6}}{$(\mathcal{S}^{\tt sap}_8)*4$}
  {User--defined key-words for the global parameters.}
\CharEnr
  {PARTYP\blank{6}}{$(\mathcal{S}^{\tt sap}_8)*4$}
  {Character identification for the types of global parameters (eg: {\tt TEMP}, {\tt CONC}, {\tt IRRA}, etc.).}
\CharEnr
  {PARFMT\blank{6}}{$(\mathcal{S}^{\tt sap}_8)*8$}
  {User--defined names for the global parameters (eg: {\tt FLOTTANT}, {\tt CHAINE}, {\tt ENTIER}, etc.).}
\OptCharEnr
  {PARCHR\blank{6}}{$(\mathcal{S}^{\tt sap}_9)*8$}{$\mathcal{S}^{\tt sap}_9\ge 1$}
  {Isotope names linked to type--{\tt CONC} global parameters.}
\IntEnr
  {NVALUE\blank{6}}{$\mathcal{S}^{\tt sap}_8$}
  {Number of specific values for a global parameters.}
\IntEnr
  {PARCAD\blank{6}}{$\mathcal{S}^{\tt sap}_8+1$}
  {Address of the first element in array {\tt PARCHR}.}
\IntEnr
  {PARPAD\blank{6}}{$\mathcal{S}^{\tt sap}_8+1$}
  {Address of the first element in array {\tt PARBIB}.}
\OptIntEnr
  {PARMIL\blank{6}}{$\mathcal{S}^{\tt sap}_{10}$}{$\mathcal{S}^{\tt sap}_{10}\ge 1$}
  {Mixture indices linked to type--{\tt TEMP} or --{\tt CONC} global parameters.}
\OptCharEnr
  {PARBIB\blank{6}}{$(\mathcal{S}^{\tt sap}_{10})*12$}{$\mathcal{S}^{\tt sap}_{10}\ge 1$}
  {{\sc microlib} names linked to type--{\tt TEMP} or --{\tt CONC} global parameters.}
\end{DescriptionEnregistrement}
\goodbreak

Types and units of global parameters are defined as follows:

\noindent\begin{tabular}{ p{1cm} p{3cm} p{7cm} }
\hline
 & unit & description \\
\hline
{\tt TEMP} & $^{\rm o}$C & Temperature \\
{\tt CONC} & $10^{24}$/cm$^3$ & Number density \\
{\tt IRRA} & MW-day/tonne & Burnup \\
{\tt FLUB} & n/kb & Neutron exposure \\
{\tt TIME} & s & Time \\
{\tt PUIS} & MeV/s & Normalization power \\
{\tt MASL} & g/cm$^3$ & Mass density of heavy elements \\
{\tt FLUX} &  & Volume-averaged, energy-integrated flux \\
{\tt VALE} & (not defined) & User-defined parameter \\
\hline
\end{tabular}

\subsection{The {\tt paramvaleurs} sub-directory in \dir{saphyb}}\label{sect:sapdirparval}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt paramvaleurs} in \dir{saphyb}}{7.0cm}
\OptRealVar
  {\listedir{pvaldir}}{\tt NVALUE(J)}{*}{}
  {Set of real global parameter arrays. Each element of \listedir{pvaldir} contains a
   real array containing the tabulated values of the $J$--th global parameter.}
\OptIntVar
  {\listedir{pvaldir}}{\tt NVALUE(J)}{*}
  {Set of integer global parameter arrays.  Each element of \listedir{pvaldir} contains an
   integer array containing the tabulated values of the $J$--th global parameter.}
\OptCharVar
  {\listedir{pvaldir}}{$({\tt NVALUE(J)})*12$}{*}
  {Set of character$*12$ global parameter arrays. Each element of \listedir{pvaldir} contains a
   character$*12$ array containing the tabulated values of the $J$--th global parameter.}
\end{DescriptionEnregistrement}

\listedir{pvaldir} is a set of $\mathcal{S}^{\tt sap}_8$ real,
integer or character*$12$ records. The name of each
\listedir{pvaldir} record is a {\tt character*12} variable ({\tt text12})
composed using the following FORTRAN instruction:
$$
\mathtt{WRITE(}\mathsf{text12}\mathtt{,'(''pval'',I8)')}\: J
$$
where $J$ is the index of the global parameter with $1 \leq J \leq \mathcal{S}^{\tt sap}_8$. The global
parameter values of type {\tt REAL} or {\tt INTEGER} are sorted.

\subsection{The {\tt paramarbre} sub-directory in \dir{saphyb}}\label{sect:sapdirarbre}

The global parameter tree has the same number of stages as global parameters. For each value of
the $i$--th global parameter, the tree indicates the beginning position of the $(i+1)$--th parameter.
The arrays {\tt DEBARB} and {\tt ARBVAL} are set to localize the results of an elementary calculation
identified by a specific parameter tuple.

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt paramarbre} in \dir{saphyb}}{7.0cm}
\label{tabl:tabtree}
\IntEnr
  {NCALS\blank{7}}{$1$}
  {Number of elementary calculations.}
\IntEnr
  {DEBARB\blank{6}}{$\mathcal{S}^{\tt sap}_{17}+1$}
  {- If the node does not correspond to the last parameter:
     index in {\tt DEBARB} of the first daughter of the node.
   - If the node correspond to the last parameter: index in
     {\tt DEBARB} where we recover the index of an elementary
     calculation.}
\IntEnr
  {ARBVAL\blank{6}}{$\mathcal{S}^{\tt sap}_{17}$}
  {Index of the corresponding parameter in the {\tt pval//'~~n'} record.}
\IntEnr
  {ORIGIN\blank{6}}{$\mathcal{S}^{\tt sap}_{19}$}
  {Index of the mother elementary calculation. This information is useful to follow the
  historical relation between calculations.}
\end{DescriptionEnregistrement}

An example of a global parameter tree is represented here:
\begin{verbatim}
     dn = value in DEBARB,  (m) = value in ARBVAL

     Root                          *(0)
                                     !
     Param. Nb 1                  d2(1)
                            -------------------
                           !                   !
     Param. Nb 2        d3(1)                4(2)
                       ---------           ---------
                      !         !         !    !    !
     Param. Nb 3   d5(1)      6(3)     d7(1) 8(2) 9(3)   d10

     Calculation Nb:  4         5         1    2    3

     DEBARB:      2  3  5  7 10  4  5  1  2  3
     ARBVAL:      0  1  1  2  1  3  1  2  3
\end{verbatim}

The dimensions of variables {\tt DEBARB}, {\tt ARBVAL} and {\tt ORIGIN} in Table~\ref{tabl:tabtree} represent
the useful size, not the allocated size which may be bigger. The allocated size of these arrays may be obtained
using the LCM API ({\tt LCMLEN} with the Fortran API).

\vskip 0.1cm

Each elementary calculation is fully identified by a global parameter tuple, an integer array of dimension
$\mathcal{S}^{\tt sap}_8=${\tt NPAR}. A recursive program can be used to search the elementary calculation
index {\tt ICAL} corresponding to a parameter tuple represented in the Fortran array {\tt MUPLET(NPAR)}.
The recursive function is called using
\begin{verbatim}
      ICAL=NICAL(1,NVP,NPAR,DEBARB,ARBVAL,MUPLET)
\end{verbatim}

\noindent and is implemented in Fortran-90 as
\begin{verbatim}
RECURSIVE INTEGER FUNCTION NICAL(II,NVP,NPAR,DEBARB,ARBVAL,MUPLET) RESULT(ICAL)
   INTEGER II,NVP,NPAR,DEBARB(NVP+1),ARBVAL(NVP),MUPLET(NPAR)
   IF(NPAR==0) THEN
      ICAL=DEBARB(II+1)
      RETURN
   ENDIF
   NBOK=0
   IKEEP=0
   DO I=DEBARB(II),DEBARB(II+1)-1
      IF((MUPLET(1)==0).OR.(MUPLET(1)==ARBVAL(I))) THEN
         JICAL=NICAL(I,NVP,NPAR-1,DEBARB,ARBVAL,MUPLET(2))
         IF(JICAL > 0) THEN
            IKEEP=JICAL
            NBOK=NBOK+1
         ELSE IF(JICAL==-1) THEN
            NBOK=2
         ENDIF
      ENDIF
   ENDDO
   IF(NBOK > 1) THEN
      ! Many elementary calculation exist for this tuple.
      ICAL=-1
   ELSE IF(NBOK==0) THEN
      ! No elementary calculation exists for this tuple.
      ICAL=0
   ELSE
      ICAL=IKEEP
   ENDIF
END FUNCTION NICAL
\end{verbatim}

\vskip 0.1cm

Similarly, a Fortran program can be used to search the global parameter tuple corresponding to
the elementary calculation index {\tt ICAL}:

\begin{verbatim}
      SUBROUTINE COMUPL(NVP,NPAR,ICAL,NCALS,DEBARB,ARBVAL,MUPLET)
      INTEGER DEBARB(NVP+1),ARBVAL(NVP),MUPLET(NPAR)
      DO I=NVP-NCALS+1,NVP
         IF(DEBARB(I+1).EQ.ICAL) THEN
            I0=I
            EXIT
         ENDIF
      ENDDO
      MUPLET(NPAR)=ARBVAL(I0)
      DO IPAR=NPAR-1,1,-1
         DO I=1,NVP-NCALS
            IF(DEBARB(I+1).GT.I0) THEN
               I0=I
               EXIT
            ENDIF
         ENDDO
         MUPLET(IPAR)=ARBVAL(I0)
      ENDDO
      END
\end{verbatim}

\subsection{The {\tt varlocdescri} sub-directory in \dir{saphyb}}\label{sect:sapdirlocvar}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt varlocdescri} in \dir{saphyb}}{7.0cm}
\IntEnr
  {NPAR\blank{8}}{$1$}
  {Number of local variables.}
\IntEnr
  {NPCHR\blank{7}}{$1$}
  {Number of local variables linked with isotopes.}
\OptCharEnr
  {PARNAM\blank{6}}{$(\mathcal{S}^{\tt sap}_{11})*80$}{$\mathcal{S}^{\tt sap}_{11}\ge 1$}
  {User--defined names for the local variables.}
\OptCharEnr
  {PARKEY\blank{6}}{$(\mathcal{S}^{\tt sap}_{11})*4$}{$\mathcal{S}^{\tt sap}_{11}\ge 1$}
  {User--defined key-words for the local variables.}
\OptCharEnr
  {PARTYP\blank{6}}{$(\mathcal{S}^{\tt sap}_{11})*4$}{$\mathcal{S}^{\tt sap}_{11}\ge 1$}
  {Character identification for the types of local variables (eg: {\tt TEMP}, {\tt IRRA}, {\tt FLUB},
  {\tt EQUI}, etc.).}
\OptCharEnr
  {PARFMT\blank{6}}{$(\mathcal{S}^{\tt sap}_{11})*8$}{$\mathcal{S}^{\tt sap}_{11}\ge 1$}
  {User--defined names for the local variables (eg: {\tt FLOTTANT}, {\tt CHAINE}, {\tt ENTIER}, etc.).}
\OptCharEnr
  {PARCHR\blank{6}}{$(\mathcal{S}^{\tt sap}_{12})*8$}{$\mathcal{S}^{\tt sap}_{12}\ge 1$}
  {Isotope names linked to type--{\tt CONC} local variables.}
\OptIntEnr
  {PARCAD\blank{6}}{$\mathcal{S}^{\tt sap}_{11}+1$}{$\mathcal{S}^{\tt sap}_{11}\ge 1$}
  {Address of the first element in array {\tt PARCHR}.}
\end{DescriptionEnregistrement}

\subsection{The elementary calculation sub-directory \dir{caldir} in \dir{saphyb}}\label{sect:sapdircalc}

For each elementary calculation, we define a directory {\tt calc//'~~n'}, where {\tt n} is the index
of the calculation in the global parameter tree. The results for each output mixture are stored in a
directory {\tt mili//'~~m'} where {\tt m} is the position index of the mixture in the array {\tt NOMMIL}
of the sub-directory {\tt geom}. Inside each elementary calculation directory \dir{caldir}, the following
records and sub-directories will be found:

\begin{DescriptionEnregistrement}{Contents of sub-directory \dir{caldir} in \dir{saphyb}}{7.0cm}
\DirEnr
  {info\blank{8}}
  {General informations about the elementary calculation}
\DirEnr
  {divers\blank{6}}
  {Results not related to a specific mixture: interface currents, $k_\infty$, $k_{\rm eff}$, $B^2$, etc.}
\OptDirEnr
  {outflx\blank{6}}{$N_{\rm nsurfd}>0$}
  {Discontinuity factor information.}
\DirVar
  {\listedir{mixdir}}
  {Set of $\mathcal{S}^{\tt sap}_{7}$ sub-directories containing the cross section information
   associated with a specific mixture.}
\end{DescriptionEnregistrement}

The name of each \listedir{mixdir} directory is a {\tt character*12} variable ({\tt text12})
composed using the following FORTRAN instruction:
$$
\mathtt{WRITE(}\mathsf{text12}\mathtt{,'(''mili'',I8)')}\: J
$$
where $J$ is the index of the mixture with $1 \leq J \leq \mathcal{S}^{\tt sap}_{7}$.

\subsubsection{The {\tt info} sub-directory in \dir{caldir}}\label{sect:sapdirinfo}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt info} in \dir{caldir}}{7.0cm}
\IntEnr
  {NLOC\blank{8}}{$1$}
  {Number of local variables ($0\le${\tt NLOC}$\le${\tt NPARL}).}
\IntEnr
  {NISOTS\blank{6}}{$1$}
  {Number of isotopes in output tables ($\mathcal{S}^{\tt sap}_{32}\equiv$ {\tt NISOTS}$\le${\tt NISOTA}).}
\IntEnr
  {NISF\blank{8}}{$1$}
  {Number of particularized fissile isotopes ({\tt NISF}$\le${\tt NISOF}).}
\IntEnr
  {NISP\blank{8}}{$1$}
  {Number of particularized fission products ({\tt NISP}$\le${\tt NISOP}).}
\IntEnr
  {NISY\blank{8}}{$1$}
  {Number of particularized isotopes and macroscopic sets used for computing the fission
  yields ({\tt NISY}$\le${\tt NISOY}).}
\OptCharEnr
  {LOCNAM\blank{6}}{$({\tt NLOC})*80$}{{\tt NLOC}$\ge 1$}
  {User--defined names for the local variables.}
\OptCharEnr
  {LOCKEY\blank{6}}{$({\tt NLOC})*4$}{{\tt NLOC}$\ge 1$}
  {User--defined key-words for the local variables.}
\OptCharEnr
  {LOCTYP\blank{6}}{$({\tt NLOC})*4$}{{\tt NLOC}$\ge 1$}
  {Character identification for the types of local variables (eg: {\tt TEMP}, {\tt IRRA}, {\tt FLUB},
  {\tt EQUI}, etc.).}
\OptIntEnr
  {LOCADR\blank{6}}{{\tt NLOC}$+1$}{{\tt NLOC}$\ge 1$}
  {Address of the first element in array {\tt RVALOC} (sub-directory {\tt mili//'~~m'}) corresponding
  to a local variable.}
\CharEnr
  {ISOTS\blank{7}}{$(\mathcal{S}^{\tt sap}_{32})*8$}
  {Alias names of isotopes in output tables.}
\OptIntEnr
  {ADRY\blank{8}}{{\tt NISY}}{{\tt NISY}$\ge 1$}
  {Indices of fissile isotopes (positive values) and fission products (negative values) in array
  {\tt YLDS} (sub-directory {\tt mili//'~~m'}).}
\IntEnr
  {ISADRX\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Used to recover the third index in array {\tt ADRX} (sub-directory {\tt adresses}).}
\IntEnr
  {LENGDX\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Length of the cross section array {\tt RDATAX} (sub-directory {\tt mili//'~~m'}).}
\IntEnr
  {LENGDP\blank{6}}{$\mathcal{S}^{\tt sap}_7$}
  {Length of the transfer matrix profile array {\tt IDATAP} (sub-directory {\tt mili//'~~m'}).}
\end{DescriptionEnregistrement}

\subsubsection{The {\tt divers} sub-directory in \dir{caldir}}\label{sect:sapdirdiv}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt divers} in \dir{caldir}}{7.0cm}
\IntEnr
  {NVDIV\blank{7}}{$1$}
  {Number of values in arrays {\tt IDVAL} and {\tt VALDIV}.}
\OptCharEnr
  {IDVAL\blank{7}}{$({\tt NVDIV})*4$}{{\tt NVDIV}$\ge 1$}
  {Character identification for the values in array {\tt VALDIV} ({\tt KEFF}, {\tt KINF} or {\tt B2}).}
\OptRealEnr
  {VALDIV\blank{6}}{{\tt NVDIV}}{{\tt NVDIV}$\ge 1$}{~}
  {Values given in the order of the {\tt IDVAL} array.}
\OptRealEnr
  {FLXREF\blank{6}}{$\mathcal{S}^{\tt sap}_{28}\times \mathcal{S}^{\tt sap}_{30}$}{$\mathcal{S}^{\tt sap}_{28}\ge 1$}{~}
  {Neutron flux values (region-- and group--ordered) in the reference calculation.}
\OptRealEnr
  {SCURM\blank{7}}{$\mathcal{S}^{\tt sap}_{24}\times \mathcal{S}^{\tt sap}_{20}$}{$\mathcal{S}^{\tt sap}_{24}\ge 1$}{~}
  {Entering partial currents on the surfaces surrounding the geometry. The values are given in the order of
  the {\tt SURF} array (in sub-directory {\tt geom}).}
\end{DescriptionEnregistrement}

\vskip -0.5cm
\clearpage

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt outflx} in \dir{caldir}}{7.0cm}
\RealEnr
  {REGFLX\blank{6}}{{\tt NG}}{~}
  {Averaged flux in the complete geometry.}
\RealEnr
  {SURFLX\blank{6}}{$N_{\rm nsurfd}\times${\tt NG}}{~}
  {Surfacic fluxes ($N_{\rm nsurfd}$ values per energy group) integrated over surface. The averaged values are obtained by dividing these
  components by those of {\tt SURF} record in {\tt outgeom} sub-directory (see \Sect{sapdirgeom}).}
\end{DescriptionEnregistrement}

\subsubsection{The mixture sub-directory \dir{mixdir} in \dir{caldir}}\label{sect:sapdirmix}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of mixture sub-directory \dir{mixdir} in \dir{caldir}}{7.0cm}
\RealEnr
  {CONCES\blank{6}}{$\mathcal{S}^{\tt sap}_{32}$}{$10^{24}cm^{-3}$}
  {Number density of each isotope in the output tables. Correspond to isotopes names {\tt ISOTS}
  in Sect.~\ref{sect:sapdirinfo}.}
\OptRealEnr
  {RVALOC\blank{6}}{\tt NVLC}{{\tt NLOC}$\ge 1$}{~}
  {Values of the local variables. {\tt NVLC}$=${\tt LOCADR(NLOC+1)-1}}
\RealEnr
  {FLUXS\blank{7}}{$\mathcal{S}^{\tt sap}_{20}$}{~}
  {Volume-- and energy--integrated neutron fluxes in the output tables.}
\OptRealEnr
  {YLDS\blank{8}}{$N^{\rm ylds}$}{{\tt NISP}$\ge 1$}{~}
  {The fission product {\tt i} yield from fissile isotope {\tt k} is given as {\tt YLDS(ADRY(k),-ADRY(i))}.
  Indices {\tt i} and {\tt k} are given in the order of array {\tt NOMISO} (in sub-directory {\tt contenu}).
  A macroscopic set with a non--vanishing fission cross section is considered as an averaged fissile isotope.
  \hbox{$N^{\rm ylds}=(${\tt NISF}$+\mathcal{S}^{\tt sap}_6)\times ${\tt NISP}}.}
\OptRealEnr
  {DECAYC\blank{6}}{$\mathcal{S}^{\tt sap}_{3}\times \mathcal{S}^{\tt sap}_{32}$}{$\mathcal{S}^{\tt sap}_3\ge 1$}{$s^{-1}$}
  {Radioactive decay constants for each type of decay reaction and each isotope of the output tables.}
\OptRealEnr
  {RDATAX\blank{6}}{$N^{\rm datax}$}{$N^{\rm datax}\ge 1$}{~}
  {Cross section data.
  \hbox{$N^{\rm datax}=${\tt LENGDX(m)}} where {\tt m} is the mixture index.}
\OptIntEnr
  {IDATAP\blank{6}}{$N^{\rm datap}$}{$N^{\rm datap}\ge 1$}
  {Profile information of the transfer matrix.
  \hbox{$N^{\rm datap}=${\tt LENGDP(m)}} where {\tt m} is the mixture index.}
\OptDirEnr
  {cinetique\blank{3}}{$\mathcal{S}^{\tt sap}_{33}\ge 1$}
  {Delayed neutron data for the mixture.}
\end{DescriptionEnregistrement}

{\tt ADRX} (in sub-directory {\tt adresses}) contains the offset used to recover information from
arrays {\tt RDATAX} and {\tt IDATAP}:
\begin{itemize}
\item Starting from this offset, we recover $\mathcal{S}^{\tt sap}_{20}$ cross section values in {\tt RDATAX},
except for the scattering cross section where we recover $\mathcal{S}^{\tt sap}_{20}$ values for each available
Legendre order, and except for the scattering transfer matrix where we recover $N^{\rm scat}$ values
for each available Legendre order. $N^{\rm scat}$ is defined with the {\tt IDATAP} array.
\item For a {\tt PROFILE}--type reaction, starting from this offset, we recover $2\times \mathcal{S}^{\tt sap}_{20}+7$
integer values in {\tt IDATAP}.
\end{itemize}

\vskip 0.1cm

The transfer matrix elements are stored in the following way. The non-zero values are stored in the order
of the secondary group and, for each secondary group, in the order of the primary groups.
The $2\times \mathcal{S}^{\tt sap}_{20}+7$ values describing the profile of the transfer matrix
are stored in the following order:

\vskip 0.1cm

{\tt FAGG, LAGG, FDGG, WGAL, FAG, LAG, (FDG(g),g=1,NG), (ADR(g),g=1,NG+1)}

\vskip 0.1cm

\noindent where

\vskip 0.1cm

\begin{tabular}{ p{2cm} p{13cm} }
{\tt FAGG} & (not used) \\
{\tt LAGG} & (not used) \\
{\tt FDGG} & (not used) \\
{\tt WGAL} & set to 0 \\
{\tt FAG}  & First secondary group \\
{\tt LAG}  & Last secondary group \\
{\tt FDG}  & First primary group in each secondary group \\
{\tt ADR}  & Address in the cross section array where data for secondary group $g$
             is beginning (the address is relative to the isotope). The number of elements in
             a transfer matrix is $N^{\rm scat}=${\tt ADR(NG+1)-1}.
\end{tabular}

\vskip 0.1cm

For an energy transfer {\tt g'} $\rightarrow$ {\tt g} and for a Legendre order {\tt L}($\geq 0$),
the transfer cross section is identified in the cross section array {\tt RDATAX} as

\centerline{$\sigma_{s\ell}^{g' \rightarrow g}$ = 
{\tt RDATAX( ADRX(irea,isot,ISADRX(imil)) + L*(ADR(NG+1)-1) + I-1 )}}

\noindent with {\tt I = ADR(g)+g'-FDG(g)}.
\clearpage

\subsubsection{The {\tt cinetique} sub-directory in \dir{mixdir}}\label{sect:sapdircine}

\vskip -0.5cm

\begin{DescriptionEnregistrement}{Contents of sub-directory {\tt cinetique} in \dir{mixdir}}{7.0cm}
\IntEnr
  {NPR\blank{9}}{$1$}
  {Number of delayed neutron precursors groups in the mixture.}
\OptRealEnr
  {LAMBRS\blank{6}}{\tt NPR}{{\tt NPR}$\ge 1$}{$s^{-1}$}
  {Radioactive decay constants of the delayed neutron precursors groups.}
\OptRealEnr
  {CHIRS\blank{7}}{$\mathcal{S}^{\tt sap}_{20}\times${\tt NPR}}{{\tt NPR}$\ge 1$}{$1$}
  {Delayed neutron emission spectrums.}
\OptRealEnr
  {BETARS\blank{6}}{\tt NPR}{{\tt NPR}$\ge 1$}{$1$}
  {Delayed neutron fractions.}
\OptRealEnr
  {INVELS\blank{6}}{$\mathcal{S}^{\tt sap}_{20}$}{{\tt NPR}$\ge 1$}{$cm^{-1}s$}
  {Group average of the inverse neutron velocity.}
\OptRealEnr
  {TGENRS\blank{6}}{$1$}{{\tt NPR}$\ge 1$}{$s$}
  {Prompt--neutron lifetime.}
\end{DescriptionEnregistrement}
