Skip to content

Add ISSM ice sheet model GridComp to Landice#1203

Draft
agstub wants to merge 110 commits intodevelopfrom
feature/agstub/issm-gridcomp
Draft

Add ISSM ice sheet model GridComp to Landice#1203
agstub wants to merge 110 commits intodevelopfrom
feature/agstub/issm-gridcomp

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:

  • ICESURF (ice surface elevation)
  • ICETHICK (ice thickness)
  • ICEVEL (ice flow speed)
  • ICESMB (ice smb on mesh elements, time averaged between ISSM time steps; this is exactly the forcing that ISSM 'feels'; will rename it something different to distinguish mesh and time averaging attributes; also should have units of ice-equivalent [m s-1] while landice is [kg m-2 s-1])
    *These are the main fields/forcing in the underlying PDEs. Other 'requested outputs' can be obtained from ISSM's binary output file by users with the python or Matlab interface if desired.

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.

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.

To Do:

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

@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
agstub and others added 3 commits February 23, 2026 15:15
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