\hypertarget{interfacemom__debugging_1_1check__redundant__t}{}\section{mom\+\_\+debugging\+::check\+\_\+redundant\+\_\+t Interface Reference}
\label{interfacemom__debugging_1_1check__redundant__t}\index{mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}}


\subsection{Detailed Description}
Check for consistency between the duplicated points of an A-\/grid vector or scalar. 

Definition at line 46 of file M\+O\+M\+\_\+debugging.\+F90.

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfacemom__debugging_1_1check__redundant__t_aa9ab4a37bb56c128405a55e0c2145b53}{check\+\_\+redundant\+\_\+st3d}} (mesg, array, G, is, ie, js, je)
\begin{DoxyCompactList}\small\item\em Check for consistency between the duplicated points of a 3-\/D scalar at tracer points. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__debugging_1_1check__redundant__t_ad082ffbae35a00cdb1385bd9f921e834}{check\+\_\+redundant\+\_\+st2d}} (mesg, array, G, is, ie, js, je)
\begin{DoxyCompactList}\small\item\em Check for consistency between the duplicated points of a 2-\/D scalar at tracer points. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__debugging_1_1check__redundant__t_a462e06dee4f8c5d912aed2ce4e0a8017}{check\+\_\+redundant\+\_\+vt3d}} (mesg, u\+\_\+comp, v\+\_\+comp, G, is, ie, js, je, direction)
\begin{DoxyCompactList}\small\item\em Check for consistency between the duplicated points of a 3-\/D A-\/grid vector. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__debugging_1_1check__redundant__t_acd136fea414007606e5f9023f961856a}{check\+\_\+redundant\+\_\+vt2d}} (mesg, u\+\_\+comp, v\+\_\+comp, G, is, ie, js, je, direction)
\begin{DoxyCompactList}\small\item\em Check for consistency between the duplicated points of a 2-\/D A-\/grid vector. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Check for consistency between the duplicated points of an A-\/grid vector or scalar. 

Definition at line 46 of file M\+O\+M\+\_\+debugging.\+F90.



\subsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__debugging_1_1check__redundant__t_ad082ffbae35a00cdb1385bd9f921e834}\label{interfacemom__debugging_1_1check__redundant__t_ad082ffbae35a00cdb1385bd9f921e834}} 
\index{mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}!check\_redundant\_st2d@{check\_redundant\_st2d}}
\index{check\_redundant\_st2d@{check\_redundant\_st2d}!mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}}
\subsubsection{\texorpdfstring{check\_redundant\_st2d()}{check\_redundant\_st2d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+debugging\+::check\+\_\+redundant\+\_\+t\+::check\+\_\+redundant\+\_\+st2d (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{real, dimension(g\%isd\+:,g\%jsd\+:), intent(in)}]{array,  }\item[{type(ocean\+\_\+grid\+\_\+type), intent(inout)}]{G,  }\item[{integer, intent(in), optional}]{is,  }\item[{integer, intent(in), optional}]{ie,  }\item[{integer, intent(in), optional}]{js,  }\item[{integer, intent(in), optional}]{je }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Check for consistency between the duplicated points of a 2-\/D scalar at tracer points. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message \\
\hline
\mbox{\texttt{ in,out}}  & {\em g} & The ocean\textquotesingle{}s grid structure \\
\hline
\mbox{\texttt{ in}}  & {\em array} & The array to be checked for consistency \\
\hline
\mbox{\texttt{ in}}  & {\em is} & The starting i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em ie} & The ending i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em js} & The starting j-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em je} & The ending j-\/index to check \\
\hline
\end{DoxyParams}


