Fabian Grosse

ETRAC: A model-independent Element TRACing software for biogeochemical models

Preliminary Remarks

The page is not meant to be a comprehensive guide to the software, but rather a collection of basic information and links to the software and its documentation. This site is still under development and some parts are still missing. For any questions related to the software please have a look into the documentation (see below) or contact Fabian Große: fabian.grosse@dal.ca


The ETRAC software is a software that allows for the tracing of elements from individual sources through all physical and biogeochemical processes represented by the physical-biogeochemical model, to which it is applied. The software was initially developed for the ECOHAM North Sea model (Große et al., 2017), however, with the intention to make it applicable also to other models. It requires specific model output, which needs to be implemented to the model to be used if it is not implemented already. For ROMS, this output has been implemented based on ROMS 3.7. Detailed information on the theory and implementation of the element tracing, and the model output requirements can be found in the documentation.


A detailed documentation of the ETRAC software can be found here: ETRAC_documentation.pdf (description of a test case still missing).

A quick-start guide for running an ETRAC application based on ROMS 3.7 for the northern Gulf of Mexico on the Compute Canada clusters Graham or Cedar can be found here: ETRAC_quick_start.pdf (still to be done).

Source code (and compilation/run scripts)

The ETRAC software is written in Fortran and requires Fortran 2000 compatibility of the compiler. The source code and the scripts to compile and run the software on clusters with the SLURM batch scheduler can be found here.

Tools for preparation of ETRAC setup files

ETRAC requires a number of specific input files that define the model structure (e.g. grid, state variable interactions) and the tracing setup. These files must comply with a defined format, and their preparation is model-dependent, as different models use different files, e.g. to describe their grids. The set of tools for preparing the input files for a ROMS-based application can be found here. A short description of the tools is provided in the readme.txt files in the directory and subdirectories.

ROMS output for ETRAC

A version of ROMS 3.7 that includes the newly implemented output required by ETRAC can be found here. This version also includes a couple of other features, which were previously added but are not part of the SVN version (e.g. phosphate cycle and P limitation by Laurent et al. (2012)).

Updated input files and scripts to prepare and run a job (or a series of consecutive jobs) on clusters with SLURM can be found here.

Currently, the ETRAC output is only implemented for the nitrogen cycle. It requires the activation of the CPP switches SOLVE3D, BIO_FENNEL, BIO_SEDIMENT and DENITRIFICATION (all part of SVN ROMS).

To produce the ETRAC-compatible ROMS output, the user must activate the following new CPP switches for the ROMS compilation: TBNT_OUT (to enable the output) and PSRC_UV_BUGFIX (to ensure no mass flows from water on land; see problem description in ROMS forum).

Addtional activation of TBNT_NFDOUBLE is recommended to create double-precision output allowing for more accurate mass balances. PERFECT_RESTART (part of SVN ROMS) should also be enabled to ensure that the model is mass-balanced in case of a restart (e.g. during a multi-year simulation on a cluster with job time limits).

In the bio_Fennel.in the following line has to be added after the Dout switches: TBNTout(NITROGEN) == T.