My previous attempt to use pressure level data from ECMWF failed, due to missing surface values. This is the attempt to use pressure level data. The approach is similar, grab pressure-level data and surface files separately.
However, real.exe needs a 3D pressure field as well, so we need to run the utility program
util/calc_ecmwf_p to create this. From the WRF user guide:
“In the course of vertically interpolating meteorological fields, the real program requires a 3d pressure field on the same levels as the other atmospheric fields. The calc_ecmwf_p.exe utility may be used to create such a pressure field for use with ECMWF sigma-level data sets. Given a surface pressure field or (log of surface pressure field) and a list of coefficients A and B, calc_ecmwf_p.exe computes the pressure at an ECMWF sigma level k at grid point (i,j) as Pijk = Ak + Bk*Psfcij. The list of coefficients can be copied from a table appropriate to the number of sigma levels in the data set from http://www.ecmwf.int/products/data/technical/model_levels/index.html
This table should be written in plain text to a file, ecmwf_coeffs, in the current working directory; for example, with 16 sigma levels, the file emcwf_coeffs would contain something like:
0 0.000000 0.000000000
1 5000.000000 0.000000000
2 9890.519531 0.001720764
3 14166.304688 0.013197623
16 0.000000 1.000000000
Given a set of intermediate files produced by ungrib and the file ecmwf_coeffs, calc_ecmwf_p loops over all time periods in namelist.wps, and produces an additional intermediate file, PRES:YYYY-MM-DD_HH, for each time, which contains pressure data for each full sigma level as well as a 3d relative humidity field. This intermediate file should be specified to metgrid, along with the intermediate data produced by ungrib, by adding ‘PRES’ to the list of prefixes in the fg_name namelist variable.”
Not documented is that calc_ecmwf requires SOILHGT or SOILGEO as well.
The problem is that when surface pressure is selected in the ECMWF data, it then prevents you from getting variables on other model levels. So actually you need THREE files: surface variables, surface pressure on model levels, and 3D variables on model levels.