/[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.31 - (hide annotations) (download) (as text)
Tue Aug 9 21:52:09 2005 UTC (19 years, 11 months ago) by edhill
Branch: MAIN
Changes since 1.30: +177 -149 lines
File MIME type: application/x-tex
 o various small fixes including spelling and the build process

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

  ViewVC Help
Powered by ViewVC 1.1.22