| 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} | 
| 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: | 
| 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} | 
| 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% | 
| 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 | 
| 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. | 
| 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 | 
  | 
  | 
| 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 | 
  | 
  | 
| 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:  |