\hypertarget{namespacemom__obsolete__params}{}\doxysection{mom\+\_\+obsolete\+\_\+params Module Reference}
\label{namespacemom__obsolete__params}\index{mom\_obsolete\_params@{mom\_obsolete\_params}}


\doxysubsection{Detailed Description}
Methods for testing for, and list of, obsolete run-\/time parameters. \doxysubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \mbox{\hyperlink{namespacemom__obsolete__params_adeed714b8b74959c25e3acd8e40061f6}{find\+\_\+obsolete\+\_\+params}} (param\+\_\+file)
\begin{DoxyCompactList}\small\item\em Scans input parameter file for list obsolete parameters. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__obsolete__params_a0f74da6ca1e81bb5029fbdcd284d5427}{obsolete\+\_\+logical}} (param\+\_\+file, varname, warning\+\_\+val, hint)
\begin{DoxyCompactList}\small\item\em Test for presence of obsolete L\+O\+G\+I\+C\+AL in parameter file. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__obsolete__params_a6c1f3234bdde506565cc552c53dedaf8}{obsolete\+\_\+char}} (param\+\_\+file, varname, warning\+\_\+val, hint)
\begin{DoxyCompactList}\small\item\em Test for presence of obsolete S\+T\+R\+I\+NG in parameter file. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__obsolete__params_ae7343199aaed0daa5cda091cbd136c0c}{obsolete\+\_\+real}} (param\+\_\+file, varname, warning\+\_\+val, hint)
\begin{DoxyCompactList}\small\item\em Test for presence of obsolete R\+E\+AL in parameter file. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__obsolete__params_aa0a8fe574d071d3a40ac146c2b8070f0}{obsolete\+\_\+int}} (param\+\_\+file, varname, warning\+\_\+val, hint)
\begin{DoxyCompactList}\small\item\em Test for presence of obsolete I\+N\+T\+E\+G\+ER in parameter file. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacemom__obsolete__params_adeed714b8b74959c25e3acd8e40061f6}\label{namespacemom__obsolete__params_adeed714b8b74959c25e3acd8e40061f6}} 
\index{mom\_obsolete\_params@{mom\_obsolete\_params}!find\_obsolete\_params@{find\_obsolete\_params}}
\index{find\_obsolete\_params@{find\_obsolete\_params}!mom\_obsolete\_params@{mom\_obsolete\_params}}
\doxysubsubsection{\texorpdfstring{find\_obsolete\_params()}{find\_obsolete\_params()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+obsolete\+\_\+params\+::find\+\_\+obsolete\+\_\+params (\begin{DoxyParamCaption}\item[{type(param\+\_\+file\+\_\+type), intent(in)}]{param\+\_\+file }\end{DoxyParamCaption})}



Scans input parameter file for list obsolete parameters. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em param\+\_\+file} & Structure containing parameter file data. \\
\hline
\end{DoxyParams}


