USGS landuse not supported?

Hi
I was trying using USGS landuse (has 28 categories, as obtained from WRF) with CMAQ5.3.1 but the model is not running perhaps it does not take USGS land use? Here is the error:

 *** ERROR ABORT in subroutine Init_LSM on PE 000
 Land use scheme not supported

PM3EXIT: date&time specified as 0
Date&time specified as 0

What land-use types (used in WRF) are supported in CMAQ? How to make the data with USGS 28 land categories work with CMAQ run?

Thanks

I have to admit that I am not familiar with a 28 category USGS land use scheme.

As far as I know, CMAQ can use the following land use schemes: NLCD40 (40 categories), NLCD50 (50 categories), USGS24 (24 categories), and MODIFIED_IGBP_MODIS (20 categories).

You can obtain the land-use scheme used in your WRF fields by looking at the header (via ncdump -h) of your MCIP files, specifically the string “LAND USE CLASSIFICATION:” What does that string show in your files?

Thank you for the reply. The string says ‘USGS’

LAND USE CLASSIFICATION: USGS

This is outside my area of expertise, maybe someone with more WRF background can chime in. Are there multiple USGS options in WRF, a 24 category option and a 28 category option?

What CMAQ is looking for specifically is the 24 category option. In centralized_io_module.F, the MCIP “LAND USE CLASSIFICATION” string is parsed and the following schemes are recognized: “USGS24”, “NLCD40”, “NLCD50”, and “MODIS”.

Which version of MCIP are you using? If you are using the latest version, how many “layers” do you see in your LUFRAC file? If you are using an older version, how many LUFRAC_## variables are you seeing in your GRIDCRO2D file?

WRF seems to have 28 categories if used usgs_lakes landuse, which is the case with mine.
I am using version 5.1 mcip (cmaq 5.3.1), and LUFRAC has 28 layers. I also tried to mix LUFRAC files from nlcd and other files from usgs28, the model still complained about landuse scheme. It seems like the attribute string about LAND USE CLASSIFICATION is more important than what is inside the files.

Thanks. The answer then very likely is that the usgs_lakes option in WRF is not supported by CMAQ because it is distinctly different from the standard 24 category WRF usgs option which is supported by CMAQ. However, to confirm my statement, I will also flag this to a colleague who knows much more about this than I do. Just a heads up that this colleague is taking time off this week so you may have wait a little bit for the answer.

I would strongly advise against mixing LUFRAC MCIP files generated from an NLCD40 WRF run with MET* and GRID* MCIP files generated from a usgs_lakes WRF run. Even if CMAQ would let it pass, you’d create complete inconsistencies between the land-surface fluxes in your WRF simulations which influenced the meteorological fields and the dry deposition calculations in CMAQ.

Okay, thank you, for the suggestions.

I did this for my own runs, but did not get around to putting these modifications into the CMAQ release. I had to modify PHOTOLYSIS_ALBEDO.F and LSM_MOD.F, but it was quite straightforward.
Contact me by email and I can walk you through it. We should get this into the release version of the model anyway. What version of WRF are you using?

Thank you. The WRF version I am using is 4.2. I just rerun wrf with 24 categories landuse, and hopefully that will be okay for CMAQ, and if not, I will contact you via email. However, CMAQ seems extremely slow (seems almost impossible) when using more frequent inputs (now at 15 minutes interval vs previous runs with hourly inputs). Do you have any recommendations on this regard? I used the same number of cores in both cases; the run using hourly input data finished quite quickly (in about 7-8 hours for total of 48 hours simulation) but the one using input files having 15 minutes interval is just stuck at about 1 hour simulation time in run time of 7-8 hours!

Thank you.

Are you using profile boundary conditions?
You may be experiencing the same issue as described here.

If not, please post a new thread.

Yes, I was using profile BC. The hemispherical averaged conc files provided by CMAS unfortunately do not go beyond 100 hPa and so to get to 50 hPa I used profile boundary condition. Perhaps I need to rerun WRF with ptop going only up to 100 hPa!

Thank you

Could you please verify which H-CMAQ concentration files you obtained that have a model top of 100 hPa?

The file with quarterly average H-CMAQ output posted in this folder extends to 50 mb.

Thank you very much! For some reason, I happened to encounter an error (some previous filew left undeleted) while trying to run icon/bcon with quarterly averaged file but turns out that this file indeed goes up to 50hPa! Thank you

Hi cgnolte,

I try to run CMAQ with the USGS28 landuse. Could you please tell me how to modify PHOTOLYSIS_ALBEDO.F and LSM_MOD.F to make CMAQ run successfully with the USGS28 landuse? Thank you very much!

Best wishes,
Lingyun

@LYM

What version of WRF did you use to create USGS28? There have been a few changes to the land use options between recent versions of WRF, and I need to update MCIP to handle these options. I am not sure that USGS28 is something I’ve coded in MCIP.

