\hypertarget{interfacemom__file__parser_1_1read__param}{}\section{mom\+\_\+file\+\_\+parser\+:\+:read\+\_\+param Interface Reference}
\label{interfacemom__file__parser_1_1read__param}\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}


\subsection{Detailed Description}
An overloaded interface to read various types of parameters. 

Definition at line 90 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_a2ec3af5c2d4cf6e92e86e40a69066c0b}{read\+\_\+param\+\_\+int} (CS, varname, value, fail\+\_\+if\+\_\+missing)
\begin{DoxyCompactList}\small\item\em This subroutine reads the value of an integer model parameter from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_a1c0ef29e19c1415b1ebe9ccfe7b2fd1f}{read\+\_\+param\+\_\+real} (CS, varname, value, fail\+\_\+if\+\_\+missing, scale)
\begin{DoxyCompactList}\small\item\em This subroutine reads the value of a real model parameter from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_ac597a6541686269074172edb615d9182}{read\+\_\+param\+\_\+logical} (CS, varname, value, fail\+\_\+if\+\_\+missing)
\begin{DoxyCompactList}\small\item\em This subroutine reads the value of a logical model parameter from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_aa4432bf14f3758eb45ec97e5202cd3fe}{read\+\_\+param\+\_\+char} (CS, varname, value, fail\+\_\+if\+\_\+missing)
\begin{DoxyCompactList}\small\item\em This subroutine reads the value of a character string model parameter from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_aa8c50149ca73ac6771ca7c786d8b6a29}{read\+\_\+param\+\_\+char\+\_\+array} (CS, varname, value, fail\+\_\+if\+\_\+missing)
\begin{DoxyCompactList}\small\item\em This subroutine reads the values of an array of character string model parameters from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_abf7de1abb29512fb7496bd93df4f8f21}{read\+\_\+param\+\_\+time} (CS, varname, value, timeunit, fail\+\_\+if\+\_\+missing, date\+\_\+format)
\begin{DoxyCompactList}\small\item\em This subroutine reads the value of a time\+\_\+type model parameter from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_abcb8b784ccf76a3dcb6748de0bf99c19}{read\+\_\+param\+\_\+int\+\_\+array} (CS, varname, value, fail\+\_\+if\+\_\+missing)
\begin{DoxyCompactList}\small\item\em This subroutine reads the values of an array of integer model parameters from a parameter file. \end{DoxyCompactList}\item 
subroutine \hyperlink{interfacemom__file__parser_1_1read__param_a18df4cad513e32d9341704169dbe4cee}{read\+\_\+param\+\_\+real\+\_\+array} (CS, varname, value, fail\+\_\+if\+\_\+missing, scale)
\begin{DoxyCompactList}\small\item\em This subroutine reads the values of an array of real model parameters from a parameter file. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
An overloaded interface to read various types of parameters. 

Definition at line 90 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.



\subsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_aa4432bf14f3758eb45ec97e5202cd3fe}\label{interfacemom__file__parser_1_1read__param_aa4432bf14f3758eb45ec97e5202cd3fe}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+char@{read\+\_\+param\+\_\+char}}
\index{read\+\_\+param\+\_\+char@{read\+\_\+param\+\_\+char}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+char()}{read\_param\_char()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+char (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the value of a character string model parameter from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file \\
\hline
\end{DoxyParams}


Definition at line 720 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
720   \textcolor{keywordtype}{type}(param\_file\_type),  \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
721 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
722   \textcolor{keywordtype}{character(len=*)},       \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
723   \textcolor{keywordtype}{character(len=*)},    \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
724 \textcolor{comment}{                                         !! read from the parameter file}
725   \textcolor{keywordtype}{logical},      \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
726 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
727   \textcolor{comment}{! Local variables}
728   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
729   \textcolor{keywordtype}{logical}            :: found, defined
730 
731   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
732   \textcolor{keywordflow}{if} (found) \textcolor{keywordflow}{then}
733     \textcolor{keywordtype}{value} = trim(strip\_quotes(value\_string(1)))
734   \textcolor{keywordflow}{elseif} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
735     \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'Unable to find variable '}//trim(varname)// &
736                          \textcolor{stringliteral}{' in any input files.'})
737 \textcolor{keywordflow}{  endif} ;\textcolor{keywordflow}{ endif}
738 
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_aa8c50149ca73ac6771ca7c786d8b6a29}\label{interfacemom__file__parser_1_1read__param_aa8c50149ca73ac6771ca7c786d8b6a29}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+char\+\_\+array@{read\+\_\+param\+\_\+char\+\_\+array}}
\index{read\+\_\+param\+\_\+char\+\_\+array@{read\+\_\+param\+\_\+char\+\_\+array}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+char\+\_\+array()}{read\_param\_char\_array()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+char\+\_\+array (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), dimension(\+:), intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the values of an array of character string model parameters from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file \\
\hline
\end{DoxyParams}


Definition at line 743 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
743   \textcolor{keywordtype}{type}(param\_file\_type),  \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
744 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
745   \textcolor{keywordtype}{character(len=*)},       \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
746   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
747 \textcolor{comment}{                                         !! read from the parameter file}
748   \textcolor{keywordtype}{logical},      \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
749 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
750 
751   \textcolor{comment}{! Local variables}
752   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1), loc\_string
753   \textcolor{keywordtype}{logical}            :: found, defined
754   \textcolor{keywordtype}{integer}            :: i, i\_out
755 
756   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
757   \textcolor{keywordflow}{if} (found) \textcolor{keywordflow}{then}
758     loc\_string = trim(value\_string(1))
759     i = index(loc\_string,\textcolor{stringliteral}{","})
760     i\_out = 1
761     \textcolor{keywordflow}{do} \textcolor{keywordflow}{while}(i>0)
762       value(i\_out) = trim(strip\_quotes(loc\_string(:i-1)))
763       i\_out = i\_out+1
764       loc\_string = trim(adjustl(loc\_string(i+1:)))
765       i = index(loc\_string,\textcolor{stringliteral}{","})
766 \textcolor{keywordflow}{    enddo}
767     \textcolor{keywordflow}{if} (len\_trim(loc\_string)>0) \textcolor{keywordflow}{then}
768       value(i\_out) = trim(strip\_quotes(adjustl(loc\_string)))
769       i\_out = i\_out+1
770 \textcolor{keywordflow}{    endif}
771     \textcolor{keywordflow}{do} i=i\_out,\textcolor{keyword}{SIZE}(\textcolor{keywordtype}{value}) ; value(i) = \textcolor{stringliteral}{" "} ;\textcolor{keywordflow}{ enddo}
772   \textcolor{keywordflow}{elseif} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
773     \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'Unable to find variable '}//trim(varname)// &
774                          \textcolor{stringliteral}{' in any input files.'})
775 \textcolor{keywordflow}{  endif} ;\textcolor{keywordflow}{ endif}
776 
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_a2ec3af5c2d4cf6e92e86e40a69066c0b}\label{interfacemom__file__parser_1_1read__param_a2ec3af5c2d4cf6e92e86e40a69066c0b}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+int@{read\+\_\+param\+\_\+int}}
\index{read\+\_\+param\+\_\+int@{read\+\_\+param\+\_\+int}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+int()}{read\_param\_int()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+int (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{integer, intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the value of an integer model parameter from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file \\
\hline
\end{DoxyParams}


Definition at line 581 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
581   \textcolor{keywordtype}{type}(param\_file\_type),  \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
582 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
583   \textcolor{keywordtype}{character(len=*)},       \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
584   \textcolor{keywordtype}{integer},             \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
585 \textcolor{comment}{                                         !! read from the parameter file}
586   \textcolor{keywordtype}{logical},      \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
587 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
588   \textcolor{comment}{! Local variables}
589   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
590   \textcolor{keywordtype}{logical}            :: found, defined
591 
592   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
593   \textcolor{keywordflow}{if} (found .and. defined .and. (len\_trim(value\_string(1)) > 0)) \textcolor{keywordflow}{then}
594     \textcolor{keyword}{read}(value\_string(1),*,err = 1001) \textcolor{keywordtype}{value}
595   \textcolor{keywordflow}{else}
596     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
597       \textcolor{keywordflow}{if} (.not.found) \textcolor{keywordflow}{then}
598         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_int: Unable to find variable '}//trim(varname)// &
599                              \textcolor{stringliteral}{' in any input files.'})
600       \textcolor{keywordflow}{else}
601         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_int: Variable '}//trim(varname)// &
602                              \textcolor{stringliteral}{' found but not set in input files.'})
603 \textcolor{keywordflow}{      endif}
604 \textcolor{keywordflow}{    endif} ;\textcolor{keywordflow}{ endif}
605 \textcolor{keywordflow}{  endif}
606   \textcolor{keywordflow}{return}
607  1001 \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_int: read error for integer variable '}//trim(varname)// &
608                              \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_abcb8b784ccf76a3dcb6748de0bf99c19}\label{interfacemom__file__parser_1_1read__param_abcb8b784ccf76a3dcb6748de0bf99c19}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+int\+\_\+array@{read\+\_\+param\+\_\+int\+\_\+array}}
\index{read\+\_\+param\+\_\+int\+\_\+array@{read\+\_\+param\+\_\+int\+\_\+array}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+int\+\_\+array()}{read\_param\_int\_array()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+int\+\_\+array (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{integer, dimension(\+:), intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the values of an array of integer model parameters from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file \\
\hline
\end{DoxyParams}


Definition at line 613 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
613   \textcolor{keywordtype}{type}(param\_file\_type),  \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
614 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
615   \textcolor{keywordtype}{character(len=*)},       \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
616   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:)},  \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
617 \textcolor{comment}{                                         !! read from the parameter file}
618   \textcolor{keywordtype}{logical},      \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
619 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
620   \textcolor{comment}{! Local variables}
621   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
622   \textcolor{keywordtype}{logical}            :: found, defined
623 
624   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
625   \textcolor{keywordflow}{if} (found .and. defined .and. (len\_trim(value\_string(1)) > 0)) \textcolor{keywordflow}{then}
626     \textcolor{keyword}{read}(value\_string(1),*,end=991,err=1002) \textcolor{keywordtype}{value}
627  991 \textcolor{keywordflow}{return}
628   \textcolor{keywordflow}{else}
629     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
630       \textcolor{keywordflow}{if} (.not.found) \textcolor{keywordflow}{then}
631         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_int\_array: Unable to find variable '}//trim(varname)// &
632                              \textcolor{stringliteral}{' in any input files.'})
633       \textcolor{keywordflow}{else}
634         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_int\_array: Variable '}//trim(varname)// &
635                              \textcolor{stringliteral}{' found but not set in input files.'})
636 \textcolor{keywordflow}{      endif}
637 \textcolor{keywordflow}{    endif} ;\textcolor{keywordflow}{ endif}
638 \textcolor{keywordflow}{  endif}
639   \textcolor{keywordflow}{return}
640  1002 \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_int\_array: read error for integer array '}//trim(varname)// &
641                              \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_ac597a6541686269074172edb615d9182}\label{interfacemom__file__parser_1_1read__param_ac597a6541686269074172edb615d9182}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+logical@{read\+\_\+param\+\_\+logical}}
\index{read\+\_\+param\+\_\+logical@{read\+\_\+param\+\_\+logical}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+logical()}{read\_param\_logical()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+logical (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{logical, intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the value of a logical model parameter from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file \\
\hline
\end{DoxyParams}


Definition at line 781 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
781   \textcolor{keywordtype}{type}(param\_file\_type),  \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
782 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
783   \textcolor{keywordtype}{character(len=*)},       \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
784   \textcolor{keywordtype}{logical},             \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
785 \textcolor{comment}{                                         !! read from the parameter file}
786   \textcolor{keywordtype}{logical},      \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
787 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
788 
789   \textcolor{comment}{! Local variables}
790   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
791   \textcolor{keywordtype}{logical}            :: found, defined
792 
793   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string, paramislogical=.true.)
794   \textcolor{keywordflow}{if} (found) \textcolor{keywordflow}{then}
795     \textcolor{keywordtype}{value} = defined
796   \textcolor{keywordflow}{elseif} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
797     \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'Unable to find variable '}//trim(varname)// &
798                          \textcolor{stringliteral}{' in any input files.'})
799 \textcolor{keywordflow}{  endif} ;\textcolor{keywordflow}{ endif}
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_a1c0ef29e19c1415b1ebe9ccfe7b2fd1f}\label{interfacemom__file__parser_1_1read__param_a1c0ef29e19c1415b1ebe9ccfe7b2fd1f}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+real@{read\+\_\+param\+\_\+real}}
\index{read\+\_\+param\+\_\+real@{read\+\_\+param\+\_\+real}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+real()}{read\_param\_real()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+real (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{real, intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing,  }\item[{real, intent(in), optional}]{scale }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the value of a real model parameter from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file\\
\hline
\mbox{\tt in}  & {\em scale} & A scaling factor that the parameter is multiplied by before it is returned. \\
\hline
\end{DoxyParams}


Definition at line 646 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
646   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
647 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
648   \textcolor{keywordtype}{character(len=*)},      \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
649   \textcolor{keywordtype}{real},               \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
650 \textcolor{comment}{                                         !! read from the parameter file}
651   \textcolor{keywordtype}{logical},     \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
652 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
653   \textcolor{keywordtype}{real},        \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: scale\textcolor{comment}{   !< A scaling factor that the parameter is multiplied}
654 \textcolor{comment}{                                         !! by before it is returned.}
655 
656   \textcolor{comment}{! Local variables}
657   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
658   \textcolor{keywordtype}{logical}            :: found, defined
659 
660   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
661   \textcolor{keywordflow}{if} (found .and. defined .and. (len\_trim(value\_string(1)) > 0)) \textcolor{keywordflow}{then}
662     \textcolor{keyword}{read}(value\_string(1),*,err=1003) \textcolor{keywordtype}{value}
663     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(scale)) \textcolor{keywordtype}{value} = scale*\textcolor{keywordtype}{value}
664   \textcolor{keywordflow}{else}
665     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
666       \textcolor{keywordflow}{if} (.not.found) \textcolor{keywordflow}{then}
667         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_real: Unable to find variable '}//trim(varname)// &
668                              \textcolor{stringliteral}{' in any input files.'})
669       \textcolor{keywordflow}{else}
670         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_real: Variable '}//trim(varname)// &
671                              \textcolor{stringliteral}{' found but not set in input files.'})
672 \textcolor{keywordflow}{      endif}
673 \textcolor{keywordflow}{    endif} ;\textcolor{keywordflow}{ endif}
674 \textcolor{keywordflow}{  endif}
675   \textcolor{keywordflow}{return}
676  1003 \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_real: read error for real variable '}//trim(varname)// &
677                              \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_a18df4cad513e32d9341704169dbe4cee}\label{interfacemom__file__parser_1_1read__param_a18df4cad513e32d9341704169dbe4cee}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+real\+\_\+array@{read\+\_\+param\+\_\+real\+\_\+array}}
\index{read\+\_\+param\+\_\+real\+\_\+array@{read\+\_\+param\+\_\+real\+\_\+array}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+real\+\_\+array()}{read\_param\_real\_array()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+real\+\_\+array (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{real, dimension(\+:), intent(inout)}]{value,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing,  }\item[{real, intent(in), optional}]{scale }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the values of an array of real model parameters from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file\\
\hline
\mbox{\tt in}  & {\em scale} & A scaling factor that the parameter is multiplied by before it is returned. \\
\hline
\end{DoxyParams}


Definition at line 682 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
682   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
683 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
684   \textcolor{keywordtype}{character(len=*)},      \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
685   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
686 \textcolor{comment}{                                         !! read from the parameter file}
687   \textcolor{keywordtype}{logical},     \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
688 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
689   \textcolor{keywordtype}{real},        \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: scale\textcolor{comment}{   !< A scaling factor that the parameter is multiplied}
690 \textcolor{comment}{                                         !! by before it is returned.}
691 
692   \textcolor{comment}{! Local variables}
693   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
694   \textcolor{keywordtype}{logical}                         :: found, defined
695 
696   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
697   \textcolor{keywordflow}{if} (found .and. defined .and. (len\_trim(value\_string(1)) > 0)) \textcolor{keywordflow}{then}
698     \textcolor{keyword}{read}(value\_string(1),*,end=991,err=1004) \textcolor{keywordtype}{value}
699 991 \textcolor{keywordflow}{continue}
700     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(scale)) value(:) = scale*value(:)
701     \textcolor{keywordflow}{return}
702   \textcolor{keywordflow}{else}
703     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
704       \textcolor{keywordflow}{if} (.not.found) \textcolor{keywordflow}{then}
705         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_real\_array: Unable to find variable '}//trim(varname)// &
706                              \textcolor{stringliteral}{' in any input files.'})
707       \textcolor{keywordflow}{else}
708         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_real\_array: Variable '}//trim(varname)// &
709                              \textcolor{stringliteral}{' found but not set in input files.'})
710 \textcolor{keywordflow}{      endif}
711 \textcolor{keywordflow}{    endif} ;\textcolor{keywordflow}{ endif}
712 \textcolor{keywordflow}{  endif}
713   \textcolor{keywordflow}{return}
714  1004 \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_real\_array: read error for real array '}//trim(varname)// &
715                              \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__file__parser_1_1read__param_abf7de1abb29512fb7496bd93df4f8f21}\label{interfacemom__file__parser_1_1read__param_abf7de1abb29512fb7496bd93df4f8f21}} 
\index{mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}!read\+\_\+param\+\_\+time@{read\+\_\+param\+\_\+time}}
\index{read\+\_\+param\+\_\+time@{read\+\_\+param\+\_\+time}!mom\+\_\+file\+\_\+parser\+::read\+\_\+param@{mom\+\_\+file\+\_\+parser\+::read\+\_\+param}}
\subsubsection{\texorpdfstring{read\+\_\+param\+\_\+time()}{read\_param\_time()}}
{\footnotesize\ttfamily subroutine mom\+\_\+file\+\_\+parser\+::read\+\_\+param\+::read\+\_\+param\+\_\+time (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}), intent(in)}]{CS,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{type(time\+\_\+type), intent(inout)}]{value,  }\item[{real, intent(in), optional}]{timeunit,  }\item[{logical, intent(in), optional}]{fail\+\_\+if\+\_\+missing,  }\item[{logical, intent(out), optional}]{date\+\_\+format }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine reads the value of a time\+\_\+type model parameter from a parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em cs} & The control structure for the file\+\_\+parser module, it is also a structure to parse for run-\/time parameters\\
\hline
\mbox{\tt in}  & {\em varname} & The case-\/sensitive name of the parameter to read\\
\hline
\mbox{\tt in,out}  & {\em value} & The value of the parameter that may be read from the parameter file\\
\hline
\mbox{\tt in}  & {\em timeunit} & The number of seconds in a time unit for real-\/number input.\\
\hline
\mbox{\tt in}  & {\em fail\+\_\+if\+\_\+missing} & If present and true, a fatal error occurs if this variable is not found in the parameter file\\
\hline
\mbox{\tt out}  & {\em date\+\_\+format} & If present, this indicates whether this parameter was read in a date format, so that it can later be logged in the same format. \\
\hline
\end{DoxyParams}


