E3SM icon indicating copy to clipboard operation
E3SM copied to clipboard

Add EAM-generated dust deposition capability to ocean

Open maltrud opened this issue 3 months ago • 9 comments

Currently, the atmospheric dust and iron deposition to the surface ocean is specified to be a monthly climatology that has been used for all E3SM ocean BGC cases for the past decade. This PR now allows the use of a climatology generated by EAM from archival simulations with prognostic dust deposition and time-variable solubility for iron in dust, which requires extra fields to be read in. In addition, the wet and dry dust flux that EAM sends through the coupler can now also be used by the ocean in fully coupled runs so only the solubility is required to be read in from a file.

[NML] [BFB] - stealth feature

maltrud avatar Sep 22 '25 20:09 maltrud

@maltrud : could you add the new stream fields to the buildnml?

--- a/components/mpas-ocean/cime_config/buildnml +++ b/components/mpas-ocean/cime_config/buildnml @@ -1811,6 +1811,11 @@ def buildnml(case, caseroot, compname): lines.append(' ') lines.append(' ') lines.append(' ')

  •            lines.append('    <var name="dust_FLUZ_DRY"/>')
    
  •            lines.append('    <var name="dust_FLUZ_WET"/>')
    
  •            lines.append('    <var name="IRON_Zolubility_wet"/>')
    
  •            lines.append('    <var name="IRON_Zolubility_dry"/>')
    
  •            lines.append('    <var name="IRON_in_duzt_fraction"/>')
               lines.append('    <var name="dust_FLUZ_IN"/>')
               lines.append('    <var name="riverFluzNO3"/>')
               lines.append('    <var name="riverFluzPO4"/>')
    

njeffery avatar Sep 24 '25 15:09 njeffery

@njeffery great idea--will do.

maltrud avatar Sep 24 '25 16:09 maltrud

I've run a fully-coupled test and all looks good. Here are some figures:

NJ-E3SM-10012025.pptx

njeffery avatar Oct 01 '25 16:10 njeffery

BTW, on the previous E3SM test, I had to rebase on the head of master to get through the setup on perlmutter. Submitting a job from the head of this PR, there is a library mismatch:

Finished SETUP for test SMS_Ld3.T62_oQU240.GMPAS-NYF.pm-cpu_gnu in 2.759769 seconds (FAIL). [COMPLETED 1 of 1]
    Case dir: /pscratch/sd/m/mpeterse/e3sm_scratch/pm-cpu/SMS_Ld3.T62_oQU240.GMPAS-NYF.pm-cpu_gnu.20251003_102449_9pimzr
    Errors were:
        ERROR: module command /usr/share/lmod/lmod/libexec/lmod python load PrgEnv-gnu/8.5.0 gcc-native/12.3 cray-libsci/23.12.5 craype-accel-host craype/2.7.30 cray-mpich/8.1.28 cray-hdf5-parallel/1.12.2.9 cray-netcdf-hdf5parallel/4.9.0.9 cray-parallel-netcdf/1.12.3.9 cmake/3.24.3 evp-patch failed with message:
        Lmod has detected the following error: These module(s) or extension(s) exist but cannot be loaded as requested: "evp-patch"
           Try: "module spider evp-patch" to see how to load the module(s).

mark-petersen avatar Oct 03 '25 17:10 mark-petersen

I added the shared constant and updated ocean streams changes and pushed to the branch. I did a local merge of master with the branch and it passed all except NML since we added new namelist variables. I think it's ready for the next step.

SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod (Overall: NLFAIL) details: PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod CREATE_NEWCASE PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod XML PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod SETUP PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod SHAREDLIB_BUILD time=225 FAIL SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod NLCOMP PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod MODEL_BUILD time=275 PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod SUBMIT PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod RUN time=1549 PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod BASELINE master: ERROR Could not interpret CPRNC output PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod MEMLEAK insufficient data for memleak test PASS SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod SHORT_TERM_ARCHIVER

maltrud avatar Oct 03 '25 19:10 maltrud

@maltrud -- I ran the semi-automated scripts to make the bld files consistent with what's in Registry. Most of the changes are in ordering of the new configs, but some of the documentation you added to namelist_definition_mpaso.xml will get lost. If any of it is important, please change the descriptions in Registry and I'll rerun the scripts

jonbob avatar Oct 07 '25 17:10 jonbob

@maltrud -- since this is a stealth feature, we need to add a stealth test with this PR. I'm working on a testdef that just changes the values of these two new configs:

    config_use_ecosysTracers_atm_dust_from_coupler
    config_use_ecosysTracers_iron_solubility_file

Is that all that needs to be done? Does this need to be a marine BGC run in order for this to work?

jonbob avatar Oct 07 '25 21:10 jonbob

Update: working on a test with @njeffery

rljacob avatar Nov 20 '25 18:11 rljacob

Notes: needs more work.

rljacob avatar Dec 11 '25 18:12 rljacob