–Tanya

Hi Tanya,@tlspero
I use WRF V3.9.1.
Thanks,
Lingyun

I see MCIP code blocks in getluse.f90 and lucats_mod.f90 that appear to handle USGS28 correctly – or at least, the same way that was used in Nolte et al., JAWMA 2021, which used CMAQv5.3 and MCIPv4.5.1.

On the CMAQ side, I modified LSM_MOD.F by inserting these code blocks. It should be obvious where to insert them.

  INTEGER, PRIVATE, PARAMETER :: n_usgs28  = 28

  TYPE( lu_type ), PRIVATE, PARAMETER :: USGS28( n_usgs28 ) =  (/

! VEGMN0 LAIMN0 LUF_FAC
! —Name— -LU cat - RSMIN Z00 VEG0 | LAI0 | SNUP0 ALBF | HGLU_FAC Cat Desc.
& lu_type(‘USGS_Urban’, 'URBAN ', 150.0, 50.0, 40.0, 20.0, 2.0, 0.5, 0.04, 15.0, 338.0, 190.0), ! 1 Urban or Built-up Land
& lu_type(‘USGS_DrCrp’, 'AG ', 70.0, 10.0, 95.0, 15.0, 3.16, 0.5, 0.04, 17.0, 340.0, 80.0), ! 2 Dryland Crop and Pasture
& lu_type(‘USGS_IrCrp’, 'AG ', 60.0, 10.0, 95.0, 10.0, 3.16, 0.5, 0.04, 18.0, 340.0, 32.0), ! 3 Irr. Cropland and Pasture
& lu_type(‘USGS_MixCp’, 'AG ', 70.0, 10.0, 95.0, 15.0, 3.16, 0.5, 0.04, 18.0, 340.0, 56.0), ! 4 Mixed Dry/Irr Crop and Past
& lu_type(‘USGS_CrGrM’, 'AG ', 80.0, 10.0, 95.0, 35.0, 2.5, 1.0, 0.04, 18.0, 298.0, 50.0), ! 5 Grassland/Cropland Mosaic
& lu_type(‘USGS_CrWdM’, 'AG ', 180.0, 40.0, 95.0, 40.0, 4.0, 1.5, 0.04, 16.0, 298.0, 26.0), ! 6 Woodland/Cropland Mosaic
& lu_type(‘USGS_GrsLd’, 'HERB ', 100.0, 7.0, 95.0, 70.0, 2.5, 1.0, 0.04, 19.0, 247.0, 20.0), ! 7 Grassland
& lu_type(‘USGS_ShrLd’, 'SHRUB ', 200.0, 20.0, 70.0, 50.0, 3.0, 1.0, 0.03, 22.0, 246.0, 125.0), ! 8 Shrubland
& lu_type(‘USGS_ShrGr’, 'SHRUB ', 150.0, 20.0, 85.0, 60.0, 3.0, 1.0, 0.035, 20.0, 246.0, 73.0), ! 9 Mixed Shrubland/Grassland
& lu_type(‘USGS_Savan’, 'MIXFOR ', 120.0, 20.0, 80.0, 60.0, 2.0, 1.0, 0.04, 20.0, 246.0, 51.0), ! 10 Savanna
& lu_type(‘USGS_DBFst’, 'DECFOR ', 200.0, 50.0, 95.0, 50.0, 5.0, 1.0, 0.08, 16.0, 268.0, 81.0), ! 11 Broadleaf Deciduous Forest
& lu_type(‘USGS_DNFst’, 'DECFOR ', 175.0, 50.0, 95.0, 50.0, 5.0, 1.0, 0.08, 14.0, 267.0, 81.0), ! 12 Deciduous Coniferous Forest
& lu_type(‘USGS_EBFst’, 'EVEFOR ', 120.0, 40.0, 95.0, 85.0, 5.0, 4.0, 0.08, 12.0, 247.0, 130.0), ! 13 Evergreen Broadleaf Forest
& lu_type(‘USGS_ENFst’, 'EVEFOR ', 175.0, 50.0, 90.0, 80.0, 4.0, 3.0, 0.08, 12.0, 246.0, 40.0), ! 14 Evergreen Coniferous Forest
& lu_type(‘USGS_MxFst’, 'MIXFOR ', 200.0, 50.0, 95.0, 60.0, 5.0, 2.0, 0.08, 13.0, 252.0, 139.0), ! 15 Mixed forest
& lu_type(‘USGS_Water’, 'WATER ',9999.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.01, 8.0, 0.0, 0.0), ! 16 Water
& lu_type(‘USGS_HWtld’, 'WETLAND ', 164.0, 15.0, 60.0, 40.0, 2.0, 1.0, 0.01, 14.0, 248.0, 125.0), ! 17 Herbaceous Wetland
& lu_type(‘USGS_WWtld’, 'WETLAND ', 200.0, 45.0, 90.0, 80.0, 5.0, 3.0, 0.01, 14.0, 260.0, 125.0), ! 18 Forested Wetlands
& lu_type(‘USGS_BarSp’, 'BARREN ', 100.0, 5.0, 10.0, 5.0, 0.5, 0.2, 0.02, 25.0, 246.0, 26.0), ! 19 Barren or Sparsely Vegetated
& lu_type(‘USGS_HrTun’, 'HERB ', 150.0, 10.0, 20.0, 10.0, 1.0, 0.5, 0.02, 15.0, 246.0, 62.0), ! 20 Herbaceous Tundra
& lu_type(‘USGS_WdTun’, 'SHRUB ', 200.0, 10.0, 30.0, 10.0, 1.0, 0.5, 0.025, 15.0, 246.0, 62.0), ! 21 Shrub and Brush Tundra
& lu_type(‘USGS_MxTun’, 'SHRUB ', 150.0, 5.0, 20.0, 5.0, 1.0, 0.5, 0.025, 15.0, 246.0, 62.0), ! 22 Mixed Tundra
& lu_type(‘USGS_BGTun’, 'BARREN ', 100.0, 5.0, 5.0, 2.0, 0.1, 0.1, 0.025, 25.0, 246.0, 18.0), ! 23 Bare Ground Tundra
& lu_type(‘USGS_SnwIc’, 'SNOWICE ', 300.0, 5.0, 5.0, 2.0, 0.1, 0.1, 0.02, 55.0, 0.0, 0.0), ! 24 Snowfields or Glaciers
& lu_type(‘USGS_nul25’, ‘UNASSIGN’, 300.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.02, 55.0, 0.0, 0.0), ! 25 unassigned
& lu_type(‘USGS_nul26’, ‘UNASSIGN’, 300.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.02, 55.0, 0.0, 0.0), ! 26 unassigned
& lu_type(‘USGS_nul27’, ‘UNASSIGN’, 300.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.02, 55.0, 0.0, 0.0), ! 27 unassigned
& lu_type(‘USGS_Lakes’, 'WATER ',9999.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.01, 8.0, 0.0, 0.0)/) ! 28 lakes

           IF ( INDEX( VDESC3D( l ), 'USGS28' ) .NE. 0 )     LAND_SCHEME = 'USGS28'

        CASE( 'USGS28' )                   
           n_lufrac    = n_usgs28
           If ( .Not. Allocated ( cat_lu ) ) Then
              Allocate ( cat_lu   ( n_lufrac ),
 &                       name_lu  ( n_lufrac ),
 &                       RSMIN    ( n_lufrac ),
 &                       LAI0     ( n_lufrac ),
 &                       LAIMN0   ( n_lufrac ),
 &                       VEG0     ( n_lufrac ),
 &                       VEGMN0   ( n_lufrac ),
 &                       Z00      ( n_lufrac ),
 &                       LUF_FAC  ( n_lufrac ),
 &                       HGLU_FAC ( n_lufrac ), STAT = ALLOCSTAT )
              IF ( ALLOCSTAT .NE. 0 ) THEN
                 XMSG = 'Failure allocating land use data'
                 CALL M3EXIT( PNAME, JDATE, JTIME, XMSG, XSTAT1 )
              END IF
           End If
           cat_lu   = USGS28%lu_cat
           name_lu  = USGS28%name
           RSMIN    = USGS28%RSMIN
           LAI0     = USGS28%LAI0
           LAIMN0   = USGS28%LAIMN0
           VEG0     = USGS28%VEG0
           VEGMN0   = USGS28%VEGMN0
           Z00      = USGS28%Z00/100.0
           LUF_FAC  = USGS28%LUF_FAC
           HGLU_FAC = USGS28%HGLU_FAC

Likewise, I modified PHOTOLYSIS_ALBEDO.F by inserting these code blocks.

          CASE( 'USGS28' )
              NUMB_LANDUSE = 28
              LAND_SCHEME  = LSM_SCHEME

          CASE( 'USGS28' )
              ALBMAP_TO_REF( 1:24 ) = ALBMAP_REF2USGS( 1:24 )
              ALBFAC_TO_REF( 1:24 ) = ALBFAC_REF2USGS( 1:24 )
              ALBMAP_TO_REF( 25:27 ) = 18
              ALBFAC_TO_REF( 25:27 ) = 1.0
              ALBMAP_TO_REF( 28 ) = 17
              ALBFAC_TO_REF( 28 ) = 1.0

The above was for the STAGE deposition model in CMAQv5.3. Things have been reorganized in CMAQv5.4, so it will take a bit more work to get support for USGS28 incorporated into the latest version of CMAQ.

Hi cgnolte,

Sorry for my late reply! I don’t know why I didn’t receive a notification for your reply before. Thanks very much for your help! I could run CMAQ successfully using USGS28 now.

Lingyun