\hypertarget{interfacemom__document_1_1doc__param}{}\section{mom\+\_\+document\+::doc\+\_\+param Interface Reference}
\label{interfacemom__document_1_1doc__param}\index{mom\_document::doc\_param@{mom\_document::doc\_param}}


\subsection{Detailed Description}
Document parameter values. 

Definition at line 16 of file M\+O\+M\+\_\+document.\+F90.

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a1e59592804280468052b124568e287c5}{doc\+\_\+param\+\_\+none}} (doc, varname, desc, units)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation with no value. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a18c0fde22167cdac3aba2059ffdbea1e}{doc\+\_\+param\+\_\+logical}} (doc, varname, desc, units, val, default, layout\+Param, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for logicals. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a52ef7f58c669fe262f67b9b9e07bac84}{doc\+\_\+param\+\_\+logical\+\_\+array}} (doc, varname, desc, units, vals, default, layout\+Param, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for arrays of logicals. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a726380b39dc507d473a2aa3dcc82c22a}{doc\+\_\+param\+\_\+int}} (doc, varname, desc, units, val, default, layout\+Param, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for integers. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a3bab2fc487e6bf1a16154a951ef647d4}{doc\+\_\+param\+\_\+int\+\_\+array}} (doc, varname, desc, units, vals, default, layout\+Param, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for arrays of integers. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a5663dff9ddd3541819df971a85b12930}{doc\+\_\+param\+\_\+real}} (doc, varname, desc, units, val, default, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for reals. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a624b5bc989abdf7e8c3b3ee0de9cf2e0}{doc\+\_\+param\+\_\+real\+\_\+array}} (doc, varname, desc, units, vals, default, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for arrays of reals. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a851801350e4b8a54fabfb0d4c30308ec}{doc\+\_\+param\+\_\+char}} (doc, varname, desc, units, val, default, layout\+Param, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for character strings. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__document_1_1doc__param_a4418c43edd8909f57ba27472cdf6382a}{doc\+\_\+param\+\_\+time}} (doc, varname, desc, val, default, units, debugging\+Param, like\+\_\+default)
\begin{DoxyCompactList}\small\item\em This subroutine handles parameter documentation for time-\/type variables. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Document parameter values. 

Definition at line 16 of file M\+O\+M\+\_\+document.\+F90.



\subsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a851801350e4b8a54fabfb0d4c30308ec}\label{interfacemom__document_1_1doc__param_a851801350e4b8a54fabfb0d4c30308ec}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_char@{doc\_param\_char}}
\index{doc\_param\_char@{doc\_param\_char}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_char()}{doc\_param\_char()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+char (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{character(len=$\ast$), intent(in)}]{val,  }\item[{character(len=$\ast$), intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{layout\+Param,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for character strings. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em val} & The value of the parameter \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em layoutparam} & If present and true, this is a layout parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 348 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{348   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{349 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{350   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{351   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{352   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{353   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: val\textcolor{comment}{     !< The value of the parameter}}
\DoxyCodeLine{354   \textcolor{keywordtype}{character(len=*)}, \&}
\DoxyCodeLine{355            \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{356   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: layoutParam\textcolor{comment}{ !< If present and true, this is a layout parameter.}}
\DoxyCodeLine{357   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{358   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{359 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{360 \textcolor{comment}{! This subroutine handles parameter documentation for character strings.}}
\DoxyCodeLine{361   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{362   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{363 }
\DoxyCodeLine{364   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{365   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{366 }
\DoxyCodeLine{367   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{368     mesg = define\_string(doc, varname, \textcolor{stringliteral}{'"'}//trim(val)//\textcolor{stringliteral}{'"'}, units)}
\DoxyCodeLine{369 }
\DoxyCodeLine{370     equalsdefault = .false.}
\DoxyCodeLine{371     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) equalsdefault = like\_default}
\DoxyCodeLine{372     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{373       \textcolor{keywordflow}{if} (trim(val) == trim(default)) equalsdefault = .true.}
\DoxyCodeLine{374       mesg = trim(mesg)//\textcolor{stringliteral}{' default = "'}//trim(adjustl(default))//\textcolor{stringliteral}{'"'}}
\DoxyCodeLine{375 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{376 }
\DoxyCodeLine{377     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{378     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, \&}
\DoxyCodeLine{379                              layoutparam=layoutparam, debuggingparam=debuggingparam)}
\DoxyCodeLine{380 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{381 }

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a726380b39dc507d473a2aa3dcc82c22a}\label{interfacemom__document_1_1doc__param_a726380b39dc507d473a2aa3dcc82c22a}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_int@{doc\_param\_int}}
\index{doc\_param\_int@{doc\_param\_int}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_int()}{doc\_param\_int()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+int (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{integer, intent(in)}]{val,  }\item[{integer, intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{layout\+Param,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for integers. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em val} & The value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em layoutparam} & If present and true, this is a layout parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 187 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{187   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{188 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{189   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{190   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{191   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{192   \textcolor{keywordtype}{integer},           \textcolor{keywordtype}{intent(in)} :: val\textcolor{comment}{     !< The value of this parameter}}
\DoxyCodeLine{193   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{194   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: layoutParam\textcolor{comment}{ !< If present and true, this is a layout parameter.}}
\DoxyCodeLine{195   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{196   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{197 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{198 \textcolor{comment}{! This subroutine handles parameter documentation for integers.}}
\DoxyCodeLine{199   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{200   \textcolor{keywordtype}{character(len=doc\%commentColumn)}  :: valstring}
\DoxyCodeLine{201   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{202 }
\DoxyCodeLine{203   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{204   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{205 }
\DoxyCodeLine{206   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{207     valstring = int\_string(val)}
\DoxyCodeLine{208     mesg = define\_string(doc, varname, valstring, units)}
\DoxyCodeLine{209 }
\DoxyCodeLine{210     equalsdefault = .false.}
\DoxyCodeLine{211     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) equalsdefault = like\_default}
\DoxyCodeLine{212     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{213       \textcolor{keywordflow}{if} (val == default) equalsdefault = .true.}
\DoxyCodeLine{214       mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//(trim(int\_string(default)))}
\DoxyCodeLine{215 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{216 }
\DoxyCodeLine{217     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{218     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, \&}
\DoxyCodeLine{219                              layoutparam=layoutparam, debuggingparam=debuggingparam)}
\DoxyCodeLine{220 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a3bab2fc487e6bf1a16154a951ef647d4}\label{interfacemom__document_1_1doc__param_a3bab2fc487e6bf1a16154a951ef647d4}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_int\_array@{doc\_param\_int\_array}}
\index{doc\_param\_int\_array@{doc\_param\_int\_array}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_int\_array()}{doc\_param\_int\_array()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+int\+\_\+array (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{integer, dimension(\+:), intent(in)}]{vals,  }\item[{integer, intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{layout\+Param,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for arrays of integers. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em vals} & The array of values to record \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em layoutparam} & If present and true, this is a layout parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 226 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{226   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{227 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{228   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{229   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{230   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{231   \textcolor{keywordtype}{integer},           \textcolor{keywordtype}{intent(in)} :: vals(:)\textcolor{comment}{ !< The array of values to record}}
\DoxyCodeLine{232   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{233   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: layoutParam\textcolor{comment}{ !< If present and true, this is a layout parameter.}}
\DoxyCodeLine{234   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{235   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{236 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{237 \textcolor{comment}{! This subroutine handles parameter documentation for arrays of integers.}}
\DoxyCodeLine{238   \textcolor{keywordtype}{integer} :: i}
\DoxyCodeLine{239   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{240   \textcolor{keywordtype}{character(len=mLen)}  :: valstring}
\DoxyCodeLine{241   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{242 }
\DoxyCodeLine{243   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{244   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{245 }
\DoxyCodeLine{246   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{247     valstring = int\_string(vals(1))}
\DoxyCodeLine{248     \textcolor{keywordflow}{do} i=2,min(\textcolor{keyword}{size}(vals),128)}
\DoxyCodeLine{249       valstring = trim(valstring)//\textcolor{stringliteral}{", "}//trim(int\_string(vals(i)))}
\DoxyCodeLine{250 \textcolor{keywordflow}{    enddo}}
\DoxyCodeLine{251 }
\DoxyCodeLine{252     mesg = define\_string(doc, varname, valstring, units)}
\DoxyCodeLine{253 }
\DoxyCodeLine{254     equalsdefault = .false.}
\DoxyCodeLine{255     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{256       equalsdefault = .true.}
\DoxyCodeLine{257       \textcolor{keywordflow}{do} i=1,\textcolor{keyword}{size}(vals) ; \textcolor{keywordflow}{if} (vals(i) /= default) equalsdefault = .false. ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{258       mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//(trim(int\_string(default)))}
\DoxyCodeLine{259 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{260     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (like\_default) equalsdefault = .true. ;\textcolor{keywordflow}{ endif}}
\DoxyCodeLine{261 }
\DoxyCodeLine{262     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{263     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, \&}
\DoxyCodeLine{264                              layoutparam=layoutparam, debuggingparam=debuggingparam)}
\DoxyCodeLine{265 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{266 }

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a18c0fde22167cdac3aba2059ffdbea1e}\label{interfacemom__document_1_1doc__param_a18c0fde22167cdac3aba2059ffdbea1e}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_logical@{doc\_param\_logical}}
\index{doc\_param\_logical@{doc\_param\_logical}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_logical()}{doc\_param\_logical()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+logical (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{logical, intent(in)}]{val,  }\item[{logical, intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{layout\+Param,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for logicals. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em val} & The value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em layoutparam} & If present and true, this is a layout parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 89 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{89   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{90 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{91   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{92   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{93   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{94   \textcolor{keywordtype}{logical},           \textcolor{keywordtype}{intent(in)} :: val\textcolor{comment}{     !< The value of this parameter}}
\DoxyCodeLine{95   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{96   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: layoutParam\textcolor{comment}{ !< If present and true, this is a layout parameter.}}
\DoxyCodeLine{97   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{98   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{99 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{100 \textcolor{comment}{! This subroutine handles parameter documentation for logicals.}}
\DoxyCodeLine{101   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{102   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{103 }
\DoxyCodeLine{104   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{105   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{106 }
\DoxyCodeLine{107   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{108     \textcolor{keywordflow}{if} (val) \textcolor{keywordflow}{then}}
\DoxyCodeLine{109       mesg = define\_string(doc, varname, string\_true, units)}
\DoxyCodeLine{110     \textcolor{keywordflow}{else}}
\DoxyCodeLine{111       mesg = undef\_string(doc, varname, units)}
\DoxyCodeLine{112 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{113 }
\DoxyCodeLine{114     equalsdefault = .false.}
\DoxyCodeLine{115     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) equalsdefault = like\_default}
\DoxyCodeLine{116     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{117       \textcolor{keywordflow}{if} (val .eqv. default) equalsdefault = .true.}
\DoxyCodeLine{118       \textcolor{keywordflow}{if} (default) \textcolor{keywordflow}{then}}
\DoxyCodeLine{119         mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//string\_true}
\DoxyCodeLine{120       \textcolor{keywordflow}{else}}
\DoxyCodeLine{121         mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//string\_false}
\DoxyCodeLine{122 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{123 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{124 }
\DoxyCodeLine{125     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{126     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, \&}
\DoxyCodeLine{127                              layoutparam=layoutparam, debuggingparam=debuggingparam)}
\DoxyCodeLine{128 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a52ef7f58c669fe262f67b9b9e07bac84}\label{interfacemom__document_1_1doc__param_a52ef7f58c669fe262f67b9b9e07bac84}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_logical\_array@{doc\_param\_logical\_array}}
\index{doc\_param\_logical\_array@{doc\_param\_logical\_array}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_logical\_array()}{doc\_param\_logical\_array()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+logical\+\_\+array (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{logical, dimension(\+:), intent(in)}]{vals,  }\item[{logical, intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{layout\+Param,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for arrays of logicals. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em vals} & The array of values to record \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em layoutparam} & If present and true, this is a layout parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 134 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{134   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{135 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{136   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{137   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{138   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{139   \textcolor{keywordtype}{logical},           \textcolor{keywordtype}{intent(in)} :: vals(:)\textcolor{comment}{ !< The array of values to record}}
\DoxyCodeLine{140   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{141   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: layoutParam\textcolor{comment}{ !< If present and true, this is a layout parameter.}}
\DoxyCodeLine{142   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{143   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{144 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{145 \textcolor{comment}{! This subroutine handles parameter documentation for arrays of logicals.}}
\DoxyCodeLine{146   \textcolor{keywordtype}{integer} :: i}
\DoxyCodeLine{147   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{148   \textcolor{keywordtype}{character(len=mLen)} :: valstring}
\DoxyCodeLine{149   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{150 }
\DoxyCodeLine{151   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{152   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{153 }
\DoxyCodeLine{154   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{155     \textcolor{keywordflow}{if} (vals(1)) \textcolor{keywordflow}{then} ; valstring = string\_true ; \textcolor{keywordflow}{else} ; valstring = string\_false ;\textcolor{keywordflow}{ endif}}
\DoxyCodeLine{156     \textcolor{keywordflow}{do} i=2,min(\textcolor{keyword}{size}(vals),128)}
\DoxyCodeLine{157       \textcolor{keywordflow}{if} (vals(i)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{158         valstring = trim(valstring)//\textcolor{stringliteral}{", "}//string\_true}
\DoxyCodeLine{159       \textcolor{keywordflow}{else}}
\DoxyCodeLine{160         valstring = trim(valstring)//\textcolor{stringliteral}{", "}//string\_false}
\DoxyCodeLine{161 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{162 \textcolor{keywordflow}{    enddo}}
\DoxyCodeLine{163 }
\DoxyCodeLine{164     mesg = define\_string(doc, varname, valstring, units)}
\DoxyCodeLine{165 }
\DoxyCodeLine{166     equalsdefault = .false.}
\DoxyCodeLine{167     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{168       equalsdefault = .true.}
\DoxyCodeLine{169       \textcolor{keywordflow}{do} i=1,\textcolor{keyword}{size}(vals) ; \textcolor{keywordflow}{if} (vals(i) .neqv. default) equalsdefault = .false. ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{170       \textcolor{keywordflow}{if} (default) \textcolor{keywordflow}{then}}
\DoxyCodeLine{171         mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//string\_true}
\DoxyCodeLine{172       \textcolor{keywordflow}{else}}
\DoxyCodeLine{173         mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//string\_false}
\DoxyCodeLine{174 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{175 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{176     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (like\_default) equalsdefault = .true. ;\textcolor{keywordflow}{ endif}}
\DoxyCodeLine{177 }
\DoxyCodeLine{178     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{179     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, \&}
\DoxyCodeLine{180                              layoutparam=layoutparam, debuggingparam=debuggingparam)}
\DoxyCodeLine{181 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a1e59592804280468052b124568e287c5}\label{interfacemom__document_1_1doc__param_a1e59592804280468052b124568e287c5}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_none@{doc\_param\_none}}
\index{doc\_param\_none@{doc\_param\_none}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_none()}{doc\_param\_none()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+none (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation with no value. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\end{DoxyParams}


Definition at line 64 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{64   \textcolor{keywordtype}{type}(doc\_type),   \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{65 \textcolor{comment}{                                          !! documentation occurs and its formatting}}
\DoxyCodeLine{66   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{67   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{68   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{69 \textcolor{comment}{! This subroutine handles parameter documentation with no value.}}
\DoxyCodeLine{70   \textcolor{keywordtype}{integer} :: numspc}
\DoxyCodeLine{71   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{72 }
\DoxyCodeLine{73   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{74   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{75 }
\DoxyCodeLine{76   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{77     numspc = max(1,doc\%commentColumn-8-len\_trim(varname))}
\DoxyCodeLine{78     mesg = \textcolor{stringliteral}{"\#define "}//trim(varname)//repeat(\textcolor{stringliteral}{" "},numspc)//\textcolor{stringliteral}{"!"}}
\DoxyCodeLine{79     \textcolor{keywordflow}{if} (len\_trim(units) > 0) mesg = trim(mesg)//\textcolor{stringliteral}{"   ["}//trim(units)//\textcolor{stringliteral}{"]"}}
\DoxyCodeLine{80 }
\DoxyCodeLine{81     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{82     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc)}
\DoxyCodeLine{83 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a5663dff9ddd3541819df971a85b12930}\label{interfacemom__document_1_1doc__param_a5663dff9ddd3541819df971a85b12930}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_real@{doc\_param\_real}}
\index{doc\_param\_real@{doc\_param\_real}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_real()}{doc\_param\_real()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+real (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{real, intent(in)}]{val,  }\item[{real, intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for reals. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em val} & The value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 271 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{271   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{272 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{273   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{274   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{275   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{276 \textcolor{keywordtype}{  real},              \textcolor{keywordtype}{intent(in)} :: val\textcolor{comment}{     !< The value of this parameter}}
\DoxyCodeLine{277 \textcolor{keywordtype}{  real},    \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{278   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{279   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{280 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{281 \textcolor{comment}{! This subroutine handles parameter documentation for reals.}}
\DoxyCodeLine{282   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{283   \textcolor{keywordtype}{character(len=doc\%commentColumn)}  :: valstring}
\DoxyCodeLine{284   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{285 }
\DoxyCodeLine{286   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{287   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{288 }
\DoxyCodeLine{289   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{290     valstring = real\_string(val)}
\DoxyCodeLine{291     mesg = define\_string(doc, varname, valstring, units)}
\DoxyCodeLine{292 }
\DoxyCodeLine{293     equalsdefault = .false.}
\DoxyCodeLine{294     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) equalsdefault = like\_default}
\DoxyCodeLine{295     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{296       \textcolor{keywordflow}{if} (val == default) equalsdefault = .true.}
\DoxyCodeLine{297       mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//trim(real\_string(default))}
\DoxyCodeLine{298 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{299 }
\DoxyCodeLine{300     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{301     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, debuggingparam=debuggingparam)}
\DoxyCodeLine{302 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a624b5bc989abdf7e8c3b3ee0de9cf2e0}\label{interfacemom__document_1_1doc__param_a624b5bc989abdf7e8c3b3ee0de9cf2e0}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_real\_array@{doc\_param\_real\_array}}
\index{doc\_param\_real\_array@{doc\_param\_real\_array}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_real\_array()}{doc\_param\_real\_array()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+real\+\_\+array (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{character(len=$\ast$), intent(in)}]{units,  }\item[{real, dimension(\+:), intent(in)}]{vals,  }\item[{real, intent(in), optional}]{default,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for arrays of reals. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em vals} & The array of values to record \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 307 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{307   \textcolor{keywordtype}{type}(doc\_type),    \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{308 \textcolor{comment}{                                           !! documentation occurs and its formatting}}
\DoxyCodeLine{309   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{310   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{311   \textcolor{keywordtype}{character(len=*)},  \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{312 \textcolor{keywordtype}{  real},              \textcolor{keywordtype}{intent(in)} :: vals(:)\textcolor{comment}{ !< The array of values to record}}
\DoxyCodeLine{313 \textcolor{keywordtype}{  real},    \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{314   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{315   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{316 \textcolor{comment}{                                           !! it has the default value, even if there is no default.}}
\DoxyCodeLine{317 \textcolor{comment}{! This subroutine handles parameter documentation for arrays of reals.}}
\DoxyCodeLine{318   \textcolor{keywordtype}{integer} :: i}
\DoxyCodeLine{319   \textcolor{keywordtype}{character(len=mLen)} :: mesg}
\DoxyCodeLine{320   \textcolor{keywordtype}{character(len=mLen)} :: valstring}
\DoxyCodeLine{321   \textcolor{keywordtype}{logical} :: equalsDefault}
\DoxyCodeLine{322 }
\DoxyCodeLine{323   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{324   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{325 }
\DoxyCodeLine{326   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{327     valstring = trim(real\_array\_string(vals(:)))}
\DoxyCodeLine{328 }
\DoxyCodeLine{329     mesg = define\_string(doc, varname, valstring, units)}
\DoxyCodeLine{330 }
\DoxyCodeLine{331     equalsdefault = .false.}
\DoxyCodeLine{332     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{333       equalsdefault = .true.}
\DoxyCodeLine{334       \textcolor{keywordflow}{do} i=1,\textcolor{keyword}{size}(vals) ; \textcolor{keywordflow}{if} (vals(i) /= default) equalsdefault = .false. ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{335       mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//trim(real\_string(default))}
\DoxyCodeLine{336 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{337     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) \textcolor{keywordflow}{then} ; \textcolor{keywordflow}{if} (like\_default) equalsdefault = .true. ;\textcolor{keywordflow}{ endif}}
\DoxyCodeLine{338 }
\DoxyCodeLine{339     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{340     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, debuggingparam=debuggingparam)}
\DoxyCodeLine{341 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{342 }

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__document_1_1doc__param_a4418c43edd8909f57ba27472cdf6382a}\label{interfacemom__document_1_1doc__param_a4418c43edd8909f57ba27472cdf6382a}} 
\index{mom\_document::doc\_param@{mom\_document::doc\_param}!doc\_param\_time@{doc\_param\_time}}
\index{doc\_param\_time@{doc\_param\_time}!mom\_document::doc\_param@{mom\_document::doc\_param}}
\subsubsection{\texorpdfstring{doc\_param\_time()}{doc\_param\_time()}}
{\footnotesize\ttfamily subroutine mom\+\_\+document\+::doc\+\_\+param\+::doc\+\_\+param\+\_\+time (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__document_1_1doc__type}{doc\+\_\+type}}), pointer}]{doc,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in)}]{desc,  }\item[{type(time\+\_\+type), intent(in)}]{val,  }\item[{type(time\+\_\+type), intent(in), optional}]{default,  }\item[{character(len=$\ast$), intent(in), optional}]{units,  }\item[{logical, intent(in), optional}]{debugging\+Param,  }\item[{logical, intent(in), optional}]{like\+\_\+default }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This subroutine handles parameter documentation for time-\/type variables. 


\begin{DoxyParams}[1]{Parameters}
 & {\em doc} & A pointer to a structure that controls where the documentation occurs and its formatting \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & The name of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em desc} & A description of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em val} & The value of the parameter \\
\hline
\mbox{\texttt{ in}}  & {\em default} & The default value of this parameter \\
\hline
\mbox{\texttt{ in}}  & {\em units} & The units of the parameter being documented \\
\hline
\mbox{\texttt{ in}}  & {\em debuggingparam} & If present and true, this is a debugging parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em like\+\_\+default} & If present and true, log this parameter as though it has the default value, even if there is no default. \\
\hline
\end{DoxyParams}


Definition at line 437 of file M\+O\+M\+\_\+document.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{437   \textcolor{keywordtype}{type}(doc\_type),   \textcolor{keywordtype}{pointer}    :: doc\textcolor{comment}{     !< A pointer to a structure that controls where the}}
\DoxyCodeLine{438 \textcolor{comment}{                                          !! documentation occurs and its formatting}}
\DoxyCodeLine{439   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{ !< The name of the parameter being documented}}
\DoxyCodeLine{440   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: desc\textcolor{comment}{    !< A description of the parameter being documented}}
\DoxyCodeLine{441   \textcolor{keywordtype}{type}(time\_type),  \textcolor{keywordtype}{intent(in)} :: val\textcolor{comment}{     !< The value of the parameter}}
\DoxyCodeLine{442   \textcolor{keywordtype}{type}(time\_type),  \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: default\textcolor{comment}{ !< The default value of this parameter}}
\DoxyCodeLine{443   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{   !< The units of the parameter being documented}}
\DoxyCodeLine{444   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: debuggingParam\textcolor{comment}{ !< If present and true, this is a debugging parameter.}}
\DoxyCodeLine{445   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: like\_default\textcolor{comment}{ !< If present and true, log this parameter as though}}
\DoxyCodeLine{446 \textcolor{comment}{                                             !! it has the default value, even if there is no default.}}
\DoxyCodeLine{447 }
\DoxyCodeLine{448   \textcolor{comment}{! Local varables}}
\DoxyCodeLine{449   \textcolor{keywordtype}{character(len=mLen)}              :: mesg          \textcolor{comment}{! The output message}}
\DoxyCodeLine{450   \textcolor{keywordtype}{character(len=doc\%commentColumn)} :: valstring     \textcolor{comment}{! A string with the formatted value.}}
\DoxyCodeLine{451   \textcolor{keywordtype}{logical}                          :: equalsDefault \textcolor{comment}{! True if val = default.}}
\DoxyCodeLine{452 }
\DoxyCodeLine{453   \textcolor{keywordflow}{if} (.not. (is\_root\_pe() .and. \textcolor{keyword}{associated}(doc))) \textcolor{keywordflow}{return}}
\DoxyCodeLine{454   \textcolor{keyword}{call }open\_doc\_file(doc)}
\DoxyCodeLine{455 }
\DoxyCodeLine{456   \textcolor{keywordflow}{if} (doc\%filesAreOpen) \textcolor{keywordflow}{then}}
\DoxyCodeLine{457     valstring = time\_string(val)}
\DoxyCodeLine{458     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(units)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{459       mesg = define\_string(doc, varname, valstring, units)}
\DoxyCodeLine{460     \textcolor{keywordflow}{else}}
\DoxyCodeLine{461       mesg = define\_string(doc, varname, valstring, \textcolor{stringliteral}{"[days : seconds]"})}
\DoxyCodeLine{462 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{463 }
\DoxyCodeLine{464     equalsdefault = .false.}
\DoxyCodeLine{465     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(like\_default)) equalsdefault = like\_default}
\DoxyCodeLine{466     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(default)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{467       \textcolor{keywordflow}{if} (val == default) equalsdefault = .true.}
\DoxyCodeLine{468       mesg = trim(mesg)//\textcolor{stringliteral}{" default = "}//trim(time\_string(default))}
\DoxyCodeLine{469 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{470 }
\DoxyCodeLine{471     \textcolor{keywordflow}{if} (mesghasbeendocumented(doc, varname, mesg)) \textcolor{keywordflow}{return} \textcolor{comment}{! Avoid duplicates}}
\DoxyCodeLine{472     \textcolor{keyword}{call }writemessageanddesc(doc, mesg, desc, equalsdefault, debuggingparam=debuggingparam)}
\DoxyCodeLine{473 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{474 }

\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\+\_\+document.\+F90\end{DoxyCompactItemize}