Definition at line 426 of file M\+O\+M\+\_\+debugging.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{426   \textcolor{keywordtype}{character(len=*)},                 \textcolor{keywordtype}{intent(in)}    :: mesg\textcolor{comment}{  !< An identifying message}}
\DoxyCodeLine{427   \textcolor{keywordtype}{type}(ocean\_grid\_type),            \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{     !< The ocean's grid structure}}
\DoxyCodeLine{428 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:,G\%jsd:)},   \textcolor{keywordtype}{intent(in)}    :: array\textcolor{comment}{ !< The array to be checked for consistency}}
\DoxyCodeLine{429   \textcolor{keywordtype}{integer},                \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: is\textcolor{comment}{    !< The starting i-index to check}}
\DoxyCodeLine{430   \textcolor{keywordtype}{integer},                \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: ie\textcolor{comment}{    !< The ending i-index to check}}
\DoxyCodeLine{431   \textcolor{keywordtype}{integer},                \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: js\textcolor{comment}{    !< The starting j-index to check}}
\DoxyCodeLine{432   \textcolor{keywordtype}{integer},                \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: je\textcolor{comment}{    !< The ending j-index to check}}
\DoxyCodeLine{433   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{434 \textcolor{keywordtype}{  real} :: a\_nonsym(G\%isd:G\%ied,G\%jsd:G\%jed)}
\DoxyCodeLine{435   \textcolor{keywordtype}{character(len=128)} :: mesg2}
\DoxyCodeLine{436 }
\DoxyCodeLine{437   \textcolor{keywordtype}{integer} :: i, j, is\_ch, ie\_ch, js\_ch, je\_ch}
\DoxyCodeLine{438   \textcolor{keywordtype}{integer} :: Isq, Ieq, Jsq, Jeq, isd, ied, jsd, jed}
\DoxyCodeLine{439   isd = g\%isd ; ied = g\%ied ; jsd = g\%jsd ; jed = g\%jed}
\DoxyCodeLine{440 }
\DoxyCodeLine{441   is\_ch = g\%isc ; ie\_ch = g\%iec ; js\_ch = g\%jsc ; je\_ch = g\%jec}
\DoxyCodeLine{442   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(is)) is\_ch = is ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(ie)) ie\_ch = ie}
\DoxyCodeLine{443   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(js)) js\_ch = js ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(js)) je\_ch = je}
\DoxyCodeLine{444 }
\DoxyCodeLine{445   \textcolor{comment}{! This only works on points outside of the standard computational domain.}}
\DoxyCodeLine{446   \textcolor{keywordflow}{if} ((is\_ch == g\%isc) .and. (ie\_ch == g\%iec) .and. \&}
\DoxyCodeLine{447       (js\_ch == g\%jsc) .and. (je\_ch == g\%jec)) \textcolor{keywordflow}{return}}
\DoxyCodeLine{448 }
\DoxyCodeLine{449   \textcolor{keywordflow}{do} i=isd,ied ; \textcolor{keywordflow}{do} j=jsd,jed}
\DoxyCodeLine{450     a\_nonsym(i,j) = array(i,j)}
\DoxyCodeLine{451 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{452 }
\DoxyCodeLine{453   \textcolor{keyword}{call }pass\_var(a\_nonsym, g\%Domain)}
\DoxyCodeLine{454 }
\DoxyCodeLine{455   \textcolor{keywordflow}{do} i=is\_ch,ie\_ch ; \textcolor{keywordflow}{do} j=js\_ch,je\_ch}
\DoxyCodeLine{456     \textcolor{keywordflow}{if} (a\_nonsym(i,j) /= array(i,j) .and. \&}
\DoxyCodeLine{457         redundant\_prints(1) < max\_redundant\_prints) \textcolor{keywordflow}{then}}
\DoxyCodeLine{458       \textcolor{keyword}{write}(mesg2,\textcolor{stringliteral}{'(" Redundant points",2(1pe12.4)," differ by ", \&}}
\DoxyCodeLine{459 \textcolor{stringliteral}{}\textcolor{stringliteral}{                    \& 1pe12.4," at i,j = ",2i4," on pe ",i4)'}) \&}
\DoxyCodeLine{460            array(i,j), a\_nonsym(i,j),array(i,j)-a\_nonsym(i,j),i,j,pe\_here()}
\DoxyCodeLine{461       \textcolor{keyword}{write}(0,\textcolor{stringliteral}{'(A130)'}) trim(mesg)//trim(mesg2)}
\DoxyCodeLine{462      redundant\_prints(1) = redundant\_prints(1) + 1}
\DoxyCodeLine{463 \textcolor{keywordflow}{   endif}}
\DoxyCodeLine{464 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{465 }

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__debugging_1_1check__redundant__t_aa9ab4a37bb56c128405a55e0c2145b53}\label{interfacemom__debugging_1_1check__redundant__t_aa9ab4a37bb56c128405a55e0c2145b53}} 
\index{mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}!check\_redundant\_st3d@{check\_redundant\_st3d}}
\index{check\_redundant\_st3d@{check\_redundant\_st3d}!mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}}
\subsubsection{\texorpdfstring{check\_redundant\_st3d()}{check\_redundant\_st3d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+debugging\+::check\+\_\+redundant\+\_\+t\+::check\+\_\+redundant\+\_\+st3d (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{real, dimension(g\%isd\+:,g\%jsd\+:,\+:), intent(in)}]{array,  }\item[{type(ocean\+\_\+grid\+\_\+type), intent(inout)}]{G,  }\item[{integer, intent(in), optional}]{is,  }\item[{integer, intent(in), optional}]{ie,  }\item[{integer, intent(in), optional}]{js,  }\item[{integer, intent(in), optional}]{je }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Check for consistency between the duplicated points of a 3-\/D scalar at tracer points. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message \\
\hline
\mbox{\texttt{ in,out}}  & {\em g} & The ocean\textquotesingle{}s grid structure \\
\hline
\mbox{\texttt{ in}}  & {\em array} & The array to be checked for consistency \\
\hline
\mbox{\texttt{ in}}  & {\em is} & The starting i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em ie} & The ending i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em js} & The starting j-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em je} & The ending j-\/index to check \\
\hline
\end{DoxyParams}


Definition at line 401 of file M\+O\+M\+\_\+debugging.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{401   \textcolor{keywordtype}{character(len=*)},                     \textcolor{keywordtype}{intent(in)}    :: mesg\textcolor{comment}{  !< An identifying message}}
\DoxyCodeLine{402   \textcolor{keywordtype}{type}(ocean\_grid\_type),                \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{     !< The ocean's grid structure}}
\DoxyCodeLine{403 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:,G\%jsd:,:)},     \textcolor{keywordtype}{intent(in)}    :: array\textcolor{comment}{ !< The array to be checked for consistency}}
\DoxyCodeLine{404   \textcolor{keywordtype}{integer},                    \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: is\textcolor{comment}{    !< The starting i-index to check}}
\DoxyCodeLine{405   \textcolor{keywordtype}{integer},                    \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: ie\textcolor{comment}{    !< The ending i-index to check}}
\DoxyCodeLine{406   \textcolor{keywordtype}{integer},                    \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: js\textcolor{comment}{    !< The starting j-index to check}}
\DoxyCodeLine{407   \textcolor{keywordtype}{integer},                    \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: je\textcolor{comment}{    !< The ending j-index to check}}
\DoxyCodeLine{408   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{409   \textcolor{keywordtype}{character(len=24)} :: mesg\_k}
\DoxyCodeLine{410   \textcolor{keywordtype}{integer} :: k}
\DoxyCodeLine{411 }
\DoxyCodeLine{412   \textcolor{keywordflow}{do} k=1,\textcolor{keyword}{size}(array,3)}
\DoxyCodeLine{413     \textcolor{keywordflow}{if} (k < 10) \textcolor{keywordflow}{then} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i2," ")'}) k}
\DoxyCodeLine{414     \textcolor{keywordflow}{elseif} (k < 100) \textcolor{keywordflow}{then} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i3," ")'}) k}
\DoxyCodeLine{415     \textcolor{keywordflow}{elseif} (k < 1000) \textcolor{keywordflow}{then} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i4," ")'}) k}
\DoxyCodeLine{416     \textcolor{keywordflow}{else} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i9," ")'}) k ;\textcolor{keywordflow}{ endif}}
\DoxyCodeLine{417 }
\DoxyCodeLine{418     \textcolor{keyword}{call }check\_redundant\_st2d(trim(mesg)//trim(mesg\_k), array(:,:,k), \&}
\DoxyCodeLine{419                               g, is, ie, js, je)}
\DoxyCodeLine{420 \textcolor{keywordflow}{  enddo}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__debugging_1_1check__redundant__t_acd136fea414007606e5f9023f961856a}\label{interfacemom__debugging_1_1check__redundant__t_acd136fea414007606e5f9023f961856a}} 
\index{mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}!check\_redundant\_vt2d@{check\_redundant\_vt2d}}
\index{check\_redundant\_vt2d@{check\_redundant\_vt2d}!mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}}
\subsubsection{\texorpdfstring{check\_redundant\_vt2d()}{check\_redundant\_vt2d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+debugging\+::check\+\_\+redundant\+\_\+t\+::check\+\_\+redundant\+\_\+vt2d (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{real, dimension(g\%isd\+:,g\%jsd\+:), intent(in)}]{u\+\_\+comp,  }\item[{real, dimension(g\%isd\+:,g\%jsd\+:), intent(in)}]{v\+\_\+comp,  }\item[{type(ocean\+\_\+grid\+\_\+type), intent(inout)}]{G,  }\item[{integer, intent(in), optional}]{is,  }\item[{integer, intent(in), optional}]{ie,  }\item[{integer, intent(in), optional}]{js,  }\item[{integer, intent(in), optional}]{je,  }\item[{integer, intent(in), optional}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Check for consistency between the duplicated points of a 2-\/D A-\/grid vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message \\
\hline
\mbox{\texttt{ in,out}}  & {\em g} & The ocean\textquotesingle{}s grid structure \\
\hline
\mbox{\texttt{ in}}  & {\em u\+\_\+comp} & The u-\/component of the vector to be checked for consistency \\
\hline
\mbox{\texttt{ in}}  & {\em v\+\_\+comp} & The v-\/component of the vector to be checked for consistency \\
\hline
\mbox{\texttt{ in}}  & {\em is} & The starting i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em ie} & The ending i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em js} & The starting j-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em je} & The ending j-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em direction} & the direction flag to be passed to pass\+\_\+vector \\
\hline
\end{DoxyParams}


