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

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

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


Revision 1.7 - (hide 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 cnh 1.2 \section{Surface Driven Convection}
2 adcroft 1.3 \label{www:tutorials}
3 helen 1.1 \label{sect:eg-bconv}
4 edhill 1.5 \begin{rawhtml}
5     <!-- CMIREDIR:eg-bconv: -->
6     \end{rawhtml}
7 helen 1.1
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 cnh 1.2 \label{FIG:eg-bconv-simulation_config}
30 helen 1.1 \end{figure}
31    
32 molod 1.7 This experiment, figure \ref{FIG:eg-bconv-simulation_config}, showcasing MITgcm's non-hydrostatic
33     capability, was designed to explore
34 helen 1.1 the temporal and spatial characteristics of convection plumes as they might exist during a
35 molod 1.7 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 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
49 helen 1.1
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 cnh 1.2 \label{EQ:eg-bconv-linear1_eos}
61 helen 1.1 \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 cnh 1.2 \label{EQ:eg-bconv-linear1_eos_pert}
68 helen 1.1 \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 cnh 1.2 (figures \ref{FIG:eg-bconv-vertsection} and \ref{FIG:eg-bconv-horizsection}), under the influence of
83 helen 1.1 rotation ($f_o = 10^{-4}$ s$^{-1}$) .
84    
85 cnh 1.2 \begin{rawhtml}MITGCM_INSERT_FIGURE_BEGIN surf-convection-vertsection\end{rawhtml}
86 helen 1.1 \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 cnh 1.2 \label{FIG:eg-bconv-vertsection}
95     \label{fig:surf-convection-vertsection}
96 helen 1.1 \end{figure}
97 cnh 1.2 \begin{rawhtml}MITGCM_INSERT_FIGURE_END\end{rawhtml}
98 helen 1.1
99 cnh 1.2 \begin{rawhtml}MITGCM_INSERT_FIGURE_BEGIN surf-convection-horizsection\end{rawhtml}
100 helen 1.1 \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 cnh 1.2 \label{FIG:eg-bconv-horizsection}
109     \label{fig:surf-convection-horizsection}
110 helen 1.1 \end{figure}
111 cnh 1.2 \begin{rawhtml}MITGCM_INSERT_FIGURE_END\end{rawhtml}
112 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
119 helen 1.1
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 cnh 1.2 $\theta$, equation (\ref{EQ:eg-bconv-global_forcing_ft}). This produces a set of equations
129 helen 1.1 solved in this configuration as follows:
130    
131     \begin{eqnarray}
132 cnh 1.2 \label{EQ:eg-bconv-model_equations}
133 helen 1.1 \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 adcroft 1.3 \label{www:tutorials}
189 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
196 helen 1.1
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 cnh 1.2 \label{EQ:eg-bconv-advectiveCFLcondition}
210 helen 1.1 %\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 adcroft 1.3 \label{www:tutorials}
222 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
239 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
245 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
251 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
279 helen 1.1
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 edhill 1.5 4 tRef=20*20.0,
289 helen 1.1 \end{verbatim}
290     this line sets
291     the initial and reference values of potential temperature at each model
292 edhill 1.6 level in units of $^{\circ}\mathrm{C}$. Here the value is arbitrary since, in this case, the
293 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/OK.htm> \end{rawhtml}
299 helen 1.1 tRef
300     \begin{rawhtml} </A>\end{rawhtml}
301     }
302     in the model code, by procedure
303     {\it
304 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
305 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/OK.htm> \end{rawhtml}
311 helen 1.1 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 edhill 1.5 5 sRef=20*35.0,
319 helen 1.1 \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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/OK.htm> \end{rawhtml}
329 helen 1.1 sRef
330     \begin{rawhtml} </A>\end{rawhtml}
331     }
332     in the model code, by procedure
333     {\it
334 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
335 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/OK.htm> \end{rawhtml}
341 helen 1.1 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 edhill 1.5 6 viscAh=0.1,
349 helen 1.1 \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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/SI.htm> \end{rawhtml}
356 helen 1.1 viscAh
357     \begin{rawhtml} </A>\end{rawhtml}
358     }
359     is read in the routine
360     {\it
361 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
362 helen 1.1 S/R INI\_PARMS ({\it ini\_params.F})
363     \begin{rawhtml} </A>\end{rawhtml}
364     } and applied in routines
365     {\it
366 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
367 helen 1.1 S/R CALC\_MOM\_RHS ({\it calc\_mom\_rhs.F})
368     \begin{rawhtml} </A>\end{rawhtml}
369     } and
370     {\it
371 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
372 helen 1.1 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 edhill 1.5 7 viscAz=0.1,
380 helen 1.1 \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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/ZQ.htm> \end{rawhtml}
387 helen 1.1 viscAz
388     \begin{rawhtml} </A>\end{rawhtml}
389     }
390     is read in the routine
391     {\it
392 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
393 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/PF.htm> \end{rawhtml}
399 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
405 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/UT.htm> \end{rawhtml}
421 helen 1.1 no\_slip\_sides
422     \begin{rawhtml} </A>\end{rawhtml}
423     }
424     is read in the routine
425     {\it
426 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
427 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
432 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/UK.htm> \end{rawhtml}
447 helen 1.1 no\_slip\_bottom
448     \begin{rawhtml} </A>\end{rawhtml}
449     }
450     is read in the routine
451     {\it
452 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
453 helen 1.1 S/R INI\_PARMS ({\it ini\_parms.F})
454     \begin{rawhtml} </A>\end{rawhtml}
455     } and is applied in the routine
456     {\it
457 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
458 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/RC.htm> \end{rawhtml}
473 helen 1.1 diffKhT
474     \begin{rawhtml} </A>\end{rawhtml}
475     }
476     is read in the routine
477     {\it
478 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
479 helen 1.1 S/R INI\_PARMS ({\it ini\_parms.F})
480     \begin{rawhtml} </A>\end{rawhtml}
481     } and used in routine
482     {\it
483 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
484 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/ZT.htm> \end{rawhtml}
498 helen 1.1 diffKzT
499     \begin{rawhtml} </A>\end{rawhtml}
500     }
501     is read in the routine
502     {\it
503 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
504 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/PD.htm> \end{rawhtml}
510 helen 1.1 diffKrT
511     \begin{rawhtml} </A>\end{rawhtml}
512     } which is used in routine
513     {\it
514 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
515 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/RC.htm> \end{rawhtml}
531 helen 1.1 diffKsT
532     \begin{rawhtml} </A>\end{rawhtml}
533     }
534     is read in the routine
535     {\it
536 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
537 helen 1.1 S/R INI\_PARMS ({\it ini\_parms.F})
538     \begin{rawhtml} </A>\end{rawhtml}
539     } and used in routine
540     {\it
541 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
542 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/ZT.htm> \end{rawhtml}
557 helen 1.1 diffKzS
558     \begin{rawhtml} </A>\end{rawhtml}
559     }
560     is read in the routine
561     {\it
562 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
563 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/PD.htm> \end{rawhtml}
569 helen 1.1 diffKrS
570     \begin{rawhtml} </A>\end{rawhtml}
571     } which is used in routine
572     {\it
573 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
574 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/ZV.htm> \end{rawhtml}
603 helen 1.1 tAlpha
604     \begin{rawhtml} </A>\end{rawhtml}
605     }
606     is read in the routine
607     {\it
608 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
609 helen 1.1 S/R INI\_PARMS ({\it ini\_parms.F})
610     \begin{rawhtml} </A>\end{rawhtml}
611     }.
612     The routine
613     {\it
614 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
615 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
681 helen 1.1 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 cnh 1.2 \ref{EQ:eg-bconv-congrad_3d_resid} to $1 \times 10^{-9}$.
694 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
699 helen 1.1 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 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/names/179.htm> \end{rawhtml}
768 helen 1.1 Qsurf
769     \begin{rawhtml} </A>\end{rawhtml}
770     }
771     is read in the routine
772     {\it
773 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
774 helen 1.1 S/R INI\_PARMS ({\it ini\_parms.F})
775     \begin{rawhtml} </A>\end{rawhtml}
776     }
777     and applied in
778     {\it
779 edhill 1.4 \begin{rawhtml} <A href=../code_reference/vdb/code/94.htm> \end{rawhtml}
780 helen 1.1 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 adcroft 1.3 \label{www:tutorials}
797 helen 1.1
798     This file uses standard default values and does not contain
799     customisations for this experiment.
800    
801     \subsubsection{File {\it input/eedata}}
802 adcroft 1.3 \label{www:tutorials}
803 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
810 helen 1.1
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 cnh 1.2 \label{FIG:eg-bconv-Qsurf}
829 helen 1.1 \end{figure}
830    
831     \subsection{Running the example}
832 adcroft 1.3 \label{www:tutorials}
833 helen 1.1
834     \subsubsection{Code download}
835 adcroft 1.3 \label{www:tutorials}
836 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
842 helen 1.1
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 adcroft 1.3 \label{www:tutorials}
850 helen 1.1
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