\subsection{Data organization}\label{sect:DataOrg}

The structure of the input data is independent of the physical or computational
characteristics of the host system. The physical characteristics of the input
data is a collection of sequential records. These characters are by necessity
{\sc ascii} characters. The logical organization of an input deck is in the form
of a sequential structure of input variables presented in free format. This
structure must be located in the first 120 columns of each record in the input
stream. Characters located in column 121 and $\le$ 132 can be used to identify the
records and are treated as comments. An input variable can be defined in one of
two ways.

\begin{itemize}

\item As a set of consecutive characters containing no blanks; it will be
considered by DRAGON automatically as being an either an integer, a real or a
character variable depending on the format of the input variable.

\item As a set of characters enclosed between quotation marks ({\tt '}). In
this case, the input variable is always considered to be a character variable. 

\end{itemize}


The only separator allowed between two input variables is a single or a set of
blanks (not enclosed between quotation marks). A single input variable cannot
span two records. Comments can be included in the input deck in one of the
following ways:


\begin{itemize}

\item  characters in column 121 and $\le$ 132 on each record are considered to be
comments;

\item  all the information following the `{\tt ;}' keyword on a record are not
considered by the generalized driver;

\item  each record starting with the characters `{\tt *}' is considered to be
commented out;

\item  all the characters on a given record inserted between `{\tt (*}' and `{\tt
'*)}' are considered to be commented out.

\end{itemize}


This users guide was written using the following conventions:

\begin{itemize}

\item An input structure represents a set of input variables. It is identified
by a name in boldface surrounded by parenthesis. For example, the complete
DRAGON input deck is represented by the structure \dstr{DRAGON};

\item A standard DRAGON data structure represents a set records and directory
stored in a hierarchical format on a direct access
XSM file or in memory via a linked list.\cite{DragonDataStructures} It is
identified by a name in small capital letter.
For example, the data structure \dds{asmpij} contains the multigroup collision
probability matrices generated by the \moc{ASM:} module of DRAGON;

\item The variables presented using the typewriter font are character
variables used as keywords. For example \moc{GEO:} is the keyword required to
activate the geometry reading module of DRAGON.

\item The variables in italics are user defined variables. When indexed and
surrounded by parenthesis they denote arrays. If they are in lower case they
represent either integer type  (starting with {\it i} to {\it n}) or real type
(starting with  {\it a} to {\it h} or {\it o} to {\it z}) variables. If they are
in upper case they represent character type variables. For example, {\it iprint}
must be replaced in the input deck by an integer variable,  ({\it
energy}(igroup), igroup=1,{\it ngroup}+1) states that a vector containing {\it
ngroup}+1 real elements is to be read while {\it FILE} must be replaced by a
character variable, its maximum size being generally specified. 
No character variable can exceed 72 characters in length.

\item The variables or structures surrounded by single square brackets `$[\;]$'
are optional.

\item The variables or structures surrounded by double square brackets
`$[[\;]]$' are also optional. However, they can be repeated as many times
as required.

\item The variables or structures surrounded by braces and separated by vertical
bars `$\{\; |\; |\; \}$' represents various calculation options available
in DRAGON. Only one of these options is permitted.

\end{itemize}

When a fixed default value is specified for an optional parameter in a
structure, it can be modified only locally and is reset to the original default
value each time the module is called. When a floating default value is specified
for a variable, it is saved and can be used in later calls to this module. In
DRAGON, almost every default value is a floating value, with the exception of
the parameter \dusa{iprint}, which is set to 1 and is used to control the amount
of information printed in the module.  Departure from this general rule will be
indicated in the following sections.
