\hypertarget{interfacemom__checksums_1_1chk__sum__msg}{}\doxysection{mom\+\_\+checksums\+::chk\+\_\+sum\+\_\+msg Interface Reference}
\label{interfacemom__checksums_1_1chk__sum__msg}\index{mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}}


\doxysubsection{Detailed Description}
Write a message with either checksums or numerical statistics of arrays. 

Definition at line 69 of file M\+O\+M\+\_\+checksums.\+F90.

\doxysubsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfacemom__checksums_1_1chk__sum__msg_a63f1873587a3c6c0aecfde0a1148d34c}{chk\+\_\+sum\+\_\+msg1}} (fmsg, bc0, mesg, iounit)
\begin{DoxyCompactList}\small\item\em Write a message including the checksum of the non-\/shifted array. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__checksums_1_1chk__sum__msg_a7d0eb46685d5195e872be38584c25892}{chk\+\_\+sum\+\_\+msg2}} (fmsg, bc0, bc\+SW, mesg, iounit)
\begin{DoxyCompactList}\small\item\em Write a message including checksums of non-\/shifted and southwestward shifted arrays. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__checksums_1_1chk__sum__msg_a78e205827f68de5aa6c86bb02038a49b}{chk\+\_\+sum\+\_\+msg3}} (fmsg, a\+Mean, a\+Min, a\+Max, mesg, iounit)
\begin{DoxyCompactList}\small\item\em Write a message including the global mean, maximum and minimum of an array. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__checksums_1_1chk__sum__msg_a16f849a35f6fe6e76783f2662ff75155}{chk\+\_\+sum\+\_\+msg5}} (fmsg, bc0, bc\+SW, bc\+SE, bc\+NW, bc\+NE, mesg, iounit)
\begin{DoxyCompactList}\small\item\em Write a message including checksums of non-\/shifted and diagonally shifted arrays. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Write a message with either checksums or numerical statistics of arrays. 

Definition at line 69 of file M\+O\+M\+\_\+checksums.\+F90.



\doxysubsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__checksums_1_1chk__sum__msg_a63f1873587a3c6c0aecfde0a1148d34c}\label{interfacemom__checksums_1_1chk__sum__msg_a63f1873587a3c6c0aecfde0a1148d34c}} 
\index{mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}!chk\_sum\_msg1@{chk\_sum\_msg1}}
\index{chk\_sum\_msg1@{chk\_sum\_msg1}!mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}}
\doxysubsubsection{\texorpdfstring{chk\_sum\_msg1()}{chk\_sum\_msg1()}}
{\footnotesize\ttfamily subroutine mom\+\_\+checksums\+::chk\+\_\+sum\+\_\+msg\+::chk\+\_\+sum\+\_\+msg1 (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{fmsg,  }\item[{integer, intent(in)}]{bc0,  }\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{integer, intent(in)}]{iounit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write a message including the checksum of the non-\/shifted array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fmsg} & A checksum code-\/location specific preamble \\
\hline
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message supplied by top-\/level caller \\
\hline
\mbox{\texttt{ in}}  & {\em bc0} & The bitcount of the non-\/shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em iounit} & Checksum logger IO unit \\
\hline
\end{DoxyParams}


Definition at line 2076 of file M\+O\+M\+\_\+checksums.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{2077   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: fmsg\textcolor{comment}{ !< A checksum code-\/location specific preamble}}
\DoxyCodeLine{2078   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: mesg\textcolor{comment}{ !< An identifying message supplied by top-\/level caller}}
\DoxyCodeLine{2079   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bc0\textcolor{comment}{  !< The bitcount of the non-\/shifted array}}
\DoxyCodeLine{2080   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: iounit\textcolor{comment}{ !< Checksum logger IO unit}}
\DoxyCodeLine{2081 }
\DoxyCodeLine{2082   \textcolor{keywordflow}{if} (is\_root\_pe()) \&}
\DoxyCodeLine{2083     \textcolor{keyword}{write}(iounit, \textcolor{stringliteral}{'(A,1(A,I10,X),A)'}) fmsg, \textcolor{stringliteral}{" c="}, bc0, trim(mesg)}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksums_1_1chk__sum__msg_a7d0eb46685d5195e872be38584c25892}\label{interfacemom__checksums_1_1chk__sum__msg_a7d0eb46685d5195e872be38584c25892}} 
\index{mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}!chk\_sum\_msg2@{chk\_sum\_msg2}}
\index{chk\_sum\_msg2@{chk\_sum\_msg2}!mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}}
\doxysubsubsection{\texorpdfstring{chk\_sum\_msg2()}{chk\_sum\_msg2()}}
{\footnotesize\ttfamily subroutine mom\+\_\+checksums\+::chk\+\_\+sum\+\_\+msg\+::chk\+\_\+sum\+\_\+msg2 (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{fmsg,  }\item[{integer, intent(in)}]{bc0,  }\item[{integer, intent(in)}]{bc\+SW,  }\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{integer, intent(in)}]{iounit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write a message including checksums of non-\/shifted and southwestward shifted arrays. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fmsg} & A checksum code-\/location specific preamble \\
\hline
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message supplied by top-\/level caller \\
\hline
\mbox{\texttt{ in}}  & {\em bc0} & The bitcount of the non-\/shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em bcsw} & The bitcount of the southwest-\/shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em iounit} & Checksum logger IO unit \\
\hline
\end{DoxyParams}


