Articles | Volume 13, issue 6
Model description paper
24 Jun 2020
Model description paper |  | 24 Jun 2020

Description and validation of the ice-sheet model Yelmo (version 1.0)

Alexander Robinson, Jorge Alvarez-Solas, Marisa Montoya, Heiko Goelzer, Ralf Greve, and Catherine Ritz

We describe the physics and features of the ice-sheet model Yelmo, an open-source project intended for collaborative development. Yelmo is a thermomechanical model, solving for the coupled velocity and temperature solutions of an ice sheet simultaneously. The ice dynamics are currently treated via a “hybrid” approach combining the shallow-ice and shallow-shelf/shelfy-stream approximations, which makes Yelmo an apt choice for studying a wide variety of problems. Yelmo's main innovations lie in its flexible and user-friendly infrastructure, which promotes portability and facilitates long-term development. In particular, all physics subroutines have been designed to be self-contained, so that they can be easily ported from Yelmo to other models, or easily replaced by improved or alternate methods in the future. Furthermore, hard-coded model choices are eschewed, replaced instead with convenient parameter options that allow the model to be adapted easily to different contexts. We show results for different ice-sheet benchmark tests, and we illustrate Yelmo's performance for the Antarctic ice sheet.

1 Introduction

The field of continental-scale ice-sheet modeling started with a handful of pioneering models (e.g., Huybrechts et al.1988; Ritz et al.1997; Greve1997a). These models were computationally efficient for the resources available at the time. Typical grid resolutions were on the order of 20–40 km, and generally the shallow ice approximation (SIA) was used to solve the ice dynamics. These classic models have been most useful for long-timescale paleo simulations in part because they are fast but also because they are relatively simple in design, usually relying on low-tech solutions to numerical problems. Most of these models were designed before the era of the high-performance computing cluster, which made it challenging to build models otherwise.

Nowadays, a large number of ice-sheet models exist, supported by a growing and active community of developers. Models today represent a broad spectrum of approaches that incorporate different levels of physical complexity and computational ingenuity. These models include hybrid approaches that heuristically combine the SIA with the shallow shelf approximation (SSA) (e.g., Bueler and Brown2009; Winkelmann et al.2011; Pollard and DeConto2012; Pattyn2017; Quiquet et al.2018) and higher-order approximations (e.g., Goldberg2011; Cornford et al.2013; Hoffman et al.2018; Lipscomb et al.2019), including full Stokes solutions (e.g., Larour et al.2012; Gagliardini et al.2013). Newer models often feature finite-element/finite-volume methods (e.g.,  Larour et al.2012; Gagliardini et al.2013; Hoffman et al.2018) or adaptive mesh refinement (Cornford et al.2013), which allows simulation of complex terrain and very high resolution where it is needed (e.g., at the grounding line in Antarctica). While more complex models are driving advances in our understanding of the physics and relevant processes of ice sheets over a range of timescales, simpler and thus faster methods are still required to understand the evolution of the ice sheets on multimillennial timescales.

Here we introduce the ice-sheet model Yelmo1, which is intended to provide access to complex and robust model physics through an intuitive model design. It is a hybrid ice-dynamics model that is easy to use and configure. We expect that Yelmo will be useful for long-timescale simulations of the continental ice sheets, coupled climate–ice-sheet modeling, ensemble simulations and uncertainty studies, as well as for teaching. Below, we first describe the model design (Sect. 2), followed by the physics (Sect. 3), timestepping approach (Sect. 4) and application programming interface (API; Sect. 5). Then, we present results for several benchmark experiments to validate the model performance (Sect. 6) and simulations of the present-day and glacial Antarctic ice sheet (Sect. 7), followed by the conclusions (Sect. 8).

2 Model design

Yelmo has been inspired and largely derived from classical ice-sheet models that have been used successfully for many years – with the most in common with GRISLI (Ritz et al.1997; Quiquet et al.2018) and SICOPOLIS (Greve1997a, 2019). However, in contrast to many models, Yelmo was designed from scratch to run as a modular library that can be called by other programs rather than as a stand-alone executable. The strict application of this philosophy drove many design choices and allowed us to develop a robust ice-sheet model library with a clear API that would be difficult to develop in an ad hoc way later. Thus, developing this framework was a primary reason to build a new model, rather than continuing the development of other active projects such as GRISLI and SICOPOLIS.

Yelmo is written in Fortran 2003, which provides continuity from previous code bases and supports the fact that clarity and readability of the code are important features. Like SICOPOLIS and other models, we have opted for “low-tech” solutions whenever possible, meaning that internally coded routines are preferred, and, thus, the external dependencies of the model are kept to a minimum. This ensures that the algorithms used remain accessible and easily changeable. Nonetheless, Yelmo has two key dependencies: the NetCDF library for convenient community-standard input/output capability and the Library of Iterative Solvers for linear systems (, last access: 2 May 2020) (Lis, Nishida2010), which is used for solving the elliptical SSA equations. The latter can be compiled with OpenMP parallelization active, which can speed up this computationally intensive step.

Yelmo has been designed to be user friendly (i.e., straightforward to understand), accessible, portable and adaptable. These features were facilitated by the design choice to separate what we call the “model accounting” from the model physics itself and by following an object-oriented approach. There are no global variables in Yelmo (except for a few global constants related to the general physics of the planet being simulated), which means that variables and parameters are saved together in containers (called derived types in Fortran) specific to each of the main Yelmo components, such as dynamics or thermodynamics, as described in the sections below. These containers make up the individual components of the overall Yelmo object (itself a container) that contains all of the variables, parameters and information needed to simulate a given domain of the ice sheet. Multiple instances of the Yelmo object can therefore be defined in a program (e.g., one Yelmo-object instance for Greenland and one for Antarctica), and each one will operate fully in isolation from the others. This is the model accounting, which is of a specific design built into Yelmo and is thus the only part not easily portable to other models.

The model physics, meanwhile, consists of subroutines that are fully portable and, whenever possible, only rely on native data types (e.g., scalar, vector and array). In other words, the specific, non-portable design structure of the Yelmo object does not contaminate the physics subroutines, since the necessary variables and parameters are always passed as arguments. This approach requires that all input and output to subroutines must be defined as arguments. Each argument must further always be given an intent characteristic (in Fortran, the intent of an argument can be one of IN, OUT or INOUT), which ensures that only the variables destined for output from the routine can be modified inside it. This approach not only aides debugging and provides programmatic safety but also provides a clear blueprint to users of what each subroutine does. Most importantly, the subroutines are thus fully self-contained and can be used in other programs and contexts, as long as the correct arguments can be provided.

Concerning the model accounting, the Yelmo object contains all parameters and variables needed to run a given domain. For clarity and convenience, it has been divided into four components: topography, dynamics, material properties and thermodynamics (Fig. 1). Each component has an associated set of functions to load parameters, allocate and initialize the variables, update the variables (i.e., the actual physics calculation step), and finally terminate the instance of the component at the end of the program. This pattern is followed for all four components and represents the component-level API.

Figure 1Overview of the Yelmo model structure highlighting state variables in the four components: topography, dynamics, material and thermodynamics, as well as the boundary conditions required to run the model. The thick black border for boundary variables indicates that these fields are never modified internally by Yelmo, while the components with a thin black border or dashed line are allowed to be modified depending on the context. When, for example, the topography is updated (dashed line), no other components are allowed to be modified (solid lines).


Each component contains variables and parameters necessary for the calculation of its specific physics; however each component also relies on the variables defined in other components since the ice sheet is a highly coupled and nonlinear system. The benefit of the somewhat artificial division of components made here is that the use of INTENT statements ensures that variables of a given component can only be modified in the corresponding module. For example, when the update subroutine of the topography module is called, only the object containing topography variables is defined as INTENT=INOUT, while the objects containing dynamics, material and thermodynamics variables are all defined as INTENT=IN. Analogous to the design of the physics subroutines, the use of intent statements here not only makes the model blueprint clear but also enforces consistency with the overall design of the Yelmo structure. The hope is that this will not only make the model more user friendly but that it will also naturally lead to more disciplined model development in the future.

In addition to the four components that contain prognostic and diagnostic model variables, the Yelmo object includes a boundary component, which defines all fields that Yelmo requires as input from external sources (Fig. 1). These fields can be obtained from other coupled models or simply by loading data; however Yelmo does not make any assumptions about their source. The boundary component is defined as INTENT=IN in all modules, so that Yelmo does not have the right to modify them internally. This conceptual isolation of the ice-sheet model serves to ensure that coupling with other models is as straightforward as possible, because it is clear by design which variables should be provided to Yelmo as boundary conditions. This is a key feature of Yelmo in comparison with many other models.

Yelmo also makes use of a working precision variable, which allows for the model to be compiled with any real precision. For most applications, single precision (32 bits) is sufficient. Double precision (64 bits) gives equivalent results for the tests we have made. Nonetheless, this choice is left open to the user.

In terms of model physics, each component of Yelmo was built to work independently, in the sense that a given component is agnostic to the methods used to calculate variables from other components. For example, the temperature and velocity fields are used by the material component without any knowledge about the physics and numerical approximations behind them. This means that sometimes simplifying assumptions cannot be used, even though they may be valid in some cases (such as assuming that the strain rate is only due to SIA terms where the ice sheet is frozen to the bed). However, the benefit is that typically the most general solutions possible have been implemented for each component. Thus, when the physics of one component is changed or upgraded, it is likely that the other modules will not require any modification.

Grid information is also stored in the main Yelmo object, and a single grid is defined for use with all components. Like many ice-sheet models, Yelmo uses the Arakawa C-grid staggering approach (Arakawa and Lamb1977) extended to 3D, as shown in Fig. 2. Scalar variables, such as temperature, are defined at the cell centers, which in Yelmo are designated as “aa-nodes”. Velocity components and gradients are calculated on cell edges (“ac-nodes”), and scalar coefficients, like diffusivity in the SIA approach, are calculated on cell corners (“ab-nodes”). The specific numerical discretization of the finite difference equations largely follows the approach of Macayeal (1997). The advantage of this approach is that it benefits from the natural staggering that occurs when calculating gradients (e.g., the surface slope is naturally defined on the ac-nodes), but it also results in greater numerical stability of the model (Macayeal1997).

