\hypertarget{namespacemom__fixed__initialization}{}\doxysection{mom\+\_\+fixed\+\_\+initialization Module Reference}
\label{namespacemom__fixed__initialization}\index{mom\_fixed\_initialization@{mom\_fixed\_initialization}}


\doxysubsection{Detailed Description}
Initializes fixed aspects of the model, such as horizontal grid metrics, topography and Coriolis. \doxysubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \mbox{\hyperlink{namespacemom__fixed__initialization_a79fad1bd49f85eaa0579def2d9d4ae53}{mom\+\_\+initialize\+\_\+fixed}} (G, US, O\+BC, PF, write\+\_\+geom, output\+\_\+dir)
\begin{DoxyCompactList}\small\item\em M\+O\+M\+\_\+initialize\+\_\+fixed sets up time-\/invariant quantities related to M\+O\+M6\textquotesingle{}s horizontal grid, bathymetry, and the Coriolis parameter. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__fixed__initialization_ae980c841ada6296d07df08442398e87b}{mom\+\_\+initialize\+\_\+topography}} (D, max\+\_\+depth, G, PF, US)
\begin{DoxyCompactList}\small\item\em M\+O\+M\+\_\+initialize\+\_\+topography makes the appropriate call to set up the bathymetry. At this point the topography is in units of \mbox{[}m\mbox{]}, but this can be changed later. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacemom__fixed__initialization_a79fad1bd49f85eaa0579def2d9d4ae53}\label{namespacemom__fixed__initialization_a79fad1bd49f85eaa0579def2d9d4ae53}} 
\index{mom\_fixed\_initialization@{mom\_fixed\_initialization}!mom\_initialize\_fixed@{mom\_initialize\_fixed}}
\index{mom\_initialize\_fixed@{mom\_initialize\_fixed}!mom\_fixed\_initialization@{mom\_fixed\_initialization}}
\doxysubsubsection{\texorpdfstring{mom\_initialize\_fixed()}{mom\_initialize\_fixed()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+fixed\+\_\+initialization\+::mom\+\_\+initialize\+\_\+fixed (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structmom__dyn__horgrid_1_1dyn__horgrid__type}{dyn\+\_\+horgrid\+\_\+type}}), intent(inout)}]{G,  }\item[{type(\mbox{\hyperlink{structmom__unit__scaling_1_1unit__scale__type}{unit\+\_\+scale\+\_\+type}}), intent(in)}]{US,  }\item[{type(\mbox{\hyperlink{structmom__open__boundary_1_1ocean__obc__type}{ocean\+\_\+obc\+\_\+type}}), pointer}]{O\+BC,  }\item[{type(\mbox{\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}}), intent(in)}]{PF,  }\item[{logical, intent(in)}]{write\+\_\+geom,  }\item[{character(len=$\ast$), intent(in)}]{output\+\_\+dir }\end{DoxyParamCaption})}



M\+O\+M\+\_\+initialize\+\_\+fixed sets up time-\/invariant quantities related to M\+O\+M6\textquotesingle{}s horizontal grid, bathymetry, and the Coriolis parameter. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em g} & The ocean\textquotesingle{}s grid structure. \\
\hline
\mbox{\texttt{ in}}  & {\em us} & A dimensional unit scaling type \\
\hline
 & {\em obc} & Open boundary structure. \\
\hline
\mbox{\texttt{ in}}  & {\em pf} & A structure indicating the open file to parse for model parameter values. \\
\hline
\mbox{\texttt{ in}}  & {\em write\+\_\+geom} & If true, write grid geometry files. \\
\hline
\mbox{\texttt{ in}}  & {\em output\+\_\+dir} & The directory into which to write files. \\
\hline
\end{DoxyParams}


