\hypertarget{interfacemom__checksums_1_1is__nan}{}\section{mom\+\_\+checksums\+:\+:is\+\_\+nan Interface Reference}
\label{interfacemom__checksums_1_1is__nan}\index{mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}}


\subsection{Detailed Description}
Returns .true. if any element of x is a NaN, and .false. otherwise. 

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

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
logical function \hyperlink{interfacemom__checksums_1_1is__nan_a9ce3d8ba0e8476942876af52a7e2f2bc}{is\+\_\+nan\+\_\+0d} (x)
\begin{DoxyCompactList}\small\item\em This function returns .true. if x is a NaN, and .false. otherwise. \end{DoxyCompactList}\item 
logical function \hyperlink{interfacemom__checksums_1_1is__nan_aec478dcdd63b568fc33409041a904d72}{is\+\_\+nan\+\_\+1d} (x, skip\+\_\+mpp)
\begin{DoxyCompactList}\small\item\em Returns .true. if any element of x is a NaN, and .false. otherwise. \end{DoxyCompactList}\item 
logical function \hyperlink{interfacemom__checksums_1_1is__nan_a0d3bfdf42f1e2aaf931546ebe0976096}{is\+\_\+nan\+\_\+2d} (x)
\begin{DoxyCompactList}\small\item\em Returns .true. if any element of x is a NaN, and .false. otherwise. \end{DoxyCompactList}\item 
logical function \hyperlink{interfacemom__checksums_1_1is__nan_a6db59f0a2ec4d8cc8dfaa969a5c84be3}{is\+\_\+nan\+\_\+3d} (x)
\begin{DoxyCompactList}\small\item\em Returns .true. if any element of x is a NaN, and .false. otherwise. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Returns .true. if any element of x is a NaN, and .false. otherwise. 

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



\subsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__checksums_1_1is__nan_a9ce3d8ba0e8476942876af52a7e2f2bc}\label{interfacemom__checksums_1_1is__nan_a9ce3d8ba0e8476942876af52a7e2f2bc}} 
\index{mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}!is\+\_\+nan\+\_\+0d@{is\+\_\+nan\+\_\+0d}}
\index{is\+\_\+nan\+\_\+0d@{is\+\_\+nan\+\_\+0d}!mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}}
\subsubsection{\texorpdfstring{is\+\_\+nan\+\_\+0d()}{is\_nan\_0d()}}
{\footnotesize\ttfamily logical function mom\+\_\+checksums\+::is\+\_\+nan\+::is\+\_\+nan\+\_\+0d (\begin{DoxyParamCaption}\item[{real, intent(in)}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



This function returns .true. if x is a NaN, and .false. otherwise. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & The value to be checked for Na\+Ns. \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}
2002   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: x\textcolor{comment}{ !< The value to be checked for NaNs.}
2003   \textcolor{keywordtype}{logical} :: is\_nan\_0d
2004 
2005  \textcolor{comment}{!is\_NaN\_0d = (((x < 0.0) .and. (x >= 0.0)) .or. &}
2006  \textcolor{comment}{!          (.not.(x < 0.0) .and. .not.(x >= 0.0)))}
2007   \textcolor{keywordflow}{if} (((x < 0.0) .and. (x >= 0.0)) .or. &
2008             (.not.(x < 0.0) .and. .not.(x >= 0.0))) \textcolor{keywordflow}{then}
2009     is\_nan\_0d = .true.
2010   \textcolor{keywordflow}{else}
2011     is\_nan\_0d = .false.
2012 \textcolor{keywordflow}{  endif}
2013 
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksums_1_1is__nan_aec478dcdd63b568fc33409041a904d72}\label{interfacemom__checksums_1_1is__nan_aec478dcdd63b568fc33409041a904d72}} 
\index{mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}!is\+\_\+nan\+\_\+1d@{is\+\_\+nan\+\_\+1d}}
\index{is\+\_\+nan\+\_\+1d@{is\+\_\+nan\+\_\+1d}!mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}}
\subsubsection{\texorpdfstring{is\+\_\+nan\+\_\+1d()}{is\_nan\_1d()}}
{\footnotesize\ttfamily logical function mom\+\_\+checksums\+::is\+\_\+nan\+::is\+\_\+nan\+\_\+1d (\begin{DoxyParamCaption}\item[{real, dimension(\+:), intent(in)}]{x,  }\item[{logical, intent(in), optional}]{skip\+\_\+mpp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Returns .true. if any element of x is a NaN, and .false. otherwise. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & The array to be checked for Na\+Ns.\\
\hline
\mbox{\tt in}  & {\em skip\+\_\+mpp} & If true, only check this array only on the local PE (default false). \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}
2018   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{intent(in)} :: x\textcolor{comment}{ !< The array to be checked for NaNs.}
2019   \textcolor{keywordtype}{logical},  \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: skip\_mpp\textcolor{comment}{  !< If true, only check this array only}
2020 \textcolor{comment}{                                              !! on the local PE (default false).}
2021   \textcolor{keywordtype}{logical} :: is\_nan\_1d
2022 
2023   \textcolor{keywordtype}{integer} :: i, n
2024   \textcolor{keywordtype}{logical} :: call\_mpp
2025 
2026   n = 0
2027   \textcolor{keywordflow}{do} i = lbound(x,1), ubound(x,1)
2028     \textcolor{keywordflow}{if} (is\_nan\_0d(x(i))) n = n + 1
2029 \textcolor{keywordflow}{  enddo}
2030   call\_mpp = .true.
2031   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(skip\_mpp)) call\_mpp = .not.skip\_mpp
2032 
2033   \textcolor{keywordflow}{if} (call\_mpp) \textcolor{keyword}{call }sum\_across\_pes(n)
2034   is\_nan\_1d = .false.
2035   \textcolor{keywordflow}{if} (n>0) is\_nan\_1d = .true.
2036 
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksums_1_1is__nan_a0d3bfdf42f1e2aaf931546ebe0976096}\label{interfacemom__checksums_1_1is__nan_a0d3bfdf42f1e2aaf931546ebe0976096}} 
\index{mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}!is\+\_\+nan\+\_\+2d@{is\+\_\+nan\+\_\+2d}}
\index{is\+\_\+nan\+\_\+2d@{is\+\_\+nan\+\_\+2d}!mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}}
\subsubsection{\texorpdfstring{is\+\_\+nan\+\_\+2d()}{is\_nan\_2d()}}
{\footnotesize\ttfamily logical function mom\+\_\+checksums\+::is\+\_\+nan\+::is\+\_\+nan\+\_\+2d (\begin{DoxyParamCaption}\item[{real, dimension(\+:,\+:), intent(in)}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Returns .true. if any element of x is a NaN, and .false. otherwise. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & The array to be checked for Na\+Ns. \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}
2041   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{intent(in)} :: x\textcolor{comment}{ !< The array to be checked for NaNs.}
2042   \textcolor{keywordtype}{logical} :: is\_nan\_2d
2043 
2044   \textcolor{keywordtype}{integer} :: i, j, n
2045 
2046   n = 0
2047   \textcolor{keywordflow}{do} j = lbound(x,2), ubound(x,2) ; \textcolor{keywordflow}{do} i = lbound(x,1), ubound(x,1)
2048     \textcolor{keywordflow}{if} (is\_nan\_0d(x(i,j))) n = n + 1
2049 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}
2050   \textcolor{keyword}{call }sum\_across\_pes(n)
2051   is\_nan\_2d = .false.
2052   \textcolor{keywordflow}{if} (n>0) is\_nan\_2d = .true.
2053 
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__checksums_1_1is__nan_a6db59f0a2ec4d8cc8dfaa969a5c84be3}\label{interfacemom__checksums_1_1is__nan_a6db59f0a2ec4d8cc8dfaa969a5c84be3}} 
\index{mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}!is\+\_\+nan\+\_\+3d@{is\+\_\+nan\+\_\+3d}}
\index{is\+\_\+nan\+\_\+3d@{is\+\_\+nan\+\_\+3d}!mom\+\_\+checksums\+::is\+\_\+nan@{mom\+\_\+checksums\+::is\+\_\+nan}}
\subsubsection{\texorpdfstring{is\+\_\+nan\+\_\+3d()}{is\_nan\_3d()}}
{\footnotesize\ttfamily logical function mom\+\_\+checksums\+::is\+\_\+nan\+::is\+\_\+nan\+\_\+3d (\begin{DoxyParamCaption}\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Returns .true. if any element of x is a NaN, and .false. otherwise. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em x} & The array to be checked for Na\+Ns. \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}
2058   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{intent(in)} :: x\textcolor{comment}{ !< The array to be checked for NaNs.}
2059   \textcolor{keywordtype}{logical} :: is\_nan\_3d
2060 
2061   \textcolor{keywordtype}{integer} :: i, j, k, n
2062 
2063   n = 0
2064   \textcolor{keywordflow}{do} k = lbound(x,3), ubound(x,3)
2065     \textcolor{keywordflow}{do} j = lbound(x,2), ubound(x,2) ; \textcolor{keywordflow}{do} i = lbound(x,1), ubound(x,1)
2066       \textcolor{keywordflow}{if} (is\_nan\_0d(x(i,j,k))) n = n + 1
2067 \textcolor{keywordflow}{    enddo} ;\textcolor{keywordflow}{ enddo}
2068 \textcolor{keywordflow}{  enddo}
2069   \textcolor{keyword}{call }sum\_across\_pes(n)
2070   is\_nan\_3d = .false.
2071   \textcolor{keywordflow}{if} (n>0) is\_nan\_3d = .true.
2072 
\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}
