\hypertarget{interfacemom__checksum__packages_1_1mom__state__chksum}{}\doxysection{mom\+\_\+checksum\+\_\+packages\+::mom\+\_\+state\+\_\+chksum Interface Reference}
\label{interfacemom__checksum__packages_1_1mom__state__chksum}\index{mom\_checksum\_packages::mom\_state\_chksum@{mom\_checksum\_packages::mom\_state\_chksum}}


\doxysubsection{Detailed Description}
Write out checksums of the M\+O\+M6 state variables. 

Definition at line 23 of file M\+O\+M\+\_\+checksum\+\_\+packages.\+F90.

\doxysubsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfacemom__checksum__packages_1_1mom__state__chksum_a5a3f0a3be81eeea835f9344256534ba1}{mom\+\_\+state\+\_\+chksum\+\_\+5arg}} (mesg, u, v, h, uh, vh, G, GV, US, haloshift, symmetric, vel\+\_\+scale)
\begin{DoxyCompactList}\small\item\em Write out chksums for the model\textquotesingle{}s basic state variables, including transports. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__checksum__packages_1_1mom__state__chksum_aeed57bfb1b13b7cd6bf9a974cdcaf78e}{mom\+\_\+state\+\_\+chksum\+\_\+3arg}} (mesg, u, v, h, G, GV, US, haloshift, symmetric)
\begin{DoxyCompactList}\small\item\em Write out chksums for the model\textquotesingle{}s basic state variables. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Write out checksums of the M\+O\+M6 state variables. 

Definition at line 23 of file M\+O\+M\+\_\+checksum\+\_\+packages.\+F90.



\doxysubsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__checksum__packages_1_1mom__state__chksum_aeed57bfb1b13b7cd6bf9a974cdcaf78e}\label{interfacemom__checksum__packages_1_1mom__state__chksum_aeed57bfb1b13b7cd6bf9a974cdcaf78e}} 
\index{mom\_checksum\_packages::mom\_state\_chksum@{mom\_checksum\_packages::mom\_state\_chksum}!mom\_state\_chksum\_3arg@{mom\_state\_chksum\_3arg}}
\index{mom\_state\_chksum\_3arg@{mom\_state\_chksum\_3arg}!mom\_checksum\_packages::mom\_state\_chksum@{mom\_checksum\_packages::mom\_state\_chksum}}
\doxysubsubsection{\texorpdfstring{mom\_state\_chksum\_3arg()}{mom\_state\_chksum\_3arg()}}
{\footnotesize\ttfamily subroutine mom\+\_\+checksum\+\_\+packages\+::mom\+\_\+state\+\_\+chksum\+::mom\+\_\+state\+\_\+chksum\+\_\+3arg (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{real, dimension( g \%isdb\+: g \%iedb, g \%jsd\+: g \%jed, g \%ke), intent(in)}]{u,  }\item[{real, dimension( g \%isd\+: g \%ied, g \%jsdb\+: g \%jedb, g \%ke), intent(in)}]{v,  }\item[{real, dimension( g \%isd\+: g \%ied, g \%jsd\+: g \%jed, g \%ke), intent(in)}]{h,  }\item[{type(\mbox{\hyperlink{structmom__grid_1_1ocean__grid__type}{ocean\+\_\+grid\+\_\+type}}), intent(in)}]{G,  }\item[{type(\mbox{\hyperlink{structmom__verticalgrid_1_1verticalgrid__type}{verticalgrid\+\_\+type}}), intent(in)}]{GV,  }\item[{type(\mbox{\hyperlink{structmom__unit__scaling_1_1unit__scale__type}{unit\+\_\+scale\+\_\+type}}), intent(in), optional}]{US,  }\item[{integer, intent(in), optional}]{haloshift,  }\item[{logical, intent(in), optional}]{symmetric }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write out chksums for the model\textquotesingle{}s basic state variables. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mesg} & A message that appears on the chksum lines. \\
\hline
\mbox{\texttt{ in}}  & {\em g} & The ocean\textquotesingle{}s grid structure. \\
\hline
\mbox{\texttt{ in}}  & {\em gv} & The ocean\textquotesingle{}s vertical grid structure. \\
\hline
\mbox{\texttt{ in}}  & {\em u} & Zonal velocity \mbox{[}L T-\/1 $\sim$$>$ m s-\/1\mbox{]} or \mbox{[}m s-\/1\mbox{]}. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & Meridional velocity \mbox{[}L T-\/1 $\sim$$>$ m s-\/1\mbox{]} or \mbox{[}m s-\/1\mbox{]}.. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & Layer thicknesses \mbox{[}H $\sim$$>$ m or kg m-\/2\mbox{]}. \\
\hline
\mbox{\texttt{ in}}  & {\em us} & A dimensional unit scaling type, which is used to rescale u and v if present. \\
\hline
\mbox{\texttt{ in}}  & {\em haloshift} & The width of halos to check (default 0). \\
\hline
\mbox{\texttt{ in}}  & {\em symmetric} & If true, do checksums on the fully symmetric computational domain. \\
\hline
\end{DoxyParams}


