/[MITgcm]/manual/s_examples/baroclinic_gyre/fourlayer.tex
ViewVC logotype

Contents of /manual/s_examples/baroclinic_gyre/fourlayer.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.22 - (show annotations) (download) (as text)
Wed Jun 28 18:57:15 2006 UTC (19 years ago) by jmc
Branch: MAIN
Changes since 1.21: +9 -15 lines
File MIME type: application/x-tex
get rid of CALC_MOM_RHS

1 % $Header: /u/gcmpack/manual/part3/case_studies/fourlayer_gyre/fourlayer.tex,v 1.21 2006/06/27 19:08:22 molod Exp $
2 % $Name: $
3
4 \section[Baroclinic Gyre MITgcm Example]{Four Layer Baroclinic Ocean Gyre In Spherical Coordinates}
5 \label{www:tutorials}
6 \label{sect:eg-fourlayer}
7 \begin{rawhtml}
8 <!-- CMIREDIR:eg-fourlayer: -->
9 \end{rawhtml}
10
11 \bodytext{bgcolor="#FFFFFFFF"}
12
13 %\begin{center}
14 %{\Large \bf Using MITgcm to Simulate a Baroclinic Ocean Gyre In Spherical
15 %Polar Coordinates}
16 %
17 %\vspace*{4mm}
18 %
19 %\vspace*{3mm}
20 %{\large May 2001}
21 %\end{center}
22
23 This document describes an example experiment using MITgcm
24 to simulate a baroclinic ocean gyre for four layers in spherical
25 polar coordinates. The files for this experiment can be found
26 in the verification directory under tutorial\_baroclinic\_gyre.
27
28 \subsection{Overview}
29 \label{www:tutorials}
30
31 This example experiment demonstrates using the MITgcm to simulate
32 a baroclinic, wind-forced, ocean gyre circulation. The experiment
33 is a numerical rendition of the gyre circulation problem similar
34 to the problems described analytically by Stommel in 1966
35 \cite{Stommel66} and numerically in Holland et. al \cite{Holland75}.
36 \\
37
38 In this experiment the model is configured to represent a mid-latitude
39 enclosed sector of fluid on a sphere, $60^{\circ} \times 60^{\circ}$ in
40 lateral extent. The fluid is $2$~km deep and is forced
41 by a constant in time zonal wind stress, $\tau_{\lambda}$, that varies
42 sinusoidally in the north-south direction. Topologically the simulated
43 domain is a sector on a sphere and the coriolis parameter, $f$, is defined
44 according to latitude, $\varphi$
45
46 \begin{equation}
47 \label{EQ:eg-fourlayer-fcori}
48 f(\varphi) = 2 \Omega \sin( \varphi )
49 \end{equation}
50
51 \noindent with the rotation rate, $\Omega$ set to $\frac{2 \pi}{86400s}$.
52 \\
53
54 The sinusoidal wind-stress variations are defined according to
55
56 \begin{equation}
57 \label{EQ:taux}
58 \tau_{\lambda}(\varphi) = \tau_{0}\sin(\pi \frac{\varphi}{L_{\varphi}})
59 \end{equation}
60
61 \noindent where $L_{\varphi}$ is the lateral domain extent ($60^{\circ}$) and
62 $\tau_0$ is set to $0.1N m^{-2}$.
63 \\
64
65 Figure \ref{FIG:eg-fourlayer-simulation_config}
66 summarizes the configuration simulated.
67 In contrast to the example in section \ref{sect:eg-baro}, the
68 current experiment simulates a spherical polar domain. As indicated
69 by the axes in the lower left of the figure the model code works internally
70 in a locally orthogonal coordinate $(x,y,z)$. For this experiment description
71 the local orthogonal model coordinate $(x,y,z)$ is synonymous
72 with the coordinates $(\lambda,\varphi,r)$ shown in figure
73 \ref{fig:spherical-polar-coord}
74 \\
75
76 The experiment has four levels in the vertical, each of equal thickness,
77 $\Delta z = 500$~m. Initially the fluid is stratified with a reference
78 potential temperature profile,
79 $\theta_{250}=20^{\circ}$~C,
80 $\theta_{750}=10^{\circ}$~C,
81 $\theta_{1250}=8^{\circ}$~C,
82 $\theta_{1750}=6^{\circ}$~C. The equation of state used in this experiment is
83 linear
84
85 \begin{equation}
86 \label{EQ:eg-fourlayer-linear1_eos}
87 \rho = \rho_{0} ( 1 - \alpha_{\theta}\theta^{'} )
88 \end{equation}
89
90 \noindent which is implemented in the model as a density anomaly equation
91
92 \begin{equation}
93 \label{EQ:eg-fourlayer-linear1_eos_pert}
94 \rho^{'} = -\rho_{0}\alpha_{\theta}\theta^{'}
95 \end{equation}
96
97 \noindent with $\rho_{0}=999.8\,{\rm kg\,m}^{-3}$ and
98 $\alpha_{\theta}=2\times10^{-4}\,{\rm degrees}^{-1} $. Integrated forward in
99 this configuration the model state variable {\bf theta} is equivalent to
100 either in-situ temperature, $T$, or potential temperature, $\theta$. For
101 consistency with later examples, in which the equation of state is
102 non-linear, we use $\theta$ to represent temperature here. This is
103 the quantity that is carried in the model core equations.
104
105 \begin{figure}
106 %% \begin{center}
107 %% \resizebox{7.5in}{5.5in}{
108 %% \includegraphics*[0.2in,0.7in][10.5in,10.5in]
109 %% {part3/case_studies/fourlayer_gyre/simulation_config.eps} }
110 %% \end{center}
111 \centerline{
112 \scalefig{.95}
113 \epsfbox{part3/case_studies/fourlayer_gyre/simulation_config.eps}
114 }
115 \caption{Schematic of simulation domain and wind-stress forcing function
116 for the four-layer gyre numerical experiment. The domain is enclosed by solid
117 walls at $0^{\circ}$~E, $60^{\circ}$~E, $0^{\circ}$~N and $60^{\circ}$~N.
118 An initial stratification is
119 imposed by setting the potential temperature, $\theta$, in each layer.
120 The vertical spacing, $\Delta z$, is constant and equal to $500$m.
121 }
122 \label{FIG:eg-fourlayer-simulation_config}
123 \end{figure}
124
125 \subsection{Equations solved}
126 \label{www:tutorials}
127 For this problem
128 the implicit free surface, {\bf HPE} (see section \ref{sect:hydrostatic_and_quasi-hydrostatic_forms}) form of the
129 equations described in Marshall et. al \cite{marshall:97a} are
130 employed. The flow is three-dimensional with just temperature, $\theta$, as
131 an active tracer. The equation of state is linear.
132 A horizontal Laplacian operator $\nabla_{h}^2$ provides viscous
133 dissipation and provides a diffusive sub-grid scale closure for the
134 temperature equation. A wind-stress momentum forcing is added to the momentum
135 equation for the zonal flow, $u$. Other terms in the model
136 are explicitly switched off for this experiment configuration (see section
137 \ref{SEC:eg_fourl_code_config} ). This yields an active set of equations
138 solved in this configuration, written in spherical polar coordinates as
139 follows
140
141 \begin{eqnarray}
142 \label{EQ:eg-fourlayer-model_equations}
143 \frac{Du}{Dt} - fv +
144 \frac{1}{\rho}\frac{\partial p^{\prime}}{\partial \lambda} -
145 A_{h}\nabla_{h}^2u - A_{z}\frac{\partial^{2}u}{\partial z^{2}}
146 & = &
147 \cal{F}_{\lambda}
148 \\
149 \frac{Dv}{Dt} + fu +
150 \frac{1}{\rho}\frac{\partial p^{\prime}}{\partial \varphi} -
151 A_{h}\nabla_{h}^2v - A_{z}\frac{\partial^{2}v}{\partial z^{2}}
152 & = &
153 0
154 \\
155 \frac{\partial \eta}{\partial t} + \frac{\partial H \widehat{u}}{\partial \lambda} +
156 \frac{\partial H \widehat{v}}{\partial \varphi}
157 &=&
158 0
159 \label{eq:fourl_example_continuity}
160 \\
161 \frac{D\theta}{Dt} -
162 K_{h}\nabla_{h}^2\theta - K_{z}\frac{\partial^{2}\theta}{\partial z^{2}}
163 & = &
164 0
165 \label{eq:eg_fourl_theta}
166 \\
167 p^{\prime} & = &
168 g\rho_{0} \eta + \int^{0}_{-z}\rho^{\prime} dz
169 \\
170 \rho^{\prime} & = &- \alpha_{\theta}\rho_{0}\theta^{\prime}
171 \\
172 {\cal F}_{\lambda} |_{s} & = & \frac{\tau_{\lambda}}{\rho_{0}\Delta z_{s}}
173 \\
174 {\cal F}_{\lambda} |_{i} & = & 0
175 \end{eqnarray}
176
177 \noindent where $u$ and $v$ are the components of the horizontal
178 flow vector $\vec{u}$ on the sphere ($u=\dot{\lambda},v=\dot{\varphi}$).
179 The terms $H\widehat{u}$ and $H\widehat{v}$ are the components of the vertical
180 integral term given in equation \ref{eq:free-surface} and
181 explained in more detail in section \ref{sect:pressure-method-linear-backward}.
182 However, for the problem presented here, the continuity relation (equation
183 \ref{eq:fourl_example_continuity}) differs from the general form given
184 in section \ref{sect:pressure-method-linear-backward},
185 equation \ref{eq:linear-free-surface=P-E+R}, because the source terms
186 ${\cal P}-{\cal E}+{\cal R}$
187 are all $0$.
188
189 The pressure field, $p^{\prime}$, is separated into a barotropic part
190 due to variations in sea-surface height, $\eta$, and a hydrostatic
191 part due to variations in density, $\rho^{\prime}$, integrated
192 through the water column.
193
194 The suffices ${s},{i}$ indicate surface layer and the interior of the domain.
195 The windstress forcing, ${\cal F}_{\lambda}$, is applied in the surface layer
196 by a source term in the zonal momentum equation. In the ocean interior
197 this term is zero.
198
199 In the momentum equations
200 lateral and vertical boundary conditions for the $\nabla_{h}^{2}$
201 and $\frac{\partial^{2}}{\partial z^{2}}$ operators are specified
202 when the numerical simulation is run - see section
203 \ref{SEC:eg_fourl_code_config}. For temperature
204 the boundary condition is ``zero-flux''
205 e.g. $\frac{\partial \theta}{\partial \varphi}=
206 \frac{\partial \theta}{\partial \lambda}=\frac{\partial \theta}{\partial z}=0$.
207
208
209
210 \subsection{Discrete Numerical Configuration}
211 \label{www:tutorials}
212
213 The domain is discretised with
214 a uniform grid spacing in latitude and longitude
215 $\Delta \lambda=\Delta \varphi=1^{\circ}$, so
216 that there are sixty grid cells in the zonal and meridional directions.
217 Vertically the
218 model is configured with four layers with constant depth,
219 $\Delta z$, of $500$~m. The internal, locally orthogonal, model coordinate
220 variables $x$ and $y$ are initialized from the values of
221 $\lambda$, $\varphi$, $\Delta \lambda$ and $\Delta \varphi$ in
222 radians according to
223
224 \begin{eqnarray}
225 x=r\cos(\varphi)\lambda,~\Delta x & = &r\cos(\varphi)\Delta \lambda \\
226 y=r\varphi,~\Delta y &= &r\Delta \varphi
227 \end{eqnarray}
228
229 The procedure for generating a set of internal grid variables from a
230 spherical polar grid specification is discussed in section
231 \ref{sect:spatial_discrete_horizontal_grid}.
232
233 \noindent\fbox{ \begin{minipage}{5.5in}
234 {\em S/R INI\_SPHERICAL\_POLAR\_GRID} ({\em
235 model/src/ini\_spherical\_polar\_grid.F})
236
237 $A_c$, $A_\zeta$, $A_w$, $A_s$: {\bf rAc}, {\bf rAz}, {\bf rAw}, {\bf rAs}
238 ({\em GRID.h})
239
240 $\Delta x_g$, $\Delta y_g$: {\bf DXg}, {\bf DYg} ({\em GRID.h})
241
242 $\Delta x_c$, $\Delta y_c$: {\bf DXc}, {\bf DYc} ({\em GRID.h})
243
244 $\Delta x_f$, $\Delta y_f$: {\bf DXf}, {\bf DYf} ({\em GRID.h})
245
246 $\Delta x_v$, $\Delta y_u$: {\bf DXv}, {\bf DYu} ({\em GRID.h})
247
248 \end{minipage} }\\
249
250
251
252 As described in \ref{sect:tracer_equations}, the time evolution of potential
253 temperature,
254 $\theta$, (equation \ref{eq:eg_fourl_theta})
255 is evaluated prognostically. The centered second-order scheme with
256 Adams-Bashforth time stepping described in section
257 \ref{sect:tracer_equations_abII} is used to step forward the temperature
258 equation. Prognostic terms in
259 the momentum equations are solved using flux form as
260 described in section \ref{sect:flux-form_momentum_eqautions}.
261 The pressure forces that drive the fluid motions, (
262 $\frac{\partial p^{'}}{\partial \lambda}$ and $\frac{\partial p^{'}}{\partial \varphi}$), are found by summing pressure due to surface
263 elevation $\eta$ and the hydrostatic pressure. The hydrostatic part of the
264 pressure is diagnosed explicitly by integrating density. The sea-surface
265 height, $\eta$, is diagnosed using an implicit scheme. The pressure
266 field solution method is described in sections
267 \ref{sect:pressure-method-linear-backward} and
268 \ref{sect:finding_the_pressure_field}.
269
270 \subsubsection{Numerical Stability Criteria}
271 \label{www:tutorials}
272
273 The Laplacian viscosity coefficient, $A_{h}$, is set to $400 m s^{-1}$.
274 This value is chosen to yield a Munk layer width,
275
276 \begin{eqnarray}
277 \label{EQ:eg-fourlayer-munk_layer}
278 M_{w} = \pi ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}}
279 \end{eqnarray}
280
281 \noindent of $\approx 100$km. This is greater than the model
282 resolution in mid-latitudes
283 $\Delta x=r \cos(\varphi) \Delta \lambda \approx 80~{\rm km}$ at
284 $\varphi=45^{\circ}$, ensuring that the frictional
285 boundary layer is well resolved.
286 \\
287
288 \noindent The model is stepped forward with a
289 time step $\delta t=1200$secs. With this time step the stability
290 parameter to the horizontal Laplacian friction
291
292 \begin{eqnarray}
293 \label{EQ:eg-fourlayer-laplacian_stability}
294 S_{l} = 4 \frac{A_{h} \delta t}{{\Delta x}^2}
295 \end{eqnarray}
296
297 \noindent evaluates to 0.012, which is well below the 0.3 upper limit
298 for stability for this term under ABII time-stepping.
299 \\
300
301 \noindent The vertical dissipation coefficient, $A_{z}$, is set to
302 $1\times10^{-2} {\rm m}^2{\rm s}^{-1}$. The associated stability limit
303
304 \begin{eqnarray}
305 \label{EQ:eg-fourlayer-laplacian_stability_z}
306 S_{l} = 4 \frac{A_{z} \delta t}{{\Delta z}^2}
307 \end{eqnarray}
308
309 \noindent evaluates to $4.8 \times 10^{-5}$ which is again well below
310 the upper limit.
311 The values of $A_{h}$ and $A_{z}$ are also used for the horizontal ($K_{h}$)
312 and vertical ($K_{z}$) diffusion coefficients for temperature respectively.
313 \\
314
315 \noindent The numerical stability for inertial oscillations
316
317 \begin{eqnarray}
318 \label{EQ:eg-fourlayer-inertial_stability}
319 S_{i} = f^{2} {\delta t}^2
320 \end{eqnarray}
321
322 \noindent evaluates to $0.0144$, which is well below the $0.5$ upper
323 limit for stability.
324 \\
325
326 \noindent The advective CFL for a extreme maximum
327 horizontal flow
328 speed of $ | \vec{u} | = 2 ms^{-1}$
329
330 \begin{eqnarray}
331 \label{EQ:eg-fourlayer-cfl_stability}
332 C_{a} = \frac{| \vec{u} | \delta t}{ \Delta x}
333 \end{eqnarray}
334
335 \noindent evaluates to $5 \times 10^{-2}$. This is well below the stability
336 limit of 0.5.
337 \\
338
339 \noindent The stability parameter for internal gravity waves
340 propagating at $2~{\rm m}~{\rm s}^{-1}$
341
342 \begin{eqnarray}
343 \label{EQ:eg-fourlayer-igw_stability}
344 S_{c} = \frac{c_{g} \delta t}{ \Delta x}
345 \end{eqnarray}
346
347 \noindent evaluates to $\approx 5 \times 10^{-2}$. This is well below the linear
348 stability limit of 0.25.
349
350 \subsection{Code Configuration}
351 \label{www:tutorials}
352 \label{SEC:eg_fourl_code_config}
353
354 The model configuration for this experiment resides under the
355 directory {\it verification/exp2/}. The experiment files
356 \begin{itemize}
357 \item {\it input/data}
358 \item {\it input/data.pkg}
359 \item {\it input/eedata},
360 \item {\it input/windx.sin\_y},
361 \item {\it input/topog.box},
362 \item {\it code/CPP\_EEOPTIONS.h}
363 \item {\it code/CPP\_OPTIONS.h},
364 \item {\it code/SIZE.h}.
365 \end{itemize}
366 contain the code customisations and parameter settings for this
367 experiment. Below we describe the customisations to these files
368 associated with this experiment.
369
370 \subsubsection{File {\it input/data}}
371 \label{www:tutorials}
372
373 This file, reproduced completely below, specifies the main parameters
374 for the experiment. The parameters that are significant for this configuration
375 are
376
377 \begin{itemize}
378
379 \item Line 4,
380 \begin{verbatim} tRef=20.,10.,8.,6., \end{verbatim}
381 this line sets the initial and reference values of potential
382 temperature at each model level in units of $^{\circ}\mathrm{C}$. The entries
383 are ordered from surface to depth. For each depth level the initial
384 and reference profiles will be uniform in $x$ and $y$. The values
385 specified here are read into the variable \varlink{tRef}{tRef} in the
386 model code, by procedure \filelink{INI\_PARMS}{model-src-ini_parms.F}
387
388 \fbox{
389 \begin{minipage}{5.0in}
390 {\it S/R INI\_THETA}({\it ini\_theta.F})
391 \end{minipage}
392 }
393 \filelink{ini\_theta.F}{model-src-ini_theta.F}
394
395 \item Line 6,
396 \begin{verbatim} viscAz=1.E-2, \end{verbatim}
397 this line sets the vertical Laplacian dissipation coefficient to $1
398 \times 10^{-2} {\rm m^{2}s^{-1}}$. Boundary conditions for this
399 operator are specified later. The variable \varlink{viscAz}{viscAz}
400 is read in the routine \filelink{ini\_parms.F}{model-src-ini_parms.F}
401 and is copied into model general vertical coordinate variable
402 \varlink{viscAr}{viscAr} At each time step, the viscous term
403 contribution to the momentum equations is calculated in routine
404 \varlink{CALC\_DIFFUSIVITY}{CALC_DIFFUSIVITY}
405
406 \fbox{
407 \begin{minipage}{5.0in}
408 {\it S/R CALC\_DIFFUSIVITY}({\it calc\_diffusivity.F})
409 \end{minipage}
410 }
411
412 \item Line 7,
413 \begin{verbatim}
414 viscAh=4.E2,
415 \end{verbatim}
416 this line sets the horizontal laplacian frictional dissipation
417 coefficient to $1 \times 10^{-2} {\rm m^{2}s^{-1}}$. Boundary
418 conditions for this operator are specified later. The variable
419 \varlink{viscAh}{viscAh} is read in the routine
420 \varlink{INI\_PARMS}{INI_PARMS} and applied in routine
421 \varlink{MOM\_FLUXFORM}{MOM_FLUXFORM}.
422
423 \fbox{
424 \begin{minipage}{5.0in}
425 {\it S/R MOM\_FLUXFORM}({\it mom\_fluxform.F})
426 \end{minipage}
427 }
428
429 \item Line 8,
430 \begin{verbatim}
431 no_slip_sides=.FALSE.
432 \end{verbatim}
433 this line selects a free-slip lateral boundary condition for the
434 horizontal laplacian friction operator e.g. $\frac{\partial
435 u}{\partial y}$=0 along boundaries in $y$ and $\frac{\partial
436 v}{\partial x}$=0 along boundaries in $x$. The variable
437 \varlink{no\_slip\_sides}{no_slip_sides} is read in the routine
438 \varlink{INI\_PARMS}{INI_PARMS} and the boundary condition is
439 evaluated in routine
440
441 \fbox{
442 \begin{minipage}{5.0in}
443 {\it S/R MOM\_FLUXFORM}({\it mom\_fluxform.F})
444 \end{minipage}
445 }
446 \filelink{mom\_fluxform.F}{pkg-mom_fluxform-mom_fluxform.F}
447
448 \item Lines 9,
449 \begin{verbatim}
450 no_slip_bottom=.TRUE.
451 \end{verbatim}
452 this line selects a no-slip boundary condition for bottom boundary
453 condition in the vertical laplacian friction operator e.g. $u=v=0$
454 at $z=-H$, where $H$ is the local depth of the domain. The variable
455 \varlink{no\_slip\_bottom}{no\_slip\_bottom} is read in the routine
456 \filelink{INI\_PARMS}{model-src-ini_parms.F} and is applied in the
457 routine \varlink{MOM\_FLUXFORM}{MOM_FLUXFORM}.
458
459 \fbox{
460 \begin{minipage}{5.0in}
461 {\it S/R MOM\_FLUXFORM}({\it mom\_fluxform.F})
462 \end{minipage}
463 }
464 \filelink{mom\_fluxform.F}{pkg-mom_fluxform-mom_fluxform.F}
465
466 \item Line 10,
467 \begin{verbatim}
468 diffKhT=4.E2,
469 \end{verbatim}
470 this line sets the horizontal diffusion coefficient for temperature
471 to $400\,{\rm m^{2}s^{-1}}$. The boundary condition on this operator
472 is $\frac{\partial}{\partial x}=\frac{\partial}{\partial y}=0$ at
473 all boundaries. The variable \varlink{diffKhT}{diffKhT} is read in
474 the routine \varlink{INI\_PARMS}{INI_PARMS} and used in routine
475 \varlink{CALC\_GT}{CALC_GT}.
476
477 \fbox{ \begin{minipage}{5.0in}
478 {\it S/R CALC\_GT}({\it calc\_gt.F})
479 \end{minipage}
480 }
481 \filelink{calc\_gt.F}{model-src-calc_gt.F}
482
483 \item Line 11,
484 \begin{verbatim}
485 diffKzT=1.E-2,
486 \end{verbatim}
487 this line sets the vertical diffusion coefficient for temperature to
488 $10^{-2}\,{\rm m^{2}s^{-1}}$. The boundary condition on this
489 operator is $\frac{\partial}{\partial z}$ = 0 on all boundaries.
490 The variable \varlink{diffKzT}{diffKzT} is read in the routine
491 \varlink{INI\_PARMS}{INI_PARMS}. It is copied into model general
492 vertical coordinate variable \varlink{diffKrT}{diffKrT} which is
493 used in routine \varlink{CALC\_DIFFUSIVITY}{CALC_DIFFUSIVITY}.
494
495 \fbox{ \begin{minipage}{5.0in}
496 {\it S/R CALC\_DIFFUSIVITY}({\it calc\_diffusivity.F})
497 \end{minipage}
498 }
499 \filelink{calc\_diffusivity.F}{model-src-calc_diffusivity.F}
500
501 \item Line 13,
502 \begin{verbatim}
503 tAlpha=2.E-4,
504 \end{verbatim}
505 This line sets the thermal expansion coefficient for the fluid to $2
506 \times 10^{-4}\,{\rm degrees}^{-1}$ The variable
507 \varlink{tAlpha}{tAlpha} is read in the routine
508 \varlink{INI\_PARMS}{INI_PARMS}. The routine
509 \varlink{FIND\_RHO}{FIND\_RHO} makes use of {\bf tAlpha}.
510
511 \fbox{
512 \begin{minipage}{5.0in}
513 {\it S/R FIND\_RHO}({\it find\_rho.F})
514 \end{minipage}
515 }
516 \filelink{find\_rho.F}{model-src-find_rho.F}
517
518 \item Line 18,
519 \begin{verbatim}
520 eosType='LINEAR'
521 \end{verbatim}
522 This line selects the linear form of the equation of state. The
523 variable \varlink{eosType}{eosType} is read in the routine
524 \varlink{INI\_PARMS}{INI_PARMS}. The values of {\bf eosType} sets
525 which formula in routine {\it FIND\_RHO} is used to calculate
526 density.
527
528 \fbox{
529 \begin{minipage}{5.0in}
530 {\it S/R FIND\_RHO}({\it find\_rho.F})
531 \end{minipage}
532 }
533 \filelink{find\_rho.F}{model-src-find_rho.F}
534
535 \item Line 40,
536 \begin{verbatim}
537 usingSphericalPolarGrid=.TRUE.,
538 \end{verbatim}
539 This line requests that the simulation be performed in a spherical
540 polar coordinate system. It affects the interpretation of grid input
541 parameters, for example {\bf delX} and {\bf delY} and causes the
542 grid generation routines to initialize an internal grid based on
543 spherical polar geometry. The variable
544 \varlink{usingSphericalPolarGrid}{usingSphericalPolarGrid} is read
545 in the routine \varlink{INI\_PARMS}{INI_PARMS}. When set to {\bf
546 .TRUE.} the settings of {\bf delX} and {\bf delY} are taken to be
547 in degrees. These values are used in the routine
548
549 \fbox{
550 \begin{minipage}{5.0in}
551 {\it S/R INI\_SPEHRICAL\_POLAR\_GRID}({\it ini\_spherical\_polar\_grid.F})
552 \end{minipage}
553 }
554 \filelink{ini\_spherical\_polar\_grid.F}{model-src-ini_spherical_polar_grid.F}
555
556 \item Line 41,
557 \begin{verbatim}
558 phiMin=0.,
559 \end{verbatim}
560 This line sets the southern boundary of the modeled domain to
561 $0^{\circ}$ latitude. This value affects both the generation of the
562 locally orthogonal grid that the model uses internally and affects
563 the initialization of the coriolis force. Note - it is not required
564 to set a longitude boundary, since the absolute longitude does not
565 alter the kernel equation discretisation. The variable
566 \varlink{phiMin}{phiMin} is read in the
567 routine \varlink{INI\_PARMS}{INI_PARMS} and is used in routine
568
569 \fbox{
570 \begin{minipage}{5.0in}
571 {\it S/R INI\_SPEHRICAL\_POLAR\_GRID}({\it ini\_spherical\_polar\_grid.F})
572 \end{minipage}
573 }
574 \filelink{ini\_spherical\_polar\_grid.F}{model-src-ini_spherical_polar_grid.F}
575
576 \item Line 42,
577 \begin{verbatim}
578 delX=60*1.,
579 \end{verbatim}
580 This line sets the horizontal grid spacing between each y-coordinate
581 line in the discrete grid to $1^{\circ}$ in longitude. The variable
582 \varlink{delX}{delX} is read in the routine
583 \varlink{INI\_PARMS}{INI_PARMS} and is used in routine
584
585 \fbox{
586 \begin{minipage}{5.0in}
587 {\it S/R INI\_SPEHRICAL\_POLAR\_GRID}({\it ini\_spherical\_polar\_grid.F})
588 \end{minipage}
589 }
590 \filelink{ini\_spherical\_polar\_grid.F}{model-src-ini_spherical_polar_grid.F}
591
592 \item Line 43,
593 \begin{verbatim}
594 delY=60*1.,
595 \end{verbatim}
596 This line sets the horizontal grid spacing between each y-coordinate
597 line in the discrete grid to $1^{\circ}$ in latitude. The variable
598 \varlink{delY}{delY} is read in the routine
599 \varlink{INI\_PARMS}{INI_PARMS} and is used in routine
600
601 \fbox{
602 \begin{minipage}{5.0in}
603 {\it S/R INI\_SPEHRICAL\_POLAR\_GRID}({\it ini\_spherical\_polar\_grid.F})
604 \end{minipage}
605 }
606 \filelink{ini\_spherical\_polar\_grid.F}{model-src-ini_spherical_polar_grid.F}
607
608 \item Line 44,
609 \begin{verbatim}
610 delZ=500.,500.,500.,500.,
611 \end{verbatim}
612 This line sets the vertical grid spacing between each z-coordinate
613 line in the discrete grid to $500\,{\rm m}$, so that the total model
614 depth is $2\,{\rm km}$. The variable \varlink{delZ}{delZ} is read
615 in the routine \varlink{INI\_PARMS}{INI_PARMS}. It is copied into
616 the internal model coordinate variable \varlink{delR}{delR} which is
617 used in routine
618
619 \fbox{
620 \begin{minipage}{5.0in}
621 {\it S/R INI\_VERTICAL\_GRID}({\it ini\_vertical\_grid.F})
622 \end{minipage}
623 }
624 \filelink{ini\_vertical\_grid.F}{model-src-ini_vertical_grid.F}
625
626 \item Line 47,
627 \begin{verbatim}
628 bathyFile='topog.box'
629 \end{verbatim}
630 This line specifies the name of the file from which the domain
631 bathymetry is read. This file is a two-dimensional ($x,y$) map of
632 depths. This file is assumed to contain 64-bit binary numbers giving
633 the depth of the model at each grid cell, ordered with the x
634 coordinate varying fastest. The points are ordered from low
635 coordinate to high coordinate for both axes. The units and
636 orientation of the depths in this file are the same as used in the
637 MITgcm code. In this experiment, a depth of $0m$ indicates a solid
638 wall and a depth of $-2000m$ indicates open ocean. The matlab
639 program {\it input/gendata.m} shows an example of how to generate a
640 bathymetry file. The variable \varlink{bathyFile}{bathyFile} is
641 read in the routine \varlink{INI\_PARMS}{INI_PARMS}. The bathymetry
642 file is read in the routine
643
644 \fbox{
645 \begin{minipage}{5.0in}
646 {\it S/R INI\_DEPTHS}({\it ini\_depths.F})
647 \end{minipage}
648 }
649 \filelink{ini\_depths.F}{model-src-ini_depths.F}
650
651 \item Line 50,
652 \begin{verbatim}
653 zonalWindFile='windx.sin_y'
654 \end{verbatim}
655 This line specifies the name of the file from which the x-direction
656 (zonal) surface wind stress is read. This file is also a
657 two-dimensional ($x,y$) map and is enumerated and formatted in the
658 same manner as the bathymetry file. The matlab program {\it
659 input/gendata.m} includes example code to generate a valid {\bf
660 zonalWindFile} file. The variable
661 \varlink{zonalWindFile}{zonalWindFile} is read in the routine
662 \varlink{INI\_PARMS}{INI_PARMS}. The wind-stress file is read in
663 the routine
664
665 \fbox{
666 \begin{minipage}{5.0in}
667 {\it S/R EXTERNAL\_FIELDS\_LOAD}({\it external\_fields\_load.F})
668 \end{minipage}
669 }
670 \filelink{external\_fields\_load.F}{model-src-external_fields_load.F}
671
672 \end{itemize}
673
674 \noindent other lines in the file {\it input/data} are standard values.
675
676 \begin{rawhtml}<PRE>\end{rawhtml}
677 \begin{small}
678 \input{part3/case_studies/fourlayer_gyre/input/data}
679 \end{small}
680 \begin{rawhtml}</PRE>\end{rawhtml}
681
682 \subsubsection{File {\it input/data.pkg}}
683 \label{www:tutorials}
684
685 This file uses standard default values and does not contain
686 customisations for this experiment.
687
688 \subsubsection{File {\it input/eedata}}
689 \label{www:tutorials}
690
691 This file uses standard default values and does not contain
692 customisations for this experiment.
693
694 \subsubsection{File {\it input/windx.sin\_y}}
695 \label{www:tutorials}
696
697 The {\it input/windx.sin\_y} file specifies a two-dimensional ($x,y$)
698 map of wind stress ,$\tau_{x}$, values. The units used are $Nm^{-2}$
699 (the default for MITgcm). Although $\tau_{x}$ is only a function of
700 latitude, $y$, in this experiment this file must still define a
701 complete two-dimensional map in order to be compatible with the
702 standard code for loading forcing fields in MITgcm (routine {\it
703 EXTERNAL\_FIELDS\_LOAD}. The included matlab program {\it
704 input/gendata.m} gives a complete code for creating the {\it
705 input/windx.sin\_y} file.
706
707 \subsubsection{File {\it input/topog.box}}
708 \label{www:tutorials}
709
710
711 The {\it input/topog.box} file specifies a two-dimensional ($x,y$)
712 map of depth values. For this experiment values are either
713 $0~{\rm m}$ or $-2000\,{\rm m}$, corresponding respectively to a wall or to deep
714 ocean. The file contains a raw binary stream of data that is enumerated
715 in the same way as standard MITgcm two-dimensional, horizontal arrays.
716 The included matlab program {\it input/gendata.m} gives a complete
717 code for creating the {\it input/topog.box} file.
718
719 \subsubsection{File {\it code/SIZE.h}}
720 \label{www:tutorials}
721
722 Two lines are customized in this file for the current experiment
723
724 \begin{itemize}
725
726 \item Line 39,
727 \begin{verbatim} sNx=60, \end{verbatim} this line sets
728 the lateral domain extent in grid points for the
729 axis aligned with the x-coordinate.
730
731 \item Line 40,
732 \begin{verbatim} sNy=60, \end{verbatim} this line sets
733 the lateral domain extent in grid points for the
734 axis aligned with the y-coordinate.
735
736 \item Line 49,
737 \begin{verbatim} Nr=4, \end{verbatim} this line sets
738 the vertical domain extent in grid points.
739
740 \end{itemize}
741
742 \begin{small}
743 \include{part3/case_studies/fourlayer_gyre/code/SIZE.h}
744 \end{small}
745
746 \subsubsection{File {\it code/CPP\_OPTIONS.h}}
747 \label{www:tutorials}
748
749 This file uses standard default values and does not contain
750 customisations for this experiment.
751
752
753 \subsubsection{File {\it code/CPP\_EEOPTIONS.h}}
754 \label{www:tutorials}
755
756 This file uses standard default values and does not contain
757 customisations for this experiment.
758
759 \subsubsection{Other Files }
760 \label{www:tutorials}
761
762 Other files relevant to this experiment are
763 \begin{itemize}
764 \item {\it model/src/ini\_cori.F}. This file initializes the model
765 coriolis variables {\bf fCorU} and {\bf fCorV}.
766 \item {\it model/src/ini\_spherical\_polar\_grid.F} This file
767 initializes the model grid discretisation variables {\bf
768 dxF, dyF, dxG, dyG, dxC, dyC}.
769 \item {\it model/src/ini\_parms.F}.
770 \end{itemize}
771
772 \subsection{Running The Example}
773 \label{www:tutorials}
774 \label{SEC:running_the_example}
775
776 \subsubsection{Code Download}
777 \label{www:tutorials}
778
779 In order to run the examples you must first download the code distribution.
780 Instructions for downloading the code can be found in section
781 \ref{sect:obtainingCode}.
782
783 \subsubsection{Experiment Location}
784 \label{www:tutorials}
785
786 This example experiments is located under the release sub-directory
787
788 \vspace{5mm}
789 {\it verification/exp2/ }
790
791 \subsubsection{Running the Experiment}
792 \label{www:tutorials}
793
794 To run the experiment
795
796 \begin{enumerate}
797 \item Set the current directory to {\it input/ }
798
799 \begin{verbatim}
800 % cd input
801 \end{verbatim}
802
803 \item Verify that current directory is now correct
804
805 \begin{verbatim}
806 % pwd
807 \end{verbatim}
808
809 You should see a response on the screen ending in
810
811 {\it verification/exp2/input }
812
813
814 \item Run the genmake script to create the experiment {\it Makefile}
815
816 \begin{verbatim}
817 % ../../../tools/genmake -mods=../code
818 \end{verbatim}
819
820 \item Create a list of header file dependencies in {\it Makefile}
821
822 \begin{verbatim}
823 % make depend
824 \end{verbatim}
825
826 \item Build the executable file.
827
828 \begin{verbatim}
829 % make
830 \end{verbatim}
831
832 \item Run the {\it mitgcmuv} executable
833
834 \begin{verbatim}
835 % ./mitgcmuv
836 \end{verbatim}
837
838 \end{enumerate}
839
840

  ViewVC Help
Powered by ViewVC 1.1.22