| 14 | \ref{chap:sarch}. | \ref{chap:sarch}. | 
| 15 |  |  | 
| 16 | \section{Where to find information} | \section{Where to find information} | 
| 17 | \label{sect:whereToFindInfo} | \label{sec:whereToFindInfo} | 
| 18 | \begin{rawhtml} | \begin{rawhtml} | 
| 19 | <!-- CMIREDIR:whereToFindInfo: --> | <!-- CMIREDIR:whereToFindInfo: --> | 
| 20 | \end{rawhtml} | \end{rawhtml} | 
| 29 | \begin{rawhtml} </A> \end{rawhtml} | \begin{rawhtml} </A> \end{rawhtml} | 
| 30 |  |  | 
| 31 | \section{Obtaining the code} | \section{Obtaining the code} | 
| 32 | \label{sect:obtainingCode} | \label{sec:obtainingCode} | 
| 33 | \begin{rawhtml} | \begin{rawhtml} | 
| 34 | <!-- CMIREDIR:obtainingCode: --> | <!-- CMIREDIR:obtainingCode: --> | 
| 35 | \end{rawhtml} | \end{rawhtml} | 
| 63 | \end{enumerate} | \end{enumerate} | 
| 64 |  |  | 
| 65 | \subsection{Method 1 - Checkout from CVS} | \subsection{Method 1 - Checkout from CVS} | 
| 66 | \label{sect:cvs_checkout} | \label{sec:cvs_checkout} | 
| 67 |  |  | 
| 68 | If CVS is available on your system, we strongly encourage you to use it. CVS | If CVS is available on your system, we strongly encourage you to use it. CVS | 
| 69 | provides an efficient and elegant way of organizing your code and keeping | provides an efficient and elegant way of organizing your code and keeping | 
| 219 | with. So please be sure you understand what you're doing. | with. So please be sure you understand what you're doing. | 
| 220 |  |  | 
| 221 | \subsection{Method 2 - Tar file download} | \subsection{Method 2 - Tar file download} | 
| 222 | \label{sect:conventionalDownload} | \label{sec:conventionalDownload} | 
| 223 |  |  | 
| 224 | If you do not have CVS on your system, you can download the model as a | If you do not have CVS on your system, you can download the model as a | 
| 225 | tar file from the web site at: | tar file from the web site at: | 
| 276 | package corresponds to a subdirectory. For example, \texttt{gmredi} | package corresponds to a subdirectory. For example, \texttt{gmredi} | 
| 277 | contains the code related to the Gent-McWilliams/Redi scheme, | contains the code related to the Gent-McWilliams/Redi scheme, | 
| 278 | \texttt{aim} the code relative to the atmospheric intermediate | \texttt{aim} the code relative to the atmospheric intermediate | 
| 279 | physics. The packages are described in detail in chapter \ref{chap.packagesI}. | physics. The packages are described in detail in chapter \ref{chap:packagesI}. | 
| 280 |  |  | 
| 281 | \item \texttt{tools}: this directory contains various useful tools. | \item \texttt{tools}: this directory contains various useful tools. | 
| 282 | For example, \texttt{genmake2} is a script written in csh (C-shell) | For example, \texttt{genmake2} is a script written in csh (C-shell) | 
| 300 | decompositions. | decompositions. | 
| 301 |  |  | 
| 302 | \item \texttt{verification}: this directory contains the model | \item \texttt{verification}: this directory contains the model | 
| 303 | examples. See section \ref{sect:modelExamples}. | examples. See section \ref{sec:modelExamples}. | 
| 304 |  |  | 
| 305 | \item \texttt{jobs}: contains sample job scripts for running MITgcm. | \item \texttt{jobs}: contains sample job scripts for running MITgcm. | 
| 306 |  |  | 
| 311 | \end{itemize} | \end{itemize} | 
| 312 |  |  | 
| 313 | \section[Building MITgcm]{Building the code} | \section[Building MITgcm]{Building the code} | 
| 314 | \label{sect:buildingCode} | \label{sec:buildingCode} | 
| 315 | \begin{rawhtml} | \begin{rawhtml} | 
| 316 | <!-- CMIREDIR:buildingCode: --> | <!-- CMIREDIR:buildingCode: --> | 
| 317 | \end{rawhtml} | \end{rawhtml} | 
| 320 | file (\texttt{Makefile}) that allows us to pre-process source files, | file (\texttt{Makefile}) that allows us to pre-process source files, | 
| 321 | specify compiler and optimization options and also figures out any | specify compiler and optimization options and also figures out any | 
| 322 | file dependencies. We supply a script (\texttt{genmake2}), described | file dependencies. We supply a script (\texttt{genmake2}), described | 
| 323 | in section \ref{sect:genmake}, that automatically creates the | in section \ref{sec:genmake}, that automatically creates the | 
| 324 | \texttt{Makefile} for you. You then need to build the dependencies and | \texttt{Makefile} for you. You then need to build the dependencies and | 
| 325 | compile the code. | compile the code. | 
| 326 |  |  | 
| 395 | number of CPUs available. | number of CPUs available. | 
| 396 |  |  | 
| 397 | Now you are ready to run the model. General instructions for doing so are | Now you are ready to run the model. General instructions for doing so are | 
| 398 | given in section \ref{sect:runModel}. Here, we can run the model by | given in section \ref{sec:runModel}. Here, we can run the model by | 
| 399 | first creating links to all the input files: | first creating links to all the input files: | 
| 400 | \begin{verbatim} | \begin{verbatim} | 
| 401 | ln -s ../input/* . | ln -s ../input/* . | 
| 409 |  |  | 
| 410 | \subsection{Building/compiling the code elsewhere} | \subsection{Building/compiling the code elsewhere} | 
| 411 |  |  | 
| 412 | In the example above (section \ref{sect:buildingCode}) we built the | In the example above (section \ref{sec:buildingCode}) we built the | 
| 413 | executable in the {\em input} directory of the experiment for | executable in the {\em input} directory of the experiment for | 
| 414 | convenience. You can also configure and compile the code in other | convenience. You can also configure and compile the code in other | 
| 415 | locations, for example on a scratch disk with out having to copy the | locations, for example on a scratch disk with out having to copy the | 
| 513 |  |  | 
| 514 |  |  | 
| 515 | \subsection{Using \texttt{genmake2}} | \subsection{Using \texttt{genmake2}} | 
| 516 | \label{sect:genmake} | \label{sec:genmake} | 
| 517 |  |  | 
| 518 | To compile the code, first use the program \texttt{genmake2} (located | To compile the code, first use the program \texttt{genmake2} (located | 
| 519 | in the \texttt{tools} directory) to generate a Makefile. | in the \texttt{tools} directory) to generate a Makefile. | 
| 684 |  |  | 
| 685 | \item[\texttt{--mpi}] This option enables certain MPI features (using | \item[\texttt{--mpi}] This option enables certain MPI features (using | 
| 686 | CPP \texttt{\#define}s) within the code and is necessary for MPI | CPP \texttt{\#define}s) within the code and is necessary for MPI | 
| 687 | builds (see Section \ref{sect:mpi-build}). | builds (see Section \ref{sec:mpi-build}). | 
| 688 |  |  | 
| 689 | \item[\texttt{--make=/path/to/gmake}] Due to the poor handling of | \item[\texttt{--make=/path/to/gmake}] Due to the poor handling of | 
| 690 | soft-links and other bugs common with the \texttt{make} versions | soft-links and other bugs common with the \texttt{make} versions | 
| 707 |  |  | 
| 708 |  |  | 
| 709 | \subsection{Building with MPI} | \subsection{Building with MPI} | 
| 710 | \label{sect:mpi-build} | \label{sec:mpi-build} | 
| 711 |  |  | 
| 712 | Building MITgcm to use MPI libraries can be complicated due to the | Building MITgcm to use MPI libraries can be complicated due to the | 
| 713 | variety of different MPI implementations available, their dependencies | variety of different MPI implementations available, their dependencies | 
| 722 |  |  | 
| 723 | \item Determine the locations of your MPI-enabled compiler and/or MPI | \item Determine the locations of your MPI-enabled compiler and/or MPI | 
| 724 | libraries and put them into an options file as described in Section | libraries and put them into an options file as described in Section | 
| 725 | \ref{sect:genmake}.  One can start with one of the examples in: | \ref{sec:genmake}.  One can start with one of the examples in: | 
| 726 | \begin{rawhtml} <A | \begin{rawhtml} <A | 
| 727 | href="http://mitgcm.org/viewvc/MITgcm/MITgcm/tools/build_options/"> | href="http://mitgcm.org/viewvc/MITgcm/MITgcm/tools/build_options/"> | 
| 728 | \end{rawhtml} | \end{rawhtml} | 
| 757 | \end{itemize} | \end{itemize} | 
| 758 |  |  | 
| 759 | \item Build the code with the \texttt{genmake2} \texttt{-mpi} option | \item Build the code with the \texttt{genmake2} \texttt{-mpi} option | 
| 760 | (see Section \ref{sect:genmake}) using commands such as: | (see Section \ref{sec:genmake}) using commands such as: | 
| 761 | {\footnotesize \begin{verbatim} | {\footnotesize \begin{verbatim} | 
| 762 | %  ../../../tools/genmake2 -mods=../code -mpi -of=YOUR_OPTFILE | %  ../../../tools/genmake2 -mods=../code -mpi -of=YOUR_OPTFILE | 
| 763 | %  make depend | %  make depend | 
| 811 | \end{verbatim} } | \end{verbatim} } | 
| 812 |  |  | 
| 813 | \section[Running MITgcm]{Running the model in prognostic mode} | \section[Running MITgcm]{Running the model in prognostic mode} | 
| 814 | \label{sect:runModel} | \label{sec:runModel} | 
| 815 | \begin{rawhtml} | \begin{rawhtml} | 
| 816 | <!-- CMIREDIR:runModel: --> | <!-- CMIREDIR:runModel: --> | 
| 817 | \end{rawhtml} | \end{rawhtml} | 
| 818 |  |  | 
| 819 | If compilation finished succesfully (section \ref{sect:buildingCode}) | If compilation finished succesfully (section \ref{sec:buildingCode}) | 
| 820 | then an executable called \texttt{mitgcmuv} will now exist in the | then an executable called \texttt{mitgcmuv} will now exist in the | 
| 821 | local directory. | local directory. | 
| 822 |  |  |