/[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.13 - (show annotations) (download) (as text)
Thu May 16 15:54:37 2002 UTC (23 years, 2 months ago) by adcroft
Branch: MAIN
Changes since 1.12: +20 -1 lines
File MIME type: application/x-tex
Added \label{www:tutorials} to every section/subsection/subsubsection for
pages that need to appear in the Tutorials sectio of the web-site.

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

  ViewVC Help
Powered by ViewVC 1.1.22