Skip to content

Conversation

matthewhoffman
Copy link
Contributor

@matthewhoffman matthewhoffman commented Jun 25, 2025

This branch updates a number of details about MALI coupling in preparation of production runs:

  • When ELM is not active (e.g. G-cases), MALI will now use a data SMB from the MALI initial file
  • The data volume of MALI history files is vastly reduced

[NML] only for configurations with MALI
[non-BFB] only for configurations with MALI

This commit adds the ability for MALI to use a data surface mass balance
field from the MALI input file in compsets where ELM is not active.
This is done by adding a new namelist option in MALI called
config_smb_source and making its value controlled by the CIME variable
GLC_TWO_WAY_COUPLING which is only true when both ELM and MALI are
active.
Diagnostic/debugging fields that had been added previously have been
removed to reduce file size.  Output frequency has been reduced to 5
days.
@matthewhoffman matthewhoffman added mpas-albany-landice NML Stealth PR has feature which, if turned on, could change climate. fka FCC labels Jun 25, 2025
@matthewhoffman matthewhoffman force-pushed the matthewhoffman/mali/smb-data-option branch 2 times, most recently from 70b890c to 5e7fc9f Compare June 26, 2025 12:32
Copy link
Contributor

@trhille trhille left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matthewhoffman, these changes look correct to me. Is there anything you'd like me to test before I approve?

@matthewhoffman
Copy link
Contributor Author

@trhille , no, I just wanted you to look over the implementation and naming choices for config_smb_source, and to have you do a sanity check on the changes to the MALI history files.

lines.append(' <var name="ismip6shelfMelt_zOcean"/>')
lines.append(' <var name="ismip6shelfMelt_zBndsOcean"/>')
lines.append(' <var name="faceMeltSpeed"/>')
lines.append(' <var name="faceMeltingThickness"/>')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a little odd to have faceMeltingThickness, but not calvingThickness. Do we intend to eventually create a face-melting flux variable analogous to avgCalvingFlux?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing that out - we do actually have the time-averaged facemelting flux already available. I've pushed a new commit that replaces faceMeltingThickness with that.

@matthewhoffman
Copy link
Contributor Author

@trhille , I've pushed a commit further adjusting the MALI history file contents to include your suggestion, remove a few fields I don't think are necessary, and add the 2d TF field that facemelting uses.

In principle, we don't need either of the TF fields included right now, as we have the fields for the resulting fluxes calculated from them. At the same time, it might be useful to have the full 3d TF field that comes from MPAS-Ocean for visualization and possible debugging. But that field alone is bigger than the rest of the contents of this file (by a few times) because of the (standard) 30 vertical levels. So I am taking the approach of leaving it out by default, and one can modify their streams file if they want to have it available. That is probably something we will want to do frequently while evaluating ocn/glc TF coupling, but I want to avoid the default MALI hist file being too big.

If you (or others) have a different preference, let me know.

Copy link
Contributor

@stephenprice stephenprice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No suggested changes but a few comments to look at (responses on slack are fine too).

<value compset="_DATM.*_CICE.*_DOCN">24</value>
<value compset="_DATM.*_DOCN%US20">24</value>
<value compset="_MPASO">48</value>
<value compset="_DLND.*_MALI">1</value>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the base coupling interval for MALI is set to 1 year, does the above value for "_DLND.*_MALI" compsets also need to be updated? Even if only for consistency? Or, does this compset really only couple w/ the atmos. once per year?

<value compset="_DATM.*_SLND.*MPAS" grid="oi%oQU240">12</value>
<value compset="_DATM.*_SLND.*MPAS" grid="oi%oQU240wLI">12</value>
<value compset="_DATM.*_SLND.*MPAS.*_MALI" grid="oi%oQU240wLI">4380</value>
<value compset="_DATM.*_SLND.*MPAS" grid="oi%oQU120">24</value>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one ("_DATM.*_SLND.MPAS._MALI" grid="oi%oQU240wLI") and line 523 below are diff. (default coupling once every 2 hrs versus once every 30 mins) on purpose because of the low-res ocean mesh?

<config_rk_order>2</config_rk_order>
<config_rk3_stages>3</config_rk3_stages>
<config_adaptive_timestep>.false.</config_adaptive_timestep>
<config_adaptive_timestep>.true.</config_adaptive_timestep>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wary of turning this on by default without pretty extensive testing first, but I guess that can be part of this PR.

lines.append(' type="output"')
lines.append(' filename_template="{}.mali.hist.$Y-$M-$D_$S.nc"'.format(casename))
lines.append(' filename_interval="0001-00-00_00:00:00"')
lines.append(' filename_interval="0000-01-00_00:00:00"')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want to write a new output file every month?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's how the ocean and sea ice history files are. But they don't include the mesh in every file. So maybe we should remove that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After discussion, I pushed an update to go back to annual history files that include mesh fields and have daily output. A shake-up to that can wait for a future PR after we have more simulations tested.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I mis-read this in my review to be 1 day. Given the relatively shorter timescales we are working at right now, and the (default) monthly history files from other components, I think 1 month is a decent compromise.