Figure 2Yelmo staggered grid definition and nomenclature. The (a) horizontal grid assumes constant resolution in the x and y directions, while in the (b) vertical variable resolution is allowed. With any given cell defined as a 3D box, scalar variables are calculated on cell centers (aa-nodes), velocities are calculated on cell faces (ac-nodes, edges in 2D), and scalar coefficients are calculated on cell edges (ab-nodes, corners in 2D). Figure design adapted from Hoffman et al. (2018).

Yelmo requires an evenly spaced Cartesian grid in the horizontal direction, while the vertical component follows a classic sigma-coordinate system (Greve and Blatter2009). The vertical axis ζ represents the relative height within the ice sheet, running from ζ=0 at the ice-sheet base to ζ=1 at the ice-sheet surface:

(1) ζ ( z ) = h ( z ) / H ,

where z is the elevation relative to present-day sea level, h(z) is the ice thickness up to the elevation z within the ice sheet and H is the total ice thickness. Yelmo can be defined with any specified number of vertical grid points, which can be unevenly spaced. Typically, we have set nz=20, and the ζ axis is defined with higher resolution near the base and surface of the ice sheet, which is important for resolving thermodynamics and ages accurately. Use of the sigma-coordinate system simplifies the numerics of an evolving domain in the vertical direction and inherently results in higher resolution for grid points with less ice thickness (Greve and Blatter2009). Vertical velocities are calculated on ac-nodes in the vertical and aa-nodes in the horizontal, while horizontal velocities are calculated on ac-nodes in the horizontal and aa-nodes in the vertical. Boundary conditions in a vertical column are applied directly at the ice base and ice surface, which correspond to ac-nodes (see Fig. 2).

3 Model physics

Yelmo solves for two prognostic variables using coupled equations of mass and energy conservation: the ice thickness (2D field) and ice temperature (3D field). Velocity (3D vector field) is diagnosed from approximations of ice flow assuming a nonlinear flow law. These equations are described in the subsections below, along with additional considerations related to each component. For more details on the derivation of the equations, thorough explanations can be found in various references (Greve and Blatter2009; Cuffey and Paterson2010) and thus are not repeated here.

3.1 Topography

The evolution of the ice thickness in the model is determined from mass conservation:

(2) H t = - H u + a ˙ + b ˙ g + b ˙ f - c ˙ ,

where H is the ice thickness, u=u,v is the depth-averaged horizontal velocity, a˙ is the surface mass balance, b˙g and b˙f are the basal mass balance for grounded and floating ice, respectively, and c˙ is the calving rate at floating ice margins. In Yelmo, in order to obtain more accurate mass balance accounting, the advection of ice and source contributions are treated separately as follows. First, a forward Euler explicit method (or optionally an upwind implicit method) is used to solve for the ice thickness without accounting for a˙, b˙g, b˙f or c˙. The depth-averaged horizontal velocity is obtained from the dynamics component from the previous iteration (see Timestepping below). Next the mass balance terms a˙, b˙g and b˙f are applied. It should be noted that the basal mass balance of floating ice is a boundary variable for Yelmo (i.e., it is obtained externally and passed to Yelmo), while the basal mass balance of the grounded ice is calculated internally as part of the thermodynamics solver (see Thermodynamics section below).

Yelmo also includes special treatment of grid points at the floating margin of the ice sheet, by making a distinction between ice-covered grid points that are totally and partially filled following Albrecht et al. (2011) and Lipscomb et al. (2019). This is done in a relatively simple, yet effective way to avoid artificially thin ice thickness at the ice margin. For each floating ice-covered grid point that has an ice-free neighbor, the reference ice thickness of the margin point (Href) is defined as the minimum thickness of the direct, ice-covered neighbors. This represents the minimum ice thickness for which the cell can be considered completely ice covered. The fraction of ice cover is then defined as fice=minH/Href,1. Whenever fice<1, the grid cell is considered dynamically inactive, which ensures zero ice flux through the downstream edge of a partially filled margin cell. In this way, the ice cell can be filled with ice from upstream, and when the threshold of fice=1 is reached, the ice shelf can advance.

In the final mass conservation step, calving c˙ is treated at the floating ice margins. Currently, a simple threshold method has been implemented, as well as a threshold+flux method (Peyaud et al.2007). In both methods, the calving rate applied to the ice sheet is defined following Lipscomb et al. (2019):

(3) c ˙ = H ref - H τ c ,

where τc is the characteristic calving time, usually set to 1–10 years, and Href is the margin ice thickness as defined above. Setting τc to higher values facilitates ice-shelf growth and thus grounding-line advance in transient, glacial simulations but has little impact on the steady-state distribution of ice shelves for the present day. This calving rate is applied only when the ice thickness of ice margin points is below a threshold value (simple threshold method) or when the ice thickness is below a threshold value and the upstream flux is not sufficient to return the ice thickness to above the threshold (threshold + flux method). For paleo simulations the latter is our preferred method, as it allows for more robust ice shelf advance (Peyaud et al.2007).

Once the ice thickness has been updated, Yelmo diagnoses whether the ice should be grounded or floating. To facilitate this step, the height above flotation as measured in ice thickness, i.e., how close a grid point is to the Archimedes flotation criterion, is calculated on each aa-node:

(4) H g = H - ρ sw ρ max z sl - z b , 0 ,

where ρ is the ice density and ρsw the seawater density, and zsl and zb are the boundary fields of sea level and bedrock elevation, respectively. Hg can thus be positive, zero or negative. When Hg is positive, the ice thickness exceeds the flotation criterion and is considered grounded, while when Hg is zero or negative, the ice is considered floating.

Yelmo also calculates the grounded fraction of each grid point, fg. On aa-nodes, fg is only assigned binary values to maintain consistency with the overall grid definition: zero when Hg≤0 or one when Hg>0. However, on ac-nodes, the values of fg,acx and fg,acy are determined by linearly interpolating Hg from the two bounding aa-nodes. When both bounding aa-nodes are positive fg,ac=1, and when both are negative fg,ac=0. When one aa-node is positive (Hg+) and one aa-node is negative (Hg-), the grounded fraction on the ac-node is determined from linear interpolation:

(5) f g , ac = H g + ( H g + - H g - ) .

Alternatively, it is possible to calculate fg via subgrid bilinear interpolation of Hg to intermediate points to determine the grounded area fraction. However, this operation is more computationally intensive, and we find that in practice, the simple linear interpolation method is sufficient.

The surface elevation (zs) is calculated following Pattyn (2017) as

(6) z s = max z b + H , z sl + ( 1 - ρ ρ sw ) H .

This approach ensures that the surface elevation solution is consistent with the Archimedes flotation criterion on aa-nodes.

The remaining tasks of the topography component are to diagnose other useful topographic characteristics, such as surface and ice thickness gradients (on ac-nodes) and topographic masks.

3.2 Material

The material component of Yelmo handles the calculation of the rate factor, the strain rate tensor and effective strain rate, the effective viscosity, and, optionally, the age of the ice. Essentially, the material variables make the link between thermodynamics and dynamics, since the rate factor depends on temperature, and the strain rate depends on velocity. No distinction is made between the type of approximation used to solve the dynamics here – rather all equations follow from the more general hydrostatic approximation (Greve and Blatter2009).

The effective viscosity, used to determine strain heating in the thermodynamics component, is calculated as

(7) η = 1 2 ε ˙ 2 1 - n 2 n A - 1 / n ,

where ε˙ is the effective strain rate, n is the Glen's Flow law exponent (Glen1955; Greve and Blatter2009), typically set to n=3, and A is the rate factor. The effective strain rate is given by the second invariant of the strain rate tensor (ε˙ij),

(8) ε ˙ = 1 2 ε ˙ ij ε ˙ ij 1 2 ,

and the strain rate tensor itself, following index notation, is

(9) ε ˙ ij = 1 2 u i x j + u j x i , i , j = 1 , 2 , 3 .

The rate factor, Ax,y,z, can be prescribed to be a constant value or calculated as a function of ice temperature following an Arrhenius equation:

(10) A T = E f A 0 e - Q a / R T .

Here R is the ideal gas constant; A0 and Qa are the temperature-dependent rate factor coefficient and activation energy, respectively (see Greve and Blatter2009). Ef is a so-called enhancement factor, which is used to approximate the effect of anisotropic flow. In Yelmo, it is possible to specify different values of the enhancement factor for different flow regimes (shear, stream and shelf). The shelf value is prescribed anywhere ice is floating, while the inland value of Ef is a weighted average between the shear and stream value with the weighting given by a diagnosis of the vertical shearing fraction at any given point:

(11) f shr = ε ˙ xz 2 + ε ˙ yz 2 ε ˙ 2 .

Typical values of the enhancement factor for the shearing, streaming and shelf regime are Eshr=3.0, Estrm=1.0 and Eshlf=0.7, respectively (Ma et al.2010).

In addition, it is possible to track the deposition time (i.e., age) or other conservative tracers of the ice using an Eulerian tracer advection model. The general 3D advection equation of a conservative variable X,

(12) X t = - u X x - v X y - w X z ,

is solved with a second-order, upwind explicit method. The ice surface boundary condition must be imposed. When tracing the ice deposition time, the ice surface boundary condition is X(t)=t. At the ice base, an initial deposition time is prescribed to be several thousand years before the start of the simulation; however this plays little role in the resulting vertical profile of deposition times. When ice is melting at the base b˙<0, the following flux boundary condition is defined (Rybak and Huybrechts2003):

(13) X t = - u b X x - v b X y - b ˙ X z .

