\section{Overview}

This is a design document of the PIANOS project.

This document describes the design of the software corresponding to the Software requirements specification document written earlier.

The software is implemented as a generator, which reads the input files (for example, the model description) and generates a Fortran program which solves the particular simulation problem associated with the particular model. The generator is implemented in Java.

A Fortran prototype which simulates an example model has also been implemented at the design phase.

\subsection{Chapters}

\begin{tabular}[]{ p{3.9cm} p{10cm} }
1. Overview & Describes this document's purpose. \\
& \\
2. Glossary  & Explains the glossary used in this document. \\
& \\
3. Architecture diagram & Describes the division of the software into the generator and the executable program the generator produces. \\
& \\
4. The formats of input files & Describes the formats of the model description language and simulation parameter input files. \\
& \\
5. NAG library & Describes the useful parts of the NAG library and their correspondence to the distributions mentioned in the SRS. \\
& \\
6. Generated program & Defines the modules, subroutines and functions of the generated program which the generator produces. \\
& \\
7. Generator & Describes the generator at a general level. \\
& \\
8. Data structures & Describes the data structures used in the generator program. \\
& \\
9. Modules & Describes the modules of the generator program. \\
& \\
10. Algorithms & Describes the algorithms the generator uses. \\
& \\
11. Requirements & Describes which requirements are implemented and which chapters in this document correspond to them.\\
\end{tabular}

\subsection{Version history}

\input{version}