Skip to content

Conversation

@agstub
Copy link

@agstub agstub commented Feb 5, 2026

This Draft PR adds a new gridcomp that runs ISSM, NASA's Ice-sheet and Sea-level System Model. The ISSM gridcomp is a child of the Landice gridcomp. This Draft PR was spurred by discussions in this issue, which provides an overview and outlines some other changes and development issues.

Overview of the new ISSM gridcomp:
Imports: ICESMB (ice surface mass balance) from landice (described below)
Exports: ICEEL (ice surface elevation)
Specifically, ICESMB is passed as an input to ISSM that influences the ice-surface elevation, which is exported as ICEEL.

The ISSM gridcomp does two main things:

  1. It calls (C++) IRF methods that are defined in this branch of GMAO's fork of ISSM. The IRF methods are defined here.
  2. It creates an ESMF_Mesh version of ISSM's internal (unstructured, triangular) mesh for regridding imports/exports between mesh and the attached grid. The gridded versions of fields are then transformed to landice tile space via MAPL_LocStreamTransform.

Currently, output of ICEEL and ICESMB via HISTORY is restricted to the landice tilespace or the attached grid. Note: We are discussing ways to output fields defined on the mesh by creating a new tilespace where each tile corresponds to an element (triangle) of the mesh.

Major changes to landice:

  1. Added ISSM as a child of Landice. Currently, it is the only child of Landice.
  2. Added a new Initialize method that puts the landice tile locstream in the child (ISSM) gridcomp's internal state, and then call's MAPL_GenericInitialize. Landice originally just relies on MAPL_GenericInitialize, so there should be no issues when not running ISSM. Note: The new initialize method is basically a copy of Land gridcomp's Initialize method (with only some comments changed).
  3. Added a new ICESMB export, calculated as ACCUM (net ice accumulation rate) minus RUNOFF (runoff total flux). This is exported to ISSM gridcomp.

Potential issues to fix:
Discussions with @weiyuan-jiang and @mathomp4 suggest we may need to modify CMakeLists.txt for landice (and issm?) to "stub" the build in case the ISSM module is not present.

Related Issues and PRs:
Will update these as progress is made:

A word of caution:
This is my first big draft PR so please don't hesitate to let me know if I did something wrong. I tried to provide ample comments in the new ISSM gridcomp to highlight each step.

@github-actions
Copy link

github-actions bot commented Feb 5, 2026

This PR is being prevented from merging because you have not added one of our required labels: 0 diff, 0 diff trivial, Non 0-diff, 0 diff structural, 0-diff trivial, Not 0-diff, 0-diff, automatic, 0-diff uncoupled, github_actions. Please add one so that the PR can be merged.

@agstub agstub added the Draft label Feb 5, 2026
@gmao-rreichle gmao-rreichle changed the title Feature/agstub/issm-gridcomp Add ISSM ice sheet model GridComp to Landice Feb 5, 2026
@weiyuan-jiang
Copy link
Contributor

To output the fields on Mesh by the way of locstream, this export variable must be in the Mesh space too.ICEEL, Would that be ok? @agstub

@agstub
Copy link
Author

agstub commented Feb 9, 2026

To output the fields on Mesh by the way of locstream, this export variable must be in the Mesh space too.ICEEL, Would that be ok? @agstub

Yes, that should be fine

v11: Build ISSM based on detection of ISSM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants