Repository navigation
Conversation
new cism coupling to ocn capability
Rpointers update cism wrap
update source to point to noresm
…arctica combinations
ability to run both noevolve and evolve ice sheets in one simulation
…melists fix restart issues that arise with time averaged fields
…nition_back added namelist_definition_cism.xml back
update source_cism to cism_main_2.01.017_noresm_v9
…odel added .cime_model_id and updated .github externals
… ice sheet evolving and the other note
Contributor
Author
|
@Katetc @gunterl @whlipscomb - I think this PR is ready for review. I'm happy to talk about it. I've summarized the testing status and what I think still needs to be done. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add
noevolve(data-glacier) mode for individual ice sheets in the CISM NUOPC capSummary
This PR enables hybrid ice-sheet configurations in the CISM coupled cap: each ice sheet can independently run either as a fully prognostic CISM dycore ice sheet, or as a
noevolve(data-glacier) ice sheet that reads static topography/thickness from a file and diagnoses ice runoff from the imported surface mass balance.This PR redefines NOEVOLVE mode to have the DGLC behavior and is now triggered in the compset name by either
CISM2%AIS-NOEVOLVE%GRIS-NOEVOLVE or CISM2%AIS-EVOLVE%GRIS-NOEVOLVE
The target use case is to enable running Greenland prognostically while Antarctica is noevolve (or vice versa) within a single GLC component instance — previously this required the separate
dglcdata model, which cannot be mixed with prognostic CISM in one run.When the namelist is left at its defaults, all ice sheets are
prognosticand the behavior is identical to before - so this PR is backward compatible.Architecture
The cap (
glc_comp_nuopc.F90) now builds a per-ice-sheet mode list and aprognostic_indexmapping (NUOPC ice-sheet index → CISM internal instance index), then routes each ice sheet through one of two paths:glc_initialize(CISM dycore)glc_noevolve_init(read statictopg/thk)glc_runglc_noevolve_advance(diagnoseFgrg_rofifrom SMB)export_fields(full CISM fields)import_fieldsglc_io_write_restartglc_noevolve_restart_write/_readCISM internals only ever see the prognostic subset:
glc_InitModfiltersnum_icesheets/icesheet_namesdown to theprognosticentries after reading the namelist, so the dycore, history, and restart machinery are untouched.glc_constantsretains the full list asicesheet_names_total.New module:
drivers/cpl/nuopc/glc_noevolve_mod.F90The new self-contained noevolve implementation is adapted from
cdeps/dglc/dglc_datamode_noevolve_mod.F90) and has full restart support:glc_noevolve_init— reads statictopg/thkvia PIO, computes time-invariant export fields (Sg_area,Sg_topo,Sg_ice_covered,Sg_icemask,Sg_icemask_coupled_fluxes), grabs the SMB import pointer, and reads the noevolverestart file on a continuation run.
glc_noevolve_advance— recomputesFgrg_rofieach coupling step from the importedFlgl_qicewith mass-conserving redistribution of negative fluxes.glc_noevolve_restart_write/glc_noevolve_restart_read— PIO-based restart ofFgrg_rofiwith per-ice-sheet rpointer files.Sg_areais computed as(internal_gridsize / Rearth)**2, matching the dglc convention.Namelist: all input is in
cism_paramsThe refactor places all hybrid configuration in the existing
cism_paramsgroup (one place, for consistency) rather than a separate namelist group. New entries innamelist_definition_cism.xml:icesheet_modes—prognostic(default) ornoevolveper ice sheet -noevolve_datafiles— static topo/thickness NetCDF path per ice sheet (with$DIN_LOC_ROOTdefaults forais8/gris4)global_nx,global_ny— global dimensions of the noevolve data fileinternal_gridsize— grid spacing (m) used for cell-area computationbuildnmldefaultsicesheet_modestoprognosticfor every ice sheet and passesGLC_GRIDso the grid-keyed defaults resolve.Testing:
verified that the following new test worked correctly:
ERS_D_Ly3.f09_g17_ais8gris4.T1850Gagx.derecho_intel.cism_prtodo: *aux_glc - run aux_g;c tests and compare to baseline
todo: Hybrid startup: Greenland prognostic + Antarctica noevolve — verify CISM history contains only Greenland; mediator sees non-zero
Fgrg_rofiover Antarctica; CISM-only fields zero over Antarctica.