Definition at line 56 of file M\+O\+M\+\_\+fixed\+\_\+initialization.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{57   \textcolor{keywordtype}{type}(dyn\_horgrid\_type),  \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{    !< The ocean's grid structure.}}
\DoxyCodeLine{58   \textcolor{keywordtype}{type}(unit\_scale\_type),   \textcolor{keywordtype}{intent(in)}    :: US\textcolor{comment}{   !< A dimensional unit scaling type}}
\DoxyCodeLine{59   \textcolor{keywordtype}{type}(ocean\_OBC\_type),    \textcolor{keywordtype}{pointer}       :: OBC\textcolor{comment}{  !< Open boundary structure.}}
\DoxyCodeLine{60   \textcolor{keywordtype}{type}(param\_file\_type),   \textcolor{keywordtype}{intent(in)}    :: PF\textcolor{comment}{   !< A structure indicating the open file}}
\DoxyCodeLine{61 \textcolor{comment}{                                                 !! to parse for model parameter values.}}
\DoxyCodeLine{62   \textcolor{keywordtype}{logical},                 \textcolor{keywordtype}{intent(in)}    :: write\_geom\textcolor{comment}{ !< If true, write grid geometry files.}}
\DoxyCodeLine{63   \textcolor{keywordtype}{character(len=*)},        \textcolor{keywordtype}{intent(in)}    :: output\_dir\textcolor{comment}{ !< The directory into which to write files.}}
\DoxyCodeLine{64 }
\DoxyCodeLine{65   \textcolor{comment}{! Local}}
\DoxyCodeLine{66   \textcolor{keywordtype}{character(len=200)} :: inputdir   \textcolor{comment}{! The directory where NetCDF input files are.}}
\DoxyCodeLine{67   \textcolor{keywordtype}{character(len=200)} :: config}
\DoxyCodeLine{68   \textcolor{keywordtype}{character(len=40)}  :: mdl = \textcolor{stringliteral}{"{}MOM\_fixed\_initialization"{}} \textcolor{comment}{! This module's name.}}
\DoxyCodeLine{69   \textcolor{keywordtype}{logical} :: debug}
\DoxyCodeLine{70 \textcolor{comment}{! This include declares and sets the variable "{}version"{}.}}
\DoxyCodeLine{71 \textcolor{preprocessor}{\#include "{}version\_variable.h"{}}}
\DoxyCodeLine{72 \textcolor{preprocessor}{}}
\DoxyCodeLine{73   \textcolor{keyword}{call }calltree\_enter(\textcolor{stringliteral}{"{}MOM\_initialize\_fixed(), MOM\_fixed\_initialization.F90"{}})}
\DoxyCodeLine{74   \textcolor{keyword}{call }log\_version(pf, mdl, version, \textcolor{stringliteral}{"{}"{}})}
\DoxyCodeLine{75   \textcolor{keyword}{call }get\_param(pf, mdl, \textcolor{stringliteral}{"{}DEBUG"{}}, debug, default=.false.)}
\DoxyCodeLine{76 }
\DoxyCodeLine{77   \textcolor{keyword}{call }get\_param(pf, mdl, \textcolor{stringliteral}{"{}INPUTDIR"{}}, inputdir, \&}
\DoxyCodeLine{78          \textcolor{stringliteral}{"{}The directory in which input files are found."{}}, default=\textcolor{stringliteral}{"{}."{}})}
\DoxyCodeLine{79   inputdir = slasher(inputdir)}
\DoxyCodeLine{80 }
\DoxyCodeLine{81   \textcolor{comment}{! Set up the parameters of the physical domain (i.e. the grid), G}}
\DoxyCodeLine{82   \textcolor{keyword}{call }set\_grid\_metrics(g, pf, us)}
\DoxyCodeLine{83 }
\DoxyCodeLine{84   \textcolor{comment}{! Set up the bottom depth, G\%bathyT either analytically or from file}}
\DoxyCodeLine{85   \textcolor{comment}{! This also sets G\%max\_depth based on the input parameter MAXIMUM\_DEPTH,}}
\DoxyCodeLine{86   \textcolor{comment}{! or, if absent, is diagnosed as G\%max\_depth = max( G\%D(:,:) )}}
\DoxyCodeLine{87   \textcolor{keyword}{call }mom\_initialize\_topography(g\%bathyT, g\%max\_depth, g, pf, us)}
\DoxyCodeLine{88 \textcolor{comment}{!  call rescale\_dyn\_horgrid\_bathymetry(G, US\%Z\_to\_m)}}
\DoxyCodeLine{89 }
\DoxyCodeLine{90   \textcolor{comment}{! To initialize masks, the bathymetry in halo regions must be filled in}}
\DoxyCodeLine{91   \textcolor{keyword}{call }pass\_var(g\%bathyT, g\%Domain)}
\DoxyCodeLine{92 }
\DoxyCodeLine{93   \textcolor{comment}{! Determine the position of any open boundaries}}
\DoxyCodeLine{94   \textcolor{keyword}{call }open\_boundary\_config(g, us, pf, obc)}
\DoxyCodeLine{95 }
\DoxyCodeLine{96   \textcolor{comment}{! Make bathymetry consistent with open boundaries}}
\DoxyCodeLine{97   \textcolor{keyword}{call }open\_boundary\_impose\_normal\_slope(obc, g, g\%bathyT)}
\DoxyCodeLine{98 }
\DoxyCodeLine{99   \textcolor{comment}{! This call sets masks that prohibit flow over any point interpreted as land}}
\DoxyCodeLine{100   \textcolor{keyword}{call }initialize\_masks(g, pf, us)}
\DoxyCodeLine{101 }
\DoxyCodeLine{102   \textcolor{comment}{! Make OBC mask consistent with land mask}}
\DoxyCodeLine{103   \textcolor{keyword}{call }open\_boundary\_impose\_land\_mask(obc, g, g\%areaCu, g\%areaCv, us)}
\DoxyCodeLine{104 }
\DoxyCodeLine{105   \textcolor{keywordflow}{if} (debug) \textcolor{keywordflow}{then}}
\DoxyCodeLine{106     \textcolor{keyword}{call }hchksum(g\%bathyT, \textcolor{stringliteral}{'MOM\_initialize\_fixed: depth '}, g\%HI, haloshift=1, scale=us\%Z\_to\_m)}
\DoxyCodeLine{107     \textcolor{keyword}{call }hchksum(g\%mask2dT, \textcolor{stringliteral}{'MOM\_initialize\_fixed: mask2dT '}, g\%HI)}
\DoxyCodeLine{108     \textcolor{keyword}{call }uvchksum(\textcolor{stringliteral}{'MOM\_initialize\_fixed: mask2dC[uv]'}, g\%mask2dCu, \&}
\DoxyCodeLine{109                   g\%mask2dCv, g\%HI)}
\DoxyCodeLine{110     \textcolor{keyword}{call }qchksum(g\%mask2dBu, \textcolor{stringliteral}{'MOM\_initialize\_fixed: mask2dBu '}, g\%HI)}
\DoxyCodeLine{111 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{112 }
\DoxyCodeLine{113   \textcolor{comment}{! Modulate geometric scales according to geography.}}
\DoxyCodeLine{114   \textcolor{keyword}{call }get\_param(pf, mdl, \textcolor{stringliteral}{"{}CHANNEL\_CONFIG"{}}, config, \&}
\DoxyCodeLine{115                  \textcolor{stringliteral}{"{}A parameter that determines which set of channels are \(\backslash\)n"{}}//\&}
\DoxyCodeLine{116                  \textcolor{stringliteral}{"{}restricted to specific  widths.  Options are:\(\backslash\)n"{}}//\&}
\DoxyCodeLine{117                  \textcolor{stringliteral}{"{} \(\backslash\)t none -\/ All channels have the grid width.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{118                  \textcolor{stringliteral}{"{} \(\backslash\)t global\_1deg -\/ Sets 16 specific channels appropriate \(\backslash\)n"{}}//\&}
\DoxyCodeLine{119                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t for a 1-\/degree model, as used in CM2G.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{120                  \textcolor{stringliteral}{"{} \(\backslash\)t list -\/ Read the channel locations and widths from a \(\backslash\)n"{}}//\&}
\DoxyCodeLine{121                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t text file, like MOM\_channel\_list in the MOM\_SIS \(\backslash\)n"{}}//\&}
\DoxyCodeLine{122                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t test case.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{123                  \textcolor{stringliteral}{"{} \(\backslash\)t file -\/ Read open face widths everywhere from a \(\backslash\)n"{}}//\&}
\DoxyCodeLine{124                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t NetCDF file on the model grid."{}}, \&}
\DoxyCodeLine{125                  default=\textcolor{stringliteral}{"{}none"{}})}
\DoxyCodeLine{126   \textcolor{keywordflow}{select case} ( trim(config) )}
\DoxyCodeLine{127     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}none"{}})}
\DoxyCodeLine{128     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}list"{}}) ; \textcolor{keyword}{call }reset\_face\_lengths\_list(g, pf, us)}
\DoxyCodeLine{129     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}file"{}}) ; \textcolor{keyword}{call }reset\_face\_lengths\_file(g, pf, us)}
\DoxyCodeLine{130     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}global\_1deg"{}}) ; \textcolor{keyword}{call }reset\_face\_lengths\_named(g, pf, trim(config), us)}
\DoxyCodeLine{131 \textcolor{keywordflow}{    case default} ; \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"{}MOM\_initialize\_fixed: "{}}// \&}
\DoxyCodeLine{132       \textcolor{stringliteral}{"{}Unrecognized channel configuration "{}}//trim(config))}
\DoxyCodeLine{133 \textcolor{keywordflow}{  end select}}
\DoxyCodeLine{134 }
\DoxyCodeLine{135   \textcolor{comment}{!   This call sets the topography at velocity points.}}
\DoxyCodeLine{136   \textcolor{keywordflow}{if} (g\%bathymetry\_at\_vel) \textcolor{keywordflow}{then}}
\DoxyCodeLine{137     \textcolor{keyword}{call }get\_param(pf, mdl, \textcolor{stringliteral}{"{}VELOCITY\_DEPTH\_CONFIG"{}}, config, \&}
\DoxyCodeLine{138                    \textcolor{stringliteral}{"{}A string that determines how the topography is set at "{}}//\&}
\DoxyCodeLine{139                    \textcolor{stringliteral}{"{}velocity points. This may be 'min' or 'max'."{}}, \&}
\DoxyCodeLine{140                    default=\textcolor{stringliteral}{"{}max"{}})}
\DoxyCodeLine{141     \textcolor{keywordflow}{select case} ( trim(config) )}
\DoxyCodeLine{142       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}max"{}}) ; \textcolor{keyword}{call }set\_velocity\_depth\_max(g)}
\DoxyCodeLine{143       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}min"{}}) ; \textcolor{keyword}{call }set\_velocity\_depth\_min(g)}
\DoxyCodeLine{144 \textcolor{keywordflow}{      case default} ; \textcolor{keyword}{call }mom\_error(fatal, \textcolor{stringliteral}{"{}MOM\_initialize\_fixed: "{}}// \&}
\DoxyCodeLine{145         \textcolor{stringliteral}{"{}Unrecognized velocity depth configuration "{}}//trim(config))}
\DoxyCodeLine{146 \textcolor{keywordflow}{    end select}}
\DoxyCodeLine{147 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{148 }
\DoxyCodeLine{149 \textcolor{comment}{!    Calculate the value of the Coriolis parameter at the latitude   !}}
\DoxyCodeLine{150 \textcolor{comment}{!  of the q grid points [s-\/1].}}
\DoxyCodeLine{151   \textcolor{keyword}{call }mom\_initialize\_rotation(g\%CoriolisBu, g, pf, us=us)}
\DoxyCodeLine{152 \textcolor{comment}{!   Calculate the components of grad f (beta)}}
\DoxyCodeLine{153   \textcolor{keyword}{call }mom\_calculate\_grad\_coriolis(g\%dF\_dx, g\%dF\_dy, g, us=us)}
\DoxyCodeLine{154   \textcolor{keywordflow}{if} (debug) \textcolor{keywordflow}{then}}
\DoxyCodeLine{155     \textcolor{keyword}{call }qchksum(g\%CoriolisBu, \textcolor{stringliteral}{"{}MOM\_initialize\_fixed: f "{}}, g\%HI, scale=us\%s\_to\_T)}
\DoxyCodeLine{156     \textcolor{keyword}{call }hchksum(g\%dF\_dx, \textcolor{stringliteral}{"{}MOM\_initialize\_fixed: dF\_dx "{}}, g\%HI, scale=us\%m\_to\_L*us\%s\_to\_T)}
\DoxyCodeLine{157     \textcolor{keyword}{call }hchksum(g\%dF\_dy, \textcolor{stringliteral}{"{}MOM\_initialize\_fixed: dF\_dy "{}}, g\%HI, scale=us\%m\_to\_L*us\%s\_to\_T)}
\DoxyCodeLine{158 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{159 }
\DoxyCodeLine{160   \textcolor{keyword}{call }initialize\_grid\_rotation\_angle(g, pf)}
\DoxyCodeLine{161 }
\DoxyCodeLine{162 \textcolor{comment}{! Compute global integrals of grid values for later use in scalar diagnostics !}}
\DoxyCodeLine{163   \textcolor{keyword}{call }compute\_global\_grid\_integrals(g, us=us)}
\DoxyCodeLine{164 }
\DoxyCodeLine{165 \textcolor{comment}{! Write out all of the grid data used by this run.}}
\DoxyCodeLine{166   \textcolor{keywordflow}{if} (write\_geom) \textcolor{keyword}{call }write\_ocean\_geometry\_file(g, pf, output\_dir, us=us)}
\DoxyCodeLine{167 }
\DoxyCodeLine{168   \textcolor{keyword}{call }calltree\_leave(\textcolor{stringliteral}{'MOM\_initialize\_fixed()'})}
\DoxyCodeLine{169 }

\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__fixed__initialization_ae980c841ada6296d07df08442398e87b}\label{namespacemom__fixed__initialization_ae980c841ada6296d07df08442398e87b}} 
\index{mom\_fixed\_initialization@{mom\_fixed\_initialization}!mom\_initialize\_topography@{mom\_initialize\_topography}}
\index{mom\_initialize\_topography@{mom\_initialize\_topography}!mom\_fixed\_initialization@{mom\_fixed\_initialization}}
\doxysubsubsection{\texorpdfstring{mom\_initialize\_topography()}{mom\_initialize\_topography()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+fixed\+\_\+initialization\+::mom\+\_\+initialize\+\_\+topography (\begin{DoxyParamCaption}\item[{real, dimension(g\%isd\+:g\%ied,g\%jsd\+:g\%jed), intent(out)}]{D,  }\item[{real, intent(out)}]{max\+\_\+depth,  }\item[{type(\mbox{\hyperlink{structmom__dyn__horgrid_1_1dyn__horgrid__type}{dyn\+\_\+horgrid\+\_\+type}}), intent(in)}]{G,  }\item[{type(\mbox{\hyperlink{structmom__file__parser_1_1param__file__type}{param\+\_\+file\+\_\+type}}), intent(in)}]{PF,  }\item[{type(\mbox{\hyperlink{structmom__unit__scaling_1_1unit__scale__type}{unit\+\_\+scale\+\_\+type}}), intent(in), optional}]{US }\end{DoxyParamCaption})}



M\+O\+M\+\_\+initialize\+\_\+topography makes the appropriate call to set up the bathymetry. At this point the topography is in units of \mbox{[}m\mbox{]}, but this can be changed later. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em g} & The dynamic horizontal grid type \\
\hline
\mbox{\texttt{ out}}  & {\em d} & Ocean bottom depth \mbox{[}m\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em pf} & Parameter file structure \\
\hline
\mbox{\texttt{ out}}  & {\em max\+\_\+depth} & Maximum depth of model \mbox{[}m\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em us} & A dimensional unit scaling type \\
\hline
\end{DoxyParams}


Definition at line 174 of file M\+O\+M\+\_\+fixed\+\_\+initialization.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{175   \textcolor{keywordtype}{type}(dyn\_horgrid\_type),           \textcolor{keywordtype}{intent(in)}  :: G\textcolor{comment}{  !< The dynamic horizontal grid type}}
\DoxyCodeLine{176 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{dimension(G\%isd:G\%ied,G\%jsd:G\%jed)}, \&}
\DoxyCodeLine{177                                     \textcolor{keywordtype}{intent(out)} :: D\textcolor{comment}{  !< Ocean bottom depth [m]}}
\DoxyCodeLine{178   \textcolor{keywordtype}{type}(param\_file\_type),            \textcolor{keywordtype}{intent(in)}  :: PF\textcolor{comment}{ !< Parameter file structure}}
\DoxyCodeLine{179 \textcolor{keywordtype}{  real},                             \textcolor{keywordtype}{intent(out)} :: max\_depth\textcolor{comment}{ !< Maximum depth of model [m]}}
\DoxyCodeLine{180   \textcolor{keywordtype}{type}(unit\_scale\_type),  \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)}  :: US\textcolor{comment}{ !< A dimensional unit scaling type}}
\DoxyCodeLine{181 }
\DoxyCodeLine{182   \textcolor{comment}{! This subroutine makes the appropriate call to set up the bottom depth.}}
\DoxyCodeLine{183   \textcolor{comment}{! This is a separate subroutine so that it can be made public and shared with}}
\DoxyCodeLine{184   \textcolor{comment}{! the ice-\/sheet code or other components.}}
\DoxyCodeLine{185 }
\DoxyCodeLine{186   \textcolor{comment}{! Local variables}}
\DoxyCodeLine{187 \textcolor{keywordtype}{  real} :: m\_to\_Z, Z\_to\_m  \textcolor{comment}{! Dimensional rescaling factors}}
\DoxyCodeLine{188   \textcolor{keywordtype}{character(len=40)}  :: mdl = \textcolor{stringliteral}{"{}MOM\_initialize\_topography"{}} \textcolor{comment}{! This subroutine's name.}}
\DoxyCodeLine{189   \textcolor{keywordtype}{character(len=200)} :: config}
\DoxyCodeLine{190 }
\DoxyCodeLine{191   m\_to\_z = 1.0 ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(us)) m\_to\_z = us\%m\_to\_Z}
\DoxyCodeLine{192   z\_to\_m = 1.0 ; \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(us)) z\_to\_m = us\%Z\_to\_m}
\DoxyCodeLine{193 }
\DoxyCodeLine{194   \textcolor{keyword}{call }get\_param(pf, mdl, \textcolor{stringliteral}{"{}TOPO\_CONFIG"{}}, config, \&}
\DoxyCodeLine{195                  \textcolor{stringliteral}{"{}This specifies how bathymetry is specified: \(\backslash\)n"{}}//\&}
\DoxyCodeLine{196                  \textcolor{stringliteral}{"{} \(\backslash\)t file -\/ read bathymetric information from the file \(\backslash\)n"{}}//\&}
\DoxyCodeLine{197                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t specified by (TOPO\_FILE).\(\backslash\)n"{}}//\&}
\DoxyCodeLine{198                  \textcolor{stringliteral}{"{} \(\backslash\)t flat -\/ flat bottom set to MAXIMUM\_DEPTH. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{199                  \textcolor{stringliteral}{"{} \(\backslash\)t bowl -\/ an analytically specified bowl-\/shaped basin \(\backslash\)n"{}}//\&}
\DoxyCodeLine{200                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t ranging between MAXIMUM\_DEPTH and MINIMUM\_DEPTH. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{201                  \textcolor{stringliteral}{"{} \(\backslash\)t spoon -\/ a similar shape to 'bowl', but with an vertical \(\backslash\)n"{}}//\&}
\DoxyCodeLine{202                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t wall at the southern face. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{203                  \textcolor{stringliteral}{"{} \(\backslash\)t halfpipe -\/ a zonally uniform channel with a half-\/sine \(\backslash\)n"{}}//\&}
\DoxyCodeLine{204                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t profile in the meridional direction. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{205                  \textcolor{stringliteral}{"{} \(\backslash\)t bbuilder -\/ build topography from list of functions. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{206                  \textcolor{stringliteral}{"{} \(\backslash\)t benchmark -\/ use the benchmark test case topography. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{207                  \textcolor{stringliteral}{"{} \(\backslash\)t Neverworld -\/ use the Neverworld test case topography. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{208                  \textcolor{stringliteral}{"{} \(\backslash\)t DOME -\/ use a slope and channel configuration for the \(\backslash\)n"{}}//\&}
\DoxyCodeLine{209                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t DOME sill-\/overflow test case. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{210                  \textcolor{stringliteral}{"{} \(\backslash\)t ISOMIP -\/ use a slope and channel configuration for the \(\backslash\)n"{}}//\&}
\DoxyCodeLine{211                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t ISOMIP test case. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{212                  \textcolor{stringliteral}{"{} \(\backslash\)t DOME2D -\/ use a shelf and slope configuration for the \(\backslash\)n"{}}//\&}
\DoxyCodeLine{213                  \textcolor{stringliteral}{"{} \(\backslash\)t\(\backslash\)t DOME2D gravity current/overflow test case. \(\backslash\)n"{}}//\&}
\DoxyCodeLine{214                  \textcolor{stringliteral}{"{} \(\backslash\)t Kelvin -\/ flat but with rotated land mask.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{215                  \textcolor{stringliteral}{"{} \(\backslash\)t seamount -\/ Gaussian bump for spontaneous motion test case.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{216                  \textcolor{stringliteral}{"{} \(\backslash\)t dumbbell -\/ Sloshing channel with reservoirs on both ends.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{217                  \textcolor{stringliteral}{"{} \(\backslash\)t shelfwave -\/ exponential slope for shelfwave test case.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{218                  \textcolor{stringliteral}{"{} \(\backslash\)t Phillips -\/ ACC-\/like idealized topography used in the Phillips config.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{219                  \textcolor{stringliteral}{"{} \(\backslash\)t dense -\/ Denmark Strait-\/like dense water formation and overflow.\(\backslash\)n"{}}//\&}
\DoxyCodeLine{220                  \textcolor{stringliteral}{"{} \(\backslash\)t USER -\/ call a user modified routine."{}}, \&}
\DoxyCodeLine{221                  fail\_if\_missing=.true.)}
\DoxyCodeLine{222   max\_depth = -\/1.e9*m\_to\_z ; \textcolor{keyword}{call }read\_param(pf, \textcolor{stringliteral}{"{}MAXIMUM\_DEPTH"{}}, max\_depth, scale=m\_to\_z)}
\DoxyCodeLine{223   \textcolor{keywordflow}{select case} ( trim(config) )}
\DoxyCodeLine{224     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}file"{}});      \textcolor{keyword}{call }initialize\_topography\_from\_file(d, g, pf, us)}
\DoxyCodeLine{225     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}flat"{}});      \textcolor{keyword}{call }initialize\_topography\_named(d, g, pf, config, max\_depth, us)}
\DoxyCodeLine{226     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}spoon"{}});     \textcolor{keyword}{call }initialize\_topography\_named(d, g, pf, config, max\_depth, us)}
\DoxyCodeLine{227     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}bowl"{}});      \textcolor{keyword}{call }initialize\_topography\_named(d, g, pf, config, max\_depth, us)}
\DoxyCodeLine{228     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}halfpipe"{}});  \textcolor{keyword}{call }initialize\_topography\_named(d, g, pf, config, max\_depth, us)}
\DoxyCodeLine{229     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}DOME"{}});      \textcolor{keyword}{call }dome\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{230     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}ISOMIP"{}});    \textcolor{keyword}{call }isomip\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{231     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}bbuilder"{}});  \textcolor{keyword}{call }basin\_builder\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{232     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}benchmark"{}}); \textcolor{keyword}{call }benchmark\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{233     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}Neverworld"{}},\textcolor{stringliteral}{"{}Neverland"{}}); \textcolor{keyword}{call }neverworld\_initialize\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{234     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}DOME2D"{}});    \textcolor{keyword}{call }dome2d\_initialize\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{235     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}Kelvin"{}});    \textcolor{keyword}{call }kelvin\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{236     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}sloshing"{}});  \textcolor{keyword}{call }sloshing\_initialize\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{237     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}seamount"{}});  \textcolor{keyword}{call }seamount\_initialize\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{238     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}dumbbell"{}});  \textcolor{keyword}{call }dumbbell\_initialize\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{239     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}shelfwave"{}}); \textcolor{keyword}{call }shelfwave\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{240     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}Phillips"{}});  \textcolor{keyword}{call }phillips\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{241     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}dense"{}});     \textcolor{keyword}{call }dense\_water\_initialize\_topography(d, g, pf, max\_depth)}
\DoxyCodeLine{242     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{"{}USER"{}});      \textcolor{keyword}{call }user\_initialize\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{243 \textcolor{keywordflow}{    case default} ;      \textcolor{keyword}{call }mom\_error(fatal,\textcolor{stringliteral}{"{}MOM\_initialize\_topography: "{}}// \&}
\DoxyCodeLine{244       \textcolor{stringliteral}{"{}Unrecognized topography setup '"{}}//trim(config)//\textcolor{stringliteral}{"{}'"{}})}
\DoxyCodeLine{245 \textcolor{keywordflow}{  end select}}
\DoxyCodeLine{246   \textcolor{keywordflow}{if} (max\_depth>0.) \textcolor{keywordflow}{then}}
\DoxyCodeLine{247     \textcolor{keyword}{call }log\_param(pf, mdl, \textcolor{stringliteral}{"{}MAXIMUM\_DEPTH"{}}, max\_depth*z\_to\_m, \&}
\DoxyCodeLine{248                    \textcolor{stringliteral}{"{}The maximum depth of the ocean."{}}, units=\textcolor{stringliteral}{"{}m"{}})}
\DoxyCodeLine{249   \textcolor{keywordflow}{else}}
\DoxyCodeLine{250     max\_depth = diagnosemaximumdepth(d,g)}
\DoxyCodeLine{251     \textcolor{keyword}{call }log\_param(pf, mdl, \textcolor{stringliteral}{"{}!MAXIMUM\_DEPTH"{}}, max\_depth*z\_to\_m, \&}
\DoxyCodeLine{252                    \textcolor{stringliteral}{"{}The (diagnosed) maximum depth of the ocean."{}}, units=\textcolor{stringliteral}{"{}m"{}}, like\_default=.true.)}
\DoxyCodeLine{253 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{254   \textcolor{keywordflow}{if} (trim(config) /= \textcolor{stringliteral}{"{}DOME"{}}) \textcolor{keywordflow}{then}}
\DoxyCodeLine{255     \textcolor{keyword}{call }limit\_topography(d, g, pf, max\_depth, us)}
\DoxyCodeLine{256 \textcolor{keywordflow}{  endif}}
\DoxyCodeLine{257 }

\end{DoxyCode}