Definition at line 20 of file M\+O\+M\+\_\+obsolete\+\_\+params.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{21   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: param\_file\textcolor{comment}{ !< Structure containing parameter file data.}}
\DoxyCodeLine{22   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{23   \textcolor{keywordtype}{character(len=40)}  :: mdl = \textcolor{stringliteral}{"find\_obsolete\_params"} \textcolor{comment}{! This module's name.}}
\DoxyCodeLine{24 \textcolor{comment}{! This include declares and sets the variable "version".}}
\DoxyCodeLine{25 \textcolor{preprocessor}{\#include "version\_variable.h"}}
\DoxyCodeLine{26 \textcolor{preprocessor}{}  \textcolor{keywordtype}{integer} :: test\_int, l\_seg, nseg}
\DoxyCodeLine{27   \textcolor{keywordtype}{logical} :: test\_logic, test\_logic2, test\_logic3, split}
\DoxyCodeLine{28   \textcolor{keywordtype}{character(len=40)}  :: temp\_string}
\DoxyCodeLine{29 }
\DoxyCodeLine{30   \textcolor{keywordflow}{if} (.not.is\_root\_pe()) \textcolor{keywordflow}{return}}
\DoxyCodeLine{31 }
\DoxyCodeLine{32   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"BLOCKED\_ANALYTIC\_FV\_PGF"}, \&}
\DoxyCodeLine{33        hint=\textcolor{stringliteral}{"BLOCKED\_ANALYTIC\_FV\_PGF is no longer available."})}
\DoxyCodeLine{34 }
\DoxyCodeLine{35   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"ADD\_KV\_SLOW"}, \&}
\DoxyCodeLine{36        hint=\textcolor{stringliteral}{"This option is no longer needed, nor supported."})}
\DoxyCodeLine{37 }
\DoxyCodeLine{38   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"OBC\_CONFIG"}, \&}
\DoxyCodeLine{39        hint=\textcolor{stringliteral}{"Instead use OBC\_USER\_CONFIG and use the new segments protocol."})}
\DoxyCodeLine{40   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"READ\_OBC\_ETA"}, \&}
\DoxyCodeLine{41        hint=\textcolor{stringliteral}{"Instead use OBC\_SEGMENT\_XXX\_DATA."})}
\DoxyCodeLine{42   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"READ\_OBC\_UV"}, \&}
\DoxyCodeLine{43        hint=\textcolor{stringliteral}{"Instead use OBC\_SEGMENT\_XXX\_DATA."})}
\DoxyCodeLine{44   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"READ\_OBC\_TS"}, \&}
\DoxyCodeLine{45        hint=\textcolor{stringliteral}{"Instead use OBC\_SEGMENT\_XXX\_DATA."})}
\DoxyCodeLine{46   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"EXTEND\_OBC\_SEGMENTS"}, \&}
\DoxyCodeLine{47        hint=\textcolor{stringliteral}{"This option is no longer needed, nor supported."})}
\DoxyCodeLine{48   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"MEKE\_VISCOSITY\_COEFF"}, \&}
\DoxyCodeLine{49        hint=\textcolor{stringliteral}{"This option has been replaced by MEKE\_VISCOSITY\_COEFF\_KU and \(\backslash\)n"} //\&}
\DoxyCodeLine{50             \textcolor{stringliteral}{" MEKE\_VISCOSITY\_COEFF\_AU. Please set these parameters instead."})}
\DoxyCodeLine{51   nseg = 0}
\DoxyCodeLine{52   \textcolor{keyword}{call }read\_param(param\_file, \textcolor{stringliteral}{"OBC\_NUMBER\_OF\_SEGMENTS"}, nseg)}
\DoxyCodeLine{53   \textcolor{keywordflow}{do} l\_seg = 1,nseg}
\DoxyCodeLine{54     \textcolor{keyword}{write}(temp\_string(1:22),\textcolor{stringliteral}{"('OBC\_SEGMENT\_',i3.3,'\_TNUDGE')"}) l\_seg}
\DoxyCodeLine{55     \textcolor{keyword}{call }obsolete\_real(param\_file, temp\_string, \&}
\DoxyCodeLine{56          hint=\textcolor{stringliteral}{"Instead use OBC\_SEGMENT\_xxx\_VELOCITY\_NUDGING\_TIMESCALES."})}
\DoxyCodeLine{57 \textcolor{keywordflow}{  enddo}}
\DoxyCodeLine{58 }
\DoxyCodeLine{59   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"MASK\_MASSLESS\_TRACERS"}, .false.)}
\DoxyCodeLine{60 }
\DoxyCodeLine{61   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"SALT\_REJECT\_BELOW\_ML"}, .false.)}
\DoxyCodeLine{62   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"MLE\_USE\_MLD\_AVE\_BUG"}, .false.)}
\DoxyCodeLine{63   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"KG\_BG\_2D\_BUG"}, .false.)}
\DoxyCodeLine{64   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"CORRECT\_DENSITY"}, .true.)}
\DoxyCodeLine{65   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"WINDSTRESS\_STAGGER"}, warning\_val=\textcolor{stringliteral}{"C"}, \&}
\DoxyCodeLine{66                      hint=\textcolor{stringliteral}{"Use WIND\_STAGGER instead."})}
\DoxyCodeLine{67 }
\DoxyCodeLine{68   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"DIAG\_REMAP\_Z\_GRID\_DEF"}, \&}
\DoxyCodeLine{69                      hint=\textcolor{stringliteral}{"Use NUM\_DIAG\_COORDS, DIAG\_COORDS and DIAG\_COORD\_DEF\_Z"})}
\DoxyCodeLine{70 }
\DoxyCodeLine{71   \textcolor{keyword}{call }obsolete\_real(param\_file, \textcolor{stringliteral}{"VSTAR\_SCALE\_FACTOR"}, hint=\textcolor{stringliteral}{"Use EPBL\_VEL\_SCALE\_FACTOR instead."})}
\DoxyCodeLine{72   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"ORIG\_MLD\_ITERATION"}, .false.)}
\DoxyCodeLine{73 }
\DoxyCodeLine{74   \textcolor{keyword}{call }obsolete\_real(param\_file, \textcolor{stringliteral}{"VSTAR\_SCALE\_COEF"})}
\DoxyCodeLine{75   \textcolor{keyword}{call }obsolete\_real(param\_file, \textcolor{stringliteral}{"ZSTAR\_RIGID\_SURFACE\_THRESHOLD"})}
\DoxyCodeLine{76 }
\DoxyCodeLine{77   \textcolor{comment}{! Test for inconsistent parameter settings.}}
\DoxyCodeLine{78   split = .true. ; test\_logic = .false.}
\DoxyCodeLine{79   \textcolor{keyword}{call }read\_param(param\_file,\textcolor{stringliteral}{"SPLIT"},split)}
\DoxyCodeLine{80   \textcolor{keyword}{call }read\_param(param\_file,\textcolor{stringliteral}{"DYNAMIC\_SURFACE\_PRESSURE"},test\_logic)}
\DoxyCodeLine{81   \textcolor{keywordflow}{if} (test\_logic .and. .not.split) \textcolor{keyword}{call }mom\_error(fatal, \&}
\DoxyCodeLine{82     \textcolor{stringliteral}{"find\_obsolete\_params: \#define DYNAMIC\_SURFACE\_PRESSURE is not yet "}//\&}
\DoxyCodeLine{83     \textcolor{stringliteral}{"implemented without \#define SPLIT."})}
\DoxyCodeLine{84 }
\DoxyCodeLine{85   \textcolor{keyword}{call }obsolete\_real(param\_file, \textcolor{stringliteral}{"BT\_MASS\_SOURCE\_LIMIT"}, 0.0)}
\DoxyCodeLine{86 }
\DoxyCodeLine{87   \textcolor{keyword}{call }obsolete\_int(param\_file, \textcolor{stringliteral}{"SEAMOUNT\_LENGTH\_SCALE"}, hint=\textcolor{stringliteral}{"Use SEAMOUNT\_X\_LENGTH\_SCALE instead."})}
\DoxyCodeLine{88 }
\DoxyCodeLine{89   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"MSTAR\_FIXED"}, hint=\textcolor{stringliteral}{"Instead use MSTAR\_MODE."})}
\DoxyCodeLine{90   \textcolor{keyword}{call }obsolete\_logical(param\_file, \textcolor{stringliteral}{"USE\_VISBECK\_SLOPE\_BUG"}, .false.)}
\DoxyCodeLine{91 }
\DoxyCodeLine{92   \textcolor{keyword}{call }obsolete\_real(param\_file, \textcolor{stringliteral}{"MIN\_Z\_DIAG\_INTERVAL"})}
\DoxyCodeLine{93   \textcolor{keyword}{call }obsolete\_char(param\_file, \textcolor{stringliteral}{"Z\_OUTPUT\_GRID\_FILE"})}
\DoxyCodeLine{94 }
\DoxyCodeLine{95   \textcolor{comment}{! Write the file version number to the model log.}}
\DoxyCodeLine{96   \textcolor{keyword}{call }log\_version(param\_file, mdl, version)}
\DoxyCodeLine{97 }