Basal freeze-on is assumed to be negligible. It is well known that Eulerian solvers lose accuracy towards the base of the ice sheet, and therefore this method can only be considered to give a first-order estimate of a conservative tracer (Greve et al.2002; Rybak and Huybrechts2003). It can nonetheless be useful for diagnosing the age of ice, in order to know the timescale of different dynamic properties or to, e.g., impose an age-dependent enhancement factor (Greve1997b).

3.3 Dynamics

The Yelmo dynamics component is currently representative of a “hybrid” class of ice-sheet model, treating different modes of ice deformation via a combination of the simplifying shallow-ice and shallow-shelf approximations (SIA and SSA, respectively). In the following, the description of the dynamics equations follows closely the notation and definitions of Greve and Blatter (2009) and Pollard and DeConto (2012).

Yelmo treats the horizontal velocity ux,y,z and vx,y,z as the sum of transport via internal shear (ui, vi) and basal sliding (ub, vb):

(14) u = u i + u b v = v i + v b .

Here, and analogously for v, ub(x,y) is vertically constant, and uix,y,zb=0, where the subindex “b” here represents the basal boundary of the ice sheet. It also holds that in the vertical average (denoted by a bar), u=ui+ub. To calculate ui and vi, Yelmo uses zero-order SIA equations:

(15) u i ( z ) = - 2 | τ d | ( n - 1 ) z b z A z s - z n d z τ d , x v i ( z ) = - 2 | τ d | ( n - 1 ) z b z A z s - z n d z τ d , y ,

where ui(z) and vi(z) are the horizontal components of the SIA velocity as a function of depth at a given location, A is the material rate factor of the ice, which is obtained from the material component (Eq. 10), n is the Glen's Flow law exponent (Glen1955; Greve and Blatter2009), and τd=τd,x,τd,y=ρgHzs is the driving stress. In the horizontal plane, the term in brackets is calculated on the ab-nodes for stability and improved mass conservation (Huybrechts et al.1996), and then it is staggered onto the ac-nodes where it is multiplied with the driving stress. In the vertical plane, the horizontal velocities are calculated at the vertical center of each grid point (aa-nodes). Following Bueler and Brown (2009), we use the SSA solution to calculate the transport implied by sliding at the base (i.e., in regions of ice streams and floating ice shelves):

(16) x H η d 4 u b x + 2 v b y + y H η d u b y + v b x = τ d , x - τ b , x y H η d 4 v b y + 2 u b x + x H η d u b y + v b x = τ d , y - τ b , y ,

where τb,x,τb,y=-βub,vb (or in vector notation τb=-βub) is the basal stress due to friction. The basal friction coefficient β is set to zero for floating ice shelves and can otherwise be set to a constant value or follow another user-defined formulation (power law, regularized Coulomb, etc.), depending on the context (see basal friction description below for details). The depth-averaged (2D) effective viscosity, which is only used for solving the SSA dynamics, is defined as

(17) η d = 1 2 B ε ˙ d 2 + ε ˙ 0 2 1 - n 2 n

B=1HzbzsA-1/ndz is the vertically averaged ice hardness, ε˙d is the 2D effective strain rate and ε˙02 is a small regularization factor for avoiding a potential singularity when velocity gradients are zero. The 2D effective strain rate is calculated as a reduced form of the second invariant of the strain rate tensor (Eq. 9) that does not include vertical shear terms:

(18) ε ˙ d 2 = u b x 2 + v b y 2 + u b x v b y + 1 4 u b y + v b x 2 .

In Yelmo, ε˙d is only used for calculating ηd, while the 3D effective strain rate is calculated from the full strain rate tensor in the material component (see Sect. 3.2). Calculating the full tensor during the iterative SSA solution procedure would be much more computationally expensive, while the 2D effective strain rate is already sufficient for the vertically integrated SSA equations (Pollard and DeConto2012).

The stress boundary condition imposed at the floating ice front, following Winkelmann et al. (2011) and Greve and Blatter (2009), is

(19) H η d 4 u x + 2 v y n x + H η d u y + v x n y = 1 2 ρ g H 2 - 1 2 ρ sw g H o 2 n x H η d 4 v y + 2 u x n y + H η d v x + u y n x = 1 2 ρ g H 2 - 1 2 ρ sw g H o 2 n y .

The depth of the seawater up to the flotation depth, Ho, is defined as Ho=minmaxzsl-zb,0,ρρswH. This is the depth of the ocean directly adjacent to the ice sheet, which acts to reduce the outward pressure at the floating ice margin. In contrast to Winkelmann et al. (2011), this boundary condition is not currently used in Yelmo for grounded ice, where Eq. (16) applies.

The SSA equations are nonlinear, elliptical, partial differential equations with nonlocal solutions. Yelmo uses Lis for the numerical solution using the biconjugate gradient method. The subroutine to discretize the equations and to call Lis was ported from the latest SICOPOLIS version 5-dev (Greve2019; Rückamp et al.2019) and subsequently modified for model design choices in Yelmo. We use a Picard iteration method to account for the nonlinear dependence of the effective viscosity (ηd) and, potentially, the basal friction coefficient (β) on velocity. Convergence of the SSA solution is tested using the L2 relative error norm (Gagliardini et al.2013):

(20) δ u , v = 2 u 1 - u 0 2 + v 1 - v 0 2 u 1 + u 0 2 + v 1 + v 0 2 ,

where (u1,v1) and (u0,v0) are the velocity solutions for the current and previous iterations, respectively, and the sum is made over all grid points with nonzero velocity being considered by the SSA solver. By default, we consider a convergence limit of δu,v=10-2, which is typically achieved within 1–10 iterations, depending on the context. This limit can be specified by the user.

The result of solving the above equations is the hybrid, 3D horizontal velocity field (u, v). The vertical velocity w can then be diagnosed by applying a kinematic boundary condition at the base and integrating the continuity equation for incompressible flow (Greve and Blatter2009), from zb to z,

(21) w ( z ) = b ˙ - u b z b x + v b z b y - z b z u x + v y d z .

The vertical velocity is naturally defined on the ac-nodes in the vertical plane, analogous to the horizontal velocity in the horizontal plane. The above dynamics update results in a 3D hybrid velocity field (u, v, w).

Basal frictional stress, as it appears in the SSA elliptical equations, is defined as

(22) τ b = - β u b ,

where β represents the basal friction coefficient (with units of Pa yr m−1), which can be defined in several ways. β is prescribed to be zero for floating ice and otherwise can be set to a constant or a spatially varying field, and, depending on the formulation used, it can depend on velocity itself. For this reason, we also define cb as the bed friction coefficient, which we consider to only provide information about conditions at the physical bed (the nature of basal sediments, basal hydrology, effective pressure, etc.), independent of velocity. In the model, therefore, β is defined as

(23) β = c b f u b .

Thus in all formulations implemented in Yelmo, the term f(ub) has units of years per meter (yr m−1), and the coefficient cb has units of pascals (Pa), which helps to facilitate its physical interpretation.

Most commonly, β is defined using a linear (e.g. Quiquet et al.2018), power-law (e.g. Pattyn2017), pseudo-plastic power-law (e.g. Aschwanden et al.2013) or regularized-Coulomb (Joughin et al.2019) formulation. The linear and power-law formulations are contained within the pseudo-plastic power-law formulation, so only the latter and the regularized-Coulomb formulation are needed to represent all four cases.

The pseudo-plastic power-law formulation (Schoof2010; Aschwanden et al.2013) is

(24) τ b = - c b u b u 0 q u b u b ,

and thus β=cbu0-qubq-1, with the pseudo-plastic exponent q0,1 and threshold speed u0. This expression results in purely plastic friction for q=0, linear friction for q=1 and power-law friction for 0<q<1. With q=1 and u0=1, for example, β=cb, and friction scales linearly with velocity. To obtain the power-law formulation used in the original MISMIP experiments (Pattyn et al.2012), the following parameter values can be prescribed: q=1/3, u0=1 m yr−1 and cb=3.165176×104 Pa.

Alternatively, the regularized Coulomb law (Schoof2005; Brondex et al.2019; Joughin et al.2019) is defined as

(25) τ b = - c b u b u b + u 0 q u b u b ,

and thus β=cbub+u0-qubq-1. Again q is the nonlinear exponent, and u0 is an empirical threshold speed that dictates the transition from Coulomb friction when cavitation effects dominate at the base (typically for a hard bed) to Coulomb-plastic friction, when friction saturates (typically for weak till). When u0=0 or q=0, purely plastic friction is recovered.

The merits and physical basis of the different possible friction formulations and nonlinear exponents are still under active debate (Aschwanden et al.2013; Stearns and van der Veen2018; Brondex et al.2019; Joughin et al.2019), and all of the above formulations are used in ice-sheet modeling today. However, given the large uncertainty in boundary conditions provided to an ice-sheet model, which include bedrock topography, sediment composition and distribution, basal hydrology and its temporal evolution, etc., it is clear that the use of any formulation will rely on empirical tuning. Also, as noted above, different choices for the friction exponents or threshold values can reduce a given formulation to another. Although modeling studies have shown that all four cases above can produce realistic velocity fields of the present-day ice sheets (e.g. Goelzer et al.2018; Joughin et al.2019), it remains to be seen how the choice of friction formulation may impact transient changes in the ice sheet.

For these reasons, we have chosen to implement the friction formulations in the most general way possible in the code, with essentially two free parameters: q as a nonlinear exponent and u0 as a threshold speed. Meanwhile, cb is a 2D field that can be set to a constant value or a spatially and/or temporally varying field based on, e.g., whether the ice is frozen to the bed or temperate, on till strength (Bueler and van Pelt2015), effective pressure, or other user-defined criteria. As mentioned above, a Picard iteration method is used to solve for basal friction, ηd and the SSA velocity solution until convergence of the velocity solution is reached.

