USEPA / CMAQ

Code for U.S. EPA’s Community Multiscale Air Quality Model (CMAQ) which helps in conducting air quality model simulations
https://epa.gov/CMAQ
MIT License
282 stars 201 forks source link

Error in NLCD40 Land Use Mapping for Inline Windblown Dust Calculations #220

Open chogrefe opened 2 weeks ago

chogrefe commented 2 weeks ago

Description The current inline windblown dust (WBD) code can cause excessive WBD emissions when using WRF simulations with NLCD40 land use (LU). The excessive emissions are caused by mapping two NLCD40 categories (“shrub/scrub” and “dwarf scrub”) to the wrong internal BELD3 LU class (“barren or sparsely vegetated” instead of “shrubland”) that is being used in the WBD module to assign parameter values controlling erodibility.

Scope and Impact When enabling the inline WBD module and using WRF simulations with NLCD40 LU as input, 2018 annual domain total WBD emissions over the 12US1 domain were reduced by about factor of 3-4 after correcting the erroneous LU mapping with the code fix described below, with the exact reduction depending on the approach to specify vegetation fraction in the WRF simulations and likely also depending on the domain and year being simulated.

Additional context Users wishing to correct the erroneous NLCD40 mapping prior to a future release in the v55+ branch should make the following modification to file lus_data_module.F:

In lines 310 - 311, change

  &              3,       ! barrenland
  &              3,       ! barrenland

to

  &              1,       ! shrubland
  &              1,       ! shrubland

so that the entire NLCD40 to BELD3 mapping block looks as follows:

        integer :: dmap_nlcd40( n_dlcat_nlcd40+1 ) = ! land use type desert map to BELD3
 &           (/ 1,       ! shrubland
 &              1,       ! shrubland
 &              3,       ! barrenland
 &              1,       ! shrubland
 &              1,       ! shrubland
 &              3,       ! barrenland
 &              3 /)     ! ag landuse surrogate
carb-jlu commented 1 week ago

Then, should the values at line 302 and 303 be updated too?

chogrefe commented 1 week ago

Then, should the values at line 302 and 303 be updated too?

Good question. No, these lines do not have to be updated because the dmsk_nlcd40 array (mapped to dmsk in centralized_iomodule.F) is a vestige from earlier code versions that is no longer used in any WBD calculations. Therefore, the LU-specific dmsk* arrays in lus_data_module.F and their mapping to dmsk in centralized_io_module.F should arguably be removed in future code updates, but in the meantime, the erroneous mapping defined in these arrays will not affect any calculations and does not require any update (though it could be updated for aesthetic reasons).