Compilation of the model and preparation of a directory for the model run is performed by combination of make and perl scripts. They are designed to automatically detect model configuration and resolve dependencies between Fortran modules. Typical user would never need to modify any of these scripts.
Typical command for compiling the model and setting up a directory for model run is
make setup RUN=<RunID>This command will read model configuration from
<RunID>.Rrundeck and compile the corresponding executable. It will also create a directory for the run and link it to the current directory with the name
<RunID>. The executable will be put into this run directory together with all the scripts which are needed to run the model. This command compiles the model for serial run. If one wants to compile the model for parallel run (using MPI) one has to append a flag
MPI=YESon the command line, i.e.
make setup RUN=<RunID> MPI=YES
Normally, once the model is compiled and before you start a long run, you want to perform a "cold start", i.e. you want to start your simulations from initial conditions, run the model for 1 hour of model time and save its state into a checkpoint file (restart file). This can be done with a command
../exec/runE <RunID> -np <NP> -cold-restartwhere
<NP>is the number of MPI threads you want to use (typically the number of available cpu cores). Keep in mind that on big computers you may not be allowed to run MPI jobs interactively. In this case you have to set a variable QSUB_STRING in your ~/.modelErc file to a command which would submit your task as a batch job (see next section). Once first-hour run finishes successfully your model is ready for longer runs.
If you really want to, you can request
automatically run the model for the first hour after it finishes the
setup. To do this use the target "setup-run" instead of
make setup-run RUN=<RunID> MPI=YES NPES=<NP>where
<NP>is the number of MPI threads for the first hour run.
make resolves dependencies well when code
changes and recompiles only those files which have to be recompiled.
But when one switches to a completely different rundeck or checks out
a different branch from the git repository, it may be safer to delete
all precompiled object files and start a fresh compilation. To do it
make cleanbefore starting a new compilation.
If for some reason you want to compile the model, but don't want to set up a run directory you can do it by using a target "gcm" instead of "setup".