β and cb are initially defined on aa-nodes. cb is naturally defined on the grid center, while when β=f(ub), the velocity components that are defined on ac-nodes must be staggered to the grid center. Once β has been calculated using one of the above formulations, it must be staggered to the ac-nodes for use in the elliptical solver. For purely floating points (i.e., fg=0 at both bounding aa-nodes) βac=0, and for purely grounded points, βac is the average of the two neighbors. At the grounding line, Yelmo allows several options to handle staggering. These include simple averaging, taking the upstream value of β, taking the downstream value of β or taking the weighted average based on the grounded fraction of the ac-node.

3.4 Thermodynamics

Thermodynamics in Yelmo is treated in the classical way by solving the following energy conservation equation:

(26) T t = k ρ c 2 T z 2 - u T x - v T y - w T z + Φ ρ c ,

where k and c are the ice thermal conductivity and specific heat capacity, respectively. The evolution of the ice temperature T is driven by vertical diffusion, horizontal and vertical advection, and internal strain heating due to ice shearing, Φ, where

(27) Φ = 4 η ε ˙ 2 .

Horizontal diffusion is assumed to be negligible (Greve and Blatter2009). At the air–ice interface (i.e., the ice surface), the ice temperature is prescribed via the input boundary temperature field Ts, limited to a maximum value of T0=273.15 K. At the base of floating ice, the ice temperature is prescribed to be the expected freezing temperature of seawater as a function of depth (Jenkins1991), except near the grounding line, where the temperature is prescribed to be the pressure melting point of ice. At the base of grounded ice, when the ice temperature is below the pressure melting point, the vertical gradient of temperature is prescribed as T/z=-Qgeo/k, where the geothermal heat flux (Qgeo) is provided as a boundary field to Yelmo. If the temperature at the ice base reaches the pressure melting point, then the temperature is set to the pressure melting point, and the basal mass balance is diagnosed as (Cuffey and Paterson2010):

(28) b ˙ g = - 1 ρ L Q b + k T z | b + Q geo ,

where b˙g is the basal mass balance of grounded ice (negative for melting), L is the latent heat of fusion for ice, Qb is the basal heat production to due sliding and Tz|b is the ice temperature gradient at the base. Yelmo calculates b˙g, which is a model output, in contrast to b˙f (basal mass balance of floating ice), which is prescribed in Yelmo as a boundary condition. Once the ice base is temperate (i.e., at the pressure melting point), it will remain so as long as Wtil-ρwρb˙gΔt>0, where b˙g is used from the previous timestep, and Wtil is the water layer thickness in the till beneath the ice sheet. In other words, if it is expected that an energy deficit will result in freeze-on of the total available liquid water at the ice base, then the point is treated as a non-temperate ice point.

Yelmo simulates the evolution of the basal water layer thickness in the till following Bueler and van Pelt (2015):

(29) W til t = - ρ ρ w b ˙ g - C d ,

where Cd is the prescribed till drainage rate, usually set to Cd=0.001 m yr−1. Wtil is limited to the range 0WtilWtil,max, where maximum is usually set to Wtil,max=2 m. This approach allows for Wtil to maintain consistency with the thermodynamic state of the ice sheet at all times. It does not include horizontal transport, as this could potentially be treated by an external basal hydrology model. It is also possible to disable calculation of Wtil inside of Yelmo and instead consider it as a boundary variable. However, given the adaptive timestepping approach used by Yelmo, we have found that updating Wtil internally at each timestep helps to avoid artificial oscillations that may develop otherwise when the thermodynamics and basal friction are coupled.

Equation (26) is solved with an implicit method in the vertical direction, while the horizontal advection is solved separately applying an explicit, second-order upwind forward Euler method. This separation allows the energy conservation in the vertical to be solved as a 1D column model. The discretization of vertical diffusion follows the form presented by Hoffman et al. (2018), while the discretization of vertical advection follows a second-order central difference scheme. A given column of grid points consists of temperatures defined on the grid-centers (aa-nodes) and boundary values defined directly at the surface and base of the ice sheet.

4 Timestepping

Yelmo makes use of a predictor–corrector (PC) method combined with adaptive timestepping to balance speed and stability, following the method developed by Cheng et al. (2017). This approach requires calculating the ice thickness twice per timestep, while all other variables can be calculated only once per timestep. Applying a PC method significantly improves the accuracy of the solution compared to a simple forward Euler timestepping method. Furthermore, it facilitates the calculation of a stability metric at each timestep that can be used to evaluate model performance and forms the basis of a robust adaptive timestepping approach (Cheng et al.2017). A given timestep therefore consists of three parts:

  1. Predictor step. The topography component (namely the ice thickness) is predicted using the dynamics, material and thermodynamics solutions from previous timesteps.

  2. Update step. Using the predicted topography solution, the dynamics, material and thermodynamics components are then also updated.

  3. Corrector step. Using the updated dynamics, material and thermodynamics component solutions, the topography component is finally calculated again, starting from the ice thickness solution of the previous timestep.

In Yelmo, the predictor step is calculated via the second-order Adams–Bashforth (AB) method (Cheng et al.2017),

(30) H n + 1 = H n + Δ t n β 1 f H n , u n + β 2 f H n - 1 , u n - 1 ,

where H is the predicted ice thickness, Δt is the timestep, and β1=1+ζt2, β2=-ζt2 and ζt=ΔtnΔtn-1. The labels n, n−1 and n+1 indicate the current, previous and next timestep, respectively. Here, fH,u is shorthand for Ht as a function of the ice thickness and depth-averaged horizontal velocity field, noting that u is also a function of the ice thickness, material and potentially thermodynamic state of the ice sheet. For this algorithm, β1, β2 and ζt are timestep dependent, but the subscript n has been dropped for clarity. Once Hn+1 has been calculated, the other components are updated, and finally the corrector step is then calculated via the semi-implicit Adams–Moulton (SAM) method (Cheng et al.2017),

(31) H n + 1 = H n + Δ t n 2 f H n + 1 , u n + 1 + f H n , u n ,

where Hn+1 is the corrected ice thickness for the next timestep.

For the AB–SAM timestepping method, Cheng et al. (2017) derived the following expression for the leading term of the local truncation error:

(32) τ n + 1 = ζ t H n + 1 - H n + 1 3 ζ t + 3 Δ t n .

The local truncation error is valuable for diagnosing the performance of the model and can be used as an indicator of numerical stability. For a small enough timestep, Hn+1 and Hn+1 should be indistinguishable, and τn+10. However, as the timestep increases, the local truncation error will also increase.

An adaptive timestepping approach based on a proportional-integral (PI) controller method is therefore used to maximize the timestep while maintaining the truncation error below a specified threshold (Cheng et al.2017; Söderlind and Wang2006). Defining the maximum truncation error over all grounded grid points as η=max|τ|, the next timestep is calculated using the so-called PI4.2 controller (Söderlind2002):

(33) Δ t n + 1 = ϵ η n + 1 k I + k p ϵ η n - k p Δ t n ,

where ϵ is the target tolerance, and kI=2/10 and kp=1/10 are reasonable control parameters for the second-order AB–SAM timestepping method used here (Söderlind and Wang2006). This algorithm ensures that the timestep increases when η<ϵ and decreases when η>ϵ. The use of both ηn+1 and ηn helps to avoid rapid fluctuations in the timestep, which improves model stability and results in a predictable timestep size as a function of the target tolerance.

For practical purposes, the timestep is further treated as follows. The timestep must be larger than a user-prescribed minimum value but smaller than the Courant–Friedrichs–Lewy (CFL) 2D advective limit:

(34) Δ t cfl = C cfl max u Δ x + v Δ y - 1 ,

where the maximum is taken over all grid points and Ccfl=1.0. Furthermore, the adaptive timestep is adjusted to ensure that the model stays synchronized with the frequency that Yelmo is being called externally. We found that the latter requirement often results in highly uneven timestepping; e.g., if Yelmo is called with a timestep of Δttot=2.0 yr and the first adaptive timestep is determined to be Δt1=1.9 yr, then the second timestep would likely be Δt2=0.1 yr. To avoid this possibility and increase stability, the condition is imposed that if any given adaptive timestep is predicted in the range of 0.5Δttot<Δt<Δttot, then Δt=0.5Δttot. In this example, this condition would ensure that Δt1=Δt2=1.0 yr, unless Δt2 needed to be smaller for stability. Finally, if the maximum local truncation error η is larger than a specified threshold for any given integration, then the integration is discarded and repeated with a progressively smaller timestep until η diminishes and stability is restored, or the timestep reaches the minimum allowed value.

5 Model interface

The Yelmo model interface is designed to be clear and simple but also flexible. In its essence, there are three main model functions: yelmo_init to initialize the model variables, yelmo_update to perform the ice-sheet model calculations for a given timestep and yelmo_end to terminate the Yelmo object (free it from memory).

The first subroutine, yelmo_init, is used to load parameters, initialize variables in memory (i.e., allocate arrays) and, optionally, to initialize the topographic state variables (ice thickness, masks, etc.). No other variables are initialized here in the sense of being populated with data values, which is left to the user. An additional, optional helper function can be used, yelmo_init_state, which populates the remaining model variables in the material, thermodynamics and dynamics components. This initialization step is separated from that of topography because in practice, sometimes boundary variables (e.g., surface temperature) need the surface elevation as input in order to be determined. In contrast, the remaining variables, namely dynamics and thermodynamics, often rely on boundary variables to be initialized. Thus, a typical initialization sequence for a stand-alone ice-sheet model simulation could first call yelmo_init, then load or calculate boundary variables and then call yelmo_init_state to finalize the initialization of all Yelmo variables. After this sequence, the Yelmo state should be consistent with running the model for one timestep with the prescribed boundary conditions and a fixed topography. If the model will be initialized from a restart file, then these data are loaded in each case based on parameter choices.