Include all time-averaged coupling fields, remove temperature field
because it is 3d and will be in restart files, remove vertical
coordinate fields (they are tiny but rarely used and included in input
and restart files), add ismip6_2dThermalForcing for reference
@matthewhoffman matthewhoffman force-pushed the matthewhoffman/mali/smb-data-option branch from 487dd4c to a69161e Compare July 9, 2025 03:10
@matthewhoffman
Copy link
Contributor Author

I separated out the change to the coupling interval into a new PR: #7496

@matthewhoffman matthewhoffman changed the title MALI coupling updates for SMB, cpl interval, and hist fields Adjust MALI SMB in G-cases and update hist fields Jul 9, 2025
Copy link
Contributor

@trhille trhille left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking care of this, @matthewhoffman!

@jonbob jonbob added non-BFB PR makes roundoff changes to answers. and removed Stealth PR has feature which, if turned on, could change climate. fka FCC labels Jul 10, 2025
jonbob added a commit that referenced this pull request Jul 10, 2025
Adjust MALI SMB in G-cases and update hist fields

This branch updates a number of details about MALI coupling in
preparation of production runs:
* When ELM is not active (e.g. G-cases), MALI will now use a data SMB
  from the MALI initial file
* The data volume of MALI history files is vastly reduced

[NML] only for configurations with MALI
[non-BFB] only for configurations with MALI
@jonbob
Copy link
Contributor

jonbob commented Jul 10, 2025

Testing shows expected NML DIFFs for e3sm_landice_developer using gnu on chrysalis plus:

  • ERS.ne30pg2_r05_IcoswISC30E3r5_gis20.IGELM_MLI.chrysalis_gnu.mali-gis20km fieldlist DIFF
  • ERS_Ld5.TL319_oQU240wLI_ais8to30.MPAS_FOLISIO_JRA1p5.chrysalis_gnu.mpaso-jra_1958 baseline DIFF
  • ERS_Ld5.TL319_oQU240wLI_gis4to40.MPAS_FOLISIO_JRA1p5.chrysalis_gnu.mpaso-jra_1958 baseline DIFF
  • SMS.ne30_oECv3_gis.IGELM_MLI.chrysalis_gnu.elm-extrasnowlayers BFB
  • SMS.ne30pg2_r05_IcoswISC30E3r5_gis20.BGWCYCL1850.chrysalis_gnu.allactive-gis20km fieldlist DIFF
  • SMS.ne30pg2_r05_IcoswISC30E3r5_gis20.IGELM_MLI.chrysalis_gnu.mali-gis20km fieldlist DIFF
  • SMS.ne30pg2_r05_IcoswISC30E3r5_gis4to40.BGWCYCL1850.chrysalis_gnu.allactive-gis20km fieldlist DIFF

Passes:

  • SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.chrysalis_intel.allactive-wcprod

merged to next

Copy link
Contributor

@jonbob jonbob left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved based on visual inspection and testing

@jonbob jonbob merged commit fa2a3e4 into master Jul 11, 2025
3 checks passed
@jonbob jonbob deleted the matthewhoffman/mali/smb-data-option branch July 11, 2025 18:34
@jonbob
Copy link
Contributor

jonbob commented Jul 11, 2025

merged to master and expected NML and baseline DIFFs blessed except:

  • pm-cpu integration -- not reported yet
  • pm-cpu developer -- not reported yet
  • pm-cpu landice-developer -- not reported yet
  • mappy developer -- some tests failed due to download issues with new file

@matthewhoffman
Copy link
Contributor Author

@jonbob , FYI, I fixed the download issue after a head's up from @amametjanov . I had placed the new input files in the local mirror on Chrysalis instead of the primary public inputdata location. That has now been corrected.

@jonbob
Copy link
Contributor

jonbob commented Jul 11, 2025

Thanks @matthewhoffman. And that makes sense -- I went and checked the inputdata repo and the new files were there, so I was a little confused. By the way, you might want to cleanup the permissions, which currently look like:

-rwxr-xr-x 1 ac.mhoffman E3SM 154902172 Jul 11 13:32 ais_8to30km.20250625.nc

@matthewhoffman
Copy link
Contributor Author

Thanks, I took care of that too now.

@jonbob
Copy link
Contributor

jonbob commented Jul 15, 2025

blessed on mappy and pm-cpu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mpas-albany-landice NML non-BFB PR makes roundoff changes to answers.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants