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

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

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


Revision 1.1.1.1 - (hide annotations) (download) (as text) (vendor branch)
Wed Aug 8 16:15:41 2001 UTC (23 years, 11 months ago) by adcroft
Branch: dummy
CVS Tags: Import
Changes since 1.1: +0 -0 lines
File MIME type: application/x-tex
Importing model documentation into CVS

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

  ViewVC Help
Powered by ViewVC 1.1.22