The next subroutine, yelmo_update, is used to advance the model state to a new timestep. Any modifications to boundary variables are left to the user externally, and Yelmo expects that the boundary conditions are valid for this timestep. The subroutine does not take any arguments to modify the model behavior – rather, all model configuration choices are specified in the parameters of the Yelmo object itself. These are initially loaded from a parameter file in the call to yelmo_init; however, it is possible to modify any parameter values during simulations, allowing for changing the model configuration transiently depending on the experimental setup. An additional optional subroutine, yelmo_update_equil, is available to facilitate equilibration. This routine effectively calls yelmo_update for a specified time window with unchanging boundary conditions and allows for the temporary modification of some key model parameters (such as the maximum allowed adaptive timestep and the maximum allowed SSA velocity).

The last subroutine, yelmo_end, simply removes the Yelmo object from memory (i.e., all domain variables are deallocated). After calling yelmo_end, it is possible to reinitialize the Yelmo object via yelmo_init, for example, in order to test a different grid resolution or other configuration.

There are several input/output routines defined for Yelmo. yelmo_write_init can be used to initialize a NetCDF model output file with the axes of model dimensions defined from the Yelmo object and writing of static fields like domain masks. The writing of model output for individual timesteps is left to the user to maintain flexibility, as most programs require specific fields to be written (examples can be found in the test programs included with the code – see further below). In addition, yelmo_restart_write will create a NetCDF file and write all Yelmo fields as a snapshot, which can be used to restart the model (loading of a restart file can be activated with parameter choices).

As mentioned above, given the object-oriented approach, it is possible to run multiple Yelmo domains in one program. Each domain must be initialized separately via yelmo_init and the variable fields populated with initial values; then separate calls to yelmo_update are needed during timestepping, and finally each object should be terminated at the end of the program via yelmo_end. With this structure, minimum modification of another model, like a global climate model is needed, to incorporate online ice-sheet evolution or to simulate an ensemble of ice sheets in one program. Furthermore, all fields are directly accessible within the main program to facilitate coupling. For example, the 2D array of surface elevation of the topography component of the Yelmo Antarctica domain could be referenced as yelmo_ant%tpo%now%z_srf. While it is clear that the nesting of several containers (derived types) results in a rather long variable reference, it is unambiguous and straightforward to use.

6 Model validation and benchmarks

Yelmo has been tested against several ice-sheet model validation tests and benchmarks in wide use today. These include the Halfar dome experiment (Halfar1983; Bueler et al.2005), the EISMINT1 (Huybrechts et al.1996) and EISMINT2 (Payne et al.2000) model intercomparison experiments that test uncoupled and coupled dynamics–thermodynamics, respectively, and MISMIP (Pattyn et al.2012) for ice-shelf dynamics, among others. By design, many of these experiments allow isolation of specific model features for testing. When the model passes more complex benchmark tests, the simpler experiments are somewhat redundant (if the model passes a coupled thermodynamics–dynamics benchmark, the model should necessarily also be able to pass a dynamics-only benchmark). However, it should be noted that in the process of model development, all tests prove to be extremely useful. The results of all tests will not be reported here, but several are highlighted below to demonstrate that Yelmo performs well.

The Halfar dome experiment, a specific case of the more general Test B of Bueler et al. (2005), tests the ice-sheet model dynamics using the SIA solver alone. This test consists of simulating a radially symmetric ice-sheet with zero mass balance and resting on a flat bed, deforming under gravitational stress. The analytical solution is known at every time, allowing a direct comparison of the simulation to the desired result. The simulation parameters consist of the margin radius and dome elevation, in this case set to the values suggested by Halfar (1983): R0=21.2132 km and H0=707.1 m – see Bueler et al. (2005) for further details. Figure 3 shows the root mean square error (RMSE) of the simulation with the analytical result after 200 years for a range of model resolutions. Yelmo demonstrates first-order (p=1.01) numerical convergence with resolution towards the analytical result.

Figure 3Root mean square error (RMSE) of the Halfar dome experiment after 200 yr simulated by Yelmo compared to the analytical solution versus model resolution. The value of p=1.01 indicates the order of convergence as the resolution increases.


The EISMINT1 moving margin experiment also tests the ice-sheet model dynamics using the SIA solver alone, with an imposed constant rate factor and diagnosed thermodynamics (i.e., thermodynamics do not impact the ice-sheet configuration). Radial steady-state surface mass balance and background surface temperature fields are imposed as boundary conditions. Starting from ice-free conditions, the ice sheet simulated by Yelmo grows to dynamic and thermodynamic equilibrium within 25 and 100 kyr, respectively. The steady-state summit elevation of Yelmo is 3006.6 m compared to the reported range of 2997.5±7.4 m for so-called “Type-I” discretization models like Yelmo (where diffusivity is staggered to the ab-nodes). The basal temperature relative to the pressure melting point (i.e., homologous temperature) at the summit simulated by Yelmo is −13.37C, which lies within the EISMINT1 range of -13.40±0.56C. These and other relevant statistics are given in Table 1.

Table 1Yelmo performance in the EISMINT1 moving margin experiment (“Moving”), as well as in the EISMINT2 experiments A and F. Where available, metrics with the ensemble mean and standard deviation from the original benchmark experiments are also provided for comparison.

Download Print Version | Download XLSX

We also use the EISMINT1 moving margin experiment to demonstrate the capability of the adaptive timestepping approach in Yelmo. By setting the tolerance parameter ϵ, Yelmo automatically adjusts the timestep to maintain the truncation error in ice thickness η around this value. Figure 4a shows the time series of the adaptive timestep used by Yelmo for a 25 kyr simulation for different resolutions. The timestep exhibits oscillations around a mean value, which is typical for such a PI approach (Cheng et al.2017). When the timestep grows larger, the truncation error increases. This leads to a reduction in the timestep, and the error decreases. Figure 4b shows the mean timestep used by Yelmo over the last 10 kyr of the simulation versus model resolution. Given a tolerance of ϵ=10-2, Yelmo's mean timestep is Δt=6.96 yr, Δt=1.59 yr, Δt=0.24 yr and Δt=0.06 yr for resolutions of 50, 25, 10 and 5 km, respectively. As expected, the timestep must be reduced for higher resolutions. These results are in line with those of Cheng et al. (2017) for the same experiment (Δt=12.4 yr for 60 km resolution). It should be noted that the truncation error increases nonlinearly as a function of the timestep, so setting a higher tolerance does not translate directly into a larger timestep.

Figure 4(a) Adaptive timestepping for the EISMINT1 moving margin experiment. Time series of the timestep used by Yelmo for grid resolutions of 50 km, 25 km and 10 km and a tolerance of ϵ=10-2 and (b) the mean adaptive timestep in the time range of 15–25 kyr versus model resolution. Separate lines in (b) show results for different values of the tolerance parameter ϵ.


Next we validate the thermodynamics component first by performing the benchmark experiments Test A and Test B of Kleiner et al. (2015). In contrast to an enthalpy solver, Yelmo uses a temperature solver that assumes all water produced in the ice column drains directly to the bed, and so temperate ice in the vertical column has no water content. In cases where water content of up to 3 % could be present in the basal layers of the column, Yelmo's solver would be inaccurate. Nonetheless, we expect that the temperature solver should be sufficiently accurate to simulate ice sheets on long timescales and large spatial domains. Figure 5 shows the performance of Yelmo's temperature solver for Test A of Kleiner et al. (2015), which simulates a column of ice in a parallel-sided slab with no horizontal advection and no internal strain heating that undergoes warming and subsequent cooling at the surface. In this case, no water content should develop in the vertical column, so a temperature and enthalpy solver should give identical, energy-conserving results. Yelmo's basal melt rate is essentially identical to the analytical solution for this problem, and its transient behavior is robust.

Figure 5Time series of the (a) basal temperature, (b) basal melt rate and (c) basal water layer corresponding to the thermodynamic benchmark experiment Exp. A (Kleiner et al.2015). The analytical solution (thick, light-red line) for the basal melt rate is compared to Yelmo results (black lines). Not that where the Yelmo results are not visible, they overlap with the analytical solution.


In contrast, Fig. 6 shows the results of Yelmo's temperature solver for Test B, which simulates a parallel-sided slab on a sloping bed with a prescribed horizontal velocity and strain heating profile in steady state. In this case, water is generated in the basal layers of the ice column (see Fig. 6c); however Yelmo cannot reproduce this solution. Nonetheless, because temperature is limited to the pressure-melting point, the simulated ice temperature profile is in full agreement with the analytical profile. This is true both for a very high resolution case (Δz=0.5 m) and a lower-resolution case (Δz=10 m), which allows us to conclude that the performance of the temperature solver is robust.

Figure 6Steady-state vertical profiles of (a) enthalpy, (b) temperature and (c) water content for the thermodynamic benchmark experiment Exp. B (Kleiner et al.2015). The analytical solution (thick, light-red lines) is compared to Yelmo results for a vertical resolution of Δz=0.5 m (nz=400, black lines) and Δz=10 m (nz=20, light green lines). The vertical grey line in (b) shows the pressure-melting point as prescribed in this experiment. Note that where the analytical solution is not visible, it overlaps with the Yelmo results.


The EISMINT2 benchmark experiments A and F are useful for testing the thermodynamically coupled ice-sheet model with SIA dynamics like in EISMINT1. The experiments are identical to the EISMINT1 moving margin experiment, except the resolution is doubled (25 km), and the surface temperature is prescribed to be independent of ice thickness. Experiment A prescribes a summit temperature of 238.15 K, while experiment F is 15.00 K colder, which promotes an increase in the region of ice frozen to the bedrock. The statistics for these experiments are listed in Table 1 as well. Figure 7 shows the basal homologous temperature distribution for experiments A and F. Yelmo produces temperature patterns in both experiments, which are consistent with both the benchmark results (Payne et al.2000) and other more recent models (e.g., Bueler et al.2007; Hoffman et al.2018). Axial symmetry, assessed by comparing the basal temperature field with a mirror of itself along the x or y axis, is maintained to a precision of 10−2 K. This symmetry is not critical to realistic applications, but a lack of at least axial symmetry in this test is often indicative of numerical artifacts. In experiment F, Yelmo produces the so-called “cold spokes”, which have been shown to be related to internal strain heating in regions of steep gradients in ice thickness and are largely numerical in nature (Bueler et al.2007).