Definition at line 804 of file M\+O\+M\+\_\+file\+\_\+parser.\+F90.


\begin{DoxyCode}
804   \textcolor{keywordtype}{type}(param\_file\_type),  \textcolor{keywordtype}{intent(in)} :: cs\textcolor{comment}{      !< The control structure for the file\_parser module,}
805 \textcolor{comment}{                                         !! it is also a structure to parse for run-time parameters}
806   \textcolor{keywordtype}{character(len=*)},       \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The case-sensitive name of the parameter to read}
807   \textcolor{keywordtype}{type}(time\_type),     \textcolor{keywordtype}{intent(inout)} :: \textcolor{keywordtype}{value}\textcolor{comment}{   !< The value of the parameter that may be}
808 \textcolor{comment}{                                         !! read from the parameter file}
809   \textcolor{keywordtype}{real},         \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: timeunit\textcolor{comment}{ !< The number of seconds in a time unit for real-number
       input.}
810   \textcolor{keywordtype}{logical},      \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: fail\_if\_missing\textcolor{comment}{ !< If present and true, a fatal error occurs}
811 \textcolor{comment}{                                         !! if this variable is not found in the parameter file}
812   \textcolor{keywordtype}{logical},     \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(out)} :: date\_format\textcolor{comment}{ !< If present, this indicates whether this}
813 \textcolor{comment}{                                         !! parameter was read in a date format, so that it can}
814 \textcolor{comment}{                                         !! later be logged in the same format.}
815 
816   \textcolor{comment}{! Local variables}
817   \textcolor{keywordtype}{character(len=INPUT\_STR\_LENGTH)} :: value\_string(1)
818   \textcolor{keywordtype}{character(len=240)} :: err\_msg
819   \textcolor{keywordtype}{logical}            :: found, defined
820   \textcolor{keywordtype}{real}               :: real\_time, time\_unit
821   \textcolor{keywordtype}{integer}            :: vals(7)
822 
823   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(date\_format)) date\_format = .false.
824 
825   \textcolor{keyword}{call }get\_variable\_line(cs, varname, found, defined, value\_string)
826   \textcolor{keywordflow}{if} (found .and. defined .and. (len\_trim(value\_string(1)) > 0)) \textcolor{keywordflow}{then}
827     \textcolor{comment}{! Determine whether value string should be parsed for a real number}
828     \textcolor{comment}{! or a date, in either a string format or a comma-delimited list of values.}
829     \textcolor{keywordflow}{if} ((index(value\_string(1),\textcolor{stringliteral}{'-'}) > 0) .and. &
830         (index(value\_string(1),\textcolor{stringliteral}{'-'},back=.true.) > index(value\_string(1),\textcolor{stringliteral}{'-'}))) \textcolor{keywordflow}{then}
831       \textcolor{comment}{! There are two dashes, so this must be a date format.}
832       \textcolor{keywordtype}{value} = set\_date(value\_string(1), err\_msg=err\_msg)
833       \textcolor{keywordflow}{if} (len\_trim(err\_msg) > 0) \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_time: '}//&
834           trim(err\_msg)//\textcolor{stringliteral}{' in integer list read error for time-type variable '}//&
835           trim(varname)// \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
836       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(date\_format)) date\_format = .true.
837     \textcolor{keywordflow}{elseif} (index(value\_string(1),\textcolor{stringliteral}{','}) > 0) \textcolor{keywordflow}{then}
838       \textcolor{comment}{! Initialize vals with an invalid date.}
839       vals(:) = (/ -999, -999, -999, 0, 0, 0, 0 /)
840       \textcolor{keyword}{read}(value\_string(1),*,end=995,err=1005) vals
841      995 \textcolor{keywordflow}{continue}
842       \textcolor{keywordflow}{if} ((vals(1) < 0) .or. (vals(2) < 0) .or. (vals(3) < 0)) &
843         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_time: integer list read error for time-type variable '}//&
844                        trim(varname)// \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
845       \textcolor{keywordtype}{value} = set\_date(vals(1), vals(2), vals(3), vals(4), vals(5), vals(6), &
846                        vals(7), err\_msg=err\_msg)
847       \textcolor{keywordflow}{if} (len\_trim(err\_msg) > 0) \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_time: '}//&
848           trim(err\_msg)//\textcolor{stringliteral}{' in integer list read error for time-type variable '}//&
849           trim(varname)// \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
850       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(date\_format)) date\_format = .true.
851     \textcolor{keywordflow}{else}
852       time\_unit = 1.0 ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(timeunit)) time\_unit = timeunit
853       \textcolor{keyword}{read}( value\_string(1), *) real\_time
854       \textcolor{keywordtype}{value} = real\_to\_time(real\_time*time\_unit)
855 \textcolor{keywordflow}{    endif}
856   \textcolor{keywordflow}{else}
857     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(fail\_if\_missing)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (fail\_if\_missing) \textcolor{keywordflow}{then}
858       \textcolor{keywordflow}{if} (.not.found) \textcolor{keywordflow}{then}
859         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'Unable to find variable '}//trim(varname)// &
860                              \textcolor{stringliteral}{' in any input files.'})
861       \textcolor{keywordflow}{else}
862         \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'Variable '}//trim(varname)// &
863                              \textcolor{stringliteral}{' found but not set in input files.'})
864 \textcolor{keywordflow}{      endif}
865 \textcolor{keywordflow}{    endif} ;\textcolor{keywordflow}{ endif}
866 \textcolor{keywordflow}{  endif}
867   \textcolor{keywordflow}{return}
868  1005 \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{'read\_param\_time: read error for time-type variable '}//&
869                            trim(varname)// \textcolor{stringliteral}{' parsing "'}//trim(value\_string(1))//\textcolor{stringliteral}{'"'})
\end{DoxyCode}


The documentation for this interface was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/home/cermak/src/\+M\+O\+M6.\+devrob/src/framework/M\+O\+M\+\_\+file\+\_\+parser.\+F90\end{DoxyCompactItemize}
