Blog from April, 2017

ecCodes superseding GRIB API

ecCodes replaces GRIB API as the default GRIB decoder at ECMWF. The grib_api module will no longer be loaded by default. ecCodes will be loaded instead. This change could affect your scripts or user setup. See below for details.

ECMWF will change the default versions of its software packages and libraries used across all user platforms at the centre (ecgate, desktops, lxc, cca and ccb) between 10:00 and 10:30 UTC on Wednesday 10 May 2017.

Version changes

This table summarises the changes in the version of the different packages:

Please see the Release notes for full details of the changes implemented in each package.

The next defaults are tagged as "may17" in modules. After the session the previous defaults will be tagged as "old"

IMPORTANT: ecCodes replaces GRIB API as the default GRIB decoder

As part of this change in the default ECMWF software stack, ecCodes will become the default GRIB decoder at the centre superseding GRIB API. ecCodes provides a set of equivalent command line tools and compatible libraries. All the variables defined by the grib_api module for the compilation of programs and the python bindings are also provided for backwards compatibility. See the GRIB-API migration page for details on the differences between GRIB API and ecCodes.


The grib_api module, which used to be part of the default shell environment, will no longer be automatically loaded after the change. Instead, the eccodes module will be automatically loaded.

Anyone loading or switching to a particular version of the grib_api module in their scripts or user setup must make sure that it can work after the change and make the necessary amendments otherwise.

Example

The following commands will fail after the change on a default environment, because it is assumed that the grib_api module is loaded, and that eccodes is not:

module swap grib_api/old
# or
module unload grib_api
module load grib_api/old

First of all, the recommendation is to use ecCodes instead, so no swap would be required. However, if you have a good reason to continue using a particular version of GRIB API, then the more robust way to make sure it works in all cases would be:

module unload grib_api eccodes
module load grib_api/old

Please let ECMWF know if you need to revert to grib_api after the update of 10 May 2017.

How to use the new versions for testing BEFORE the update

Users are strongly encouraged to test their software applications and data processing chain with the new versions of the various software packages before the date of the change to the default versions.

The new versions of the software packages can be selected by using the may17 tag in modules. For example:

module swap metview/may17

module load Magics/may17

module swap emos/may17

module swap grib_api eccodes/may17 

How to revert to the old versions in case of problems AFTER the update

Users that experience problems with the new default software packages after the update of 10 May will be able to revert to the old default versions. These can be selected with the commands:

module swap metview/old

module load Magics/old

module swap emos/old

module swap eccodes grib_api/old 

Please let ECMWF know if you need to revert to the old version of any of the packages after the update of 10 May 2017.