Figure 7Steady-state, basal homologous temperature (C) distribution after 100 kyr obtained by Yelmo in EISMINT2 (a) experiment A and (b) experiment F. Areas that have reached the pressure-melting point have been shaded grey. The contour lines represent ice thickness at 500 m intervals up to 3500 m.


We also test the capability of the SSA solver and grounding-line treatment by running the MISMIP protocol experiments (Pattyn et al.2012). Particularly, MISMIP EXP 1 (advance) and EXP 2 (retreat) are useful for testing the reversibility of grounding-line advance, given the bedrock is defined as a linear downward-sloping bed. The rate factor is prescribed according to steps that first decrease, allowing grounding-line advance, then increase back to the original value. According to theory (Weertman1974; Schoof2007), only one steady-state grounding line position should exist for each step – i.e., the ice sheet should advance and retreat symmetrically without showing hysteresis. It is now well known, however, that ice-sheet models at coarse resolutions (1 km and greater) are unable to capture proper grounding-line migration, even when subgrid parameterizations to mimic higher resolution are applied (Seroussi et al.2014; Gladstone et al.2017).

In the MISMIP experiment performed here, the linear, downward-sloping bedrock is defined in the x direction as zb=720.0778.5(x∕750.0) with x in kilometers and zb in meters. The bedrock elevation does not change in the y direction, which extends to ±50 km to allow the simulation of a symmetric ice stream flowing in the positive x direction. The power-law formulation of Eq. (24) is used with the parameter values q=1/3, u0=1 m yr−1 and cb=3.165176×104 Pa. The rate factor is initially prescribed to be A=1×10-16 Pa−3 yr−1, and the simulation is run for 25 kyr to equilibrate. Next, the rate factor is stepped evenly in log-space every 10 kyr until reaching A=1×10-19 Pa−3 yr−1, and then the rate factor is increased in the same way until returning to the original value.

Figure 8 shows results for this MISMIP experiment with Yelmo at different grid resolutions, ranging from 20 km down to 2.5 km, and with different treatments of basal friction near the grounding line. When the default model setup is used, with no special treatment at the grounding line, the grounding-line advance is consistent for all resolutions. However, none of the lowest-resolution simulations show grounding line retreat as the rate factor increases again. At a resolution of 5 km, some minor grounding line retreat can be seen, and for 2.5 km, the model is more successful at retreating though it remains 400 km from the target. In contrast, when the basal friction β is scaled at the grounding line by the grounded fraction of the ac-node (fg,ac), the hysteresis is greatly reduced. The 5 km simulation retreats to within 200 km of the original position, and the 2.5 km simulation retreats to within 100 km of the original position, thus showing convergence to the correct solution with resolution. With this setup, even the 10 and 20 km simulations retreat significantly. In a third case, the basal friction is also linearly scaled to zero as the ice sheet approaches flotation (Leguy et al.2014; Gladstone et al.2017). In this case, the hysteresis and differences between different-resolution simulations are further reduced; however, the system also tends to advance much less given all other conditions are the same.

Figure 8Yelmo performance in the MISMIP bedrock advance and retreat simulations on a linear sloping bed. Panel (a) shows the imposed rate factor A, with 10 kyr steps of decreasing and then increasing values. Panels (b), (c) and (d) show the grounding line position evolution for each of three model configurations, respectively: “Default” is the standard model setup, with no special treatment of friction at or near the grounding line; “Subgrid” uses the grounded fraction at the grounding line to scale the basal friction; and “Scaling” applies both the grounded fraction and imposes a linear reduction in basal friction as the ice sheet approaches flotation. Separate simulations were run for resolutions ranging from 20 km down to 2.5 km.


Yelmo’s Eulerian conservative tracer model is validated with a simulation of ice age in an idealized configuration against the analytical solution presented by Rybak and Huybrechts (2003). In this case, summit-like conditions are imposed, in that horizontal advection is neglected, and the vertical velocity is assumed to decrease linearly with depth. Figure 9 shows the solution with Yelmo as compared to the analytical result. For a nominal vertical resolution of nz=30 points and single or double precision, the age tracer gives errors in the range of 0.2 %–0.5 % over most of the column of the ice sheet, with higher errors at the base. Increasing the vertical resolution to nz=50 points decreases the error by an order of magnitude, while using nz=30 with higher resolution at the base of the ice sheet allows a similar reduction in error with significant computational savings. For Eemian-age ice in such simplified conditions, the latter case gives an uncertainty of less than 1 kyr. It is expected that the error would increase for more realistic 3D domains; however the Eulerian age solver can be used for a first-order estimate of the age–depth profile in the ice sheet (Rybak and Huybrechts2003).

Figure 9Analytical age–depth profile for idealized summit compared to Yelmo Eulerian age tracing. (a) The ice age relative to present day is shown for the analytical solution (thick, light-red line) and Yelmo with a resolution of nz=30 with a linear vertical axis and compiled at double precision (black line). (b) The associated relative error is given for this case (black line), as well as for a higher resolution of nz=50 and for nz=30 compiled at single precision (grey lines), and finally for a resolution of nz=30 compiled at double precision but with exponentially increasing resolution at the base instead of a linear axis (green line).


7 Antarctica

As further validation of the model's performance, we ran steady-state simulations of the present-day and glacial Antarctic ice sheet. These simulations, run at 32 km resolution, have been deliberately simplified to include the minimum complexity necessary to simulate the ice sheet without additional external components. There was no active isostasy model, and geothermal heat flux was set to 50 mW m−2 everywhere. Basal friction followed a linear law, where β=cfλb/u0ρgH with u0=100 m yr−1 used as a scaling constant. We prescribed cf=0.15 (unitless) for most of the domain, except for ad hoc adjustments in specific regions to improve the match with observations. This was additionally scaled by an exponential function of bedrock elevation: λb=min[1.0,exp((zb-z1)/(z1-z0))], analogous to the approach of (Martin et al.2011). We set z1=250 m everywhere and z0=-2000 m for West Antarctic Ice Sheet (WAIS) regions feeding the Ronne ice shelf and z1=-200 m elsewhere. Friction was scaled by the grounded fraction at the grounding line, but no additional scaling is applied. The enhancement factor parameters set for these simulations were Eshr=2.5, Estrm=0.7 and Eshlf=0.5. The bedrock topography and initial ice thickness were prescribed from the RTOPO2.1 dataset (Schaffer et al.2016), after which the model ran for 50 kyr, reaching a steady-state modeled ice distribution.

For the simulation of the present-day state, surface mass balance (SMB) and surface temperature boundary fields were prescribed from a RACMO2.3 simulation driven by ERA-Interim data and averaged over 1981–2010 (van Wessem et al.2018). The ice-shelf basal mass balance was set to a spatially constant value of −0.2 m a−1 where floating ice exists today and to −2.0 m a−1 elsewhere. Figures 10 and 11 show a comparison of the simulations with the observed topography (RTOPO2.1) and the present-day observed velocity (Rignot et al.2011). With this relatively simple model setup, it is possible to obtain reasonable agreement with observations. The root mean square errors (RMSEs) in ice thickness, velocity and log(velocity) are 320 m, 270 m yr−1 and 1.9 log(m yr−1), respectively, which fall in the range of other models in the initMIP-Antarctica intercomparison project (Seroussi et al.2019). The simulated ice sheet is thinner than the observed ice sheet over large parts of East Antarctica, with a broad positive bias near the South Pole (Fig. 11). The margins of the ice sheet are the most difficult to match, in particular, the grounding-line positions of the large ice shelves, leading to larger biases in these regions. This pattern is quite consistent with other studies (e.g., Martin et al.2011; Quiquet et al.2018; Albrecht et al.2020). Overall, the dome configuration, slow deformational speeds and even most ice streams as they penetrate inland are well represented by the model (Figs. 10 and 11).

Figure 10(a) Antarctica present-day ice sheet configuration and surface velocities from observations, compared to (b) a steady-state simulation with Yelmo. (c) In contrast, Antarctica glacial configuration and surface velocities simulated by Yelmo. Simulations were performed at 32 km resolution. The colors show surface velocity in meters per year, and the dark grey contours show surface elevation in 500 m intervals (thick lines correspond to 1000, 2000 and 3000 m above sea level). The black line shows the grounding-line position.

Figure 11(a) Simulated present-day ice-thickness minus observations and (b) simulated versus observed ice surface velocity. The colors in (a) show the ice thickness difference in meters, and the dark grey contours show surface elevation in 500 m intervals (thick lines correspond to 1000, 2000 and 3000 m above sea level). The black line shows the grounding-line position. In (b), the dark red line indicates a perfect correlation between model and observations.

We use the same setup with modified boundary conditions to simulate a configuration resembling that of a deep glacial period like the Last Glacial Maximum. The surface temperature was set to 10 C colder, and the present-day SMB was maintained, except that points with a low or negative SMB were prescribed with a minimum value of 0.1 m a−1. The ice shelf basal mass balance was set to a spatially constant value of 0 m a−1, and sea level was lowered by 120 m. In this case, the grounded ice sheet advances until the continental shelf break and thickens inland (Fig. 10). A similar structure of ice streams can be seen, due to the topographic dependence of β, but their speed is greatly reduced compared to those of the present-day simulation. We do not expect this configuration to be realistic, given that isostasy plays no role and a present-day-like SMB has been imposed. However, this test demonstrates that Yelmo is capable of resolving continental-scale changes in the ice sheet configuration in a plausible way.