\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__obsolete__params_a6c1f3234bdde506565cc552c53dedaf8}\label{namespacemom__obsolete__params_a6c1f3234bdde506565cc552c53dedaf8}} 
\index{mom\_obsolete\_params@{mom\_obsolete\_params}!obsolete\_char@{obsolete\_char}}
\index{obsolete\_char@{obsolete\_char}!mom\_obsolete\_params@{mom\_obsolete\_params}}
\doxysubsubsection{\texorpdfstring{obsolete\_char()}{obsolete\_char()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+obsolete\+\_\+params\+::obsolete\+\_\+char (\begin{DoxyParamCaption}\item[{type(param\+\_\+file\+\_\+type), intent(in)}]{param\+\_\+file,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{character(len=$\ast$), intent(in), optional}]{warning\+\_\+val,  }\item[{character(len=$\ast$), intent(in), optional}]{hint }\end{DoxyParamCaption})}



Test for presence of obsolete S\+T\+R\+I\+NG in parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em param\+\_\+file} & Structure containing parameter file data. \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & Name of obsolete S\+T\+R\+I\+NG parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em warning\+\_\+val} & An allowed value that causes a warning instead of an error. \\
\hline
\mbox{\texttt{ in}}  & {\em hint} & A hint to the user about what to do. \\
\hline
\end{DoxyParams}


