Soil Erodible Potential


I am trying to run windblown dust calculations but finding that when I used the refined part of my nested grid over the area of interest my dust emissions bottomed out to 0. I have been looking into what would been causing the problem and noticed this in my Soil_Erode_Pot for my larger grid. The refined grid focuses on the GSL in upper Utah.

I might be wrong but this image doesnt look right to me. I did a hand calculation of the erodible potential near the GSL using the soil types given in my wrfout_do1 file and they should be around 5.99 but show as 0.

Ive been working on finding the error that is causing this for a while not but have had no luck. I am using the PXLSM model. My configurations for WRF are based on Any suggestions as how to fix this would be appreciated.

Could you please post the versions of WRF, MCIP, and CMAQ you are using for this analysis?

MCIP v5.1
WRF v4.2.1
CMAQ v5.3.1

Thank you.

I probably have to pass this on to some of my colleagues, but after a quick look at the code, there could be the possibility that unrealistic snow cover is keeping Soil_Erod_Pot to zero.

In DUST_EMIS.F, the DUST_EMIS output variable Soil_Erod_Pot is derived from variable sd_ep which is initialized as zero and then computed for a given grid cell only if the first three of the following conditions are true:

C—Dust possiblity only if 1. not over water
C 2. rain < 1/100 in. (1 in. = 2.540 cm)
C 3. not snow-covered
C 4. if soimt <= limit
C 5. desert type or ag landuse
C 6. erodible landuse
C 7. friction velocity > threshold

        if ( ( Grid_Data%lwmask( c,r ) .gt. 0.0 ) .and.
 &           ( Met_Data%rn( c,r ) + Met_Data%rc( c,r ) .le. 0.0254 ) .and. ! rn, rc = [cm]
 &           ( Met_Data%snocov( c,r ) .lt. 0.001 ) ) then ! less than 0.1% snow coverage

C—Dust possiblity 1,2,3

Could you please look at SNOCOV in METCRO2D and LWMASK in GRIDCRO2D to verify that SNOCOV is < 0.001 and LWMASK is > 0 for the day for which you plotted Soil_Erode_Pot in the areas you expect Soil_Erode_Pot to be non-zero? (you could also look at RC and RN since rain also “switches off” the calculation of WBD, but the blocky nature of the zero / non-zero values in your map doesn’t suggest rain fields may be the problem here).

It looks like your thinking was correct. This does explain the blockiness but I dont think this snow cover for the GSLD is realistic for the middle of April. Do you know how this snow cover is calculated?

O.k., thanks for checking and confirming that the seemingly unrealistic snow cover obtained from WRF is causing the suppression of wind blown dust in your case.

I do not know which underlying data source was used in your WRF simulations to obtain the snow cover information that was then passed through from MCIP to CMAQ. I would guess that the ingestion of snow cover information into WRF happens through WPS but I don’t have any experience with this. Maybe @mmallard, @rgilliam, or @tlspero can provide further insights.

1 Like

The SNOCOV variable that comes from MCIP is obtained from wrfout files (where it’s named SNOWC). I thought that SNOWC was computed from the land surface model in WRF, not input. But that might be dependent on whether the user inputs a separate snow dataset through WPS. I’m a little unclear on whether that was done here…


I am using NCEP FNL Operational Model Global Tropospheric Analyses, continuing from July 1999
ds083.2 | DOI: 10.5065/D6M043C6 data from the NCAR Research Data archive with the PXLSM land use model.

I am not inputting any separate snow datasets in WPS.

If it helps my geogrid static data options are ‘nlcd2016_9s+9s+varsso_10m+soiltype_bot_30s+soiltype_top_30s+greenfrac_fpar_modis+lai_modis_30s+albedo_modis+default’

It also seems like the landuse model is computing the SNOWC variable as static for mulitple months. Ive run through the SNOWC variable using Verdi and it doesnt change from march to early may. Is there a way to have more accurate time varying data be processed by the model?

May I ask how you get the NLCD2016 worked for WRF? As far as I know, the most widely used is NLCD 2011 which already incorporated into the static geogrid data by the development team. Any comments are apprecited!


I typed that in wrong when I was replying to previous comments. It should be 2011.

Note for the PX LSM, you generally create a wrfsfdda_d0* file(s) to unlock the soil nudging algorithm. That input file is created by Obsgrid. Obsgrid takes met_em* files from Metgrid along with LittleR observation files and creates a renalysis on the users WRF domain. This not only runs the soil nudging in PX LSM, but it also updates the snow cover every 3-6 hours. With FNL, every 6 hours. This is how your update snow.

It sounds like the Obsgrid step and soil nudging is not enabled in lawless’ WRF run if snow cover is not changing.

This is an example of how a namelist.input should trigger PX soil nudging that will also trigger snow updates based on the wrfsfdda_d01 file created by Obsgrid.

I can also provide a document with some suggestions on how to best use the PX LSM if you contact me directly or maybe I’ll copy and paste in a following comment.

grid_fdda = 1,
grid_sfdda = 1,
pxlsm_soil_nudge = 1,
sgfdda_inname = “wrfsfdda_d01”,
sgfdda_end_h = 9999999,
sgfdda_interval_m = 360,
gfdda_inname = “wrffdda_d”,
gfdda_end_h = 9999999,
gfdda_interval_m = 360,
fgdt = 0,
if_no_pbl_nudging_uv = 1,
if_no_pbl_nudging_t = 1,
if_no_pbl_nudging_q = 1,
if_zfac_uv = 0,
k_zfac_uv = 13,
if_zfac_t = 0,
k_zfac_t = 13,
if_zfac_q = 0,
k_zfac_q = 13,
guv = 0.0001,
gt = 0.0001,
gq = 0.00001,
guv_sfc = 0.0000,
gt_sfc = 0.0000,
gq_sfc = 0.0000,
if_ramping = 1,
dtramp_min = 60.0,
io_form_gfdda = 2,
rinblw = 250.0