8 Conclusions and future work

We have described the features and physics of the hybrid ice-sheet–shelf model Yelmo. Yelmo includes the physics to simulate continental-scale ice sheets and floating ice shelves using “shallow” approximations of the ice dynamics. The fully coupled thermomechanical ice-sheet model has been validated against several benchmark tests and has been shown to simulate the dynamic configuration of the Antarctic ice sheet well.

Yelmo is expected to be useful for long-timescale simulations and/or ensembles. It is particularly suited for easy coupling with other models. For example, the simulation of multiple ice-sheet domains with independent parameter configurations coupled to a global climate model can be achieved in a simple and straightforward way. Also, given that the subroutines representing the physics of the model have been isolated from the “model accounting”, it is possible to test individual model components in different contexts easily. This should facilitate future model development and comparison of different methods.

The model framework has been designed to facilitate the incorporation of new and different physics. Thus, this initial release of Yelmo lays the foundation for several future developments. These may include more advanced calving and basal friction schemes, as well as improved treatment of the grounding line. We also plan to transition to an enthalpy-based thermodynamics solver; however this will require an adaptive vertical axis to be able to map the height of transition between temperate and cold ice accurately. We also plan to implement a variationally derived “depth-integrated-viscosity approximation” solver (following, e.g., Goldberg2011; Pollard and DeConto2012; Lipscomb et al.2019) in the near future.

Code availability

Yelmo is maintained as a git repository hosted at (last access: 2 May 2020; palma-ice2020) under the license GPL-3.0. Model documentation can be found at (last access: 2 May 2020; Yelmo-docs2020). The exact version of the model, along with the necessary input data, used to produce the results used in this paper is archived on Zenodo (, Robinson et al.2020) and has been tagged in the repository as v1.02.

Author contributions

AR, JA-S and MM conceived the model design and features. AR wrote the model code with contributions from the remaining authors. All authors contributed to the model testing and writing the paper.

Competing interests

Heiko Goelzer is a member of the editorial board of the journal.


We would like to thank Mahé Perrette, Christophe Dumas, Gunter Leguy and Bill Lipscomb for valuable discussions about model design that improved Yelmo, Akira Nishida for help with Lis, and Ilaria Tabone and Javier Blasco for extensive model testing at intermediate development points. We are also grateful to the reviewers for helpful comments.

Financial support

This research has been supported by the Spanish Ministry of Science and Innovation project RIMA (grant no. CGL2017-85975-R). Alexander Robinson was funded by the Ramón y Cajal Programme of the Spanish Ministry for Science, Innovation and Universities (grant no. RYC-2016-20587). Heiko Goelzer has received funding from the program of the Netherlands Earth System Science Centre (NESSC), financially supported by the Dutch Ministry of Education, Culture and Science (OCW) (grant no. 024.002.001). Ralf Greve was supported by the Japan Society for the Promotion of Science (JSPS) KAKENHI (grant nos. JP16H02224, JP17H06104 and JP17H06323), by the Japanese Ministry of Education, Culture, Sports, Science and Technology (MEXT) through the Arctic Challenge for Sustainability (ArCS) project, and through the Arctic Challenge for Sustainability (ArCS) project (program grant no. JPMXD1300000000).

Review statement

This paper was edited by Steven Phipps and reviewed by Fuyuki Saito and one anonymous referee.


Albrecht, T., Martin, M., Haseloff, M., Winkelmann, R., and Levermann, A.: Parameterization for subgrid-scale motion of ice-shelf calving fronts, The Cryosphere, 5, 35–44,, 2011. a

Albrecht, T., Winkelmann, R., and Levermann, A.: Glacial-cycle simulations of the Antarctic Ice Sheet with the Parallel Ice Sheet Model (PISM) – Part 2: Parameter ensemble analysis, The Cryosphere, 14, 633–656,, 2020. a

Arakawa, A. and Lamb, V. R.: Computational Design of the Basic Dynamical Processes of the UCLA General Circulation Model, in: General Circulation Models of the Atmosphere, edited by: Chang, J., Vol. 17 of Methods in Computational Physics: Advances in Research and Applications, 173–265, Elsevier,, 1977. a

Aschwanden, A., Aðalgeirsdéttir, G., and Khroulev, C.: Hindcasting to measure ice sheet model sensitivity to initial states, The Cryosphere, 7, 1083–1093,, 2013. a, b, c

Brondex, J., Gillet-Chaulet, F., and Gagliardini, O.: Sensitivity of centennial mass loss projections of the Amundsen basin to the friction law, The Cryosphere, 13, 177–195,, 2019. a, b

Bueler, E. and Brown, J.: Shallow shelf approximation as a “sliding law” in a thermomechanically coupled ice sheet model, J. Geophys. Res., 114, F03008,, 2009. a, b

Bueler, E. and van Pelt, W.: Mass-conserving subglacial hydrology in the Parallel Ice Sheet Model version 0.6, Geosci. Model Dev., 8, 1613–1635,, 2015. a, b

Bueler, E., Lingle, C. S., Kallen-Brown, J. A., Covey, D. N., and Bowman, L. N.: Exact solutions and verification of numerical model for isothermal ice sheets, J. Glaciol., 51, 291–306,, 2005. a, b, c

Bueler, E., Brown, J., and Lingle, C.: Exact solutions to the thermocoupled shallow ice approximation: effective tools for verification, J. Glaciol., 53, 499–516,, 2007. a, b

Cheng, G., Lötstedt, P., and von Sydow, L.: Accurate and stable time stepping in ice sheet modeling, J. Comput. Phys., 329, 29–47,, 2017. a, b, c, d, e, f, g, h

Cornford, S. L., Martin, D. F., Graves, D. T., Ranken, D. F., Le Brocq, A. M., Gladstone, R. M., Payne, A. J., Ng, E. G., and Lipscomb, W. H.: Adaptive mesh, finite volume modeling of marine ice sheets, J. Comput. Phys., 232, 529–549,, 2013. a, b

Cuffey, K. M. and Paterson, W. S. B.: The physics of glaciers, Academic Press, Burlington, MA, USA, 2010. a, b

Gagliardini, O., Zwinger, T., Gillet-Chaulet, F., Durand, G., Favier, L., de Fleurian, B., Greve, R., Malinen, M., Martín, C., Råback, P., Ruokolainen, J., Sacchettini, M., Schäfer, M., Seddik, H., and Thies, J.: Capabilities and performance of Elmer/Ice, a new-generation ice sheet model, Geosci. Model Dev., 6, 1299–1318,, 2013. a, b, c

Gladstone, R. M., Warner, R. C., Galton-Fenzi, B. K., Gagliardini, O., Zwinger, T., and Greve, R.: Marine ice sheet model performance depends on basal sliding physics and sub-shelf melting, The Cryosphere, 11, 319–329,, 2017. a, b

Glen, J. W.: The creep of polycrystalline ice, P. Roy. Soc. A Math. Phy., 228, 519–538, 1955. a, b

Goelzer, H., Nowicki, S., Edwards, T., Beckley, M., Abe-Ouchi, A., Aschwanden, A., Calov, R., Gagliardini, O., Gillet-Chaulet, F., Golledge, N. R., Gregory, J., Greve, R., Humbert, A., Huybrechts, P., Kennedy, J. H., Larour, E., Lipscomb, W. H., Le clec'h, S., Lee, V., Morlighem, M., Pattyn, F., Payne, A. J., Rodehacke, C., Rückamp, M., Saito, F., Schlegel, N., Seroussi, H., Shepherd, A., Sun, S., van de Wal, R., and Ziemen, F. A.: Design and results of the ice sheet model initialisation experiments initMIP-Greenland: an ISMIP6 intercomparison, The Cryosphere, 12, 1433–1460,, 2018. a

Goldberg, D. N.: A variationally derived and depth-integrated approximation to a and higher-order glaciological flow model, J. Glaciol., 57, 157–169,, 2011. a, b

Greve, R.: A continuum–mechanical formulation for shallow polythermal ice sheets, Philos. T. R. Soc. S-A, 355, 921–974,, 1997a. a, b

Greve, R.: Application of a Polythermal Three-Dimensional Ice Sheet Model to the Greenland Ice Sheet: Response to Steady-State and Transient Climate Scenarios, J. Climate, 10, 901–918,<0901:AOAPTD>2.0.CO;2, 1997b. a

Greve, R.: Geothermal heat flux distribution for the Greenland ice sheet, derived by combining a global representation and information from deep ice cores, Polar Data J., 3, 22–36,, 2019. a, b

Greve, R. and Blatter, H.: Dynamics of Ice Sheets and Glaciers, Springer-Verlag, Berlin, 2009. a, b, c, d, e, f, g, h, i, j, k

Greve, R., Wang, Y., and Mügge, B.: Comparison of numerical schemes for the solution of the advective age equation in ice sheets, Ann. Glaciol., 35, 487–494,, 2002. a

Halfar, P.: On the Dynamics and of the Ice and Sheets 2, J. Geophys. Res., 88, 6043–6051,, 1983. a, b

Hoffman, M. J., Perego, M., Price, S. F., Lipscomb, W. H., Zhang, T., Jacobsen, D., Tezaur, I., Salinger, A. G., Tuminaro, R., and Bertagna, L.: MPAS-Albany Land Ice (MALI): a variable-resolution ice sheet model for Earth system modeling using Voronoi grids, Geosci. Model Dev., 11, 3747–3780,, 2018. a, b, c, d, e

Huybrechts, P., Instituut, G., and Oerlemans, J.: Evolution of the East Antarctic Ice Sheet: A Numerical Study of Thermo-Mechanical Response Patterns With Changing Climate, Ann. Glaciol., 11, 52–59,, 1988. a

