| 1 | edhill | 1.32 | % $Header: /u/gcmpack/manual/part3/getting_started.tex,v 1.31 2005/08/09 21:52:09 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 | edhill | 1.32 | The full MITgcm distribution comes with more than a dozen | 
| 347 |  |  | pre-configured numerical experiments. Some of these example | 
| 348 |  |  | experiments are tests of individual parts of the model code, but many | 
| 349 |  |  | are fully fledged numerical simulations. A few of the examples are | 
| 350 |  |  | used for tutorial documentation in sections \ref{sect:eg-baro} - | 
| 351 |  |  | \ref{sect:eg-global}.  The other examples follow the same general | 
| 352 |  |  | structure as the tutorial examples. However, they only include brief | 
| 353 |  |  | instructions in a text file called {\it README}.  The examples are | 
| 354 |  |  | located in subdirectories under the directory \texttt{verification}. | 
| 355 |  |  | Each example is briefly described 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 |  |  |  |