Skip to content

CableUserGuide_CBL3_Offline

Paul Leopardi edited this page Oct 8, 2024 · 13 revisions

CABLE offline

In this section we discuss building and running CABLE offline for single-site and regional/global applications.

In principle, the only requirements for building and running CABLE are a Fortran compiler and a netcdf distribution. However, in reality it is rarely so simple as this makes it sound. Whilst we have endeavoured to make CABLE as portable as possible, and indeed we have used CABLE on a variety of platforms, our discussion here is limited to using CABLE on UNIX/Linux platforms only. Specifically, we have tested CABLE on Gadi@NCI.

We mostly use Intel Fortran. We have used gfortran on occasion as well. In principle, it shouldn't matter which compiler you use, however we can't guarantee that building with other Fortran compilers will be error free.

CABLE (CABLE-3.0) has the directory structure:

science/
util/
params/
offline/
coupled/

All applications use science/ util/ params/. Offline applications also use offline/.

For single-site investigations, assuming you have a suitable restart file, CABLE usually executes a year of forcing data done in a matter of seconds/minutes (on a single processor). Even in the absence of a restart file, thus requiring spinup of the model, this usually doesn't take more than a few minutes. In this case a serial version of CABLE will suffice.

For global (or regional) offline runs, CABLE can still be run in serial mode (about 15 minutes/year for GSWP global run at 1x1 degree resolution). However, running on multiple processors speeds up the simulation considerably (about 1 minute/year for GSWP global run).

NB: These performance times are rather dated and require updating.

Using the Open Message Passing Interface library (mpi), a wrapper has been developed so that it integrates with existing CABLE code. This mpi wrapper uses all the core code and serial offline code without modification, with the exception of the file cable_driver.F90 which is replaced by cable_mpimaster.F90 and cable_mpiworker.F90. The control file cable_mpidrv.F90 calls the appropriate driver files on various CPUs and another file cable_mpicommon.F90 contains supporting routines for this mpi wrapper. Such a wrapper enables easy upgrading of the parallel CABLE code with future versions of CABLE. In case of model development requiring changes in cable_driver.F90 and cable_define_types.F90, changes may be required for the mpi codes as well; otherwise, there is no need to modify the wrapper.

Building Offline Model | Contents

Clone this wiki locally