Definition at line 501 of file M\+O\+M\+\_\+debugging.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{501   \textcolor{keywordtype}{character(len=*)},                \textcolor{keywordtype}{intent(in)}    :: mesg\textcolor{comment}{   !< An identifying message}}
\DoxyCodeLine{502   \textcolor{keywordtype}{type}(ocean\_grid\_type),           \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{      !< The ocean's grid structure}}
\DoxyCodeLine{503 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:,G\%jsd:)},  \textcolor{keywordtype}{intent(in)}    :: u\_comp\textcolor{comment}{ !< The u-component of the vector}}
\DoxyCodeLine{504 \textcolor{comment}{                                                           !! to be checked for consistency}}
\DoxyCodeLine{505 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:,G\%jsd:)},  \textcolor{keywordtype}{intent(in)}    :: v\_comp\textcolor{comment}{ !< The v-component of the vector}}
\DoxyCodeLine{506 \textcolor{comment}{                                                           !! to be checked for consistency}}
\DoxyCodeLine{507   \textcolor{keywordtype}{integer},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: is\textcolor{comment}{     !< The starting i-index to check}}
\DoxyCodeLine{508   \textcolor{keywordtype}{integer},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: ie\textcolor{comment}{     !< The ending i-index to check}}
\DoxyCodeLine{509   \textcolor{keywordtype}{integer},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: js\textcolor{comment}{     !< The starting j-index to check}}
\DoxyCodeLine{510   \textcolor{keywordtype}{integer},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: je\textcolor{comment}{     !< The ending j-index to check}}
\DoxyCodeLine{511   \textcolor{keywordtype}{integer},               \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: direction\textcolor{comment}{ !< the direction flag to be}}
\DoxyCodeLine{512 \textcolor{comment}{                                                           !! passed to pass\_vector}}
\DoxyCodeLine{513   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{514 \textcolor{keywordtype}{  real} :: u\_nonsym(G\%isd:G\%ied,G\%jsd:G\%jed)}
\DoxyCodeLine{515 \textcolor{keywordtype}{  real} :: v\_nonsym(G\%isd:G\%ied,G\%jsd:G\%jed)}
\DoxyCodeLine{516   \textcolor{keywordtype}{character(len=128)} :: mesg2}
\DoxyCodeLine{517 }
\DoxyCodeLine{518   \textcolor{keywordtype}{integer} :: i, j, is\_ch, ie\_ch, js\_ch, je\_ch}
\DoxyCodeLine{519   \textcolor{keywordtype}{integer} :: Isq, Ieq, Jsq, Jeq, isd, ied, jsd, jed, IsdB, IedB, JsdB, JedB}
\DoxyCodeLine{520   isq = g\%IscB ; ieq = g\%IecB ; jsq = g\%JscB ; jeq = g\%JecB}
\DoxyCodeLine{521   isd = g\%isd ; ied = g\%ied ; jsd = g\%jsd ; jed = g\%jed}
\DoxyCodeLine{522   isdb = g\%IsdB ; iedb = g\%IedB ; jsdb = g\%JsdB ; jedb = g\%JedB}
\DoxyCodeLine{523 }
\DoxyCodeLine{524   is\_ch = g\%isc ; ie\_ch = g\%iec ; js\_ch = g\%jsc ; je\_ch = g\%jec}
\DoxyCodeLine{525   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(is)) is\_ch = is ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(ie)) ie\_ch = ie}
\DoxyCodeLine{526   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(js)) js\_ch = js ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(js)) je\_ch = je}
\DoxyCodeLine{527 }
\DoxyCodeLine{528   \textcolor{comment}{! This only works on points outside of the standard computational domain.}}
\DoxyCodeLine{529   \textcolor{keywordflow}{if} ((is\_ch == g\%isc) .and. (ie\_ch == g\%iec) .and. \&}
\DoxyCodeLine{530       (js\_ch == g\%jsc) .and. (je\_ch == g\%jec)) \textcolor{keywordflow}{return}}
\DoxyCodeLine{531 }
\DoxyCodeLine{532   \textcolor{keywordflow}{do} i=isd,ied ; \textcolor{keywordflow}{do} j=jsd,jed}
\DoxyCodeLine{533     u\_nonsym(i,j) = u\_comp(i,j) ; v\_nonsym(i,j) = v\_comp(i,j)}
\DoxyCodeLine{534 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{535 }
\DoxyCodeLine{536   \textcolor{keyword}{call }pass\_vector(u\_nonsym, v\_nonsym, g\%Domain, direction, stagger=agrid)}
\DoxyCodeLine{537 }
\DoxyCodeLine{538   \textcolor{keywordflow}{do} i=is\_ch,ie\_ch ; \textcolor{keywordflow}{do} j=js\_ch+1,je\_ch}
\DoxyCodeLine{539     \textcolor{keywordflow}{if} (u\_nonsym(i,j) /= u\_comp(i,j) .and. \&}
\DoxyCodeLine{540         redundant\_prints(1) < max\_redundant\_prints) \textcolor{keywordflow}{then}}
\DoxyCodeLine{541       \textcolor{keyword}{write}(mesg2,\textcolor{stringliteral}{'(" redundant u-components",2(1pe12.4)," differ by ", \&}}
\DoxyCodeLine{542 \textcolor{stringliteral}{}\textcolor{stringliteral}{                    \& 1pe12.4," at i,j = ",2i4," on pe ",i4)'}) \&}
\DoxyCodeLine{543            u\_comp(i,j), u\_nonsym(i,j),u\_comp(i,j)-u\_nonsym(i,j),i,j,pe\_here()}
\DoxyCodeLine{544       \textcolor{keyword}{write}(0,\textcolor{stringliteral}{'(A130)'}) trim(mesg)//trim(mesg2)}
\DoxyCodeLine{545       redundant\_prints(1) = redundant\_prints(1) + 1}
\DoxyCodeLine{546 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{547 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{548   \textcolor{keywordflow}{do} i=is\_ch+1,ie\_ch ; \textcolor{keywordflow}{do} j=js\_ch,je\_ch}
\DoxyCodeLine{549     \textcolor{keywordflow}{if} (v\_nonsym(i,j) /= v\_comp(i,j) .and. \&}
\DoxyCodeLine{550         redundant\_prints(1) < max\_redundant\_prints) \textcolor{keywordflow}{then}}
\DoxyCodeLine{551       \textcolor{keyword}{write}(mesg2,\textcolor{stringliteral}{'(" redundant v-comps",2(1pe12.4)," differ by ", \&}}
\DoxyCodeLine{552 \textcolor{stringliteral}{}\textcolor{stringliteral}{                    \& 1pe12.4," at i,j = ",2i4," x,y = ",2(1pe12.4)" on pe ",i4)'}) \&}
\DoxyCodeLine{553            v\_comp(i,j), v\_nonsym(i,j),v\_comp(i,j)-v\_nonsym(i,j),i,j, \&}
\DoxyCodeLine{554            g\%geoLonBu(i,j), g\%geoLatBu(i,j), pe\_here()}
\DoxyCodeLine{555       \textcolor{keyword}{write}(0,\textcolor{stringliteral}{'(A155)'}) trim(mesg)//trim(mesg2)}
\DoxyCodeLine{556       redundant\_prints(1) = redundant\_prints(1) + 1}
\DoxyCodeLine{557 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{558 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}}
\DoxyCodeLine{559 }

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__debugging_1_1check__redundant__t_a462e06dee4f8c5d912aed2ce4e0a8017}\label{interfacemom__debugging_1_1check__redundant__t_a462e06dee4f8c5d912aed2ce4e0a8017}} 
\index{mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}!check\_redundant\_vt3d@{check\_redundant\_vt3d}}
\index{check\_redundant\_vt3d@{check\_redundant\_vt3d}!mom\_debugging::check\_redundant\_t@{mom\_debugging::check\_redundant\_t}}
\subsubsection{\texorpdfstring{check\_redundant\_vt3d()}{check\_redundant\_vt3d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+debugging\+::check\+\_\+redundant\+\_\+t\+::check\+\_\+redundant\+\_\+vt3d (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(in)}]{mesg,  }\item[{real, dimension(g\%isd\+:,g\%jsd\+:,\+:), intent(in)}]{u\+\_\+comp,  }\item[{real, dimension(g\%isd\+:,g\%jsd\+:,\+:), intent(in)}]{v\+\_\+comp,  }\item[{type(ocean\+\_\+grid\+\_\+type), intent(inout)}]{G,  }\item[{integer, intent(in), optional}]{is,  }\item[{integer, intent(in), optional}]{ie,  }\item[{integer, intent(in), optional}]{js,  }\item[{integer, intent(in), optional}]{je,  }\item[{integer, intent(in), optional}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Check for consistency between the duplicated points of a 3-\/D A-\/grid vector. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em mesg} & An identifying message \\
\hline
\mbox{\texttt{ in,out}}  & {\em g} & The ocean\textquotesingle{}s grid structure \\
\hline
\mbox{\texttt{ in}}  & {\em u\+\_\+comp} & The u-\/component of the vector to be checked for consistency \\
\hline
\mbox{\texttt{ in}}  & {\em v\+\_\+comp} & The v-\/component of the vector to be checked for consistency \\
\hline
\mbox{\texttt{ in}}  & {\em is} & The starting i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em ie} & The ending i-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em js} & The starting j-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em je} & The ending j-\/index to check \\
\hline
\mbox{\texttt{ in}}  & {\em direction} & the direction flag to be passed to pass\+\_\+vector \\
\hline
\end{DoxyParams}


Definition at line 471 of file M\+O\+M\+\_\+debugging.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{471   \textcolor{keywordtype}{character(len=*)},                    \textcolor{keywordtype}{intent(in)}    :: mesg\textcolor{comment}{   !< An identifying message}}
\DoxyCodeLine{472   \textcolor{keywordtype}{type}(ocean\_grid\_type),               \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{      !< The ocean's grid structure}}
\DoxyCodeLine{473 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:,G\%jsd:,:)},    \textcolor{keywordtype}{intent(in)}    :: u\_comp\textcolor{comment}{ !< The u-component of the vector}}
\DoxyCodeLine{474 \textcolor{comment}{                                                           !! to be checked for consistency}}
\DoxyCodeLine{475 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:,G\%jsd:,:)},    \textcolor{keywordtype}{intent(in)}    :: v\_comp\textcolor{comment}{ !< The v-component of the vector}}
\DoxyCodeLine{476 \textcolor{comment}{                                                           !! to be checked for consistency}}
\DoxyCodeLine{477   \textcolor{keywordtype}{integer},                   \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: is\textcolor{comment}{     !< The starting i-index to check}}
\DoxyCodeLine{478   \textcolor{keywordtype}{integer},                   \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: ie\textcolor{comment}{     !< The ending i-index to check}}
\DoxyCodeLine{479   \textcolor{keywordtype}{integer},                   \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: js\textcolor{comment}{     !< The starting j-index to check}}
\DoxyCodeLine{480   \textcolor{keywordtype}{integer},                   \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: je\textcolor{comment}{     !< The ending j-index to check}}
\DoxyCodeLine{481   \textcolor{keywordtype}{integer},                   \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}    :: direction\textcolor{comment}{ !< the direction flag to be}}
\DoxyCodeLine{482 \textcolor{comment}{                                                           !! passed to pass\_vector}}
\DoxyCodeLine{483   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{484   \textcolor{keywordtype}{character(len=24)} :: mesg\_k}
\DoxyCodeLine{485   \textcolor{keywordtype}{integer} :: k}
\DoxyCodeLine{486 }
\DoxyCodeLine{487   \textcolor{keywordflow}{do} k=1,\textcolor{keyword}{size}(u\_comp,3)}
\DoxyCodeLine{488     \textcolor{keywordflow}{if} (k < 10) \textcolor{keywordflow}{then} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i2," ")'}) k}
\DoxyCodeLine{489     \textcolor{keywordflow}{elseif} (k < 100) \textcolor{keywordflow}{then} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i3," ")'}) k}
\DoxyCodeLine{490     \textcolor{keywordflow}{elseif} (k < 1000) \textcolor{keywordflow}{then} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i4," ")'}) k}
\DoxyCodeLine{491     \textcolor{keywordflow}{else} ; \textcolor{keyword}{write}(mesg\_k,\textcolor{stringliteral}{'(" Layer",i9," ")'}) k ;\textcolor{keywordflow}{ endif}}
\DoxyCodeLine{492 }
\DoxyCodeLine{493     \textcolor{keyword}{call }check\_redundant\_vt2d(trim(mesg)//trim(mesg\_k), u\_comp(:,:,k), \&}
\DoxyCodeLine{494              v\_comp(:,:,k), g, is, ie, js, je, direction)}
\DoxyCodeLine{495 \textcolor{keywordflow}{  enddo}}

\end{DoxyCode}


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