\subsection{The DRAGON Modules}\label{sect:DragonModules}

The code DRAGON has been divided into main calculations sequences to
which is generally associated a single calculation module. The only exception
to this rule is the tracking sequence to which is associated many different
modules, one for each of the standard CP calculation options and an additional
module for diffusion calculations. However, this later module can only be used
indirectly in the edition module of DRAGON. These modules perform the
following tasks:
  
\begin{ListeDeDescription}{mmmmmmmm}

\item[\moc{MAC:}]  module used to generate or modify a DRAGON
\dds{macrolib} (see \Sect{DragonDataStructures}) which contains the group ordered
macroscopic cross sections for a series of mixture (see \Sect{MACData}). This
\dds{macrolib} can be either an independent data structure or it can be included
as a substructure in a \dds{microlib}. The spatial location of these mixtures
will be defined using the \moc{GEO:} module (see \Sect{GEOData}).

\item[\moc{LIB:}]  module used to generate or modify a DRAGON
\dds{microlib} (see \Sect{DragonDataStructures}) that can read a number of
different types of microscopic cross-section libraries (see \Sect{LIBData}). Each
such access requires a double interpolation (temperature, dilution) carried out
by a subroutine specifically tailored to each type of library. Currently the
formats DRAGLIB\cite{DragonDataStructures}, WIMS--D4\cite{WIMS-D}, MATXS\cite{MATXS}, WIMS--AECL\cite{WIMS}, 
APOLLO\cite{Apollo,Apollo2} and NDAS format\cite{ndas} are supported. After having reconstructed the  microscopic
cross sections for each isotope, they are then  multiplied  by the isotopic
concentrations (particles per $cm^{3}$) and combined in such a way as to produce
an embedded \dds{macrolib} (see \Sect{DragonDataStructures}). The spatial location
of these mixtures will be defined using the \moc{GEO:} module (see
\Sect{GEOData}).

\item[\moc{GEO:}] module used to generate or modify a
geometry (see \Sect{GEOData}).

\item[\moc{SYBILT:}] the standard tracking module based on 1D collision
probability or Interface Current technique (see \Sect{TRKData} and \Sect{SYBILData}).

\item[\moc{EXCELT:}] the standard tracking module for 2D and 3D geometries as well as isolated 2D 
cells containing clusters (see \Sect{TRKData} and \Sect{EXCELLData}).

\item[\moc{NXT:}] the standard tracking module for 2D or 3D assemblies of cluster (see
\Sect{TRKData} and \Sect{NXTData}).

\item[\moc{SNT:}] the discrete ordinates tracking module (see
\Sect{TRKData} and \Sect{SNData}).

\item[\moc{MCCGT:}] the tracking module of the open characteristics flux
solver (see \Sect{TRKData} and \Sect{MCCGData}).

\item[\moc{BIVACT:}] the 1D/2D diffusion and $SP_n$ tracking module (see
\Sect{TRKData} and \Sect{BIVACData}).

\item[\moc{TRIVAT:}] the 1D/2D/3D diffusion and $SP_n$ tracking module (see
\Sect{TRKData} and \Sect{TRIVACData}).

\item[\moc{SHI:}] module used to perform self-shielding calculations
based on the generalized Stamm'ler method (see \Sect{SHIData}).

\item[\moc{TONE:}] module used to perform self-shielding calculations
based on the Tone's method (see \Sect{TONEData}).

\item[\moc{USS:}] module used to perform self-shielding calculations
based on a subgroup method (see \Sect{USSData}). A method using physical
probability tables (cf. Wims-7 and Helios) and the Ribon extended method
are available.

\item[\moc{AUTO:}] module used to perform self-shielding calculations
based on the Autosecol method (see \Sect{AUTOData}).

\item[\moc{ASM:}] module which uses the tracking information to
generate a multigroup response or collision probability matrix (see
\Sect{ASMData}).

\item[\moc{FLU:}] module which uses inner-iteration approach or
collision probability matrix to solve the transport equation for the fluxes
(see \Sect{FLUData}). Various leakage models are available.

\item[\moc{EDI:}] editing module (see \Sect{EDIData}). An equivalence method based
on SPH method is available.

\item[\moc{EVO:}] burnup module (see \Sect{EVOData}).

\item[\moc{SPH:}] {\sl supermomog\'en\'eisation} (SPH) module (see \Sect{SPHData}). The \moc{SPH:}
module can also be used to extract a \dds{microlib} or \dds{macrolib} from a \dds{multicompo} or \dds{saphyb}.

\item[\moc{INFO:}] utility to compute number densities for selected isotopes in materials such as
UO$_{2}$ or ThUO$_{2}$ (see \Sect{INFOData}).

\item[\moc{COMPO:}] multi-parameter reactor database construction module (see
\Sect{COMPOData}).

\item[\moc{TLM:}] module used to generate a Matlab M-file to obtain a graphics representation of the \moc{NXT:} 
tracking lines (see \Sect{TLMData}).

\item[\moc{M2T:}] interface module for transforming a macrolib into a Trimaran/Tripoli multigroup file (see \Sect{M2TData}).

\item[\moc{CHAB:}] cross section perturbation module similar to CHABINT (see \Sect{CHABData}).

\item[\moc{CPO:}] burnup-dependent mono-parameter reactor database construction module (see \Sect{CPOData}).

\item[\moc{SAP:}] multi-parameter reactor database construction module in SAPHYB format (see \Sect{SAPHYBData}).

\item[\moc{MPO:}] multi-parameter reactor database construction module in MPO format (see \Sect{MPOData}).

\item[\moc{MC:}] multigroup Monte-Carlo flux solution module (see \Sect{MCData}).

\item[\moc{T:}] macrolib transposition operator (see \Sect{TData}).

\item[\moc{DMAC:}] construction module for a Generalized Perturbation Theory (GPT) source (see \Sect{DMACData}).

\item[\moc{SENS:}] sensitivity analysis of keff to nuclear data (see \Sect{SENSData}).

\item[\moc{PSP:}] module to generate PostScript images for 2D geometries that can be tracked using the module 
\moc{EXCELT:} or \moc{NXT:} (see \Sect{PSPData}).

\item[\moc{DUO:}] module to perform a perturbative analysis of two systems using the Clio formula and to determine the origins
of Keff discrepancies (see \Sect{DUOData}).
\end{ListeDeDescription}

A few modules ({\tt G2S:}, {\tt G2MC:} and {\tt SALT:}) have been introduced in DRAGON Version5 in
order to facilitate the
processing of geometries originating from the Geometry module of SALOME.\cite{salome}
The methods presented in this section have been initially developed at CEA SERMA and
integrated in the TDT code.\cite{tdt,lyioussi} In the course of year 2001, a subset of
these methods have been integrated into a development version of DRAGON under the terms
of its LGPL license as a prototyping exercise of the DESCARTES operation.\cite{salt}

\vskip 0.08cm

The track generator {\tt SALT:} is a direct descendent of this prototyping exercise.
Later, we have extracted the 5000 lines of Fortran-90 code responsible for the track
calculation and have rewritten them in a way consistent with the {\tt NXT:} tracking
methodology and with the DRAGON architecture.

\vskip 0.08cm

The {\tt SALT:} module can process two types of geometries:
\begin{itemize}
\item {\sl Native geometries} are those defined using the {\tt GEO:} module and transformed into surfacic
geometries using the {\tt G2S:} module. These geometries have many limitations related to their
definition.
\item {\sl Non-native geometries} are surfacic representations based on extensions of the SALOME platform.
A first extension is the SALOMON tool presented in Ref.~\citen{ane15b}. ALAMOS is a more recent tool
available at the Commissariat \`a l'\'Energie Atomique.\cite{alamos} Surfacic geometries produced by
ALAMOS must be converted to the SALOMON format using the {\tt G2S:} module before calling the track
generator {\tt SALT:}.
\end{itemize}
