ESCOMP / CTSM

Community Terrestrial Systems Model (includes the Community Land Model of CESM)
http://www.cesm.ucar.edu/models/cesm2.0/land/
Other
295 stars 299 forks source link

Move the soil erodibility dataset dust emission source function from CAM to CTSM #1836

Open dmleung opened 1 year ago

dmleung commented 1 year ago

Hi this is Danny, a PhD student at UCLA working with Prof. Jasper Kok @jfkok. In issue #1604 we proposed to add a new dust emission scheme improving the dust mobilization parameterizations in CLM. Although a new scheme will be added as in PR #1712, CLM people decided to keep the existing emission scheme by Zender et al. (2003a, b).

One issue is that the (time-constant) soil erodibility source function employed by Zender's scheme has always been read in and applied to the CAM emission flux instead of to the CLM emission flux, likely due to some historical reasons. However, conceptually, how soil erodibility and other land-surface characteristics affect the emission strength should be part of the land processes, and we believe it should be read in and applied in CLM instead of CAM. Historically CLM has created a variable for the Zender source function called mbl_bsn_fct, but it has always been set as 1 as a place holder and it is conceptually the same variable as the soil_erod in CAM. Here we request moving the soil erodibility map from CAM to CLM into mbl_bsn_fct, coming as part of either the surface dataset or the stream file.

The modification will make the CLM dust emission scheme more conceptually complete, and will also eliminate conceptually overlapping variables among CLM and CAM.

@dmleung proposed the modification. @dlawrenncar, @lkemmons, @L3atm, and software engineers including @ekluzek and @fvitt agreed about the decision. @dmleung will work on this issue in both CLM and CAM. The same issue is also posted on CAM github https://github.com/ESCOMP/CAM/issues/651.

Thank you, Danny

Files to be changed: clm/src/biogeochem/DUSTMod.F90 clm/bld/namelist_files/namelist_defaults_ctsm.xml clm/bld/namelist_files/namelist_definition_ctsm.xml cam/bld/namelist_files/namelist_defaults_cam.xml cam/bld/namelist_files/namelist_definitions.xml cam/src/chemistry/modal_aero/dust_model.F90 cam/src/chemistry/aerosol/soil_erod_mod.F90 Some of the below files will also be changed for adding the namelist variables and reading in the soil erodibility dataset: clm/src/biogeophys/SoilStateType.F90 clm/src/biogeophys/SoilStateInitTimeConstMod.F90 clm/src/main/controlMod.F90 clm/src/main/clm_varctl.F90

P.S.

  1. Subsequently, some CAM output fields, e.g., LND_MBL (Zender's source function) and DSTSFMBL (emission flux) will be cleared up. For instance, LND_MBL might become a CLM output instead of CAM output.
  2. Path of the original soil erodibility data read in by CAM: soil_erod_file='/glade/p/cesmdata/cseg/inputdata/atm/cam/dst/dst_source2x2tunedcam6-2x2-04062017.nc'
  3. The CAM soil erodibility file is 2x2 and is interpolated using the function lininterp to other resolutions. CLM will thus need to do the same (a stream file might be more capable of performing the interpolation).
ekluzek commented 1 year ago

We had planned to also move the global tuning factor, but have decided to leave that in CAM. I will make a new issue for expanding that based on the new scheme and an up and coming prescribed emission mode.

ekluzek commented 9 months ago

I decided to split this up into two segments. The first is #1967 which I have a time estimate of 32 hours. The second is to update the CMEPS external tag to handle the namelist being set in it rather than in CTSM. So CMEPS is updated and the CTSM namelist item is removed and replaced with the one in CMEPS.

So tasks for it are:

  1. [x] Create a branch and PR for this work 3
  2. [ ] Bring #1967 to master
  3. [ ] Do the work in CMEPS to create a CMEPS tag (https://github.com/ESCOMP/CMEPS/issues/353) estimate there: 35, 67, 75 (this is started)
  4. [ ] Create new branch for move of CTSM namelist items to CMEPS
  5. [ ] Remove the CTSM namelist control item, but handle it in drv_flds_in, add namelist testing 3-8
  6. [ ] Change the control in the code from the CTSM namelist to the CMEPS namelist and call the shared code for it 2-5
  7. [ ] Run testing, respond to issues 2-4
  8. [ ] Get the tag scheduled, respond to review issues 1-3
  9. [ ] Merge to latest 1
  10. [ ] Run testing respond to issues 1-3
  11. [ ] Make the tag 1

Estimate:

Min: 14+35 = 49 Avg: 28+67= 95 Max: 32+75= 107

Estimate from average of above: 72