/[MITgcm]/manual/s_examples/deep_convection/convection.tex
ViewVC logotype

Contents of /manual/s_examples/deep_convection/convection.tex

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


Revision 1.7 - (show annotations) (download) (as text)
Tue Jun 27 19:08:22 2006 UTC (19 years ago) by molod
Branch: MAIN
Changes since 1.6: +4 -2 lines
File MIME type: application/x-tex
Add cross references between tutorials and verification file system directories

1 \section{Surface Driven Convection}
2 \label{www:tutorials}
3 \label{sect:eg-bconv}
4 \begin{rawhtml}
5 <!-- CMIREDIR:eg-bconv: -->
6 \end{rawhtml}
7
8 \bodytext{bgcolor="#FFFFFFFF"}
9
10 %\begin{center}
11 %{\Large \bf Surface driven convection}
12 %
13 %\vspace*{4mm}
14 %
15 %\vspace*{3mm}
16 %{\large Dec 2001}
17 %\end{center}
18
19 \begin{figure}
20 \begin{center}
21 \resizebox{7.5cm}{5.5cm}{
22 \includegraphics*[0.2in,0.7in][10.5in,10.5in]
23 {part3/case_studies/doubly_periodic_convection/simulation_config.eps} }
24 \end{center}
25 \caption{Schematic of simulation domain
26 for the surface driven convection experiment. The domain is doubly periodic
27 with an initially uniform temperature of 20 $^oC$.
28 }
29 \label{FIG:eg-bconv-simulation_config}
30 \end{figure}
31
32 This experiment, figure \ref{FIG:eg-bconv-simulation_config}, showcasing MITgcm's non-hydrostatic
33 capability, was designed to explore
34 the temporal and spatial characteristics of convection plumes as they might exist during a
35 period of oceanic deep convection. The files for this experiment can be found in the verification
36 directory under tutorial\_deep\_convection. It is
37
38 \begin{itemize}
39 \item non-hydrostatic
40 \item doubly-periodic with cubic geometry
41 \item has 50 m resolution
42 \item Cartesian
43 \item is on an $f$-plane
44 \item with a linear equation of state
45 \end{itemize}
46
47 \subsection{Overview}
48 \label{www:tutorials}
49
50 The model domain consists of an approximately 3
51 km square by 1 km deep box of initially
52 unstratified, resting fluid. The domain is doubly periodic.
53
54 The experiment has 20 levels in the vertical, each of equal thickness $\Delta z =$ 50
55 m (the horizontal resolution is also 50 m). The fluid is initially unstratified with a
56 uniform reference potential temperature $\theta = $ 20 $^o$C. The equation of state
57 used in this experiment is linear
58
59 \begin{equation}
60 \label{EQ:eg-bconv-linear1_eos}
61 \rho = \rho_{0} ( 1 - \alpha_{\theta}\theta^{'} )
62 \end{equation}
63
64 \noindent which is implemented in the model as a density anomaly equation
65
66 \begin{equation}
67 \label{EQ:eg-bconv-linear1_eos_pert}
68 \rho^{'} = -\rho_{0}\alpha_{\theta}\theta^{'}
69 \end{equation}
70
71 \noindent with $\rho_{0}=1000\,{\rm kg\,m}^{-3}$ and
72 $\alpha_{\theta}=2\times10^{-4}\,{\rm degrees}^{-1} $. Integrated forward in
73 this configuration the model state variable {\bf theta} is equivalent to
74 either in-situ temperature, $T$, or potential temperature, $\theta$. For
75 consistency with other examples, in which the equation of state is
76 non-linear, we use $\theta$ to represent temperature here. This is
77 the quantity that is carried in the model core equations.
78
79 As the fluid in the surface layer is cooled (at a mean rate of 800 Wm$^2$), it becomes
80 convectively unstable and
81 overturns, at first close to the grid-scale, but, as the flow matures, on larger scales
82 (figures \ref{FIG:eg-bconv-vertsection} and \ref{FIG:eg-bconv-horizsection}), under the influence of
83 rotation ($f_o = 10^{-4}$ s$^{-1}$) .
84
85 \begin{rawhtml}MITGCM_INSERT_FIGURE_BEGIN surf-convection-vertsection\end{rawhtml}
86 \begin{figure}
87 \begin{center}
88 \resizebox{15cm}{10cm}{
89 \includegraphics*[0.2in,0.7in][10.5in,10.5in]
90 {part3/case_studies/doubly_periodic_convection/verticalsection.ps} }
91 \end{center}
92 \caption{
93 }
94 \label{FIG:eg-bconv-vertsection}
95 \label{fig:surf-convection-vertsection}
96 \end{figure}
97 \begin{rawhtml}MITGCM_INSERT_FIGURE_END\end{rawhtml}
98
99 \begin{rawhtml}MITGCM_INSERT_FIGURE_BEGIN surf-convection-horizsection\end{rawhtml}
100 \begin{figure}
101 \begin{center}
102 \resizebox{10cm}{10cm}{
103 \includegraphics*[0.2in,0.7in][10.5in,10.5in]
104 {part3/case_studies/doubly_periodic_convection/surfacesection.ps} }
105 \end{center}
106 \caption{
107 }
108 \label{FIG:eg-bconv-horizsection}
109 \label{fig:surf-convection-horizsection}
110 \end{figure}
111 \begin{rawhtml}MITGCM_INSERT_FIGURE_END\end{rawhtml}
112
113 Model parameters are specified in file {\it input/data}. The grid dimensions are
114 prescribed in {\it code/SIZE.h}. The forcing (file {\it input/Qsurf.bin}) is specified
115 in a binary data file generated using the Matlab script {\it input/gendata.m}.
116
117 \subsection{Equations solved}
118 \label{www:tutorials}
119
120 The model is configured in nonhydrostatic form, that is, all terms in the Navier
121 Stokes equations are retained and the pressure field is found, subject to appropriate
122 bounday condintions, through inversion of a three-dimensional elliptic equation.
123
124 The implicit free surface form of the
125 pressure equation described in Marshall et. al \cite{marshall:97a} is
126 employed. A horizontal Laplacian operator $\nabla_{h}^2$ provides viscous
127 dissipation. The thermodynamic forcing appears as a sink in the potential temperature,
128 $\theta$, equation (\ref{EQ:eg-bconv-global_forcing_ft}). This produces a set of equations
129 solved in this configuration as follows:
130
131 \begin{eqnarray}
132 \label{EQ:eg-bconv-model_equations}
133 \frac{Du}{Dt} - fv +
134 \frac{1}{\rho}\frac{\partial p^{'}}{\partial x} -
135 \nabla_{h}\cdot A_{h}\nabla_{h}u -
136 \frac{\partial}{\partial z}A_{z}\frac{\partial u}{\partial z}
137 & = &
138 \begin{cases}
139 0 & \text{(surface)} \\
140 0 & \text{(interior)}
141 \end{cases}
142 \\
143 \frac{Dv}{Dt} + fu +
144 \frac{1}{\rho}\frac{\partial p^{'}}{\partial y} -
145 \nabla_{h}\cdot A_{h}\nabla_{h}v -
146 \frac{\partial}{\partial z}A_{z}\frac{\partial v}{\partial z}
147 & = &
148 \begin{cases}
149 0 & \text{(surface)} \\
150 0 & \text{(interior)}
151 \end{cases}
152 \\
153 \frac{Dw}{Dt} + g \frac{\rho^{'}}{\rho} +
154 \frac{1}{\rho}\frac{\partial p^{'}}{\partial z} -
155 \nabla_{h}\cdot A_{h}\nabla_{h}w -
156 \frac{\partial}{\partial z}A_{z}\frac{\partial w}{\partial z}
157 & = &
158 \begin{cases}
159 0 & \text{(surface)} \\
160 0 & \text{(interior)}
161 \end{cases}
162 \\
163 \frac{\partial u}{\partial x} +
164 \frac{\partial v}{\partial y} +
165 \frac{\partial w}{\partial z} +
166 &=&
167 0
168 \\
169 \frac{D\theta}{Dt} -
170 \nabla_{h}\cdot K_{h}\nabla_{h}\theta
171 - \frac{\partial}{\partial z}K_{z}\frac{\partial\theta}{\partial z}
172 & = &
173 \begin{cases}
174 {\cal F}_\theta & \text{(surface)} \\
175 0 & \text{(interior)}
176 \end{cases}
177 \end{eqnarray}
178
179 \noindent where $u=\frac{Dx}{Dt}$, $v=\frac{Dy}{Dt}$ and
180 $w=\frac{Dz}{Dt}$ are the components of the
181 flow vector in directions $x$, $y$ and $z$.
182 The pressure is diagnosed through inversion (subject to appropriate boundary
183 conditions) of a 3-D elliptic equation derived from the divergence of the momentum
184 equations and continuity (see section \ref{sec:finding_the_pressure_field}).
185 \\
186
187 \subsection{Discrete numerical configuration}
188 \label{www:tutorials}
189
190 The domain is discretised with a uniform grid spacing in each direction. There are 64
191 grid cells in directions $x$ and $y$ and 20 vertical levels thus the domain
192 comprises a total of just over 80 000 gridpoints.
193
194 \subsection{Numerical stability criteria and other considerations}
195 \label{www:tutorials}
196
197 For a heat flux of 800 Wm$^2$ and a rotation rate of $10^{-4}$ s$^{-1}$ the
198 plume-scale can be expected to be a few hundred meters guiding our choice of grid
199 resolution. This in turn restricts the timestep we can take. It is also desirable to
200 minimise the level of diffusion and viscosity we apply.
201
202 For this class of problem it is generally the advective time-scale which restricts
203 the timestep.
204
205 For an extreme maximum flow speed of $ | \vec{u} | = 1 ms^{-1}$, at a resolution of
206 50 m, the implied maximum timestep for stability, $\delta t_u$ is
207
208 \begin{eqnarray}
209 \label{EQ:eg-bconv-advectiveCFLcondition}
210 %\delta t_u = \frac{\Delta x}{| \vec{u} \} = 50 s
211 \end{eqnarray}
212
213 The choice of $\delta t = 10$ s is a safe 20 percent of this maximum.
214
215 Interpreted in terms of a mixing-length hypothesis, a magnitude of Laplacian
216 diffusion coefficient $\kappa_h (=
217 \kappa_v) = 0.1$ m$^2$s$^{-1}$ is consistent with an eddy velocity of 2 mm s$^{-1}$
218 correlated over 50 m.
219
220 \subsection{Experiment configuration}
221 \label{www:tutorials}
222
223 The model configuration for this experiment resides under the directory
224 {\it verification/convection/}. The experiment files
225 \begin{itemize}
226 \item {\it code/CPP\_EEOPTIONS.h}
227 \item {\it code/CPP\_OPTIONS.h},
228 \item {\it code/SIZE.h}.
229 \item {\it input/data}
230 \item {\it input/data.pkg}
231 \item {\it input/eedata},
232 \item {\it input/Qsurf.bin},
233 \end{itemize}
234 contain the code customisations and parameter settings for this
235 experiment. Below we describe these experiment-specific customisations.
236
237 \subsubsection{File {\it code/CPP\_EEOPTIONS.h}}
238 \label{www:tutorials}
239
240 This file uses standard default values and does not contain
241 customisations for this experiment.
242
243 \subsubsection{File {\it code/CPP\_OPTIONS.h}}
244 \label{www:tutorials}
245
246 This file uses standard default values and does not contain
247 customisations for this experiment.
248
249 \subsubsection{File {\it code/SIZE.h}}
250 \label{www:tutorials}
251
252 Three lines are customized in this file. These prescribe the domain grid dimensions.
253 \begin{itemize}
254
255 \item Line 36,
256 \begin{verbatim} sNx=64, \end{verbatim} this line sets
257 the lateral domain extent in grid points for the
258 axis aligned with the $x$-coordinate.
259
260 \item Line 37,
261 \begin{verbatim} sNy=64, \end{verbatim} this line sets
262 the lateral domain extent in grid points for the
263 axis aligned with the $y$-coordinate.
264
265 \item Line 46,
266 \begin{verbatim} Nr=20, \end{verbatim} this line sets
267 the vertical domain extent in grid points.
268
269 \end{itemize}
270
271 \begin{rawhtml}<PRE>\end{rawhtml}
272 \begin{small}
273 \input{part3/case_studies/doubly_periodic_convection/code/SIZE.h}
274 \end{small}
275 \begin{rawhtml}</PRE>\end{rawhtml}
276
277 \subsubsection{File {\it input/data}}
278 \label{www:tutorials}
279
280 This file, reproduced completely below, specifies the main parameters
281 for the experiment. The parameters that are significant for this configuration
282 are
283
284 \begin{itemize}
285
286 \item Line 4,
287 \begin{verbatim}
288 4 tRef=20*20.0,
289 \end{verbatim}
290 this line sets
291 the initial and reference values of potential temperature at each model
292 level in units of $^{\circ}\mathrm{C}$. Here the value is arbitrary since, in this case, the
293 flow evolves independently of the absolute magnitude of the reference temperature.
294 For each depth level the initial and reference profiles will be uniform in
295 $x$ and $y$. The values specified are read into the
296 variable
297 {\bf
298 \begin{rawhtml} <A href=../code_reference/vdb/names/OK.htm> \end{rawhtml}
299 tRef
300 \begin{rawhtml} </A>\end{rawhtml}
301 }
302 in the model code, by procedure
303 {\it
304 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
305 S/R INI\_PARMS ({\it ini\_parms.F})
306 \begin{rawhtml} </A>\end{rawhtml}.
307 }
308 The temperature field is initialised, by procedure
309 {\it
310 \begin{rawhtml} <A href=../code_reference/vdb/code/OK.htm> \end{rawhtml}
311 S/R INI\_THETA ({\it ini\_theta.F})
312 \begin{rawhtml} </A>\end{rawhtml}.
313 }
314
315
316 \item Line 5,
317 \begin{verbatim}
318 5 sRef=20*35.0,
319 \end{verbatim}
320 this line sets the initial and reference values of salinity at each model
321 level in units of ppt. In this case salinity is set to an (arbitrary) uniform value of
322 35.0 ppt. However since, in this example, density is independent of salinity,
323 an appropriatly defined initial salinity could provide a useful passive
324 tracer. For each depth level the initial and reference profiles will be uniform in
325 $x$ and $y$. The values specified are read into the
326 variable
327 {\bf
328 \begin{rawhtml} <A href=../code_reference/vdb/names/OK.htm> \end{rawhtml}
329 sRef
330 \begin{rawhtml} </A>\end{rawhtml}
331 }
332 in the model code, by procedure
333 {\it
334 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
335 S/R INI\_PARMS ({\it ini\_parms.F})
336 }
337 \begin{rawhtml} </A>\end{rawhtml}.
338 The salinity field is initialised, by procedure
339 {\it
340 \begin{rawhtml} <A href=../code_reference/vdb/code/OK.htm> \end{rawhtml}
341 S/R INI\_SALT ({\it ini\_salt.F})
342 \begin{rawhtml} </A>\end{rawhtml}.
343 }
344
345
346 \item Line 6,
347 \begin{verbatim}
348 6 viscAh=0.1,
349 \end{verbatim}
350 this line sets the horizontal laplacian dissipation coefficient to
351 0.1 ${\rm m^{2}s^{-1}}$. Boundary conditions
352 for this operator are specified later.
353 The variable
354 {\bf
355 \begin{rawhtml} <A href=../code_reference/vdb/names/SI.htm> \end{rawhtml}
356 viscAh
357 \begin{rawhtml} </A>\end{rawhtml}
358 }
359 is read in the routine
360 {\it
361 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
362 S/R INI\_PARMS ({\it ini\_params.F})
363 \begin{rawhtml} </A>\end{rawhtml}
364 } and applied in routines
365 {\it
366 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
367 S/R CALC\_MOM\_RHS ({\it calc\_mom\_rhs.F})
368 \begin{rawhtml} </A>\end{rawhtml}
369 } and
370 {\it
371 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
372 S/R CALC\_GW ({\it calc\_gw.F})
373 \begin{rawhtml} </A>\end{rawhtml}
374 }.
375
376
377 \item Line 7,
378 \begin{verbatim}
379 7 viscAz=0.1,
380 \end{verbatim}
381 this line sets the vertical laplacian frictional dissipation coefficient to
382 0.1 ${\rm m^{2}s^{-1}}$. Boundary conditions
383 for this operator are specified later.
384 The variable
385 {\bf
386 \begin{rawhtml} <A href=../code_reference/vdb/names/ZQ.htm> \end{rawhtml}
387 viscAz
388 \begin{rawhtml} </A>\end{rawhtml}
389 }
390 is read in the routine
391 {\it
392 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
393 S/R INI\_PARMS ({\it ini\_parms.F})
394 \begin{rawhtml} </A>\end{rawhtml}
395 }
396 and is copied into model general vertical coordinate variable
397 {\bf
398 \begin{rawhtml} <A href=../code_reference/vdb/names/PF.htm> \end{rawhtml}
399 viscAr
400 \begin{rawhtml} </A>\end{rawhtml}
401 }. At each time step, the viscous term contribution to the momentum equations
402 is calculated in routine
403 {\it
404 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
405 S/R CALC\_DIFFUSIVITY ({\it calc\_diffusivity.F})
406 \begin{rawhtml} </A>\end{rawhtml}
407 }.
408
409
410 \item Line 8,
411 \begin{verbatim}
412 no_slip_sides=.FALSE.
413 \end{verbatim}
414 this line selects a free-slip lateral boundary condition for
415 the horizontal laplacian friction operator
416 e.g. $\frac{\partial u}{\partial y}$=0 along boundaries in $y$ and
417 $\frac{\partial v}{\partial x}$=0 along boundaries in $x$.
418 The variable
419 {\bf
420 \begin{rawhtml} <A href=../code_reference/vdb/names/UT.htm> \end{rawhtml}
421 no\_slip\_sides
422 \begin{rawhtml} </A>\end{rawhtml}
423 }
424 is read in the routine
425 {\it
426 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
427 S/R INI\_PARMS ({\it ini\_parms.F})
428 \begin{rawhtml} </A>\end{rawhtml}
429 } and the boundary condition is evaluated in routine
430 {\it
431 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
432 S/R CALC\_MOM\_RHS ({\it calc\_mom\_rhs.F})
433 \begin{rawhtml} </A>\end{rawhtml}
434 }.
435
436
437 \item Lines 9,
438 \begin{verbatim}
439 no_slip_bottom=.TRUE.
440 \end{verbatim}
441 this line selects a no-slip boundary condition for the bottom
442 boundary condition in the vertical laplacian friction operator
443 e.g. $u=v=0$ at $z=-H$, where $H$ is the local depth of the domain.
444 The variable
445 {\bf
446 \begin{rawhtml} <A href=../code_reference/vdb/names/UK.htm> \end{rawhtml}
447 no\_slip\_bottom
448 \begin{rawhtml} </A>\end{rawhtml}
449 }
450 is read in the routine
451 {\it
452 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
453 S/R INI\_PARMS ({\it ini\_parms.F})
454 \begin{rawhtml} </A>\end{rawhtml}
455 } and is applied in the routine
456 {\it
457 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
458 S/R CALC\_MOM\_RHS ({\it calc\_mom\_rhs.F})
459 \begin{rawhtml} </A>\end{rawhtml}
460 }.
461
462 \item Line 11,
463 \begin{verbatim}
464 diffKhT=0.1,
465 \end{verbatim}
466 this line sets the horizontal diffusion coefficient for temperature
467 to 0.1 $\rm m^{2}s^{-1}$. The boundary condition on this
468 operator is $\frac{\partial}{\partial x}=\frac{\partial}{\partial y}=0$ at
469 all boundaries.
470 The variable
471 {\bf
472 \begin{rawhtml} <A href=../code_reference/vdb/names/RC.htm> \end{rawhtml}
473 diffKhT
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 S/R INI\_PARMS ({\it ini\_parms.F})
480 \begin{rawhtml} </A>\end{rawhtml}
481 } and used in routine
482 {\it
483 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
484 S/R CALC\_GT ({\it calc\_gt.F})
485 \begin{rawhtml} </A>\end{rawhtml}
486 }.
487
488 \item Line 12,
489 \begin{verbatim}
490 diffKzT=0.1,
491 \end{verbatim}
492 this line sets the vertical diffusion coefficient for temperature
493 to 0.1 ${\rm m^{2}s^{-1}}$. The boundary condition on this
494 operator is $\frac{\partial}{\partial z}$ = 0 on all boundaries.
495 The variable
496 {\bf
497 \begin{rawhtml} <A href=../code_reference/vdb/names/ZT.htm> \end{rawhtml}
498 diffKzT
499 \begin{rawhtml} </A>\end{rawhtml}
500 }
501 is read in the routine
502 {\it
503 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
504 S/R INI\_PARMS ({\it ini\_parms.F})
505 \begin{rawhtml} </A>\end{rawhtml}
506 }.
507 It is copied into model general vertical coordinate variable
508 {\bf
509 \begin{rawhtml} <A href=../code_reference/vdb/names/PD.htm> \end{rawhtml}
510 diffKrT
511 \begin{rawhtml} </A>\end{rawhtml}
512 } which is used in routine
513 {\it
514 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
515 S/R CALC\_DIFFUSIVITY ({\it calc\_diffusivity.F})
516 \begin{rawhtml} </A>\end{rawhtml}
517 }.
518
519
520 \item Line 13,
521 \begin{verbatim}
522 diffKhS=0.1,
523 \end{verbatim}
524 this line sets the horizontal diffusion coefficient for salinity
525 to 0.1 $\rm m^{2}s^{-1}$. The boundary condition on this
526 operator is $\frac{\partial}{\partial x}=\frac{\partial}{\partial y}=0$ on
527 all boundaries.
528 The variable
529 {\bf
530 \begin{rawhtml} <A href=../code_reference/vdb/names/RC.htm> \end{rawhtml}
531 diffKsT
532 \begin{rawhtml} </A>\end{rawhtml}
533 }
534 is read in the routine
535 {\it
536 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
537 S/R INI\_PARMS ({\it ini\_parms.F})
538 \begin{rawhtml} </A>\end{rawhtml}
539 } and used in routine
540 {\it
541 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
542 S/R CALC\_GS ({\it calc\_gs.F})
543 \begin{rawhtml} </A>\end{rawhtml}
544 }.
545
546
547 \item Line 14,
548 \begin{verbatim}
549 diffKzS=0.1,
550 \end{verbatim}
551 this line sets the vertical diffusion coefficient for temperature
552 to 0.1 ${\rm m^{2}s^{-1}}$. The boundary condition on this
553 operator is $\frac{\partial}{\partial z}$ = 0 on all boundaries.
554 The variable
555 {\bf
556 \begin{rawhtml} <A href=../code_reference/vdb/names/ZT.htm> \end{rawhtml}
557 diffKzS
558 \begin{rawhtml} </A>\end{rawhtml}
559 }
560 is read in the routine
561 {\it
562 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
563 S/R INI\_PARMS ({\it ini\_parms.F})
564 \begin{rawhtml} </A>\end{rawhtml}
565 }.
566 It is copied into model general vertical coordinate variable
567 {\bf
568 \begin{rawhtml} <A href=../code_reference/vdb/names/PD.htm> \end{rawhtml}
569 diffKrS
570 \begin{rawhtml} </A>\end{rawhtml}
571 } which is used in routine
572 {\it
573 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
574 S/R CALC\_DIFFUSIVITY ({\it calc\_diffusivity.F})
575 \begin{rawhtml} </A>\end{rawhtml}
576 }.
577
578
579 \item Line 15,
580 \begin{verbatim}
581 f0=1E-4,
582 \end{verbatim}
583 this line sets the Coriolis parameter to $1 \times 10^{-4}$ s$^{-1}$.
584 Since $\beta = 0.0$ this value is then adopted throughout the domain.
585
586
587 \item Line 16,
588 \begin{verbatim}
589 beta=0.E-11,
590 \end{verbatim}
591 this line sets the the variation of Coriolis parameter with latitude to $0$.
592
593
594 \item Line 17,
595 \begin{verbatim}
596 tAlpha=2.E-4,
597 \end{verbatim}
598 This line sets the thermal expansion coefficient for the fluid
599 to $2 \times 10^{-4}$ $^o$ C$^{-1}$.
600 The variable
601 {\bf
602 \begin{rawhtml} <A href=../code_reference/vdb/names/ZV.htm> \end{rawhtml}
603 tAlpha
604 \begin{rawhtml} </A>\end{rawhtml}
605 }
606 is read in the routine
607 {\it
608 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
609 S/R INI\_PARMS ({\it ini\_parms.F})
610 \begin{rawhtml} </A>\end{rawhtml}
611 }.
612 The routine
613 {\it
614 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
615 S/R FIND\_RHO ({\it find\_rho.F})
616 \begin{rawhtml} </A>\end{rawhtml}
617 } makes use of {\bf tAlpha}.
618
619 \item Line 18,
620 \begin{verbatim}
621 sBeta=0,
622 \end{verbatim}
623 This line sets the saline expansion coefficient for the fluid
624 to $0$ consistent with salt's passive role in this example.
625
626
627 \item Line 23-24,
628 \begin{verbatim}
629 rigidLid=.FALSE.,
630 implicitFreeSurface=.TRUE.,
631 \end{verbatim}
632 Selects the barotropic pressure equation to be the implicit free surface
633 formulation.
634
635 \item Line 25,
636 \begin{verbatim}
637 eosType='LINEAR',
638 \end{verbatim}
639 Selects the linear form of the equation of state.
640
641
642 \item Line 26,
643 \begin{verbatim}
644 nonHydrostatic=.TRUE.,
645 \end{verbatim}
646 Selects for non-hydrostatic code.
647
648
649 \item Line 27,
650 \begin{verbatim}
651 readBinaryPrec=64,
652 \end{verbatim}
653 Sets format for reading binary input datasets holding model fields to
654 use 64-bit representation for floating-point numbers.
655
656 \item Line 31,
657 \begin{verbatim}
658 cg2dMaxIters=1000,
659 \end{verbatim}
660 Inactive - the pressure field in a non-hydrostatic simulation is inverted through a 3D
661 elliptic equation.
662
663
664 \item Line 32,
665 \begin{verbatim}
666 cg2dTargetResidual=1.E-9,
667 \end{verbatim}
668 Inactive - the pressure field in a non-hydrostatic simulation is inverted through a 3D
669 elliptic equation.
670
671
672 \item Line 33,
673 \begin{verbatim}
674 cg3dMaxIters=40,
675 \end{verbatim}
676 This line sets the maximum number of iterations the three-dimensional, conjugate
677 gradient solver will use to 40, {\bf irrespective of the convergence
678 criteria being met}. Used in routine
679 {\it
680 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
681 S/R CG3D ({\it cg3d.F})
682 \begin{rawhtml} </A>\end{rawhtml}
683 }.
684
685
686
687 \item Line 34,
688 \begin{verbatim}
689 cg3dTargetResidual=1.E-9,
690 \end{verbatim}
691 Sets the tolerance which the three-dimensional, conjugate
692 gradient solver will use to test for convergence in equation
693 \ref{EQ:eg-bconv-congrad_3d_resid} to $1 \times 10^{-9}$.
694 The solver will iterate until the
695 tolerance falls below this value or until the maximum number of
696 solver iterations is reached. Used in routine
697 {\it
698 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
699 S/R CG3D ({\it cg3d.F})
700 \begin{rawhtml} </A>\end{rawhtml}
701 }.
702
703
704 \item Line 38,
705 \begin{verbatim}
706 startTime=0,
707 \end{verbatim}
708 Sets the starting time for the model internal time counter.
709 When set to non-zero this option implicitly requests a
710 checkpoint file be read for initial state.
711 By default the checkpoint file is named according to
712 the integer number of time steps in the {\bf startTime} value.
713 The internal time counter works in seconds.
714
715 \item Line 39,
716 \begin{verbatim}
717 nTimeSteps=8640.,
718 \end{verbatim}
719 Sets the number of timesteps at which this simulation will terminate (in this case
720 8640 timesteps or 1 day or $\delta t = 10$ s).
721 At the end of a simulation a checkpoint file is automatically
722 written so that a numerical experiment can consist of multiple
723 stages.
724
725 \item Line 40,
726 \begin{verbatim}
727 deltaT=10,
728 \end{verbatim}
729 Sets the timestep $\delta t$ to 10 s.
730
731
732 \item Line 51,
733 \begin{verbatim}
734 dXspacing=50.0,
735 \end{verbatim}
736 Sets horizontal ($x$-direction) grid interval to 50 m.
737
738
739 \item Line 52,
740 \begin{verbatim}
741 dYspacing=50.0,
742 \end{verbatim}
743 Sets horizontal ($y$-direction) grid interval to 50 m.
744
745
746 \item Line 53,
747 \begin{verbatim}
748 delZ=20*50.0,
749 \end{verbatim}
750 Sets vertical grid spacing to 50 m. Must be consistent with {\it code/SIZE.h}. Here,
751 20 corresponds to the number of vertical levels.
752
753 \item Line 57,
754 \begin{verbatim}
755 surfQfile='Qsurf.bin'
756 \end{verbatim}
757 This line specifies the name of the file from which the surface heat flux
758 is read. This file is a two-dimensional
759 ($x,y$) map. It is assumed to contain 64-bit binary numbers
760 giving the value of $Q$ (W m$^2$) to be applied in each surface grid cell, ordered with
761 the $x$ coordinate varying fastest. The points are ordered from low coordinate
762 to high coordinate for both axes. The matlab program
763 {\it input/gendata.m} shows how to generate the
764 surface heat flux file used in the example.
765 The variable
766 {\bf
767 \begin{rawhtml} <A href=../code_reference/vdb/names/179.htm> \end{rawhtml}
768 Qsurf
769 \begin{rawhtml} </A>\end{rawhtml}
770 }
771 is read in the routine
772 {\it
773 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
774 S/R INI\_PARMS ({\it ini\_parms.F})
775 \begin{rawhtml} </A>\end{rawhtml}
776 }
777 and applied in
778 {\it
779 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
780 S/R EXTERNAL\_FORCING\_SURF ({\it external\_forcing\_surf.F})
781 \begin{rawhtml} </A>\end{rawhtml}
782 } where the flux is converted to a temperature tendency.
783
784
785 \end{itemize}
786
787
788 \begin{rawhtml}<PRE>\end{rawhtml}
789 \begin{small}
790 \input{part3/case_studies/doubly_periodic_convection/input/data}
791 \end{small}
792 \begin{rawhtml}</PRE>\end{rawhtml}
793
794
795 \subsubsection{File {\it input/data.pkg}}
796 \label{www:tutorials}
797
798 This file uses standard default values and does not contain
799 customisations for this experiment.
800
801 \subsubsection{File {\it input/eedata}}
802 \label{www:tutorials}
803
804 This file uses standard default values and does not contain
805 customisations for this experiment.
806
807
808 \subsubsection{File {\it input/Qsurf.bin}}
809 \label{www:tutorials}
810
811 The file {\it input/Qsurf.bin} specifies a two-dimensional ($x,y$)
812 map of heat flux values where
813 $Q = Q_o \times ( 0.5 + \mbox{random number between 0 and 1})$.
814
815 In the example $Q_o = 800$ W m$^{-2}$ so that values of $Q$ lie in the range 400 to
816 1200 W m$^{-2}$ with a mean of $Q_o$. Although the flux models a loss, because it is
817 directed upwards, according to the model's sign convention, $Q$ is positive.
818
819
820 \begin{figure}
821 \begin{center}
822 % \resizebox{15cm}{10cm}{
823 % \includegraphics*[0.2in,0.7in][10.5in,10.5in]
824 % {part3/case_studies/doubly_periodic_convection/Qsurf.ps} }
825 \end{center}
826 \caption{
827 }
828 \label{FIG:eg-bconv-Qsurf}
829 \end{figure}
830
831 \subsection{Running the example}
832 \label{www:tutorials}
833
834 \subsubsection{Code download}
835 \label{www:tutorials}
836
837 In order to run the examples you must first download the code distribution.
838 Instructions for downloading the code can be found in \ref{sect:obtainingCode}.
839
840 \subsubsection{Experiment Location}
841 \label{www:tutorials}
842
843 This example experiments is located under the release sub-directory
844
845 \vspace{5mm}
846 {\it verification/convection/ }
847
848 \subsubsection{Running the Experiment}
849 \label{www:tutorials}
850
851 To run the experiment
852
853 \begin{enumerate}
854 \item Set the current directory to {\it input/ }
855
856 \begin{verbatim}
857 % cd input
858 \end{verbatim}
859
860 \item Verify that current directory is now correct
861
862 \begin{verbatim}
863 % pwd
864 \end{verbatim}
865
866 You should see a response on the screen ending in
867
868 {\it verification/convection/input }
869
870
871 \item Run the genmake script to create the experiment {\it Makefile}
872
873 \begin{verbatim}
874 % ../../../tools/genmake -mods=../code
875 \end{verbatim}
876
877 \item Create a list of header file dependencies in {\it Makefile}
878
879 \begin{verbatim}
880 % make depend
881 \end{verbatim}
882
883 \item Build the executable file.
884
885 \begin{verbatim}
886 % make
887 \end{verbatim}
888
889 \item Run the {\it mitgcmuv} executable
890
891 \begin{verbatim}
892 % ./mitgcmuv
893 \end{verbatim}
894
895 \end{enumerate}
896
897

  ViewVC Help
Powered by ViewVC 1.1.22