The landice/greenland test group is used to run tests with a coarse (20-km) Greenland mesh. and to create customized variable resolution meshes.


FO velocity solution visualized in Paraview.

The test group includes 3 test cases, each of which has one or more steps that are variants on run_model (given other names in the decomposition and restart test cases to distinguish multiple model runs), which performs time integration of the model. There is a fourth test case, mesh_gen, that creates a variable resolution Greenland Ice Sheet mesh, with the step mesh.

The test cases in this test group can run with either the SIA or FO velocity solvers. Running with the FO solver requires a build of MALI that includes Albany, but the SIA variant of the test can be run without Albany. The FO version uses no-slip basal boundary condition. There is no integration step for the test case mesh_gen.

config options

The mesh_gen test case uses the default config options below. The other test cases do not use config options.

# config options for high_res_mesh test case

# path to directory containing BedMachine and Measures datasets
data_path = /global/cfs/cdirs/fanssie/standard_datasets/GIS_datasets/

# number of levels in the mesh
levels = 10

# Bounds of GIS mesh. If any bound is set
# to None, the mesh will use the full extent
# of the gridded dataset.
x_min = None
x_max = None
y_min = None
y_max = None

# distance from ice margin to cull (km).
# Set to a value <= 0 if you do not want
# to cull based on distance from margin.
cull_distance = 10.0

# number of processors to use for ESMF_RegridWeightGen
nProcs = 128

# mesh density parameters
# minimum cell spacing (meters)
min_spac = 3.e3
# maximum cell spacing (meters)
max_spac = 30.e3
# log10 of max speed for cell spacing
high_log_speed = 2.5
# log10 of min speed for cell spacing
low_log_speed = 0.75
# distance at which cell spacing = max_spac
high_dist = 1.e5
# distance within which cell spacing = min_spac
low_dist = 1.e4
# distance at which bed topography has no effect
high_dist_bed = 1.e5
# distance within which bed topography has maximum effect
low_dist_bed = 7.5e4
# Bed elev beneath which cell spacing is minimized
low_bed = 50.0
# Bed elev above which cell spacing is maximized
high_bed = 100.0

# mesh density functions
use_speed = True
use_dist_to_grounding_line = False
use_dist_to_edge = True
use_bed = True


landice/greenland/smoke_test is the default version of the greenland test case for a short (5-day) test run.


landice/greenland/decomposition_test runs short (5-day) integrations of the model forward in time on 1 (1proc_run step) and then on 4 cores (4proc_run step) to make sure the resulting prognostic variables are bit-for-bit identical between the two runs.


landice/greenland/2000m/restart_test first run a short (5-day) integration of the model forward in time (full_run step). Then, a second step (restart_run) performs a 3-day, then a 2-day run, where the second begins from a restart file saved by the first. Prognostic variables are compared between the “full” and “restart” runs at year 2 to make sure they are bit-for-bit identical.


landice/greenland/mesh_gen creates a variable resolution mesh based on the the config options listed above. This will not be the same as the pre-generated 20 km mesh used in the other three test cases because it uses a newer version of Jigsaw. Note that the basal friction optimization is performed separately and is not part of this test case.

The test case performs interpolation of observational data from gridded datasets to the Greenland mesh. This takes care of the peculiarities of the current gridded compilation dataset (, as well as using conservative remapping directly from the high-resolution BedMachine v5 and MeASUReS 2006-2010 velocity datasets. There is a fairly heavy degree of pre-processing done to get the BedMachine and MeASUReS datasets ready to be used here. The pre-processing includes renaming variables, setting reasonable _FillValue and missing_value attributes extrapolating fields to avoid interpolation ramps at ice margins, updating mask values.

Those data files and processing scripts currently live here on Perlmutter: /global/cfs/cdirs/fanssie/standard_datasets/GIS_datasets/. Eventually that pre-processing could be integrated into a new step in COMPASS, or the processed data files could be added to the server on Anvil and downloaded as needed. However, until then, this test case provides a reproducible workflow for setting up Greenland meshes at varying resolutions.