Definition at line 2141 of file M\+O\+M\+\_\+checksums.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{2142   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: fmsg\textcolor{comment}{ !< A checksum code-\/location specific preamble}}
\DoxyCodeLine{2143   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: mesg\textcolor{comment}{ !< An identifying message supplied by top-\/level caller}}
\DoxyCodeLine{2144   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bc0\textcolor{comment}{  !< The bitcount of the non-\/shifted array}}
\DoxyCodeLine{2145   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bcSW\textcolor{comment}{ !< The bitcount of the southwest-\/shifted array}}
\DoxyCodeLine{2146   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: iounit\textcolor{comment}{ !< Checksum logger IO unit}}
\DoxyCodeLine{2147 }
\DoxyCodeLine{2148   \textcolor{keywordflow}{if} (is\_root\_pe()) \textcolor{keyword}{write}(iounit, \textcolor{stringliteral}{'(A,2(A,I9,1X),A)'}) \&}
\DoxyCodeLine{2149     fmsg, \textcolor{stringliteral}{" c="}, bc0, \textcolor{stringliteral}{"s/w="}, bcsw, trim(mesg)}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksums_1_1chk__sum__msg_a78e205827f68de5aa6c86bb02038a49b}\label{interfacemom__checksums_1_1chk__sum__msg_a78e205827f68de5aa6c86bb02038a49b}} 
\index{mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}!chk\_sum\_msg3@{chk\_sum\_msg3}}
\index{chk\_sum\_msg3@{chk\_sum\_msg3}!mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}}
\doxysubsubsection{\texorpdfstring{chk\_sum\_msg3()}{chk\_sum\_msg3()}}
{\footnotesize\ttfamily subroutine mom\+\_\+checksums\+::chk\+\_\+sum\+\_\+msg\+::chk\+\_\+sum\+\_\+msg3 (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{fmsg,  }\item[{real, intent(in)}]{a\+Mean,  }\item[{real, intent(in)}]{a\+Min,  }\item[{real, intent(in)}]{a\+Max,  }\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{integer, intent(in)}]{iounit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write a message including the global mean, maximum and minimum of an array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fmsg} & A checksum code-\/location specific preamble \\
\hline
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message supplied by top-\/level caller \\
\hline
\mbox{\texttt{ in}}  & {\em amean} & The mean value of the array \\
\hline
\mbox{\texttt{ in}}  & {\em amin} & The minimum value of the array \\
\hline
\mbox{\texttt{ in}}  & {\em amax} & The maximum value of the array \\
\hline
\mbox{\texttt{ in}}  & {\em iounit} & Checksum logger IO unit \\
\hline
\end{DoxyParams}


Definition at line 2153 of file M\+O\+M\+\_\+checksums.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{2154   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: fmsg\textcolor{comment}{ !< A checksum code-\/location specific preamble}}
\DoxyCodeLine{2155   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: mesg\textcolor{comment}{ !< An identifying message supplied by top-\/level caller}}
\DoxyCodeLine{2156 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{intent(in)} :: aMean\textcolor{comment}{ !< The mean value of the array}}
\DoxyCodeLine{2157 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{intent(in)} :: aMin\textcolor{comment}{ !< The minimum value of the array}}
\DoxyCodeLine{2158 \textcolor{keywordtype}{  real},             \textcolor{keywordtype}{intent(in)} :: aMax\textcolor{comment}{ !< The maximum value of the array}}
\DoxyCodeLine{2159   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: iounit\textcolor{comment}{ !< Checksum logger IO unit}}
\DoxyCodeLine{2160 }
\DoxyCodeLine{2161   \textcolor{comment}{! NOTE: We add zero to aMin and aMax to remove any negative zeros.}}
\DoxyCodeLine{2162   \textcolor{comment}{! This is due to inconsistencies of signed zero in local vs MPI calculations.}}
\DoxyCodeLine{2163 }
\DoxyCodeLine{2164   \textcolor{keywordflow}{if} (is\_root\_pe()) \textcolor{keyword}{write}(iounit, \textcolor{stringliteral}{'(A,3(A,ES25.16,1X),A)'}) \&}
\DoxyCodeLine{2165     fmsg, \textcolor{stringliteral}{" mean="}, amean, \textcolor{stringliteral}{"min="}, (0. + amin), \textcolor{stringliteral}{"max="}, (0. + amax), trim(mesg)}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksums_1_1chk__sum__msg_a16f849a35f6fe6e76783f2662ff75155}\label{interfacemom__checksums_1_1chk__sum__msg_a16f849a35f6fe6e76783f2662ff75155}} 
\index{mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}!chk\_sum\_msg5@{chk\_sum\_msg5}}
\index{chk\_sum\_msg5@{chk\_sum\_msg5}!mom\_checksums::chk\_sum\_msg@{mom\_checksums::chk\_sum\_msg}}
\doxysubsubsection{\texorpdfstring{chk\_sum\_msg5()}{chk\_sum\_msg5()}}
{\footnotesize\ttfamily subroutine mom\+\_\+checksums\+::chk\+\_\+sum\+\_\+msg\+::chk\+\_\+sum\+\_\+msg5 (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{fmsg,  }\item[{integer, intent(in)}]{bc0,  }\item[{integer, intent(in)}]{bc\+SW,  }\item[{integer, intent(in)}]{bc\+SE,  }\item[{integer, intent(in)}]{bc\+NW,  }\item[{integer, intent(in)}]{bc\+NE,  }\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{integer, intent(in)}]{iounit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write a message including checksums of non-\/shifted and diagonally shifted arrays. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fmsg} & A checksum code-\/location specific preamble \\
\hline
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message supplied by top-\/level caller \\
\hline
\mbox{\texttt{ in}}  & {\em bc0} & The bitcount of the non-\/shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em bcsw} & The bitcount for SW shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em bcse} & The bitcount for SE shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em bcnw} & The bitcount for NW shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em bcne} & The bitcount for NE shifted array \\
\hline
\mbox{\texttt{ in}}  & {\em iounit} & Checksum logger IO unit \\
\hline
\end{DoxyParams}


