Skip to content

Bundles in ecbuild

Cory Martin edited this page Aug 18, 2021 · 2 revisions

What is a bundle?

JEDI applications are organized into high-level bundles that conveniently gather together all the separate git repositories necessary for the JEDI applications to run. Often a bundle is associated with a particular model, in our case, FV3, but there are also others such as MPAS or WRF. There are also stripped down, generic bundles for testing and development of certain components.

The bundles themselves are largely empty in their respective repositories. All they do is serve as a place for the CMakeLists.txt file, which is used by ecbuild to determine which repositories are requested to be cloned and built. In fact, one can create their own CMakeLists.txt file and skip cloning a bundle entirely.

A selection of current bundles and their components in order of increasing complexity

IODA-Bundle

The IODA-Bundle contains only the repositories needed for testing and running IODA. Optionally, if you specify in either the CMakeLists.txt or in the ecbuild command, this can also build the ioda-converters, a suite of tools to preprocess observations into the IODA format.

IODA-Bundle has the following repositories in it:

  • JEDI-Cmake
  • OOPS
  • IDOA

If there is no local path defined to point to existing copies of IODA test data:

  • IODA-data

If the converters are to be built:

  • IODA-Converters

UFO-Bundle

The UFO-Bundle contains all of the repositories and files needed to run UFO unit tests. This does not include any model-specific code, and thus requires some set of interpolated generic model fields to be used as input to the H(x) and QC tests.

UFO-Bundle has the following repositories in it:

  • JEDI-Cmake
  • OOPS
  • SABER
  • GSW-Fortran
  • CRTM
  • IODA
  • UFO

The following two are cloned if there is no local path defined to point to existing copies of IODA and UFO test data:

  • IODA-Data
  • UFO-Data

FV3-Bundle

The FV3-Bundle contains every repository needed to run a full data assimilation cycle using JEDI with a FV3-based model. This includes executables for H(x), generating background error parameters, variational and ensemble based minimizations, and increment computations by differencing two model states. This bundle takes the longest to clone and build, but is the most comprehensive and the most like the full GSI repository in terms of capabilities. NOTE that this does not include the ioda-converters in the bundle at this time.

FV3-Bundle has the following repositories included in it:

  • JEDI-Cmake
  • OOPS
  • SABER
  • CRTM
  • IODA
  • UFO
  • FMS
  • FV3
  • FV3-JEDI-LM
  • FEMPS
  • FV3-JEDI

The following three are cloned if there is no local path defined to point to existing copies of IODA, UFO, or FV3-JEDI test data:

  • IODA-Data
  • UFO-Data
  • FV3-JEDI-Data

Note: that for all of these bundles, there are additional repositories that may be included but are turned off by default, either because they are not used for NCEP applications (such as geos-aero, or they are installed as libraries somewhere else (such as eckit, fckit, and atlas)