ECMWF is updating the default versions of its software packages and libraries used across all user platforms at the centre as part of the regular update cycle.
The changes will take place on Wednesday 5 May 2021 09:00 UTC
What platforms are affected?
All user platforms at the centre will see their default additional software stack updated:
- All clusters in our High Performance Computing Facility, mainly CCA and CCB
- Linux Clusters
- Linux Desktops
Do I need to do anything?
We strongly recommend you test that your programs, scripts and suites work with the new versions of any software or library affected before the change happens.
Table of contents
Software stack ready for next operational IFS cycle
With the upcoming Implementation of IFS Cycle 47r2, this set of defaults is ready to handle the data produced, including all the new parameters introduced in this cycle and the update to Tropical Cyclone tracks.
Python 3.8 becomes default
For our Python users, we offer now a more recent version of Python 3.8 with the usual extra modules found on the previous default 3.6 which would be out of official maintenance at the end of the year.
For those still using Python 2, note that this major version of Python reached its end of life on 1st January 2020, If you haven't done moved to Python 3.6 yet, please see Migration to Python 3 for some guidance on where to start. We are providing the latest Python 2.7 for compatibility purposes only.
ECMWF software improvements
See the blog posts for the latest two software releases to learn about what is new in some of our own software packages and libraries such as ecCodes, Magics or Metview.
Potentially disruptive changes in ecCodes
It is worth highligting a number of changes in ecCodes that could have an impact in specific user workflows:
- The GRIB2 representation of parameter 238 (Temperature of snow layer - tsn) has been modified. See the new encoding here: https://apps-test.ecmwf.int/codes/grib/param-db/?id=238
- The command
codes_info -vno longer outputs a trailing space. Some user scripts may need to be modified.
grib_get_dataoutput is slightly modified: Words on the first line are now separated by spaces not commas.
- The tools now check that the output file is not the same as the input to avoid overwriting/corrupting the source.
- The MARS keys levtype and levelist have been removed from the GRIB2 templates 4.53 and 4.54.
A lot of other bugfixes and improvements
All the new versions, both ECMWF and 3rd Party, come with a number of bug fixes and improvements. You may see the Change logs for any individual package or library in the list below if you want to have all the details.
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 may21 tag in modules. For example:
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 will be able to revert to the old default versions. These can be selected with the commands:
Please let ECMWF know if you need to revert to the old version of any of the packages after the update of the defaults has taken place.
This table summarises the changes in the version of the different packages:
|Package||Default version||Release notes||Download page|
|CodesUI||1.4.1||1.5.1||CodesUI - Change History||CodesUI - Releases|
|Magics||4.5.2||4.6.0||Latest News||Magics Releases|
|Metview||5.7.5||5.11.1||Metview Releases |
|Change history||ODB API Release|
ecCodes is now the official ECMWF encoder and decoder for GRIB and BUFR formats. It supersedes GRIB-API, for the GRIB format, and EMOSLIB, for the BUFR. If you still use any of those, we encourage you to migrate to ecCodes.
Please see the Release notes for full details of the changes implemented in each package.
Some of the versions in this list may already be the default for a specific package on a certain platform, so no changes will be made in those cases. After the update, all platforms will have the same defaults for all these packages.