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/IGE344/SectT16CPO.tex | 256 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 256 insertions(+)
 create mode 100644 doc/IGE344/SectT16CPO.tex

(limited to 'doc/IGE344/SectT16CPO.tex')

diff --git a/doc/IGE344/SectT16CPO.tex b/doc/IGE344/SectT16CPO.tex
new file mode 100644
index 0000000..2ed90b4
--- /dev/null
+++ b/doc/IGE344/SectT16CPO.tex
@@ -0,0 +1,256 @@
+\subsection{The \moc{T16CPO:} module}\label{sect:t16cpo}
+
+The WIMS--AECL \moc{Tape16} file is a FORTRAN sequential binary file which is used to transfer the results of
+a WIMS--AECL calculation to other applications.\cite{Griffiths94} The explicit contents of this file may vary
+from application to application since the output of most records to this file is controlled by the user who can
+activate specific keywords in the WIMS--AECL input file. 
+
+\vskip 0.08cm
+
+The standard \dds{cpo} data structure used by the code DONJON is generally generated by the cell code
+DRAGON. This data structure can be stored on a FORTRAN direct access binary
+file in the form of a hierarchical data base. There is also the possibility to keep the contents of this
+data structure in memory (with the same hierarchical structure) for faster access. The structure of the data
+base is in the form of a list of material directories which contain burnup sub-directories. Inside each of
+these burnup sub-directories the isotopic contents of a mixture is described and the multigroup cross
+sections associated with a specific isotope are stored in individual sub-directories. Note that in this
+database the macroscopic cross sections associated with a mixture are stored in a default isotopic
+sub-directory. 
+
+\vskip 0.08cm
+
+The interface between the \moc{Tape16} file and the \dds{cpo} data structure should be written as a new
+module of the code DONJON in order to facilitate the access to the GANLIB utilities which manage the
+hierarchical data structures. This module will be called \moc{T16CPO:}. The transfer of information from a
+\moc{Tape16} format file to a \dds{cpo} data structure will require the
+following DONJON instructions:
+
+\vskip 0.08cm
+
+The \moc{T16CPO:} module specifications for creating or updating a \dds{cpo} data structure from a \moc{Tape16} file are:
+
+\begin{DataStructure}{Structure \moc{T16CPO:}}
+ \moc{DONCPO} \moc{:=}  \moc{T16CPO:} $[$ \moc{DONCPO} $]$ \moc{WIMS16} \moc{::} \dstr{desct16cpo}  \moc{;}  \\
+\end{DataStructure}
+
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmmmm}
+
+\item[\moc{DONCPO}]  name of data structure where the output \dds{cpo} is stored. This can be a new data structure
+or an old data structure which will be updated. 
+
+\item[\dstr{desct16cpo}] input specifications for the execution of the \moc{T16CPO:} module.  
+
+\item[\moc{;}] end of record keyword. This keyword is used to
+delimit the part of the input data stream associated the current module.
+
+\end{ListeDeDescription}
+
+\noindent In the following dataset
+\begin{verbatim}
+MODULE T16CPO: ;
+SEQ_BINARY WIMS16 ;
+LINKED_LIST DONCPO ;
+
+DONCPO :=  T16CPO: WIMS16 ::
+...
+;
+\end{verbatim}
+means that that the module will read the sequential binary file \moc{WIMS16} file (in readonly mode) and
+create the \dds{cpo} data structure \moc{DONCPO} while the dataset
+\begin{verbatim}
+MODULE T16CPO: ;
+SEQ_BINARY WIMS16 ;
+LINKED_LIST DONCPO ;
+
+DONCPO :=  T16CPO: DONCPO WIMS16 ::
+...
+;
+\end{verbatim}
+means that the data structure \moc{DONCPO} will be updated. The input instructions (replaced by $\ldots$ here)
+should indicate what part of the information located on \moc{WIMS16} should be transferred to
+\moc{DONCPO} and in what order.
+
+\subsubsection{Input data for the \moc{T16CPO:} module}
+
+The input data structure \dstr{desct16cpo} will take the form:
+
+\begin{DataStructure}{Structure \dstr{desct16cpo}}
+$[$ \moc{EDIT} \dusa{iprint} $]$ \\
+$[$ \moc{NMIX} \dusa{nmixt} $]$ \\
+$[$ \moc{CONDG} \dusa{ngcond} (\dusa{igc}(i) , i=1,\dusa{ngcond} ) $]$ \\
+$[$ \moc{LIST}  $]$ \\
+$[$ \moc{MIX} $[[$ \dusa{MIXNAM} $[$ $\{$ \moc{CELLAV} $|$ \moc{REGION} \dusa{noreg} $\}$ $]$ \\
+\hskip 1.0cm   $[$ \moc{RC}  $[$ \dusa{nburn} $]$ \dusa{frstrec}  $]$\\
+\hskip 1.0cm $[[$    \dusa{NAMPER} \dusa{valref} \dusa{npert} 
+(\dusa{valper}(i), \dusa{frstrec}(i) , i=1,\dusa{npert} )   $]]$ \\
+\hskip 1.0cm $[$  \moc{MTMD} $[$ \dusa{valreft} \dusa{valrefd} $]$ \dusa{npert} 
+(\dusa{valpert}(i), \dusa{valperd}(i), \dusa{frstrec}(i) , i=1,\dusa{npert} )   $]$ \\
+\hskip 1.0cm $]]$ $]$ \\
+\end{DataStructure}
+
+\noindent where
+
+\begin{ListeDeDescription}{mmmmmmmm}
+
+\item[\moc{EDIT}] optional keyword used to modify the print level \dusa{iprint}.
+
+\item[\dusa{iprint}] index used to control the printing in this module. It
+must be set to 0 if no printing on the output file is required while values
+$<$10 will print general information about each record requested on \moc{Tape16} as well as other generic information
+pertinent to the \moc{T16CPO:} module. Finally for values of 
+\dusa{iprint}$\ge$10, additional information required for debugging will be printed.
+The default value is \dusa{iprint}=1.
+
+\item[\moc{NMIX}] optional keyword used to define the number of mixtures created on the \dds{cpo} data structure.
+
+\item[\dusa{nmixt}] the maximum number of mixtures created. The default value is \dusa{nmixt}=1.
+
+\item[\moc{CONDG}] optional keyword used to define the group structure for condensation. In the case where the
+\dds{cpo} is to be updated, the information following \moc{CONDG} must yield an energy group structure compatible
+with that already available on this data structure. If it is absent, the code will first try to use the \dds{cpo}
+group structure (if available). Then, it will try to use the editing group structure corresponding to \moc{NGREAC} on
+the following
+\moc{Tape16} record:
+\begin{quote}
+\verb*|REACTION  |, \verb*|FLUX      |, \verb|NEL|
+\end{quote}
+Finally, if everything else fails, it will select the main transport group structure corresponding to \moc{NGMTR} on the following
+\moc{Tape16} record:
+\begin{quote}
+\verb*+WIMS      +, \verb*+CONSTANT  +, \verb+NEL+
+\end{quote}
+
+\item[\dusa{ngcond}] the number of condensed groups required.
+
+\item[\dusa{ilg}] the last group number associated with each condensed group.
+
+\item[\moc{LIST}] keyword to specify that the complete contents of \moc{Tape16} must be listed on the output file. 
+
+\item[\moc{MIX}] keyword to specify that the remaining information will be associated with mixture properties
+definition. 
+
+\item[\dusa{MIXNAM}] \texttt{character*6} name of the mixture to create or update on the \dds{cpo}.
+
+\item[\moc{CELLAV}] optional keyword to specify that cell averaged data will be taken from \moc{Tape16}. This is the
+default option. 
+
+\item[\moc{REGION}] optional keyword to specify that regional data will be taken from \moc{Tape16}. The
+default option is \moc{CELLAV}. 
+
+\item[\dusa{noreg}] region number associated with this material in \moc{Tape16}. 
+
+\item[\moc{RC}] optional keyword to specify that the cross section taken from \moc{Tape16} are at reference value.
+This information must be defined at least once for each mixture. It must also precede the definition of
+perturbation parameters.
+
+\item[\dusa{nburn}] number of consecutive burnup steps associated with mixture. The default value is \dusa{nburn}=1.
+We will assume that the same number of burnup steps is also available for the nuclear properties associated
+with the perturbed local parameters.
+
+\item[\dusa{frstrec}] first \moc{Tape16} record number associated with this mixture. 
+
+
+\item[\dusa{NAMPER}] \texttt{character*2} name of the perturbation. Each perturbation is associated
+with a single local parameter. The values permitted for
+\dusa{NAMPER} are the following:
+\begin{enumerate}
+\item \moc{FT} for fuel temperature
+\item \moc{MT} for moderator temperature
+\item \moc{MD} for moderator density
+\item \moc{MP} for moderator purity
+\item \moc{MB} for moderator boron
+\item \moc{CT} for coolant temperature
+\item \moc{CD} for coolant density
+\item \moc{CP} for coolant purity
+\item \moc{RT} for reflector temperature
+\item \moc{RD} for reflector density
+\item \moc{RP} for reflector purity
+\end{enumerate}
+Note that these keywords are identical to those used in the Proc16 program.\cite{Donnelly97a} Here the moderator,
+coolant and reflector can be D$_2$O, H$_2$O or any other mixture since DONJON is not aware of the compositions of
+these mixtures. In the case where many different \moc{Tape16} files contains the reference and the individual
+perturbation effects, one must first define the reference case before updating the \dds{cpo} using the \moc{Tape16}
+files containing the perturbations.  
+
+\item[\dusa{valref}] reference value of the associated local parameter.  
+
+\item[\dusa{npert}]  number of local parameter perturbations. 
+
+\item[\dusa{valper}] perturbed values of the local parameter.  
+
+\item[\moc{MTMD}] \texttt{character*4} name of perturbation associated with combine temperature and density
+changes effects. Note that this keyword is equivalent to the
+\moc{MTS} keyword used in the Proc16 program.\cite{Donnelly97a} In principle, any combined perturbations effects
+could be built from the catenation of two individual perturbations given in \dusa{NAMPER}. 
+
+\item[\dusa{valreft}] reference temperature. This is required if either the \moc{MT} or the \moc{MD}
+perturbation is not defined.
+
+\item[\dusa{valrefd}] reference density. This is required if either the \moc{MT} or the \moc{MD}
+perturbation is not defined.
+
+\item[\dusa{npert}] number of simultaneous perturbations in moderator temperature and density. 
+
+\item[\dusa{valpert}] perturbed values of the moderator temperature.  
+
+\item[\dusa{valperd}] perturbed value of the moderator density.  
+
+\end{ListeDeDescription}
+
+The explicit name of the mixtures $\mathsf{MIXDIR}$ that will be stored on the main \dds{cpo} directory will
+correspond to a catenation of \dusa{MIXNAM} and a perturbation name and an index $i$ describing the perturbation
+order. It is created using the following FORTRAN instructions for the reference mixture:
+\begin{quote}
+\verb*|WRITE(|$\mathsf{MIXDIR}$\verb*|,'(A6,A6)')| \dusa{MIXNAM}, \verb*|'RC    '| 
+\end{quote}
+while for the $i^{\mathit{th}}$ perturbed state associated with \dusa{NAMPER}($J$) we will use:
+\begin{quote}
+\verb*|WRITE(|$\mathsf{MIXDIR}$\verb*|,'(A6,A2,A2,I2)')| \dusa{MIXNAM}, \dusa{NAMPER}($J$),\verb*|'  '|, $i$ 
+\end{quote}
+Finally, for the $i^{\mathit{th}}$ perturbed state associated with the \moc{MTMD} perturbation we will use:
+\begin{quote}
+\verb*|WRITE(|$\mathsf{MIXDIR}$\verb*|,'(A6,A4,I2)')| \dusa{MIXNAM}, \verb*|'MTMD'|, $i$ 
+\end{quote}
+
+Typically if the
+\dstr{desct16cpo} structure takes the form:
+\begin{verbatim}
+EDIT 0 
+NMIX 2 
+MIX
+    Candu  RC 15 1
+           FT 900.0 2 1100.0 16 1300.0 46
+    Maple  RC 70 
+           RP 1.0 1 0.5 71 
+\end{verbatim}
+Then the first 15 cases stored on the \moc{Tape16} file will correspond to a reference CANDU fuel with burnup. The
+reference fuel temperature is 900.0 K. The next 15 cases are for a fuel
+temperature of 1100.0 K. Finally cases 46 to 60 are for a fuel temperature of 1300.0 K.
+The Maple mixture will have no burnup. The reference Maple cross sections correspond to case 70, while case 71
+contains the effect on the Maple fuel mixture cross sections of a 50 \% reduction in reflector purity . As a result
+we will end up with a
+\dds{cpo} data structure which contains 5 mixtures called respectively
+\begin{quote}
+\verb*|Candu RC    |
+
+\verb*|Candu FT   1|
+
+\verb*|Candu FT   2|
+
+\verb*|Maple RC    |
+
+\verb*|Maple RP   1|
+\end{quote}
+
+The beginning of a new case on \moc{Tape16} will be identified by the presence of
+the record:
+\begin{quote}
+\verb*|CELLAV    |,\verb*|MODERATOR|
+\end{quote}
+in a \moc{Tape16} file. Accordingly, the keyword \moc{CELLAV} should be used in the WIMS--AECL run creating this file.
+In addition, if the \moc{REGION} option is used in the \moc{T16CPO:} input data structure, then it should also be
+used in the WIMS--AECL run creating this file.
+
+\clearpage
-- 
cgit v1.2.3

