\hypertarget{namespacemom__diag__manager__wrapper}{}\section{mom\+\_\+diag\+\_\+manager\+\_\+wrapper Module Reference}
\label{namespacemom__diag__manager__wrapper}\index{mom\_diag\_manager\_wrapper@{mom\_diag\_manager\_wrapper}}


\subsection{Detailed Description}
A simple (very thin) wrapper for register\+\_\+diag\+\_\+field to avoid a compiler bug with P\+GI. 

This module simply wraps register\+\_\+diag\+\_\+field() from F\+MS\textquotesingle{}s diag\+\_\+manager\+\_\+mod. We used to be able to import register\+\_\+diag\+\_\+field and rename it to \mbox{\hyperlink{interfacemom__diag__manager__wrapper_1_1register__diag__field__fms}{register\+\_\+diag\+\_\+field\+\_\+fms}} with a simple \char`\"{}use, only \+: register\+\_\+diag\+\_\+field\+\_\+fms =$>$ register\+\_\+diag\+\_\+field\char`\"{} but P\+GI 16.\+5 has a bug that refuses to compile this -\/ earlier versions did work. \subsection*{Data Types}
\begin{DoxyCompactItemize}
\item 
interface \mbox{\hyperlink{interfacemom__diag__manager__wrapper_1_1register__diag__field__fms}{register\+\_\+diag\+\_\+field\+\_\+fms}}
\begin{DoxyCompactList}\small\item\em A wrapper for register\+\_\+diag\+\_\+field\+\_\+array() \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
integer function \mbox{\hyperlink{namespacemom__diag__manager__wrapper_a05b438bad585ac920f4b58e2d988a973}{register\+\_\+diag\+\_\+field\+\_\+array\+\_\+fms}} (module\+\_\+name, field\+\_\+name, axes, init\+\_\+time, long\+\_\+name, units, missing\+\_\+value, range, mask\+\_\+variant, standard\+\_\+name, verbose, do\+\_\+not\+\_\+log, err\+\_\+msg, interp\+\_\+method, tile\+\_\+count, area, volume)
\begin{DoxyCompactList}\small\item\em An integer handle for a diagnostic array returned by register\+\_\+diag\+\_\+field() \end{DoxyCompactList}\item 
integer function \mbox{\hyperlink{namespacemom__diag__manager__wrapper_a14e622c83359a1fae0ffa541cd19a62e}{register\+\_\+diag\+\_\+field\+\_\+scalar\+\_\+fms}} (module\+\_\+name, field\+\_\+name, init\+\_\+time, long\+\_\+name, units, missing\+\_\+value, range, mask\+\_\+variant, standard\+\_\+name, verbose, do\+\_\+not\+\_\+log, err\+\_\+msg, interp\+\_\+method, tile\+\_\+count, area, volume)
\begin{DoxyCompactList}\small\item\em An integer handle for a diagnostic scalar array returned by register\+\_\+diag\+\_\+field() \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacemom__diag__manager__wrapper_a05b438bad585ac920f4b58e2d988a973}\label{namespacemom__diag__manager__wrapper_a05b438bad585ac920f4b58e2d988a973}} 
\index{mom\_diag\_manager\_wrapper@{mom\_diag\_manager\_wrapper}!register\_diag\_field\_array\_fms@{register\_diag\_field\_array\_fms}}
\index{register\_diag\_field\_array\_fms@{register\_diag\_field\_array\_fms}!mom\_diag\_manager\_wrapper@{mom\_diag\_manager\_wrapper}}
\subsubsection{\texorpdfstring{register\_diag\_field\_array\_fms()}{register\_diag\_field\_array\_fms()}}
{\footnotesize\ttfamily integer function mom\+\_\+diag\+\_\+manager\+\_\+wrapper\+::register\+\_\+diag\+\_\+field\+\_\+array\+\_\+fms (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{module\+\_\+name,  }\item[{character(len=$\ast$), intent(in)}]{field\+\_\+name,  }\item[{integer, dimension(\+:), intent(in)}]{axes,  }\item[{type(time\+\_\+type), intent(in)}]{init\+\_\+time,  }\item[{character(len=$\ast$), intent(in), optional}]{long\+\_\+name,  }\item[{character(len=$\ast$), intent(in), optional}]{units,  }\item[{real, intent(in), optional}]{missing\+\_\+value,  }\item[{real, dimension(2), intent(in), optional}]{range,  }\item[{logical, intent(in), optional}]{mask\+\_\+variant,  }\item[{character(len=$\ast$), intent(in), optional}]{standard\+\_\+name,  }\item[{logical, intent(in), optional}]{verbose,  }\item[{logical, intent(in), optional}]{do\+\_\+not\+\_\+log,  }\item[{character(len=$\ast$), intent(out), optional}]{err\+\_\+msg,  }\item[{character(len=$\ast$), intent(in), optional}]{interp\+\_\+method,  }\item[{integer, intent(in), optional}]{tile\+\_\+count,  }\item[{integer, intent(in), optional}]{area,  }\item[{integer, intent(in), optional}]{volume }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



An integer handle for a diagnostic array returned by register\+\_\+diag\+\_\+field() 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em module\+\_\+name} & Name of this module, usually \char`\"{}ocean\+\_\+model\char`\"{} or \char`\"{}ice\+\_\+shelf\+\_\+model\char`\"{} \\
\hline
\mbox{\texttt{ in}}  & {\em field\+\_\+name} & Name of the diagnostic field \\
\hline
\mbox{\texttt{ in}}  & {\em axes} & Container w/ up to 3 integer handles that indicates axes for this field \\
\hline
\mbox{\texttt{ in}}  & {\em init\+\_\+time} & Time at which a field is first available? \\
\hline
\mbox{\texttt{ in}}  & {\em long\+\_\+name} & Long name of a field. \\
\hline
\mbox{\texttt{ in}}  & {\em units} & Units of a field. \\
\hline
\mbox{\texttt{ in}}  & {\em standard\+\_\+name} & Standardized name associated with a field \\
\hline
\mbox{\texttt{ in}}  & {\em missing\+\_\+value} & A value that indicates missing values. \\
\hline
\mbox{\texttt{ in}}  & {\em range} & Valid range of a variable (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em mask\+\_\+variant} & If true a logical mask must be provided with post\+\_\+data calls (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em verbose} & If true, F\+MS is verbose (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em do\+\_\+not\+\_\+log} & If true, do not log something (not used in M\+OM?) \\
\hline
\mbox{\texttt{ out}}  & {\em err\+\_\+msg} & String into which an error message might be placed (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em interp\+\_\+method} & If \textquotesingle{}none\textquotesingle{} indicates the field should not be interpolated as a scalar \\
\hline
\mbox{\texttt{ in}}  & {\em tile\+\_\+count} & no clue (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em area} & The F\+MS id of cell area \\
\hline
\mbox{\texttt{ in}}  & {\em volume} & The F\+MS id of cell volume \\
\hline
\end{DoxyParams}


Definition at line 24 of file M\+O\+M\+\_\+diag\+\_\+manager\+\_\+wrapper.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{24   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: module\_name\textcolor{comment}{             !< Name of this module, usually "ocean\_model" or}}
\DoxyCodeLine{25 \textcolor{comment}{                                                          !! "ice\_shelf\_model"}}
\DoxyCodeLine{26   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: field\_name\textcolor{comment}{              !< Name of the diagnostic field}}
\DoxyCodeLine{27   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: axes(:)\textcolor{comment}{                 !< Container w/ up to 3 integer handles that}}
\DoxyCodeLine{28 \textcolor{comment}{                                                          !! indicates axes for this field}}
\DoxyCodeLine{29   \textcolor{keywordtype}{type}(time\_type),  \textcolor{keywordtype}{intent(in)} :: init\_time\textcolor{comment}{               !< Time at which a field is first available?}}
\DoxyCodeLine{30   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: long\_name\textcolor{comment}{     !< Long name of a field.}}
\DoxyCodeLine{31   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{         !< Units of a field.}}
\DoxyCodeLine{32   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: standard\_name\textcolor{comment}{ !< Standardized name associated with a field}}
\DoxyCodeLine{33 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: missing\_value\textcolor{comment}{ !< A value that indicates missing values.}}
\DoxyCodeLine{34 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: range(2)\textcolor{comment}{      !< Valid range of a variable (not used in MOM?)}}
\DoxyCodeLine{35   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: mask\_variant\textcolor{comment}{  !< If true a logical mask must be provided with}}
\DoxyCodeLine{36 \textcolor{comment}{                                                          !! post\_data calls (not used in MOM?)}}
\DoxyCodeLine{37   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: verbose\textcolor{comment}{       !< If true, FMS is verbose (not used in MOM?)}}
\DoxyCodeLine{38   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: do\_not\_log\textcolor{comment}{    !< If true, do not log something (not used in MOM?)}}
\DoxyCodeLine{39   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(out)}:: err\_msg\textcolor{comment}{       !< String into which an error message might be}}
\DoxyCodeLine{40 \textcolor{comment}{                                                          !! placed (not used in MOM?)}}
\DoxyCodeLine{41   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: interp\_method\textcolor{comment}{ !< If 'none' indicates the field should not be}}
\DoxyCodeLine{42 \textcolor{comment}{                                                          !! interpolated as a scalar}}
\DoxyCodeLine{43   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: tile\_count\textcolor{comment}{    !< no clue (not used in MOM?)}}
\DoxyCodeLine{44   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: area\textcolor{comment}{          !< The FMS id of cell area}}
\DoxyCodeLine{45   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: volume\textcolor{comment}{        !< The FMS id of cell volume}}
\DoxyCodeLine{46   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{47 }
\DoxyCodeLine{48   register\_diag\_field\_array\_fms = register\_diag\_field(module\_name, field\_name, axes,   \&}
\DoxyCodeLine{49              init\_time, long\_name=long\_name, units=units, missing\_value=missing\_value, \&}
\DoxyCodeLine{50              mask\_variant=mask\_variant, standard\_name=standard\_name,                   \&}
\DoxyCodeLine{51              verbose=verbose, do\_not\_log=do\_not\_log, err\_msg=err\_msg,                  \&}
\DoxyCodeLine{52              area=area, volume=volume, interp\_method=interp\_method)}
\DoxyCodeLine{53 }

\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__diag__manager__wrapper_a14e622c83359a1fae0ffa541cd19a62e}\label{namespacemom__diag__manager__wrapper_a14e622c83359a1fae0ffa541cd19a62e}} 
\index{mom\_diag\_manager\_wrapper@{mom\_diag\_manager\_wrapper}!register\_diag\_field\_scalar\_fms@{register\_diag\_field\_scalar\_fms}}
\index{register\_diag\_field\_scalar\_fms@{register\_diag\_field\_scalar\_fms}!mom\_diag\_manager\_wrapper@{mom\_diag\_manager\_wrapper}}
\subsubsection{\texorpdfstring{register\_diag\_field\_scalar\_fms()}{register\_diag\_field\_scalar\_fms()}}
{\footnotesize\ttfamily integer function mom\+\_\+diag\+\_\+manager\+\_\+wrapper\+::register\+\_\+diag\+\_\+field\+\_\+scalar\+\_\+fms (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{module\+\_\+name,  }\item[{character(len=$\ast$), intent(in)}]{field\+\_\+name,  }\item[{type(time\+\_\+type), intent(in)}]{init\+\_\+time,  }\item[{character(len=$\ast$), intent(in), optional}]{long\+\_\+name,  }\item[{character(len=$\ast$), intent(in), optional}]{units,  }\item[{real, intent(in), optional}]{missing\+\_\+value,  }\item[{real, dimension(2), intent(in), optional}]{range,  }\item[{logical, intent(in), optional}]{mask\+\_\+variant,  }\item[{character(len=$\ast$), intent(in), optional}]{standard\+\_\+name,  }\item[{logical, intent(in), optional}]{verbose,  }\item[{logical, intent(in), optional}]{do\+\_\+not\+\_\+log,  }\item[{character(len=$\ast$), intent(out), optional}]{err\+\_\+msg,  }\item[{character(len=$\ast$), intent(in), optional}]{interp\+\_\+method,  }\item[{integer, intent(in), optional}]{tile\+\_\+count,  }\item[{integer, intent(in), optional}]{area,  }\item[{integer, intent(in), optional}]{volume }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



An integer handle for a diagnostic scalar array returned by register\+\_\+diag\+\_\+field() 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em module\+\_\+name} & Name of this module, usually \char`\"{}ocean\+\_\+model\char`\"{} or \char`\"{}ice\+\_\+shelf\+\_\+model\char`\"{} \\
\hline
\mbox{\texttt{ in}}  & {\em field\+\_\+name} & Name of the diagnostic field \\
\hline
\mbox{\texttt{ in}}  & {\em init\+\_\+time} & Time at which a field is first available? \\
\hline
\mbox{\texttt{ in}}  & {\em long\+\_\+name} & Long name of a field. \\
\hline
\mbox{\texttt{ in}}  & {\em units} & Units of a field. \\
\hline
\mbox{\texttt{ in}}  & {\em standard\+\_\+name} & Standardized name associated with a field \\
\hline
\mbox{\texttt{ in}}  & {\em missing\+\_\+value} & A value that indicates missing values. \\
\hline
\mbox{\texttt{ in}}  & {\em range} & Valid range of a variable (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em mask\+\_\+variant} & If true a logical mask must be provided with post\+\_\+data calls (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em verbose} & If true, F\+MS is verbose (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em do\+\_\+not\+\_\+log} & If true, do not log something (not used in M\+OM?) \\
\hline
\mbox{\texttt{ out}}  & {\em err\+\_\+msg} & String into which an error message might be placed (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em interp\+\_\+method} & If \textquotesingle{}none\textquotesingle{} indicates the field should not be interpolated as a scalar \\
\hline
\mbox{\texttt{ in}}  & {\em tile\+\_\+count} & no clue (not used in M\+OM?) \\
\hline
\mbox{\texttt{ in}}  & {\em area} & The F\+MS id of cell area (not used for scalars) \\
\hline
\mbox{\texttt{ in}}  & {\em volume} & The F\+MS id of cell volume (not used for scalars) \\
\hline
\end{DoxyParams}


Definition at line 60 of file M\+O\+M\+\_\+diag\+\_\+manager\+\_\+wrapper.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{60   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: module\_name\textcolor{comment}{             !< Name of this module, usually "ocean\_model"}}
\DoxyCodeLine{61 \textcolor{comment}{                                                          !! or "ice\_shelf\_model"}}
\DoxyCodeLine{62   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: field\_name\textcolor{comment}{              !< Name of the diagnostic field}}
\DoxyCodeLine{63   \textcolor{keywordtype}{type}(time\_type),  \textcolor{keywordtype}{intent(in)} :: init\_time\textcolor{comment}{               !< Time at which a field is first available?}}
\DoxyCodeLine{64   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: long\_name\textcolor{comment}{     !< Long name of a field.}}
\DoxyCodeLine{65   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{         !< Units of a field.}}
\DoxyCodeLine{66   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: standard\_name\textcolor{comment}{ !< Standardized name associated with a field}}
\DoxyCodeLine{67 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: missing\_value\textcolor{comment}{ !< A value that indicates missing values.}}
\DoxyCodeLine{68 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: range(2)\textcolor{comment}{      !< Valid range of a variable (not used in MOM?)}}
\DoxyCodeLine{69   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: mask\_variant\textcolor{comment}{  !< If true a logical mask must be provided with}}
\DoxyCodeLine{70 \textcolor{comment}{                                                          !! post\_data calls (not used in MOM?)}}
\DoxyCodeLine{71   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: verbose\textcolor{comment}{       !< If true, FMS is verbose (not used in MOM?)}}
\DoxyCodeLine{72   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: do\_not\_log\textcolor{comment}{    !< If true, do not log something (not used in MOM?)}}
\DoxyCodeLine{73   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(out)}:: err\_msg\textcolor{comment}{       !< String into which an error message might}}
\DoxyCodeLine{74 \textcolor{comment}{                                                          !! be placed (not used in MOM?)}}
\DoxyCodeLine{75   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: interp\_method\textcolor{comment}{ !< If 'none' indicates the field should not}}
\DoxyCodeLine{76 \textcolor{comment}{                                                          !! be interpolated as a scalar}}
\DoxyCodeLine{77   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: tile\_count\textcolor{comment}{    !< no clue (not used in MOM?)}}
\DoxyCodeLine{78   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: area\textcolor{comment}{          !< The FMS id of cell area (not used for scalars)}}
\DoxyCodeLine{79   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: volume\textcolor{comment}{        !< The FMS id of cell volume (not used for scalars)}}
\DoxyCodeLine{80   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{81 }
\DoxyCodeLine{82   register\_diag\_field\_scalar\_fms = register\_diag\_field(module\_name, field\_name,        \&}
\DoxyCodeLine{83              init\_time, long\_name=long\_name, units=units, missing\_value=missing\_value, \&}
\DoxyCodeLine{84              standard\_name=standard\_name, do\_not\_log=do\_not\_log, err\_msg=err\_msg)}
\DoxyCodeLine{85 }

\end{DoxyCode}
