Building and Running MITgcm

Working on orcinus

This section describes the steps to set up and run the MITgcm code for the UBC EOAS Canyons group configurations on the orcinus.westgrid.ca HPC cluster.

When working on the Westgrid clusters the module command must be used to load extra software components. The required modules vary from cluster to cluster. On orcinus load the python module with:

$ module load python

to make Python 2.7, the python-netCDF4 package, and Mercurial available to you.

Create a Workspace and Get the Repos

$ mkdir -p $HOME/canyons
$ cd $HOME/canyons

Use the CVS version control tool to do a checkout of the latest MITgcm source code. Use the password cvsanon when the cvs login command prompts you for a password:

$ export CVSROOT=':pserver:cvsanon@mitgcm.org:/u/gcmpack'
$ cvs login
$ cvs co -P MITgcm

Use the Mercurial version control tool to clone the CanyonsUBC optfiles repo from Bitbucket:

$ hg clone ssh://hg@bitbucket.org/canyonsubc/optfiles

Building the Code

The MITgcm docs describe several ways of building the code. Here, we will do the build in a directory outside of the MITgcm and optfiles directory trees.

Note

For the purposes of developing the build instructions for orcinus the MITgcm/verification/rotating_tank/ configuration is used, but the steps below should be adaptable to your research configuration(s).

Create a configuration build directory:

$ cd $HOME/canyons
$ mkdir -p rotating_tank/build
$ cd rotating_tank/build

Build the code:

$ $HOME/canyons/MITgcm/tools/genmake2 \
    -rootdir=$HOME/canyons/MITgcm \
    -mods=$HOME/canyons/MITgcm/verification/rotating_tank/code
    -of=$HOME/canyons/optfiles/orcinus_mpi.opt \
    -mpi
$ module load intel
$ module load intel/14.0/netcdf_hdf5
$ make depend
$ make

The module load commands bring the Intel OpenMPI Fortran compiler, and its netcdf and hdf5 libraries into your environment for the make steps. Those modules are also required to run the code, so you need to include those module load commands in your PBC script. However, due to some weirdness in the orcinus modules setup, they must not be loaded when you run MITgcm/tools/genmake2. So, if you need to run genmake2 again, make sure that you first do:

$ module unload intel
$ module unload intel/14.0/netcdf_hdf5

and then re-load the modules before running make.