The Framework for Lake and Ocean Models (FLOM) provides a set of easy to use building blocks for creating advanced numerical models for lakes and oceans.

The development of FLOM was initiated at the time it was decided to make a major code revision of GETM. Parts of the GETM code is more than 20 years old and could really benefit the developments and updates in software development that has happended in the mean time.

The parts of GETM that could be shared between different models was pulled out and formed the basis of FLOM - though heavily modified. The GETM specic code left to be GETM specific boiled down to code related to the computational grid/domain i.e. all algorithms containing gradients e.g. pressure gradients and advection.

FLOM contains the following building blocks:

  1. A time module by ….. providing an API similar to the Python datetime module.
  2. A field-manager associating variable meta-data with the actual variable declaration and an output-manager configured through a YAML formatted output specification.
  3. The entire TEOS-10 GSW library
  4. An input manager for NetCDF formated files.
  5. A logging module allowing for some configuration but keeping the simplicity of print(write).

As proof of concept FLOM also contains an example implementation of geostrophic currents build using the FLOM building blocks and a number of routines using the blocks to create a running program. The aim of the example is NOT to show an advanced numerical model - but instead - to show how the tedious technical details ..

Documentation for the Geostrphic currents ….

The FABM source code is available from Github.