\hypertarget{namespacemom__transform__fms}{}\doxysection{mom\+\_\+transform\+\_\+fms Module Reference}
\label{namespacemom__transform__fms}\index{mom\_transform\_fms@{mom\_transform\_fms}}


\doxysubsection{Detailed Description}
Support functions and interfaces to permit transformed model domains to interact with F\+MS operations registered on the non-\/transformed domains. \doxysubsection*{Data Types}
\begin{DoxyCompactItemize}
\item 
interface \mbox{\hyperlink{interfacemom__transform__fms_1_1rotated__mpp__chksum}{rotated\+\_\+mpp\+\_\+chksum}}
\begin{DoxyCompactList}\small\item\em Rotate and compute the F\+MS (mpp) checksum of a field. \end{DoxyCompactList}\item 
interface \mbox{\hyperlink{interfacemom__transform__fms_1_1rotated__time__interp__external}{rotated\+\_\+time\+\_\+interp\+\_\+external}}
\begin{DoxyCompactList}\small\item\em Read a field based on model time, and rotate to the model domain. \end{DoxyCompactList}\item 
interface \mbox{\hyperlink{interfacemom__transform__fms_1_1rotated__write__field}{rotated\+\_\+write\+\_\+field}}
\begin{DoxyCompactList}\small\item\em Rotate and write a registered field to an F\+MS output file. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespacemom__transform__fms_af2a926d5cc524276b429fa4156be89d8}\label{namespacemom__transform__fms_af2a926d5cc524276b429fa4156be89d8}} 
integer function \mbox{\hyperlink{namespacemom__transform__fms_af2a926d5cc524276b429fa4156be89d8}{rotated\+\_\+mpp\+\_\+chksum\+\_\+real\+\_\+0d}} (field, pelist, mask\+\_\+val, turns)
\begin{DoxyCompactList}\small\item\em Compute the F\+MS (mpp) checksum of a scalar. This function is provided to support the full F\+MS mpp\+\_\+chksum interface. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a79f9c2d49563712b519f914dc822c78f}\label{namespacemom__transform__fms_a79f9c2d49563712b519f914dc822c78f}} 
integer function \mbox{\hyperlink{namespacemom__transform__fms_a79f9c2d49563712b519f914dc822c78f}{rotated\+\_\+mpp\+\_\+chksum\+\_\+real\+\_\+1d}} (field, pelist, mask\+\_\+val, turns)
\begin{DoxyCompactList}\small\item\em Compute the F\+MS (mpp) checksum of a 1d field. This function is provided to support the full F\+MS mpp\+\_\+chksum interface. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_aa0a52d3a9741060b7f48b0132bd0b4b4}\label{namespacemom__transform__fms_aa0a52d3a9741060b7f48b0132bd0b4b4}} 
integer function \mbox{\hyperlink{namespacemom__transform__fms_aa0a52d3a9741060b7f48b0132bd0b4b4}{rotated\+\_\+mpp\+\_\+chksum\+\_\+real\+\_\+2d}} (field, pelist, mask\+\_\+val, turns)
\begin{DoxyCompactList}\small\item\em Compute the F\+MS (mpp) checksum of a rotated 2d field. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a39eeef843db8a28b66344bd1ebcab5c9}\label{namespacemom__transform__fms_a39eeef843db8a28b66344bd1ebcab5c9}} 
integer function \mbox{\hyperlink{namespacemom__transform__fms_a39eeef843db8a28b66344bd1ebcab5c9}{rotated\+\_\+mpp\+\_\+chksum\+\_\+real\+\_\+3d}} (field, pelist, mask\+\_\+val, turns)
\begin{DoxyCompactList}\small\item\em Compute the F\+MS (mpp) checksum of a rotated 3d field. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_ae465486bda33da51b35b16159c026801}\label{namespacemom__transform__fms_ae465486bda33da51b35b16159c026801}} 
integer function \mbox{\hyperlink{namespacemom__transform__fms_ae465486bda33da51b35b16159c026801}{rotated\+\_\+mpp\+\_\+chksum\+\_\+real\+\_\+4d}} (field, pelist, mask\+\_\+val, turns)
\begin{DoxyCompactList}\small\item\em Compute the F\+MS (mpp) checksum of a rotated 4d field. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a8ce2dcf42b708c710ae299cd916003a2}\label{namespacemom__transform__fms_a8ce2dcf42b708c710ae299cd916003a2}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_a8ce2dcf42b708c710ae299cd916003a2}{rotated\+\_\+write\+\_\+field\+\_\+real\+\_\+0d}} (io\+\_\+unit, field\+\_\+md, field, tstamp, turns)
\begin{DoxyCompactList}\small\item\em Write the rotation of a 1d field to an F\+MS output file This function is provided to support the full F\+MS write\+\_\+field interface. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_af475c9465236babeedb84a703a0a65e6}\label{namespacemom__transform__fms_af475c9465236babeedb84a703a0a65e6}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_af475c9465236babeedb84a703a0a65e6}{rotated\+\_\+write\+\_\+field\+\_\+real\+\_\+1d}} (io\+\_\+unit, field\+\_\+md, field, tstamp, turns)
\begin{DoxyCompactList}\small\item\em Write the rotation of a 1d field to an F\+MS output file This function is provided to support the full F\+MS write\+\_\+field interface. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a8faa32cfee12ceeeeed48c5f7feafe11}\label{namespacemom__transform__fms_a8faa32cfee12ceeeeed48c5f7feafe11}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_a8faa32cfee12ceeeeed48c5f7feafe11}{rotated\+\_\+write\+\_\+field\+\_\+real\+\_\+2d}} (io\+\_\+unit, field\+\_\+md, domain, field, tstamp, tile\+\_\+count, default\+\_\+data, turns)
\begin{DoxyCompactList}\small\item\em Write the rotation of a 2d field to an F\+MS output file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a77136bafb407a14836b5c0dd3a379eac}\label{namespacemom__transform__fms_a77136bafb407a14836b5c0dd3a379eac}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_a77136bafb407a14836b5c0dd3a379eac}{rotated\+\_\+write\+\_\+field\+\_\+real\+\_\+3d}} (io\+\_\+unit, field\+\_\+md, domain, field, tstamp, tile\+\_\+count, default\+\_\+data, turns)
\begin{DoxyCompactList}\small\item\em Write the rotation of a 3d field to an F\+MS output file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_aa5379a4ba4767f7c616d110d210c76e2}\label{namespacemom__transform__fms_aa5379a4ba4767f7c616d110d210c76e2}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_aa5379a4ba4767f7c616d110d210c76e2}{rotated\+\_\+write\+\_\+field\+\_\+real\+\_\+4d}} (io\+\_\+unit, field\+\_\+md, domain, field, tstamp, tile\+\_\+count, default\+\_\+data, turns)
\begin{DoxyCompactList}\small\item\em Write the rotation of a 4d field to an F\+MS output file. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_acbcce06da1a4e4899ce3a05b1955bbda}{rotated\+\_\+time\+\_\+interp\+\_\+external\+\_\+0d}} (fms\+\_\+id, time, data\+\_\+in, verbose, turns)
\begin{DoxyCompactList}\small\item\em Read a scalar field based on model time This function is provided to support the full F\+MS time\+\_\+interp\+\_\+external interface. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a71c1e653207f1f1332578266cd2bf624}\label{namespacemom__transform__fms_a71c1e653207f1f1332578266cd2bf624}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_a71c1e653207f1f1332578266cd2bf624}{rotated\+\_\+time\+\_\+interp\+\_\+external\+\_\+2d}} (fms\+\_\+id, time, data\+\_\+in, interp, verbose, horz\+\_\+interp, mask\+\_\+out, is\+\_\+in, ie\+\_\+in, js\+\_\+in, je\+\_\+in, window\+\_\+id, turns)
\begin{DoxyCompactList}\small\item\em Read a 2d field based on model time, and rotate to the model grid. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacemom__transform__fms_a1599edc1aeed5a2ce7df0f953c2dda0e}\label{namespacemom__transform__fms_a1599edc1aeed5a2ce7df0f953c2dda0e}} 
subroutine \mbox{\hyperlink{namespacemom__transform__fms_a1599edc1aeed5a2ce7df0f953c2dda0e}{rotated\+\_\+time\+\_\+interp\+\_\+external\+\_\+3d}} (fms\+\_\+id, time, data\+\_\+in, interp, verbose, horz\+\_\+interp, mask\+\_\+out, is\+\_\+in, ie\+\_\+in, js\+\_\+in, je\+\_\+in, window\+\_\+id, turns)
\begin{DoxyCompactList}\small\item\em Read a 3d field based on model time, and rotate to the model grid. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacemom__transform__fms_acbcce06da1a4e4899ce3a05b1955bbda}\label{namespacemom__transform__fms_acbcce06da1a4e4899ce3a05b1955bbda}} 
\index{mom\_transform\_fms@{mom\_transform\_fms}!rotated\_time\_interp\_external\_0d@{rotated\_time\_interp\_external\_0d}}
\index{rotated\_time\_interp\_external\_0d@{rotated\_time\_interp\_external\_0d}!mom\_transform\_fms@{mom\_transform\_fms}}
\doxysubsubsection{\texorpdfstring{rotated\_time\_interp\_external\_0d()}{rotated\_time\_interp\_external\_0d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+transform\+\_\+fms\+::rotated\+\_\+time\+\_\+interp\+\_\+external\+\_\+0d (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{fms\+\_\+id,  }\item[{type(time\+\_\+type), intent(in)}]{time,  }\item[{real, intent(inout)}]{data\+\_\+in,  }\item[{logical, intent(in), optional}]{verbose,  }\item[{integer, intent(in), optional}]{turns }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Read a scalar field based on model time This function is provided to support the full F\+MS time\+\_\+interp\+\_\+external interface. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fms\+\_\+id} & F\+MS field ID \\
\hline
\mbox{\texttt{ in}}  & {\em time} & Model time \\
\hline
\mbox{\texttt{ in,out}}  & {\em data\+\_\+in} & field to write data \\
\hline
\mbox{\texttt{ in}}  & {\em verbose} & Verbose output \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\end{DoxyParams}


Definition at line 307 of file M\+O\+M\+\_\+transform\+\_\+\+F\+M\+S.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{307   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: fms\_id\textcolor{comment}{                   !< FMS field ID}}
\DoxyCodeLine{308   \textcolor{keywordtype}{type}(time\_type), \textcolor{keywordtype}{intent(in)} :: time\textcolor{comment}{             !< Model time}}
\DoxyCodeLine{309 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(inout)} :: data\_in\textcolor{comment}{  !< field to write data}}
\DoxyCodeLine{310   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: verbose\textcolor{comment}{        !< Verbose output}}
\DoxyCodeLine{311   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: turns\textcolor{comment}{          !< Number of quarter turns}}
\DoxyCodeLine{312 }
\DoxyCodeLine{313   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(turns)) \&}
\DoxyCodeLine{314     \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"Rotation not supported for 0d fields."})}
\DoxyCodeLine{315 }
\DoxyCodeLine{316   \textcolor{keyword}{call }time\_interp\_external(fms\_id, time, data\_in, verbose=verbose)}

\end{DoxyCode}