Definition at line 86 of file M\+O\+M\+\_\+checksum\+\_\+packages.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{87   \textcolor{keywordtype}{character(len=*)},                \textcolor{keywordtype}{intent(in)} :: mesg\textcolor{comment}{ !< A message that appears on the chksum lines.}}
\DoxyCodeLine{88   \textcolor{keywordtype}{type}(ocean\_grid\_type),           \textcolor{keywordtype}{intent(in)} :: G\textcolor{comment}{  !< The ocean's grid structure.}}
\DoxyCodeLine{89   \textcolor{keywordtype}{type}(verticalGrid\_type),         \textcolor{keywordtype}{intent(in)} :: GV\textcolor{comment}{ !< The ocean's vertical grid structure.}}
\DoxyCodeLine{90 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZIB\_(G),SZJ\_(G),SZK\_(G))}, \&}
\DoxyCodeLine{91                                    \textcolor{keywordtype}{intent(in)} :: u\textcolor{comment}{  !< Zonal velocity [L T-\/1 \string~> m s-\/1] or [m s-\/1].}}
\DoxyCodeLine{92 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZI\_(G),SZJB\_(G),SZK\_(G))}, \&}
\DoxyCodeLine{93                                    \textcolor{keywordtype}{intent(in)} :: v\textcolor{comment}{  !< Meridional velocity [L T-\/1 \string~> m s-\/1] or [m s-\/1]..}}
\DoxyCodeLine{94 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZI\_(G),SZJ\_(G),SZK\_(G))},  \&}
\DoxyCodeLine{95                                    \textcolor{keywordtype}{intent(in)} :: h\textcolor{comment}{  !< Layer thicknesses [H \string~> m or kg m-\/2].}}
\DoxyCodeLine{96   \textcolor{keywordtype}{type}(unit\_scale\_type), \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: US\textcolor{comment}{ !< A dimensional unit scaling type, which is}}
\DoxyCodeLine{97 \textcolor{comment}{                                                    !! used to rescale u and v if present.}}
\DoxyCodeLine{98   \textcolor{keywordtype}{integer},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: haloshift\textcolor{comment}{ !< The width of halos to check (default 0).}}
\DoxyCodeLine{99   \textcolor{keywordtype}{logical},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: symmetric\textcolor{comment}{ !< If true, do checksums on the fully}}
\DoxyCodeLine{100 \textcolor{comment}{                                                    !! symmetric computational domain.}}
\DoxyCodeLine{101 \textcolor{keywordtype}{  real} :: L\_T\_to\_m\_s \textcolor{comment}{! A rescaling factor for velocities [m T s-\/1 L-\/1 \string~> nondim] or [nondim]}}
\DoxyCodeLine{102   \textcolor{keywordtype}{integer} :: is, ie, js, je, nz, hs}
\DoxyCodeLine{103   \textcolor{keywordtype}{logical} :: sym}
\DoxyCodeLine{104 }
\DoxyCodeLine{105   is = g\%isc ; ie = g\%iec ; js = g\%jsc ; je = g\%jec ; nz = g\%ke}
\DoxyCodeLine{106   l\_t\_to\_m\_s = 1.0 ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(us)) l\_t\_to\_m\_s = us\%L\_T\_to\_m\_s}
\DoxyCodeLine{107 }
\DoxyCodeLine{108   \textcolor{comment}{! Note that for the chksum calls to be useful for reproducing across PE}}
\DoxyCodeLine{109   \textcolor{comment}{! counts, there must be no redundant points, so all variables use is..ie}}
\DoxyCodeLine{110   \textcolor{comment}{! and js...je as their extent.}}
\DoxyCodeLine{111   hs=1; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(haloshift)) hs=haloshift}
\DoxyCodeLine{112   sym=.false.; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(symmetric)) sym=symmetric}
\DoxyCodeLine{113   \textcolor{keyword}{call }uvchksum(mesg//\textcolor{stringliteral}{"{} u"{}}, u, v, g\%HI, haloshift=hs, symmetric=sym, scale=l\_t\_to\_m\_s)}
\DoxyCodeLine{114   \textcolor{keyword}{call }hchksum(h, mesg//\textcolor{stringliteral}{"{} h"{}},g\%HI, haloshift=hs, scale=gv\%H\_to\_m)}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksum__packages_1_1mom__state__chksum_a5a3f0a3be81eeea835f9344256534ba1}\label{interfacemom__checksum__packages_1_1mom__state__chksum_a5a3f0a3be81eeea835f9344256534ba1}} 
\index{mom\_checksum\_packages::mom\_state\_chksum@{mom\_checksum\_packages::mom\_state\_chksum}!mom\_state\_chksum\_5arg@{mom\_state\_chksum\_5arg}}
\index{mom\_state\_chksum\_5arg@{mom\_state\_chksum\_5arg}!mom\_checksum\_packages::mom\_state\_chksum@{mom\_checksum\_packages::mom\_state\_chksum}}
\doxysubsubsection{\texorpdfstring{mom\_state\_chksum\_5arg()}{mom\_state\_chksum\_5arg()}}
{\footnotesize\ttfamily subroutine mom\+\_\+checksum\+\_\+packages\+::mom\+\_\+state\+\_\+chksum\+::mom\+\_\+state\+\_\+chksum\+\_\+5arg (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{real, dimension(szib\+\_\+(g),szj\+\_\+(g),szk\+\_\+(g)), intent(in)}]{u,  }\item[{real, dimension(szi\+\_\+(g),szjb\+\_\+(g),szk\+\_\+(g)), intent(in)}]{v,  }\item[{real, dimension(szi\+\_\+(g),szj\+\_\+(g),szk\+\_\+(g)), intent(in)}]{h,  }\item[{real, dimension(szib\+\_\+(g),szj\+\_\+(g),szk\+\_\+(g)), intent(in)}]{uh,  }\item[{real, dimension(szi\+\_\+(g),szjb\+\_\+(g),szk\+\_\+(g)), intent(in)}]{vh,  }\item[{type(\mbox{\hyperlink{structmom__grid_1_1ocean__grid__type}{ocean\+\_\+grid\+\_\+type}}), intent(in)}]{G,  }\item[{type(\mbox{\hyperlink{structmom__verticalgrid_1_1verticalgrid__type}{verticalgrid\+\_\+type}}), intent(in)}]{GV,  }\item[{type(\mbox{\hyperlink{structmom__unit__scaling_1_1unit__scale__type}{unit\+\_\+scale\+\_\+type}}), intent(in)}]{US,  }\item[{integer, intent(in), optional}]{haloshift,  }\item[{logical, intent(in), optional}]{symmetric,  }\item[{real, intent(in), optional}]{vel\+\_\+scale }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write out chksums for the model\textquotesingle{}s basic state variables, including transports. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mesg} & A message that appears on the chksum lines. \\
\hline
\mbox{\texttt{ in}}  & {\em g} & The ocean\textquotesingle{}s grid structure. \\
\hline
\mbox{\texttt{ in}}  & {\em gv} & The ocean\textquotesingle{}s vertical grid structure. \\
\hline
\mbox{\texttt{ in}}  & {\em u} & The zonal velocity \mbox{[}L T-\/1 $\sim$$>$ m s-\/1\mbox{]} or other units. \\
\hline
\mbox{\texttt{ in}}  & {\em v} & The meridional velocity \mbox{[}L T-\/1 $\sim$$>$ m s-\/1\mbox{]} or other units. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & Layer thicknesses \mbox{[}H $\sim$$>$ m or kg m-\/2\mbox{]}. \\
\hline
\mbox{\texttt{ in}}  & {\em uh} & Volume flux through zonal faces = u$\ast$h$\ast$dy \\
\hline
\mbox{\texttt{ in}}  & {\em vh} & Volume flux through meridional faces = v$\ast$h$\ast$dx \\
\hline
\mbox{\texttt{ in}}  & {\em us} & A dimensional unit scaling type \\
\hline
\mbox{\texttt{ in}}  & {\em haloshift} & The width of halos to check (default 0). \\
\hline
\mbox{\texttt{ in}}  & {\em symmetric} & If true, do checksums on the fully symmetric computational domain. \\
\hline
\mbox{\texttt{ in}}  & {\em vel\+\_\+scale} & The scaling factor to convert velocities to \mbox{[}m s-\/1\mbox{]} \\
\hline
\end{DoxyParams}


Definition at line 42 of file M\+O\+M\+\_\+checksum\+\_\+packages.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{43   \textcolor{keywordtype}{character(len=*)},                          \&}
\DoxyCodeLine{44                            \textcolor{keywordtype}{intent(in)} :: mesg\textcolor{comment}{ !< A message that appears on the chksum lines.}}
\DoxyCodeLine{45   \textcolor{keywordtype}{type}(ocean\_grid\_type),   \textcolor{keywordtype}{intent(in)} :: G\textcolor{comment}{    !< The ocean's grid structure.}}
\DoxyCodeLine{46   \textcolor{keywordtype}{type}(verticalGrid\_type), \textcolor{keywordtype}{intent(in)} :: GV\textcolor{comment}{   !< The ocean's vertical grid structure.}}
\DoxyCodeLine{47 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZIB\_(G),SZJ\_(G),SZK\_(G))}, \&}
\DoxyCodeLine{48                            \textcolor{keywordtype}{intent(in)} :: u\textcolor{comment}{    !< The zonal velocity [L T-\/1 \string~> m s-\/1] or other units.}}
\DoxyCodeLine{49 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZI\_(G),SZJB\_(G),SZK\_(G))}, \&}
\DoxyCodeLine{50                            \textcolor{keywordtype}{intent(in)} :: v\textcolor{comment}{    !< The meridional velocity [L T-\/1 \string~> m s-\/1] or other units.}}
\DoxyCodeLine{51 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZI\_(G),SZJ\_(G),SZK\_(G))},  \&}
\DoxyCodeLine{52                            \textcolor{keywordtype}{intent(in)} :: h\textcolor{comment}{    !< Layer thicknesses [H \string~> m or kg m-\/2].}}
\DoxyCodeLine{53 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZIB\_(G),SZJ\_(G),SZK\_(G))}, \&}
\DoxyCodeLine{54                            \textcolor{keywordtype}{intent(in)} :: uh\textcolor{comment}{   !< Volume flux through zonal faces = u*h*dy}}
\DoxyCodeLine{55 \textcolor{comment}{                                              !! [H L2 T-\/1 \string~> m3 s-\/1 or kg s-\/1].}}
\DoxyCodeLine{56 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(SZI\_(G),SZJB\_(G),SZK\_(G))}, \&}
\DoxyCodeLine{57                            \textcolor{keywordtype}{intent(in)} :: vh\textcolor{comment}{   !< Volume flux through meridional faces = v*h*dx}}
\DoxyCodeLine{58 \textcolor{comment}{                                              !! [H L2 T-\/1 \string~> m3 s-\/1 or kg s-\/1].}}
\DoxyCodeLine{59   \textcolor{keywordtype}{type}(unit\_scale\_type),   \textcolor{keywordtype}{intent(in)} :: US\textcolor{comment}{   !< A dimensional unit scaling type}}
\DoxyCodeLine{60   \textcolor{keywordtype}{integer},       \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: haloshift\textcolor{comment}{ !< The width of halos to check (default 0).}}
\DoxyCodeLine{61   \textcolor{keywordtype}{logical},       \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: symmetric\textcolor{comment}{ !< If true, do checksums on the fully symmetric}}
\DoxyCodeLine{62 \textcolor{comment}{                                                   !! computational domain.}}
\DoxyCodeLine{63 \textcolor{keywordtype}{  real},          \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: vel\_scale\textcolor{comment}{ !< The scaling factor to convert velocities to [m s-\/1]}}
\DoxyCodeLine{64 }
\DoxyCodeLine{65 \textcolor{keywordtype}{  real} :: scale\_vel \textcolor{comment}{! The scaling factor to convert velocities to [m s-\/1]}}
\DoxyCodeLine{66   \textcolor{keywordtype}{logical} :: sym}
\DoxyCodeLine{67   \textcolor{keywordtype}{integer} :: is, ie, js, je, nz, hs}
\DoxyCodeLine{68   is = g\%isc ; ie = g\%iec ; js = g\%jsc ; je = g\%jec ; nz = g\%ke}
\DoxyCodeLine{69 }
\DoxyCodeLine{70   \textcolor{comment}{! Note that for the chksum calls to be useful for reproducing across PE}}
\DoxyCodeLine{71   \textcolor{comment}{! counts, there must be no redundant points, so all variables use is..ie}}
\DoxyCodeLine{72   \textcolor{comment}{! and js...je as their extent.}}
\DoxyCodeLine{73   hs = 1 ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(haloshift)) hs=haloshift}
\DoxyCodeLine{74   sym = .false. ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(symmetric)) sym=symmetric}
\DoxyCodeLine{75   scale\_vel = us\%L\_T\_to\_m\_s ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(vel\_scale)) scale\_vel = vel\_scale}
\DoxyCodeLine{76 }
\DoxyCodeLine{77   \textcolor{keyword}{call }uvchksum(mesg//\textcolor{stringliteral}{"{} [uv]"{}}, u, v, g\%HI, haloshift=hs, symmetric=sym, scale=scale\_vel)}
\DoxyCodeLine{78   \textcolor{keyword}{call }hchksum(h, mesg//\textcolor{stringliteral}{"{} h"{}}, g\%HI, haloshift=hs, scale=gv\%H\_to\_m)}
\DoxyCodeLine{79   \textcolor{keyword}{call }uvchksum(mesg//\textcolor{stringliteral}{"{} [uv]h"{}}, uh, vh, g\%HI, haloshift=hs, \&}
\DoxyCodeLine{80                 symmetric=sym, scale=gv\%H\_to\_m*us\%L\_to\_m**2*us\%s\_to\_T)}

\end{DoxyCode}


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