Definition at line 144 of file M\+O\+M\+\_\+obsolete\+\_\+params.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{145   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: param\_file\textcolor{comment}{ !< Structure containing parameter file data.}}
\DoxyCodeLine{146   \textcolor{keywordtype}{character(len=*)},      \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{    !< Name of obsolete STRING parameter.}}
\DoxyCodeLine{147   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: warning\_val\textcolor{comment}{ !< An allowed value that causes a warning instead of an error.}}
\DoxyCodeLine{148   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: hint\textcolor{comment}{  !< A hint to the user about what to do.}}
\DoxyCodeLine{149   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{150   \textcolor{keywordtype}{character(len=200)} :: test\_string, hint\_msg}
\DoxyCodeLine{151   \textcolor{keywordtype}{logical} :: only\_warn}
\DoxyCodeLine{152 }
\DoxyCodeLine{153   test\_string = \textcolor{stringliteral}{''}; \textcolor{keyword}{call }read\_param(param\_file, varname, test\_string)}
\DoxyCodeLine{154   hint\_msg = \textcolor{stringliteral}{" "} ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(hint)) hint\_msg = hint}
\DoxyCodeLine{155 }
\DoxyCodeLine{156   \textcolor{keywordflow}{if} (len\_trim(test\_string) > 0) \textcolor{keywordflow}{then}}
\DoxyCodeLine{157     only\_warn = .false.}
\DoxyCodeLine{158     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(warning\_val)) \textcolor{keywordflow}{then} \textcolor{comment}{! Check if test\_string and warning\_val are the same.}}
\DoxyCodeLine{159       \textcolor{keywordflow}{if} (len\_trim(warning\_val) == len\_trim(test\_string)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{160         \textcolor{keywordflow}{if} (index(trim(test\_string), trim(warning\_val)) == 1) only\_warn = .true.}
\DoxyCodeLine{161 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{162 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{163 }
\DoxyCodeLine{164     \textcolor{keywordflow}{if} (only\_warn) \textcolor{keywordflow}{then}}
\DoxyCodeLine{165       \textcolor{keyword}{call }mom\_error(warning, \&}
\DoxyCodeLine{166              \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)// \&}
\DoxyCodeLine{167              \textcolor{stringliteral}{" is an obsolete run-\/time flag. "}//trim(hint\_msg))}
\DoxyCodeLine{168     \textcolor{keywordflow}{else}}
\DoxyCodeLine{169       \textcolor{keyword}{call }mom\_error(fatal, \&}
\DoxyCodeLine{170              \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)// \&}
\DoxyCodeLine{171              \textcolor{stringliteral}{" is an obsolete run-\/time flag, and should not be used. "}//trim(hint\_msg))}
\DoxyCodeLine{172 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{173 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__obsolete__params_aa0a8fe574d071d3a40ac146c2b8070f0}\label{namespacemom__obsolete__params_aa0a8fe574d071d3a40ac146c2b8070f0}} 
\index{mom\_obsolete\_params@{mom\_obsolete\_params}!obsolete\_int@{obsolete\_int}}
\index{obsolete\_int@{obsolete\_int}!mom\_obsolete\_params@{mom\_obsolete\_params}}
\doxysubsubsection{\texorpdfstring{obsolete\_int()}{obsolete\_int()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+obsolete\+\_\+params\+::obsolete\+\_\+int (\begin{DoxyParamCaption}\item[{type(param\+\_\+file\+\_\+type), intent(in)}]{param\+\_\+file,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{integer, intent(in), optional}]{warning\+\_\+val,  }\item[{character(len=$\ast$), intent(in), optional}]{hint }\end{DoxyParamCaption})}



Test for presence of obsolete I\+N\+T\+E\+G\+ER in parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em param\+\_\+file} & Structure containing parameter file data. \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & Name of obsolete I\+N\+T\+E\+G\+ER parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em warning\+\_\+val} & An allowed value that causes a warning instead of an error. \\
\hline
\mbox{\texttt{ in}}  & {\em hint} & A hint to the user about what to do. \\
\hline
\end{DoxyParams}


Definition at line 203 of file M\+O\+M\+\_\+obsolete\+\_\+params.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{204   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: param\_file\textcolor{comment}{  !< Structure containing parameter file data.}}
\DoxyCodeLine{205   \textcolor{keywordtype}{character(len=*)},      \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{     !< Name of obsolete INTEGER parameter.}}
\DoxyCodeLine{206   \textcolor{keywordtype}{integer},     \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: warning\_val\textcolor{comment}{ !< An allowed value that causes a warning instead of an error.}}
\DoxyCodeLine{207   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: hint\textcolor{comment}{   !< A hint to the user about what to do.}}
\DoxyCodeLine{208   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{209   \textcolor{keywordtype}{integer} :: test\_val, warn\_val}
\DoxyCodeLine{210   \textcolor{keywordtype}{character(len=128)} :: hint\_msg}
\DoxyCodeLine{211 }
\DoxyCodeLine{212   test\_val = -\/123456788; \textcolor{keyword}{call }read\_param(param\_file, varname, test\_val)}
\DoxyCodeLine{213   warn\_val = -\/123456788; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(warning\_val)) warn\_val = warning\_val}
\DoxyCodeLine{214   hint\_msg = \textcolor{stringliteral}{" "} ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(hint)) hint\_msg = hint}
\DoxyCodeLine{215 }
\DoxyCodeLine{216   \textcolor{keywordflow}{if} (test\_val /= -\/123456788) \textcolor{keywordflow}{then}}
\DoxyCodeLine{217     \textcolor{keywordflow}{if} (test\_val == warn\_val) \textcolor{keywordflow}{then}}
\DoxyCodeLine{218       \textcolor{keyword}{call }mom\_error(warning, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)// \&}
\DoxyCodeLine{219          \textcolor{stringliteral}{" is an obsolete run-\/time flag. "}//trim(hint\_msg))}
\DoxyCodeLine{220     \textcolor{keywordflow}{else}}
\DoxyCodeLine{221       \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)//   \&}
\DoxyCodeLine{222            \textcolor{stringliteral}{" is an obsolete run-\/time flag, and should not be used. "}// \&}
\DoxyCodeLine{223            trim(hint\_msg))}
\DoxyCodeLine{224 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{225 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__obsolete__params_a0f74da6ca1e81bb5029fbdcd284d5427}\label{namespacemom__obsolete__params_a0f74da6ca1e81bb5029fbdcd284d5427}} 
\index{mom\_obsolete\_params@{mom\_obsolete\_params}!obsolete\_logical@{obsolete\_logical}}
\index{obsolete\_logical@{obsolete\_logical}!mom\_obsolete\_params@{mom\_obsolete\_params}}
\doxysubsubsection{\texorpdfstring{obsolete\_logical()}{obsolete\_logical()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+obsolete\+\_\+params\+::obsolete\+\_\+logical (\begin{DoxyParamCaption}\item[{type(param\+\_\+file\+\_\+type), intent(in)}]{param\+\_\+file,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{logical, intent(in), optional}]{warning\+\_\+val,  }\item[{character(len=$\ast$), intent(in), optional}]{hint }\end{DoxyParamCaption})}



Test for presence of obsolete L\+O\+G\+I\+C\+AL in parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em param\+\_\+file} & Structure containing parameter file data. \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & Name of obsolete L\+O\+G\+I\+C\+AL parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em warning\+\_\+val} & An allowed value that causes a warning instead of an error. \\
\hline
\mbox{\texttt{ in}}  & {\em hint} & A hint to the user about what to do. \\
\hline
\end{DoxyParams}


Definition at line 101 of file M\+O\+M\+\_\+obsolete\+\_\+params.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{102   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: param\_file\textcolor{comment}{  !< Structure containing parameter file data.}}
\DoxyCodeLine{103   \textcolor{keywordtype}{character(len=*)},      \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{     !< Name of obsolete LOGICAL parameter.}}
\DoxyCodeLine{104   \textcolor{keywordtype}{logical},     \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: warning\_val\textcolor{comment}{ !< An allowed value that causes a warning instead of an error.}}
\DoxyCodeLine{105   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: hint\textcolor{comment}{   !< A hint to the user about what to do.}}
\DoxyCodeLine{106   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{107   \textcolor{keywordtype}{logical} :: test\_logic, fatal\_err}
\DoxyCodeLine{108   \textcolor{keywordtype}{character(len=128)} :: hint\_msg}
\DoxyCodeLine{109 }
\DoxyCodeLine{110   test\_logic = .false. ; \textcolor{keyword}{call }read\_param(param\_file, varname,test\_logic)}
\DoxyCodeLine{111   fatal\_err = .true.}
\DoxyCodeLine{112   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(warning\_val)) fatal\_err = (warning\_val .neqv. .true.)}
\DoxyCodeLine{113   hint\_msg = \textcolor{stringliteral}{" "} ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(hint)) hint\_msg = hint}
\DoxyCodeLine{114 }
\DoxyCodeLine{115   \textcolor{keywordflow}{if} (test\_logic) \textcolor{keywordflow}{then}}
\DoxyCodeLine{116     \textcolor{keywordflow}{if} (fatal\_err) \textcolor{keywordflow}{then}}
\DoxyCodeLine{117       \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)//   \&}
\DoxyCodeLine{118            \textcolor{stringliteral}{" is an obsolete run-\/time flag, and should not be used. "}// \&}
\DoxyCodeLine{119            trim(hint\_msg))}
\DoxyCodeLine{120     \textcolor{keywordflow}{else}}
\DoxyCodeLine{121       \textcolor{keyword}{call }mom\_error(warning, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)// \&}
\DoxyCodeLine{122            \textcolor{stringliteral}{" is an obsolete run-\/time flag. "}//trim(hint\_msg))}
\DoxyCodeLine{123 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{124 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{125 }
\DoxyCodeLine{126   test\_logic = .true. ; \textcolor{keyword}{call }read\_param(param\_file, varname, test\_logic)}
\DoxyCodeLine{127   fatal\_err = .true.}
\DoxyCodeLine{128   \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(warning\_val)) fatal\_err = (warning\_val .neqv. .false.)}
\DoxyCodeLine{129 }
\DoxyCodeLine{130   \textcolor{keywordflow}{if} (.not.test\_logic) \textcolor{keywordflow}{then}}
\DoxyCodeLine{131     \textcolor{keywordflow}{if} (fatal\_err) \textcolor{keywordflow}{then}}
\DoxyCodeLine{132       \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)//   \&}
\DoxyCodeLine{133            \textcolor{stringliteral}{" is an obsolete run-\/time flag, and should not be used. "}// \&}
\DoxyCodeLine{134            trim(hint\_msg))}
\DoxyCodeLine{135     \textcolor{keywordflow}{else}}
\DoxyCodeLine{136       \textcolor{keyword}{call }mom\_error(warning, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)// \&}
\DoxyCodeLine{137            \textcolor{stringliteral}{" is an obsolete run-\/time flag. "}//trim(hint\_msg))}
\DoxyCodeLine{138 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{139 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{140 }

\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__obsolete__params_ae7343199aaed0daa5cda091cbd136c0c}\label{namespacemom__obsolete__params_ae7343199aaed0daa5cda091cbd136c0c}} 
\index{mom\_obsolete\_params@{mom\_obsolete\_params}!obsolete\_real@{obsolete\_real}}
\index{obsolete\_real@{obsolete\_real}!mom\_obsolete\_params@{mom\_obsolete\_params}}
\doxysubsubsection{\texorpdfstring{obsolete\_real()}{obsolete\_real()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+obsolete\+\_\+params\+::obsolete\+\_\+real (\begin{DoxyParamCaption}\item[{type(param\+\_\+file\+\_\+type), intent(in)}]{param\+\_\+file,  }\item[{character(len=$\ast$), intent(in)}]{varname,  }\item[{real, intent(in), optional}]{warning\+\_\+val,  }\item[{character(len=$\ast$), intent(in), optional}]{hint }\end{DoxyParamCaption})}



Test for presence of obsolete R\+E\+AL in parameter file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em param\+\_\+file} & Structure containing parameter file data. \\
\hline
\mbox{\texttt{ in}}  & {\em varname} & Name of obsolete R\+E\+AL parameter. \\
\hline
\mbox{\texttt{ in}}  & {\em warning\+\_\+val} & An allowed value that causes a warning instead of an error. \\
\hline
\mbox{\texttt{ in}}  & {\em hint} & A hint to the user about what to do. \\
\hline
\end{DoxyParams}


Definition at line 177 of file M\+O\+M\+\_\+obsolete\+\_\+params.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{178   \textcolor{keywordtype}{type}(param\_file\_type), \textcolor{keywordtype}{intent(in)} :: param\_file\textcolor{comment}{  !< Structure containing parameter file data.}}
\DoxyCodeLine{179   \textcolor{keywordtype}{character(len=*)},      \textcolor{keywordtype}{intent(in)} :: varname\textcolor{comment}{     !< Name of obsolete REAL parameter.}}
\DoxyCodeLine{180 \textcolor{keywordtype}{  real},        \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: warning\_val\textcolor{comment}{ !< An allowed value that causes a warning instead of an error.}}
\DoxyCodeLine{181   \textcolor{keywordtype}{character(len=*)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: hint\textcolor{comment}{   !< A hint to the user about what to do.}}
\DoxyCodeLine{182   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{183 \textcolor{keywordtype}{  real} :: test\_val, warn\_val}
\DoxyCodeLine{184   \textcolor{keywordtype}{character(len=128)} :: hint\_msg}
\DoxyCodeLine{185 }
\DoxyCodeLine{186   test\_val = -\/9e35; \textcolor{keyword}{call }read\_param(param\_file, varname, test\_val)}
\DoxyCodeLine{187   warn\_val = -\/9e35; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(warning\_val)) warn\_val = warning\_val}
\DoxyCodeLine{188   hint\_msg = \textcolor{stringliteral}{" "} ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(hint)) hint\_msg = hint}
\DoxyCodeLine{189 }
\DoxyCodeLine{190   \textcolor{keywordflow}{if} (test\_val /= -\/9e35) \textcolor{keywordflow}{then}}
\DoxyCodeLine{191     \textcolor{keywordflow}{if} (test\_val == warn\_val) \textcolor{keywordflow}{then}}
\DoxyCodeLine{192       \textcolor{keyword}{call }mom\_error(warning, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)// \&}
\DoxyCodeLine{193          \textcolor{stringliteral}{" is an obsolete run-\/time flag. "}//trim(hint\_msg))}
\DoxyCodeLine{194     \textcolor{keywordflow}{else}}
\DoxyCodeLine{195       \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"MOM\_obsolete\_params: "}//trim(varname)//   \&}
\DoxyCodeLine{196            \textcolor{stringliteral}{" is an obsolete run-\/time flag, and should not be used. "}// \&}
\DoxyCodeLine{197            trim(hint\_msg))}
\DoxyCodeLine{198 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{199 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