Huybrechts, P., Payne, T., Abe-Ouchi, A., Calov, R., Fabre, A., Fastook, J. L., Greve, R., Hindmarsh, R. C., Hoydal, O., Jóhannesson, T., MacAyeal, D. R., Marsiat, I., Ritz, C., Verbitsky, M. Y., Waddington, E. D., and Warner, R.: The EISMINT benchmarks for testing ice-sheet models, Ann. Glaciol., 23, 1–12,, 1996. a, b

Jenkins, A.: A One-Dimensional and Model of Ice and Shelf-Ocean Interaction, J. Geophys. Res., 96, 20671–20677,, 1991. a

Joughin, I., Smith, B. E., and Schoof, C. G.: Regularized Coulomb Friction Laws for Ice Sheet Sliding: Application to Pine Island Glacier, Antarctica, Geophys. Res. Lett., 46, 4764–4771,, 2019. a, b, c, d

Kleiner, T., Rückamp, M., Bondzio, J. H., and Humbert, A.: Enthalpy benchmark experiments for numerical ice sheet models, The Cryosphere, 9, 217–228,, 2015. a, b, c, d

Larour, E., Seroussi, H., Morlighem, M., and Rignot, E.: Continental scale, high order, high spatial resolution, ice sheet modeling using the Ice Sheet System Model (ISSM), J. Geophys. Res., 117, F01022,, 2012. a, b

Leguy, G. R., Asay-Davis, X. S., and Lipscomb, W. H.: Parameterization of basal friction near grounding lines in a one-dimensional ice sheet model, The Cryosphere, 8, 1239–1259,, 2014. a

Lipscomb, W. H., Price, S. F., Hoffman, M. J., Leguy, G. R., Bennett, A. R., Bradley, S. L., Evans, K. J., Fyke, J. G., Kennedy, J. H., Perego, M., Ranken, D. M., Sacks, W. J., Salinger, A. G., Vargo, L. J., and Worley, P. H.: Description and evaluation of the Community Ice Sheet Model (CISM) v2.1, Geosci. Model Dev., 12, 387–424,, 2019. a, b, c, d

Ma, Y., Gagliardini, O., Ritz, C., Gillet-Chaulet, F., Durand, G., and Montagnat, M.: Enhancement factors for grounded ice and ice-shelf both inferred from an anisotropic ice flow model, J. Glaciol., 56, 805–812,, 2010. a

Macayeal, D.: EISMINT: Lessons in Ice-Sheet Modeling, available at: (last access: 2 May 2020), 1997. a, b

Martin, M. A., Winkelmann, R., Haseloff, M., Albrecht, T., Bueler, E., Khroulev, C., and Levermann, A.: The Potsdam Parallel Ice Sheet Model (PISM-PIK) – Part 2: Dynamic equilibrium simulation of the Antarctic ice sheet, The Cryosphere, 5, 727–740,, 2011. a, b

Nishida, A.: Experience in Developing an Open Source Scalable Software Infrastructure in Japan, in: Computational Science and Its Applications – ICCSA 2010, edited by: Taniar, D., Gervasi, O., Murgante, B., Pardede, E., and Apduhan, B. O., 448–462, Springer Berlin Heidelberg, Berlin, Heidelberg, 2010. a

palma-ice: Yelmo, GitHub, available at:, last access: 2 May 2020. a

Pattyn, F.: Sea-level response to melting of Antarctic ice shelves on multi-centennial timescales with the fast Elementary Thermomechanical Ice Sheet model (f.ETISh v1.0), The Cryosphere, 11, 1851–1878,, 2017. a, b, c

Pattyn, F., Schoof, C., Perichon, L., Hindmarsh, R. C. A., Bueler, E., de Fleurian, B., Durand, G., Gagliardini, O., Gladstone, R., Goldberg, D., Gudmundsson, G. H., Huybrechts, P., Lee, V., Nick, F. M., Payne, A. J., Pollard, D., Rybak, O., Saito, F., and Vieli, A.: Results of the Marine Ice Sheet Model Intercomparison Project, MISMIP, The Cryosphere, 6, 573–588,, 2012. a, b, c

Payne, A. J., Huybrechts, P., Abe-Ouchi, A., Calov, R., Fastook, J. L., Greve, R., Marshall, S. J., Marsiat, I., Ritz, C., Tarasov, L., and Thomassen, M. P.: Results from the EISMINT model intercomparison: The effects of thermomechanical coupling, J. Glaciol., 46, 227–238,, 2000. a, b

Peyaud, V., Ritz, C., and Krinner, G.: Modelling the Early Weichselian Eurasian Ice Sheets: role of ice shelves and influence of ice-dammed lakes, Clim. Past, 3, 375–386,, 2007. a, b

Pollard, D. and DeConto, R. M.: Description of a hybrid ice sheet-shelf model, and application to Antarctica, Geosci. Model Dev., 5, 1273–1295,, 2012. a, b, c, d

Quiquet, A., Dumas, C., Ritz, C., Peyaud, V., and Roche, D. M.: The GRISLI ice sheet model (version 2.0): calibration and validation for multi-millennial changes of the Antarctic ice sheet, Geosci. Model Dev., 11, 5003–5025,, 2018. a, b, c, d

Rignot, E., Mouginot, J., and Scheuchl, B.: Ice Flow of the Antarctic Ice Sheet, Science, 333, 1427–1430,, 2011. a

Ritz, C., Fabre, A., and Letréguilly, A.: Sensitivity of a Greenland ice sheet model to ice flow and ablation parameters: consequences for the evolution through the last climatic cycle, Clim. Dynam., 13, 11–23,, 1997. a, b

Robinson, A., Alvarez-Solas, J., Montoya, M., Goelzer, H., Greve, R., and Ritz, C.: Yelmo source code snapshot, Zenodo,, 2020. a

Rückamp, M., Greve, R., and Humbert, A.: Comparative simulations of the evolution of the Greenland ice sheet under simplified Paris Agreement scenarios with the models SICOPOLIS and ISSM, Polar Sci., 21, 14–25,, 2019. a

Rybak, O. and Huybrechts, P.: A comparison of Eulerian and Lagrangian methods for dating in numerical ice-sheet models, Ann. Glaciol., 37, 150–158,, 2003. a, b, c, d

Schaffer, J., Timmermann, R., Arndt, J. E., Kristensen, S. S., Mayer, C., Morlighem, M., and Steinhage, D.: A global, high-resolution data set of ice sheet topography, cavity geometry, and ocean bathymetry, Earth Syst. Sci. Data, 8, 543–557,, 2016. a

Schoof, C.: The effect of cavitation on glacier sliding, P. Roy. Soc. A Math. Phy., 461, 609–627,, 2005. a

Schoof, C.: Ice sheet grounding line dynamics: Steady states, stability, and hysteresis, J. Geophys. Res., 112, F03S28,, 2007. a

Schoof, C.: Ice-sheet acceleration driven by melt supply variability, Nature, 468, 803–806,, 2010. a

Seroussi, H., Morlighem, M., Larour, E., Rignot, E., and Khazendar, A.: Hydrostatic grounding line parameterization in ice sheet models, The Cryosphere, 8, 2075–2087,, 2014.  a

Seroussi, H., Nowicki, S., Simon, E., Abe-Ouchi, A., Albrecht, T., Brondex, J., Cornford, S., Dumas, C., Gillet-Chaulet, F., Goelzer, H., Golledge, N. R., Gregory, J. M., Greve, R., Hoffman, M. J., Humbert, A., Huybrechts, P., Kleiner, T., Larour, E., Leguy, G., Lipscomb, W. H., Lowry, D., Mengel, M., Morlighem, M., Pattyn, F., Payne, A. J., Pollard, D., Price, S. F., Quiquet, A., Reerink, T. J., Reese, R., Rodehacke, C. B., Schlegel, N.-J., Shepherd, A., Sun, S., Sutter, J., Van Breedam, J., van de Wal, R. S. W., Winkelmann, R., and Zhang, T.: initMIP-Antarctica: an ice sheet model initialization experiment of ISMIP6, The Cryosphere, 13, 1441–1471,, 2019. a

Söderlind, G.: Automatic Control and Adaptive Time-Stepping, Numer. Algorithms, 31, 281–310,, 2002. a

Söderlind, G. and Wang, L.: Adaptive time-stepping and computational stability, J. Comput. Appl. Math., 185, 225–243,, 2006. a, b

Stearns, L. A. and van der Veen, C. J.: Friction at the bed does not control fast glacier flow, Science, 361, 273–277,, 2018. a

van Wessem, J. M., van de Berg, W. J., Noël, B. P. Y., van Meijgaard, E., Amory, C., Birnbaum, G., Jakobs, C. L., Krüger, K., Lenaerts, J. T. M., Lhermitte, S., Ligtenberg, S. R. M., Medley, B., Reijmer, C. H., van Tricht, K., Trusel, L. D., van Ulft, L. H., Wouters, B., Wuite, J., and van den Broeke, M. R.: Modelling the climate and surface mass balance of polar ice sheets using RACMO2 – Part 2: Antarctica (1979–2016), The Cryosphere, 12, 1479–1498,, 2018. a

Weertman, J.: Stability of the junction of an ice sheet and an ice shelf, J. Glaciol., 13, 3–11, , 1974. a

Winkelmann, R., Martin, M. A., Haseloff, M., Albrecht, T., Bueler, E., Khroulev, C., and Levermann, A.: The Potsdam Parallel Ice Sheet Model (PISM-PIK) – Part 1: Model description, The Cryosphere, 5, 715–726,, 2011. a, b, c

Yelmo-docs: Yelmo, General model structure – classes and usage, Yelmo-docs, avaialable at:, last access: 2 May 2020. a


The name Yelmo refers to a semi-domed, rocky mountain in the Guadarrama Mountains outside of Madrid, Spain.

Short summary
Here we describe Yelmo v1.0, an intuitive and state-of-the-art hybrid ice sheet model. The model design and physics are described, and benchmark simulations are provided to validate its performance. Yelmo is a versatile ice sheet model that can be applied to a wide variety of problems.