Skip to end of metadata
Go to start of metadata

Emoslib is one of the packages that will not be migrated to Bologna - New Data Centre. Please start considering using the alternatives suggested.

EMOSLIB has been a fundamental package at ECMWF for many years, featuring:

  • Interpolation routines
  • BUFR encoding/decoding routines and tools (BUFRDC)
  • GRIB 1 encoding/decoding (GRIBEX) - Already removed from recent versions of the library

The interpolation part has been replaced by the MIR library, while the GRIB and BUFR capabilities are now on ecCodes. Only the BUFR decoding will stay beyond our move to Bologna, available as the standalone BUFRDC.

Today, we already provide this compatibility package on the current platforms:

$ module avail bufrdc
------------------------ /usr/local/apps/modulefiles/tools_and_libraries/ecmwf -------------------------

This module is a drop-in replacement for the BUFR capabilities of EMOSLIB, with the same tools and a compatible library, built with 64-bit reals. You can simply replace your existing:

module load emos


module load bufrdc


  • The name of the library is different but if you use the EMOSLIB environment variable in your link flags the change should be transparent.
  • The new compatibility library is only provided for recent compilers. 

Phasing out EMOSLIB

As part of the phasing out process, access to the current location of the BUFR tables is to be closed. When this happens, any existing program or tool using EMOSLIB for the BUFR decoding/encoding will stop working. This should raise awareness of the places in your workflow that need your attention. You will need to migrate those to ecCodes at some point. However, to continue working with the existing tools or code base as they are, there are two alternatives:

Recommended option

Rebuild your program with the new standalone BUFRDC package. This is the preferred option to make sure your program works well with the package that will be installed in the future platforms. Note that you may need to use more recent compilers in order to use it.

If in a rush or causing operational problems...

You may keep the existing executables, libraries and tools but you need load the emos_bufr_tables module before running them. This will make the BUFR tables available again for them. 

module load emos_bufr_tables

The  emos_bufr_tables is a compatibility module that will not be ported to future platforms. You should start the migration to ecCodes, or at least make sure you can use the bufrdc standalone package.

  • No labels