Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Soil temperature and moisture went missing after ungrib

Xin

New member
Hello,

I'm processing some HRRR data for WRF simulation, but I found that some required variables (multi-layer soil temperature and moisture) are missing in the WPS intermediate files.

The HRRR GRIB2 file does have multi-layer soil temperature and moisture, see the metadata below:

float TSOIL_P0_2L106_GLC0 ( lv_DBLL6, ygrid_0, xgrid_0 )
center : US National Weather Service - NCEP (WMC)
production_status : Operational products
long_name : Soil temperature
units : K
_FillValue : 1e+20
coordinates : gridlat_0 gridlon_0
grid_type : Lambert Conformal can be secant or tangent, conical or bipolar
parameter_discipline_and_category : Land surface products, Vegetation/biomass
parameter_template_discipline_category_number : ( 0, 2, 0, 2 )
level_type : Depth below land surface (m)
forecast_time : 0
forecast_time_units : hours
initial_time : 12/25/2015 (00:00)

float SOILW_P0_2L106_GLC0 ( lv_DBLL6, ygrid_0, xgrid_0 )
center : US National Weather Service - NCEP (WMC)
production_status : Operational products
long_name : Volumetric soil moisture content
units : Fraction
_FillValue : 1e+20
coordinates : gridlat_0 gridlon_0
grid_type : Lambert Conformal can be secant or tangent, conical or bipolar
parameter_discipline_and_category : Land surface products, Vegetation/biomass
parameter_template_discipline_category_number : ( 0, 2, 0, 192 )
level_type : Depth below land surface (m)
forecast_time : 0
forecast_time_units : hours
initial_time : 12/25/2015 (00:00)


The Vtable used for ungrib has the grib codes matching the "parameter_template_discipline_category_number" in the HRRR grib2 file:
GRIB1| Level| From | To | metgrid | metgrid | metgrid |GRIB2|GRIB2|GRIB2|GRIB2|
Param| Type |Level1|Level2| Name | Units | Description |Discp|Catgy|Param|Level|
-----+------+------+------+----------+----------+-----------------------------------------+-----------------------+
7 | 109 | * | | HGT | m | Height | 0 | 3 | 5 | 105 |
1 | 109 | * | | PRESSURE | Pa | Pressure | 0 | 3 | 0 | 105 |
11 | 109 | * | | TT | K | Temperature | 0 | 0 | 0 | 105 |
51 | 109 | * | | SPECHUMD | kg kg-1 | Specific Humidity | 0 | 1 | 0 | 105 |
33 | 109 | * | | UU | m s-1 | U | 0 | 2 | 2 | 105 |
34 | 109 | * | | VV | m s-1 | V | 0 | 2 | 3 | 105 |
153 | 109 | * | | QC | kg kg-1 | Cloud water mixing ratio | 0 | 1 | 22 | 105 |
170 | 109 | * | | QR | kg kg-1 | Rain water mixing ratio | 0 | 1 | 24 | 105 |
58 | 109 | * | | QI | kg kg-1 | Ice mixing ratio | 0 | 6 | 0 | 105 |
171 | 109 | * | | QS | kg kg-1 | Snow water mixing ratio | 0 | 1 | 25 | 105 |
179 | 109 | * | | QG | kg kg-1 | Graupel mixing ratio | 0 | 1 | 32 | 105 |
153 | 109 | * | | QNR | kg-1 | Rain number concentration | 0 | 1 | 100 | 105 |
255 | 109 | * | | QNC | kg-1 | Cloud number concentration | 0 | 6 | 28 | 105 |
198 | 109 | * | | QNI | kg-1 | Ice number concentration | 0 | 6 | 29 | 105 |
157 | 107 | * | | QNWFA | kg-1 | Water-fr. aerosol number concentration | 0 | 13 | 193 | 105 |
156 | 107 | * | | QNIFA | kg-1 | Ice-fr. aerosol number concentration | 0 | 13 | 192 | 105 |
11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 |
51 | 105 | 2 | | SPECHUMD | kg kg-1 | Specific Humidity at 2 m | 0 | 1 | 0 | 103 |
52 | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | | 103 |
33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 |
34 | 105 | 10 | | VV | m s-1 | V at 10 m | 0 | 2 | 3 | 103 |
1 | 1 | 0 | | PSFC | Pa | Surface Pressure | 0 | 3 | 0 | 1 |
129 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 198 | 101 |
65 | 1 | 0 | | SNOW | kg m-2 | Water equivalent snow depth | 0 | 1 | 13 | 1 |
66 | 1 | 0 | | SNOWH | m | Snow depth | 0 | 1 | 11 | 1 |
11 | 1 | 0 | | SKINTEMP | K | Skin Temp ( = TSK ) | 0 | 0 | 0 | 1 |
223 | 1 | 0 | | CANWAT | kg m-2 | Plant Canopy Surface Water | 2 | 0 | 13 | 1 |
144 | 111 | 0 | | SOILM000 | fraction | Soil Moist 0 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 1 | | SOILM001 | fraction | Soil Moist 1 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 4 | | SOILM004 | fraction | Soil Moist 4 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 10 | | SOILM010 | fraction | Soil Moist 10 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 30 | | SOILM030 | fraction | Soil Moist 30 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 60 | | SOILM060 | fraction | Soil Moist 60 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 100 | | SOILM100 | fraction | Soil Moist 100 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 160 | | SOILM160 | fraction | Soil Moist 160 cm below ground | 2 | 0 | 192 | 106 |
144 | 111 | 300 | | SOILM300 | fraction | Soil Moist 300 cm below ground | 2 | 0 | 192 | 106 |
85 | 111 | 0 | | SOILT000 | K | Soil Temp 0 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 1 | | SOILT001 | K | Soil Temp 1 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 4 | | SOILT004 | K | Soil Temp 4 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 10 | | SOILT010 | K | Soil Temp 10 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 30 | | SOILT030 | K | Soil Temp 30 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 60 | | SOILT060 | K | Soil Temp 60 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 100 | | SOILT100 | K | Soil Temp 100 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 160 | | SOILT160 | K | Soil Temp 160 cm below ground | 2 | 0 | 2 | 106 |
85 | 111 | 300 | | SOILT300 | K | Soil Temp 300 cm below ground | 2 | 0 | 2 | 106 |