Definition at line 2087 of file M\+O\+M\+\_\+checksums.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{2088   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: fmsg\textcolor{comment}{ !< A checksum code-\/location specific preamble}}
\DoxyCodeLine{2089   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{intent(in)} :: mesg\textcolor{comment}{ !< An identifying message supplied by top-\/level caller}}
\DoxyCodeLine{2090   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bc0\textcolor{comment}{  !< The bitcount of the non-\/shifted array}}
\DoxyCodeLine{2091   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bcSW\textcolor{comment}{ !< The bitcount for SW shifted array}}
\DoxyCodeLine{2092   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bcSE\textcolor{comment}{ !< The bitcount for SE shifted array}}
\DoxyCodeLine{2093   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bcNW\textcolor{comment}{ !< The bitcount for NW shifted array}}
\DoxyCodeLine{2094   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: bcNE\textcolor{comment}{ !< The bitcount for NE shifted array}}
\DoxyCodeLine{2095   \textcolor{keywordtype}{integer},          \textcolor{keywordtype}{intent(in)} :: iounit\textcolor{comment}{ !< Checksum logger IO unit}}
\DoxyCodeLine{2096 }
\DoxyCodeLine{2097   \textcolor{keywordflow}{if} (is\_root\_pe()) \textcolor{keyword}{write}(iounit, \textcolor{stringliteral}{'(A,5(A,I10,1X),A)'}) \&}
\DoxyCodeLine{2098     fmsg, \textcolor{stringliteral}{" c="}, bc0, \textcolor{stringliteral}{"sw="}, bcsw, \textcolor{stringliteral}{"se="}, bcse, \textcolor{stringliteral}{"nw="}, bcnw, \textcolor{stringliteral}{"ne="}, bcne, trim(mesg)}

\end{DoxyCode}


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