/[MITgcm]/manual/s_getstarted/text/getting_started.tex
ViewVC logotype

Annotation of /manual/s_getstarted/text/getting_started.tex

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


Revision 1.9 - (hide annotations) (download) (as text)
Thu Oct 25 18:36:54 2001 UTC (23 years, 8 months ago) by cnh
Branch: MAIN
Changes since 1.8: +11 -11 lines
File MIME type: application/x-tex
We can't spell

1 cnh 1.9 % $Header: /u/u0/gcmpack/mitgcmdoc/part3/getting_started.tex,v 1.8 2001/10/22 11:55:47 cnh Exp $
2 adcroft 1.2 % $Name: $
3 adcroft 1.1
4 adcroft 1.4 %\section{Getting started}
5 adcroft 1.1
6 adcroft 1.4 In this section, we describe how to use the model. In the first
7     section, we provide enough information to help you get started with
8     the model. We believe the best way to familiarize yourself with the
9     model is to run the case study examples provided with the base
10     version. Information on how to obtain, compile, and run the code is
11     found there as well as a brief description of the model structure
12     directory and the case study examples. The latter and the code
13     structure are described more fully in chapters
14     \ref{chap:discretization} and \ref{chap:sarch}, respectively. Here, in
15     this section, we provide information on how to customize the code when
16     you are ready to try implementing the configuration you have in mind.
17    
18     \section{Where to find information}
19     \label{sect:whereToFindInfo}
20    
21     A web site is maintained for release 1 (Sealion) of MITgcm:
22     \begin{verbatim}
23     http://mitgcm.org/sealion
24     \end{verbatim}
25     Here you will find an on-line version of this document, a
26     ``browsable'' copy of the code and a searchable database of the model
27     and site, as well as links for downloading the model and
28     documentation, to data-sources and other related sites.
29    
30     There is also a support news group for the model that you can email at
31     \texttt{support@mitgcm.org} or browse at:
32 adcroft 1.1 \begin{verbatim}
33     news://mitgcm.org/mitgcm.support
34     \end{verbatim}
35 adcroft 1.4 A mail to the email list will reach all the developers and be archived
36     on the newsgroup. A users email list will be established at some time
37     in the future.
38    
39     \section{Obtaining the code}
40     \label{sect:obtainingCode}
41 adcroft 1.1
42 cnh 1.7 MITgcm can be downloaded from our system by following
43     the instructions below. As a courtesy we ask that you send e-mail to us at
44     \begin{rawhtml} <A href=mailto:support@mitgcm.org> \end{rawhtml}
45     support@mitgcm.org
46     \begin{rawhtml} </A> \end{rawhtml}
47     to enable us to keep track of who's using the model and in what application.
48     You can download the model two ways:
49    
50     \begin{enumerate}
51 cnh 1.9 \item Using CVS software. CVS is a freely available source code management
52 cnh 1.7 tool. To use CVS you need to have the software installed. Many systems
53     come with CVS pre-installed, otherwise good places to look for
54     the software for a particular platform are
55     \begin{rawhtml} <A href=http://www.cvshome.org/ target="idontexist"> \end{rawhtml}
56     cvshome.org
57     \begin{rawhtml} </A> \end{rawhtml}
58     and
59     \begin{rawhtml} <A href=http://www.wincvs.org/ target="idontexist"> \end{rawhtml}
60     wincvs.org
61     \begin{rawhtml} </A> \end{rawhtml}
62     .
63    
64     \item Using a tar file. This method is simple and does not
65     require any special software. However, this method does not
66     provide easy support for maintenance updates.
67    
68     \end{enumerate}
69    
70 adcroft 1.1 If CVS is available on your system, we strongly encourage you to use it. CVS
71     provides an efficient and elegant way of organizing your code and keeping
72     track of your changes. If CVS is not available on your machine, you can also
73     download a tar file.
74    
75     Before you can use CVS, the following environment variable has to be set in
76     your .cshrc or .tcshrc:
77     \begin{verbatim}
78     % setenv CVSROOT :pserver:cvsanon@mitgcm.org:/u/u0/gcmpack
79 adcroft 1.6 \end{verbatim}
80    
81 cnh 1.7 To start using CVS, register with the MITgcm CVS server using command:
82 adcroft 1.6 \begin{verbatim}
83 adcroft 1.1 % cvs login ( CVS password: cvsanon )
84     \end{verbatim}
85 adcroft 1.6 You only need to do ``cvs login'' once.
86 adcroft 1.1
87 cnh 1.7 To obtain the sources for release1 type:
88 adcroft 1.1 \begin{verbatim}
89 adcroft 1.3 % cvs co -d directory -P -r release1 MITgcmUV
90 adcroft 1.1 \end{verbatim}
91    
92     This creates a directory called \textit{directory}. If \textit{directory}
93     exists this command updates your code based on the repository. Each
94     directory in the source tree contains a directory \textit{CVS}. This
95     information is required by CVS to keep track of your file versions with
96 cnh 1.7 respect to the repository. Don't edit the files in \textit{CVS}!
97     You can also use CVS to download code updates. More extensive
98     information on using CVS for maintaining MITgcm code can be found
99     \begin{rawhtml} <A href=http://mitgcm.org/usingcvstoget.html target="idontexist"> \end{rawhtml}
100     here
101     \begin{rawhtml} </A> \end{rawhtml}
102     .
103    
104 adcroft 1.1
105 adcroft 1.4 \paragraph*{Conventional download method}
106     \label{sect:conventionalDownload}
107 adcroft 1.1
108 adcroft 1.4 If you do not have CVS on your system, you can download the model as a
109     tar file from the reference web site at:
110 cnh 1.7 \begin{rawhtml} <A href=http://mitgcm.org/download target="idontexist"> \end{rawhtml}
111 adcroft 1.1 \begin{verbatim}
112     http://mitgcm.org/download/
113     \end{verbatim}
114 cnh 1.7 \begin{rawhtml} </A> \end{rawhtml}
115 adcroft 1.4 The tar file still contains CVS information which we urge you not to
116     delete; even if you do not use CVS yourself the information can help
117     us if you should need to send us your copy of the code.
118 adcroft 1.1
119 adcroft 1.4 \section{Model and directory structure}
120 adcroft 1.1
121     The ``numerical'' model is contained within a execution environment support
122     wrapper. This wrapper is designed to provide a general framework for
123     grid-point models. MITgcmUV is a specific numerical model that uses the
124     framework. Under this structure the model is split into execution
125     environment support code and conventional numerical model code. The
126     execution environment support code is held under the \textit{eesupp}
127     directory. The grid point model code is held under the \textit{model}
128     directory. Code execution actually starts in the \textit{eesupp} routines
129     and not in the \textit{model} routines. For this reason the top-level
130     \textit{MAIN.F} is in the \textit{eesupp/src} directory. In general,
131     end-users should not need to worry about this level. The top-level routine
132     for the numerical part of the code is in \textit{model/src/THE\_MODEL\_MAIN.F%
133     }. Here is a brief description of the directory structure of the model under
134     the root tree (a detailed description is given in section 3: Code structure).
135    
136     \begin{itemize}
137     \item \textit{bin}: this directory is initially empty. It is the default
138     directory in which to compile the code.
139    
140     \item \textit{diags}: contains the code relative to time-averaged
141     diagnostics. It is subdivided into two subdirectories \textit{inc} and
142 cnh 1.9 \textit{src} that contain include files (*.\textit{h} files) and Fortran
143 adcroft 1.1 subroutines (*.\textit{F} files), respectively.
144    
145     \item \textit{doc}: contains brief documentation notes.
146    
147     \item \textit{eesupp}: contains the execution environment source code. Also
148     subdivided into two subdirectories \textit{inc} and \textit{src}.
149    
150     \item \textit{exe}: this directory is initially empty. It is the default
151     directory in which to execute the code.
152    
153     \item \textit{model}: this directory contains the main source code. Also
154     subdivided into two subdirectories \textit{inc} and \textit{src}.
155    
156     \item \textit{pkg}: contains the source code for the packages. Each package
157     corresponds to a subdirectory. For example, \textit{gmredi} contains the
158     code related to the Gent-McWilliams/Redi scheme, \textit{aim} the code
159     relative to the atmospheric intermediate physics. The packages are described
160     in detail in section 3.
161    
162     \item \textit{tools}: this directory contains various useful tools. For
163     example, \textit{genmake} is a script written in csh (C-shell) that should
164     be used to generate your makefile. The directory \textit{adjoint} contains
165     the makefile specific to the Tangent linear and Adjoint Compiler (TAMC) that
166     generates the adjoint code. The latter is described in details in part V.
167    
168     \item \textit{utils}: this directory contains various utilities. The
169 adcroft 1.4 subdirectory \textit{knudsen2} contains code and a makefile that
170     compute coefficients of the polynomial approximation to the knudsen
171     formula for an ocean nonlinear equation of state. The \textit{matlab}
172     subdirectory contains matlab scripts for reading model output directly
173     into matlab. \textit{scripts} contains C-shell post-processing
174     scripts for joining processor-based and tiled-based model output.
175 adcroft 1.1
176     \item \textit{verification}: this directory contains the model examples. See
177 adcroft 1.4 section \ref{sect:modelExamples}.
178 adcroft 1.1 \end{itemize}
179    
180 adcroft 1.4 \section{Example experiments}
181     \label{sect:modelExamples}
182 adcroft 1.1
183 cnh 1.8 The MITgcm distribution comes with a set of twenty-four pre-configured
184     numerical experiments. Some of these examples experiments are tests of
185     individual parts of the model code, but many are fully fledged numerical
186     simulations. A few of the examples are used for tutorial documentation
187     in sections \ref{sec:eg-baro} - \ref{sec:eg-global}. The other examples
188     follow the same general structure as the tutorial examples. However,
189     they only include brief instructions in a text file called {\it README}.
190     The examples are located in subdirectories under
191     the directory \textit{verification}. Each
192     example is briefly described below.
193 adcroft 1.1
194 cnh 1.8 \subsection{Full list of model examples}
195 adcroft 1.1
196 cnh 1.8 \begin{enumerate}
197 adcroft 1.1 \item \textit{exp0} - single layer, ocean double gyre (barotropic with
198 cnh 1.8 free-surface). This experiment is described in detail in section
199     \ref{sec:eg-baro}.
200 adcroft 1.1
201 cnh 1.8 \item \textit{exp1} - Four layer, ocean double gyre. This experiment is described in detail in section
202     \ref{sec:eg-baroc}.
203 adcroft 1.1
204     \item \textit{exp2} - 4x4 degree global ocean simulation with steady
205 cnh 1.8 climatological forcing. This experiment is described in detail in section
206     \ref{sec:eg-global}.
207 adcroft 1.1
208 cnh 1.8 \item \textit{exp4} - Flow over a Gaussian bump in open-water or channel
209 adcroft 1.1 with open boundaries.
210    
211 cnh 1.8 \item \textit{exp5} - Inhomogenously forced ocean convection in a doubly
212 adcroft 1.1 periodic box.
213    
214 cnh 1.8 \item \textit{front\_relax} - Relaxation of an ocean thermal front (test for
215 adcroft 1.1 Gent/McWilliams scheme). 2D (Y-Z).
216    
217 cnh 1.8 \item \textit{internal wave} - Ocean internal wave forced by open boundary
218 adcroft 1.1 conditions.
219    
220 cnh 1.8 \item \textit{natl\_box} - Eastern subtropical North Atlantic with KPP
221 adcroft 1.1 scheme; 1 month integration
222    
223 cnh 1.8 \item \textit{hs94.1x64x5} - Zonal averaged atmosphere using Held and Suarez
224 adcroft 1.1 '94 forcing.
225    
226     \item \textit{hs94.128x64x5} - 3D atmosphere dynamics using Held and Suarez
227     '94 forcing.
228    
229     \item \textit{hs94.cs-32x32x5} - 3D atmosphere dynamics using Held and
230     Suarez '94 forcing on the cubed sphere.
231    
232 cnh 1.8 \item \textit{aim.5l\_zon-ave} - Intermediate Atmospheric physics. Global
233     Zonal Mean configuration, 1x64x5 resolution.
234 adcroft 1.1
235     \item \textit{aim.5l\_XZ\_Equatorial\_Slice} - Intermediate Atmospheric
236 cnh 1.8 physics, equatorial Slice configuration.
237 adcroft 1.1 2D (X-Z).
238    
239     \item \textit{aim.5l\_Equatorial\_Channel} - Intermediate Atmospheric
240 cnh 1.8 physics. 3D Equatorial Channel configuration.
241 adcroft 1.1
242 cnh 1.8 \item \textit{aim.5l\_LatLon} - Intermediate Atmospheric physics.
243     Global configuration, on latitude longitude grid with 128x64x5 grid points
244     ($2.8^\circ{\rm degree}$ resolution).
245 adcroft 1.1
246 cnh 1.8 \item \textit{adjustment.128x64x1} Barotropic adjustment
247     problem on latitude longitude grid with 128x64 grid points ($2.8^\circ{\rm degree}$ resolution).
248 adcroft 1.1
249     \item \textit{adjustment.cs-32x32x1}
250 cnh 1.8 Barotropic adjustment
251     problem on cube sphere grid with 32x32 points per face ( roughly
252     $2.8^\circ{\rm degree}$ resolution).
253    
254     \item \textit{advect\_cs} Two-dimensional passive advection test on
255     cube sphere grid.
256    
257     \item \textit{advect\_xy} Two-dimensional (horizontal plane) passive advection
258 cnh 1.9 test on Cartesian grid.
259 cnh 1.8
260 cnh 1.9 \item \textit{advect\_yz} Two-dimensional (vertical plane) passive advection test on Cartesian grid.
261 cnh 1.8
262     \item \textit{carbon} Simple passive tracer experiment. Includes derivative
263     calculation. Described in detail in section \ref{sec:eg-carbon-ad}.
264    
265     \item \textit{flt\_example} Example of using float package.
266    
267     \item \textit{global\_ocean.90x40x15} Global circulation with
268     GM, flux boundary conditions and poles.
269    
270     \item \textit{solid-body.cs-32x32x1} Solid body rotation test for cube sphere
271     grid.
272    
273     \end{enumerate}
274 adcroft 1.1
275 adcroft 1.4 \subsection{Directory structure of model examples}
276 adcroft 1.1
277     Each example directory has the following subdirectories:
278    
279     \begin{itemize}
280     \item \textit{code}: contains the code particular to the example. At a
281     minimum, this directory includes the following files:
282    
283     \begin{itemize}
284     \item \textit{code/CPP\_EEOPTIONS.h}: declares CPP keys relative to the
285     ``execution environment'' part of the code. The default version is located
286     in \textit{eesupp/inc}.
287    
288     \item \textit{code/CPP\_OPTIONS.h}: declares CPP keys relative to the
289     ``numerical model'' part of the code. The default version is located in
290     \textit{model/inc}.
291    
292     \item \textit{code/SIZE.h}: declares size of underlying computational grid.
293     The default version is located in \textit{model/inc}.
294     \end{itemize}
295    
296     In addition, other include files and subroutines might be present in \textit{%
297     code} depending on the particular experiment. See section 2 for more details.
298    
299     \item \textit{input}: contains the input data files required to run the
300 cnh 1.9 example. At a minimum, the \textit{input} directory contains the following
301 adcroft 1.1 files:
302    
303     \begin{itemize}
304     \item \textit{input/data}: this file, written as a namelist, specifies the
305     main parameters for the experiment.
306    
307     \item \textit{input/data.pkg}: contains parameters relative to the packages
308     used in the experiment.
309    
310     \item \textit{input/eedata}: this file contains ``execution environment''
311     data. At present, this consists of a specification of the number of threads
312     to use in $X$ and $Y$ under multithreaded execution.
313     \end{itemize}
314    
315     In addition, you will also find in this directory the forcing and topography
316     files as well as the files describing the initial state of the experiment.
317     This varies from experiment to experiment. See section 2 for more details.
318    
319     \item \textit{results}: this directory contains the output file \textit{%
320     output.txt} produced by the simulation example. This file is useful for
321     comparison with your own output when you run the experiment.
322     \end{itemize}
323    
324     Once you have chosen the example you want to run, you are ready to compile
325     the code.
326    
327 adcroft 1.4 \section{Building the code}
328     \label{sect:buildingCode}
329    
330     To compile the code, we use the {\em make} program. This uses a file
331     ({\em Makefile}) that allows us to pre-process source files, specify
332     compiler and optimization options and also figures out any file
333 cnh 1.9 dependencies. We supply a script ({\em genmake}), described in section
334 adcroft 1.4 \ref{sect:genmake}, that automatically creates the {\em Makefile} for
335 cnh 1.9 you. You then need to build the dependencies and compile the code.
336 adcroft 1.4
337     As an example, let's assume that you want to build and run experiment
338     \textit{verification/exp2}. The are multiple ways and places to actually
339     do this but here let's build the code in
340     \textit{verification/exp2/input}:
341     \begin{verbatim}
342     % cd verification/exp2/input
343     \end{verbatim}
344     First, build the {\em Makefile}:
345     \begin{verbatim}
346     % ../../../tools/genmake -mods=../code
347     \end{verbatim}
348     The command line option tells {\em genmake} to override model source
349     code with any files in the directory {\em ./code/}.
350    
351     If there is no \textit{.genmakerc} in the \textit{input} directory, you have
352     to use the following options when invoking \textit{genmake}:
353     \begin{verbatim}
354     % ../../../tools/genmake -mods=../code
355     \end{verbatim}
356    
357 cnh 1.9 Next, create the dependencies:
358 adcroft 1.4 \begin{verbatim}
359     % make depend
360     \end{verbatim}
361     This modifies {\em Makefile} by attaching a [long] list of files on
362     which other files depend. The purpose of this is to reduce
363     re-compilation if and when you start to modify the code. {\tt make
364     depend} also created links from the model source to this directory.
365 adcroft 1.1
366 adcroft 1.4 Now compile the code:
367     \begin{verbatim}
368     % make
369     \end{verbatim}
370     The {\tt make} command creates an executable called \textit{mitgcmuv}.
371    
372     Now you are ready to run the model. General instructions for doing so are
373     given in section \ref{sect:runModel}. Here, we can run the model with:
374     \begin{verbatim}
375     ./mitgcmuv > output.txt
376     \end{verbatim}
377     where we are re-directing the stream of text output to the file {\em
378     output.txt}.
379    
380    
381     \subsection{Building/compiling the code elsewhere}
382    
383     In the example above (section \ref{sect:buildingCode}) we built the
384     executable in the {\em input} directory of the experiment for
385     convenience. You can also configure and compile the code in other
386     locations, for example on a scratch disk with out having to copy the
387     entire source tree. The only requirement to do so is you have {\tt
388     genmake} in your path or you know the absolute path to {\tt genmake}.
389    
390     The following sections outline some possible methods of organizing you
391     source and data.
392    
393     \subsubsection{Building from the {\em ../code directory}}
394    
395     This is just as simple as building in the {\em input/} directory:
396     \begin{verbatim}
397     % cd verification/exp2/code
398     % ../../../tools/genmake
399     % make depend
400     % make
401     \end{verbatim}
402     However, to run the model the executable ({\em mitgcmuv}) and input
403     files must be in the same place. If you only have one calculation to make:
404     \begin{verbatim}
405     % cd ../input
406     % cp ../code/mitgcmuv ./
407     % ./mitgcmuv > output.txt
408     \end{verbatim}
409 cnh 1.9 or if you will be making multiple runs with the same executable:
410 adcroft 1.4 \begin{verbatim}
411     % cd ../
412     % cp -r input run1
413     % cp code/mitgcmuv run1
414     % cd run1
415     % ./mitgcmuv > output.txt
416     \end{verbatim}
417    
418     \subsubsection{Building from a new directory}
419    
420     Since the {\em input} directory contains input files it is often more
421 cnh 1.9 useful to keep {\em input} pristine and build in a new directory
422 adcroft 1.4 within {\em verification/exp2/}:
423     \begin{verbatim}
424     % cd verification/exp2
425     % mkdir build
426     % cd build
427     % ../../../tools/genmake -mods=../code
428     % make depend
429     % make
430     \end{verbatim}
431     This builds the code exactly as before but this time you need to copy
432     either the executable or the input files or both in order to run the
433     model. For example,
434     \begin{verbatim}
435     % cp ../input/* ./
436     % ./mitgcmuv > output.txt
437     \end{verbatim}
438     or if you tend to make multiple runs with the same executable then
439     running in a new directory each time might be more appropriate:
440     \begin{verbatim}
441     % cd ../
442     % mkdir run1
443     % cp build/mitgcmuv run1/
444     % cp input/* run1/
445     % cd run1
446     % ./mitgcmuv > output.txt
447     \end{verbatim}
448    
449     \subsubsection{Building from on a scratch disk}
450    
451     Model object files and output data can use up large amounts of disk
452     space so it is often the case that you will be operating on a large
453     scratch disk. Assuming the model source is in {\em ~/MITgcm} then the
454     following commands will build the model in {\em /scratch/exp2-run1}:
455     \begin{verbatim}
456     % cd /scratch/exp2-run1
457     % ~/MITgcm/tools/genmake -rootdir=~/MITgcm -mods=~/MITgcm/verification/exp2/code
458     % make depend
459     % make
460     \end{verbatim}
461     To run the model here, you'll need the input files:
462     \begin{verbatim}
463     % cp ~/MITgcm/verification/exp2/input/* ./
464     % ./mitgcmuv > output.txt
465     \end{verbatim}
466    
467     As before, you could build in one directory and make multiple runs of
468     the one experiment:
469     \begin{verbatim}
470     % cd /scratch/exp2
471     % mkdir build
472     % cd build
473     % ~/MITgcm/tools/genmake -rootdir=~/MITgcm -mods=~/MITgcm/verification/exp2/code
474     % make depend
475     % make
476     % cd ../
477     % cp -r ~/MITgcm/verification/exp2/input run2
478     % cd run2
479     % ./mitgcmuv > output.txt
480     \end{verbatim}
481    
482    
483    
484     \subsection{\textit{genmake}}
485     \label{sect:genmake}
486 adcroft 1.1
487     To compile the code, use the script \textit{genmake} located in the \textit{%
488     tools} directory. \textit{genmake} is a script that generates the makefile.
489     It has been written so that the code can be compiled on a wide diversity of
490     machines and systems. However, if it doesn't work the first time on your
491     platform, you might need to edit certain lines of \textit{genmake} in the
492     section containing the setups for the different machines. The file is
493     structured like this:
494     \begin{verbatim}
495     .
496     .
497     .
498     general instructions (machine independent)
499     .
500     .
501     .
502     - setup machine 1
503     - setup machine 2
504     - setup machine 3
505     - setup machine 4
506     etc
507     .
508     .
509     .
510     \end{verbatim}
511    
512     For example, the setup corresponding to a DEC alpha machine is reproduced
513     here:
514     \begin{verbatim}
515     case OSF1+mpi:
516     echo "Configuring for DEC Alpha"
517     set CPP = ( '/usr/bin/cpp -P' )
518     set DEFINES = ( ${DEFINES} '-DTARGET_DEC -DWORDLENGTH=1' )
519     set KPP = ( 'kapf' )
520     set KPPFILES = ( 'main.F' )
521     set KFLAGS1 = ( '-scan=132 -noconc -cmp=' )
522     set FC = ( 'f77' )
523     set FFLAGS = ( '-convert big_endian -r8 -extend_source -automatic -call_shared -notransform_loops -align dcommons' )
524     set FOPTIM = ( '-O5 -fast -tune host -inline all' )
525     set NOOPTFLAGS = ( '-O0' )
526     set LIBS = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' )
527     set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F')
528     set RMFILES = ( '*.p.out' )
529     breaksw
530     \end{verbatim}
531    
532     Typically, these are the lines that you might need to edit to make \textit{%
533     genmake} work on your platform if it doesn't work the first time. \textit{%
534     genmake} understands several options that are described here:
535    
536     \begin{itemize}
537     \item -rootdir=dir
538    
539     indicates where the model root directory is relative to the directory where
540     you are compiling. This option is not needed if you compile in the \textit{%
541     bin} directory (which is the default compilation directory) or within the
542     \textit{verification} tree.
543    
544     \item -mods=dir1,dir2,...
545    
546     indicates the relative or absolute paths directories where the sources
547     should take precedence over the default versions (located in \textit{model},
548     \textit{eesupp},...). Typically, this option is used when running the
549     examples, see below.
550    
551     \item -enable=pkg1,pkg2,...
552    
553     enables packages source code \textit{pkg1}, \textit{pkg2},... when creating
554     the makefile.
555    
556     \item -disable=pkg1,pkg2,...
557    
558     disables packages source code \textit{pkg1}, \textit{pkg2},... when creating
559     the makefile.
560    
561     \item -platform=machine
562    
563     specifies the platform for which you want the makefile. In general, you
564     won't need this option. \textit{genmake} will select the right machine for
565     you (the one you're working on!). However, this option is useful if you have
566     a choice of several compilers on one machine and you want to use the one
567     that is not the default (ex: \texttt{pgf77} instead of \texttt{f77} under
568     Linux).
569    
570     \item -mpi
571    
572     this is used when you want to run the model in parallel processing mode
573     under mpi (see section on parallel computation for more details).
574    
575     \item -jam
576    
577     this is used when you want to run the model in parallel processing mode
578     under jam (see section on parallel computation for more details).
579     \end{itemize}
580    
581     For some of the examples, there is a file called \textit{.genmakerc} in the
582     \textit{input} directory that has the relevant \textit{genmake} options for
583     that particular example. In this way you don't need to type the options when
584     invoking \textit{genmake}.
585    
586    
587 adcroft 1.4 \section{Running the model}
588     \label{sect:runModel}
589    
590     If compilation finished succesfuully (section \ref{sect:buildModel})
591     then an executable called {\em mitgcmuv} will now exist in the local
592     directory.
593 adcroft 1.1
594 adcroft 1.4 To run the model as a single process (ie. not in parallel) simply
595     type:
596 adcroft 1.1 \begin{verbatim}
597 adcroft 1.4 % ./mitgcmuv
598 adcroft 1.1 \end{verbatim}
599 adcroft 1.4 The ``./'' is a safe-guard to make sure you use the local executable
600     in case you have others that exist in your path (surely odd if you
601     do!). The above command will spew out many lines of text output to
602     your screen. This output contains details such as parameter values as
603     well as diagnostics such as mean Kinetic energy, largest CFL number,
604     etc. It is worth keeping this text output with the binary output so we
605     normally re-direct the {\em stdout} stream as follows:
606 adcroft 1.1 \begin{verbatim}
607 adcroft 1.4 % ./mitgcmuv > output.txt
608 adcroft 1.1 \end{verbatim}
609    
610 adcroft 1.4 For the example experiments in {\em vericication}, an example of the
611     output is kept in {\em results/output.txt} for comparison. You can compare
612     your {\em output.txt} with this one to check that the set-up works.
613 adcroft 1.1
614    
615    
616 adcroft 1.4 \subsection{Output files}
617 adcroft 1.1
618     The model produces various output files. At a minimum, the instantaneous
619     ``state'' of the model is written out, which is made of the following files:
620    
621     \begin{itemize}
622     \item \textit{U.00000nIter} - zonal component of velocity field (m/s and $>
623     0 $ eastward).
624    
625     \item \textit{V.00000nIter} - meridional component of velocity field (m/s
626     and $> 0$ northward).
627    
628     \item \textit{W.00000nIter} - vertical component of velocity field (ocean:
629     m/s and $> 0$ upward, atmosphere: Pa/s and $> 0$ towards increasing pressure
630     i.e. downward).
631    
632     \item \textit{T.00000nIter} - potential temperature (ocean: $^{0}$C,
633     atmosphere: $^{0}$K).
634    
635     \item \textit{S.00000nIter} - ocean: salinity (psu), atmosphere: water vapor
636     (g/kg).
637    
638     \item \textit{Eta.00000nIter} - ocean: surface elevation (m), atmosphere:
639     surface pressure anomaly (Pa).
640     \end{itemize}
641    
642     The chain \textit{00000nIter} consists of ten figures that specify the
643     iteration number at which the output is written out. For example, \textit{%
644     U.0000000300} is the zonal velocity at iteration 300.
645    
646     In addition, a ``pickup'' or ``checkpoint'' file called:
647    
648     \begin{itemize}
649     \item \textit{pickup.00000nIter}
650     \end{itemize}
651    
652     is written out. This file represents the state of the model in a condensed
653     form and is used for restarting the integration. If the C-D scheme is used,
654     there is an additional ``pickup'' file:
655    
656     \begin{itemize}
657     \item \textit{pickup\_cd.00000nIter}
658     \end{itemize}
659    
660     containing the D-grid velocity data and that has to be written out as well
661     in order to restart the integration. Rolling checkpoint files are the same
662     as the pickup files but are named differently. Their name contain the chain
663     \textit{ckptA} or \textit{ckptB} instead of \textit{00000nIter}. They can be
664     used to restart the model but are overwritten every other time they are
665     output to save disk space during long integrations.
666    
667 adcroft 1.4 \subsection{Looking at the output}
668 adcroft 1.1
669     All the model data are written according to a ``meta/data'' file format.
670     Each variable is associated with two files with suffix names \textit{.data}
671     and \textit{.meta}. The \textit{.data} file contains the data written in
672     binary form (big\_endian by default). The \textit{.meta} file is a
673     ``header'' file that contains information about the size and the structure
674     of the \textit{.data} file. This way of organizing the output is
675     particularly useful when running multi-processors calculations. The base
676     version of the model includes a few matlab utilities to read output files
677     written in this format. The matlab scripts are located in the directory
678     \textit{utils/matlab} under the root tree. The script \textit{rdmds.m} reads
679     the data. Look at the comments inside the script to see how to use it.
680    
681 adcroft 1.4 Some examples of reading and visualizing some output in {\em Matlab}:
682     \begin{verbatim}
683     % matlab
684     >> H=rdmds('Depth');
685     >> contourf(H');colorbar;
686     >> title('Depth of fluid as used by model');
687    
688     >> eta=rdmds('Eta',10);
689     >> imagesc(eta');axis ij;colorbar;
690     >> title('Surface height at iter=10');
691    
692     >> eta=rdmds('Eta',[0:10:100]);
693     >> for n=1:11; imagesc(eta(:,:,n)');axis ij;colorbar;pause(.5);end
694     \end{verbatim}
695 adcroft 1.1
696     \section{Doing it yourself: customizing the code}
697    
698     When you are ready to run the model in the configuration you want, the
699     easiest thing is to use and adapt the setup of the case studies experiment
700     (described previously) that is the closest to your configuration. Then, the
701     amount of setup will be minimized. In this section, we focus on the setup
702     relative to the ''numerical model'' part of the code (the setup relative to
703     the ''execution environment'' part is covered in the parallel implementation
704     section) and on the variables and parameters that you are likely to change.
705    
706 adcroft 1.5 \subsection{Configuration and setup}
707 adcroft 1.4
708 adcroft 1.1 The CPP keys relative to the ''numerical model'' part of the code are all
709     defined and set in the file \textit{CPP\_OPTIONS.h }in the directory \textit{%
710     model/inc }or in one of the \textit{code }directories of the case study
711     experiments under \textit{verification.} The model parameters are defined
712     and declared in the file \textit{model/inc/PARAMS.h }and their default
713     values are set in the routine \textit{model/src/set\_defaults.F. }The
714     default values can be modified in the namelist file \textit{data }which
715     needs to be located in the directory where you will run the model. The
716     parameters are initialized in the routine \textit{model/src/ini\_parms.F}.
717     Look at this routine to see in what part of the namelist the parameters are
718     located.
719    
720     In what follows the parameters are grouped into categories related to the
721     computational domain, the equations solved in the model, and the simulation
722     controls.
723    
724 adcroft 1.4 \subsection{Computational domain, geometry and time-discretization}
725 adcroft 1.1
726     \begin{itemize}
727     \item dimensions
728     \end{itemize}
729    
730     The number of points in the x, y,\textit{\ }and r\textit{\ }directions are
731     represented by the variables \textbf{sNx}\textit{, }\textbf{sNy}\textit{, }%
732     and \textbf{Nr}\textit{\ }respectively which are declared and set in the
733     file \textit{model/inc/SIZE.h. }(Again, this assumes a mono-processor
734     calculation. For multiprocessor calculations see section on parallel
735     implementation.)
736    
737     \begin{itemize}
738     \item grid
739     \end{itemize}
740    
741     Three different grids are available: cartesian, spherical polar, and
742     curvilinear (including the cubed sphere). The grid is set through the
743     logical variables \textbf{usingCartesianGrid}\textit{, }\textbf{%
744     usingSphericalPolarGrid}\textit{, }and \textit{\ }\textbf{%
745     usingCurvilinearGrid}\textit{. }In the case of spherical and curvilinear
746     grids, the southern boundary is defined through the variable \textbf{phiMin}%
747     \textit{\ }which corresponds to the latitude of the southern most cell face
748     (in degrees). The resolution along the x and y directions is controlled by
749     the 1D arrays \textbf{delx}\textit{\ }and \textbf{dely}\textit{\ }(in meters
750     in the case of a cartesian grid, in degrees otherwise). The vertical grid
751     spacing is set through the 1D array \textbf{delz }for the ocean (in meters)
752     or \textbf{delp}\textit{\ }for the atmosphere (in Pa). The variable \textbf{%
753     Ro\_SeaLevel} represents the standard position of Sea-Level in ''R''
754     coordinate. This is typically set to 0m for the ocean (default value) and 10$%
755     ^{5}$Pa for the atmosphere. For the atmosphere, also set the logical
756     variable \textbf{groundAtK1} to '.\texttt{TRUE}.'. which put the first level
757     (k=1) at the lower boundary (ground).
758    
759     For the cartesian grid case, the Coriolis parameter $f$ is set through the
760     variables \textbf{f0}\textit{\ }and \textbf{beta}\textit{\ }which correspond
761     to the reference Coriolis parameter (in s$^{-1}$) and $\frac{\partial f}{%
762     \partial y}$(in m$^{-1}$s$^{-1}$) respectively. If \textbf{beta }\textit{\ }%
763     is set to a nonzero value, \textbf{f0}\textit{\ }is the value of $f$ at the
764     southern edge of the domain.
765    
766     \begin{itemize}
767     \item topography - full and partial cells
768     \end{itemize}
769    
770     The domain bathymetry is read from a file that contains a 2D (x,y) map of
771     depths (in m) for the ocean or pressures (in Pa) for the atmosphere. The
772     file name is represented by the variable \textbf{bathyFile}\textit{. }The
773     file is assumed to contain binary numbers giving the depth (pressure) of the
774     model at each grid cell, ordered with the x coordinate varying fastest. The
775     points are ordered from low coordinate to high coordinate for both axes. The
776     model code applies without modification to enclosed, periodic, and double
777     periodic domains. Periodicity is assumed by default and is suppressed by
778     setting the depths to 0m for the cells at the limits of the computational
779     domain (note: not sure this is the case for the atmosphere). The precision
780     with which to read the binary data is controlled by the integer variable
781     \textbf{readBinaryPrec }which can take the value \texttt{32} (single
782     precision) or \texttt{64} (double precision). See the matlab program \textit{%
783     gendata.m }in the \textit{input }directories under \textit{verification }to
784     see how the bathymetry files are generated for the case study experiments.
785    
786     To use the partial cell capability, the variable \textbf{hFacMin}\textit{\ }%
787     needs to be set to a value between 0 and 1 (it is set to 1 by default)
788     corresponding to the minimum fractional size of the cell. For example if the
789     bottom cell is 500m thick and \textbf{hFacMin}\textit{\ }is set to 0.1, the
790     actual thickness of the cell (i.e. used in the code) can cover a range of
791     discrete values 50m apart from 50m to 500m depending on the value of the
792     bottom depth (in \textbf{bathyFile}) at this point.
793    
794     Note that the bottom depths (or pressures) need not coincide with the models
795     levels as deduced from \textbf{delz}\textit{\ }or\textit{\ }\textbf{delp}%
796     \textit{. }The model will interpolate the numbers in \textbf{bathyFile}%
797     \textit{\ }so that they match the levels obtained from \textbf{delz}\textit{%
798     \ }or\textit{\ }\textbf{delp}\textit{\ }and \textbf{hFacMin}\textit{. }
799    
800     (Note: the atmospheric case is a bit more complicated than what is written
801     here I think. To come soon...)
802    
803     \begin{itemize}
804     \item time-discretization
805     \end{itemize}
806    
807     The time steps are set through the real variables \textbf{deltaTMom }and
808     \textbf{deltaTtracer }(in s) which represent the time step for the momentum
809     and tracer equations, respectively. For synchronous integrations, simply set
810     the two variables to the same value (or you can prescribe one time step only
811     through the variable \textbf{deltaT}). The Adams-Bashforth stabilizing
812     parameter is set through the variable \textbf{abEps }(dimensionless). The
813     stagger baroclinic time stepping can be activated by setting the logical
814     variable \textbf{staggerTimeStep }to '.\texttt{TRUE}.'.
815    
816 adcroft 1.4 \subsection{Equation of state}
817 adcroft 1.1
818     First, because the model equations are written in terms of perturbations, a
819     reference thermodynamic state needs to be specified. This is done through
820     the 1D arrays \textbf{tRef}\textit{\ }and \textbf{sRef}. \textbf{tRef }%
821     specifies the reference potential temperature profile (in $^{o}$C for
822     the ocean and $^{o}$K for the atmosphere) starting from the level
823     k=1. Similarly, \textbf{sRef}\textit{\ }specifies the reference salinity
824     profile (in ppt) for the ocean or the reference specific humidity profile
825     (in g/kg) for the atmosphere.
826    
827     The form of the equation of state is controlled by the character variables
828     \textbf{buoyancyRelation}\textit{\ }and \textbf{eosType}\textit{. }\textbf{%
829     buoyancyRelation}\textit{\ }is set to '\texttt{OCEANIC}' by default and
830     needs to be set to '\texttt{ATMOSPHERIC}' for atmosphere simulations. In
831     this case, \textbf{eosType}\textit{\ }must be set to '\texttt{IDEALGAS}'.
832     For the ocean, two forms of the equation of state are available: linear (set
833     \textbf{eosType}\textit{\ }to '\texttt{LINEAR}') and a polynomial
834     approximation to the full nonlinear equation ( set \textbf{eosType}\textit{\
835     }to '\texttt{POLYNOMIAL}'). In the linear case, you need to specify the
836     thermal and haline expansion coefficients represented by the variables
837     \textbf{tAlpha}\textit{\ }(in K$^{-1}$) and \textbf{sBeta}\textit{\ }(in ppt$%
838     ^{-1}$). For the nonlinear case, you need to generate a file of polynomial
839     coefficients called \textit{POLY3.COEFFS. }To do this, use the program
840     \textit{utils/knudsen2/knudsen2.f }under the model tree (a Makefile is
841     available in the same directory and you will need to edit the number and the
842     values of the vertical levels in \textit{knudsen2.f }so that they match
843     those of your configuration). \textit{\ }
844    
845 adcroft 1.4 \subsection{Momentum equations}
846 adcroft 1.1
847     In this section, we only focus for now on the parameters that you are likely
848     to change, i.e. the ones relative to forcing and dissipation for example.
849     The details relevant to the vector-invariant form of the equations and the
850     various advection schemes are not covered for the moment. We assume that you
851     use the standard form of the momentum equations (i.e. the flux-form) with
852     the default advection scheme. Also, there are a few logical variables that
853     allow you to turn on/off various terms in the momentum equation. These
854     variables are called \textbf{momViscosity, momAdvection, momForcing,
855     useCoriolis, momPressureForcing, momStepping}\textit{, }and \textit{\ }%
856     \textbf{metricTerms }and are assumed to be set to '.\texttt{TRUE}.' here.
857     Look at the file \textit{model/inc/PARAMS.h }for a precise definition of
858     these variables.
859    
860     \begin{itemize}
861     \item initialization
862     \end{itemize}
863    
864     The velocity components are initialized to 0 unless the simulation is
865     starting from a pickup file (see section on simulation control parameters).
866    
867     \begin{itemize}
868     \item forcing
869     \end{itemize}
870    
871     This section only applies to the ocean. You need to generate wind-stress
872     data into two files \textbf{zonalWindFile}\textit{\ }and \textbf{%
873     meridWindFile }corresponding to the zonal and meridional components of the
874     wind stress, respectively (if you want the stress to be along the direction
875     of only one of the model horizontal axes, you only need to generate one
876     file). The format of the files is similar to the bathymetry file. The zonal
877     (meridional) stress data are assumed to be in Pa and located at U-points
878     (V-points). As for the bathymetry, the precision with which to read the
879     binary data is controlled by the variable \textbf{readBinaryPrec}.\textbf{\ }
880     See the matlab program \textit{gendata.m }in the \textit{input }directories
881     under \textit{verification }to see how simple analytical wind forcing data
882     are generated for the case study experiments.
883    
884     There is also the possibility of prescribing time-dependent periodic
885     forcing. To do this, concatenate the successive time records into a single
886     file (for each stress component) ordered in a (x, y, t) fashion and set the
887     following variables: \textbf{periodicExternalForcing }to '.\texttt{TRUE}.',
888     \textbf{externForcingPeriod }to the period (in s) of which the forcing
889     varies (typically 1 month), and \textbf{externForcingCycle }to the repeat
890     time (in s) of the forcing (typically 1 year -- note: \textbf{%
891     externForcingCycle }must be a multiple of \textbf{externForcingPeriod}).
892     With these variables set up, the model will interpolate the forcing linearly
893     at each iteration.
894    
895     \begin{itemize}
896     \item dissipation
897     \end{itemize}
898    
899     The lateral eddy viscosity coefficient is specified through the variable
900     \textbf{viscAh}\textit{\ }(in m$^{2}$s$^{-1}$). The vertical eddy viscosity
901     coefficient is specified through the variable \textbf{viscAz }(in m$^{2}$s$%
902     ^{-1}$) for the ocean and \textbf{viscAp}\textit{\ }(in Pa$^{2}$s$^{-1}$)
903     for the atmosphere. The vertical diffusive fluxes can be computed implicitly
904     by setting the logical variable \textbf{implicitViscosity }to '.\texttt{TRUE}%
905     .'. In addition, biharmonic mixing can be added as well through the variable
906     \textbf{viscA4}\textit{\ }(in m$^{4}$s$^{-1}$). On a spherical polar grid,
907     you might also need to set the variable \textbf{cosPower} which is set to 0
908     by default and which represents the power of cosine of latitude to multiply
909     viscosity. Slip or no-slip conditions at lateral and bottom boundaries are
910     specified through the logical variables \textbf{no\_slip\_sides}\textit{\ }%
911     and \textbf{no\_slip\_bottom}. If set to '\texttt{.FALSE.}', free-slip
912     boundary conditions are applied. If no-slip boundary conditions are applied
913     at the bottom, a bottom drag can be applied as well. Two forms are
914     available: linear (set the variable \textbf{bottomDragLinear}\textit{\ }in s$%
915     ^{-1}$) and quadratic (set the variable \textbf{bottomDragQuadratic}\textit{%
916     \ }in m$^{-1}$).
917    
918     The Fourier and Shapiro filters are described elsewhere.
919    
920     \begin{itemize}
921     \item C-D scheme
922     \end{itemize}
923    
924     If you run at a sufficiently coarse resolution, you will need the C-D scheme
925     for the computation of the Coriolis terms. The variable\textbf{\ tauCD},
926     which represents the C-D scheme coupling timescale (in s) needs to be set.
927    
928     \begin{itemize}
929     \item calculation of pressure/geopotential
930     \end{itemize}
931    
932     First, to run a non-hydrostatic ocean simulation, set the logical variable
933     \textbf{nonHydrostatic} to '.\texttt{TRUE}.'. The pressure field is then
934     inverted through a 3D elliptic equation. (Note: this capability is not
935     available for the atmosphere yet.) By default, a hydrostatic simulation is
936     assumed and a 2D elliptic equation is used to invert the pressure field. The
937     parameters controlling the behaviour of the elliptic solvers are the
938     variables \textbf{cg2dMaxIters}\textit{\ }and \textbf{cg2dTargetResidual }%
939     for the 2D case and \textbf{cg3dMaxIters}\textit{\ }and \textbf{%
940     cg3dTargetResidual }for the 3D case. You probably won't need to alter the
941     default values (are we sure of this?).
942    
943     For the calculation of the surface pressure (for the ocean) or surface
944     geopotential (for the atmosphere) you need to set the logical variables
945     \textbf{rigidLid} and \textbf{implicitFreeSurface}\textit{\ }(set one to '.%
946     \texttt{TRUE}.' and the other to '.\texttt{FALSE}.' depending on how you
947     want to deal with the ocean upper or atmosphere lower boundary).
948    
949 adcroft 1.4 \subsection{Tracer equations}
950 adcroft 1.1
951     This section covers the tracer equations i.e. the potential temperature
952     equation and the salinity (for the ocean) or specific humidity (for the
953     atmosphere) equation. As for the momentum equations, we only describe for
954     now the parameters that you are likely to change. The logical variables
955     \textbf{tempDiffusion}\textit{, }\textbf{tempAdvection}\textit{, }\textbf{%
956     tempForcing}\textit{,} and \textbf{tempStepping} allow you to turn on/off
957     terms in the temperature equation (same thing for salinity or specific
958     humidity with variables \textbf{saltDiffusion}\textit{, }\textbf{%
959     saltAdvection}\textit{\ }etc). These variables are all assumed here to be
960     set to '.\texttt{TRUE}.'. Look at file \textit{model/inc/PARAMS.h }for a
961     precise definition.
962    
963     \begin{itemize}
964     \item initialization
965     \end{itemize}
966    
967     The initial tracer data can be contained in the binary files \textbf{%
968     hydrogThetaFile }and \textbf{hydrogSaltFile}. These files should contain 3D
969     data ordered in an (x, y, r) fashion with k=1 as the first vertical level.
970     If no file names are provided, the tracers are then initialized with the
971     values of \textbf{tRef }and \textbf{sRef }mentioned above (in the equation
972     of state section). In this case, the initial tracer data are uniform in x
973     and y for each depth level.
974    
975     \begin{itemize}
976     \item forcing
977     \end{itemize}
978    
979     This part is more relevant for the ocean, the procedure for the atmosphere
980     not being completely stabilized at the moment.
981    
982     A combination of fluxes data and relaxation terms can be used for driving
983     the tracer equations. \ For potential temperature, heat flux data (in W/m$%
984     ^{2}$) can be stored in the 2D binary file \textbf{surfQfile}\textit{. }%
985     Alternatively or in addition, the forcing can be specified through a
986     relaxation term. The SST data to which the model surface temperatures are
987     restored to are supposed to be stored in the 2D binary file \textbf{%
988     thetaClimFile}\textit{. }The corresponding relaxation time scale coefficient
989     is set through the variable \textbf{tauThetaClimRelax}\textit{\ }(in s). The
990     same procedure applies for salinity with the variable names \textbf{EmPmRfile%
991     }\textit{, }\textbf{saltClimFile}\textit{, }and \textbf{tauSaltClimRelax}%
992     \textit{\ }for freshwater flux (in m/s) and surface salinity (in ppt) data
993     files and relaxation time scale coefficient (in s), respectively. Also for
994     salinity, if the CPP key \textbf{USE\_NATURAL\_BCS} is turned on, natural
995     boundary conditions are applied i.e. when computing the surface salinity
996     tendency, the freshwater flux is multiplied by the model surface salinity
997     instead of a constant salinity value.
998    
999     As for the other input files, the precision with which to read the data is
1000     controlled by the variable \textbf{readBinaryPrec}. Time-dependent, periodic
1001     forcing can be applied as well following the same procedure used for the
1002     wind forcing data (see above).
1003    
1004     \begin{itemize}
1005     \item dissipation
1006     \end{itemize}
1007    
1008     Lateral eddy diffusivities for temperature and salinity/specific humidity
1009     are specified through the variables \textbf{diffKhT }and \textbf{diffKhS }%
1010     (in m$^{2}$/s). Vertical eddy diffusivities are specified through the
1011     variables \textbf{diffKzT }and \textbf{diffKzS }(in m$^{2}$/s) for the ocean
1012     and \textbf{diffKpT }and \textbf{diffKpS }(in Pa$^{2}$/s) for the
1013     atmosphere. The vertical diffusive fluxes can be computed implicitly by
1014     setting the logical variable \textbf{implicitDiffusion }to '.\texttt{TRUE}%
1015     .'. In addition, biharmonic diffusivities can be specified as well through
1016     the coefficients \textbf{diffK4T }and \textbf{diffK4S }(in m$^{4}$/s). Note
1017     that the cosine power scaling (specified through \textbf{cosPower }- see the
1018     momentum equations section) is applied to the tracer diffusivities
1019     (Laplacian and biharmonic) as well. The Gent and McWilliams parameterization
1020     for oceanic tracers is described in the package section. Finally, note that
1021     tracers can be also subject to Fourier and Shapiro filtering (see the
1022     corresponding section on these filters).
1023    
1024     \begin{itemize}
1025     \item ocean convection
1026     \end{itemize}
1027    
1028     Two options are available to parameterize ocean convection: one is to use
1029     the convective adjustment scheme. In this case, you need to set the variable
1030     \textbf{cadjFreq}, which represents the frequency (in s) with which the
1031     adjustment algorithm is called, to a non-zero value (if set to a negative
1032     value by the user, the model will set it to the tracer time step). The other
1033     option is to parameterize convection with implicit vertical diffusion. To do
1034     this, set the logical variable \textbf{implicitDiffusion }to '.\texttt{TRUE}%
1035     .' and the real variable \textbf{ivdc\_kappa }to a value (in m$^{2}$/s) you
1036     wish the tracer vertical diffusivities to have when mixing tracers
1037     vertically due to static instabilities. Note that \textbf{cadjFreq }and
1038     \textbf{ivdc\_kappa }can not both have non-zero value.
1039    
1040 adcroft 1.4 \subsection{Simulation controls}
1041 adcroft 1.1
1042     The model ''clock'' is defined by the variable \textbf{deltaTClock }(in s)
1043     which determines the IO frequencies and is used in tagging output.
1044     Typically, you will set it to the tracer time step for accelerated runs
1045     (otherwise it is simply set to the default time step \textbf{deltaT}).
1046     Frequency of checkpointing and dumping of the model state are referenced to
1047     this clock (see below).
1048    
1049     \begin{itemize}
1050     \item run duration
1051     \end{itemize}
1052    
1053     The beginning of a simulation is set by specifying a start time (in s)
1054     through the real variable \textbf{startTime }or by specifying an initial
1055     iteration number through the integer variable \textbf{nIter0}. If these
1056     variables are set to nonzero values, the model will look for a ''pickup''
1057     file \textit{pickup.0000nIter0 }to restart the integration\textit{. }The end
1058     of a simulation is set through the real variable \textbf{endTime }(in s).
1059     Alternatively, you can specify instead the number of time steps to execute
1060     through the integer variable \textbf{nTimeSteps}.
1061    
1062     \begin{itemize}
1063     \item frequency of output
1064     \end{itemize}
1065    
1066     Real variables defining frequencies (in s) with which output files are
1067     written on disk need to be set up. \textbf{dumpFreq }controls the frequency
1068     with which the instantaneous state of the model is saved. \textbf{chkPtFreq }%
1069     and \textbf{pchkPtFreq }control the output frequency of rolling and
1070     permanent checkpoint files, respectively. See section 1.5.1 Output files for the
1071     definition of model state and checkpoint files. In addition, time-averaged
1072     fields can be written out by setting the variable \textbf{taveFreq} (in s).
1073     The precision with which to write the binary data is controlled by the
1074     integer variable w\textbf{riteBinaryPrec }(set it to \texttt{32} or \texttt{%
1075     64}).

  ViewVC Help
Powered by ViewVC 1.1.22