\subsection{General error conditions}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & E1\\
& \\
Name: & File not found \\
& \\
Description: & If a file specified as input isn't available (cannot be found or cannot be read), the program must display an error message.\\
& \\
Rationale: & \\
& \\
Priority: & Essential\\
& \\
Stability: & Stable\\
& \\
Source: & Vesa Vainio\\
\hline
\end{tabular}
\vspace{.5cm}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & E2\\
& \\
Name: & Reporting syntax errors\\
& \\
Description: & If the file defining the model or a file including simulation parameters is syntactically invalid, the program must display an informative error message describing the nature of the error. \\
& \\
Rationale: & Makes the user's work easier.\\
& \\
Priority: & Optional\\
& \\
Stability: & Stable\\
& \\
Source: & Anni Kotilainen\\
\hline
\end{tabular}
\vspace{.5cm}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & E3 \\
& \\
Name: & Reporting semantic errors\\
& \\
Description: & If the file defining the model or a file including simulation technical parameters is semantically invalid, the program could display an error message.\\
& \\
Rationale: & \\
& \\
Priority: & Optional\\
& \\
Stability: & Unstable\\
& \\
Source: & Anni Kotilainen\\
\hline
\end{tabular}
\vspace{.5cm}

Note: Requirements related to error conditions in output are defined in the chapter ``Output requirements'' and requirements related to error conditions related to data are defined in the chapter ``Data requirements''.

\subsection{Non-functional requirements}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & N1\\
& \\
Name: & Working on Linux \\
& \\
Description: & The program must function correctly on a Linux-based operating system. \\
& \\
Rationale: & Linux is widely used by the intended users of the software.\\
& \\
Priority: & Essential\\
& \\
Stability: & Stable\\
& \\
Source: & Marko Salmenkivi\\
\hline
\end{tabular}
\vspace{.5cm}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & N2\\
& \\
Name: & The implementation language\\
& \\
Description: &  The efficiency of implementation must be a primary concern in the choice of the implementation language. As a result, Fortran 90/95 has been chosen for the implementation.\\
& \\
Rationale: & The simulations require a large amount of computation and as such require vast amounts of time. This demands efficiency.\\
& \\
Priority: & Essential\\
& \\
Stability: & Stable\\
& \\
Source: & Marko Salmenkivi\\
\hline
\end{tabular}
\vspace{.5cm}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & N3\\
& \\
Name: & Parallel computation\\
& \\
Description: & The program could be able to utilize multiple processors for distributed computation.\\
& \\
Rationale: & This allows for greater efficiency.\\
& \\
Priority: & Optional\\
& \\
Stability: & Stable\\
& \\
Source: & Marko Salmenkivi\\
\hline
\end{tabular}
\vspace{.5cm}

\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & N4\\
& \\
Name: & Graphical user interface\\
& \\
Description: & The program could include a graphical user interface. \\
& \\
Rationale: & This would make the program easier to use.\\
& \\
Priority: & Optional\\
& \\
Stability: & Unstable\\
& \\
Source: & Anni Kotilainen\\
\hline
\end{tabular}
\vspace{.5cm}

\subsection{General requirements}

This section contains requirements that do not fall under the other categories, or should be in many of them.


\begin{tabular}[]{| l p{10cm} |}
\hline
Id: & G1 \\
& \\
Name: & Adding comments to definition files\\
& \\
Description: & It should be possible to add comments into the definition files. (Definition files = input files - data files) \\
& \\
Rationale: & \\
& \\
Priority: & Conditional\\
& \\
Stability: & Stable\\
& \\
Source: & Marko Salmenkivi\\
\hline
\end{tabular}
\vspace{.5cm}
