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/IGE369/Section1.tex | 2417 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 2417 insertions(+)
 create mode 100644 doc/IGE369/Section1.tex

(limited to 'doc/IGE369/Section1.tex')

diff --git a/doc/IGE369/Section1.tex b/doc/IGE369/Section1.tex
new file mode 100644
index 0000000..e41143c
--- /dev/null
+++ b/doc/IGE369/Section1.tex
@@ -0,0 +1,2417 @@
+\section{INPUT DATA SPECIFICATIONS}
+
+\subsection{Syntactic rules for input data specifications}
+
+The input data to any module is read in free format using the subroutine {\tt REDGET}. The rules for specifying the input data are therefore given in this section. The users guide was written using the following conventions:
+
+\begin{itemize}
+
+\item	the parameters surrounded by single square brackets `$[\;]$' denote an optional input;
+
+\item	the parameters surrounded by double square brackets `$[[\;]]$' denote an optional input which may be repeated as many times as desired;
+
+\item	the parameters in braces separated by vertical bars `$\{\; |\; |\; \}$' denote a choice of input where (one and {\sl only} one is mandatory);
+
+\item	the parameters in {\bf{bold face}} and in brackets `( )' denote an input structure;
+
+\item	the parameters in italics and in brackets with an index `({\it data}(i), i=1,n)' denote a set of n inputs;
+
+\item	the words using the typewriter font are character constants {\tt keywordS} used as keywords;
+
+\item	the words in italics are user defined variables, they should be lower case and are of type integer (starting with {\it i} to {\it n}) and real (starting with {\it a} to {\it h} or {\it o} to {\it z})
+or of type character in uppercase {\it CHARACTER}.
+
+\end{itemize}
+
+\subsection{The global input structure}
+
+TRIVAC is built around the Ganlib kernel and its modules can be called from CLE-2000.\cite{ganlib5,cle2000} Input data must therefore follow the calling specifications given below:
+
+\begin{DataStructure}{Structure \dstr{TRIVAC}}
+$[$ \moc{LINKED\_LIST} $[[$ \dusa{NAME1} $]]$ \moc{;} $]$ \\
+$[$ \moc{XSM\_FILE} $[[$ \dusa{NAME2} $]]$ \moc{;} $]$ \\
+$[$ \moc{SEQ\_BINARY} $[[$ \dusa{NAME3} $]]$ \moc{;} $]$ \\
+$[$ \moc{SEQ\_ASCII} $[[$ \dusa{NAME4} $]]$ \moc{;} $]$ \\
+$[$ \moc{MODULE} $[[$ \dusa{NAME5} $]]$ \moc{;} $]$ \\
+$[[$ \dstr{specif} $]]$ \\
+\moc{END: ;}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{NAME1}] {\tt Character*12} name of a {\sc lcm} object.
+
+\item[\dusa{NAME2}] {\tt Character*12} name of an {\sc xsm} file.
+
+\item[\dusa{NAME3}] {\tt Character*12} name of a sequential binary file.
+
+\item[\dusa{NAME4}] {\tt Character*12} name of a sequential {\sc ascii} file.
+
+\item[\dusa{NAME5}] {\tt Character*12} name of a module.
+
+\item[\dstr{specif}] Input specifications for a single module. Specifications for TRIVAC modules will be given in the following sections.
+
+\end{ListeDeDescription}
+
+The input data always begins with the declaration of each {\sc lcm} object, {\sc xsm}
+file, sequential (binary or {\sc ascii}) file that will be required
+by the following modules. This is followed by the declaration of the modules actually used in the input data deck. The following data describes a sequence of module calls, in the format of the GAN generalized driver. As indicated in Fig.~\fig(trivac3), the modules communicate with each other through {\sc lcm} objects or {\sc xsm} files whose specifications are given in section 2. The TRIVAC user generally has the choice to declare its data structures as {\tt LINKED\_LIST} to reduce CPU time resources or as {\tt XSM\_FILE} to reduce CPU memory resources.
+
+\vskip 0.2cm
+
+The input data always ends with a call to the {\tt END:} module.
+
+\begin{figure}[htbp]
+\begin{center} 
+\epsfxsize=16cm
+\centerline{ \epsffile{trivac3.eps}}
+\parbox{14cm}{\caption{The TRIVAC modular approach.}
+\label{fig:trivac3}} 
+\end{center} 
+\end{figure}
+
+\subsection{The {\tt GEO:} module}
+
+The {\tt GEO:} module is used to create or modify a geometry. The geometry definition module in TRIVAC permits all the characteristics (coordinates, material mixture type indices and boundary conditions) of a simple or complex geometry to be specified. The method used to specify the geometry is independent of the discretization module to be used subsequently. Each geometry is represented by a name ({\tt character*12}) and is saved in a {\sc lcm} object or an {\sc xsm} file under its given name. It is always possible to modify a given existing geometry or copy it into a neighbouring {\sc lcm} object under a new name. The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{GEO:}}
+$\{$ \dusa{GEOM1} \moc{:=} \moc{GEO: ::} \dstr{geo\_data1} $|$ \\
+\dusa{GEOM1} \moc{:=} \moc{GEO:} $\{$ \dusa{GEOM1} $|$ \dusa{GEOM2} $\}$ \moc{::} \dstr{geo\_data2} $\}$
+\end{DataStructure}
+
+\noindent
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{GEOM1}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_GEOM}) that will contain the geometry.
+
+\item[\dusa{GEOM2}] {\tt character*12} name of a {\sc lcm} object (type {\tt L\_GEOM}) containing the existing geometry. The type and all the characteristics of \dusa{GEOM2} will be copied onto \dusa{GEOM1}.
+
+\item[\dstr{geo\_data1}] structure describing the characteristics of a new geometry (see Sect.~\ref{sect:geo_data1}).
+
+\item[\dstr{geo\_data2}] structure describing the change to the characteristics of an existing geometry (see Sect.~\ref{sect:geo_data1}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt GEO:}}\label{sect:geo_data1}
+
+Structures \dstr{geo\_data1} and \dstr{geo\_data2} serve to define the
+principle components of a geometry (dimensions, materials, boundary
+conditions):
+
+\begin{DataStructure}{Structure \dstr{geo\_data1}}
+$\{$ \moc{HOMOGE} $|$ \moc{CAR1D} \dusa{lx} $|$ \moc{TUBE} \dusa{lr} $|$ 
+\moc{SPHERE} \dusa{lr} $|$ \moc{CAR2D} \dusa{lx} \dusa{ly} $|$ \moc{TUBEZ} \dusa{lr} \dusa{lz} $|$ \moc{CAR3D} \dusa{lx} \dusa{ly} \dusa{lz} $|$ \\
+~~~~~~ \moc{HEX} \dusa{lh} $|$ \moc{HEXZ} \dusa{lh} \dusa{lz} $\}$ \\
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+\dstr{descBC} \\
+\dstr{descMC} \\
+\dstr{descPOS} \\
+;
+\end{DataStructure}
+
+\begin{DataStructure}{Structure \dstr{geo\_data2}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+\dstr{descBC} \\
+\dstr{descMC} \\
+\dstr{descPOS} \\
+;
+\end{DataStructure}
+
+\noindent
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{HOMOGE}] infinite homogeneous geometry.
+
+\item[\moc{CAR1D}] one dimensional plane geometry (infinite slabs).
+
+\item[\moc{TUBE}] cylindrical geometry (infinite tubes or cylinders).
+
+\item[\moc{SPHERE}] spherical geometry (concentric spheres).
+
+\item[\moc{CAR2D}] two-dimensional cartesian geometry.
+
+\item[\moc{TUBEZ}] polar geometry ($R-Z$).
+
+\item[\moc{CAR3D}] three-dimensional cartesian geometry.
+
+\item[\moc{HEX}] two-dimensional hexagonal geometry.
+
+\item[\moc{HEXZ}] three-dimensional hexagonal geometry.
+
+\item[\dusa{lx}] number of subdivisions along the $X$ axis (before mesh-splitting).
+
+\item[\dusa{ly}] number of subdivisions along the $Y$ axis (before mesh-splitting).
+
+\item[\dusa{lz}] number of subdivisions along the $Z$ axis (before
+mesh-splitting).
+
+\item[\dusa{lr}] number of cylinders or spherical shells (before mesh-splitting).
+
+\item[\dusa{lh}] number of hexagons in an axial plane (including the virtual hexagons).
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing in module {\tt GEO:}. =0 for no print; =1 for minimum printing (default value); =2 for printing the geometry state vector.
+
+\item[\dstr{descBC}] structure allowing the boundary conditions surrounding the geometry to be treated.
+
+\item[\dstr{descMC}] structure allowing material mixtures to be associated with a geometry.
+
+\item[\dstr{descPOS}] structure allowing the coordinates of a geometry to be described.
+
+\end{ListeDeDescription}
+
+The inputs corresponding to the \dstr{descBC} structure are the following:
+
+\begin{DataStructure}{Structure \dstr{descBC}}
+$[$ \moc{X-} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{DIAG} $|$ \moc{TRAN} $|$ \moc{SYME} $|$ \moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} \\
+~~~~~~~~ $|$ \moc{CYLI} $|$ \moc{ACYL} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$  $\}$ $]$ \\
+$[$ \moc{X+} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{DIAG} $|$ \moc{TRAN} $|$ \moc{SYME} $|$ \moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} \\
+~~~~~~~~ $|$ \moc{CYLI} $|$ \moc{ACYL} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$  $\}$ $]$ \\
+$[$ \moc{Y-} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{DIAG} $|$ \moc{TRAN} $|$ \moc{SYME} $|$ \moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} \\
+~~~~~~~~ $|$ \moc{CYLI} $|$ \moc{ACYL} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$  $\}$ $]$ \\
+$[$ \moc{Y+} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{DIAG} $|$ \moc{TRAN} $|$ \moc{SYME} $|$ \moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} \\
+~~~~~~~~ $|$ \moc{CYLI} $|$ \moc{ACYL} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$  $\}$ $]$ \\
+$[$ \moc{Z-} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{TRAN} $|$ \moc{SYME} $|$ \moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} $\}$ $]$ \\
+$[$ \moc{Z+} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{TRAN} $|$ \moc{SYME} $|$ \moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} $\}$ $]$ \\
+$[$ \moc{R+} $\{$ \moc{VOID} $|$ \moc{REFL} $|$ 
+\moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} $|$ $\}$ $]$ \\
+$[$ \moc{HBC} $\{$ \moc{S30} $|$ \moc{SA60} $|$ \moc{SB60} $|$ \moc{S90} $|$
+\moc{R120} $|$ \moc{R180} $|$ \moc{SA180} $|$ \moc{SB180} $|$ 
+\moc{COMPLETE} $\}$ \\ $\{$ \moc{VOID} $|$ \moc{REFL} $|$ \moc{SYME} $|$ 
+\moc{ALBE} $\{$ \dusa{albedo} $|$ \dusa{icode} $\}$ $|$ \moc{ZERO} $\}$ $]$ \\
+$[$ \moc{RADS} $[$ \moc{ANG} $]$ \dusa{nrads} (\dusa{xrad}(ir), \dusa{rrad}(ir) $[$, \dusa{ang}(ir) $]$, ir=1,nrads ) $]$
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{X-}] negative $X$ side.
+
+\item[\moc{Y-}] negative $Y$ side.
+
+\item[\moc{Z-}] negative $Z$ side.	
+
+\item[\moc{X+}] positive $X$ side.
+
+\item[\moc{Y+}] positive $Y$ side.
+
+\item[\moc{Z+}] positive $Z$ side.
+
+\item[\moc{R+}] side surrounding cylinders or spheres.
+
+\item[\moc{HBC}] side surrounding a hexagonal geometry.
+
+\item[\moc{VOID}] the side under consideration has a  zero incoming current
+boundary condition.
+
+\item[\moc{REFL}] the side under consideration has a reflective boundary condition. 
+
+\item[\moc{DIAG}] the side under consideration is external to a diagonal axis of symmetry.
+
+\item[\moc{TRAN}] the side under consideration is connected to the opposite side of the domain. This option permits a translation condition to be treated.
+
+\item[\moc{SYME}] the side under consideration is next to an axial axis of symmetry. (symmetric with respect to the central axis of the last row of volumes). The {\tt SYME} condition can also be used in hexagonal geometry, but only with {\tt S30} and {\tt SA60} symmetries.
+
+\item[\moc{ALBE}] the side under consideration has an arbitrary albedo to be specified. 
+
+\item[\dusa{albedo}] geometrical albedo corresponding to the boundary condition \moc{ALBE} (\dusa{albedo} $\ge$ 0.0). 
+
+\item[\dusa{icode}] index of a physical albedo corresponding to the boundary condition \moc{ALBE}. The numerical values of the physical albedo are supplied by the module \moc{MAC:}.
+
+\item[\moc{ZERO}] the side under consideration has a zero flux boundary condition. 
+
+\item[\moc{CYLI}] the side under consideration has a zero incoming current boundary condition with a circular correction applied on the Cartesian boundary. This option is only available in
+the $X$--$Y$ plane for \moc{CAR2D} and \moc{CAR3D} geometries defined for TRIVAC full--core calculations.
+
+\item[\moc{ACYL}] the side under consideration has an arbitrary albedo with a circular correction applied on the Cartesian boundary. This option is only available in
+the $X$--$Y$ plane for \moc{CAR2D} and \moc{CAR3D} geometries defined for TRIVAC full--core calculations.
+
+\item[\moc{S30}] hexagonal symmetry of one twelfth of an assembly (see Fig. \fig(s30)).
+
+\begin{figure}[htbp]
+\begin{center} 
+\epsfxsize=10cm
+\centerline{ \epsffile{Fig1.eps}}
+\parbox{14cm}{\caption{Hexagonal geometries of type S30 and
+SA60}\label{fig:s30}}  \end{center} 
+\end{figure}
+
+\item[\moc{SA60}] hexagonal symmetry of one sixth of an assembly of type A (see Fig. \fig(s30)).
+
+\item[\moc{SB60}] hexagonal symmetry of one sixth of an assembly of 
+type B (see Fig. \fig(sb60)).
+
+\begin{figure}[htbp] 
+\begin{center} 
+\epsfxsize=12cm
+\centerline{ \epsffile{Fig2.eps}}
+\parbox{14cm}{\caption{Hexagonal geometries of type SB60 and
+S90}\label{fig:sb60}}  \end{center} 
+\end{figure}
+
+\item[\moc{S90}] hexagonal symmetry of one quarter of an assembly (see Fig. \fig(sb60)).
+
+\item[\moc{R120}] hexagonal symmetry of one third of an assembly (rotational symmetry) (see Fig. \fig(r120)).
+
+\begin{figure}[htbp] 
+\begin{center} 
+\epsfxsize=10cm
+\centerline{ \epsffile{Fig3.eps}}
+\parbox{14cm}{\caption{Hexagonal geometries of type R120 and
+R180}\label{fig:r120}}  \end{center} 
+\end{figure}
+
+\item[\moc{R180}] rotational symmetry of a half assembly (see Fig.
+\fig(r120)).
+
+\item[\moc{SA180}] hexagonal symmetry of half a type A assembly (see Fig. \fig(sa180)).
+
+\begin{figure}[htbp] 
+\begin{center} 
+\epsfxsize=5cm
+\centerline{ \epsffile{Fig4a.eps}}
+\parbox{14cm}{\caption{Hexagonal geometry of type SA180}\label{fig:sa180}} 
+\end{center} 
+\end{figure}
+ 
+\item[\moc{SB180}] hexagonal symmetry of half a type B assembly (see Fig. \fig(sb180)).
+
+\begin{figure}[htbp] 
+\begin{center} 
+\epsfxsize=10cm
+\centerline{ \epsffile{Fig4b.eps}}
+\parbox{14cm}{\caption{Hexagonal geometry of type SB180}\label{fig:sb180}} 
+\end{center} 
+\end{figure}
+
+\item[\moc{COMPLETE}] complete hexagonal assembly (see Fig.~\fig(compl)).
+
+\begin{figure}[htbp] 
+\begin{center} 
+\epsfxsize=9cm
+\centerline{ \epsffile{Fig5.eps}}
+\parbox{14cm}{\caption{Hexagonal geometry of type COMPLETE}\label{fig:compl}} 
+\end{center} 
+\end{figure}
+
+\item[\moc{RADS}] This keyword is used to specify the cylindrical correction applied in the $X-Y$ plane for \moc{CAR2D} and \moc{CAR3D} geometries.\cite{roy}
+
+\item[\moc{ANG}] This keyword allows  the angle (see Fig. \fig(corr))
+of the cylindrical notch to be set. By default, no notch is present.
+
+\item[\dusa{nrads}] Number of different corrections along the cylinder main axis (i.e. the $Z$ axis).
+
+\item[\dusa{xrad}(ir)] Coordinate of the $Z$ axis from which the correction is applied.
+
+\item[\dusa{rrad}(ir)] Radius of the real cylindrical boundary.
+
+\item[\dusa{ang}(ir)] Angle of the cylindrical notch. This data is given if and only if the keyword \moc{ANG} is present. \dusa{ang}(ir) $= {\pi \over 2}$ by default (i.e. the correction is applied at every angle).
+
+\begin{figure}[htbp]
+\begin{center} 
+\epsfxsize=5cm
+\centerline{ \epsffile{Fig6.eps}}
+\parbox{14cm}{\caption{Cylindrical correction in Cartesian geometry}
+\label{fig:corr}} 
+\end{center} 
+\end{figure}
+
+\end{ListeDeDescription}
+ 
+The only combinations of diagonal symmetry permitted are: \moc{X+} \moc{DIAG} \moc{Y-} \moc{DIAG} and \moc{X-} \moc{DIAG} \moc{Y+} \moc{DIAG}. In these cases the geometry must be a square. The only combinations of translational symmetry permitted are: \moc{X-} \moc{TRAN} \moc{X+} \moc{TRAN}, \moc{Y-} \moc{TRAN} \moc{Y+} \moc{TRAN} and \moc{Z-} \moc{TRAN} \moc{Z+} \moc{TRAN}.
+
+\vskip 0.2cm
+\goodbreak
+
+The input corresponding to the \dstr{descMC} structure are the following:
+
+\begin{DataStructure}{Structure \dstr{descMC}}
+$[$ \moc{MIX} $\{$  (\dusa{imix}(i),i=1,$lreg$) $|$\\
+$~~~~[[$ \moc{PLANE} \dusa{iplan} $\{$ (\dusa{imix}(i),i=1,\dusa{lp}) $|$ \moc{SAME} \dusa{iplan1}\\
+$~~~~|~[[$ \moc{CROWN} $\{$ (\dusa{imix}(i),i=1,\dusa{lc}) $|$ \moc{ALL} \dusa{jmix} $|$ \moc{SAME} \dusa{iplan1} $\}~]]$\\
+$~~~~|~[[$ \moc{UPTO} \dusa{ic} \moc{ALL} \dusa{jmix} $|$ \moc{SAME} \dusa{iplan1} $\}~]]~]]~\}$\\
+$]$
+\end{DataStructure}
+
+\noindent
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{MIX}] keyword to attribute an material mixture number to each volume inside the axes of symmetry. When a volume is located inside the axes of symmetry but outside the calculation region it must be declared `virtual' (for example, the corners of a nuclear reactor). The material mixture number should be specified for each volume before mesh-splitting.
+
+\item[\dusa{imix}] type of material mixture associated with a region. It is
+important that \dusa{imix}$\le$\dusa{nmixt} where \dusa{nmixt} is defined in the
+{\tt } module. If \dusa{imix}=0, the corresponding volume is replaced by a
+\moc{VOID} boundary condition. In this case the volume is considered to be
+virtual and the flux is not calculated. In the case of a diagonal symmetry, the
+type indicator must not be specified for the volumes outside the axis of
+symmetry. These values must be specified in the following order:  from \moc{X-}
+to \moc{X+}, from \moc{Y-} to \moc{Y+}, from \moc{Z-} to \moc{Z+} and finally
+radially from the inside out. 
+
+\item[\moc{PLANE}]  keyword to attribute mixture numbers to each volume inside a single 2D plane. This option is 
+valid only for 3D geometries, Cartesian or hexagonal. 
+
+\item[\dusa{iplan}] plane number for which material mixture are input. 
+
+\item[\moc{SAME}]  keyword to attribute the same material mixture numbers of the \dusa{iplan1} plane to the \dusa{iplan} plane. In 
+hexagonal geometry, it can indicate that the mixture numbers of the current crown of the \dusa{iplan}th 
+plane will be identical to those of the same crown of the \dusa{iplan1}th plane. 
+
+\item[\dusa{iplan1}] plane number used as reference to input the current plane or crown(s). 
+
+\item[\dusa{lp}] number of volumes in a plane. In Cartesian geometry, $lp=lx*ly$ and in hexagonal geometry, 
+$lp=lh$. 
+
+\item[\moc{CROWN}]  keyword to attribute mixture numbers to each hexagon of a single crown. This option is only 
+valid for \moc{COMPLETE} hexagonal geometry definition. Each use of the keyword \moc{CROWN} increases 
+the crown number by 1. So it is not required to give its number, but crowns must be defined from 
+the center to the peripherical regions of a plane. 
+
+\item[\dusa{lc}] number of hexagons in the current crown. For the \dusa{i}th crown of a compelete hexagonal plane, 
+$lc=(i-1)*6$. The first crown is composed of only one hexagon. 
+
+\item[\moc{ALL}] keyword to specify that the \dusa{lc} material mixture number of the current crown have the same value 
+\dusa{jmix}. 
+
+\item[\moc{UPTO}] keyword to attribute material mixture numbers of the current crown up to the \dusa{ic} one. 
+
+\item[\dusa{ic}] number of the last crown in \moc{UPTO} option. Its value must be greater than equal to the current 
+crown number. 
+
+\end{ListeDeDescription}
+
+Here we will assume that $lreg$\index{$lreg$} is the exact number of cells  or
+elementary cases to be considered. For example, if we had used the \moc{DIAG}
+option with a geometry of type \moc{CAR3D} (\dusa{lx}=\dusa{ly}), we would
+have: $lreg$=(\dusa{lx}+1)$*$\dusa{ly}$*$\dusa{lz}/2.
+
+\vskip 0.2cm
+
+The following dimensional constraints must also be respected:
+
+\begin{itemize}
+
+\item $nmerge$=number of merged cells (with $nmerge \ge lreg$.),
+\item $ngen$=number of generation cells (with $ngen \ge nmerge$.),
+
+\end{itemize}
+
+The inputs corresponding to the \dstr{descPOS} structure are the following:
+
+\begin{DataStructure}{Structure \dstr{descPOS}}
+$[$ \moc{MESHX} (\dusa{xxx}(i),i=1,\dusa{lx}+1) $]$\\
+$[$ \moc{MESHY} (\dusa{yyy}(i),i=1,\dusa{ly}+1) $]$\\
+$[$ \moc{MESHZ} (\dusa{zzz}(i),i=1,\dusa{lz}+1) $]$\\
+$[$ \moc{RADIUS} (\dusa{rrr}(i),i=1,\dusa{lr}+1) $]$\\
+$[$ \moc{SIDE} \dusa{sidhex} $]$\\
+$[$ \moc{SPLITX} (\dusa{ispltx}(i),i=1,\dusa{lx}) $]$\\
+$[$ \moc{SPLITY} (\dusa{isplty}(i),i=1,\dusa{ly}) $]$\\
+$[$ \moc{SPLITZ} (\dusa{ispltz}(i),i=1,\dusa{lz}) $]$\\
+$[$ \moc{SPLITR} (\dusa{ispltr}(i),i=1,\dusa{lr}) $]$\\
+$[~\{$ \moc{SPLITH} \dusa{isplth} $|$ \moc{SPLITL} \dusa{ispltl} $\}~]$
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{MESHX}] keyword for the mesh of the geometry along the $X$
+axis.
+\item[\moc{MESHY}] keyword for the mesh of the geometry along the $Y$
+axis. 
+\item[\moc{MESHZ}] keyword for the mesh of the geometry along the $Z$
+axis. 
+\item[\moc{RADIUS}] keyword for the mesh of the geometry in the radial
+direction.
+\item[\moc{SIDE}] keyword for the length of a side of a hexagon.
+\item[\dusa{xxx}] abscissa, corresponding to the limits of the regions making up the geometry. These values must be given in order, from \moc{X-} to \moc{X+}. If the geometry presents a diagonal symmetry this data will also be used for the ordinate.
+
+\item[\dusa{yyy}] ordinate, corresponding to the limits of the regions making up the geometry. These values must be given in order, from \moc{Y-} to \moc{Y+}.
+
+\item[\dusa{zzz}] height, corresponding to the limits of the regions making up the geometry. These values must be given in order, from \moc{Z-} to \moc{Z+}.
+
+\item[\dusa{rrr}] Radii in the cases of cylindrical (\moc{TUBE}
+or \moc{TUBEZ}), spherical (\moc{SPHERE}). It is important to note that we must have \dusa{rrr}(1)=0.0.
+
+\item[\dusa{sidhex}] length of a side of a hexagon.
+
+\item[\moc{SPLITX}] keyword for mesh splitting of the geometry along the $X$ axis.
+
+\item[\moc{SPLITY}] keyword for mesh splitting of the geometry along the $Y$ axis.
+
+\item[\moc{SPLITZ}] keyword for mesh splitting of the geometry along the $Z$ axis.
+
+\item[\moc{SPLITR}] keyword for mesh splitting of the geometry in the radial direction.
+
+\item[\dusa{ispltx}] number of sub-volumes that will be defined for each row of the volume along the $X$-axis. If the geometry presents a diagonal symmetry this input will also be used for the splitting along the $Y$-axis. By default, \dusa{ispltx}=1.
+
+\item[\dusa{isplty}] number of sub-volumes that will be defined for each row of the volume along the $Y$-axis. If the geometry presents a diagonal symmetry this input will also be used for the splitting along the $X$-axis. By default, \dusa{isplty}=1.
+
+\item[\dusa{ispltz}] number of sub-volumes that will be defined for each row of the volume along the $Z$-axis. By default, \dusa{ispltz}(i)=1.
+
+\item[\dusa{ispltr}] the value of \dusa{ispltr} gives the number of sub-volumes that will be defined for each tube or each spherical shell. A negative value permits a splitting into equal sub-volumes; a positive value permits a splitting into equal sub-radius spacings. By default, \dusa{ispltr}=1.
+
+\item[\moc{SPLITH}] keyword to specify that a triangular mesh splitting of the hexagonal geometry is to be performed -- for \moc{HEX} and \moc{HEXZ} type geometries. 
+
+\item[\dusa{isplth}] value of the triangular mesh splitting. The number of triangles per hexagon is given by $6 \times$\dusa{isplth}$^2$. \dusa{isplth} $=0$ is used for full hexagon discretization.
+
+\item[\moc{SPLITL}] keyword to specify that a lozenge mesh splitting of the hexagonal geometry is to be performed -- for \moc{HEX} and \moc{HEXZ} type geometries.
+
+\item[\dusa{ispltl}] value of the lozenge splitting. The number of lozenges per hexagon is given by $3 \times$\dusa{ispltl}$^2$.
+
+\end{ListeDeDescription}
+
+The user of the options described above should take care not to exceed  the
+limits imposed by the amount of dynamically allocated memory available. For a
+pure geometry, let us define the variables $lxp$, $lyp$, $lzp$ and $lrp$ as:
+
+\begin{eqnarray*}
+lxp&=&\sum_{i=1}^{{\it lx}} {\it ispltx}(i) \\
+lyp&=&\sum_{i=1}^{{\it ly}} {\it isplty}(i) \\
+lzp&=&\sum_{i=1}^{{\it lz}} {\it ispltz}(i) \\
+lrp&=&\sum_{i=1}^{{\it lr}} {\it ispltr}(i) \\
+\end{eqnarray*}
+
+\noindent
+thus, the limits that must be respected are the following:
+
+\begin{itemize}
+
+\item $lxp\ge$\dusa{maxpts} for a \moc{CAR1D} geometry.
+
+\item \dusa{lh}$\ge$\dusa{maxpts} for a \moc{HEX} geometry.
+
+\item $lrp\ge$\dusa{maxpts} for the \moc{TUBE} and \moc{SPHERE} geometries.
+
+\item $lxp*lyp\ge$\dusa{maxpts} for the \moc{CAR2D} geometry without diagonal symmetry. 
+
+\item $lxp*(lyp+1)/2\ge$\dusa{maxpts} for the \moc{CAR2D} geometry with diagonal symmetry. 
+
+\item $lrp*lzp\ge$\dusa{maxpts} for the \moc{TUBEZ} geometry.
+
+\item $lxp*lyp*lzp\ge$\dusa{maxpts} for the \moc{CAR3D} geometry without diagonal symmetry. 
+
+\item $lxp*(lyp+1)*lzp/2\ge$\dusa{maxpts} for the \moc{CAR3D} geometry with diagonal symmetry. 
+
+\item \dusa{lh}$*lzp\ge$\dusa{maxpts} for the \moc{HEXZ} geometry.
+
+\end{itemize}
+
+\vskip 0.2cm
+
+\subsubsection{Examples of geometries}
+
+We will now give a few examples which will permit users to better understand the procedure used to define the geometries in TRIVAC.
+
+\begin{enumerate}
+
+\item Slab geometry (see Fig. \fig(plaque)):
+
+\begin{verbatim}
+GEOMETRY1 := GEO: :: CAR1D 6
+ X- VOID X+ ALBE 1.2
+ MESHX 0.0 0.1 0.3 0.5 0.6 0.8 1.0
+ SPLITX 2 2 2 1 2 1
+ MIX 1 2 3 4 5 6
+ ;
+\end{verbatim}
+
+\begin{figure}[htbp]
+\begin{center} 
+\epsfxsize=9cm
+\centerline{ \epsffile{Fig9.eps}}
+\parbox{14cm}{\caption{Slab geometry with mesh-splitting}
+\label{fig:plaque}} 
+\end{center} 
+\end{figure}
+ 
+\item Two-dimensional hexagonal geometry (see Fig. \fig(hexcel)):
+
+\begin{verbatim}
+GEOMETRY4 := GEO: :: HEX 12
+ HBC S30 ALBE 1.6
+ SIDE 1.3
+ MIX 1 1 1 2 2 2 3 3 3 4 5 6
+ ;
+\end{verbatim}
+
+\begin{figure}[htbp]
+\begin{center} 
+\epsfxsize=7cm
+\centerline{ \epsffile{Fig12.eps}}
+\parbox{14cm}{\caption{Two-dimensional hexagonal geometry}
+\label{fig:hexcel}} 
+\end{center} 
+\end{figure}
+
+\end{enumerate}
+\clearpage
+
+\subsection{The {\tt MAC:} module}
+
+In TRIVAC the macroscopic cross sections and diffusion coefficients are read from the input data file using REDLEC. The general format of the data for the \moc{MAC:} module in TRIVAC is the following:
+
+\begin{DataStructure}{Structure \dstr{MAC:}}
+\dusa{MACR1} \moc{:=} \moc{MAC:} $[~\{$ \dusa{MACR1} $|$ \dusa{MACR2} $\}~]$ \moc{::} \dstr{mac\_data}
+\end{DataStructure}
+
+\goodbreak
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{MACR1}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the new Macrolib
+produced by the module. A Macrolib contains macroscopic cross sections and diffusion coefficients.
+If \dusa{MACR1} appears on both LHS and RHS, it is updated; otherwise, it is
+created. If \dusa{MACR1} is created, all macroscopic cross sections and
+diffusion coefficients are first initialized to zero.
+
+\item[\dusa{MACR2}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing a read-only
+Macrolib. The information existing in \dusa{MACR2} is copied into \dusa{MACR1}, but \dusa{MACR2} is not modified.
+
+\item[\dstr{mac\_data}] structure containing the data to module {\tt MAC:} (see Sect.~\ref{sect:mac_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt MAC:}}\label{sect:mac_data}
+
+\begin{DataStructure}{Structure \dstr{mac\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{NGRO} \dusa{ngroup} $]$ \\
+$[$ \moc{NIFI} \dusa{nifiss} $]$ \\
+$[$ \moc{DELP} \dusa{ndel} $]$ \\
+$[$ \moc{ANIS} \dusa{naniso} $]$ \\
+$[$ \moc{NMIX} \dusa{nmixt} $]$ \\
+$[$ \moc{DELP} \dusa{ndg} $]$ \\
+$[$ \moc{ANIS} \dusa{naniso} $]$ \\
+$[$ \moc{ALBP} \dusa{nalbp} ((\dusa{albedp}(ig,ia),ig=1,\dusa{ngroup}),ia=1,\dusa{nalbp}) $]$ \\
+$[$ \moc{READ} \moc{INPUT} $\{$ $[[$ \dstr{macxs} $]]$ $|$ \moc{OLD} \dstr{triv2} $|$ \moc{DOLD} \dstr{trip2} $\}$ $]$ \\
+$[[$ \moc{STEP} \dusa{istep} \moc{READ} \moc{INPUT} $[[$ \dstr{macxs} $]]$ $]]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing in module {\tt MAC:}. =0 for no print. The macroscopic cross sections will be printed if the parameter \dusa{iprint} is greater than or equal to 2. The transfer cross sections will be printed if this parameter is greater than or equal to 3.
+
+\item[\moc{NGRO}] keyword used to  define the number of energy groups. This
+data is given if and only if \dusa{MACR1} is created.
+
+\item[\dusa{ngroup}] the number of energy groups used for the calculations in TRIVAC. 
+
+\item[\moc{NIFI}] keyword used to specify the maximum number of fissile
+spectrum associated with each mixture. Each fission spectrum generally
+represents a fissile isotope. This information is required only if \dusa{MACLIB}
+is created and the cross sections are taken directly from the input data stream.
+
+\item[\dusa{nifiss}] the maximum number of fissile isotopes per mixture. The
+default value is \dusa{nifiss}=1.
+
+\item[\moc{DELP}] keyword used to specify the number of delayed neutron groups.
+
+\item[\dusa{ndel}] the number of delayed neutron groups. The
+default value is \dusa{ndel}=0.
+
+\item[\moc{ANIS}] keyword used to specify the maximum level of anisotropy
+permitted in the scattering cross sections. This information is required only if
+\dusa{MACLIB} is created and the cross sections are taken directly from the
+input data stream.
+
+\item[\dusa{naniso}] number of Legendre orders for the representation of the
+scattering cross sections. The default value is \dusa{naniso}=1 corresponding to
+the use of isotropic scattering cross sections.
+
+\item[\moc{NMIX}] keyword used to define the number of material mixtures. 
+This data is given if and only if \dusa{MACR1} is created.
+
+\item[\dusa{nmixt}] the maximum number of material mixtures (a material mixture is characterized by a distinct set of macroscopic cross sections). 
+
+\item[\moc{DELP}] keyword used to set \dusa{ndg}. This data is used 
+only if the fission spectrum $\vec{\chi}_p$ is different from the delayed neutron spectrum $\vec{\chi}_i$ for each precursor group $i$.
+
+\item[\dusa{ndg}] number of delayed neutron groups.
+
+\item[\moc{ANIS}] keyword used to specify the maximum  level of anisotropy
+permitted in the diffusion cross sections. This data is given only if
+\dusa{MACR1} is created.
+
+\item[\dusa{naniso}] the maximum level of anisotropy. The default value is \dusa{naniso}=1.
+
+\item[\moc{ALBP}] keyword used for the input of the physical albedos.
+
+\item[\dusa{nalbp}] the number of physical albedos per energy group.
+
+\item[\dusa{albedp}] multigroup physical albedo array (real numbers). 
+
+\item[\moc{STEP}] keyword used to create a perturbation directory.
+
+\item[\dusa{istep}] the index of the perturbation directory. 
+
+\item[\moc{READ}] keyword used to specify input of the cross section
+information from default input by REDLEC.
+
+\item[\dstr{macxs}] structure describing the format used  for reading the
+mixture cross sections and diffusion coefficients (or perturbation values of
+the cross sections and diffusion coefficients) from the input data file.
+ 
+\item[\moc{OLD}] keyword used to specify input of the cross section information 
+from default input by REDLEC in the TRIVAC-2 format. The nuclear data will be
+translated into TRIVAC format and printed on the listing.
+
+\item[\dstr{triv2}] structure describing the format used  for reading the
+mixture cross sections and diffusion coefficients from the input data file in
+TRIVAC-2 format.
+ 
+\item[\moc{DOLD}] keyword used to specify  perturbed input of the cross
+section information from default input by REDLEC in the TRIVAC-2 format. The
+perturbed nuclear data will be translated into TRIVAC format and printed on
+the listing.
+
+\item[\dstr{trip2}] structure describing the  format used for reading the
+mixture values of the perturbed cross sections and diffusion coefficients from
+the input data file in TRIVAC-2 format.
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+\goodbreak
+
+\subsubsection{Description of the nuclear data}
+
+\begin{DataStructure}{Structure \dstr{macxs}}
+\moc{MIX} \dusa{matnum} \\
+$~~[~\{$ \moc{NTOT0} $|$ \moc{TOTAL} $\}$ (\dusa{xssigt}(jg),    jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{NTOT1} (\dusa{xssig1}(jg),    jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{TRANC} (\dusa{xsstra}(jg),    jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{NUSIGF} ((\dusa{xssigf}(jf,jg), jg=1,\dusa{ngroup}), jf=1,\dusa{nifiss}) $]$ \\
+$~~[$ \moc{CHI}    ((\dusa{xschi}(jf,jg),    jg=1,\dusa{ngroup}), jf=1,\dusa{nifiss})$]$ \\
+$~~[$ \moc{FIXE}   (\dusa{xsfixe}(jg),    jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{DIFF}   (\dusa{diff}(jg),    jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{DIFFX} (\dusa{xdiffx}(jg), jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{DIFFY} (\dusa{xdiffy}(jg), jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{DIFFZ} (\dusa{xdiffz}(jg), jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{NUSIGD} (((\dusa{xssigd}(jf,idel,jg), jg=1,\dusa{ngroup}), idel=1,\dusa{ndel}), jf=1,\dusa{nifiss}) $]$ \\
+$~~[$ \moc{CHDL}   (((\dusa{xschid}(jf,idel,jg), jg=1,\dusa{ngroup}), idel=1,\dusa{ndel}), jf=1,\dusa{nifiss})$]$ \\
+$~~[$ \moc{OVERV} (\dusa{overv}(jg), jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{H-FACTOR} (\dusa{xhfact}(jg), jg=1,\dusa{ngroup}) $]$ \\
+$~~[$ \moc{SCAT} ((\dusa{nbscat}(jl,jg), \dusa{ilastg}(jl,jg), (\dusa{scat}(jl,jg,ig), ig=1,\dusa{nbscat}(jl,jg) ), jg=1,\dusa{ngroup}), jl=1,\dusa{naniso}) $]$
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{MIX}] keyword to specify that the macroscopic cross sections
+associated with a new mixture are to be read.
+
+\item[\dusa{matnum}] identifier for the next mixture to be read. The maximum
+value permitted for this identifier is \dusa{nmixt}. When \dusa{matnum} is
+absent, the mixtures are numbered consecutively starting with 1 or with the last
+mixture number read either on the GOXS or the input stream.  
+
+\item[\moc{NTOT0}] keyword to specify that the total macroscopic cross
+sections for this mixture follows.
+
+\item[\moc{TOTAL}] alias keyword for \moc{NTOT0}.
+
+\item[\dusa{xssigt}] array representing the multigroup total macroscopic cross
+section ($\Sigma^{g}$ in \xsunit) associated with this mixture.
+
+\item[\moc{NTOT1}] keyword to specify that the $P_1$--weighted total macroscopic cross
+sections for this mixture follows.
+
+\item[\dusa{xssig1}] array representing the multigroup $P_1$--weighted total macroscopic cross
+section ($\Sigma_1^{g}$ in \xsunit) associated with this mixture.
+
+\item[\moc{TRANC}] keyword to specify that the transport correction macroscopic cross
+sections for this mixture follows.
+
+\item[\dusa{xsstra}] array representing the multigroup transport correction macroscopic cross
+section ($\Sigma_{\rm tc}^{g}$ in \xsunit) associated with this mixture.
+
+\item[\moc{NUSIGF}] keyword to specify that the macroscopic fission cross
+section multiplied by the average number of neutrons per fission for this
+mixture follows.
+
+\item[\dusa{xssigf}] array representing the multigroup macroscopic fission
+cross section multiplied by the average number
+of neutrons per fission ($\nu\Sigma_{f}^{g}$ in \xsunit) for all the fissile
+isotopes associated with this mixture. 
+
+\item[\moc{CHI}] keyword to specify that the fission spectrum for this mixture
+follows. By default, if \moc{CHI} is not provided, all fission neutrons are
+emitted in group index 1 (fast group).
+
+\item[\dusa{xschi}] array representing the multigroup fission spectrum
+($\chi^{g}$) for all the fissile isotopes associated with this mixture.
+
+\item[\moc{FIXE}] keyword to specify that the fixed neutron source density for
+this mixture follows.
+
+\item[\dusa{xsfixe}] array representing the multigroup fixed neutron source
+density for this mixture ($S^{g}$ in $s^{-1}cm^{-3}$). 
+
+\item[\moc{DIFF}] keyword to specify that the isotropic diffusion coefficient for
+this mixture follows.
+
+\item[\dusa{diff}] array representing the multigroup isotropic diffusion coefficient for
+this mixture ($D^{g}$ in $cm$). 
+
+\item[\moc{DIFFX}] keyword for input of the $X$--directed diffusion coefficient. 
+
+\item[\dusa{xdiffx}] array representing the multigroup $X$--directed diffusion coefficient ($D^g_x$ in cm) for the mixture 
+\dusa{matnum}. 
+
+\item[\moc{DIFFY}] keyword for input of the $Y$--directed diffusion coefficient. 
+
+\item[\dusa{xdiffy}] array representing the multigroup $Y$--directed diffusion coefficient ($D^g_y$ in cm) for the mixture 
+\dusa{matnum}. 
+
+\item[\moc{DIFFZ}] keyword for input of the $Z$--directed diffusion coefficient.
+
+\item[\dusa{xdiffz}] array representing the multigroup $Z$--directed diffusion coefficient ($D^g_z$ in cm) for the mixture 
+\dusa{matnum}. 
+
+\item[\moc{NUSIGD}] keyword to specify that the delayed macroscopic fission cross
+section multiplied by the average number of neutrons per fission for this
+mixture follows.
+
+\item[\dusa{xssigd}] array representing the delayed multigroup macroscopic fission
+cross section multiplied by the average number
+of neutrons per fission ($\nu\Sigma_{f}^{g,idel}$ in \xsunit) for all the fissile
+isotopes associated with this mixture. 
+
+\item[\moc{CHDL}] keyword to specify that the delayed fission spectrum for this mixture
+follows.
+
+\item[\dusa{xschid}] array representing the delayed multigroup fission spectrum
+($\chi^{g,idel}$) for all the fissile isotopes associated with this mixture.
+
+\item[\moc{OVERV}] keyword for input of the multigroup average of the inverse neutron velocity.
+
+\item[\dusa{overv}] array representing the multigroup average of the inverse neutron velocity ($<1/v>_{m}^g$) for the mixture 
+\dusa{matnum}. 
+
+\item[\moc{H-FACTOR}] keyword to specify that the power factor for
+this mixture follows.
+
+\item[\dusa{hfact}] array representing the multigroup power factor for this
+mixture ($H^{g}$ in $eV~cm^{-1}$). 
+
+\item[\moc{SCAT}] keyword to specify that the macroscopic scattering cross
+section matrix for this mixture follows.
+
+\item[\dusa{nbscat}] array representing the number of secondary groups ig with
+non vanishing macroscopic scattering cross section towards the primary group jg
+considered for each anisotropy level associated with this mixture.
+
+\item[\dusa{ilastg}] array representing the group index of the most thermal
+group with non-vanishing macroscopic scattering cross section towards the
+primary group jg considered for each anisotropy level associated with this
+mixture.
+
+\item[\dusa{xsscat}] array representing the multigroup macroscopic scattering
+cross section ($\Sigma_{sl}^{ig\to jg}$ in \xsunit) from the secondary group ig
+towards the primary group jg considered for each anisotropy level associated
+with this mixture. The elements are ordered using decreasing secondary group
+number ig, from \dusa{ilastg} to (\dusa{ilastg}$-$\dusa{nbscat}$+1$), and an
+increasing primary group number jg.
+
+\end{ListeDeDescription}
+
+For example, the two group isotropic and linearly anisotropic scattering
+cross sections (\dusa{ngroup}=2, \dusa{naniso}=2) given by:
+
+\begin{center}
+\begin{tabular}{lcccc}
+$L$ & $\Sigma_{s,l}^{1\to 1}$ & $\Sigma_{s,l}^{1\to 2}$
+    & $\Sigma_{s,l}^{2\to 1}$ & $\Sigma_{s,l}^{2\to 2}$ \\
+0   & 0.50 ${\rm cm}^{-1}$ & 0.20 ${\rm cm}^{-1}$ & 0.03 ${\rm cm}^{-1}$ & 0.40 ${\rm cm}^{-1}$ \\
+1   & 0.05 ${\rm cm}^{-1}$ & 0.00 ${\rm cm}^{-1}$ & 0.00 ${\rm cm}^{-1}$ & 0.04 ${\rm cm}^{-1}$ 
+\end{tabular}
+\end{center}
+
+\noindent must be entered as:
+
+\begin{verbatim}
+SCAT  (*L=0*) 2 2 (*2->1*) 0.03 (*1->1*) 0.50 
+              2 2 (*2->2*) 0.40 (*1->2*) 0.20 
+      (*L=1*) 1 1               (*1->1*) 0.05 
+              1 2 (*2->2*) 0.04             
+\end{verbatim}
+\clearpage
+
+\subsection{The {\tt BIVACT:} module}\label{sect:bivact}
+
+The {\tt BIVACT:} module is used to perform  a BIVAC-type {\sc tracking} on a 1D/2D geometry.\cite{bivac,benaboud,SVAT1}
+The geometry is analyzed and a LCM object with signature {\tt L\_BIVAC} is created with the following information:
+\begin{itemize}
+\item Diagonal and hexagonal symmetries are unfolded and the mesh-splitting operations are performed. Volumes, material mixture and averaged flux recovery indices are computed on the resulting geometry.
+\item A finite element discretization is performed and the corresponding numbering is saved.
+\item The unit finite element matrices (mass, stiffness, etc.) are recovered.
+\end{itemize}
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{BIVACT:}}
+\dusa{TRACK} \moc{:=} \moc{BIVACT:} $[$ \dusa{TRACK} $]$ \dusa{GEOM}  \moc{::} \dstr{bivact\_data}
+\end{DataStructure}
+
+\goodbreak
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_BIVAC}) containing the {\sc tracking} information. If \dusa{TRACK} appears on the RHS, the previous settings will be applied by default.
+
+\item[\dusa{GEOM}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_GEOM}) containing the geometry.
+
+\item[\dstr{bivact\_data}] structure containing the data to module {\tt BIVACT:} (see Sect.~\ref{sect:bivact_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt BIVACT:}}\label{sect:bivact_data}
+
+\begin{DataStructure}{Structure \dstr{bivact\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{TITL} \dusa{TITLE} $]$ \\
+$[$ \moc{MAXR} \dusa{maxpts} $]$ \\
+$[$ $\{$ \moc{PRIM} $[$ \dusa{ielem} \dusa{icol} $]$ \\
+~~~~$|$ \moc{DUAL} $[$ \dusa{ielem} \dusa{icol} $]$ \\
+~~~~$|$ \moc{MCFD} $\}~]$ \\
+$[~\{$ \moc{PN} $|$ \moc{SPN} $\}$ $[$ \moc{DIFF} $]$ \dusa{nlf} $[$ \moc{SCAT} \dusa{iscat} $]~[$ \moc{VOID} \dusa{nvd}~$]~]$ \\
+{\tt ;}
+\end{DataStructure}
+
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing  in module {\tt
+BIVACT:}. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\item[\moc{TITL}] keyword which allows the run title to be set.
+
+\item[\dusa{TITLE}] the title associated with a TRIVAC run. This
+title may contain up to 72 characters. The default when \moc{TITL} is not specified is no title.
+
+\item[\moc{MAXR}] keyword which permits the maximum number of regions to be considered during a TRIVAC run to be specified.
+
+\item[\dusa{maxpts}] maximum dimensions of the problem to be considered.  The
+default value is set to the number of regions previously computed by the {\tt
+GEO:} module but this value is insufficient if symmetries or mesh-splitting
+are specified.
+
+\item[\moc{PRIM}] keyword to set a primal finite element (classical)
+discretization.
+
+\item[\moc{DUAL}] keyword to set a mixed-dual finite element discretization. If the
+geometry is hexagonal, a Thomas-Raviart-Schneider method is used.\cite{rts}
+
+\item[\moc{MCFD}] keyword to set a mesh-centered finite difference discretization
+in hexagonal geometry.
+
+\item[\dusa{ielem}] order of the finite element representation.  The values
+permitted are 1 (linear polynomials), 2 (parabolic polynomials), 3 (cubic
+polynomials) or 4 (quartic polynomials). By default \dusa{ielem}=1.
+
+\item[\dusa{icol}] type of quadrature used to integrate the mass matrices. The
+values permitted are 1 (analytical integration), 2  (Gauss-Lobatto quadrature)
+or 3 (Gauss-Legendre quadrature). By default \dusa{icol}=2. The analytical
+integration corresponds to classical finite elements; the Gauss-Lobatto
+quadrature corresponds to a variational or nodal type collocation and the
+Gauss-Legendre quadrature corresponds to superconvergent finite elements.
+
+\item[\moc{PN}] keyword to set a spherical harmonics ($P_n$) expansion of the flux.\cite{nse2005}
+
+\item[\moc{SPN}] keyword to set a simplified spherical harmonics ($SP_n$) expansion
+of the flux.\cite{nse2005,ane10a} This option is currently available with 1D and 2D Cartesian geometries
+and with 2D hexagonal geometries.
+
+\item[\moc{DIFF}] keyword to force using $1/3D^{g}$ as $\Sigma_1^{g}-\Sigma_{{\rm s}1}^{g}$ cross sections. A $P_1$ or $SP_1$ method
+will therefore behave as diffusion theory.
+
+\item[\dusa{nlf}] order of the $P_n$ or $SP_n$ expansion (odd number). Set to zero for diffusion theory (default value).
+
+\item[\moc{SCAT}] keyword to limit the anisotropy of scattering sources.
+
+\item[\dusa{iscat}] number of terms in the scattering sources. \dusa{iscat} $=1$ is used for
+isotropic scattering in the laboratory system. \dusa{iscat} $=2$ is used for
+linearly anisotropic scattering in the laboratory system. The default value is set to $n+1$
+in $P_n$ or $SP_n$ case.
+
+\item[\moc{VOID}] keyword to set the number of base points in the Gauss-Legendre quadrature used to integrate
+void boundary conditions if \dusa{icol} $=3$ and \dusa{n} $\ne 0$.
+
+\item[\dusa{nvd}] type of quadrature. The values
+permitted are: 0 (use a (\dusa{n}$+2$)--point quadrature consistent with $P_{{\rm n}}$ theory),
+1 (use a (\dusa{n}$+1$)--point quadrature consistent with $S_{{\rm n}+1}$ theory),
+2 (use an analytical integration of the void boundary conditions). By default \dusa{nvd}=0.
+
+\end{ListeDeDescription}
+
+Various finite element approximations can be obtained by combining different values of \dusa{ielem} and \dusa{icol}:
+\begin{itemize}
+\item {\tt PRIM 1 1~:} Linear finite elements;
+\item {\tt PRIM 1 2~:} Mesh corner finite differences;
+\item {\tt PRIM 1 3~:} Linear superconvergent finite elements;
+\item {\tt PRIM 2 1~:} Quadratic finite elements;
+\item {\tt PRIM 2 2~:} Quadratic variational collocation method;
+\item {\tt PRIM 2 3~:} Quadratic superconvergent finite elements;
+\item {\tt PRIM 3 1~:} Cubic finite elements;
+\item {\tt PRIM 3 2~:} Cubic variational collocation method;
+\item {\tt PRIM 3 3~:} Cubic superconvergent finite elements;
+\item {\tt PRIM 4 2~:} Quartic variational collocation method;
+\item {\tt DUAL 1 1~:} Mixed-dual linear finite elements;
+\item {\tt DUAL 1 2~:} Mesh centered finite differences;
+\item {\tt DUAL 1 3~:} Mixed-dual linear superconvergent finite elements (numerically equivalent to {\tt PRIM~1~3});
+\item {\tt DUAL 2 1~:} Mixed-dual quadratic finite elements;
+\item {\tt DUAL 2 2~:} Quadratic nodal collocation method;
+\item {\tt DUAL 2 3~:} Mixed-dual quadratic superconvergent finite elements (numerically equivalent to {\tt PRIM~2~3});
+\item {\tt DUAL 3 1~:} Mixed-dual cubic finite elements;
+\item {\tt DUAL 3 2~:} Cubic nodal collocation method;
+\item {\tt DUAL 3 3~:} Mixed-dual cubic superconvergent finite elements (numerically equivalent to {\tt PRIM~3~3});
+\item {\tt DUAL 4 2~:} Quartic nodal collocation method;
+\end{itemize}
+\clearpage
+
+\subsection{The {\tt TRIVAT:} module}
+
+The {\tt TRIVAT:} module is used to perform a TRIVAC-type {\sc tracking} on a
+1D/2D/3D geometry.\cite{SVAT1,SVAT2,MCFD,Trivac,mixte-dual,benaboud} The
+geometry is analyzed and a LCM object with signature {\tt L\_TRIVAC} is
+created with the following information:
+
+\begin{itemize}
+\item Diagonal and hexagonal symmetries are unfolded and the mesh-splitting 
+operations are performed. Volumes, material mixture and averaged flux recovery
+indices are computed on the resulting geometry. \item A finite element
+discretization is performed and the corresponding numbering is saved. \item The
+unit finite element matrices (mass, stiffness, etc.) are recovered. \item
+Indices related to an ADI preconditioning with or without supervectorization
+are saved. \end{itemize}
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{TRIVAT:}}
+\dusa{TRACK} \moc{:=} \moc{TRIVAT:} $[$ \dusa{TRACK} $]$ \dusa{GEOM}  \moc{::} \dstr{trivat\_data}
+\end{DataStructure}
+
+\goodbreak
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{TRACK}] {\tt character*12} of the {\sc lcm} object (type {\tt L\_TRIVAC}) 
+containing the {\sc tracking} information. If \dusa{TRACK} appears on the RHS, the
+previous settings will be applied by default.
+
+\item[\dusa{GEOM}] {\tt character*12} of the {\sc lcm} object (type {\tt
+L\_GEOM}) containing the geometry.
+
+\item[\dstr{trivat\_data}] structure containing  the data to module {\tt TRIVAT:} (see Sect.~\ref{sect:trivat_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt TRIVAT:}}\label{sect:trivat_data}
+
+\begin{DataStructure}{Structure \dstr{trivat\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{TITL} \dusa{TITLE} $]$ \\
+$[$ \moc{MAXR} \dusa{maxpts} $]$ \\
+$[~\{$ \moc{PRIM} $[$ \dusa{ielem} $]~|$ \moc{DUAL} $[$ \dusa{ielem} \dusa{icol} $]~|$ \moc{MCFD} $[$ \dusa{ielem} $]~|$ \moc{LUMP} $[$ \dusa{ielem} $]~\}~]$ \\
+$[$ \moc{SPN} $[$ \moc{DIFF} $]$ \dusa{nlf} $[$ \moc{SCAT} \dusa{iscat} $]~[$ \moc{VOID} \dusa{nvd} $]~]$ \\
+$[$ \moc{ADI} \dusa{nadi} $]$ \\
+$[$ \moc{VECT} $[$ \dusa{iseg} $]~[$ \moc{PRTV} \dusa{impv} $]~]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing  in module {\tt
+TRIVAT:}. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\item[\moc{TITL}] keyword which allows the run title to be set.
+
+\item[\dusa{TITLE}] the title associated with a TRIVAC run. This
+title may contain up to 72 characters. The default when \moc{TITL} is not specified is no title.
+
+\item[\moc{MAXR}] keyword which permits the maximum number of regions to be considered during a TRIVAC run to be specified.
+
+\item[\dusa{maxpts}] maximum dimensions of the problem to be considered.  The
+default value is set to the number of regions previously computed by the {\tt
+GEO:} module but this value is insufficient if symmetries or mesh-splitting
+are specified.
+
+\item[\moc{PRIM}] keyword to set a discretization based on the variational collocation method.
+
+\item[\moc{DUAL}] keyword to set a mixed-dual finite element discretization. If the
+geometry is hexagonal, a Thomas-Raviart-Schneider method is used.\cite{rts}
+
+\item[\moc{MCFD}] keyword to set a discretization based  on the nodal
+collocation method. The mesh centered finite difference approximation is the
+default option and is generally set using {\tt MCFD~1}. The {\tt MCFD}
+approximations are numerically equivalent to the {\tt DUAL} approximations
+with \dusa{icol}=2; however, the {\tt MCFD} approximations are less
+expensive. 
+
+\item[\moc{LUMP}] keyword to set a discretization  based on the nodal
+collocation method with serendipity approximation. The serendipity
+approximation is different from the \moc{MCFD} option in cases with \dusa{ielem}$\ge$2. This option is not available for hexagonal geometries.
+
+\item[\dusa{ielem}] order of the finite element representation.  The values
+permitted are: 1 (linear polynomials), 2 (parabolic polynomials), 3 (cubic
+polynomials) or 4 (quartic polynomials). By default \dusa{ielem}=1.
+
+\item[\dusa{icol}] type of quadrature used to  integrate the mass matrices.
+The values permitted are: 1 (analytical integration), 2  (Gauss-Lobatto
+quadrature) or 3 (Gauss-Legendre quadrature). By default \dusa{icol}=2. The
+analytical integration corresponds to classical finite elements; the
+Gauss-Lobatto quadrature corresponds to a variational or nodal type
+collocation and the Gauss-Legendre quadrature corresponds to superconvergent
+finite elements.
+
+\item[\moc{SPN}] keyword to set a simplified spherical harmonics ($SP_n$) expansion
+of the flux.\cite{nse2005,ane10a} This option is available with 1D, 2D and 3D Cartesian geometries and with 2D and 3D
+hexagonal geometries.
+
+\item[\moc{DIFF}] keyword to force using $1/3D^{g}$ as $\Sigma_1^{g}-\Sigma_{{\rm s}1}^{g}$ cross sections. A $P_1$ or $SP_1$ method
+will therefore behave as diffusion theory.
+
+\item[\dusa{nlf}] order of the $P_n$ or $SP_n$ expansion (odd number). Set to zero for diffusion theory (default value).
+
+\item[\moc{SCAT}] keyword to limit the anisotropy of scattering sources.
+
+\item[\dusa{iscat}] number of terms in the scattering sources. \dusa{iscat} $=1$ is used for
+isotropic scattering in the laboratory system. \dusa{iscat} $=2$ is used for
+linearly anisotropic scattering in the laboratory system. The default value is set to $n+1$
+in $P_n$ or $SP_n$ case.
+
+\item[\moc{VOID}] keyword to set the number of base points in the Gauss-Legendre quadrature used to integrate
+void boundary conditions if \dusa{icol} $=3$ and \dusa{n} $\ne 0$.
+
+\item[\dusa{nvd}] type of quadrature. The values
+permitted are: 0 (use a (\dusa{n}$+2$)--point quadrature consistent with $P_{\rm n}$ theory),
+1 (use a (\dusa{n}$+1$)--point quadrature consistent with $S_{{\rm n}+1}$ theory),
+2 (use an analytical integration of the void boundary conditions). By default \dusa{nvd}=0.
+
+\item[\moc{ADI}] keyword to set the number of ADI iterations at the inner
+iterative level.
+
+\item[\dusa{nadi}] number of ADI iterations (default: \dusa{nadi} $=2$).
+
+\item[\moc{VECT}] keyword to set an ADI preconditionning with
+supervectorization. By default, TRIVAC uses an ADI preconditionning without
+supervectorization.
+
+\item[\dusa{iseg}] width of a vectorial register. \dusa{iseg} is generally a multiple of 64. By default, \dusa{iseg}=64.
+
+\item[\moc{PRTV}] keyword used to set \dusa{impv}.
+
+\item[\dusa{impv}] index used to control the  printing in supervectorization
+subroutines. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\end{ListeDeDescription}
+Various finite element approximations can be obtained with different values of \dusa{ielem} (see Sect.~\ref{sect:bivact}).
+\clearpage
+
+\subsection{The {\tt BIVACA:} module}
+
+The {\tt BIVACA:} module is used to compute the finite element system matrices (type {\tt L\_SYSTEM}) corresponding to a BIVAC {\sc tracking} (type {\tt L\_BIVAC}) and to a set of nuclear properties (type {\tt L\_MACROLIB}). The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{BIVACA:}}
+\dusa{SYST} \moc{:=} \moc{BIVACA:} $[$ \dusa{SYST} $]$ \dusa{MACRO}  \dusa{TRACK} \moc{::} \dstr{bivaca\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{SYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) containing the system matrices. If \dusa{SYST} appears on the RHS, the system matrices previously stored in \dusa{SYST} are kept.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the macroscopic cross sections and diffusion coefficients.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_BIVAC}) containing the BIVAC {\sc tracking}.
+
+\item[\dstr{bivaca\_data}] structure containing the data to module {\tt BIVACA:} (see Sect.~\ref{sect:bivaca_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt BIVACA:}}\label{sect:bivaca_data}
+
+\begin{DataStructure}{Structure \dstr{bivaca\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]~[$ \moc{UNIT} $]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control  the printing in module {\tt
+BIVACA:}. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\item[\moc{UNIT}] A system matrix corresponding to cross sections all set to 1.0 is computed. This keyword is mandatory if
+the system matrices in \dusa{SYST} are going to be used by \moc{INIKIN:} or \moc{KINSOL:} modules (see Sects.~\ref{sect:inikin}
+and~\ref{sect:kinsol}).
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt TRIVAA:} module}
+
+The TRIVAA: module is used to compute the finite element system matrices (type {\tt L\_SYSTEM}) corresponding to a TRIVAC {\sc tracking} (type {\tt L\_TRIVAC}) and to a set of nuclear properties (type {\tt L\_MACROLIB}). The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{TRIVAA:}}
+\dusa{SYST} \moc{:=} \moc{TRIVAA:} $[$ \dusa{SYST} $]$ \dusa{MACRO}  \dusa{TRACK} $[$ \dusa{DMACRO} $]$ \moc{::} \dstr{trivaa\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{SYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) containing the system matrices. If \dusa{SYST} appears on the RHS, the system matrices previously stored in \dusa{SYST} are kept.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the macroscopic cross sections and diffusion coefficients.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRIVAC}) containing the TRIVAC {\sc tracking}.
+
+\item[\dusa{DMACRO}] {\tt character*12} name of the {\sc lcm} object  (type {\tt
+L\_MACROLIB}) containing derivatives or perturbations of the macroscopic cross
+sections and diffusion coefficients. If \dusa{DMACRO} is given, only
+the derivatives or perturbations of the system matrices are computed.
+
+\item[\dstr{trivaa\_data}] structure containing the data to module {\tt TRIVAA:} (see Sect.~\ref{sect:trivaa_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt TRIVAA:}}\label{sect:trivaa_data}
+
+\begin{DataStructure}{Structure \dstr{trivaa\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{SKIP} $]$ $~[\{$ \moc{DERI} $|$ \moc{PERT} $\}]$ $~[$ \moc{UNIT} $]~[$ \moc{OVEL} $]$\\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing  in module {\tt
+TRIVAA:}. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\item[\moc{SKIP}] keyword used to skip the system matrix assembly but to perform the $L-D-L^T$ factorization. Use the system matrices already present in \dusa{SYST}.
+
+\item[\moc{DERI}] The information recovered from \dusa{DMACRO}  is used as
+derivatives of nuclear properties with respect to a state variable.
+Derivatives of system matrices with respect to the same state variable are
+computed.
+
+\item[\moc{PERT}] The information recovered from \dusa{DMACRO}  is used as
+the perturbation of the nuclear properties. Perturbations of the system matrices
+are computed.
+
+\item[\moc{UNIT}] A system matrix corresponding to cross sections all set to 1.0 is computed. This keyword is mandatory if
+the system matrices in \dusa{SYST} are going to be used by \moc{INIKIN:} or \moc{KINSOL:} modules (see Sects.~\ref{sect:inikin}
+and~\ref{sect:kinsol}).
+
+\item[\moc{OVEL}] The reciprocal neutron velocities for each material mixture are recovered from the input {\sc macrolib} \dusa{MACRO} and used
+to compute the corresponding system matrices. This capability is deprecated.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt FLUD:} module}
+
+The {\tt FLUD:} module is used to compute the solution to an eigenvalue problem corresponding to a set of system matrices (type {\tt L\_SYSTEM}). The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{FLUD:}}
+\dusa{FLUX} \moc{:=} \moc{FLUD:} $[$ \dusa{FLUX} $]$ \dusa{SYST} \dusa{TRACK} $[$ \dusa{MACRO} $]$ \moc{::} \dstr{flud\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{FLUX}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing the solution. If \dusa{FLUX} appears on the RHS, the solution previously stored in \dusa{FLUX} is used to initialize the new iterative process; otherwise, a uniform unknown vector is used.
+
+\item[\dusa{SYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) containing the system matrices.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing the {\sc tracking}.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the optional {\sc lcm} object (type {\tt L\_MACROLIB}) containing the cross sections. This
+object is only used to set a link to the {\sc macrolib} name inside the {\sc flux} object. By default, the name of the {\sc macrolib} is recovered
+from the link in the {\sc system} object.
+
+\item[\dstr{flud\_data}] structure containing the data to module {\tt FLUD:} (see Sect.~\ref{sect:fld_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt FLUD:}}\label{sect:fld_data}
+
+\begin{DataStructure}{Structure \dstr{flud\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[~\{$ \moc{VAR1} $|$ \moc{ACCE} $\}$ \dusa{icl1} \dusa{icl2} $]~[$ \moc{IRAM} \dusa{blsz} \dusa{korg}
+$[$ \dusa{nstard} $[$ \moc{EPSG} \dusa{epsmsr} $]~]~]$ \\
+$[$ \moc{EXTE}  $[$ \dusa{maxout} $]~[$ \dusa{epsout} $]~]$ \\
+$[$ \moc{THER}  $[$ \dusa{maxthr} $]~[$ \dusa{epsthr} $]~]$ \\
+$[$ \moc{ADI} \dusa{nadi} $]$ \\
+$[$ \moc{ADJ} $]$ \\
+$[$ \moc{MONI} \dusa{lmod} $[$ \moc{RAND} $]$ $]$ \\
+$[$ \moc{RELAX} \dusa{relax} $]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing  in module {\tt FLUD:}.
+=0 for no print; =1 for minimum printing (default value); =2 iteration history
+is printed; =3 the solution is printed; =4 at each iteration, the new solution
+is compared to a reference solution previously stored in \dusa{FLUX} under
+name {\tt REF}; =5 the convergence histogram is stored in \dusa{FLUX}.
+
+\item[\moc{VAR1}] keyword used to set the parameters \dusa{icl1} and \dusa{icl2}. These parameter are used with the symmetrical variational acceleration technique (SVAT) for convergence of the generalized eigenvalue problem (default option) and to accelerate up-scattering iterations.
+
+\item[\moc{ACCE}] alias keyword for \moc{VAR1}.
+
+\item[\dusa{icl1}] number of free outer iterations in a cycle of the variational acceleration technique.
+The default value is \dusa{icl1} $=3$.
+
+\item[\dusa{icl2}] number of accelerated outer iterations  in a cycle of the
+variational acceleration technique. The default value is \dusa{icl2} $=3$. A convergence in free iterations is
+obtained by setting \dusa{icl1} $=200$ (or \dusa{icl1} $=$ \dusa{maxout}) and \dusa{icl2} $=0$.
+
+\item[\moc{IRAM}] keyword used to to switch on the implicit restarted Arnoldi method (IRAM) and to
+set the parameters \dusa{blsz}, \dusa{korg} and \dusa{nstard}.\cite{iram} By default, the symmetrical variational acceleration technique (SVAT) is used.
+
+\item[\dusa{blsz}] block size of the Arnoldi Hessenberg matrix. \dusa{blsz} is the number of fixed-source Boltzmann transport
+equations solved similtaneously at each iteration of the implicit restarted Arnoldi method. The recommended value is \dusa{blsz} $=3$.
+
+\item[\dusa{korg}] number of desired eigenvalues with \dusa{korg} $\ge$ \dusa{blsz}.
+
+\item[\dusa{nstard}] number of iterations before restarting with the GMRES(m) acceleration method for solving the ADI-preconditionned linear systems in Trivac. The maximum number of GMRES iterations is set to \dusa{nadi}. By default, GMRES(m) acceleration is not used and \dusa{nadi} free iterations are performed.
+
+\item[\moc{EPSG}] keyword to specify the inner iteration GMRES epsilon.
+
+\item[\dusa{epsmsr}] convergence criterion for the inner iteration GMRES iterations. The
+fixed default value is \dusa{epsmsr} $=1.0\times 10^{-6}$.
+
+\item[\moc{EXTE}] keyword to specify that the control parameters for the
+external iteration are to be modified. 
+
+\item[\dusa{maxout}] maximum number of external iterations. The fixed default
+value is \dusa{maxout} $=200$.
+
+\item[\dusa{epsout}] convergence criterion for the external iterations. The
+fixed default value is \dusa{epsout} $=1.0\times 10^{-4}$. The outer iterations are stopped when the following criteria is reached:
+$$\max_i | \Phi_i^{(k-1)} - \Phi_i^{(k)} | \ \le \ epsout \times \max_i | \Phi_i^{(k)} |$$
+\noindent where $\vec\Phi^{(k)}={\rm col}\{\Phi_i^{(k)} \ ; \ i=1,I\}$ is the product of the $B$ matrix times the unknown vector at the $k$-th outer iteration.
+
+\item[\moc{THER}] keyword to specify that the control parameters for the
+thermal iterations are to be modified.
+
+\item[\dusa{maxthr}] maximum number of thermal iterations. The fixed default
+value is \dusa{maxthr} $=0$ corresponding to no thermal iterations.
+
+\item[\dusa{epsthr}] convergence criterion for the thermal iterations. The
+fixed default value is \dusa{epsthr} $=1.0\times 10^{-5}$.
+
+\item[\moc{ADI}] keyword used to set the number of alternating direction implicit (ADI) inner iterations in cases where Trivac is used.
+This keyword is also used to set the number of flux iterations over Legendre orders with $SP_n$ Bivac and Trivac cases if $n\ge 3$.
+
+\item[\dusa{nadi}] number of ADI inner or Legendre order iterations per outer iteration. The default value is $nadi=1$. If this value causes a failure of the acceleration process, it is recommended that a larger value be tried. The optimal
+choice is generally the minimum value of $nadi$ which allows a convergence in
+less than 75 outer iterations. $nadi=1$ or $nadi=2$ is generally the best
+choice for production-type calculations. The greater $nadi$ is, the smaller 
+the asymptotic convergence constant (ACC) becomes. Taking an arbitrary large
+value (e.g., $nadi=20$) leads to numerical results identical to those of the
+inverse power method where the system matrices are accurately inverted at each
+outer iteration (at a prohibitive CPU cost). In this case, the ACC is almost
+equal to the dominance ratio of the iterative matrix. The default value is
+recovered in the state vector of the {\sc tracking} object \dusa{TRACK}.
+
+\item[\moc{ADJ}] keyword used to obtain the solution to both the direct and adjoint eigenvalue problems.
+The adjoint solution is required if we subsequently want to perform a perturbation calculation. This option is limited to Trivac.
+
+\item[\moc{MONI}] keyword used to obtain the first harmonics of the solution and to set \dusa{lmod}. {\sl A full core representation of the reactor should be used to compute its harmonics. If symmetries are set in the geometry, some harmonics may be skipped. If the reactor is symmetric, a uniform initial estimate of the harmonics may cause some harmonics to be skipped; the keyword \moc{RAND} should therefore be used.}
+
+\item[\dusa{lmod}] the $lmod$ first bi-orthonormalized harmonics of the solution are computed using the SVAT-accelerated preconditioned power method with a Hotelling deflation procedure.\cite{wilkinson}
+
+\item[\moc{RAND}] keyword used to initialize the harmonics  calculations
+(option \moc{MONI}) with a random estimate rather than a uniform estimate.
+This option has no effect if \dusa{FLUX} appears on the RHS.
+
+\item[\moc{RELAX}] keyword used to set the relaxation parameter. This keyword must be specified each time a relaxation is required.
+
+\item[\dusa{relax}] relaxation parameter selected in the interval $0<$ \dusa{relax} $\le 1.0$ and used to update
+the flux information in the \dusa{FLUX} object. The updated value is taken equal to
+$(1.0-$\dusa{relax}$)$ times the previous value (given in the RHS \dusa{FLUX} object) plus \dusa{relax} times the value computed within current {\tt FLUD:} call.
+The default value is \dusa{relax} $=1.0$.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt DELTA:} module}
+
+The {\tt DELTA:} module is used to compute the source components of a fixed source eigenvalue problem corresponding to a set of 
+unperturbed and perturbation system matrices (type {\tt L\_SYSTEM}).
+
+In the direct case, the fixed source is computed as:
+\begin{equation}
+\vec S=\left( \delta\shadowA - \lambda_o \, \delta \shadowB\right) \vec \Phi - \delta \lambda \, \shadowB_o\vec \Phi
+\end{equation}
+\noindent where the direct source vector $\vec S$ is orthogonal to the unperturbed adjoint flux $\Phi^*$.
+
+In the adjoint case, the fixed source is computed as:
+\begin{equation}
+\vec S^*=\left( \delta \shadowA^\top - \lambda_o \, \delta \shadowB^\top\right) \vec \Phi^*- \delta \lambda \, \shadowB_o^\top\vec \Phi^*
+\end{equation}
+\noindent where the adjoint source vector $\vec S^*$ is orthogonal to the unperturbed direct flux $\Phi$ and where $\delta \lambda$ is the perturbation of the eigenvalue, as computed from the Rayleigh ratio.
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{DELTA:}}
+\dusa{GPT} \moc{:=} \moc{DELTA:} $[$ \dusa{GPT} $]$ \dusa{FLUX0} \dusa{SYST0} \dusa{DSYST} \dusa{TRACK} \moc{::} \dstr{delta\_data}
+\end{DataStructure}
+
+\goodbreak
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{GPT}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SOURCE}) containing the fixed source. If
+\dusa{GPT} appears on the RHS, this information is used to initialize the state vector.
+
+\item[\dusa{FLUX0}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing the unperturbed flux.
+
+\item[\dusa{SYST0}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) containing the unperturbed system matrices.
+
+\item[\dusa{DSYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) containing a perturbation to the system matrices.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing the {\sc tracking}.
+
+\item[\dstr{delta\_data}] structure containing the data to module {\tt DELTA:} (see Sect.~\ref{sect:delta_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt DELTA:}}\label{sect:delta_data}
+
+\begin{DataStructure}{Structure \dstr{delta\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{ADJ} $]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing in module {\tt DELTA:}.
+
+\item[\moc{ADJ}] keyword used to set the source on an adjoint fixed source eigenvalue problem.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt GPTFLU:} module}
+
+The {\tt GPTFLU:} module is used to compute the solution to a fixed source eigenvalue
+problem corresponding to a set of unperturbed system matrices and sources vectors.
+
+If $\vec S$ is the source term of the explicit generalized adjoint equation, this
+module will solve:
+\begin{equation}
+\left( \shadowA_o - \lambda_o \, \shadowB_o\right) \vec \Gamma_{i} = \vec S_{i}
+\end{equation}
+\noindent where the direct source vector $\vec S_{i}$ is orthogonal to the adjoint flux.
+
+If $\vec S$ is the source term of the implicit generalized adjoint equation, this
+module will solve:
+\begin{equation}
+\left( \shadowA_o^\top - \lambda_o \, \shadowB_o^\top\right) \vec \Gamma_{j}^* = \vec S_{j}^{*}
+\end{equation}
+\noindent where the adjoint source vector $\vec S_{j}^*$ is orthogonal to the direct flux.
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{GPTFLU:}}
+\dusa{FLUX\_GPT} \moc{:=} \moc{GPTFLU:} $[$ \dusa{FLUX\_GPT} $]$ \dusa{GPT} \dusa{FLUX0} \dusa{SYST} \dusa{TRACK} \moc{::} \dstr{gptflu\_data}
+\end{DataStructure}
+
+\goodbreak
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{FLUX\_GPT}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing the GPT solution. If \dusa{FLUX\_GPT} appears on the RHS, the solution previously stored in \dusa{FLUX\_GPT} is used to initialize the new iterative process; otherwise, a uniform unknown vector is used.
+
+\item[\dusa{GPT}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SOURCE}) containing the fixed sources.
+
+\item[\dusa{FLUX0}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing the unperturbed flux used to decontaminate the GPT solution.
+
+\item[\dusa{SYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) containing the unperturbed system matrices.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing the {\sc tracking}.
+
+\item[\dstr{gptflu\_data}] structure containing the data to module {\tt GPTFLU:}\label{sect:gptflu_data}.
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt GPTFLU:}}\label{sect:gptflu_data}
+
+\begin{DataStructure}{Structure \dstr{gptflu\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[~\{$ \moc{VAR1} $|$ \moc{ACCE} $\}$ \dusa{icl1} \dusa{icl2} $]~[$ \moc{GMRES} \dusa{nstart} $]$ \\
+$[$ \moc{EXTE}  $[$ \dusa{maxout} $]~[$ \dusa{epsout} $]~]$ \\
+$[$ \moc{THER}  $[$ \dusa{maxthr} $]~[$ \dusa{epsthr} $]~]$ \\
+$[$ \moc{ADI} \dusa{nadi} $]$ \\
+$[$ \{ \moc{EXPLICIT} $|$ \moc{IMPLICIT} \} $]$ \\
+\moc{FROM-TO} $\{$ \moc{ALL} $|$ \dusa{$i_{src1}$} \dusa{$i_{src2}$} $\}$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control  the printing in module {\tt GPTFLU:}.
+=0 for no print; =1 for minimum printing (default value); =2 iteration history
+is printed; =3 the solution is printed; =4 at each iteration, the new solution
+is compared to a reference solution previously stored in \dusa{FLUX\_GPT} under
+the name {\tt REF}; =5 the convergence histogram is stored in \dusa{FLUX\_GPT}.
+
+\item[\moc{VAR1}] keyword used to set the parameters \dusa{icl1} and \dusa{icl2}. These parameter are used with the variational acceleration technique for convergence of the fixed-source iterations (default option) and to accelerate up-scattering iterations.
+
+\item[\moc{ACCE}] alias keyword for \moc{VAR1}.
+
+\item[\dusa{icl1}] number of free outer iterations in a cycle of the variational acceleration technique. The default value is \dusa{icl1} $=3$.
+
+\item[\dusa{icl2}] number of accelerated outer iterations in a cycle of the variational acceleration technique. The default value is \dusa{icl2} $=3$. A convergence in free iterations is obtained by setting \dusa{icl1} $=200$ (or \dusa{icl1} $=$ \dusa{maxout}) and \dusa{icl2} $=0$.
+
+\item[\moc{GMRES}] keyword to switch on the GMRES(m) acceleration of the fixed-source iterations. By default, the variational acceleration technique is used.
+
+\item[\dusa{nstart}] restarts the GMRES method every \dusa{nstart} outer iterations. The recommended value is \dusa{nstart} $=10$.
+
+\item[\moc{EXTE}] keyword to specify that the control parameters for the
+external iteration are to be modified. 
+
+\item[\dusa{maxout}] maximum number of external iterations. The fixed default
+value is \dusa{maxout} $=200$.
+
+\item[\dusa{epsout}] convergence criterion for the external iterations. The
+fixed default value is \dusa{epsout} $=1.0\times 10^{-4}$. The outer iterations are stopped when the following criteria is reached:
+$$\max_i | \Gamma_i^{(k-1)} - \Gamma_i^{(k)} | \ \le \ epsout \times \max_i | \Gamma_i^{(k)} |$$
+\noindent where $\vec\Gamma^{(k)}={\rm col}\{\Gamma_i^{(k)} \ ; \ i=1,I\}$ is the product of the $\shadowB$ matrix times the unknown vector at the $k$-th outer iteration.
+
+\item[\moc{THER}] keyword to specify that the control parameters for the
+thermal iterations are to be modified.
+
+\item[\dusa{maxthr}] maximum number of thermal iterations. The fixed default
+value is \dusa{maxthr} $=0$ corresponding to no thermal iterations.
+
+\item[\dusa{epsthr}] convergence criterion for the thermal iterations. The
+fixed default value is \dusa{epsthr} $=1.0\times 10^{-2}$.
+
+\item[\moc{ADI}] keyword used to set \dusa{nadi} in cases where Trivac is used.
+
+\item[\dusa{nadi}] number of alternating  direction implicit (ADI) inner
+iterations per outer iteration. The default value is $nadi=1$. If this value causes a failure of the acceleration process, it is recommended that a larger value be tried. The optimal
+choice is generally the minimum value of $nadi$ which allows a convergence in
+less than 75 outer iterations. $nadi=1$ or $nadi=2$ is generally the best
+choice for production-type calculations. The greater $nadi$ is, the smaller 
+the asymptotic convergence constant (ACC) becomes. Taking an arbitrary large
+value (e.g., $nadi=20$) leads to numerical results identical to those obtained by
+inverting the system matrices at each
+outer iteration (at a prohibitive CPU cost). In this case, the ACC is almost
+equal to the dominance ratio of the iterative matrix.
+
+\item[\moc{EXPLICIT}] keyword used to obtain the solution of an direct fixed source eigenvalue problem.
+
+\item[\moc{IMPLICIT}] keyword used to obtain the solution of an adjoint fixed source eigenvalue problem. If neither
+'\moc{EXPLICIT}' nor '\moc{IMPLICIT}' are provided the default value will be chosen as a function of $n_{var}$ and $n_{cst}+1$.
+
+\item[\moc{FROM-TO}] keyword used to specify the numbers of the sources for which a generalized adjoint will be calculated.
+
+\item[\moc{ALL}] keyword used to recover all sources available in \dusa{GPT}.
+
+\item[\dusa{$i_{src1}$}] number of the first source.
+
+\item[\dusa{$i_{src1}$}] number of the last source.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt OUT:} module}
+
+The {\tt OUT:} module is used to compute the reaction rates and to store them in an extended {\sc macrolib} (type {\tt L\_MACROLIB}) corresponding to a solution (type {\tt L\_FLUX}) of the matrix system. The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{OUT:}}
+\dusa{MACRO2} \moc{:=} \moc{OUT:} \dusa{FLUX} \dusa{TRACK} \dusa{MACRO} \dusa{GEOM} \moc{::} \dstr{out\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{MACRO2}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the extended {\sc macrolib}.
+
+\item[\dusa{FLUX}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing a solution.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing a {\sc tracking}.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the reference {\sc macrolib}.
+
+\item[\dusa{GEOM}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_GEOM}) containing the reference {\sc geometry}.
+
+\item[\dstr{out\_data}] structure containing the data to module {\tt OUT:}\label{sect:out_data}.
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt OUT:}}\label{sect:out_data}
+
+\begin{DataStructure}{Structure \dstr{out\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{MODE} \dusa{imode} $]$ \\
+$[~\{$ \moc{DIRE} $|$ \moc{PROD} $\}~]$ \\
+$[~\{$ \moc{POWR} \dusa{power} $|$ \moc{SOUR} \dusa{snumb} $\}~]$ \\
+$[$ \moc{COND} $[~\{$ \moc{NONE} $|$ (\dusa{icond}(i), i=1,ngcond) $\}~]~]$ \\
+$[$ \moc{INTG} $\{$ \moc{NONE} $|$ \moc{IN} $|$ \moc{MIX} $|$ (\dusa{ihom}(i), i=1,nreg) $\}~]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing in module {\tt OUT:}. =0 for no print; =1 for minimum printing (default value).
+
+\item[\moc{MODE}] keyword to specify the flux harmonic index \dusa{imode}.
+
+\item[\dusa{imode}] index of the flux harmonic recovered by the {\tt OUT:} module if the {\tt MONI} keyword was set in module {\tt FLUD:}
+(see Sect.~\ref{sect:fld_data}). By default, it is assumed that the {\tt MONI} keyword was not used.
+
+\item[\moc{DIRE}] use the direct flux to perform homogenization and/or condensation (default option).
+
+\item[\moc{PROD}] use the product of adjoint and direct fluxes to perform homogenization and/or condensation.
+
+\item[\moc{POWR}] keyword used to set \dusa{power}.
+
+\item[\dusa{power}] value of the power in MW used to normalize the flux. By default, the flux is not normalized.
+
+\item[\moc{SOUR}] keyword used to set \dusa{snumb}.
+
+\item[\dusa{snumb}] number of source particles used to normalize the flux. By default, the flux is not normalized.
+
+\item[\moc{COND}] keyword to specify that a group condensation of the flux is
+to be performed. By default, no group condensation of the flux is
+to be performed, so that \dusa{ngcond}$=$\dusa{ngroup}.
+
+\item[\dusa{icond}] array of increasing energy group limits that will be associated with
+each of the \dusa{ngcond} condensed groups. We must have \dusa{ngcond}$\le$\dusa{ngroup}. By default, if \moc{COND} is set
+and \dusa{icond} is not set, all energy groups are condensed together.
+
+\item[\moc{NONE}] keyword to specify that no group condensation of the flux is
+to be performed, so that \dusa{ngcond}$=$\dusa{ngroup} (default option).
+
+\item[\moc{INTG}] keyword used to compute the reaction rates.
+
+\item[\moc{NONE}] keyword for computing the reaction rates on the geometry mesh (see Sect.~\ref{sect:geo_data1}) after mesh-splitting.
+
+\item[\moc{IN}] keyword for computing the reaction rates on the geometry mesh (see Sect.~\ref{sect:geo_data1}) before mesh-splitting.
+
+\item[\moc{MIX}] keyword for computing the reaction rates on the mixture mesh previously used to define the geometry (see Sect.~\ref{sect:geo_data1}) before mesh-splitting.
+
+\item[\dusa{ihom}] index of the homogenized region corresponding to the each region of the geometry (see Sect.~\ref{sect:geo_data1}) before mesh-splitting.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt ERROR:} module}
+
+The {\tt ERROR:} module is used to compare reaction rates contained into two extended {\sc macrolibs} and to print statistics regarding the comparison.
+
+\vskip 0.2cm
+
+The QUANDRY-type power densities are first compared. These power densities are defined by the following relation:
+
+$$P^{\rm quandry}_i={\sum\limits_i V_i \over V_i} {P_i \over \sum\limits_i P_i}$$
+
+\noindent where $P_i$ is the total power and $V_i$ is the volume of the  region $i$. The maximum and averaged errors are respectively defined by:
+
+$$\epsilon_{\rm max}=\max_i {|P_i^{\rm quandry}-P_i^{{\rm quandry}*}| \over P_i^{{\rm quandry}*}}$$
+
+\noindent and
+
+$$\bar\epsilon = {1 \over V_{\rm core}} \sum_i \left[ {|P_i^{\rm quandry}-P_i^{{\rm quandry}*}| \over P_i^{{\rm quandry}*}}\right] V_i$$
+
+\noindent where $P_i^{{\rm quandry}*}$ is computed using the reference powers (stored in \dusa{MACRO1}) and $V_{\rm core}$ is the total volume of the regions where the power density is not equal to zero.
+
+\vskip 0.2cm
+
+The normalized removal rates $T_{i,g}^{\rm norm}$ in each region $i$ and energy group $g$ are next computed using the following formula:
+
+$$T_{i,g}=(\Sigma_{i,g} -\Sigma_{{\rm w}i,g}) \ \phi_{i,g} V_i$$
+
+$$T_{i,g}^{\rm norm}={1 \over \sum\limits_i \sum\limits_g T_{i,g}} \ T_{i,g}$$
+
+\noindent where $\Sigma_{i,g}$ is the total macroscopic cross section, $\Sigma_{{\rm w}i,g}$ is the within-group scattering cross section and $\phi_{i,g}$ is the neutron flux. The maximum and averaged errors are respectively defined by:
+
+$$\epsilon_{{\rm max} \ g}=\max_i {|T_{i,g}^{\rm norm}-T_{i,g}^{{\rm norm}*}| \over T_{i,g}^{{\rm norm}*}}$$
+
+\noindent and
+
+$$\bar\epsilon_g = {1 \over N} \sum_i \left[ {|T_{i,g}^{\rm norm}-T_{i,g}^{{\rm norm}*}| \over T_{i,g}^{{\rm norm}*}}\right]$$
+
+\noindent where $T_{i,g}^{{\rm norm}*}$ is computed using the reference values (stored in \dusa{MACRO1}) and $N$ is the total number of regions in the {\sc macrolib}.
+
+\vskip 0.2cm
+\goodbreak
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{ERROR:}}
+\moc{ERROR:} \dusa{MACRO1} \dusa{MACRO2} \moc{::} $[$ \moc{HREA} \dusa{hname} $]~[$ \moc{NREG} \dusa{nreg} $]$ ;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{MACRO1}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the extended {\sc macrolib} used to compute the reference reaction rates.
+
+\item[\dusa{MACRO2}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the extended {\sc macrolib} used to compute the approximate reaction rates.
+
+\item[\moc{HREA}] keyword used to set the character name \dusa{hname}.
+
+\item[\dusa{hname}] character*8 name of the nuclear reaction used to compute the power map. By default, reaction {\tt H-FACTOR} is used.
+
+\item[\moc{NREG}] keyword used to set the \dusa{nreg} number.
+
+\item[\dusa{nreg}] integer number set to the number of regions used in statistics. By default, all available regions are used.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt INIKIN:} module}\label{sect:inikin}
+
+The {\tt INIKIN:} module is used  to recover the steady-state solution and to initialize the kinetics parameters.
+The delayed neutron information can be provided directly from the input file or recovered from the {\sc macrolib}
+data structure.
+
+The initial presursor concentrations are obtained as a function of the strady-state solution. If $\phi_g(\bff(r),t_0)$ is
+the initial flux in energy group $g$ divided by $k_{\rm eff}$, the corresponding initial conditions of the precursors are obtained as
+\begin{equation}
+c_{\ell}(\bff(r),t_0)={1 \over \lambda_\ell} \sum_{h=1}^G \nu\Sigma_{{\rm f}\ell,h}^{\rm del}(\bff(r)) \, \phi_h(\bff(r),t_0) ; \ \ \ \ell=1,N_d .
+\label{eq:eq_inikin_1}
+\end{equation}
+
+\noindent where $\nu\Sigma_{{\rm f}\ell,h}^{\rm del}(\bff(r))$ is $\nu$ times the delayed macroscopic fission cross section in energy group
+$h$ for precursor group $\ell$.
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{INIKIN:}}
+\dusa{KINET} \moc{:=} \moc{INIKIN:} \dusa{MACRO} \dusa{TRACK} \dusa{SYST} \dusa{FLUX} \moc{::} \dstr{inikin\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{KINET}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_KINET}) to be created by the module.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the {\sc macrolib} information.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing the {\sc tracking} information.
+
+\item[\dusa{SYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) corresponding to {\sc macrolib} \dusa{MACRO}
+and {\sc tracking} \dusa{TRACK}.
+
+\item[\dusa{FLUX}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing the initial steady-state solution.
+
+\item[\dstr{inikin\_data}] structure containing the data to module {\tt INIKIN:} (see Sect.~\ref{sect:inikin_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt INIKIN:}}\label{sect:inikin_data}
+
+\begin{DataStructure}{Structure \dstr{inikin\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{NGRP} \dusa{ngrp} $]$ \\
+~\moc{NDEL} \dusa{ndg} \\
+$[$ \moc{BETA} (\dusa{beta}(i),    i=1,\dusa{ndg}) $]$ \\
+$[$ \moc{LAMBDA} (\dusa{lambda}(i),    i=1,\dusa{ndg}) $]$ \\
+$[$ \moc{CHID} ((\dusa{chid}(i),    i=1,\dusa{ndg}), j=1,\dusa{ngrp}) $]$ \\
+$[$ \moc{NORM} $\{$ \dusa{fnorm} $|$ \moc{MAX} $|$ \moc{POWER-INI} \dusa{power} $\}~]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint} index.
+
+\item[\dusa{iprint}] integer index used to control  the printing in module {\tt INIKIN:}.
+=0 for no print; =1 for minimum printing (default value); larger values of \dusa{iprint}
+will produce increasing amounts of output.
+
+\item[\moc{NGRP}] keyword used to set the \dusa{ngrp} number. By default, this information is recovered from the solution object
+\dusa{FLUX}.
+
+\item[\dusa{ngrp}] integer total number of energy groups.
+
+\item[\moc{NDEL}] keyword used to set the \dusa{ndg} number.
+
+\item[\dusa{ndg}] integer total number of the delayed neutron groups.
+
+\item[\moc{BETA}] keyword used to indicate the reading of \dusa{beta} values from the input file.
+If these values are not provided, they should be recorded in the {\sc macrolib} data structure.
+
+\item[\dusa{beta}] real array containing the delayed neutron fractions for each delayed group.
+
+\item[\moc{LAMBDA}] keyword used to indicate the reading of \dusa{lambda} values from the input file.
+If these values are not provided, they should be recorded in the {\sc macrolib} data structure.
+
+\item[\dusa{lambda}] real array containing the precursors decay constants for each delayed group.
+
+\item[\moc{CHID}] keyword used to indicate the reading of \dusa{chid} values from the input file.
+If these values are not provided, they should be recorded in the {\sc macrolib} data structure.
+
+\item[\dusa{chid}] real array representing the delayed multigroup fission spectrum.
+
+\item[\moc{NORM}] keyword used to normalize the initial flux. By default, the flux is not normalized.
+
+\item[\dusa{fnorm}] real normalization factor.
+
+\item[\moc{MAX}] keyword used to set the flux normalization factor to $1/f_{\rm max}$ where $f_{\rm max}$ is
+the maximum flux in the core.
+
+\item[\moc{POWER-INI}] keyword used to set the flux normalization factor to a given value of the initial power.
+
+\item[\dusa{power}] real initial power in MW.
+
+\end{ListeDeDescription}
+\clearpage
+
+\subsection{The {\tt KINSOL:} module}\label{sect:kinsol}
+
+The {\tt KINSOL:} module is used  to solve the space-time neutron kinetics equations at current time step of transient.
+
+\subsubsection{The direct (forward) solution}
+
+We first consider the discretization of the legacy forward space-time kinetics equation. Several implicit numerical schemes are available for this purpose.
+Consider first the differential equation for precursor concentrations:
+\begin{equation}
+{\partial c_{\ell}(\bff(r),t) \over \partial t}+\lambda_\ell \, c_{\ell}(\bff(r),t) =\sum_{h=1}^G \nu\Sigma_{{\rm f}\ell,h}^{\rm del}(\bff(r)) \, \phi_h(\bff(r),t); \ \ \
+\ell=1,N_d.
+\label{eq:eq_inikin_2}
+\end{equation}
+
+Consider a solution between times $t_{n-1}$ and $t_{n}=t_{n-1}+\Delta t_n$. First, an analytic solution can be obtained by assuming a ramp
+variation of the fission reaction rates over time step $\Delta t_n$. This solution is written
+\begin{eqnarray}
+\nonumber c_{\ell}(\bff(r),t_n)\negthinspace\negthinspace&=&\negthinspace\negthinspace c_{\ell}(\bff(r),t_{n-1}) \, {\rm e}^{-\lambda_\ell \, \Delta t_n}+{F_\ell(\bff(r),t_{n-1})\over \lambda_\ell} \left[
+{1\over\lambda_\ell \, \Delta t_n}\left( 1- {\rm e}^{-\lambda_\ell \, \Delta t_n}\right)-{\rm e}^{-\lambda_\ell \, \Delta t_n} \right] \\
+&+&\negthinspace\negthinspace {F_\ell(\bff(r),t_n)\over \lambda_\ell} \left[ 1-{1\over\lambda_\ell \, \Delta t_n}\left( 1- {\rm e}^{-\lambda_\ell \, \Delta t_n}\right) \right] 
+\label{eq:eq_inikin_3}
+\end{eqnarray}
+
+\noindent where the delayed fission reaction rates are defined as
+\begin{eqnarray}
+F_\ell(\bff(r),t_{n})=\sum_{h=1}^G \nu\Sigma_{{\rm f}\ell,h}^{\rm del}(\bff(r)) \, \phi_h(\bff(r),t_n)=\beta_\ell \sum_{h=1}^G \nu\Sigma_{{\rm f}h}(\bff(r)) \, \phi_h(\bff(r),t_n) .
+\label{eq:eq_inikin_4}
+\end{eqnarray}
+
+An {\sl implicit theta solution} is presented in Chapter~5 of Ref.~\citen{PIP2009}. This solution is written
+\begin{eqnarray}
+\nonumber c_{\ell}(\bff(r),t_n)\negthinspace\negthinspace&=&\negthinspace\negthinspace \left[ {1-(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n }\right] c_{\ell}(\bff(r),t_{n-1}) +{F_\ell(\bff(r),t_{n-1})\over \lambda_\ell} \left[{(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n\over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n } \right]  \\
+&+&\negthinspace\negthinspace{F_\ell(\bff(r),t_n)\over \lambda_\ell}  \left[{ \Theta_{\rm p} \, \lambda_\ell \,\Delta t_n\over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n}  \right] 
+\label{eq:eq_inikin_5}
+\end{eqnarray}
+
+\noindent where $\Theta_{\rm p}$ is the theta-factor for precursors.
+
+The fixed-source corresponding to the analytic solution for precursors is written
+\begin{eqnarray}
+\nonumber S_g^{\rm exact}(\bff(r),t_n)\negthinspace\negthinspace&=&\negthinspace\negthinspace{1\over V_{{\rm n},g}\, \Delta t_n} \,\phi_g(\bff(r),t_{n-1}) + \sum_\ell\lambda_\ell \left[ 1- \Theta_{\rm f}+ \Theta_{\rm f} \, {\rm e}^{-\lambda_\ell \, \Delta t_n}\right]\chi_{\ell,g}^{\rm del}(\bff(r)) \, c_\ell(\bff(r),t_{n-1})\\
+\nonumber &+& \negthinspace\negthinspace(1- \Theta_{\rm f})\bigg\{\bff(\nabla) \cdot \shadowD_g(\bff(r)) \bff(\nabla) \phi_g(\bff(r),t_{n-1}) - \Sigma_{{\rm r}g}(\bff(r)) \, \phi_g(\bff(r),t_{n-1}) \\
+\nonumber&+&\negthinspace\negthinspace \sum_{{h=1} \atop {h \not= g}}^G \Sigma_{g \leftarrow h}(\bff(r)) \, \phi_h(\bff(r),t_{n-1})+\chi_g^{\rm ss}(\bff(r))\, F(\bff(r),t_{n-1})\bigg\} \\
+&-& \negthinspace\negthinspace \sum_\ell \left[1- \Theta_{\rm f}- \Theta_{\rm f}  \left(
+{1\over\lambda_\ell \, \Delta t_n}\left( 1- {\rm e}^{-\lambda_\ell \, \Delta t_n}\right)-{\rm e}^{-\lambda_\ell \, \Delta t_n} \right) \right] \chi_{\ell,g}^{\rm del}(\bff(r)) \, F_\ell(\bff(r),t_{n-1})
+\label{eq:eq_inikin_6}
+\end{eqnarray}
+
+\noindent where the steady-state fission reaction rates are defined as
+\begin{eqnarray}
+F(\bff(r),t_{n})=\sum_{h=1}^G \nu\Sigma_{{\rm f}h}(\bff(r)) \, \phi_h(\bff(r),t_n) .
+\label{eq:eq_inikin_7}
+\end{eqnarray}
+
+The fixed-source corresponding to the implicit theta solution is presented in Chapter~5 of Ref.~\citen{PIP2009} and is written
+\begin{eqnarray}
+\nonumber S_g^\Theta(\bff(r),t_n)\negthinspace\negthinspace&=&\negthinspace\negthinspace{1\over V_{{\rm n},g}\, \Delta t_n} \,\phi_g(\bff(r),t_{n-1}) + \sum_\ell\lambda_\ell \left[ 1- \Theta_{\rm f}+ \Theta_{\rm f} \,  {1-(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n }\right]\chi_{\ell,g}^{\rm del}(\bff(r)) \, c_\ell(\bff(r),t_{n-1})\\
+\nonumber &+& \negthinspace\negthinspace(1- \Theta_{\rm f})\bigg\{\bff(\nabla) \cdot \shadowD_g(\bff(r)) \bff(\nabla) \phi_g(\bff(r),t_{n-1}) - \Sigma_{{\rm r}g}(\bff(r)) \, \phi_g(\bff(r),t_{n-1}) \\
+\nonumber&+&\negthinspace\negthinspace \sum_{{h=1} \atop {h \not= g}}^G \Sigma_{g \leftarrow h}(\bff(r)) \, \phi_h(\bff(r),t_{n-1})+\chi_g^{\rm ss}(\bff(r))\, F(\bff(r),t_{n-1})\bigg\} \\
+&-& \negthinspace\negthinspace \sum_\ell \left[1- \Theta_{\rm f}- \Theta_{\rm f} \, {(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n } \right] \chi_{\ell,g}^{\rm del}(\bff(r)) \, F_\ell(\bff(r),t_{n-1}) .
+\label{eq:eq_inikin_8}
+\end{eqnarray}
+
+The flux equation at end-of-step is now presented. The equation corresponding to the analytic solution for precursors is written
+\begin{eqnarray}
+\nonumber&~&{1\over V_{{\rm n},g}\, \Delta t_n} \, \phi_g(\bff(r),t_n) - \Theta_{\rm f} \, \bff(\nabla) \cdot \shadowD_g(\bff(r)) \bff(\nabla) \phi_g(\bff(r),t_n) + \Theta_{\rm f} \, \Sigma_{{\rm r}g}(\bff(r)) \, \phi_g(\bff(r),t_n) \\
+\nonumber&~& \ \ \ \ \ \ = \, S_g^{\rm exact}(\bff(r),t_n)+ \Theta_{\rm f} \, \sum_{{h=1} \atop {h \not= g}}^G \Sigma_{g \leftarrow h}(\bff(r)) \, \phi_h(\bff(r),t_n)\\
+&~& \ \ \ \ \ \ + \ \Theta_{\rm f} \, \chi_g^{\rm ss}(\bff(r)) \, F(\bff(r),t_{n}) -\Theta_{\rm f} \sum_\ell \chi_{\ell,g}^{\rm del}(\bff(r)) \, {1\over\lambda_\ell \, \Delta t_n}\left( 1- {\rm e}^{-\lambda_\ell \, \Delta t_n}\right) F_\ell(\bff(r),t_{n}) .
+\label{eq:eq_inikin_9}
+\end{eqnarray}
+
+The equation corresponding to the implicit theta solution is presented in Chapter~5 of Ref.~\citen{PIP2009} and is written
+\begin{eqnarray}
+\nonumber&~&{1\over V_{{\rm n},g}\, \Delta t_n} \, \phi_g(\bff(r),t_n) - \Theta_{\rm f} \, \bff(\nabla) \cdot \shadowD_g(\bff(r)) \bff(\nabla) \phi_g(\bff(r),t_n) + \Theta_{\rm f} \, \Sigma_{{\rm r}g}(\bff(r)) \, \phi_g(\bff(r),t_n) \\
+\nonumber&~& \ \ \ \ \ \ = \, S_g^\Theta(\bff(r),t_n)+ \Theta_{\rm f} \, \sum_{{h=1} \atop {h \not= g}}^G \Sigma_{g \leftarrow h}(\bff(r)) \, \phi_h(\bff(r),t_n)\\
+&~& \ \ \ \ \ \ + \ \Theta_{\rm f} \, \chi_g^{\rm ss}(\bff(r)) \, F(\bff(r),t_{n}) -\Theta_{\rm f} \sum_\ell \chi_{\ell,g}^{\rm del}(\bff(r)) \, {1 \over 1+\Theta_{\rm p} \, \lambda_\ell\, \Delta t_n} \, F_\ell(\bff(r),t_{n}) .
+\label{eq:eq_inikin_10}
+\end{eqnarray}
+
+\subsubsection{The adjoint (backward) solution}
+
+The negative sign in front of the term $(1/v) \partial\phi^*/\partial t$ suggest some sort of backward approach to compute the importance (as opposed to the direct
+or forward approach for the direct neutron flux). Hence, while it is necessary to define an initial state of the system to solve the direct equations, solving the
+importance equations requires final conditions and to proceed backward with respect to time.
+
+\vskip 0.08cm
+
+Discretization of the adjoint space-time kinetics equations using the {\sl implicit theta solution} leads to the following equations. The solution for precursors is written
+\begin{eqnarray}
+\nonumber c^*_{\ell}(\bff(r),t_{n-1})\negthinspace\negthinspace&=&\negthinspace\negthinspace \left[ {1-(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n}\right] c^*_{\ell}(\bff(r),t_{n}) + \left[{(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n\over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n } \right] \sum_{h=1}^G \chi_{\ell,h}^{\rm del}(\bff(r)) \, \phi^*_h(\bff(r),t_{n}) \\
+&+&\negthinspace\negthinspace \left[{ \Theta_{\rm p} \, \lambda_\ell \,\Delta t_n\over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n} \right]\sum_{h=1}^G \chi_{\ell,h}^{\rm del}(\bff(r)) \, \phi^*_h(\bff(r),t_{n-1}) .
+\label{eq:eq_inikin_11}
+\end{eqnarray}
+
+\goodbreak
+The flux equation at beginning-of-step is written
+\begin{eqnarray}
+\nonumber&~&{1\over V_{{\rm n},g}\, \Delta t_n} \, \phi^*_g(\bff(r),t_{n-1}) - \Theta_{\rm f} \, \bff(\nabla) \cdot \shadowD_g(\bff(r)) \bff(\nabla) \phi^*_g(\bff(r),t_{n-1}) + \Theta_{\rm f} \, \Sigma_{{\rm r}g}(\bff(r)) \, \phi^*_g(\bff(r),t_{n-1}) \\
+\nonumber&~& \ \ \ \ \ \ = \, S_g^{*\Theta}(\bff(r),t_{n-1})+ \Theta_{\rm f} \, \sum_{{h=1} \atop {h \not= g}}^G \Sigma_{h \leftarrow g}(\bff(r)) \, \phi^*_h(\bff(r),t_{n-1})\\
+&~& \ \ \ \ \ \ + \ \Theta_{\rm f}\sum_{h=1}^G \left[\nu\Sigma_{{\rm f}g}(\bff(r))\, \chi_h^{\rm ss}(\bff(r)) - \sum_\ell \nu\Sigma_{{\rm f}\ell,g}^{\rm del}(\bff(r))\,\chi_{\ell,h}^{\rm del}(\bff(r))
+\, {1 \over 1+\Theta_{\rm p} \, \lambda_\ell\, \Delta t_{n-1}}\right] \phi^*_h(\bff(r),t_{n-1})
+\label{eq:eq_inikin_12}
+\end{eqnarray}
+
+\noindent where the fixed-source $S_g^{*\Theta}(\bff(r),t_{n-1})$ is written
+\begin{eqnarray}
+\nonumber S_g^{*\Theta}(\bff(r),t_{n-1})\negthinspace\negthinspace&=&\negthinspace\negthinspace{1\over V_{{\rm n},g}\, \Delta t_n} \,\phi_g(\bff(r),t_{n}) + \sum_\ell \nu\Sigma_{{\rm f}\ell,g}^{\rm del}(\bff(r)) \left[ 1- \Theta_{\rm f}+ \Theta_{\rm f} \,  {1-(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n }\right] c^*_\ell(\bff(r),t_{n})\\
+\nonumber &+& \negthinspace\negthinspace(1- \Theta_{\rm f})\bigg\{\bff(\nabla) \cdot \shadowD_g(\bff(r)) \bff(\nabla) \phi^*_g(\bff(r),t_{n}) - \Sigma_{{\rm r}g}(\bff(r)) \, \phi^*_g(\bff(r),t_{n}) \\
+\nonumber&+&\negthinspace\negthinspace \sum_{{h=1} \atop {h \not= g}}^G \Sigma_{h \leftarrow g}(\bff(r)) \, \phi^*_h(\bff(r),t_{n})+ \sum_{h=1}^G \nu\Sigma_{{\rm f}g}(\bff(r))\, \chi_h^{\rm ss}(\bff(r)) \, \phi^*_h(\bff(r),t_{n}) \bigg\} \\
+&-& \negthinspace\negthinspace \sum_\ell \left[1- \Theta_{\rm f}- \Theta_{\rm f} \, {(1- \Theta_{\rm p}) \, \lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n } \right] \sum_{h=1}^G \nu\Sigma_{{\rm f}\ell,g}^{\rm del}(\bff(r))\,\chi_{\ell,h}^{\rm del}(\bff(r)) \, \phi^*_h(\bff(r),t_{n}) .
+\label{eq:eq_inikin_13}
+\end{eqnarray}
+
+The equations corresponding to the analytic solution for precursors are obtained by replacing the following terms in Eqs.~(\ref{eq:eq_inikin_11}) to~(\ref{eq:eq_inikin_13}):
+\begin{equation}
+{1\over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n} \ \Rightarrow \ {1-\exp^{-\lambda_\ell \, \Delta t_n} \over \lambda_\ell \, \Delta t_n} \ \ \ {\rm and} \ \ \
+{1-(1-\Theta_{\rm p}\,\lambda_\ell \, \Delta t_n \over 1+ \Theta_{\rm p}\, \lambda_\ell \, \Delta t_n} \ \Rightarrow \ \exp^{-\lambda_\ell \, \Delta t_n} .
+\label{eq:eq_inikin_14}
+\end{equation}
+\goodbreak
+
+\subsubsection{The calling specifications}
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{KINSOL:}}
+\dusa{KINET} \moc{:=} \moc{KINSOL:} \dusa{KINET} \dusa{MACRO} \dusa{TRACK} \dusa{SYST} $[$ \dusa{MACRO\_0} \dusa{SYST\_0} $]$
+\moc{::} \dstr{kinsol\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{KINET}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_KINET}) in modification mode.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the {\sc macrolib}
+information corresponding to the current time step of a transient.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing the {\sc tracking} information.
+
+\item[\dusa{SYST}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) corresponding to {\sc macrolib} \dusa{MACRO}
+and {\sc tracking} \dusa{TRACK}.
+
+\item[\dusa{MACRO\_0}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the {\sc macrolib}
+information corresponding to the beginning-of-step conditions in case a ramp variation of the cross sections in set.
+{\sl Beginning-of-step conditions should not be confused with beginning-of-transient or initial conditions.} By default,
+a step variation is set where cross sections are assumed constant and given by \dusa{MACRO}.
+
+\item[\dusa{SYST\_0}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_SYSTEM}) corresponding to {\sc macrolib} \dusa{MACRO\_0}
+and {\sc tracking} \dusa{TRACK}.
+
+\item[\dstr{kinsol\_data}] structure containing the data to module {\tt KINSOL:} (see Sect.~\ref{sect:kinsol_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt KINSOL:}}\label{sect:kinsol_data}
+
+\begin{DataStructure}{Structure \dstr{kinsol\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+~\moc{DELTA} \dusa{delta} \\
+~\moc{SCHEME}
+~\moc{FLUX} $[$ \moc{TEXP} $]~\{$ \moc{IMPLIC} $|$ \moc{CRANK} $|$ \moc{THETA} \dusa{ttflx} $\}$ \\
+~\moc{PREC} $\{$ \moc{IMPLIC} $|$ \moc{CRANK} $|$ \moc{EXPON} $|$ \moc{THETA} \dusa{ttprc} $\}$ \\
+$[~\{$ \moc{VAR1} $|$ \moc{ACCE} $\}$ \dusa{icl1} \dusa{icl2} $]$ \\
+$[$ \moc{EXTE}  $[$ \dusa{maxout} $]~[$ \dusa{epsout} $]~]$ \\
+$[$ \moc{THER}  $[$ \dusa{maxthr} $]~[$ \dusa{epsthr} $]~]$ \\
+$[$ \moc{ADI} \dusa{nadi} $]$ \\
+$[$ \moc{ADJ} $]$ \\
+$[$ \moc{PICK}  {\tt >>} \dusa{power\_out} {\tt <<} $]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint} index.
+
+\item[\dusa{iprint}] integer index used to control  the printing in module {\tt KINSOL:}.
+=0 for no print; =1 for minimum printing (default value); larger values of \dusa{iprint}
+will produce increasing amounts of output.
+
+\item[\moc{DELTA}] keyword used to set the \dusa{delta} value.
+
+\item[\dusa{delta}] current time increment $\Delta t_n$ of transient.
+
+\item[\moc{SCHEME}] keyword used to indicate the temporal numerical schemes.
+
+\item[\moc{TEXP}] keyword used to enable the exponential transformation procedure on transient flux. Mixture- and group-dependent
+factors $\omega_{m,g}$ are set such that the flux at point $\bff(r)$ is defined as
+\begin{equation}
+\phi_g(\bff(r),t)=e^{\omega_{m,g} t} \tilde\phi_g(\bff(r),t)
+\label{eq:eq_kinsol_1}
+\end{equation}
+\noindent where $m$ is the mixture index corresponding to point $\bff(r)$. Factors $\omega_{m,g}$ are initialized to zero by module
+{\tt INIKIN:} and are recomputed at the end of each time step.
+
+\item[\moc{FLUX}] keyword used to select the temporal scheme for the fluxes equations.
+
+\item[\moc{PREC}] keyword used to select the temporal scheme for the precursors equations.
+
+\item[\moc{IMPLIC}] keyword used to indicate the full implicit temporal scheme.
+
+\item[\moc{CRANK}] keyword used to indicate the Crank-Nicholson temporal scheme.
+
+\item[\moc{EXPON}] keyword used to indicate the analytical integration scheme for precursors equations.
+
+\item[\moc{THETA}] keyword used to indicate the general temporal scheme according to the
+\dusa{theta} method.
+
+\item[\dusa{ttflx}] value of \dusa{theta} parameter $ \Theta_{\rm f}$ for the flux equations. This value should be
+greater than 0.5 and less than 1.0.
+
+\item[\dusa{ttprc}] value of \dusa{theta} parameter $ \Theta_{\rm p}$ for the precursors equations. This value should be
+greater than 0.5 and less than 1.0.
+
+\item[\moc{VAR1}] keyword used to switch on the variational acceleration technique and to
+set the parameters \dusa{icl1} and \dusa{icl2}.
+
+\item[\moc{ACCE}] alias keyword for \moc{VAR1}.
+
+\item[\dusa{icl1}] number of free outer iterations  in a cycle of the variational acceleration technique.
+The default value is \dusa{icl1} $=3$.
+
+\item[\dusa{icl2}] number of accelerated outer iterations  in a cycle of the
+variational acceleration technique. The default value is \dusa{icl2} $=3$. A convergence in free iterations is
+obtained by setting \dusa{icl1} $=200$ (or \dusa{icl1} $=maxout$) and \dusa{icl2} $=0$.
+
+\item[\moc{EXTE}] keyword to specify that the control parameters for the
+external iteration are to be modified. 
+
+\item[\dusa{maxout}] maximum number of external iterations. The fixed default
+value is \dusa{maxout} $=200$.
+
+\item[\dusa{epsout}] convergence criterion for the external iterations. The
+fixed default value is \dusa{epsout} $=1.0\times 10^{-4}$. The outer iterations are stopped when the following criteria is reached:
+$$\max_i | \Phi_i^{(k-1)} - \Phi_i^{(k)} | \ \le \ epsout \times \max_i | \Phi_i^{(k)} |$$
+\noindent where $\vec\Phi^{(k)}={\rm col}\{\Phi_i^{(k)} \ ; \ i=1,I\}$ is the product of the $B$ matrix times the unknown vector at the $k$-th outer iteration.
+
+\item[\moc{THER}] keyword to specify that the control parameters for the
+thermal iterations are to be modified.
+
+\item[\dusa{maxthr}] maximum number of thermal iterations. The fixed default
+value is \dusa{maxthr} $=0$ corresponding to no thermal iterations.
+
+\item[\dusa{epsthr}] convergence criterion for the thermal iterations. The
+fixed default value is \dusa{epsthr} $=1.0\times 10^{-2}$.
+
+\item[\moc{ADI}] keyword used to set \dusa{nadi} in cases where Trivac is used.
+
+\item[\dusa{nadi}] number of alternating direction implicit  (ADI) inner
+iterations per outer iteration. The default value is $nadi=1$. If this value causes a failure of the acceleration process, it is recommended that a larger value be tried. The optimal
+choice is generally the minimum value of $nadi$ which allows a convergence in
+less than 75 outer iterations. $nadi=1$ or $nadi=2$ is generally the best
+choice for production-type calculations. The greater $nadi$ is, the smaller 
+the asymptotic convergence constant (ACC) becomes. Taking an arbitrary large
+value (e.g., $nadi=20$) leads to numerical results identical to those obtained by
+inverting the system matrices at each
+outer iteration (at a prohibitive CPU cost). In this case, the ACC is almost
+equal to the dominance ratio of the iterative matrix. The default value is
+recovered in the state vector of the {\sc tracking} object \dusa{TRACK}.
+
+\item[\moc{ADJ}] keyword used to perform an adjoint (backward) space-time kinetics calculation. By default, a direct (forward) space-time kinetics calculation
+is performed.
+
+\item[\moc{PICK}]  keyword used to recover the end-of-stage power (in MW) in a CLE-2000 variable.
+
+\item[\dusa{power\_out}] \texttt{character*12} CLE-2000 variable name in which the extracted power value will be placed.
+
+\end{ListeDeDescription}
+\clearpage
+
+
+\subsection{The {\tt VAL:} module}\label{sect:VALData}
+
+The \moc{VAL:} module supplies an interpolation of the flux in diffusion calculations for
+Cartesian geometries. This module also provide {\sl flux reconstruction} with nodal methods. The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{VAL:}}
+\dusa{IFLU} \moc{:=} \moc{VAL:} \dusa{TRKNAM} \dusa{FLUNAM} $[$ \dusa{MACRO} $]$ \moc{::} \dstr{descval} 
+\end{DataStructure}
+
+\noindent
+where
+\begin{ListeDeDescription}{mmmmmmmm}
+
+\item[\dusa{IFLU}] {\tt character*12} name of the \dds{interpflux} data
+structure ({\tt L\_FVIEW} signature) where the interpolated flux distribution will be stored.
+
+\item[\dusa{TRKNAM}] {\tt character*12} name of the read-only \dds{tracking} data
+structure ({\tt L\_TRACK} signature) containing the tracking. 
+
+\item[\dusa{FLUNAM}] {\tt character*12} name of the read-only \dds{fluxunk} data
+structure ({\tt L\_FLUX} signature) containing a transport solution.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the cross sections and diffusion coefficients.
+This data structure is required with nodal methods and in case the \moc{POWR} keyword is set.
+
+\item[\dstr{descval}] structure containing the input data to this module to compute interpolated flux
+(see \Sect{descval}).
+
+\end{ListeDeDescription}
+
+\subsubsection{Data input for module {\tt VAL:}}\label{sect:descval}
+
+\begin{DataStructure}{Structure \dstr{descval}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{MODE} \dusa{imode} $]$ \\
+$[$ \moc{POWR} \dusa{power} $]$ \\
+$[~\{$ \moc{NOCCOR} $|$ \moc{CCOR} $\}~]$ \\
+\moc{DIM} \dusa{dim} (\dusa{dxyz}$(i)$, $i=1,dim$) \\
+;
+\end{DataStructure}
+
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmmmm}
+
+\item[\moc{EDIT}] keyword used to modify the print level \dusa{iprint}.
+
+\item[\dusa{iprint}] integer index used to control  the printing in module {\tt VAL:}.
+=0 for no print; =1 for minimum printing (default value); larger values of \dusa{iprint}
+will produce increasing amounts of output.
+
+\item[\moc{MODE}] keyword to specify the flux harmonic index \dusa{imode}.
+
+\item[\dusa{imode}] index of the flux harmonic recovered by the {\tt VAL:} module if the {\tt MONI} keyword was set in module {\tt FLUD:}
+(see Sect.~\ref{sect:fld_data}). By default, it is assumed that the {\tt MONI} keyword was not used.
+
+\item[\moc{POWR}] keyword used to set \dusa{power}.
+
+\item[\moc{NOCCOR}] keyword used to desactivate {\sl corner flux correction} with 2D/3D nodal methods.
+
+\item[\moc{CCOR}] keyword used to activate {\sl corner flux correction} with 2D/3D nodal methods (default option).
+
+\item[\dusa{power}] value of the power in MW used to normalize the flux. By default, the flux is not normalized.
+
+\item[\moc{DIM}] keyword to specify the number \dusa{dim}.
+
+\item[\dusa{dim}] number of dimension of the geometry. 
+
+\item[\dusa{dxyz}] mesh interval along each direction which is used to define the grid where the flux is interpolated. 
+
+\end{ListeDeDescription}
+
+\clearpage
+
+\subsection{The {\tt NSST:} module}
+
+The {\tt NSST:} module is used to perform a {\sc tracking} for the Nodal
+Expansion Method (NEM)\cite{nestle} or the Analytic Nodal Method (ANM)\cite{anm08}.
+
+\vskip 0.08cm
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{NSST:}}
+\dusa{TRACK} \moc{:=} \moc{NSST:} $[$ \dusa{TRACK} $]$ \dusa{GEOM}  \moc{::} \dstr{NSST\_data}
+\end{DataStructure}
+
+\goodbreak
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{TRACK}] {\tt character*12} of the {\sc lcm} object (type {\tt L\_TRIVAC}) 
+containing the {\sc tracking} information. If \dusa{TRACK} appears on the RHS, the
+previous settings will be applied by default.
+
+\item[\dusa{GEOM}] {\tt character*12} of the {\sc lcm} object (type {\tt
+L\_GEOM}) containing the geometry.
+
+\item[\dstr{NSST\_data}] structure containing the data to module {\tt NSST:} (see Sect.~\ref{sect:NSST_data}).
+
+\end{ListeDeDescription}
+
+\subsubsection{Data input for module {\tt NSST:}}\label{sect:NSST_data}
+
+\begin{DataStructure}{Structure \dstr{NSST\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{TITL} \dusa{TITLE} $]$ \\
+$[$ \moc{MAXR} \dusa{maxpts} $]$ \\
+$[$ \moc{HYPE} \dusa{igmax} $]$ \\
+$[~\{$ \moc{CMFD} $|$ \moc{NEM} $|$ \moc{ANM} $\}~]$ \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing  in module {\tt
+NSST:}. =0 for no print; =1 for minimum printing (default value); Larger
+values produce increasing amounts of output.
+
+\item[\moc{TITL}] keyword which allows the run title to be set.
+
+\item[\dusa{TITLE}] the title associated with a nodal expansion method run. This
+title may contain up to 72 characters. The default when \moc{TITL} is not specified is no title.
+
+\item[\moc{MAXR}] keyword which permits the maximum number of regions to be considered during a nodal run to be specified.
+
+\item[\dusa{maxpts}] maximum dimensions of the problem to be considered.  The
+default value is set to the number of regions previously computed by the {\tt
+GEO:} module but this value is insufficient if symmetries or mesh-splitting
+are specified.
+
+\item[\moc{HYPE}] keyword used to specify the type of nodal expansion base functions used to represent the transverse integrated flux.
+By default, the polynomial base~(\ref{eq:nem1}) is used in all energy groups. This keyword has no effect with the analytic nodal method.
+
+\item[\dusa{igmax}] hyperbolic base functions~(\ref{eq:nem2}) are used for energy groups with indices $\ge$ \dusa{igmax}.
+
+\item[\moc{CMFD}] keyword used to impose the coarse mesh finite difference method. Only polynomials $p_0(u)$ to $p_2(u)$ are used to expand the flux.
+
+\item[\moc{NEM}] keyword used to impose the nodal expansion method. This is the default option.
+
+\item[\moc{ANM}] keyword used to impose the analytic nodal method.
+
+\end{ListeDeDescription}
+
+\clearpage
+
+\subsection{The {\tt NSSF:} module}
+
+The {\tt NSSF:} module is used to compute the solution to an eigenvalue problem corresponding to a nodal discretization with the Nodal
+Expansion Method or the Analytic Nodal Method. The actual implementation is limited to
+\begin{itemize}
+\item NEM and ANM discretizations in 1D Cartesian geometries;
+\item ANM discretization in 1D, 2D and 3D Cartesian geometries.
+\end{itemize}
+
+\vskip 0.08cm
+
+The nodal expansion method (NEM) is based on an expansion of the {\sl transverse integrated flux} in terms of polynomials defined
+over the $(-0.5,0.5)$ interval\cite{nestle}:
+\begin{eqnarray}
+\nonumber P_0(u)\negthinspace &=&\negthinspace 1\\
+\nonumber P_1(u)\negthinspace &=&\negthinspace u\\
+\nonumber P_2(u)\negthinspace &=&\negthinspace 3u^2-{1\over 4}\\
+\nonumber P_3(u)\negthinspace &=&\negthinspace \left( u^2-{1\over 4}\right)u\\
+P_4(u)\negthinspace &=&\negthinspace \left( u^2-{1\over 4}\right)\left( u^2-{1\over 20}\right)
+\label{eq:nem1}
+\end{eqnarray}
+There is the option of using hyperbolic functions in some energy groups:
+\begin{eqnarray}
+\nonumber P_3(u)\negthinspace &=&\negthinspace \sinh(\zeta_g u)\\
+P_4(u)\negthinspace &=&\negthinspace \cosh(\zeta_g u)-{2\over \zeta}\, \sinh(\zeta_g/2)
+\label{eq:nem2}
+\end{eqnarray}
+\noindent where
+\begin{equation}
+\zeta_g=\Delta x\sqrt{\Sigma_{{\rm r},g} \over D_g}
+\end{equation}
+\noindent where $\Delta x$, $\Sigma_{{\rm r},g}$ and $D_g$ are the node width (cm), the macroscopic removal cross section (cm$^{-1}$)
+and the diffusion coefficient (cm) in group $g$, respectively.
+
+\vskip 0.1cm
+%
+\vspace{2pt}
+\begin{figure}[!h]
+\centering
+\includegraphics[scale=0.75]{./nodal_update.eps}
+\parbox{11cm}{\caption{The nodal update procedure.}\label{fig:nodal_update}}   
+\vspace{2pt}
+\end{figure}
+%
+
+The analytic nodal method (ANM) is based on the {\sl Annals of Nuclear Energy} paper of Ref.~\citen{anm08}. The convergence of the ANM
+relies on {\sl nodal correction iterations} consisting of repetitive solutions of the {\sl coarse mesh finite difference} (CMFD) method, as depicted in Fig.~\ref{fig:nodal_update}.
+The CMFD method is similar to the {\sl mesh centered finite difference} (MCFD) method with the introduction of {\sl drift factors} $\tilde D_{i,g}^{\pm(n)}$ at each nodal correction
+iteration. Solution of the CMFD equations relies on {\sl alternating direction implicit} (ADI) preconditionning with $LU$ factorization.
+
+\goodbreak
+
+The calling specifications are:
+
+\begin{DataStructure}{Structure \dstr{NSSF:}}
+\dusa{FLUX} \moc{:=} \moc{NSSF:} $[$ \dusa{FLUX} $]$ \dusa{TRACK} \dusa{MACRO} \moc{::} \dstr{NSSF\_data}
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\dusa{FLUX}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_FLUX}) containing the solution. If \dusa{FLUX} appears on the RHS, the solution previously stored in \dusa{FLUX}
+is used to initialize the new iterative process; otherwise, a uniform unknown vector is used.
+
+\item[\dusa{TRACK}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_TRACK}) containing the {\sc tracking}.
+
+\item[\dusa{MACRO}] {\tt character*12} name of the {\sc lcm} object (type {\tt L\_MACROLIB}) containing the cross sections, diffusion coefficients and discontinuity
+factors.
+
+\item[\dstr{NSSF\_data}] structure containing the data to module {\tt NSSF:} (see Sect.~\ref{sect:nssf_data}).
+
+\end{ListeDeDescription}
+
+\vskip 0.2cm
+
+\subsubsection{Data input for module {\tt NSSF:}}\label{sect:nssf_data}
+
+\begin{DataStructure}{Structure \dstr{NSSF\_data}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[~\{$ \moc{VAR1} $|$ \moc{ACCE} $\}$ \dusa{icl1} \dusa{icl2} $]$ \\
+$[$ \moc{ADI} \dusa{nadi} $]$ \\
+$[$ \moc{NUPD} $[$ \dusa{max\_no\_nodal\_iter} $[$ \dusa{no\_transverse\_iter} $]~]~[$ \dusa{nodal\_tol} $]~]$ \\
+$[$ \moc{EXTE} $[$ \dusa{max\_no\_outer\_iter} $]~[$ \dusa{outer\_tol} $]~]$ \\
+$[$ \moc{THER} $[$ \dusa{max\_no\_group\_iter} $]~[$ \dusa{group\_tol} $]~]$ \\
+$[$ \moc{NODF} $]$ \\
+$[$ \moc{LEAK} $\{$ \moc{flat} $|$ \moc{quadratic} $\}~]$ \\
+$[$ \moc{BUCK} \dusa{valb2} $]$  \\
+;
+\end{DataStructure}
+
+\noindent where
+\begin{ListeDeDescription}{mmmmmm}
+
+\item[\moc{EDIT}] keyword used to set \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing  in module {\tt NSSF:}.
+=0 for no print; =1 for minimum printing (default value).
+
+\item[\moc{VAR1}] keyword used to set the parameters \dusa{icl1} and \dusa{icl2}. These parameter are used with the symmetrical variational
+acceleration technique (SVAT) for convergence of the generalized CMFD eigenvalue problem (default option) and to accelerate up-scattering iterations.
+
+\item[\moc{ACCE}] alias keyword for \moc{VAR1}.
+
+\item[\dusa{icl1}] number of free outer iterations in a cycle of the variational acceleration technique.
+The default value is \dusa{icl1} $=3$.
+
+\item[\dusa{icl2}] number of accelerated outer iterations  in a cycle of the
+variational acceleration technique. The default value is \dusa{icl2} $=3$. A convergence in free iterations is
+obtained by setting \dusa{icl1} $=200$ (or \dusa{icl1} $=$ \dusa{max\_no\_outer\_iter}) and \dusa{icl2} $=0$.
+
+\item[\moc{ADI}] keyword to set the number of ADI iterations at the inner CMFD iterative level.
+
+\item[\dusa{nadi}] number of ADI iterations (default: \dusa{nadi} $=2$).
+
+\item[\moc{NUPD}] keyword to specify the maximum number of nodal update iterations. 
+
+\item[\dusa{max\_no\_nodal\_iter}] maximum number of nodal update iterations iterations. The fixed default
+value is \dusa{max\_no\_outer\_iter} $=300$.
+
+\item[\dusa{no\_transverse\_iter}] number of tranverse current iterations in each nodal update iteration. We recommend to use the minimum value required for convergence of nodal update iterations. The fixed default
+value is \dusa{no\_transverse\_iter} $=3$.
+
+\item[\dusa{nodal\_tol}] convergence criterion for the nodal update iterations. The
+fixed default value is \dusa{nodal\_tol} $=1.0\times 10^{-6}$.
+
+\item[\moc{EXTE}] keyword to specify that the control parameters for the $K_{\rm eff}$ CMFD iteration are to be modified. 
+
+\item[\dusa{max\_no\_outer\_iter}] maximum number of $K_{\rm eff}$ iterations. The fixed default
+value is \dusa{max\_no\_outer\_iter} $=100$.
+
+\item[\dusa{outer\_tol}] convergence criterion for the $K_{\rm eff}$ iterations. The
+fixed default value is \dusa{outer\_tol} $=1.0\times 10^{-5}$.
+
+\item[\moc{THER}] keyword to specify that the control parameters for the
+thermal upscattering iteration are to be modified. 
+
+\item[\dusa{max\_no\_group\_iter}] maximum number of thermal upscattering iterations. The fixed default
+value is \dusa{max\_no\_group\_iter} $=0$.
+
+\item[\dusa{group\_tol}] convergence criterion for the thermal upscattering iterations. The
+fixed default value is \dusa{group\_tol} $=1.0\times 10^{-6}$.
+
+\item[\moc{NODF}] keyword used to force discontinuity factors to one.
+
+\item[\moc{LEAK}] keyword to specify the type of transverse leakage approximation.
+
+\item[\moc{flat}] flat leakage approximation.
+
+\item[\moc{quadratic}] quadratic leakage approximation in the internal nodes and linear leakage approximation in the boundary nodes.
+
+\item[\moc{BUCK}] keyword used to specify the fixed buckling. By default,
+\dusa{valb2} $=0$ cm$^{-2}$
+
+\item[\dusa{valb2}] value of the fixed total buckling in cm$^{-2}$.
+
+\end{ListeDeDescription}
+
+\clearpage
-- 
cgit v1.2.3

