\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}