Upcoming FABM 1.0 - requirements for biogeochemical models

30 views
Skip to first unread message

Jorn Bruggeman

unread,
Sep 16, 2019, 4:14:25 PM9/16/19
to fabm-...@googlegroups.com, fabm-...@googlegroups.com

Hi all,

 

We are expecting to release FABM 1.0 before the end of this year. This will see improvements to all components of FABM:

 

  • The FABM-biogeochemistry and FABM-host APIs will be revised to eliminate inconsistencies and clutter – the aim is the simplest possible set of interfaces
  • The logic for moving data between host and biogeochemistry (“packing and unpacking”) will be isolated in a single module to make it easier to understand and to facilitate further optimization (vectorization, data alignment, cache use optimization) and experimentation (e.g., GPU programming)
  • The management of dependencies between biogeochemical modules will be generalized, so that FABM will automatically handle the most complex dependency chains/graphs (e.g, phytoplankton:do requires light:do_column, which in turn requires zenith_angle:do_surface and attenuation:do – FABM will guarantee the call order is correct)

 

Most of these features are already implemented in the experimental “gendep” branch, which will soon be opened up for testing.

 

As always, the coming FABM update is designed to preserve backward compatibility where possible. In the case of biogeochemical models, that will be possible with two exceptions:

 

  1. institutes should use the new conventions for model libraries (introduced in 2015). That means no hardcoded references in <FABMDIR>/src/fabm_library.F90.in, an <INSTITUTE>_model_library.F90 file at the root of each <FABMDIR>/src/models/<INSTITUTE> directory, and only relative model names (no institute prefix) inside that library. Details at https://github.com/fabm-model/fabm/wiki/Developing-a-new-biogeochemical-model#create-an-institute-directory-for-your-model
  2. models should be configurable through fabm.yaml (introduced 2013); support for namelist-based configuration (fabm.nml) will be dropped. It is not hard to update models to do this (one call to self%get_parameter instead of three lines to manage parameter inclusion in the namelist, setting an initial value, and transferring it to the model object)

 

At the moment, several institutes/models in the FABM repository do not meet one or both of these conditions. This includes aed, hzg, iow, klimacampus, metu, msi. Note that changes to address #1 are usually small (<10 lines) so we would recommend everyone to address this. For yaml configuration, the work required would depend on the complexity of the model. The majority of the remaining namelists are in fact in just one model (AED).

 

Models that have not been updated by the time of the 1.0 release will be dropped from the repository. Of course anyone could still use old FABM versions if essential for production use. However, we strongly recommend biogeochemical model developers to makes the necessary changes, and we’re happy to advise in more detail to make the transition as smooth as possible (please post to the list rather than asking in person, though!)

 

You may also want to consider offering new models for inclusion in FABM 1.0. That is absolutely not a requirement, but inclusion in FABM does increase exposure. For instance, it allows the model to be used in FABM workshops such as the one held recently in Denmark. If you would like to add a new model, please let me know.

 

More information about the 1.0 release will follow in the near future.

 

Cheers,

 

Jorn

 

Reply all
Reply to author
Forward
0 new messages