91 | 1 | 0 | | SEAICE | | Ice flag | 10 | 2 | 0 | 1 |
81 | 1 | 0 | | LANDSEA | proprtn | Land/Sea flag (1=land, 0 or 2=sea) | 2 | 0 | 0 | 1 |
7 | 1 | 0 | | SOILHGT | m | Terrain field of source analysis | 0 | 3 | 5 | 1 |
-----+------+------+------+----------+----------+-----------------------------------------+-----------------------+

The log when running ungrib also indicates that the soil properties are being interpolated, but somehow they do not exist in the WPS intermediate files generated.

PRES HGT PRESSURE TT SPECHUMD UU VV QC QR QI QS QG QNR QNC QNI QNWFA QNIFA RH PSFC PMSL SNOW SNOWH SKINTEMP CANWAT SOILM000 SOILM001 SOILM004 SOILM010 SOILM030 SOILM060 SOILM100 SOILM160 SOILM300 SOILT000 SOILT001 SOILT004 SOILT010 SOILT030 SOILT060 SOILT100 SOILT160 SOILT300 SEAICE LANDSEA SOILHGT
-------------------------------------------------------------------------------
2001.0 O O X X X X O O O O O O O O O O O X O X X X O X X X X X X X X X X X X X X X X X X X X X

Interestingly, the problem went away when processing HRRR data in 2019, indicating the HRRR data format or metadata might have changed over time. But how can I get ungrib to interpolate a variable that does exist in the grib2 file? The metadata of the HRRR GRIB2 files and the WPS intermediate file are attached. May I get some help to diagnose the problem? Thank you very much!

Best,
Xin
 

Attachments

  • var.hrrr.20151225t00z.wrfprsf00.txt
    61.9 KB · Views: 1
  • var.ungrib.wrfprs.txt
    336 KB · Views: 3
Hi Xin,
Are you able to share one of the HRRR input data files (or multiple, if they are split into, e.g., surface variable and 3d variables) so that I can test this out? If the file(s) is too large to attach, see the home page of this forum for instructions on sharing large files. Please also attach the following files:

- the Vtable you're using (make sure to send the actual Vtable, and not just the link from WPS)
- namelist.wps
- full ungrib.log

Please run (from the WPS directory),
Code:
./util/rd_intermediate.exe FILE:DATE_TIME >& intermediate.txt

using the actual name of one of the intermediate files in the place of "FILE : DATE_TIME" and then attach the intermediate.txt file, as well. Please also let me know which version of WPS you're using. Thanks!
 
Last edited:
Thank you very much for the follow-up!

I'm using WPS V4.3.1. The problem disappeared while I was testing different versions of the HRRR data, but I don't know exactly why.

When I worked with HRRR v1 data at first, ungrib.exe seemed to go through all the time steps only once. But when working with HRRR v2 and v3 data, ungrib.exe looped through all time steps twice, with the second loop recognizing the input data source: "Name of source model =>NCEP HRRR Model". When I went back to work with HRRR v1 data, ungrib.exe kept looping through the data twice and recognized the input source from NCEP HRRR data in the second loop.

I currently cannot replicate the problem again. It may be related to the platform, but you may have a better idea of the possible reasons why ungrib does not recognize an input data source.

Thank you again for offering the help!

Best,
Xin
 
Top