1. How to get input data

Users with access to MARS or real time dissemination (for more information about access to ECMWF forecasts, please see: Access to forecasts) can use following template of MARS request to download initial and boundary conditions for initialising WRF:

Surface data
RETRIEVE,
stream  =       oper,
expver  =       1,
class   =       od,
date    =       -5,
time    =       00:00:00,
grid    =       0.1/0.1,
area    =       75.0/-10.0/25.0/45.0, # North/West/South/East
type    =       fc,
step    =       0/to/24/by/1,
levtype =       sfc,
param   =       165.128/166.128/167.128/168.128/172.128/129.128/134.128/151.128/235.128/31.128/34.128/141.128/139.128/170.128/183.128/236.128/39.128/40.128/41.128/42.128/96.174,
target  =       "IFS_sfc.grib"


Model levels data
RETRIEVE,
stream  =       oper,
expver  =       1,
class   =       od,
date    =       -5,
time    =       00:00:00,
grid    =       0.1/0.1,
area    =       75.0/-10.0/25.0/45.0, # North/West/South/East
type    =       fc,
step    =       0/to/24/by/1,
levtype =       ml,
levelist=       1/to/137/by/1,
param   =       129.128/130.128/131.128/132.128/133/152,
target  =       "IFS_ml.grib"

Note that users should modify some keywords in the requests above such as: date, time, area, and step. MARS keywords are documented here: Keywords in MARS and Dissemination requests.


Fields from IFS on model levels are provided in GRIB2 format which WPS cannot process directly due to following reasons:

  1. GRIB2 gridded data from IFS is compresses using CCSDS compression which cannot be decompressed directly by ungrib
  2. Vtable compatible with ECMWF' GRIB2 data is not provided in WPS

2. Handling CCSDS compression

To reduce size, ECMWF is using CCSDS compression starting from IFS Cycle 48r1 applied to all GRIB2 gridded fields. Since ungrib cannot process CCSDS compression, users need to uncompress GRIB2 files prior to processing with ungrib. ecCodes can change packing from CCSDS to "SIMPLE PACKING"

$ grib_set -r -w packingType=grid_ccsds -s packingType=grid_simple ccsds.grib grid_simple.grib


3. Addressing mix of GRIB1 and GRIB2 format

3.1. Separation of GRIB1 and GRIB2 fields to different files

IFS cycles prior to 50R2 (see Changes to the forecasting system for more details) produce mix of GRIB1 and GRIB2, where model level fields are encoded as GRIB2 and most surface level parameters as GRIB1.

Because ungrib cannot process a mixture of GRIB1 and GRIB2 messages in the same file, one should always separate GRIB files by edition before processing them with ungrib. One way to split GRIB messages per edition is with ecCodes:

$ grib_copy input.grib [dataDate]_[levelType]_[step].grib[edition]


4. Run ungrib twice: for surface (GRIB1) and for model level (GRIB2) files

4.1. Ungrib run for surface fields

Ungrib section of namelist.wps file can look like this:

&ungrib
 out_format = 'WPS',
 prefix = 'SFILE',
/

 for the first ungrib run: 

$ ln -sf Vtable.ECMWF_sigma Vtable
$ link_grib.csh *sfc*
$ ungrib.exe

Where Vtable.ECMWF_sigma is updated for mix of GRIB1 and GRIB2 data produced IFS. The table should be download from this page because table with the same name in official release of WPS is outdated!

4.2. Ungrib run for model level fields

Ungrib section of namelist.wps file should be modified to create intermediate files with different names in order to avoid overwriting of the intermediate files created in the first ungrib run.

&ungrib
 out_format = 'WPS',
 prefix = 'MFILE',
/

After making these changes, the ungrib can be safely run for the second time"

$ ln -sf Vtable.ECMWF_sigma Vtable
$ link_grib.csh *ml*
$ ungrib.exe


5. Calculate pressure at model levels

Using calc_ecmwf_p.exe utility tool available at WPS "util/" directory, calculate pressure at ECMWF model levels. calc_ecmwf_p.exe expects to have file with name ecmwf_coeffs containing list of coefficients for all model levels. The file attached here contains coefficients for IFS 137 vertical model levels which is derived from L137 model level definitions.


6. Running geogrid

Geogrid should be run as usual without any modifications.

7. Running metgrid

If steps above were successful, in your run directory you should have "SFILE", "MFILE", and "PRES" files.

SFILE - contains surface fields, produced by the 1st ungrib run

MFILE - contains model levels fields, produced by the 2nd run of ungrib

PRES - contains pressure values on all model levels, produced by calc_ecmwf_p.exe

Before running metgrid, make sure to instruct metgrid to use all three type of files. This can be done by setting "fg_name" in the namelist.wps as shown below:

&metgrid
 fg_name = 'SFILE' 'MFILE' 'PRES'

8. Real and WRF

real.exe and erf.exe should be run as usual, without any modifications. Users just need to set namelist variables "num_metgrid_levels" and "num_metgrid_soil_levels" to match number of input levels created by WPS.


  • No labels