
\begin{frame}[fragile]
  \frametitle{Setting default options}
  \begin{tiny}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftmv{INTS}{MURGE\_SetDefaultOptions}{INTS}{}{id},\\ 
        \tmv{INTS}{}{stratnum});\\
      \end{type-func-type-mod-var}
    \end{block}  
     
    \begin{block}{}
      \begin{type-func-vars}
        \forkey{SUBROUTINE} \func{MURGE\_SETDEFAULTOPTIONS} & (\texttt{ID, STRATNUM, IERROR})\\
      \end{type-func-vars}

      \begin{type-var}
        \type{\ \ INTS, INTENT(IN)}  &  :: \var{ID}, \var{STRATNUM}\\
        \type{\ \ INTS, INTENT(OUT)} &  :: \var{IERROR}
      \end{type-var}

      \begin{type-func-vars}
        \forkey{END SUBROUTINE} \func{MURGE\_SETDEFAULTOPTIONS}
      \end{type-func-vars}
    \end{block} 
  \end{tiny}
  This function set default options for a solver strategy.
  \begin{description}
  \item[id] Solver instance ID.
  \item[stratnum] A solver strategy (e.g. direct, iterative, hybrid), described in solver internal
    documentation. 
  \end{description}
\end{frame}


\begin{frame}[fragile]
  \frametitle{Setting integer options}
  \begin{tiny}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftv{INTS}{MURGE\_SetOptionINT}{INTS}{id},\\ 
        \tv{INTS}{number},\\ 
        \tv{INTS}{value});\\
      \end{type-func-type-mod-var}
    \end{block}
    \begin{block}{}
      \begin{type-func-vars}
        \sub{MURGE\_SETOPTIONINT}{ID, NUMBER, VALUE, IERROR})\\
      \end{type-func-vars}

      \begin{type-var}
        \type{\ \ INTS, INTENT(IN)}  &   :: \var{ID}, \var{NUMBER}, \var{VALUE}\\
        \type{\ \ INTS, INTENT(OUT)} &   :: \var{IERROR}\\
      \end{type-var}

      \bus{MURGE\_SETOPTIONINT}
   \end{block}
  \end{tiny}
  This function sets an integer option.
  \begin{description}
  \item[id    ]	Solver instance identification number.
  \item[number]	Identification of the integer parameter.
  \item[value ]	value to set the parameter to.
  \end{description}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Setting real options}
  \begin{tiny}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftv{INTS}{MURGE\_SetOptionREAL}{INTS}{id},\\ 
        \tv{INTS}{number},\\ 
        \tv{REAL}{value});\\
      \end{type-func-type-mod-var}
    \end{block}
    \begin{block}{}
      \begin{type-func-vars}
        \sub{MURGE\_SETOPTIONREAL}{ID, NUMBER, VALUE,  IERROR})\\
      \end{type-func-vars}

      \begin{type-var}
        \fdecl{INTS, INTENT(IN)}{\var{ID}, \var{NUMBER}}\\
        \fdecl{REAL, INTENT(IN)}{\var{VALUE}}\\
        \fdecl{INTS, INTENT(OUT)}{\var{IERROR}}\\
      \end{type-var}

      \bus{MURGE\_SETOPTIONINT}
   \end{block}
  \end{tiny}
  This function sets an integer option.
  \begin{description}
  \item[id    ]	Solver instance identification number.
  \item[number]	Identification of the integer parameter.
  \item[value ]	value to set the parameter to.
  \end{description}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Setting communicator}
  \begin{tiny}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftv{INTS}{MURGE\_SetCommunicator}{INTS}{id},\\
        \tv{MPI\_Comm}{mpicom})\\
      \end{type-func-type-mod-var}
    \end{block}
    \begin{block}{}
      \begin{type-func-vars}
        \sub{MURGE\_SETCOMMUNICATOR}{ID, MPICOMM, IERROR})\\
      \end{type-func-vars}
      
      \begin{type-var}
        \fdecl{INTS,    INTENT(IN)}{\var{ID}}\\
        \fdecl{MPI\_COMM,INTENT(IN) }{\var{MPICOMM}}\\
        \fdecl{INTS,     INTENT(OUT)}{\var{IERROR}}\\
      \end{type-var}
      \bus{MURGE\_SETCOMMUNICATOR}
   \end{block}
  \end{tiny}
  This function sets an integer option.
  \begin{description}
  \item[id    ]	 Solver instance identification number.
  \item[mpicomm] MPI communicator associated with solver.
  \end{description}
\end{frame}
