/[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.30 - (hide annotations) (download) (as text)
Sat Oct 16 03:40:13 2004 UTC (20 years, 9 months ago) by edhill
Branch: MAIN
CVS Tags: checkpoint57l_post
Changes since 1.29: +20 -1 lines
File MIME type: application/x-tex
 o add HTML comments as a step towards "URL permanence" which will help
   solve:
   - stale links from the CMI web site
   - rotten indexing by bonniefy.pl
 o also cleanup a merge-mangle in diagnostics.tex

1 edhill 1.30 % $Header: /u/gcmpack/manual/part3/getting_started.tex,v 1.29 2004/10/14 19:11:47 edhill 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 edhill 1.30
19 adcroft 1.4 \section{Where to find information}
20     \label{sect:whereToFindInfo}
21 edhill 1.30 \begin{rawhtml}
22     <!-- CMIREDIR:whereToFindInfo: -->
23     \end{rawhtml}
24 adcroft 1.4
25 edhill 1.15 A web site is maintained for release 2 (``Pelican'') of MITgcm:
26     \begin{rawhtml} <A href=http://mitgcm.org/pelican/ target="idontexist"> \end{rawhtml}
27 adcroft 1.4 \begin{verbatim}
28 edhill 1.15 http://mitgcm.org/pelican
29 adcroft 1.4 \end{verbatim}
30 edhill 1.15 \begin{rawhtml} </A> \end{rawhtml}
31 adcroft 1.4 Here you will find an on-line version of this document, a
32     ``browsable'' copy of the code and a searchable database of the model
33     and site, as well as links for downloading the model and
34 edhill 1.15 documentation, to data-sources, and other related sites.
35 adcroft 1.4
36 edhill 1.15 There is also a web-archived support mailing list for the model that
37     you can email at \texttt{MITgcm-support@mitgcm.org} or browse at:
38     \begin{rawhtml} <A href=http://mitgcm.org/mailman/listinfo/mitgcm-support/ target="idontexist"> \end{rawhtml}
39     \begin{verbatim}
40     http://mitgcm.org/mailman/listinfo/mitgcm-support/
41     http://mitgcm.org/pipermail/mitgcm-support/
42     \end{verbatim}
43     \begin{rawhtml} </A> \end{rawhtml}
44     Essentially all of the MITgcm web pages can be searched using a
45     popular web crawler such as Google or through our own search facility:
46 edhill 1.16 \begin{rawhtml} <A href=http://mitgcm.org/mailman/htdig/ target="idontexist"> \end{rawhtml}
47 adcroft 1.1 \begin{verbatim}
48 edhill 1.15 http://mitgcm.org/htdig/
49 adcroft 1.1 \end{verbatim}
50 edhill 1.15 \begin{rawhtml} </A> \end{rawhtml}
51     %%% http://www.google.com/search?q=hydrostatic+site%3Amitgcm.org
52    
53    
54 adcroft 1.4
55     \section{Obtaining the code}
56     \label{sect:obtainingCode}
57 edhill 1.30 \begin{rawhtml}
58     <!-- CMIREDIR:obtainingCode: -->
59     \end{rawhtml}
60 adcroft 1.1
61 cnh 1.7 MITgcm can be downloaded from our system by following
62     the instructions below. As a courtesy we ask that you send e-mail to us at
63 edhill 1.14 \begin{rawhtml} <A href=mailto:MITgcm-support@mitgcm.org> \end{rawhtml}
64     MITgcm-support@mitgcm.org
65 cnh 1.7 \begin{rawhtml} </A> \end{rawhtml}
66     to enable us to keep track of who's using the model and in what application.
67     You can download the model two ways:
68    
69     \begin{enumerate}
70 cnh 1.9 \item Using CVS software. CVS is a freely available source code management
71 cnh 1.7 tool. To use CVS you need to have the software installed. Many systems
72     come with CVS pre-installed, otherwise good places to look for
73     the software for a particular platform are
74     \begin{rawhtml} <A href=http://www.cvshome.org/ target="idontexist"> \end{rawhtml}
75     cvshome.org
76     \begin{rawhtml} </A> \end{rawhtml}
77     and
78     \begin{rawhtml} <A href=http://www.wincvs.org/ target="idontexist"> \end{rawhtml}
79     wincvs.org
80     \begin{rawhtml} </A> \end{rawhtml}
81     .
82    
83     \item Using a tar file. This method is simple and does not
84     require any special software. However, this method does not
85     provide easy support for maintenance updates.
86    
87     \end{enumerate}
88    
89 cnh 1.27 \subsection{Method 1 - Checkout from CVS}
90 edhill 1.19 \label{sect:cvs_checkout}
91    
92 adcroft 1.1 If CVS is available on your system, we strongly encourage you to use it. CVS
93     provides an efficient and elegant way of organizing your code and keeping
94     track of your changes. If CVS is not available on your machine, you can also
95     download a tar file.
96    
97 edhill 1.15 Before you can use CVS, the following environment variable(s) should
98     be set within your shell. For a csh or tcsh shell, put the following
99     \begin{verbatim}
100     % setenv CVSROOT :pserver:cvsanon@mitgcm.org:/u/gcmpack
101     \end{verbatim}
102     in your .cshrc or .tcshrc file. For bash or sh shells, put:
103 adcroft 1.1 \begin{verbatim}
104 edhill 1.15 % export CVSROOT=':pserver:cvsanon@mitgcm.org:/u/gcmpack'
105 adcroft 1.6 \end{verbatim}
106 edhill 1.20 in your \texttt{.profile} or \texttt{.bashrc} file.
107 adcroft 1.6
108 edhill 1.15
109     To get MITgcm through CVS, first register with the MITgcm CVS server
110     using command:
111 adcroft 1.6 \begin{verbatim}
112 adcroft 1.1 % cvs login ( CVS password: cvsanon )
113     \end{verbatim}
114 edhill 1.15 You only need to do a ``cvs login'' once.
115 adcroft 1.1
116 edhill 1.15 To obtain the latest sources type:
117     \begin{verbatim}
118     % cvs co MITgcm
119     \end{verbatim}
120     or to get a specific release type:
121 adcroft 1.1 \begin{verbatim}
122 edhill 1.16 % cvs co -P -r checkpoint52i_post MITgcm
123 adcroft 1.1 \end{verbatim}
124 edhill 1.15 The MITgcm web site contains further directions concerning the source
125     code and CVS. It also contains a web interface to our CVS archive so
126     that one may easily view the state of files, revisions, and other
127     development milestones:
128 edhill 1.17 \begin{rawhtml} <A href=''http://mitgcm.org/download'' target="idontexist"> \end{rawhtml}
129 edhill 1.15 \begin{verbatim}
130 edhill 1.17 http://mitgcm.org/source_code.html
131 edhill 1.15 \end{verbatim}
132     \begin{rawhtml} </A> \end{rawhtml}
133 adcroft 1.1
134 edhill 1.19 As a convenience, the MITgcm CVS server contains aliases which are
135     named subsets of the codebase. These aliases can be especially
136     helpful when used over slow internet connections or on machines with
137     restricted storage space. Table \ref{tab:cvsModules} contains a list
138     of CVS aliases
139     \begin{table}[htb]
140     \centering
141     \begin{tabular}[htb]{|lp{3.25in}|}\hline
142     \textbf{Alias Name} & \textbf{Information (directories) Contained} \\\hline
143     \texttt{MITgcm\_code} & Only the source code -- none of the verification examples. \\
144     \texttt{MITgcm\_verif\_basic}
145     & Source code plus a small set of the verification examples
146     (\texttt{global\_ocean.90x40x15}, \texttt{aim.5l\_cs}, \texttt{hs94.128x64x5},
147     \texttt{front\_relax}, and \texttt{plume\_on\_slope}). \\
148     \texttt{MITgcm\_verif\_atmos} & Source code plus all of the atmospheric examples. \\
149     \texttt{MITgcm\_verif\_ocean} & Source code plus all of the oceanic examples. \\
150     \texttt{MITgcm\_verif\_all} & Source code plus all of the
151     verification examples. \\\hline
152     \end{tabular}
153     \caption{MITgcm CVS Modules}
154     \label{tab:cvsModules}
155     \end{table}
156 edhill 1.15
157     The checkout process creates a directory called \textit{MITgcm}. If
158     the directory \textit{MITgcm} exists this command updates your code
159     based on the repository. Each directory in the source tree contains a
160     directory \textit{CVS}. This information is required by CVS to keep
161     track of your file versions with respect to the repository. Don't edit
162     the files in \textit{CVS}! You can also use CVS to download code
163     updates. More extensive information on using CVS for maintaining
164     MITgcm code can be found
165 edhill 1.17 \begin{rawhtml} <A href=''http://mitgcm.org/usingcvstoget.html'' target="idontexist"> \end{rawhtml}
166 cnh 1.7 here
167     \begin{rawhtml} </A> \end{rawhtml}
168     .
169 edhill 1.19 It is important to note that the CVS aliases in Table
170     \ref{tab:cvsModules} cannot be used in conjunction with the CVS
171     \texttt{-d DIRNAME} option. However, the \texttt{MITgcm} directories
172     they create can be changed to a different name following the check-out:
173     \begin{verbatim}
174     % cvs co MITgcm_verif_basic
175     % mv MITgcm MITgcm_verif_basic
176     \end{verbatim}
177 cnh 1.7
178 adcroft 1.1
179 cnh 1.27 \subsection{Method 2 - Tar file download}
180 adcroft 1.4 \label{sect:conventionalDownload}
181 adcroft 1.1
182 adcroft 1.4 If you do not have CVS on your system, you can download the model as a
183 edhill 1.15 tar file from the web site at:
184 cnh 1.7 \begin{rawhtml} <A href=http://mitgcm.org/download target="idontexist"> \end{rawhtml}
185 adcroft 1.1 \begin{verbatim}
186     http://mitgcm.org/download/
187     \end{verbatim}
188 cnh 1.7 \begin{rawhtml} </A> \end{rawhtml}
189 adcroft 1.4 The tar file still contains CVS information which we urge you not to
190     delete; even if you do not use CVS yourself the information can help
191 edhill 1.15 us if you should need to send us your copy of the code. If a recent
192     tar file does not exist, then please contact the developers through
193 edhill 1.17 the
194     \begin{rawhtml} <A href=''mailto:MITgcm-support@mitgcm.org"> \end{rawhtml}
195     MITgcm-support@mitgcm.org
196     \begin{rawhtml} </A> \end{rawhtml}
197     mailing list.
198 adcroft 1.1
199 edhill 1.19 \subsubsection{Upgrading from an earlier version}
200 adcroft 1.12
201     If you already have an earlier version of the code you can ``upgrade''
202     your copy instead of downloading the entire repository again. First,
203     ``cd'' (change directory) to the top of your working copy:
204     \begin{verbatim}
205     % cd MITgcm
206     \end{verbatim}
207 edhill 1.15 and then issue the cvs update command such as:
208 adcroft 1.12 \begin{verbatim}
209 edhill 1.16 % cvs -q update -r checkpoint52i_post -d -P
210 adcroft 1.12 \end{verbatim}
211 edhill 1.16 This will update the ``tag'' to ``checkpoint52i\_post'', add any new
212 adcroft 1.12 directories (-d) and remove any empty directories (-P). The -q option
213     means be quiet which will reduce the number of messages you'll see in
214     the terminal. If you have modified the code prior to upgrading, CVS
215     will try to merge your changes with the upgrades. If there is a
216     conflict between your modifications and the upgrade, it will report
217     that file with a ``C'' in front, e.g.:
218     \begin{verbatim}
219     C model/src/ini_parms.F
220     \end{verbatim}
221     If the list of conflicts scrolled off the screen, you can re-issue the
222     cvs update command and it will report the conflicts. Conflicts are
223 edhill 1.15 indicated in the code by the delimites ``$<<<<<<<$'', ``======='' and
224     ``$>>>>>>>$''. For example,
225 edhill 1.17 {\small
226 adcroft 1.12 \begin{verbatim}
227     <<<<<<< ini_parms.F
228     & bottomDragLinear,myOwnBottomDragCoefficient,
229     =======
230     & bottomDragLinear,bottomDragQuadratic,
231     >>>>>>> 1.18
232     \end{verbatim}
233 edhill 1.17 }
234 adcroft 1.12 means that you added ``myOwnBottomDragCoefficient'' to a namelist at
235     the same time and place that we added ``bottomDragQuadratic''. You
236     need to resolve this conflict and in this case the line should be
237     changed to:
238 edhill 1.17 {\small
239 adcroft 1.12 \begin{verbatim}
240     & bottomDragLinear,bottomDragQuadratic,myOwnBottomDragCoefficient,
241     \end{verbatim}
242 edhill 1.17 }
243 edhill 1.15 and the lines with the delimiters ($<<<<<<$,======,$>>>>>>$) be deleted.
244 adcroft 1.12 Unless you are making modifications which exactly parallel
245     developments we make, these types of conflicts should be rare.
246    
247     \paragraph*{Upgrading to the current pre-release version}
248    
249     We don't make a ``release'' for every little patch and bug fix in
250     order to keep the frequency of upgrades to a minimum. However, if you
251     have run into a problem for which ``we have already fixed in the
252     latest code'' and we haven't made a ``tag'' or ``release'' since that
253     patch then you'll need to get the latest code:
254     \begin{verbatim}
255     % cvs -q update -A -d -P
256     \end{verbatim}
257     Unlike, the ``check-out'' and ``update'' procedures above, there is no
258     ``tag'' or release name. The -A tells CVS to upgrade to the
259     very latest version. As a rule, we don't recommend this since you
260     might upgrade while we are in the processes of checking in the code so
261     that you may only have part of a patch. Using this method of updating
262     also means we can't tell what version of the code you are working
263     with. So please be sure you understand what you're doing.
264    
265 adcroft 1.4 \section{Model and directory structure}
266 edhill 1.30 \begin{rawhtml}
267     <!-- CMIREDIR:directory_structure: -->
268     \end{rawhtml}
269 adcroft 1.1
270 adcroft 1.12 The ``numerical'' model is contained within a execution environment
271     support wrapper. This wrapper is designed to provide a general
272     framework for grid-point models. MITgcmUV is a specific numerical
273     model that uses the framework. Under this structure the model is split
274     into execution environment support code and conventional numerical
275     model code. The execution environment support code is held under the
276     \textit{eesupp} directory. The grid point model code is held under the
277     \textit{model} directory. Code execution actually starts in the
278     \textit{eesupp} routines and not in the \textit{model} routines. For
279 edhill 1.17 this reason the top-level \textit{MAIN.F} is in the
280     \textit{eesupp/src} directory. In general, end-users should not need
281     to worry about this level. The top-level routine for the numerical
282     part of the code is in \textit{model/src/THE\_MODEL\_MAIN.F}. Here is
283     a brief description of the directory structure of the model under the
284     root tree (a detailed description is given in section 3: Code
285     structure).
286 adcroft 1.1
287     \begin{itemize}
288    
289 edhill 1.17 \item \textit{bin}: this directory is initially empty. It is the
290     default directory in which to compile the code.
291    
292 adcroft 1.1 \item \textit{diags}: contains the code relative to time-averaged
293 edhill 1.17 diagnostics. It is subdivided into two subdirectories \textit{inc}
294     and \textit{src} that contain include files (*.\textit{h} files) and
295     Fortran subroutines (*.\textit{F} files), respectively.
296 adcroft 1.1
297     \item \textit{doc}: contains brief documentation notes.
298 edhill 1.17
299     \item \textit{eesupp}: contains the execution environment source code.
300     Also subdivided into two subdirectories \textit{inc} and
301     \textit{src}.
302    
303     \item \textit{exe}: this directory is initially empty. It is the
304     default directory in which to execute the code.
305    
306     \item \textit{model}: this directory contains the main source code.
307     Also subdivided into two subdirectories \textit{inc} and
308     \textit{src}.
309    
310     \item \textit{pkg}: contains the source code for the packages. Each
311     package corresponds to a subdirectory. For example, \textit{gmredi}
312     contains the code related to the Gent-McWilliams/Redi scheme,
313     \textit{aim} the code relative to the atmospheric intermediate
314     physics. The packages are described in detail in section 3.
315    
316     \item \textit{tools}: this directory contains various useful tools.
317     For example, \textit{genmake2} is a script written in csh (C-shell)
318     that should be used to generate your makefile. The directory
319     \textit{adjoint} contains the makefile specific to the Tangent
320     linear and Adjoint Compiler (TAMC) that generates the adjoint code.
321     The latter is described in details in part V.
322    
323 adcroft 1.1 \item \textit{utils}: this directory contains various utilities. The
324 edhill 1.17 subdirectory \textit{knudsen2} contains code and a makefile that
325     compute coefficients of the polynomial approximation to the knudsen
326     formula for an ocean nonlinear equation of state. The
327     \textit{matlab} subdirectory contains matlab scripts for reading
328     model output directly into matlab. \textit{scripts} contains C-shell
329     post-processing scripts for joining processor-based and tiled-based
330     model output.
331    
332     \item \textit{verification}: this directory contains the model
333     examples. See section \ref{sect:modelExamples}.
334 adcroft 1.1
335     \end{itemize}
336    
337 cnh 1.26 \section[MITgcm Example Experiments]{Example experiments}
338 adcroft 1.4 \label{sect:modelExamples}
339 edhill 1.30 \begin{rawhtml}
340     <!-- CMIREDIR:modelExamples: -->
341     \end{rawhtml}
342 adcroft 1.1
343 edhill 1.15 %% a set of twenty-four pre-configured numerical experiments
344    
345     The MITgcm distribution comes with more than a dozen pre-configured
346     numerical experiments. Some of these example experiments are tests of
347     individual parts of the model code, but many are fully fledged
348     numerical simulations. A few of the examples are used for tutorial
349     documentation in sections \ref{sect:eg-baro} - \ref{sect:eg-global}.
350     The other examples follow the same general structure as the tutorial
351     examples. However, they only include brief instructions in a text file
352     called {\it README}. The examples are located in subdirectories under
353     the directory \textit{verification}. Each example is briefly described
354     below.
355 adcroft 1.1
356 cnh 1.8 \subsection{Full list of model examples}
357 adcroft 1.1
358 cnh 1.8 \begin{enumerate}
359 edhill 1.17
360 adcroft 1.1 \item \textit{exp0} - single layer, ocean double gyre (barotropic with
361 edhill 1.15 free-surface). This experiment is described in detail in section
362     \ref{sect:eg-baro}.
363 adcroft 1.1
364 edhill 1.15 \item \textit{exp1} - Four layer, ocean double gyre. This experiment
365     is described in detail in section \ref{sect:eg-baroc}.
366    
367 adcroft 1.1 \item \textit{exp2} - 4x4 degree global ocean simulation with steady
368 edhill 1.15 climatological forcing. This experiment is described in detail in
369     section \ref{sect:eg-global}.
370    
371     \item \textit{exp4} - Flow over a Gaussian bump in open-water or
372     channel with open boundaries.
373    
374     \item \textit{exp5} - Inhomogenously forced ocean convection in a
375     doubly periodic box.
376 adcroft 1.1
377 cnh 1.8 \item \textit{front\_relax} - Relaxation of an ocean thermal front (test for
378 adcroft 1.1 Gent/McWilliams scheme). 2D (Y-Z).
379    
380 edhill 1.15 \item \textit{internal wave} - Ocean internal wave forced by open
381     boundary conditions.
382    
383 cnh 1.8 \item \textit{natl\_box} - Eastern subtropical North Atlantic with KPP
384 edhill 1.15 scheme; 1 month integration
385    
386     \item \textit{hs94.1x64x5} - Zonal averaged atmosphere using Held and
387     Suarez '94 forcing.
388    
389     \item \textit{hs94.128x64x5} - 3D atmosphere dynamics using Held and
390     Suarez '94 forcing.
391    
392 adcroft 1.1 \item \textit{hs94.cs-32x32x5} - 3D atmosphere dynamics using Held and
393 edhill 1.15 Suarez '94 forcing on the cubed sphere.
394    
395     \item \textit{aim.5l\_zon-ave} - Intermediate Atmospheric physics.
396     Global Zonal Mean configuration, 1x64x5 resolution.
397    
398     \item \textit{aim.5l\_XZ\_Equatorial\_Slice} - Intermediate
399     Atmospheric physics, equatorial Slice configuration. 2D (X-Z).
400    
401 adcroft 1.1 \item \textit{aim.5l\_Equatorial\_Channel} - Intermediate Atmospheric
402 edhill 1.15 physics. 3D Equatorial Channel configuration.
403    
404 cnh 1.8 \item \textit{aim.5l\_LatLon} - Intermediate Atmospheric physics.
405 edhill 1.15 Global configuration, on latitude longitude grid with 128x64x5 grid
406     points ($2.8^\circ{\rm degree}$ resolution).
407    
408     \item \textit{adjustment.128x64x1} Barotropic adjustment problem on
409     latitude longitude grid with 128x64 grid points ($2.8^\circ{\rm
410     degree}$ resolution).
411    
412     \item \textit{adjustment.cs-32x32x1} Barotropic adjustment problem on
413     cube sphere grid with 32x32 points per face ( roughly $2.8^\circ{\rm
414     degree}$ resolution).
415    
416 cnh 1.8 \item \textit{advect\_cs} Two-dimensional passive advection test on
417 edhill 1.15 cube sphere grid.
418    
419     \item \textit{advect\_xy} Two-dimensional (horizontal plane) passive
420     advection test on Cartesian grid.
421    
422     \item \textit{advect\_yz} Two-dimensional (vertical plane) passive
423     advection test on Cartesian grid.
424    
425     \item \textit{carbon} Simple passive tracer experiment. Includes
426     derivative calculation. Described in detail in section
427     \ref{sect:eg-carbon-ad}.
428 cnh 1.8
429     \item \textit{flt\_example} Example of using float package.
430 edhill 1.15
431     \item \textit{global\_ocean.90x40x15} Global circulation with GM, flux
432     boundary conditions and poles.
433 cnh 1.8
434 mlosch 1.13 \item \textit{global\_ocean\_pressure} Global circulation in pressure
435     coordinate (non-Boussinesq ocean model). Described in detail in
436     section \ref{sect:eg-globalpressure}.
437 edhill 1.15
438     \item \textit{solid-body.cs-32x32x1} Solid body rotation test for cube
439     sphere grid.
440 cnh 1.8
441     \end{enumerate}
442 adcroft 1.1
443 adcroft 1.4 \subsection{Directory structure of model examples}
444 adcroft 1.1
445     Each example directory has the following subdirectories:
446    
447     \begin{itemize}
448     \item \textit{code}: contains the code particular to the example. At a
449 edhill 1.16 minimum, this directory includes the following files:
450 adcroft 1.1
451 edhill 1.16 \begin{itemize}
452     \item \textit{code/CPP\_EEOPTIONS.h}: declares CPP keys relative to
453     the ``execution environment'' part of the code. The default
454     version is located in \textit{eesupp/inc}.
455    
456     \item \textit{code/CPP\_OPTIONS.h}: declares CPP keys relative to
457     the ``numerical model'' part of the code. The default version is
458     located in \textit{model/inc}.
459    
460     \item \textit{code/SIZE.h}: declares size of underlying
461     computational grid. The default version is located in
462     \textit{model/inc}.
463     \end{itemize}
464    
465     In addition, other include files and subroutines might be present in
466     \textit{code} depending on the particular experiment. See Section 2
467     for more details.
468 edhill 1.15
469     \item \textit{input}: contains the input data files required to run
470     the example. At a minimum, the \textit{input} directory contains the
471     following files:
472 adcroft 1.1
473 edhill 1.16 \begin{itemize}
474     \item \textit{input/data}: this file, written as a namelist,
475     specifies the main parameters for the experiment.
476    
477     \item \textit{input/data.pkg}: contains parameters relative to the
478     packages used in the experiment.
479    
480     \item \textit{input/eedata}: this file contains ``execution
481     environment'' data. At present, this consists of a specification
482     of the number of threads to use in $X$ and $Y$ under multithreaded
483     execution.
484     \end{itemize}
485 edhill 1.17
486     In addition, you will also find in this directory the forcing and
487     topography files as well as the files describing the initial state
488     of the experiment. This varies from experiment to experiment. See
489     section 2 for more details.
490 edhill 1.16
491     \item \textit{results}: this directory contains the output file
492     \textit{output.txt} produced by the simulation example. This file is
493     useful for comparison with your own output when you run the
494     experiment.
495 adcroft 1.1 \end{itemize}
496    
497 edhill 1.17 Once you have chosen the example you want to run, you are ready to
498     compile the code.
499 adcroft 1.1
500 cnh 1.26 \section[Building MITgcm]{Building the code}
501 adcroft 1.4 \label{sect:buildingCode}
502 edhill 1.30 \begin{rawhtml}
503     <!-- CMIREDIR:buildingCode: -->
504     \end{rawhtml}
505 adcroft 1.4
506     To compile the code, we use the {\em make} program. This uses a file
507     ({\em Makefile}) that allows us to pre-process source files, specify
508     compiler and optimization options and also figures out any file
509 edhill 1.16 dependencies. We supply a script ({\em genmake2}), described in
510     section \ref{sect:genmake}, that automatically creates the {\em
511     Makefile} for you. You then need to build the dependencies and
512     compile the code.
513 adcroft 1.4
514     As an example, let's assume that you want to build and run experiment
515 edhill 1.16 \textit{verification/exp2}. The are multiple ways and places to
516     actually do this but here let's build the code in
517 adcroft 1.4 \textit{verification/exp2/input}:
518     \begin{verbatim}
519     % cd verification/exp2/input
520     \end{verbatim}
521     First, build the {\em Makefile}:
522     \begin{verbatim}
523 edhill 1.16 % ../../../tools/genmake2 -mods=../code
524 adcroft 1.4 \end{verbatim}
525     The command line option tells {\em genmake} to override model source
526 edhill 1.29 code with any files in the directory {\em ../code/}.
527 adcroft 1.4
528 edhill 1.16 On many systems, the {\em genmake2} program will be able to
529     automatically recognize the hardware, find compilers and other tools
530     within the user's path (``echo \$PATH''), and then choose an
531 edhill 1.29 appropriate set of options from the files (``optfiles'') contained in
532     the {\em tools/build\_options} directory. Under some circumstances, a
533     user may have to create a new ``optfile'' in order to specify the
534     exact combination of compiler, compiler flags, libraries, and other
535     options necessary to build a particular configuration of MITgcm. In
536     such cases, it is generally helpful to read the existing ``optfiles''
537     and mimic their syntax.
538 edhill 1.16
539     Through the MITgcm-support list, the MITgcm developers are willing to
540     provide help writing or modifing ``optfiles''. And we encourage users
541     to post new ``optfiles'' (particularly ones for new machines or
542 edhill 1.17 architectures) to the
543     \begin{rawhtml} <A href=''mailto:MITgcm-support@mitgcm.org"> \end{rawhtml}
544     MITgcm-support@mitgcm.org
545     \begin{rawhtml} </A> \end{rawhtml}
546     list.
547 edhill 1.16
548     To specify an optfile to {\em genmake2}, the syntax is:
549 adcroft 1.4 \begin{verbatim}
550 edhill 1.16 % ../../../tools/genmake2 -mods=../code -of /path/to/optfile
551 adcroft 1.4 \end{verbatim}
552    
553 edhill 1.16 Once a {\em Makefile} has been generated, we create the dependencies:
554 adcroft 1.4 \begin{verbatim}
555     % make depend
556     \end{verbatim}
557 edhill 1.16 This modifies the {\em Makefile} by attaching a [long] list of files
558     upon which other files depend. The purpose of this is to reduce
559     re-compilation if and when you start to modify the code. The {\tt make
560     depend} command also creates links from the model source to this
561 edhill 1.29 directory. It is important to note that the {\tt make depend} stage
562     will occasionally produce warnings or errors since the dependency
563     parsing tool is unable to find all of the necessary header files
564     (\textit{eg.} \texttt{netcdf.inc}). In these circumstances, it is
565     usually OK to ignore the warnings/errors and proceed to the next step.
566 adcroft 1.1
567 edhill 1.16 Next compile the code:
568 adcroft 1.4 \begin{verbatim}
569     % make
570     \end{verbatim}
571     The {\tt make} command creates an executable called \textit{mitgcmuv}.
572 edhill 1.16 Additional make ``targets'' are defined within the makefile to aid in
573     the production of adjoint and other versions of MITgcm.
574 adcroft 1.4
575     Now you are ready to run the model. General instructions for doing so are
576     given in section \ref{sect:runModel}. Here, we can run the model with:
577     \begin{verbatim}
578     ./mitgcmuv > output.txt
579     \end{verbatim}
580     where we are re-directing the stream of text output to the file {\em
581     output.txt}.
582    
583    
584 cnh 1.26 \section[Running MITgcm]{Running the model in prognostic mode}
585 adcroft 1.4 \label{sect:runModel}
586 edhill 1.30 \begin{rawhtml}
587     <!-- CMIREDIR:runModel: -->
588     \end{rawhtml}
589 adcroft 1.4
590 edhill 1.23 If compilation finished succesfuully (section \ref{sect:buildingCode})
591     then an executable called \texttt{mitgcmuv} will now exist in the
592     local directory.
593 adcroft 1.1
594 edhill 1.29 To run the model as a single process (\textit{ie.} not in parallel)
595     simply 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 edhill 1.29 In the event that the model encounters an error and stops, it is very
610     helpful to include the last few line of this \texttt{output.txt} file
611     along with the (\texttt{stderr}) error message within any bug reports.
612 adcroft 1.1
613 edhill 1.17 For the example experiments in {\em verification}, an example of the
614 edhill 1.29 output is kept in {\em results/output.txt} for comparison. You can
615     compare your {\em output.txt} with the corresponding one for that
616     experiment to check that the set-up works.
617 adcroft 1.1
618    
619    
620 adcroft 1.4 \subsection{Output files}
621 adcroft 1.1
622 edhill 1.29 The model produces various output files. Depending upon the I/O
623     package selected (either \texttt{mdsio} or \texttt{mnc} or both as
624     determined by both the compile-time settings and the run-time flags in
625     \texttt{data.pkg}), the following output may appear.
626    
627    
628     \subsubsection{MDSIO output files}
629    
630     The ``traditional'' output files are generated by the \texttt{mdsio}
631     package. At a minimum, the instantaneous ``state'' of the model is
632     written out, which is made of the following files:
633 adcroft 1.1
634     \begin{itemize}
635     \item \textit{U.00000nIter} - zonal component of velocity field (m/s and $>
636     0 $ eastward).
637    
638     \item \textit{V.00000nIter} - meridional component of velocity field (m/s
639     and $> 0$ northward).
640    
641     \item \textit{W.00000nIter} - vertical component of velocity field (ocean:
642     m/s and $> 0$ upward, atmosphere: Pa/s and $> 0$ towards increasing pressure
643     i.e. downward).
644    
645     \item \textit{T.00000nIter} - potential temperature (ocean: $^{0}$C,
646     atmosphere: $^{0}$K).
647    
648     \item \textit{S.00000nIter} - ocean: salinity (psu), atmosphere: water vapor
649     (g/kg).
650    
651     \item \textit{Eta.00000nIter} - ocean: surface elevation (m), atmosphere:
652     surface pressure anomaly (Pa).
653     \end{itemize}
654    
655     The chain \textit{00000nIter} consists of ten figures that specify the
656     iteration number at which the output is written out. For example, \textit{%
657     U.0000000300} is the zonal velocity at iteration 300.
658    
659     In addition, a ``pickup'' or ``checkpoint'' file called:
660    
661     \begin{itemize}
662     \item \textit{pickup.00000nIter}
663     \end{itemize}
664    
665     is written out. This file represents the state of the model in a condensed
666     form and is used for restarting the integration. If the C-D scheme is used,
667     there is an additional ``pickup'' file:
668    
669     \begin{itemize}
670     \item \textit{pickup\_cd.00000nIter}
671     \end{itemize}
672    
673     containing the D-grid velocity data and that has to be written out as well
674     in order to restart the integration. Rolling checkpoint files are the same
675     as the pickup files but are named differently. Their name contain the chain
676     \textit{ckptA} or \textit{ckptB} instead of \textit{00000nIter}. They can be
677     used to restart the model but are overwritten every other time they are
678     output to save disk space during long integrations.
679    
680 edhill 1.29
681    
682     \subsubsection{MNC output files}
683    
684     Unlike the \texttt{mdsio} output, the \texttt{mnc}--generated output
685     is usually (though not necessarily) placed within a subdirectory with
686     a name such as \texttt{mnc\_test\_\${DATE}\_\${SEQ}}. The files
687     within this subdirectory are all in the ``self-describing'' netCDF
688     format and can thus be browsed and/or plotted using tools such as:
689     \begin{itemize}
690     \item At a minimum, the \texttt{ncdump} utility is typically included
691     with every netCDF install:
692     \begin{rawhtml} <A href="http://www.unidata.ucar.edu/packages/netcdf/"> \end{rawhtml}
693     \begin{verbatim}
694     http://www.unidata.ucar.edu/packages/netcdf/
695     \end{verbatim}
696     \begin{rawhtml} </A> \end{rawhtml}
697    
698     \item The \texttt{ncview} utility is a very convenient and quick way
699     to plot netCDF data and it runs on most OSes:
700     \begin{rawhtml} <A href="http://meteora.ucsd.edu/~pierce/ncview_home_page.html"> \end{rawhtml}
701     \begin{verbatim}
702     http://meteora.ucsd.edu/~pierce/ncview_home_page.html
703     \end{verbatim}
704     \begin{rawhtml} </A> \end{rawhtml}
705    
706     \item MatLAB(c) and other common post-processing environments provide
707     various netCDF interfaces including:
708     \begin{rawhtml} <A href="http://woodshole.er.usgs.gov/staffpages/cdenham/public_html/MexCDF/nc4ml5.html"> \end{rawhtml}
709     \begin{verbatim}
710     http://woodshole.er.usgs.gov/staffpages/cdenham/public_html/MexCDF/nc4ml5.html
711     \end{verbatim}
712     \begin{rawhtml} </A> \end{rawhtml}
713    
714     \end{itemize}
715    
716    
717 adcroft 1.4 \subsection{Looking at the output}
718 adcroft 1.1
719 edhill 1.29 The ``traditional'' or mdsio model data are written according to a
720     ``meta/data'' file format. Each variable is associated with two files
721     with suffix names \textit{.data} and \textit{.meta}. The
722     \textit{.data} file contains the data written in binary form
723     (big\_endian by default). The \textit{.meta} file is a ``header'' file
724     that contains information about the size and the structure of the
725     \textit{.data} file. This way of organizing the output is particularly
726     useful when running multi-processors calculations. The base version of
727     the model includes a few matlab utilities to read output files written
728     in this format. The matlab scripts are located in the directory
729     \textit{utils/matlab} under the root tree. The script \textit{rdmds.m}
730     reads the data. Look at the comments inside the script to see how to
731     use it.
732 adcroft 1.1
733 adcroft 1.4 Some examples of reading and visualizing some output in {\em Matlab}:
734     \begin{verbatim}
735     % matlab
736     >> H=rdmds('Depth');
737     >> contourf(H');colorbar;
738     >> title('Depth of fluid as used by model');
739    
740     >> eta=rdmds('Eta',10);
741     >> imagesc(eta');axis ij;colorbar;
742     >> title('Surface height at iter=10');
743    
744     >> eta=rdmds('Eta',[0:10:100]);
745     >> for n=1:11; imagesc(eta(:,:,n)');axis ij;colorbar;pause(.5);end
746     \end{verbatim}
747 adcroft 1.1
748 edhill 1.29 Similar scripts for netCDF output (\texttt{rdmnc.m}) are available.

  ViewVC Help
Powered by ViewVC 1.1.22