\hypertarget{interfacemom__checksum__packages_1_1mom__state__chksum}{}\section{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}}


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

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

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \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 \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}


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

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



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


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


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


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


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