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

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

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

revision 1.8 by cnh, Mon Oct 22 11:55:47 2001 UTC revision 1.14 by edhill, Wed Jul 30 13:42:52 2003 UTC
# Line 28  and site, as well as links for downloadi Line 28  and site, as well as links for downloadi
28  documentation, to data-sources and other related sites.  documentation, to data-sources and other related sites.
29    
30  There is also a support news group for the model that you can email at  There is also a support news group for the model that you can email at
31  \texttt{support@mitgcm.org} or browse at:  \texttt{MITgcm-support@mitgcm.org} or browse at:
32  \begin{verbatim}  \begin{verbatim}
33  news://mitgcm.org/mitgcm.support  news://mitgcm.org/mitgcm.support
34  \end{verbatim}  \end{verbatim}
# Line 41  in the future. Line 41  in the future.
41    
42  MITgcm can be downloaded from our system by following  MITgcm can be downloaded from our system by following
43  the instructions below. As a courtesy we ask that you send e-mail to us at  the instructions below. As a courtesy we ask that you send e-mail to us at
44  \begin{rawhtml} <A href=mailto:support@mitgcm.org> \end{rawhtml}  \begin{rawhtml} <A href=mailto:MITgcm-support@mitgcm.org> \end{rawhtml}
45  support@mitgcm.org  MITgcm-support@mitgcm.org
46  \begin{rawhtml} </A> \end{rawhtml}  \begin{rawhtml} </A> \end{rawhtml}
47  to enable us to keep track of who's using the model and in what application.  to enable us to keep track of who's using the model and in what application.
48  You can download the model two ways:  You can download the model two ways:
49    
50  \begin{enumerate}  \begin{enumerate}
51  \item Using CVS software. CVS is a freely available source code managment  \item Using CVS software. CVS is a freely available source code management
52  tool. To use CVS you need to have the software installed. Many systems  tool. To use CVS you need to have the software installed. Many systems
53  come with CVS pre-installed, otherwise good places to look for  come with CVS pre-installed, otherwise good places to look for
54  the software for a particular platform are  the software for a particular platform are
# Line 86  You only need to do ``cvs login'' once. Line 86  You only need to do ``cvs login'' once.
86    
87  To obtain the sources for release1 type:  To obtain the sources for release1 type:
88  \begin{verbatim}  \begin{verbatim}
89  % cvs co -d directory -P -r release1 MITgcmUV  % cvs co -d directory -P -r release1_beta1 MITgcm
90  \end{verbatim}  \end{verbatim}
91    
92  This creates a directory called \textit{directory}. If \textit{directory}  This creates a directory called \textit{directory}. If \textit{directory}
# Line 116  The tar file still contains CVS informat Line 116  The tar file still contains CVS informat
116  delete; even if you do not use CVS yourself the information can help  delete; even if you do not use CVS yourself the information can help
117  us if you should need to send us your copy of the code.  us if you should need to send us your copy of the code.
118    
119    \paragraph*{Upgrading from an earlier version}
120    
121    If you already have an earlier version of the code you can ``upgrade''
122    your copy instead of downloading the entire repository again. First,
123    ``cd'' (change directory) to the top of your working copy:
124    \begin{verbatim}
125    % cd MITgcm
126    \end{verbatim}
127    and then issue the cvs update command:
128    \begin{verbatim}
129    % cvs -q update -r release1_beta1 -d -P
130    \end{verbatim}
131    This will update the ``tag'' to ``release1\_beta1'', add any new
132    directories (-d) and remove any empty directories (-P). The -q option
133    means be quiet which will reduce the number of messages you'll see in
134    the terminal. If you have modified the code prior to upgrading, CVS
135    will try to merge your changes with the upgrades. If there is a
136    conflict between your modifications and the upgrade, it will report
137    that file with a ``C'' in front, e.g.:
138    \begin{verbatim}
139    C model/src/ini_parms.F
140    \end{verbatim}
141    If the list of conflicts scrolled off the screen, you can re-issue the
142    cvs update command and it will report the conflicts. Conflicts are
143    indicated in the code by the delimites ``<<<<<<<'', ``======='' and
144    ``>>>>>>>''. For example,
145    \begin{verbatim}
146    <<<<<<< ini_parms.F
147         & bottomDragLinear,myOwnBottomDragCoefficient,
148    =======
149         & bottomDragLinear,bottomDragQuadratic,
150    >>>>>>> 1.18
151    \end{verbatim}
152    means that you added ``myOwnBottomDragCoefficient'' to a namelist at
153    the same time and place that we added ``bottomDragQuadratic''. You
154    need to resolve this conflict and in this case the line should be
155    changed to:
156    \begin{verbatim}
157         & bottomDragLinear,bottomDragQuadratic,myOwnBottomDragCoefficient,
158    \end{verbatim}
159    and the lines with the delimiters (<<<<<<,======,>>>>>>) be deleted.
160    Unless you are making modifications which exactly parallel
161    developments we make, these types of conflicts should be rare.
162    
163    \paragraph*{Upgrading to the current pre-release version}
164    
165    We don't make a ``release'' for every little patch and bug fix in
166    order to keep the frequency of upgrades to a minimum. However, if you
167    have run into a problem for which ``we have already fixed in the
168    latest code'' and we haven't made a ``tag'' or ``release'' since that
169    patch then you'll need to get the latest code:
170    \begin{verbatim}
171    % cvs -q update -A -d -P
172    \end{verbatim}
173    Unlike, the ``check-out'' and ``update'' procedures above, there is no
174    ``tag'' or release name. The -A tells CVS to upgrade to the
175    very latest version. As a rule, we don't recommend this since you
176    might upgrade while we are in the processes of checking in the code so
177    that you may only have part of a patch. Using this method of updating
178    also means we can't tell what version of the code you are working
179    with. So please be sure you understand what you're doing.
180    
181  \section{Model and directory structure}  \section{Model and directory structure}
182    
183  The ``numerical'' model is contained within a execution environment support  The ``numerical'' model is contained within a execution environment
184  wrapper. This wrapper is designed to provide a general framework for  support wrapper. This wrapper is designed to provide a general
185  grid-point models. MITgcmUV is a specific numerical model that uses the  framework for grid-point models. MITgcmUV is a specific numerical
186  framework. Under this structure the model is split into execution  model that uses the framework. Under this structure the model is split
187  environment support code and conventional numerical model code. The  into execution environment support code and conventional numerical
188  execution environment support code is held under the \textit{eesupp}  model code. The execution environment support code is held under the
189  directory. The grid point model code is held under the \textit{model}  \textit{eesupp} directory. The grid point model code is held under the
190  directory. Code execution actually starts in the \textit{eesupp} routines  \textit{model} directory. Code execution actually starts in the
191  and not in the \textit{model} routines. For this reason the top-level  \textit{eesupp} routines and not in the \textit{model} routines. For
192    this reason the top-level
193  \textit{MAIN.F} is in the \textit{eesupp/src} directory. In general,  \textit{MAIN.F} is in the \textit{eesupp/src} directory. In general,
194  end-users should not need to worry about this level. The top-level routine  end-users should not need to worry about this level. The top-level routine
195  for the numerical part of the code is in \textit{model/src/THE\_MODEL\_MAIN.F%  for the numerical part of the code is in \textit{model/src/THE\_MODEL\_MAIN.F%
# Line 139  directory in which to compile the code. Line 202  directory in which to compile the code.
202    
203  \item \textit{diags}: contains the code relative to time-averaged  \item \textit{diags}: contains the code relative to time-averaged
204  diagnostics. It is subdivided into two subdirectories \textit{inc} and  diagnostics. It is subdivided into two subdirectories \textit{inc} and
205  \textit{src} that contain include files (*.\textit{h} files) and fortran  \textit{src} that contain include files (*.\textit{h} files) and Fortran
206  subroutines (*.\textit{F} files), respectively.  subroutines (*.\textit{F} files), respectively.
207    
208  \item \textit{doc}: contains brief documentation notes.  \item \textit{doc}: contains brief documentation notes.
# Line 184  The MITgcm distribution comes with a set Line 247  The MITgcm distribution comes with a set
247  numerical experiments. Some of these examples experiments are tests of  numerical experiments. Some of these examples experiments are tests of
248  individual parts of the model code, but many are fully fledged numerical  individual parts of the model code, but many are fully fledged numerical
249  simulations. A few of the examples are used for tutorial documentation  simulations. A few of the examples are used for tutorial documentation
250  in sections \ref{sec:eg-baro} - \ref{sec:eg-global}. The other examples  in sections \ref{sect:eg-baro} - \ref{sect:eg-global}. The other examples
251  follow the same general structure as the tutorial examples. However,  follow the same general structure as the tutorial examples. However,
252  they only include brief instructions in a text file called {\it README}.  they only include brief instructions in a text file called {\it README}.
253  The examples are located in subdirectories under  The examples are located in subdirectories under
# Line 196  example is briefly described below. Line 259  example is briefly described below.
259  \begin{enumerate}  \begin{enumerate}
260  \item \textit{exp0} - single layer, ocean double gyre (barotropic with  \item \textit{exp0} - single layer, ocean double gyre (barotropic with
261  free-surface). This experiment is described in detail in section  free-surface). This experiment is described in detail in section
262  \ref{sec:eg-baro}.  \ref{sect:eg-baro}.
263    
264  \item \textit{exp1} - Four layer, ocean double gyre. This experiment is described in detail in section  \item \textit{exp1} - Four layer, ocean double gyre. This experiment is described in detail in section
265  \ref{sec:eg-baroc}.  \ref{sect:eg-baroc}.
266    
267  \item \textit{exp2} - 4x4 degree global ocean simulation with steady  \item \textit{exp2} - 4x4 degree global ocean simulation with steady
268  climatological forcing. This experiment is described in detail in section  climatological forcing. This experiment is described in detail in section
269  \ref{sec:eg-global}.  \ref{sect:eg-global}.
270    
271  \item \textit{exp4} - Flow over a Gaussian bump in open-water or channel  \item \textit{exp4} - Flow over a Gaussian bump in open-water or channel
272  with open boundaries.  with open boundaries.
# Line 255  $2.8^\circ{\rm degree}$ resolution). Line 318  $2.8^\circ{\rm degree}$ resolution).
318  cube sphere grid.  cube sphere grid.
319    
320  \item \textit{advect\_xy} Two-dimensional (horizontal plane) passive advection  \item \textit{advect\_xy} Two-dimensional (horizontal plane) passive advection
321  test on cartesian grid.  test on Cartesian grid.
322    
323  \item \textit{advect\_yz} Two-dimensional (vertical plane) passive advection test on cartesian grid.  \item \textit{advect\_yz} Two-dimensional (vertical plane) passive advection test on Cartesian grid.
324    
325  \item \textit{carbon} Simple passive tracer experiment. Includes derivative  \item \textit{carbon} Simple passive tracer experiment. Includes derivative
326  calculation. Described in detail in section \ref{sec:eg-carbon-ad}.  calculation. Described in detail in section \ref{sect:eg-carbon-ad}.
327    
328  \item \textit{flt\_example} Example of using float package.  \item \textit{flt\_example} Example of using float package.
329    
330  \item \textit{global\_ocean.90x40x15} Global circulation with  \item \textit{global\_ocean.90x40x15} Global circulation with
331  GM, flux boundary conditions and poles.  GM, flux boundary conditions and poles.
332    
333    \item \textit{global\_ocean\_pressure} Global circulation in pressure
334      coordinate (non-Boussinesq ocean model). Described in detail in
335      section \ref{sect:eg-globalpressure}.
336    
337  \item \textit{solid-body.cs-32x32x1} Solid body rotation test for cube sphere  \item \textit{solid-body.cs-32x32x1} Solid body rotation test for cube sphere
338  grid.  grid.
339    
# Line 297  In addition, other include files and sub Line 364  In addition, other include files and sub
364  code} depending on the particular experiment. See section 2 for more details.  code} depending on the particular experiment. See section 2 for more details.
365    
366  \item \textit{input}: contains the input data files required to run the  \item \textit{input}: contains the input data files required to run the
367  example. At a mimimum, the \textit{input} directory contains the following  example. At a minimum, the \textit{input} directory contains the following
368  files:  files:
369    
370  \begin{itemize}  \begin{itemize}
# Line 330  the code. Line 397  the code.
397  To compile the code, we use the {\em make} program. This uses a file  To compile the code, we use the {\em make} program. This uses a file
398  ({\em Makefile}) that allows us to pre-process source files, specify  ({\em Makefile}) that allows us to pre-process source files, specify
399  compiler and optimization options and also figures out any file  compiler and optimization options and also figures out any file
400  dependancies. We supply a script ({\em genmake}), described in section  dependencies. We supply a script ({\em genmake}), described in section
401  \ref{sect:genmake}, that automatically creates the {\em Makefile} for  \ref{sect:genmake}, that automatically creates the {\em Makefile} for
402  you. You then need to build the dependancies and compile the code.  you. You then need to build the dependencies and compile the code.
403    
404  As an example, let's assume that you want to build and run experiment  As an example, let's assume that you want to build and run experiment
405  \textit{verification/exp2}. The are multiple ways and places to actually  \textit{verification/exp2}. The are multiple ways and places to actually
# Line 354  to use the following options when invoki Line 421  to use the following options when invoki
421  % ../../../tools/genmake  -mods=../code  % ../../../tools/genmake  -mods=../code
422  \end{verbatim}  \end{verbatim}
423    
424  Next, create the dependancies:  Next, create the dependencies:
425  \begin{verbatim}  \begin{verbatim}
426  % make depend  % make depend
427  \end{verbatim}  \end{verbatim}
# Line 406  files must be in the same place. If you Line 473  files must be in the same place. If you
473  % cp ../code/mitgcmuv ./  % cp ../code/mitgcmuv ./
474  % ./mitgcmuv > output.txt  % ./mitgcmuv > output.txt
475  \end{verbatim}  \end{verbatim}
476  or if you will be making muliple runs with the same executable:  or if you will be making multiple runs with the same executable:
477  \begin{verbatim}  \begin{verbatim}
478  % cd ../  % cd ../
479  % cp -r input run1  % cp -r input run1
# Line 418  or if you will be making muliple runs wi Line 485  or if you will be making muliple runs wi
485  \subsubsection{Building from a new directory}  \subsubsection{Building from a new directory}
486    
487  Since the {\em input} directory contains input files it is often more  Since the {\em input} directory contains input files it is often more
488  useful to keep {\em input} prestine and build in a new directory  useful to keep {\em input} pristine and build in a new directory
489  within {\em verification/exp2/}:  within {\em verification/exp2/}:
490  \begin{verbatim}  \begin{verbatim}
491  % cd verification/exp2  % cd verification/exp2
# Line 804  here I think. To come soon...) Line 871  here I think. To come soon...)
871  \item time-discretization  \item time-discretization
872  \end{itemize}  \end{itemize}
873    
874  The time steps are set through the real variables \textbf{deltaTMom }and  The time steps are set through the real variables \textbf{deltaTMom}
875  \textbf{deltaTtracer }(in s) which represent the time step for the momentum  and \textbf{deltaTtracer} (in s) which represent the time step for the
876  and tracer equations, respectively. For synchronous integrations, simply set  momentum and tracer equations, respectively. For synchronous
877  the two variables to the same value (or you can prescribe one time step only  integrations, simply set the two variables to the same value (or you
878  through the variable \textbf{deltaT}). The Adams-Bashforth stabilizing  can prescribe one time step only through the variable
879  parameter is set through the variable \textbf{abEps }(dimensionless). The  \textbf{deltaT}). The Adams-Bashforth stabilizing parameter is set
880  stagger baroclinic time stepping can be activated by setting the logical  through the variable \textbf{abEps} (dimensionless). The stagger
881  variable \textbf{staggerTimeStep }to '.\texttt{TRUE}.'.  baroclinic time stepping can be activated by setting the logical
882    variable \textbf{staggerTimeStep} to '.\texttt{TRUE}.'.
883    
884  \subsection{Equation of state}  \subsection{Equation of state}
885    
886  First, because the model equations are written in terms of perturbations, a  First, because the model equations are written in terms of
887  reference thermodynamic state needs to be specified. This is done through  perturbations, a reference thermodynamic state needs to be specified.
888  the 1D arrays \textbf{tRef}\textit{\ }and \textbf{sRef}. \textbf{tRef }%  This is done through the 1D arrays \textbf{tRef} and \textbf{sRef}.
889  specifies the reference potential temperature profile (in $^{o}$C for  \textbf{tRef} specifies the reference potential temperature profile
890  the ocean and $^{o}$K for the atmosphere) starting from the level  (in $^{o}$C for the ocean and $^{o}$K for the atmosphere) starting
891  k=1. Similarly, \textbf{sRef}\textit{\ }specifies the reference salinity  from the level k=1. Similarly, \textbf{sRef} specifies the reference
892  profile (in ppt) for the ocean or the reference specific humidity profile  salinity profile (in ppt) for the ocean or the reference specific
893  (in g/kg) for the atmosphere.  humidity profile (in g/kg) for the atmosphere.
894    
895  The form of the equation of state is controlled by the character variables  The form of the equation of state is controlled by the character
896  \textbf{buoyancyRelation}\textit{\ }and \textbf{eosType}\textit{. }\textbf{%  variables \textbf{buoyancyRelation} and \textbf{eosType}.
897  buoyancyRelation}\textit{\ }is set to '\texttt{OCEANIC}' by default and  \textbf{buoyancyRelation} is set to '\texttt{OCEANIC}' by default and
898  needs to be set to '\texttt{ATMOSPHERIC}' for atmosphere simulations. In  needs to be set to '\texttt{ATMOSPHERIC}' for atmosphere simulations.
899  this case, \textbf{eosType}\textit{\ }must be set to '\texttt{IDEALGAS}'.  In this case, \textbf{eosType} must be set to '\texttt{IDEALGAS}'.
900  For the ocean, two forms of the equation of state are available: linear (set  For the ocean, two forms of the equation of state are available:
901  \textbf{eosType}\textit{\ }to '\texttt{LINEAR}') and a polynomial  linear (set \textbf{eosType} to '\texttt{LINEAR}') and a polynomial
902  approximation to the full nonlinear equation ( set \textbf{eosType}\textit{\  approximation to the full nonlinear equation ( set
903  }to '\texttt{POLYNOMIAL}'). In the linear case, you need to specify the  \textbf{eosType}\textit{\ }to '\texttt{POLYNOMIAL}'). In the linear
904  thermal and haline expansion coefficients represented by the variables  case, you need to specify the thermal and haline expansion
905  \textbf{tAlpha}\textit{\ }(in K$^{-1}$) and \textbf{sBeta}\textit{\ }(in ppt$%  coefficients represented by the variables \textbf{tAlpha}\textit{\
906  ^{-1}$). For the nonlinear case, you need to generate a file of polynomial    }(in K$^{-1}$) and \textbf{sBeta} (in ppt$^{-1}$). For the nonlinear
907  coefficients called \textit{POLY3.COEFFS. }To do this, use the program  case, you need to generate a file of polynomial coefficients called
908  \textit{utils/knudsen2/knudsen2.f }under the model tree (a Makefile is  \textit{POLY3.COEFFS}. To do this, use the program
909  available in the same directory and you will need to edit the number and the  \textit{utils/knudsen2/knudsen2.f} under the model tree (a Makefile is
910  values of the vertical levels in \textit{knudsen2.f }so that they match  available in the same directory and you will need to edit the number
911  those of your configuration). \textit{\ }  and the values of the vertical levels in \textit{knudsen2.f} so that
912    they match those of your configuration).
913    
914    There there are also higher polynomials for the equation of state:
915    \begin{description}
916    \item['\texttt{UNESCO}':] The UNESCO equation of state formula of
917      Fofonoff and Millard \cite{fofonoff83}. This equation of state
918      assumes in-situ temperature, which is not a model variable; \emph{its use
919      is therefore discouraged, and it is only listed for completeness}.
920    \item['\texttt{JMD95Z}':] A modified UNESCO formula by Jackett and
921      McDougall \cite{jackett95}, which uses the model variable potential
922      temperature as input. The '\texttt{Z}' indicates that this equation
923      of state uses a horizontally and temporally constant pressure
924      $p_{0}=-g\rho_{0}z$.
925    \item['\texttt{JMD95P}':] A modified UNESCO formula by Jackett and
926      McDougall \cite{jackett95}, which uses the model variable potential
927      temperature as input. The '\texttt{P}' indicates that this equation
928      of state uses the actual hydrostatic pressure of the last time
929      step. Lagging the pressure in this way requires an additional pickup
930      file for restarts.
931    \item['\texttt{MDJWF}':] The new, more accurate and less expensive
932      equation of state by McDougall et~al. \cite{mcdougall03}. It also
933      requires lagging the pressure and therefore an additional pickup
934      file for restarts.
935    \end{description}
936    For none of these options an reference profile of temperature or
937    salinity is required.
938    
939  \subsection{Momentum equations}  \subsection{Momentum equations}
940    
# Line 1073  fields can be written out by setting the Line 1167  fields can be written out by setting the
1167  The precision with which to write the binary data is controlled by the  The precision with which to write the binary data is controlled by the
1168  integer variable w\textbf{riteBinaryPrec }(set it to \texttt{32} or \texttt{%  integer variable w\textbf{riteBinaryPrec }(set it to \texttt{32} or \texttt{%
1169  64}).  64}).
1170    
1171    %%% Local Variables:
1172    %%% mode: latex
1173    %%% TeX-master: t
1174    %%% End:

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22