hi, this is how we got it working- using the wonderful contribution from
@figurski above as the basis.
Worth saying this is for the data on the ECMWF website- our interest in in the forecast products only. e.g.
https://data.ecmwf.int/forecasts/20250528/00z/ifs/0p25/oper/
Source code change
The source code changes are in the rd_grib.F file in WPS (in WPS/ungrib/src), so swap that out for the one provided by
@figurski and recompile WPS.
Prepare new Vtable
The new Vtable to read the data is also provided by
@figurski above- rename that to whatever you want before linking to it and running ungrib.
Install eccodes
You need this to access the
grib_set tool which decompresses the grib data first. I found this easiest to do in a conda environment like so:
# Make the conda environment
conda create -n eccodes_env python=3.9
conda activate eccodes_env
conda install -c conda-forge eccodes
Step 5: decompress the grib files
# Activate the conda environment
conda activate eccodes_env
then run the
grib_set commands, passing in the grib2 files and setting the desired output names e.g.

This example shows the command for 4 IFS grib files from the link above, the output file has ecmwf_ prepended to the beginning of the filename.
The output files above are what you need to link to with the
link_grib.csh step in WPS.
Step 6: namelist.wps settings
I set my namelist.wps like this to account for the 14 vertical levels in the IFS and the 4 soil levels.
I think that’s all I did- massive thanks to Mariusz/
@figurski for providing the solution. Hope my small contribution helps someone!