\hypertarget{namespacemom__fixed__initialization}{}\section{mom\+\_\+fixed\+\_\+initialization Module Reference}
\label{namespacemom__fixed__initialization}\index{mom\+\_\+fixed\+\_\+initialization@{mom\+\_\+fixed\+\_\+initialization}}


\subsection{Detailed Description}
Initializes fixed aspects of the model, such as horizontal grid metrics, topography and Coriolis. \subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \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 \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}


\subsection{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}}
\subsubsection{\texorpdfstring{mom\+\_\+initialize\+\_\+fixed()}{mom\_initialize\_fixed()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+fixed\+\_\+initialization\+::mom\+\_\+initialize\+\_\+fixed (\begin{DoxyParamCaption}\item[{type(dyn\+\_\+horgrid\+\_\+type), intent(inout)}]{G,  }\item[{type(unit\+\_\+scale\+\_\+type), intent(in)}]{US,  }\item[{type(ocean\+\_\+obc\+\_\+type), pointer}]{O\+BC,  }\item[{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{\tt in,out}  & {\em g} & The ocean\textquotesingle{}s grid structure.\\
\hline
\mbox{\tt in}  & {\em us} & A dimensional unit scaling type\\
\hline
 & {\em obc} & Open boundary structure.\\
\hline
\mbox{\tt in}  & {\em pf} & A structure indicating the open file to parse for model parameter values.\\
\hline
\mbox{\tt in}  & {\em write\+\_\+geom} & If true, write grid geometry files.\\
\hline
\mbox{\tt in}  & {\em output\+\_\+dir} & The directory into which to write files. \\
\hline
\end{DoxyParams}


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


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


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


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