\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{\tt in}  & {\em module\+\_\+name} & Name of this module, usually \char`\"{}ocean\+\_\+model\char`\"{} or \char`\"{}ice\+\_\+shelf\+\_\+model\char`\"{}\\
\hline
\mbox{\tt in}  & {\em field\+\_\+name} & Name of the diagnostic field\\
\hline
\mbox{\tt in}  & {\em axes} & Container w/ up to 3 integer handles that indicates axes for this field\\
\hline
\mbox{\tt in}  & {\em init\+\_\+time} & Time at which a field is first available?\\
\hline
\mbox{\tt in}  & {\em long\+\_\+name} & Long name of a field.\\
\hline
\mbox{\tt in}  & {\em units} & Units of a field.\\
\hline
\mbox{\tt in}  & {\em standard\+\_\+name} & Standardized name associated with a field\\
\hline
\mbox{\tt in}  & {\em missing\+\_\+value} & A value that indicates missing values.\\
\hline
\mbox{\tt in}  & {\em range} & Valid range of a variable (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em mask\+\_\+variant} & If true a logical mask must be provided with post\+\_\+data calls (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em verbose} & If true, F\+MS is verbose (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em do\+\_\+not\+\_\+log} & If true, do not log something (not used in M\+OM?)\\
\hline
\mbox{\tt out}  & {\em err\+\_\+msg} & String into which an error message might be placed (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em interp\+\_\+method} & If \textquotesingle{}none\textquotesingle{} indicates the field should not be interpolated as a scalar\\
\hline
\mbox{\tt in}  & {\em tile\+\_\+count} & no clue (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em area} & The F\+MS id of cell area\\
\hline
\mbox{\tt 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}
24   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: module\_name\textcolor{comment}{             !< Name of this module, usually "ocean\_model" or}
25 \textcolor{comment}{                                                          !! "ice\_shelf\_model"}
26   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: field\_name\textcolor{comment}{              !< Name of the diagnostic field}
27   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: axes(:)\textcolor{comment}{                 !< Container w/ up to 3 integer handles that}
28 \textcolor{comment}{                                                          !! indicates axes for this field}
29   \textcolor{keywordtype}{type}(time\_type),  \textcolor{keywordtype}{intent(in)} :: init\_time\textcolor{comment}{               !< Time at which a field is first available?}
30   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: long\_name\textcolor{comment}{     !< Long name of a field.}
31   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{         !< Units of a field.}
32   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: standard\_name\textcolor{comment}{ !< Standardized name associated with a field}
33   \textcolor{keywordtype}{real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: missing\_value\textcolor{comment}{ !< A value that indicates missing values.}
34   \textcolor{keywordtype}{real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: range(2)\textcolor{comment}{      !< Valid range of a variable (not used in MOM?)}
35   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: mask\_variant\textcolor{comment}{  !< If true a logical mask must be provided with}
36 \textcolor{comment}{                                                          !! post\_data calls (not used in MOM?)}
37   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: verbose\textcolor{comment}{       !< If true, FMS is verbose (not used in MOM?)}
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?)}
39   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(out)}:: err\_msg\textcolor{comment}{       !< String into which an error message might be}
40 \textcolor{comment}{                                                          !! placed (not used in MOM?)}
41   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: interp\_method\textcolor{comment}{ !< If 'none' indicates the field should not be}
42 \textcolor{comment}{                                                          !! interpolated as a scalar}
43   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: tile\_count\textcolor{comment}{    !< no clue (not used in MOM?)}
44   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: area\textcolor{comment}{          !< The FMS id of cell area}
45   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: volume\textcolor{comment}{        !< The FMS id of cell volume}
46   \textcolor{comment}{! Local variables}
47 
48   register\_diag\_field\_array\_fms = register\_diag\_field(module\_name, field\_name, axes,   &
49              init\_time, long\_name=long\_name, units=units, missing\_value=missing\_value, &
50              mask\_variant=mask\_variant, standard\_name=standard\_name,                   &
51              verbose=verbose, do\_not\_log=do\_not\_log, err\_msg=err\_msg,                  &
52              area=area, volume=volume, interp\_method=interp\_method)
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{\tt in}  & {\em module\+\_\+name} & Name of this module, usually \char`\"{}ocean\+\_\+model\char`\"{} or \char`\"{}ice\+\_\+shelf\+\_\+model\char`\"{}\\
\hline
\mbox{\tt in}  & {\em field\+\_\+name} & Name of the diagnostic field\\
\hline
\mbox{\tt in}  & {\em init\+\_\+time} & Time at which a field is first available?\\
\hline
\mbox{\tt in}  & {\em long\+\_\+name} & Long name of a field.\\
\hline
\mbox{\tt in}  & {\em units} & Units of a field.\\
\hline
\mbox{\tt in}  & {\em standard\+\_\+name} & Standardized name associated with a field\\
\hline
\mbox{\tt in}  & {\em missing\+\_\+value} & A value that indicates missing values.\\
\hline
\mbox{\tt in}  & {\em range} & Valid range of a variable (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em mask\+\_\+variant} & If true a logical mask must be provided with post\+\_\+data calls (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em verbose} & If true, F\+MS is verbose (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em do\+\_\+not\+\_\+log} & If true, do not log something (not used in M\+OM?)\\
\hline
\mbox{\tt out}  & {\em err\+\_\+msg} & String into which an error message might be placed (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em interp\+\_\+method} & If \textquotesingle{}none\textquotesingle{} indicates the field should not be interpolated as a scalar\\
\hline
\mbox{\tt in}  & {\em tile\+\_\+count} & no clue (not used in M\+OM?)\\
\hline
\mbox{\tt in}  & {\em area} & The F\+MS id of cell area (not used for scalars)\\
\hline
\mbox{\tt 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}
60   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: module\_name\textcolor{comment}{             !< Name of this module, usually "ocean\_model"}
61 \textcolor{comment}{                                                          !! or "ice\_shelf\_model"}
62   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: field\_name\textcolor{comment}{              !< Name of the diagnostic field}
63   \textcolor{keywordtype}{type}(time\_type),  \textcolor{keywordtype}{intent(in)} :: init\_time\textcolor{comment}{               !< Time at which a field is first available?}
64   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: long\_name\textcolor{comment}{     !< Long name of a field.}
65   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: units\textcolor{comment}{         !< Units of a field.}
66   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: standard\_name\textcolor{comment}{ !< Standardized name associated with a field}
67   \textcolor{keywordtype}{real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: missing\_value\textcolor{comment}{ !< A value that indicates missing values.}
68   \textcolor{keywordtype}{real},             \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: range(2)\textcolor{comment}{      !< Valid range of a variable (not used in MOM?)}
69   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: mask\_variant\textcolor{comment}{  !< If true a logical mask must be provided with}
70 \textcolor{comment}{                                                          !! post\_data calls (not used in MOM?)}
71   \textcolor{keywordtype}{logical},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: verbose\textcolor{comment}{       !< If true, FMS is verbose (not used in MOM?)}
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?)}
73   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(out)}:: err\_msg\textcolor{comment}{       !< String into which an error message might}
74 \textcolor{comment}{                                                          !! be placed (not used in MOM?)}
75   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: interp\_method\textcolor{comment}{ !< If 'none' indicates the field should not}
76 \textcolor{comment}{                                                          !! be interpolated as a scalar}
77   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: tile\_count\textcolor{comment}{    !< no clue (not used in MOM?)}
78   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: area\textcolor{comment}{          !< The FMS id of cell area (not used for scalars)}
79   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: volume\textcolor{comment}{        !< The FMS id of cell volume (not used for
       scalars)}
80   \textcolor{comment}{! Local variables}
81 
82   register\_diag\_field\_scalar\_fms = register\_diag\_field(module\_name, field\_name,        &
83              init\_time, long\_name=long\_name, units=units, missing\_value=missing\_value, &
84              standard\_name=standard\_name, do\_not\_log=do\_not\_log, err\_msg=err\_msg)
85 
\end{DoxyCode}
