From 7dfcc480ba1e19bd3232349fc733caef94034292 Mon Sep 17 00:00:00 2001
From: stainer_t <thomas.stainer@oecd-nea.org>
Date: Mon, 8 Sep 2025 13:48:49 +0200
Subject: Initial commit from Polytechnique Montreal

---
 doc/IGE351/SectDsaphyb.tex | 783 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 783 insertions(+)
 create mode 100644 doc/IGE351/SectDsaphyb.tex

(limited to 'doc/IGE351/SectDsaphyb.tex')

diff --git a/doc/IGE351/SectDsaphyb.tex b/doc/IGE351/SectDsaphyb.tex
new file mode 100644
index 0000000..a0b1536
--- /dev/null
+++ b/doc/IGE351/SectDsaphyb.tex
@@ -0,0 +1,783 @@
+\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}
-- 
cgit v1.2.3

