\subsection{General input structure}\label{sect:glob}

\vskip 0.2cm
DONJON is built around the Ganlib kernel and its modules can be called from CLE-2000.\cite{ganlib5,cle2000}
Accordingly, all the modules that will be used during the current execution
must be first identified. It is also necessary to define the format of each object
(data structure) that will be processed by these modules. Then, the modules
required for the specific DONJON calculation are called successively,
information being transferred from one module to the next via the objects.
Finally, the execution of DONJON is terminated when it encounters the
\moc{END:} module, even if it is followed by additional data records in the
input data stream. The general input data structure therefore follows the
calling specifications given below:

\begin{DataStructure}{Structure \dstr{DONJON}}
$[$ \moc{MODULE} $[[$ \dusa{MODNAME} $]]$ \moc{;} $]$ \\
$[$ \moc{LINKED\_LIST} $[[$ \dusa{STRNAME} $]]$ \moc{;} $]$ \\
$[$ \moc{XSM\_FILE} $[[$ \dusa{STRNAME} $]]$ \moc{;} $]$ \\
$[$ \moc{SEQ\_BINARY} $[[$ \dusa{STRNAME} $]]$ \moc{;} $]$ \\
$[$ \moc{SEQ\_ASCII} $[[$ \dusa{STRNAME} $]]$ \moc{;} $]$ \\
$[[$ \dstr{module}  \moc{;} $]]$ \\
\moc{END:} \moc{;}
\end{DataStructure}

\noindent where
\begin{ListeDeDescription}{mmmmmmmm}

\item[\moc{MODULE}]  keyword used to specify the names of all modules
that will be used in the current DONJON execution.

\item[\dusa{MODNAME}] {\tt character*12} name of a DONJON, or
DRAGON, or TRIVAC, or utility module. The list of modules that can be
executed using DONJON code is provided in \Sect{mod}.

\item[\moc{LINKED\_LIST}]  keyword used to specify the names of data
structure that will be stored as linked lists. 

\item[\moc{XSM\_FILE}]  keyword used to specify the names of all data
structure that will be stored on XSM format files. 

\item[\moc{SEQ\_BINARY}]  keyword used to specify the names of all
data structure that will be stored on sequential binary files. 

\item[\moc{SEQ\_ASCII}]  keyword used to specify the names of all
data structures that will be stored on sequential ASCII files. 

\item[\dusa{STRNAME}] {\tt character*12} name of a data structure.
The list of data structure that can be used in DONJON is presented in \Sect{dat}.

\item[\dstr{module}] input specification for a module that will be executed.
For DONJON specific modules, these input structures are described in
\Sect{modesc1} to \Sect{modesc4}.

\item[\moc{END:}] keyword to call the normal end-of-execution utility module.

\item[\moc{;}] keyword to specify the end of record. This keyword is used
to delimit the part of the input data stream associated with each module.

\end{ListeDeDescription}


\vskip 0.2cm
Generally, the user has the choice to declare the most of data structure
in the format of a linked list to reduce CPU times or as a XSM file to reduce
memory resources. In general, the data structure are stored on the sequential
ASCII files only for the backup purposes.

\vskip 0.2cm

The input data normally ends with a call to the \moc{END:} module.
However, the GAN driver will insert automatically the \moc{END:}
module, even if it was not provided, upon reaching an end-of-file
in the input stream.

\vskip 0.2cm

Each \dstr{module} calling specification contains a module execution
description and its associated input structure. All these modules, except
the \moc{END:} module may be called more than once.
