<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0"><?xmltex \makeatother\@nolinetrue\makeatletter?>
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-12-387-2019</article-id><title-group><article-title>Description and evaluation of the Community <?xmltex \hack{\break}?>Ice Sheet Model (CISM) v2.1</article-title><alt-title>Community Ice Sheet Model</alt-title>
      </title-group><?xmltex \runningtitle{Community Ice Sheet Model}?><?xmltex \runningauthor{W.~H.~Lipscomb et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Lipscomb</surname><given-names>William H.</given-names></name>
          <email>lipscomb@ucar.edu</email>
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Price</surname><given-names>Stephen F.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-6878-2553</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Hoffman</surname><given-names>Matthew J.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-5076-0540</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Leguy</surname><given-names>Gunter R.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3 aff4">
          <name><surname>Bennett</surname><given-names>Andrew R.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-7742-3138</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff5">
          <name><surname>Bradley</surname><given-names>Sarah L.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Evans</surname><given-names>Katherine J.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-8174-6450</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff6">
          <name><surname>Fyke</surname><given-names>Jeremy G.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Kennedy</surname><given-names>Joseph H.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-9348-693X</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff7">
          <name><surname>Perego</surname><given-names>Mauro</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Ranken</surname><given-names>Douglas M.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Sacks</surname><given-names>William J.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff7">
          <name><surname>Salinger</surname><given-names>Andrew G.</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff8">
          <name><surname>Vargo</surname><given-names>Lauren J.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-7037-0451</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Worley</surname><given-names>Patrick H.</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>Los Alamos National Laboratory, Los Alamos, NM 87544, USA</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Climate and Global Dynamics Laboratory, National Center for Atmospheric Research, Boulder, CO 80305, USA</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Computational Earth Sciences Group, Oak Ridge National Laboratory, Oak Ridge, TN 37830, USA</institution>
        </aff>
        <aff id="aff4"><label>4</label><institution>University of Washington, Seattle, WA 98195, USA </institution>
        </aff>
        <aff id="aff5"><label>5</label><institution>Delft University of Technology, Delft, 2600 AA, the Netherlands</institution>
        </aff>
        <aff id="aff6"><label>6</label><institution>Associated Engineering Group, Ltd., Vernon, BC V1T 9P9, Canada</institution>
        </aff>
        <aff id="aff7"><label>7</label><institution>Center for Computing Research, Sandia National Laboratories, Albuquerque, NM 87185, USA</institution>
        </aff>
        <aff id="aff8"><label>8</label><institution>Victoria University of Wellington, Wellington 6140, New Zealand</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">William H. Lipscomb (lipscomb@ucar.edu)</corresp></author-notes><pub-date><day>22</day><month>January</month><year>2019</year></pub-date>
      
      <volume>12</volume>
      <issue>1</issue>
      <fpage>387</fpage><lpage>424</lpage>
      <history>
        <date date-type="received"><day>18</day><month>June</month><year>2018</year></date>
           <date date-type="rev-request"><day>18</day><month>July</month><year>2018</year></date>
           <date date-type="rev-recd"><day>17</day><month>December</month><year>2018</year></date>
           <date date-type="accepted"><day>3</day><month>January</month><year>2019</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2019 William H. Lipscomb et al.</copyright-statement>
        <copyright-year>2019</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019.html">This article is available from https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019.pdf</self-uri>
      <abstract>
    <p id="d1e259">We describe and evaluate version 2.1 of the Community Ice Sheet Model (CISM).
CISM is a parallel, 3-D thermomechanical model, written mainly in Fortran,
that solves equations for the momentum balance and the thickness and
temperature evolution of ice sheets. CISM's velocity solver incorporates a
hierarchy of Stokes flow approximations, including shallow-shelf,
depth-integrated higher order, and 3-D higher order. CISM also includes a
suite of test cases, links to third-party solver libraries, and
parameterizations of physical processes such as basal sliding, iceberg
calving, and sub-ice-shelf melting. The model has been verified for standard
test problems, including the Ice Sheet Model Intercomparison Project for
Higher-Order Models (ISMIP-HOM) experiments, and has participated in the
initMIP-Greenland initialization experiment. In
multimillennial simulations with modern climate forcing on a 4 km grid, CISM
reaches a steady state that is broadly consistent with observed flow patterns
of the Greenland ice sheet. CISM has been integrated into version 2.0 of the
Community Earth System Model, where it is being used for Greenland
simulations under past, present, and future climates. The code is open-source
with extensive documentation and remains under active development.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

      <?xmltex \hack{\allowdisplaybreaks}?>
<sec id="Ch1.S1" sec-type="intro">
  <title>Introduction</title>
      <?pagebreak page388?><p id="d1e271">As mass loss from the Greenland and Antarctic ice sheets has accelerated
<xref ref-type="bibr" rid="bib1.bibx79 bib1.bibx19 bib1.bibx33 bib1.bibx80" id="paren.1"/>, climate modelers
have recognized the importance of dynamic ice sheet models (ISMs) for
predicting future mass loss and sea level rise <xref ref-type="bibr" rid="bib1.bibx84" id="paren.2"/>.
Meanwhile, ISMs have become more accurate and complex in their representation
of ice flow dynamics. Early ISMs used either the shallow-ice approximation
(SIA; <xref ref-type="bibr" rid="bib1.bibx42" id="altparen.3"/>) or the shallow-shelf approximation (SSA;
<xref ref-type="bibr" rid="bib1.bibx50" id="altparen.4"/>). The SIA, which assumes that vertical shear
stresses are dominant, is valid for slow-moving ice sheet interiors, whereas
the SSA, which assumes that flow is dominated by lateral and longitudinal
stresses in the horizontal plane, is valid for floating ice shelves. Neither
approximation is valid for ice streams and outlet glaciers where both
vertical shear and horizontal plane stresses are important. Advanced ISMs
developed in recent years solve the Stokes equations or various higher-order
approximations <xref ref-type="bibr" rid="bib1.bibx61 bib1.bibx76" id="paren.5"/>. Among the models that solve
Stokes or higher-order equations, or otherwise combine features of the SIA
and SSA, are the Parallel Ice Sheet Model (PISM; <xref ref-type="bibr" rid="bib1.bibx12 bib1.bibx86" id="altparen.6"/>), the Ice Sheet System Model (ISSM; <xref ref-type="bibr" rid="bib1.bibx45" id="altparen.7"/>),
the Penn State Model <xref ref-type="bibr" rid="bib1.bibx67" id="paren.8"/>, BISICLES <xref ref-type="bibr" rid="bib1.bibx20" id="paren.9"/>,
Elmer-Ice <xref ref-type="bibr" rid="bib1.bibx27" id="paren.10"/>, and MPAS-Albany Land Ice (MALI;
<xref ref-type="bibr" rid="bib1.bibx82 bib1.bibx37" id="altparen.11"/>). Higher-order models have performed well
for standard test cases <xref ref-type="bibr" rid="bib1.bibx61 bib1.bibx62" id="paren.12"/> and have been applied
to many scientific problems.</p>
      <p id="d1e312">Here, we describe and evaluate the Community Ice Sheet Model (CISM) version
2.1, a higher-order model that evolved from the Glimmer model
<xref ref-type="bibr" rid="bib1.bibx72" id="paren.13"/>. The current name reflects the model's evolution as a
component of the Community Earth System Model (CESM; <xref ref-type="bibr" rid="bib1.bibx41" id="altparen.14"/>).
Like Glimmer, CISM is written mainly in Fortran 90 and its extensions, to
maximize efficiency and to simplify coupling to climate models. Glimmer,
however, is a serial SIA model, whereas CISM is a parallel model that solves
not only the SIA but also higher-order Stokes approximations.</p>
      <p id="d1e321">CISM development was guided by the following goals:</p>
      <p id="d1e324"><list list-type="bullet">
          <list-item>

      <p id="d1e329">The model should be well documented and easy to install and run on a
variety of platforms, ranging from laptops to local clusters to high-performance supercomputers.</p>
          </list-item>
          <list-item>

      <p id="d1e335">It should solve a range of Stokes approximations, including the SIA,
SSA, and higher-order approximations.
Velocity solvers for these approximations are included in a new dynamical
core called Glissade. (The dynamical core, or “dycore”, is the part of
the model that solves equations for conservation of mass, energy, and momentum.)</p>
          </list-item>
          <list-item>

      <p id="d1e341">It should remain backward-compatible with Glimmer, allowing continued
use of the older Glide SIA dycore.</p>
          </list-item>
          <list-item>

      <p id="d1e347">It should be well verified for standard test cases such as the
Ice Sheet Model Intercomparison Project for Higher-Order Models (ISMIP-HOM)
<xref ref-type="bibr" rid="bib1.bibx61" id="paren.15"/>, with a user-friendly verification framework.</p>
          </list-item>
          <list-item>

      <p id="d1e356">It should run efficiently – supporting whole-ice-sheet applications
even on small platforms – and should scale to hundreds of processor cores,
enabling century- to millennial-scale simulations with higher-order solvers
at grid resolutions of <inline-formula><mml:math id="M1" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> km or finer.</p>
          </list-item>
          <list-item>

      <p id="d1e373">It should support not only stand-alone ice sheet simulations but also
coupled applications in which fields are exchanged with a global climate or
Earth system model (CESM in particular).</p>
          </list-item>
          <list-item>

      <p id="d1e379">It should support simulations of the Greenland ice sheet, a scientific
focus of CESM. Support for Antarctic applications is deferred to future model
releases and publications.</p>
          </list-item>
          <list-item>

      <p id="d1e385">The code should be open-source, with periodic public releases.</p>
          </list-item>
        </list>Many of these features were present in CISM v.2.0, which was released in 2014
<xref ref-type="bibr" rid="bib1.bibx69" id="paren.16"/>.</p>
      <p id="d1e395">Changes between versions 2.0 and 2.1 have been made primarily to support
robust, accurate, and efficient Greenland ice sheet simulations, both as a
stand-alone model and in CESM. These changes include a depth-integrated
higher-order velocity solver (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS4"/>), new
parameterizations of basal sliding (Sect. <xref ref-type="sec" rid="Ch1.S3.SS4"/>),
iceberg calving (Sect. <xref ref-type="sec" rid="Ch1.S3.SS5"/>), and sub-ice-shelf melting
(Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>), a new build-and-test structure
(Sect. <xref ref-type="sec" rid="Ch1.S4.SS6"/>), and many improvements in model numerics.</p>
      <p id="d1e408">We begin with an overview of CISM, including the core model and its testing
and coupling infrastructure (Sect. 2). We then describe the model dynamics
and physics, focusing on the new Glissade dycore (Sect. 3). To verify the
model, we present results from standard test cases (Sect. 4). We then present
results from long spin-ups of the Greenland ice sheet, with and without
floating ice shelves (Sect. 5). Finally, we summarize the model results and
suggest directions for future work (Sect. 6).</p>
</sec>
<sec id="Ch1.S2">
  <title>Model overview</title>
      <p id="d1e417">CISM is a numerical model – a collection of software libraries, utilities,
and drivers – used to simulate ice sheet evolution. It is modular in design
and is coded mainly in standard-compliant Fortran 90/95. CISM consists of
several components:</p>
      <p id="d1e420"><def-list>
          <def-item><term>cism_driver</term><def>

      <p id="d1e428">is the high-level driver (i.e., the executable) that
is used to run the stand-alone model
in all configurations, including idealized test cases with simplified climate forcing,
as well as model runs with realistic geometry and climate forcing data.</p>
          </def></def-item>
          <def-item><term>Glide</term><def>

      <p id="d1e437">is the serial dycore based on shallow-ice dynamics.
Glide solves the governing conservation equations and computes ice velocities,
internal ice temperature,
and ice geometry evolution.
Apart from minor changes, this is the same dycore used in Glimmer and described
by <xref ref-type="bibr" rid="bib1.bibx72" id="text.17"/>. It will not be discussed further here.</p>
          </def></def-item>
          <def-item><term>Glissade</term><def>

      <p id="d1e449">is the dycore that solves higher-order approximations of the
Stokes equations for ice flow. Glissade, unlike Glide, is fully parallel in
order to take advantage of multiprocessor, high-performance architectures.
It is described in detail in Sect. <xref ref-type="sec" rid="Ch1.S3"/>.</p>
          </def></def-item>
          <def-item><term>Glint</term><def>

      <p id="d1e460">is the original climate model interface for Glimmer. Glint allows
the core ice sheet model to be coupled to a global climate model or any other
source of time-varying climate data on a lat–long grid. Glint computes
the surface mass balance (SMB) on the  ice sheet grid using a  positive-degree-day (PDD) scheme.</p>
          </def></def-item>
          <def-item><term>Glad</term><def>

      <p id="d1e469">is a lightweight climate model interface that has replaced Glint in CESM.
The CESM coupler supports<?pagebreak page389?> remapping and downscaling between general
land-surface grids and ice sheet grids, and thus is able to send CISM an SMB
that is already downscaled. The Glad interface simply sends and receives
fields on the ice sheet grid, accumulating and averaging as needed based on
the ice dynamic time step and the coupling interval.</p>
          </def></def-item>
          <def-item><term>Test cases</term><def>

      <p id="d1e479">are provided for the Glide and Glissade dynamical
cores. These are used to confirm that the model is working as expected and to
provide a range of simple model configurations from which new users can learn
about model options and create their own configurations. CISM test cases are
described in Sect. <xref ref-type="sec" rid="Ch1.S4"/>.</p>
          </def></def-item>
          <def-item><term>Shared code</term><def>

      <p id="d1e490">consists of modules shared by different parts of the code. Examples include modules for defining derived types, physical constants, and model parameters, and modules that parse
CISM configuration files and handle data input/output (I/O).</p>
          </def></def-item>
        </def-list></p>
      <p id="d1e495">In order to reduce development effort, CISM runs on a structured rectangular
grid and thus lacks the flexibility of models that run on variable-resolution
or adaptive meshes (e.g., ISSM and BISICLES). Although CISM includes several
common Stokes approximations, it does not solve the more complex “full
Stokes” equations <xref ref-type="bibr" rid="bib1.bibx61" id="paren.18"/>.</p>
      <p id="d1e501">CISM is distributed as source code and therefore requires a reasonably
complete build environment to compile the model. For UNIX- and LINUX-based
systems, the CMake (<uri>http://www.cmake.org/</uri>, last access:
20 January 2019) system is used to build the model. Sample build scripts for
a number of standard architectures are included, as are working build scripts
for a number of high-performance-computing architectures including Cheyenne
(NCAR Computational and Information Systems Laboratory), Titan (Oak Ridge
Leadership Computing Facility), Edison (National Energy Research Scientific
Computing Center), and Cartesius (the Dutch national supercomputer).</p>
      <p id="d1e508">The source code can be obtained by downloading a released version from the
CISM website or by cloning the code from a public git repository; see
Sect. <?unresolvedLink LABEL:sc:code_availability?>. In either case, a Fortran 90 compiler is
required. Other software dependencies include the NetCDF library
(<uri>https://www.unidata.ucar.edu/software/netcdf/</uri>, last access:
20 January 2019) (used for data I/O) and a Python
(<uri>http://www.python.org</uri>, last access: 20 January 2019) distribution
(used to analyze dependencies and to automatically generate parts of the
code) with several specific Python modules. Parallel builds require Message
Passing Interface (MPI), and users desiring access to Trilinos packages
<xref ref-type="bibr" rid="bib1.bibx34" id="paren.19"/> will need to build Trilinos and then link it to CISM.
Finally, CMake and Gnu Make are needed to compile the code and link to the
various third-party libraries. The CISM documentation contains detailed
instructions for downloading and building the code.</p>
      <p id="d1e522">CISM is run by specifying the names of the executable (usually
<italic>cism_driver</italic>) and a configuration file. Typically, the configuration
file includes the input and output filenames, the grid dimensions, the time
step and length of the run, the dycore (Glide or Glissade), and various
options and parameter values appropriate for a given application. If not set
in the config file, each option or parameter takes a default value. Supported
options are described in the model documentation.</p>
      <p id="d1e528">Multiple input, forcing, and output files can be specified, containing any
subset of a large number of global scalars and fields (1-D, 2-D, and 3-D). If
a given field is “loadable” and is present in the input file, it is read
automatically at startup; otherwise, it is set to a default value. Loadable
fields include the initial ice thickness and temperature, bedrock topography,
surface mass balance, surface air temperature, and geothermal heat flux.
Forcing files are input files that are read at every time step (not just at
initialization) so that time-dependent forcing can be applied during a
simulation.</p>
      <p id="d1e531">Each output file includes a user-chosen set of variables (listed in the
configuration file) and can contain multiple time slices, written at any
frequency. A special kind of I/O file is the restart file, which includes all
the fields needed to restart the model exactly. Whatever configuration
options are chosen, model results are exactly reproducible (i.e.,
bit for bit) for a given computer platform and processor count, regardless of
how many times a simulation is stopped and restarted.</p>
      <p id="d1e534">Some basic information is sent to standard output during the run, and more
verbose output is written at regular intervals to a log file. The log file
lists the options and parameter values chosen for the run and also notes the
simulation time when CISM reads or writes I/O. In addition, the log file
includes diagnostic information about the global state of the model (e.g.,
the total ice area and volume, total surface and basal mass balance, and
maximum surface and basal ice speeds), along with vertical profiles of ice
speed and temperature for a user-chosen grid point.</p>
      <p id="d1e537">CISM2.1 has been implemented in CESM version 2.0, released in June 2018.
Earlier versions of CESM supported one-way forcing of the Greenland ice sheet
(using SIA dynamics) by the SMB computed in CESM's land model
<xref ref-type="bibr" rid="bib1.bibx49" id="paren.20"/>. CESM2.0 extends this capability by supporting
conservative, interactive coupling between ice sheets and the land and
atmosphere. Coupling of ice sheets with the ocean is not yet supported but
is under development. CESM2.0 does not have an interactive Antarctic ice sheet,
in part because of the many scientific and technical issues associated with
ice sheet–ocean coupling. However, CISM2.1 includes many of the features
needed to simulate marine ice sheets, and a developmental model version
(including a grounding-line parameterization to be included in a near-future
code release) has been used for Antarctic simulations.</p>
</sec>
<sec id="Ch1.S3">
  <title>Model dynamics and physics</title>
      <p id="d1e549">CISM includes a parallel, higher-order dynamical core called Glissade, which
solves equations for conservation of momentum (i.e., an appropriate
approximation of Stokes flow), mass, and internal energy. Glissade numerics
differ substantially from Glide numerics:
<list list-type="bullet"><list-item>
      <p id="d1e554"><italic>Velocity:</italic> Glide solves the SIA only, but Glissade can solve several
Stokes approximations, including the SIA, SSA, a depth-integrated
higher-order approximation based on <xref ref-type="bibr" rid="bib1.bibx31" id="text.21"/>, and a 3-D
higher-order approximation based on <xref ref-type="bibr" rid="bib1.bibx10" id="text.22"/> and
<xref ref-type="bibr" rid="bib1.bibx60" id="text.23"/>. Glide uses finite differences, whereas the Glissade
velocity solvers use finite-element methods.</p></list-item><list-item>
      <p id="d1e569"><italic>Temperature:</italic>
To evolve the ice temperature, Glide solves a prognostic equation that
incorporates horizontal advection as well as vertical heat diffusion and
internal dissipation. In Glissade, temperature advection is handled by the
transport scheme, and a separate module solves for vertical diffusion and
internal dissipation in each column.</p></list-item><list-item>
      <p id="d1e575"><italic>Mass and tracer transport:</italic>
Glide solves an implicit diffusion equation for mass transport, incorporating
shallow-ice velocities. Glissade solves explicit equations for horizontal
transport of mass (i.e., ice thickness) and tracers (e.g., ice temperature)
using either an incremental remapping scheme <xref ref-type="bibr" rid="bib1.bibx48" id="paren.24"/> or a
simpler first-order upwind scheme. Horizontal transport is followed by
vertical remapping to terrain-following sigma coordinates.</p></list-item></list>
Glissade numerics are described in detail below.</p>
<?pagebreak page390?><sec id="Ch1.S3.SS1">
  <title>Velocity solvers</title>
      <p id="d1e589">Glissade computes the ice velocity by solving approximate Stokes equations,
given the surface elevation, ice thickness, ice temperature, and relevant
boundary conditions. Section <xref ref-type="sec" rid="Ch1.S3.SS1.SSS1"/> describes the
solution method for the Blatter–Pattyn (BP;
<xref ref-type="bibr" rid="bib1.bibx10 bib1.bibx60" id="altparen.25"/>) approximation, which is the most
sophisticated and accurate solver in CISM. Subsequent sections discuss
simpler approximations.</p>
<sec id="Ch1.S3.SS1.SSS1">
  <title>Blatter–Pattyn approximation</title>
      <p id="d1e602">The basic equations of the Blatter–Pattyn  approximation are

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M2" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E1"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where <inline-formula><mml:math id="M3" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M4" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> are the components of horizontal velocity, <inline-formula><mml:math id="M5" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> is the
effective viscosity, <inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the density of ice (assumed
constant), <inline-formula><mml:math id="M7" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula> is gravitational acceleration, <inline-formula><mml:math id="M8" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> is the surface elevation,
and <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> are 3-D Cartesian coordinates. These and other variables and
parameters used in CISM are listed in Tables <xref ref-type="table" rid="Ch1.T1"/> and
<xref ref-type="table" rid="Ch1.T2"/> for reference. In each equation, the three terms
on the left-hand side (LHS) describe gradients of longitudinal stress, lateral shear stress,
and vertical shear stress, respectively, and the right-hand side (RHS) gives the gravitational
driving force. The longitudinal and lateral shear stresses together are
sometimes called membrane stresses <xref ref-type="bibr" rid="bib1.bibx35" id="paren.26"/>. Neglecting membrane
stress gradients leads to the much simpler SIA, and neglecting vertical shear
stress gradients leads to the SSA.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1"><caption><p id="d1e985">Model variables defined in the text.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Variables</oasis:entry>
         <oasis:entry colname="col2">Definition</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M10" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Temperature-dependent rate factor</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M11" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Surface mass balance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Basal mass balance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M13" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Ice sheet bed elevation</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M14" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Lateral calving rate</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Diffusive heat flux</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Geothermal heat flux</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Frictional heat flux</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M18" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Ice thickness</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective thickness at calving front</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Flotation thickness</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M21" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective pressure</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Full overburden pressure</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M23" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Pressure at lateral boundaries</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M24" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Surface elevation</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M25" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Ice temperature</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Ice temperature at floating lower surface</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M27" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Pressure melting point temperature</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mo>⋆</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Absolute temperature corrected for <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M30" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Horizontal ice velocity component</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Basal <inline-formula><mml:math id="M32" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M33" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Horizontal ice velocity component</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Basal <inline-formula><mml:math id="M35" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M36" display="inline"><mml:mi>W</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Water depth</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M37" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Basal traction parameter</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective basal traction parameter (DIVA)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M39" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective viscosity</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M40" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective strain rate</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ϵ</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Strain rate tensor</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M42" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Vertical sigma coordinate</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M43" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Basal shear stress</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Deviatoric stress tensor</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective stress</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Yield stress</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">ec</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Effective calving stress</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M48" display="inline"><mml:mi mathvariant="normal">Φ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Rate of internal heating</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M49" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Till friction angle</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T2" specific-use="star"><caption><p id="d1e1653">Model constant and parameter values used for simulations described
in the text. The calving and sub-shelf melting parameters are used only for
simulations with ice shelves; other parameters are used for all Greenland
simulations.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Parameters</oasis:entry>
         <oasis:entry colname="col2">Value</oasis:entry>
         <oasis:entry colname="col3">Units</oasis:entry>
         <oasis:entry colname="col4">Definition</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M50" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">9.81</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M51" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Gravitational acceleration</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">2009</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M53" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">K</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Specific heat of ice</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">2.1</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M55" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">W</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">K</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Thermal conductivity of ice</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M56" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">335</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M57" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">J</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Latent heat of melting</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">917</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M59" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">kg</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Ice density</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">1026</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M61" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">kg</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Ocean water density</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">1000</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M63" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">kg</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Fresh water density</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M64" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">3</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">Glen flaw low exponent</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M65" display="inline"><mml:mi>q</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.5</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">Exponent for pseudo-plastic sliding</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">100</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M67" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Velocity scale for pseudo-plastic sliding</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">40</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M69" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Maximum bed angle for pseudo-plastic sliding</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>min⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">5</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M71" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Minimum bed angle for pseudo-plastic sliding</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">700</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M73" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Upper bed limit for pseudo-plastic sliding</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mo>min⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">700</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M76" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Lower bed limit for pseudo-plastic sliding</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M77" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.02</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">Minimum effective pressure relative to overburden</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.001</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M79" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Till drainage rate</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">2</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M81" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Maximum till water depth</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">1000</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M83" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Reference effective pressure</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.69</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">Void ratio at reference effective pressure</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.12</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">Till compressibility</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M88" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Yield stress for cliff limiting</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">0.0025</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M90" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">Pa</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Empirical constant for calving</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">25</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">Empirical constant for calving</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">75</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M93" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Minimum thickness for calving</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M95" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">years</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Calving timescale</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M98" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Neutral elevation for sub-shelf melting</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">3</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M100" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Maximum sub-shelf freezing rate</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M103" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Elevation for maximum sub-shelf freezing</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mtext>mlt</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">100</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M105" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Maximum sub-shelf melting rate</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M108" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">yr</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Elevation for maximum sub-shelf melting</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">20</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M110" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Length scale for reducing melt in shallow cavities</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e2779">The equations are discretized on a structured 3-D mesh. In the map plane, the
mesh consists of rectangular cells, each with four vertices. The <italic>nz</italic> vertical
levels of the mesh are<?pagebreak page391?> based on a
terrain-following sigma coordinate system, with <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M112" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula>
is the ice thickness. Each cell layer is treated as a 3-D hexahedral element
with eight nodes. (In other words, cells and vertices are defined to lie in
the map plane, whereas elements and nodes live in 3-D space.) Scalar 2-D
fields such as <inline-formula><mml:math id="M113" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M114" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> are defined at cell centers, and 3-D scalars such
as the ice temperature <inline-formula><mml:math id="M115" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> lie at the centers of elements. Gradients of 2-D
scalars (e.g., the surface slope <inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:mi mathvariant="bold">∇</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>) live at vertices. The
velocity components <inline-formula><mml:math id="M117" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M118" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> are 3-D fields defined at nodes.</p>
      <p id="d1e2862">For problems on multiple processors, a cell or vertex (and the associated
elements and nodes in its column) may be either locally owned or part of a
computational halo. Each processor is responsible for computing <inline-formula><mml:math id="M119" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M120" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>
at its locally owned nodes. Any cell that contains one or more locally owned
nodes and has <inline-formula><mml:math id="M121" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> exceeding a threshold thickness (typically 1 m) is
considered dynamically active, as are the elements in its column. Likewise,
any vertex of an active cell is active, as are the nodes in its column.</p>
      <?pagebreak page392?><p id="d1e2886">The effective viscosity <inline-formula><mml:math id="M122" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> is defined in each active element by

                  <disp-formula id="Ch1.E2" content-type="numbered"><mml:math id="M123" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="italic">η</mml:mi><mml:mo>≡</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mi>A</mml:mi><mml:mfrac><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:mfrac></mml:msup><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">e</mml:mi><mml:mfrac><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:mfrac></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M124" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> is the temperature-dependent rate factor in Glen's flow law
<xref ref-type="bibr" rid="bib1.bibx29" id="paren.27"/>, and <inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the effective strain
rate, given in the BP approximation by

                  <disp-formula id="Ch1.E3" content-type="numbered"><mml:math id="M126" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where the components of the symmetric strain rate tensor are

                  <disp-formula id="Ch1.E4" content-type="numbered"><mml:math id="M127" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The rate factor <inline-formula><mml:math id="M128" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> is given by an Arrhenius relationship:

                  <disp-formula id="Ch1.E5" content-type="numbered"><mml:math id="M129" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>A</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mi>Q</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="normal">R</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is the absolute temperature corrected for the dependence of the
melting point on pressure (<inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mo>*</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">8.7</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, with <inline-formula><mml:math id="M132" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> in
Kelvin), <inline-formula><mml:math id="M133" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula> is a temperature-independent material constant from
<xref ref-type="bibr" rid="bib1.bibx59" id="text.28"/>, <inline-formula><mml:math id="M134" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula> is the activation energy for creep, and R is
the universal gas constant.</p>
      <p id="d1e3280">The coupled partial differential equations (PDEs) (<xref ref-type="disp-formula" rid="Ch1.E1"/>) are discretized using the finite-element
method (e.g., <xref ref-type="bibr" rid="bib1.bibx40 bib1.bibx39" id="altparen.29"/>). This method is more often
applied to unstructured grids but was chosen for CISM's rectangular grid
because of its robustness and natural treatment of boundary conditions
<xref ref-type="bibr" rid="bib1.bibx23" id="paren.30"/>. The PDEs, with appropriate boundary conditions, are
converted to a system of algebraic equations by dividing the full domain into
subdomains (i.e., hexahedral elements), representing the velocity solution on
each element, and integrating over elements. The solution is approximated as
a sum over trilinear basis functions <inline-formula><mml:math id="M135" display="inline"><mml:mi mathvariant="italic">φ</mml:mi></mml:math></inline-formula>. Each active node is
associated with a basis function whose value is <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:mi mathvariant="italic">φ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> at that node,
with <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:mi mathvariant="italic">φ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> at all other nodes. The solution at a point within an
element can be expanded in terms of basis functions and nodal values:

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M138" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>n</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E6"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>v</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>n</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where the sum is over the nodes of the element; <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are nodal values of the solution; and <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
varies smoothly between 0 and 1 within the element.</p>
      <p id="d1e3475">Glissade's finite-element scheme is formally equivalent to that described by
<xref ref-type="bibr" rid="bib1.bibx64" id="text.31"/>. Equation (<xref ref-type="disp-formula" rid="Ch1.E1"/>) can be written
as

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M142" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>-</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E7"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>-</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where

                  <disp-formula id="Ch1.E8" content-type="numbered"><mml:math id="M143" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Following <xref ref-type="bibr" rid="bib1.bibx64" id="text.32"/>, these equations can be rewritten in weak form.
This is done by multiplying Eq. (<xref ref-type="disp-formula" rid="Ch1.E7"/>) by the basis
functions and integrating over the domain, using integration by parts to
eliminate the second derivative:

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M144" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="italic">β</mml:mi><mml:mi>u</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>p</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Γ</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mtext>0</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="italic">β</mml:mi><mml:mi>u</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>p</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Γ</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E9"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mtext>0</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where <inline-formula><mml:math id="M145" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula> represents the domain volume, <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the
lower boundary, <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the lateral boundary (e.g., the
calving front of an ice shelf), <inline-formula><mml:math id="M148" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is a basal traction parameter, <inline-formula><mml:math id="M149" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> is
the pressure at the lateral boundary, and <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are components of
the normal to <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. These equations can also be obtained from
a variational principle as described by <xref ref-type="bibr" rid="bib1.bibx23" id="text.33"/>. The four
terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) represent internal ice stresses,
basal friction, lateral pressure, and the gravitational driving force,
respectively.</p>
      <p id="d1e4139">At the basal boundary, we assume a friction law of the form

                  <disp-formula id="Ch1.E10" content-type="numbered"><mml:math id="M153" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the basal shear stress, <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the basal velocity, and <inline-formula><mml:math id="M156" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is a
non-negative friction parameter that is defined at each vertex and can vary
spatially. For some basal sliding laws (see
Sect. <xref ref-type="sec" rid="Ch1.S3.SS4"/>), <inline-formula><mml:math id="M157" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> depends on the basal
velocity.</p>
      <p id="d1e4223">The lateral pressure <inline-formula><mml:math id="M158" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> applies at marine-terminating boundaries. The net
pressure is equal to the pressure directed outward from the ice toward the
ocean by the ice, minus the (smaller) pressure directed inward from the ocean
by the hydrostatic water pressure. The outward pressure is found by
integrating <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> from <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>H</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M161" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> and
then dividing by <inline-formula><mml:math id="M162" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula>; it is given by

                  <disp-formula id="Ch1.E11" content-type="numbered"><mml:math id="M163" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>p</mml:mi><mml:mtext>out</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The inward pressure is found by integrating <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>z</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula>
(where <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the seawater pressure) from <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>H</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> to 0 and then
dividing by <inline-formula><mml:math id="M167" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>H</mml:mi><mml:mo>-</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>; it is given by

                  <disp-formula id="Ch1.E12" content-type="numbered"><mml:math id="M168" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>p</mml:mi><mml:mtext>in</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>H</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>H</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Assuming hydrostatic balance (i.e., a floating margin), we have <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula>, in which case
Eqs. (<xref ref-type="disp-formula" rid="Ch1.E11"/>) and (<xref ref-type="disp-formula" rid="Ch1.E12"/>) can be
combined to give the net pressure

                  <disp-formula id="Ch1.E13" content-type="numbered"><mml:math id="M170" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            directed from the ice to the ocean. However,
Eqs. (<xref ref-type="disp-formula" rid="Ch1.E11"/>) and (<xref ref-type="disp-formula" rid="Ch1.E12"/>) are used
in the code because they are valid at both grounded and floating marine
margins. They are combined to give the net pressure <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>out</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mtext>in</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> that is integrated over vertical cliff faces
<inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>).</p>
      <?pagebreak page393?><p id="d1e4551">The gravitational forcing terms require evaluating the gradients <inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> at each active vertex. For
vertex <inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (which lies at the upper right corner of cell <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>), these
are computed using a second-order-accurate centered approximation:

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M177" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E14"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              and similarly for <inline-formula><mml:math id="M178" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>. This is equivalent to
computing <inline-formula><mml:math id="M179" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> at the edge midpoints adjacent to the
vertex in the <inline-formula><mml:math id="M180" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> direction, and then averaging the two edge gradients to the
vertex. In some cases (e.g., near steep margins),
Eq. (<xref ref-type="disp-formula" rid="Ch1.E14"/>) can lead to checkerboard noise (i.e., 2-D
patterns of alternating positive and negative deviations in <inline-formula><mml:math id="M181" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> at the grid
scale), because centered averaging of <inline-formula><mml:math id="M182" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> permits a computational mode. To
damp this noise, Glissade also supports upstream gradient calculations that
do not have this computational mode but are formally less accurate.</p>
      <p id="d1e4802">Equation (<xref ref-type="disp-formula" rid="Ch1.E14"/>) is ambiguous at the ice margin, where
at least one of the four cells neighboring a vertex is ice-free. One option
is to include all cells, including ice-free cells, in the gradient. This
approach works reasonably well (albeit with numerical errors; see, e.g.,
<xref ref-type="bibr" rid="bib1.bibx83" id="altparen.34"/>) for land-based ice but can give large gradients
and excessive ice speeds at floating shelf margins. A second option is to
include only ice-covered cells in the gradient. For example, suppose cells
<inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> have ice, but cells <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are
ice-free. Then, lacking the required information to compute <inline-formula><mml:math id="M187" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> gradients at
the adjacent edges, we would set <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. With a <inline-formula><mml:math id="M189" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>
gradient available at one adjacent edge, we would have <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. This option works well at
shelf margins but tends to underestimate gradients at land margins. A third,
hybrid option is to compute a gradient at edges where either (1) both
adjacent cells are ice-covered or (2) one cell is ice-covered and lies
higher in elevation than a neighboring ice-free land cell. Thus, gradients
are set to zero at edges where an ice-covered cell (either grounded or
floating) lies above ice-free ocean, or where an ice-covered land cell lies
below ice-free land (i.e., a nunatak). Since this option works well for both
land and shelf margins, it is the default.</p>
      <p id="d1e4991">Given <inline-formula><mml:math id="M191" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M192" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M193" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula>, and an initial guess for <inline-formula><mml:math id="M194" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M195" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, the problem is to
solve Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) for <inline-formula><mml:math id="M196" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M197" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> at each active
node. This problem can be written as

                  <disp-formula id="Ch1.E15" content-type="numbered"><mml:math id="M198" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="bold">A</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            or more fully,

                  <disp-formula id="Ch1.E16" content-type="numbered"><mml:math id="M199" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">v</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

            In Glissade, <inline-formula><mml:math id="M200" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> is always symmetric and positive definite.</p>
      <p id="d1e5157">Since <inline-formula><mml:math id="M201" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> depends (through <inline-formula><mml:math id="M202" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> and possibly <inline-formula><mml:math id="M203" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>) on <inline-formula><mml:math id="M204" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and
<inline-formula><mml:math id="M205" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, the problem is nonlinear and must be solved iteratively. For each
nonlinear iteration, Glissade computes the 3-D <inline-formula><mml:math id="M206" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> field based on the
current guess for the velocity field and solves a linear problem of the form
(<xref ref-type="disp-formula" rid="Ch1.E16"/>). Then, <inline-formula><mml:math id="M207" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> is updated and the process is repeated
until the solution converges to within a given tolerance. This procedure is
known as Picard iteration.</p>
      <p id="d1e5212">Appendix A describes how the terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) are
summed over elements and assembled into the matrix <inline-formula><mml:math id="M208" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> and vector
<inline-formula><mml:math id="M209" display="inline"><mml:mi mathvariant="bold-italic">b</mml:mi></mml:math></inline-formula>. Section <xref ref-type="sec" rid="Ch1.S3.SS1.SSS5"/> discusses solution methods for the
inner linear problem and the outer nonlinear problem.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS2">
  <title>Shallow-ice approximation</title>
      <p id="d1e5239">The shallow-ice equations follow from the Blatter–Pattyn equations if
membrane stresses are neglected. The SIA analogs of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) are

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M210" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E17"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              The SIA could be considered a special case of the Blatter–Pattyn equations
and solved using the same finite-element methods, ignoring the horizontal
stresses. With these methods, however, each ice column cannot be solved
independently, because each node is linked to its horizontal neighbors by
terms that arise during element assembly. As a result, a finite-element-based
SIA solver is not very efficient.</p>
      <p id="d1e5357">Instead, Glissade has an efficient local SIA solver. The solver is local in
the sense that <inline-formula><mml:math id="M211" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M212" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> in each column are found independently of <inline-formula><mml:math id="M213" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and
<inline-formula><mml:math id="M214" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> in other columns. It resembles Glide's SIA solver as described by
<xref ref-type="bibr" rid="bib1.bibx63" id="text.35"/> and <xref ref-type="bibr" rid="bib1.bibx72" id="text.36"/>, except that Glide incorporates the
velocity solution in a diffusion equation for ice thickness, whereas
Glissade's SIA solver computes <inline-formula><mml:math id="M215" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M216" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> only, with thickness evolution
handled separately as described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>.</p>
      <p id="d1e5411">For small problems that can run on one processor, there is no particular
advantage to using Glissade's local SIA solver in place of Glide. Glide's
implicit thickness solver permits a longer time step and thus is more
efficient for problems run in serial. For whole-ice-sheet problems, however,
Glissade's parallel solver can hold more data in memory and may have faster
throughput, simply because it can run on tens to hundreds of processors.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS3">
  <title>Shallow-shelf approximation</title>
      <?pagebreak page394?><p id="d1e5420">The SSA equations can be derived by vertically integrating the BP equations,
given the assumption of small basal shear stress and vertically uniform
velocity. The shallow-shelf analog of Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) is

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M217" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E18"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where <inline-formula><mml:math id="M218" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> is the vertically averaged effective viscosity, and <inline-formula><mml:math id="M219" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>
and <inline-formula><mml:math id="M220" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> are vertically averaged velocity components. The SSA equations in
weak form resemble Eqs. (<xref ref-type="disp-formula" rid="Ch1.E8"/>) and
(<xref ref-type="disp-formula" rid="Ch1.E9"/>) but without the vertical shear terms. Thus, the
SSA matrix and RHS can be assembled using the methods described in
Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS1"/> and Appendix A, using 2-D rectangular
(instead of 3-D hexahedral) elements and omitting the vertical shear terms.
The effective viscosity is defined as in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) but with a vertically averaged flow
factor and with Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>) replaced by

                  <disp-formula id="Ch1.E19" content-type="numbered"><mml:math id="M221" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>y</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The element matrices are 2-D analogs of
Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.E3"/>)–(<xref ref-type="disp-formula" rid="App1.Ch1.E6"/>), with vertical
derivatives excluded.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS4">
  <title>Depth-integrated-viscosity approximation</title>
      <p id="d1e5838"><xref ref-type="bibr" rid="bib1.bibx31" id="text.37"/> derived a higher-order stress approximation that in most
cases is similar in accuracy to BP but is much cheaper to solve, because (as
with the SSA) the matrix system is assembled and solved in two dimensions.
Since the stress balance equations use a depth-integrated effective viscosity
in place of a vertically varying viscosity, we refer to this scheme as a
depth-integrated-viscosity approximation, or DIVA. <xref ref-type="bibr" rid="bib1.bibx2" id="text.38"/> used a
similar model, also based on <xref ref-type="bibr" rid="bib1.bibx31" id="text.39"/>, to simulate ice flow in
the Amundsen Sea sector of West Antarctica. To our knowledge, CISM is the
first model to adapt this scheme for multimillennial whole-ice-sheet
simulations. Here, we summarize the DIVA stress balance and describe
Glissade's solution method. Section <xref ref-type="sec" rid="Ch1.S4.SS2"/> compares DIVA
results to BP results for the ISMIP-HOM experiments <xref ref-type="bibr" rid="bib1.bibx61" id="paren.40"/>.</p>
      <p id="d1e5854"><xref ref-type="bibr" rid="bib1.bibx23" id="text.41"/> showed that the Blatter–Pattyn equations
(Eq. <xref ref-type="disp-formula" rid="Ch1.E1"/>) and associated boundary conditions can be
derived by taking the first variation of a functional and setting it to zero.
The functional includes terms that depend on the effective strain rate
(Eq. <xref ref-type="disp-formula" rid="Ch1.E3"/>), which can be written as

                  <disp-formula id="Ch1.E20" content-type="numbered"><mml:math id="M222" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">BP</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>u</mml:mi><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>v</mml:mi><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:msub><mml:mi>v</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>u</mml:mi><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>v</mml:mi><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the partial derivative <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>, and
similarly for other derivatives. <xref ref-type="bibr" rid="bib1.bibx31" id="text.42"/> derived an alternate
set of equations using a similar functional but with the horizontal velocity
gradients in the effective strain rate replaced by their vertical averages:

                  <disp-formula id="Ch1.E21" content-type="numbered"><mml:math id="M225" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">DIVA</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>x</mml:mi></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>y</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>y</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>u</mml:mi><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>v</mml:mi><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where

                  <disp-formula id="Ch1.E22" content-type="numbered"><mml:math id="M226" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">b</mml:mi><mml:mi>s</mml:mi></mml:munderover><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">b</mml:mi><mml:mi>s</mml:mi></mml:munderover><mml:mi>v</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The resulting equations of motion, analogous to
Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), are

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M227" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E23"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where the depth-integrated effective viscosity is given by

                  <disp-formula id="Ch1.E24" content-type="numbered"><mml:math id="M228" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">b</mml:mi><mml:mi>s</mml:mi></mml:munderover><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e6618">The vertical shear terms still contain <inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e6635">Since the horizontal stress terms are depth-independent,
Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>) can be integrated in the vertical to
give

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M230" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>H</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E25"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where the boundary conditions at <inline-formula><mml:math id="M231" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M232" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> have been used to evaluate the
vertical stress terms, with a sliding law of the form
Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>).
Equation (<xref ref-type="disp-formula" rid="Ch1.E25"/>) is equivalent to the
SSA stress balance (Eq. <xref ref-type="disp-formula" rid="Ch1.E18"/>), except for the
addition of basal stress terms. Thus, the methods used to assemble and solve
the SSA equations can be applied to the DIVA equations to find the mean
velocity components <inline-formula><mml:math id="M233" display="inline"><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M234" display="inline"><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula>.</p>
      <?pagebreak page395?><p id="d1e7001">In order to solve Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>), however,
the basal stress terms must be rewritten in terms of <inline-formula><mml:math id="M235" display="inline"><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M236" display="inline"><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula>.
Following <xref ref-type="bibr" rid="bib1.bibx31" id="text.43"/>, we show how this is done for the <inline-formula><mml:math id="M237" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>
component of velocity; the <inline-formula><mml:math id="M238" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> component is analogous. The <inline-formula><mml:math id="M239" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> component of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>) can be rearranged and
divided by <inline-formula><mml:math id="M240" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula>:

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M241" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>H</mml:mi><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E26"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi>H</mml:mi><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              From Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>), the RHS of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E26"/>) is just <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, giving

                  <disp-formula id="Ch1.E27" content-type="numbered"><mml:math id="M243" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Integrating Eq. (<xref ref-type="disp-formula" rid="Ch1.E27"/>) from <inline-formula><mml:math id="M244" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> to the surface <inline-formula><mml:math id="M245" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> gives

                  <disp-formula id="Ch1.E28" content-type="numbered"><mml:math id="M246" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="italic">η</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfenced></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Dividing by <inline-formula><mml:math id="M247" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> and integrating from <inline-formula><mml:math id="M248" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> to <inline-formula><mml:math id="M249" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> gives <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in terms of
<inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>:

                  <disp-formula id="Ch1.E29" content-type="numbered"><mml:math id="M253" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">b</mml:mi><mml:mi>z</mml:mi></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mi>z</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>z</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">d</mml:mi><mml:msup><mml:mi>z</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Following <xref ref-type="bibr" rid="bib1.bibx3" id="text.44"/>, we can define some useful integrals <inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as

                  <disp-formula id="Ch1.E30" content-type="numbered"><mml:math id="M255" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>≡</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">b</mml:mi><mml:mi>s</mml:mi></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">η</mml:mi></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>n</mml:mi></mml:msup><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            In this notation, the surface velocity is related to the bed velocity by

                  <disp-formula id="Ch1.E31" content-type="numbered"><mml:math id="M256" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Integrating <inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> from the bed to the surface gives the depth-averaged mean velocity <inline-formula><mml:math id="M258" display="inline"><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula>:

                  <disp-formula id="Ch1.E32" content-type="numbered"><mml:math id="M259" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            We can think of <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> as a depth-integrated inverse viscosity. The less
viscous the ice, the greater the value of <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and the greater the
difference between <inline-formula><mml:math id="M262" display="inline"><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e7715">Given Eq. (<xref ref-type="disp-formula" rid="Ch1.E32"/>), we can replace <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>) with <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>, respectively, where

                  <disp-formula id="Ch1.E33" content-type="numbered"><mml:math id="M268" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mtext>eff</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            For a frozen bed (<inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, with nonzero basal
stress <inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>), the <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> term on the RHS of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E29"/>) is replaced by <inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, leading
to

                  <disp-formula id="Ch1.E34" content-type="numbered"><mml:math id="M273" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Then, the basal stress terms in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>) can be replaced by
<inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">β</mml:mi><mml:mtext>eff</mml:mtext><mml:mtext>frz</mml:mtext></mml:msubsup><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">β</mml:mi><mml:mtext>eff</mml:mtext><mml:mtext>frz</mml:mtext></mml:msubsup><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>, where

                  <disp-formula id="Ch1.E35" content-type="numbered"><mml:math id="M276" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi mathvariant="italic">β</mml:mi><mml:mtext>eff</mml:mtext><mml:mtext>frz</mml:mtext></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            With these substitutions, Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>)
can be written in terms of mean velocities <inline-formula><mml:math id="M277" display="inline"><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M278" display="inline"><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and is
fully analogous to the SSA.</p>
      <p id="d1e7997">In order to compute <inline-formula><mml:math id="M279" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula>, the effective viscosity <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> must be
evaluated at each level. We use Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) with
the effective strain rate (Eq. <xref ref-type="disp-formula" rid="Ch1.E21"/>). The
horizontal terms in <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mtext>DIVA</mml:mtext><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> are found using the
mean velocities from the previous iteration. The vertical shear terms are
computed using Eq. (<xref ref-type="disp-formula" rid="Ch1.E28"/>):

                  <disp-formula id="Ch1.E36" content-type="numbered"><mml:math id="M282" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>u</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mi>H</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>v</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mi>H</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where both <inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are from the previous
iteration.</p>
      <p id="d1e8175">The DIVA solution procedure can be summarized as follows:
<list list-type="order"><list-item>
      <p id="d1e8180">Starting with the current guess for the velocity field <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, assemble the DIVA solution matrix in analogy to the
SSA solution matrix, with the following DIVA-specific computations:
<list list-type="bullet"><list-item>
      <p id="d1e8201">Compute <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> using Eqs. (<xref ref-type="disp-formula" rid="Ch1.E2"/>),
(<xref ref-type="disp-formula" rid="Ch1.E21"/>), and (<xref ref-type="disp-formula" rid="Ch1.E36"/>), and integrate to find the depth-averaged <inline-formula><mml:math id="M287" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula>.</p></list-item><list-item>
      <p id="d1e8235">Evaluate numerically the vertical integrals
in Eqs. (<xref ref-type="disp-formula" rid="Ch1.E29"/>) and (<xref ref-type="disp-formula" rid="Ch1.E30"/>).</p></list-item><list-item>
      <p id="d1e8243">Interpolate <inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> to vertices and compute <inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item></list></p></list-item><list-item>
      <p id="d1e8269">Solve the matrix system for <inline-formula><mml:math id="M290" display="inline"><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M291" display="inline"><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula>.</p></list-item><list-item>
      <p id="d1e8293">Given <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>v</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> at each vertex, use Eq. (<xref ref-type="disp-formula" rid="Ch1.E32"/>) to find <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>,
and then use Eq. (<xref ref-type="disp-formula" rid="Ch1.E29"/>) to find <inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> at each level.</p></list-item><list-item>
      <p id="d1e8359">Iterate to convergence.</p></list-item></list>
The code is initialized with <inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> everywhere, and thereafter each
iterated solution starts with <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> from the previous time step.</p>
      <p id="d1e8399">DIVA assumes that horizontal gradients of membrane stresses are vertically
uniform. It is less accurate than the BP approximation in regions of slow
sliding and rough bed topography, where the horizontal gradients of membrane
stresses vary strongly with height, and may also be less accurate where
vertical temperature gradients are large. The accuracy of DIVA compared to BP
is discussed in Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/> with reference to the ISMIP-HOM
benchmark experiments.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS5">
  <title>Solving the matrix system</title>
      <p id="d1e8410">After assembling the matrices and right-hand side vectors for the chosen
approximation (SSA, DIVA, or BP), we solve the linear problem of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E16"/>). Glissade supports three kinds of solvers: (1) a
native Fortran preconditioned conjugate gradient (PCG) solver, (2) links to
Trilinos solver libraries, and (3) links to the Sparse Linear Algebra Package
(SLAP).</p>
      <p id="d1e8415">The native PCG solver works directly with the assembled matrices
(<inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and
<inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) and the right-hand-side vectors (<inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>). Instead of converting to a sparse matrix format such as
compressed row storage, Glissade maintains these matrices and vectors as
structured rectangular arrays with <inline-formula><mml:math id="M303" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M304" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> indices, so that they can be
handled by CISM's halo update routines. Each node location <inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (in 2-D)
or <inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (in 3-D) corresponds to a row of the matrix, and an additional
index <inline-formula><mml:math id="M307" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> ranges over the neighboring nodes that can have nonzero terms in
the columns of that row. The maximum number of nonzero terms per row is 9 in
2-D and 27 in 3-D.</p>
      <p id="d1e8554">The matrices and RHS vectors are passed to either a “standard” PCG solver
<xref ref-type="bibr" rid="bib1.bibx81" id="paren.45"/> or a Chronopoulos–Gear PCG solver
<xref ref-type="bibr" rid="bib1.bibx17 bib1.bibx18" id="paren.46"/>. The PCG algorithm includes two
dot products (each requiring a global sum), one matrix–vector product, and
one preconditioning step per iteration. For small problems, the dominant
computational cost is the matrix–vector product. For large problems, however,
the global sums become increasingly expensive. In this case, the
Chronopoulos–Gear solver is more efficient than the standard solver, because
it rearranges operations such that both global sums are done with a single
MPI call.</p>
      <p id="d1e8563">As described by <xref ref-type="bibr" rid="bib1.bibx81" id="text.47"/>, the convergence rate of the PCG method
depends on the effectiveness of the preconditioner (i.e., a matrix
<inline-formula><mml:math id="M308" display="inline"><mml:mi mathvariant="bold">M</mml:mi></mml:math></inline-formula> which approximates <inline-formula><mml:math id="M309" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> and can be inverted
efficiently). Glissade's native PCG solver has two preconditioning options:
<list list-type="bullet"><list-item>
      <p id="d1e8585">diagonal preconditioning, in which <inline-formula><mml:math id="M310" display="inline"><mml:mi mathvariant="bold">M</mml:mi></mml:math></inline-formula> consists
of the diagonal terms of <inline-formula><mml:math id="M311" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> and is trivial to invert, and</p></list-item><list-item>
      <p id="d1e8603">shallow-ice-based preconditioning (for the BP approximation only). In this case, <inline-formula><mml:math id="M312" display="inline"><mml:mi mathvariant="bold">M</mml:mi></mml:math></inline-formula> includes only the terms in <inline-formula><mml:math id="M313" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula>
that link a given node to itself and its neighbors above and below. Thus, <inline-formula><mml:math id="M314" display="inline"><mml:mi mathvariant="bold">M</mml:mi></mml:math></inline-formula> is
tridiagonal and can be inverted efficiently. This preconditioner works well when the physics
is dominated by vertical shear but not as well when membrane stresses are important. Since
the preconditioner is local (it consists of independent column solves), it scales well for large problems.</p></list-item></list></p>
      <p id="d1e8628">The Trilinos solver <xref ref-type="bibr" rid="bib1.bibx34" id="paren.48"/> uses C++ packages developed at Sandia
National Laboratories. As described by <xref ref-type="bibr" rid="bib1.bibx25" id="text.49"/>, an earlier version
of CISM's higher-order dycore, known as Glam, was parallelized and linked to
Trilinos. The Trilinos links developed for Glam were then adapted for
Glissade's SSA, DIVA, and BP solvers. The CISM documentation gives
instructions for building and linking to Trilinos and choosing appropriate
solver settings.</p>
      <p id="d1e8637">SLAP is a set of Fortran routines for solving sparse systems of linear
equations. SLAP was part of Glimmer and is used to solve for thickness
evolution and temperature advection in Glide. It can also be used to solve
higher-order systems in Glissade, using either GMRES or a biconjugate
gradient solver. The SLAP solver, however, is a serial code unsuited for
large problems.</p>
      <p id="d1e8640">The default linear solver is native PCG using the Chronopoulos–Gear
algorithm. Although it has been found to run efficiently on platforms ranging
from laptops to supercomputers, its preconditioning options are limited, so
convergence can be slow for problems with dominant membrane stresses (e.g.,
large marine ice sheets). SLAP solvers are generally robust and efficient
but are limited to one processor. Trilinos contains many solver options, but
in tests to date – using a generalized minimal residual (GMRES) solver with
incomplete lower–upper (ILU) preconditioning – it has been
found to be slower than the native PCG solver because of the extra cost of
setting up Trilinos data structures, and possibly the slower performance of
C++ compared to Fortran for the solver.</p>
      <p id="d1e8643">The linear solver is wrapped by a nonlinear solver that does Picard
iteration. Following each iteration, a new global matrix is assembled, using
the latest velocity solution to compute the effective viscosity. Glissade
then computes the new residual, <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:math></inline-formula>. If
the <inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> norm of the residual, defined as <inline-formula><mml:math id="M317" display="inline"><mml:msqrt><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msqrt></mml:math></inline-formula>, is
smaller than a prescribed tolerance threshold, the nonlinear system of
equations is considered solved. Otherwise, the linear solver is called again,
until the solution converges or the maximum number of nonlinear iterations
(typically 100) is reached. The number of nonlinear iterations per solve –
and optionally, the number of linear iterations per nonlinear iteration –
is written to standard output. In the event of non-convergence, a warning
message is written to output, but the run continues. In some cases,
convergence may improve later in the simulation, or solutions may be deemed
sufficiently accurate even when not fully converged.</p>
</sec>
</sec>
<?pagebreak page396?><sec id="Ch1.S3.SS2">
  <title>Temperature solver</title>
      <p id="d1e8699">The thermal evolution of the ice sheet is given by

                <disp-formula id="Ch1.E37" content-type="numbered"><mml:math id="M318" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi mathvariant="normal">∇</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="bold">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mi>w</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M319" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is the temperature in <inline-formula><mml:math id="M320" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, <inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the
horizontal velocity, <inline-formula><mml:math id="M322" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> is the vertical velocity, <inline-formula><mml:math id="M323" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the
thermal conductivity of ice, <inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the specific heat of ice,
<inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the ice density, and <inline-formula><mml:math id="M326" display="inline"><mml:mi mathvariant="normal">Φ</mml:mi></mml:math></inline-formula> is the rate of heating due
to internal deformation and dissipation. This equation describes the
conservation of internal energy under horizontal and vertical diffusion (the
first term on the RHS), horizontal and vertical advection (the second and
third terms, respectively), and internal heat dissipation (the last term).
Unlike Glide, which solves this equation in a single calculation, Glissade
divides the temperature evolution into separate advection and
diffusion/dissipation components. The temperature module uses
finite-difference methods to solve for vertical diffusion and internal
dissipation in each ice column:

                <disp-formula id="Ch1.E38" content-type="numbered"><mml:math id="M327" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>c</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          as described in this section. The advective part of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E37"/>) is described in
Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>. Horizontal diffusion is assumed to be
negligible compared to vertical diffusion, giving <inline-formula><mml:math id="M328" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">∇</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi><mml:mo>≃</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e8989">In Glissade's vertical discretization of temperature, <inline-formula><mml:math id="M329" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is located at the
midpoints of the <inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> layers, staggered relative to the velocity. This
staggering makes it easier to conserve internal energy under transport, where
the internal energy in an ice column is equal to the sum over layers of
<inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula>, with layer thickness <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula>.
The upper surface skin temperature is denoted by <inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and the lower surface
skin temperature by <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, giving a total of <inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> temperature values in
each column.</p>
      <p id="d1e9089">The following sections describe how the terms in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E38"/>) are computed, how the boundary conditions
are specified, and how the equation is solved.</p>
<sec id="Ch1.S3.SS2.SSS1">
  <title>Vertical diffusion</title>
      <?pagebreak page397?><p id="d1e9099">Glissade uses a vertical <inline-formula><mml:math id="M336" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> coordinate, with <inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>≡</mml:mo><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula>.
Thus, the vertical diffusion terms can be written as

                  <disp-formula id="Ch1.E39" content-type="numbered"><mml:math id="M338" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>z</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msup><mml:mi>H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The central difference formulas for first derivatives at the upper and lower
interfaces of layer <inline-formula><mml:math id="M339" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> are

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M340" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mfenced close="|" open=""><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">σ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E40"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mfenced close="|" open=""><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">σ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where <inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the value of <inline-formula><mml:math id="M342" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> at the midpoint of layer
<inline-formula><mml:math id="M343" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, halfway between <inline-formula><mml:math id="M344" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M345" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. The second partial
derivative, defined at the midpoint of layer <inline-formula><mml:math id="M346" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>, is

                  <disp-formula id="Ch1.E41" content-type="numbered"><mml:math id="M347" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mfenced open="" close="|"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mfenced open="" close="|"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">σ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mfenced open="" close="|"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">σ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Inserting Eq. (<xref ref-type="disp-formula" rid="Ch1.E40"/>) into (<xref ref-type="disp-formula" rid="Ch1.E41"/>), we
obtain the vertical diffusion term:

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M348" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mfenced close="|" open=""><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{9.5}{9.5}\selectfont$\displaystyle}?><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E42"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="Ch1.S3.SS2.SSS2">
  <title>Heat dissipation</title>
      <p id="d1e9825">In higher-order models, the internal heating rate <inline-formula><mml:math id="M349" display="inline"><mml:mi mathvariant="normal">Φ</mml:mi></mml:math></inline-formula> in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E38"/>) is given by the tensor product of strain
rate and stress:

                  <disp-formula id="Ch1.E43" content-type="numbered"><mml:math id="M350" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M351" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the deviatoric stress tensor. The effective stress
(cf. Eq. <xref ref-type="disp-formula" rid="Ch1.E3"/>) is defined by

                  <disp-formula id="Ch1.E44" content-type="numbered"><mml:math id="M352" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The stress tensor is related to the strain rate and the effective viscosity by

                  <disp-formula id="Ch1.E45" content-type="numbered"><mml:math id="M353" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Dividing each side of Eq. (<xref ref-type="disp-formula" rid="Ch1.E45"/>) by <inline-formula><mml:math id="M354" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi></mml:mrow></mml:math></inline-formula>,
substituting in Eq. (<xref ref-type="disp-formula" rid="Ch1.E43"/>), and using
Eq. (<xref ref-type="disp-formula" rid="Ch1.E44"/>) gives

                  <disp-formula id="Ch1.E46" content-type="numbered"><mml:math id="M355" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow><mml:mi mathvariant="italic">η</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e10001">Both terms on the RHS of Eq. (<xref ref-type="disp-formula" rid="Ch1.E46"/>) are available to
the temperature solver, since the higher-order velocity solver computes
<inline-formula><mml:math id="M356" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> during matrix assembly and diagnoses <inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> from <inline-formula><mml:math id="M358" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> and
<inline-formula><mml:math id="M359" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> at the end of the calculation.</p>
</sec>
<sec id="Ch1.S3.SS2.SSS3">
  <title>Boundary conditions</title>
      <p id="d1e10054">The temperature <inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> at the upper boundary is set to
<inline-formula><mml:math id="M361" display="inline"><mml:mrow><mml:mo>min⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">air</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where the surface air temperature
<inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">air</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is usually specified from data or passed from a climate
model. The diffusive heat flux at the upper boundary (defined as positive up)
is

                  <disp-formula id="Ch1.E47" content-type="numbered"><mml:math id="M363" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi>F</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where the denominator contains just one term because <inline-formula><mml:math id="M364" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e10167">The lower ice boundary is more complex. For grounded ice, there are three heat sources and sinks.
First, the diffusive flux from the bottom surface to the ice interior (positive up) is

                  <disp-formula id="Ch1.E48" content-type="numbered"><mml:math id="M365" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi>F</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Second, there is a geothermal heat flux <inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> which can be
prescribed as a constant (<inline-formula><mml:math id="M367" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">0.05</mml:mn></mml:mrow></mml:math></inline-formula> W m<inline-formula><mml:math id="M368" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) or read from an input
file. Finally, there is a frictional heat flux associated with basal sliding,
given by

                  <disp-formula id="Ch1.E49" content-type="numbered"><mml:math id="M369" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M370" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M371" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are 2-D vectors of
basal shear stress and basal velocity, respectively. With a friction law
given by Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>), this becomes

                  <disp-formula id="Ch1.E50" content-type="numbered"><mml:math id="M372" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mi>u</mml:mi><mml:mi mathvariant="normal">b</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>v</mml:mi><mml:mi mathvariant="normal">b</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e10366">If the basal temperature <inline-formula><mml:math id="M373" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (where
<inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the pressure melting point temperature), then the
fluxes at the lower boundary must balance:

                  <disp-formula id="Ch1.E51" content-type="numbered"><mml:math id="M375" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            In other words, the energy supplied by geothermal heating and sliding
friction is equal to the energy removed by vertical diffusion. If, on the
other hand, <inline-formula><mml:math id="M376" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, then the net flux is nonzero and is
used to melt or freeze ice at the boundary:

                  <disp-formula id="Ch1.E52" content-type="numbered"><mml:math id="M377" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">bot</mml:mi></mml:msubsup></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>L</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M378" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the melt rate and <inline-formula><mml:math id="M379" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> is the latent heat of melting.
Melting generates basal water, which may either stay in place, flow
downstream (possibly replaced by water from upstream), or simply disappear
from the system, depending on the basal water parameterization. While basal
water is present, <inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is held at <inline-formula><mml:math id="M381" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e10544">For floating ice, the basal boundary condition is simpler; <inline-formula><mml:math id="M382" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is set to
the freezing temperature <inline-formula><mml:math id="M383" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of seawater, taken as a linear
function of depth based on the pressure-dependent melting point of seawater.
Optionally, a melt rate can be prescribed at the lower surface
(Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>).</p>
</sec>
<?pagebreak page398?><sec id="Ch1.S3.SS2.SSS4">
  <title>Vertical temperature solution</title>
      <p id="d1e10580">Equation (<xref ref-type="disp-formula" rid="Ch1.E38"/>) can be discretized for layer <inline-formula><mml:math id="M384" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> as

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M385" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mi>k</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mi>k</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msup><mml:mi>H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mi>k</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E53"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where the coefficients <inline-formula><mml:math id="M386" display="inline"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are inferred from
Eq. (<xref ref-type="disp-formula" rid="Ch1.E42"/>), and <inline-formula><mml:math id="M388" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the current time level. The vertical
diffusion terms are evaluated at the new time level, making the
discretization backward Euler (i.e., fully implicit) in time.
Equation (<xref ref-type="disp-formula" rid="Ch1.E53"/>) can be rewritten as

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M389" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mi>k</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E54"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>=</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mi>k</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where

                  <disp-formula id="Ch1.E55" content-type="numbered"><mml:math id="M390" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>a</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msup><mml:mi>H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msup><mml:mi>H</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            At the lower surface, we have either a temperature boundary condition (<inline-formula><mml:math id="M391" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for grounded ice, or <inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for floating
ice) or a flux boundary condition:

                  <disp-formula id="Ch1.E56" content-type="numbered"><mml:math id="M393" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            which can be rearranged to give

                  <disp-formula id="Ch1.E57" content-type="numbered"><mml:math id="M394" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>-</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mi>H</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">σ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            In each ice column, the above equations form a tridiagonal system that is
solved for <inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in each layer.</p>
      <p id="d1e11278">Occasionally, the solution <inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can exceed <inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for a given
layer. If so, we set <inline-formula><mml:math id="M398" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and use the extra energy to
melt ice internally. This melt is assumed to drain immediately to the bed. If
Eq. (<xref ref-type="disp-formula" rid="Ch1.E52"/>) applies, we compute <inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and adjust
the basal water depth. When the basal water goes to zero, <inline-formula><mml:math id="M400" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is set to
the temperature of the lowest layer (less than <inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> at the
bed), so that the flux boundary condition will apply during the next time
step.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS3">
  <title>Mass and tracer transport</title>
      <p id="d1e11367">The transport equation for ice thickness <inline-formula><mml:math id="M402" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> can be written as

                <disp-formula id="Ch1.E58" content-type="numbered"><mml:math id="M403" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>H</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>B</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M404" display="inline"><mml:mi mathvariant="bold-italic">U</mml:mi></mml:math></inline-formula> is the vertically averaged 2-D velocity and <inline-formula><mml:math id="M405" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> is the total
surface mass balance. This equation describes the conservation of ice volume
under horizontal transport. With the assumption of uniform density, volume
conservation is equivalent to mass conservation. There is a similar
conservation equation for the internal energy in each ice layer:

                <disp-formula id="Ch1.E59" content-type="numbered"><mml:math id="M406" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mi>T</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M407" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is the layer thickness, <inline-formula><mml:math id="M408" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> is the temperature (located at the
layer midpoint), and <inline-formula><mml:math id="M409" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> is the layer-average horizontal velocity.
(Vertical diffusion and internal dissipation are handled separately as
described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>.) If other tracers are
present, their transport is described by conservation equations of the same
form as Eq. (<xref ref-type="disp-formula" rid="Ch1.E59"/>). Glissade solves
Eqs. (<xref ref-type="disp-formula" rid="Ch1.E58"/>) and (<xref ref-type="disp-formula" rid="Ch1.E59"/>) in
a coordinated way, one layer at a time. All tracers, including temperature,
are advected using the same algorithm.</p>
      <p id="d1e11507">Glissade has two horizontal transport schemes: a first-order upwind scheme
and a more accurate incremental remapping (IR) scheme <xref ref-type="bibr" rid="bib1.bibx22 bib1.bibx48" id="paren.50"/>. The IR scheme is the default. This scheme was first
implemented in the Los Alamos sea ice model, CICE, and has been adapted for
CISM. Since the scheme is fairly complex, we give a summary in
Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS1"/> and refer the reader to the earlier
publications for details.</p>
      <p id="d1e11515">After horizontal transport, the mass balance is applied at the top and bottom
ice surfaces. The new vertical layers generally do not have the desired
spacing in <inline-formula><mml:math id="M410" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> coordinates. For this reason, a vertical remapping scheme
is applied to transfer ice volume, internal energy, and other conserved
quantities between adjacent layers, thus restoring each column to the desired
<inline-formula><mml:math id="M411" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> coordinates while conserving mass and energy. (This is a common
feature of arbitrary Lagrangian–Eulerian (ALE) methods.) Internal energy
divided by mass gives the new layer temperatures, and similarly for other
tracers.</p>
<sec id="Ch1.S3.SS3.SSS1">
  <title>Incremental remapping</title>
      <p id="d1e11537">The incremental remapping scheme has several desirable features:
<list list-type="bullet"><list-item>
      <p id="d1e11542">It conserves the quantities being transported (including mass and internal energy).</p></list-item><list-item>
      <p id="d1e11546">It is non-oscillatory; that is, it does not create spurious ripples in the transported fields.</p></list-item><list-item>
      <p id="d1e11550">It preserves tracer monotonicity.  That is, it does not create new extrema in tracers such as
temperature; the values at time <inline-formula><mml:math id="M412" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> are bounded by the values at time <inline-formula><mml:math id="M413" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>.
Thus, <inline-formula><mml:math id="M414" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> never rises above the melting point under advection.</p></list-item><list-item>
      <p id="d1e11580">It is second-order accurate in space and therefore is less diffusive than first-order schemes.
The accuracy may be reduced locally to first order to preserve monotonicity.</p></list-item><list-item>
      <p id="d1e11584">It is efficient for large numbers of tracers. Much of the work is geometrical and is performed
only once per cell edge instead of being repeated for each field being transported.</p></list-item></list>
The model's upwind scheme, like IR, is conservative, non-oscillatory, and
monotonicity preserving, but because it is first order it is highly
diffusive.</p>
      <p id="d1e11588">The IR time step is limited by the requirement that trajectories projected
backward from grid cell corners are confined to the four surrounding cells;
this is what is meant by incremental as opposed to general remapping. This
requirement leads to an advective Courant–Friedrichs–Lewy (CFL) condition,

                  <disp-formula id="Ch1.E60" content-type="numbered"><mml:math id="M415" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>|</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The remapping algorithm can be summarized as follows:
<list list-type="order"><list-item>
      <p id="d1e11625">Given mean values of the ice thickness and tracer fields in each grid cell, construct
linear approximations of these fields that preserve the mean. Limit the field gradients to preserve monotonicity.</p></list-item><list-item>
      <p id="d1e11629">Given ice velocities at grid cell vertices, identify departure regions for the fluxes
across each cell edge.  Divide these departure regions into triangles and compute the coordinates of the triangle vertices.</p></list-item><list-item>
      <p id="d1e11633">Integrate the thickness and tracer fields over the departure triangles to obtain the
mass and energy transported across each cell edge.</p></list-item><list-item>
      <p id="d1e11637">Given this transport, update the state variables.</p></list-item></list>
These steps are carried out for each of <inline-formula><mml:math id="M416" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> ice layers, where <inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> is the number of velocity levels.</p>
</sec>
<?pagebreak page399?><sec id="Ch1.S3.SS3.SSS2">
  <title>CFL checks</title>
      <p id="d1e11672">As mentioned above, the time step for explicit mass transport is limited by
the advective CFL condition (Eq. <xref ref-type="disp-formula" rid="Ch1.E60"/>). For ice flow parallel to
<inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:mi mathvariant="bold">∇</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, ice thickness evolution is diffusive, giving rise to a
diffusive CFL condition <xref ref-type="bibr" rid="bib1.bibx11" id="paren.51"/>:

                  <disp-formula id="Ch1.E61" content-type="numbered"><mml:math id="M419" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>(</mml:mo><mml:mo movablelimits="false">max⁡</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M420" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> is the ice flow diffusivity. Flow governed by the shallow-ice
approximation is subject to this diffusive CFL. The stability of Glissade's
BP, DIVA, and SSA solvers, however, is limited by Eq. (<xref ref-type="disp-formula" rid="Ch1.E60"/>) in
practice; Eq. (<xref ref-type="disp-formula" rid="Ch1.E61"/>) is too restrictive. For this
reason, Glissade checks for advective CFL violations at each time step.
Optionally, the transport equation can be adaptively subcycled within a time
step to satisfy advective CFL. This can prevent the model from crashing,
though possibly with a loss of accuracy.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS4">
  <title>Basal sliding</title>
      <p id="d1e11743">Glissade assumes a basal friction law of the form
Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>). If <inline-formula><mml:math id="M421" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> were independent of velocity, then
Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>) would be a simple linear sliding law. Allowing
<inline-formula><mml:math id="M422" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> to depend on velocity allows more complex and physically realistic
sliding laws. The following options are supported in CISM:</p>
      <p id="d1e11764"><list list-type="bullet">
            <list-item>

      <p id="d1e11769">Spatially uniform <inline-formula><mml:math id="M423" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>, possibly a large value that makes sliding negligible.</p>
            </list-item>
            <list-item>

      <p id="d1e11782">No sliding, enforced by a Dirichlet boundary condition (<inline-formula><mml:math id="M424" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) during finite-element assembly.</p>
            </list-item>
            <list-item>

      <p id="d1e11803">A 2-D <inline-formula><mml:math id="M425" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> field specified from an external file. Typically, <inline-formula><mml:math id="M426" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is chosen
at each vertex to optimize the fit to observed surface velocity.</p>
            </list-item>
            <list-item>

      <p id="d1e11823"><inline-formula><mml:math id="M427" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is set to a large value where the bed is frozen (<inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and a lower value
where the bed is thawed (<inline-formula><mml:math id="M429" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>).</p>
            </list-item>
            <list-item>

      <p id="d1e11871">Power-law sliding, based on the sliding relation of <xref ref-type="bibr" rid="bib1.bibx85" id="text.52"/>.
Basal velocity is given by

                      <disp-formula id="Ch1.E62" content-type="numbered"><mml:math id="M430" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:msubsup><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi><mml:mi>p</mml:mi></mml:msubsup><mml:msup><mml:mi>N</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

                where <inline-formula><mml:math id="M431" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is the effective pressure (the difference between the ice
overburden pressure <inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula> and the basal water pressure
<inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and <inline-formula><mml:math id="M434" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> is an empirical constant. This can be rearranged to
give

                      <disp-formula id="Ch1.E63" content-type="numbered"><mml:math id="M435" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>k</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mi>N</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>/</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
            </list-item>
            <list-item>

      <p id="d1e12011">Plastic sliding, in which the bed deforms with a specified till yield stress.</p>
            </list-item>
            <list-item>

      <p id="d1e12017">Coulomb friction as described by <xref ref-type="bibr" rid="bib1.bibx74" id="text.53"/>, with notation
and default values from <xref ref-type="bibr" rid="bib1.bibx66" id="text.54"/>. The form of the sliding law is

                      <disp-formula id="Ch1.E64" content-type="numbered"><mml:math id="M436" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mfenced close="|" open="|"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mfenced><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>N</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mfenced close="|" open="|"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:msup><mml:mi>N</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

                where <inline-formula><mml:math id="M437" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> is a constant, <inline-formula><mml:math id="M438" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M439" display="inline"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> is the maximum bed obstacle slope,
<inline-formula><mml:math id="M440" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> is the wavelength of bedrock bumps, and <inline-formula><mml:math id="M441" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a
basal flow-law parameter. Equation (<xref ref-type="disp-formula" rid="Ch1.E64"/>) has two
asymptotic behaviors. In the interior, where the ice is thick and
slow-moving, <inline-formula><mml:math id="M442" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mfenced open="|" close="|"><mml:mi mathvariant="bold">u</mml:mi></mml:mfenced><mml:mo>≪</mml:mo><mml:msup><mml:mi>N</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> and the basal
friction is independent of <inline-formula><mml:math id="M443" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula>:

                      <disp-formula id="Ch1.E65" content-type="numbered"><mml:math id="M444" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mfenced close="|" open="|"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mfenced><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

                The Coulomb-friction limit, where
the ice is thin and fast-moving, we have <inline-formula><mml:math id="M445" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mfenced open="|" close="|"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mfenced><mml:mo>≫</mml:mo><mml:msup><mml:mi>N</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, giving

                      <disp-formula id="Ch1.E66" content-type="numbered"><mml:math id="M446" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>C</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">κ</mml:mi><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>N</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mfenced close="|" open="|"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
            </list-item>
            <list-item>

      <?pagebreak page400?><p id="d1e12281">Pseudo-plastic sliding, as described by <xref ref-type="bibr" rid="bib1.bibx76" id="text.55"/>
and <xref ref-type="bibr" rid="bib1.bibx6" id="text.56"/> and implemented in PISM.
The basal friction law is

                      <disp-formula id="Ch1.E67" content-type="numbered"><mml:math id="M447" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mfenced close="|" open="|"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mi>q</mml:mi></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

                where <inline-formula><mml:math id="M448" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the yield stress, <inline-formula><mml:math id="M449" display="inline"><mml:mi>q</mml:mi></mml:math></inline-formula> is a pseudo-plastic exponent,
and <inline-formula><mml:math id="M450" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is a threshold speed. This law incorporates linear (<inline-formula><mml:math id="M451" display="inline"><mml:mrow><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>),
plastic (<inline-formula><mml:math id="M452" display="inline"><mml:mrow><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>), and power-law (<inline-formula><mml:math id="M453" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>&lt;</mml:mo><mml:mi>q</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>) behavior in a single
expression. The yield stress is given by <inline-formula><mml:math id="M454" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>tan⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula>,
where <inline-formula><mml:math id="M455" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> is a friction angle that can vary with bed elevation, resulting
in a lower yield stress at lower elevations. This scheme has been shown to
give a realistic velocity field for most of the Greenland ice sheet with
tuning of just a few parameters, instead of adjusting a basal friction
parameter in every grid cell <xref ref-type="bibr" rid="bib1.bibx7" id="paren.57"/>.</p>
            </list-item>
          </list></p>
      <p id="d1e12450">The power-law, Coulomb-friction and pseudo-plastic sliding laws give lower
basal friction and faster sliding as the effective pressure <inline-formula><mml:math id="M456" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> decreases
from the overburden pressure. CISM offers several options for computing <inline-formula><mml:math id="M457" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula>
at the bed:</p>
      <p id="d1e12467"><list list-type="bullet">
            <list-item>

      <p id="d1e12472"><inline-formula><mml:math id="M458" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula>, the full overburden pressure. That is, the water pressure <inline-formula><mml:math id="M459" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> at the bed.</p>
            </list-item>
            <list-item>

      <p id="d1e12511"><inline-formula><mml:math id="M460" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is reduced as the basal water depth increases, reaching a small fraction of overburden pressure
(typically <inline-formula><mml:math id="M461" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.02</mml:mn></mml:mrow></mml:math></inline-formula>) when the water depth reaches a prescribed threshold.</p>
            </list-item>
            <list-item>

      <p id="d1e12535">Following <xref ref-type="bibr" rid="bib1.bibx46" id="text.58"/>, <inline-formula><mml:math id="M462" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is reduced where the bed is below sea level, to account
for partial or full connectivity of the basal water system to the ocean.
The effective pressure is given by

                      <disp-formula id="Ch1.E68" content-type="numbered"><mml:math id="M463" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi><mml:mi>H</mml:mi><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow><mml:mi>H</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi>p</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

                where <inline-formula><mml:math id="M464" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub><mml:mi>b</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the
flotation thickness, <inline-formula><mml:math id="M465" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is seawater density, <inline-formula><mml:math id="M466" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> is the bed
elevation (negative below sea level), and <inline-formula><mml:math id="M467" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>≤</mml:mo><mml:mi>p</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. For <inline-formula><mml:math id="M468" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, there
is no connectivity and <inline-formula><mml:math id="M469" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is the full overburden pressure. For <inline-formula><mml:math id="M470" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, there
is full connectivity, and the basal water pressure is equal to the ocean
pressure at the same depth.</p>
            </list-item>
          </list></p>
      <p id="d1e12698">Glissade does not yet support sophisticated subglacial hydrology. (The model
of <xref ref-type="bibr" rid="bib1.bibx36" id="text.59"/> was implemented in serial in an earlier version of
CISM but is not currently supported.) The following (non-conserving) options
are available for handling basal meltwater:
<list list-type="bullet"><list-item>
      <p id="d1e12706">All basal water immediately drains.</p></list-item><list-item>
      <p id="d1e12710">Basal water depth is set to a constant everywhere, to force <inline-formula><mml:math id="M471" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mtext>pmp</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item><list-item>
      <p id="d1e12729">Basal water depth is computed using a local till model, as
described by <xref ref-type="bibr" rid="bib1.bibx13" id="text.60"/>.  In this model, water depth <inline-formula><mml:math id="M472" display="inline"><mml:mi>W</mml:mi></mml:math></inline-formula> evolves according to<disp-formula id="Ch1.E69" content-type="numbered"><mml:math id="M473" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>where <inline-formula><mml:math id="M474" display="inline"><mml:mi>W</mml:mi></mml:math></inline-formula> is the water depth (capped at <inline-formula><mml:math id="M475" display="inline"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>), <inline-formula><mml:math id="M476" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="normal">b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is
the basal mass balance (negative for melting), <inline-formula><mml:math id="M477" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the
density of water, and <inline-formula><mml:math id="M478" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a fixed drainage rate. The effective
pressure <inline-formula><mml:math id="M479" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is related to water depth by<disp-formula id="Ch1.E70" content-type="numbered"><mml:math id="M480" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mo movablelimits="false">min⁡</mml:mo><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:mi>W</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:msup><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>W</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula>where <inline-formula><mml:math id="M481" display="inline"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the void ratio at reference effective pressure <inline-formula><mml:math id="M482" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>,
<inline-formula><mml:math id="M483" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the till compressibility, and <inline-formula><mml:math id="M484" display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> is a scalar between
0 and 1. Default values of these terms are taken from <xref ref-type="bibr" rid="bib1.bibx13" id="text.61"/>. The
effect of Eq. (<xref ref-type="disp-formula" rid="Ch1.E70"/>) is to drive <inline-formula><mml:math id="M485" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> from <inline-formula><mml:math id="M486" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> down to
<inline-formula><mml:math id="M487" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> as <inline-formula><mml:math id="M488" display="inline"><mml:mi>W</mml:mi></mml:math></inline-formula> increases from 0 to <inline-formula><mml:math id="M489" display="inline"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item></list></p>
</sec>
<sec id="Ch1.S3.SS5">
  <title>Iceberg calving</title>
      <p id="d1e13046">Glissade supports several schemes for calving ice at marine margins. Two of
these are very simple: (1) calve all floating ice and (2) calve ice where
the bedrock (either the current bedrock or the bedrock toward which a
viscous asthenosphere is relaxing) lies below a prescribed elevation. In
addition, Glissade includes several new calving schemes: mask-based calving,
thickness-based calving, and eigencalving.</p>
      <p id="d1e13049">With mask-based calving, any floating ice that forms in cells defined by a
calving mask is assumed to calve instantly. By default, the mask is based on
the initial ice extent. Floating ice calves in all cells that are initially
ice-free ocean, and thus the calving front cannot advance (but it can
retreat). Alternatively, users can define a calving mask that is read at
initialization.</p>
      <p id="d1e13052">Thickness-based calving is designed to remove floating ice that is thinner
than a user-defined thickness, <inline-formula><mml:math id="M490" display="inline"><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mtext>min</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>. As discussed by
<xref ref-type="bibr" rid="bib1.bibx1" id="text.62"/>, accurate thickness-based calving requires a
subgrid-scale parameterization of the calving front. Suppose, for example,
that <inline-formula><mml:math id="M491" display="inline"><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mtext>min</mml:mtext></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m, and an ice shelf with a calving
front thicker than 100 m is advancing. During the next time step, ice is
transported to grid cells just downstream of the initial calving front.
Typically, these cells have <inline-formula><mml:math id="M492" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>&lt;</mml:mo><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>. If this thin ice
immediately calves, the calving front cannot advance.</p>
      <p id="d1e13105">Glissade avoids this problem using an approach similar to that of
<xref ref-type="bibr" rid="bib1.bibx1" id="text.63"/>. Floating cells adjacent to ice-free ocean are
identified as calving-front (CF) cells. For each CF cell, an effective
thickness <inline-formula><mml:math id="M493" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is determined as the minimum thickness of adjacent
ice-filled cells not at the CF. CF cells with <inline-formula><mml:math id="M494" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> are deemed
to be partially filled. For example, a cell with <inline-formula><mml:math id="M495" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m and
<inline-formula><mml:math id="M496" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m is considered to be half-filled with 100 m ice. It
is dynamically inactive and thus cannot transport ice downstream. It can
thicken, however, as ice is transported from active cells upstream. Once the
ice in this cell thickens to <inline-formula><mml:math id="M497" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>≥</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, it becomes dynamically
active. The downstream cells, previously ice-free, then become inactive CF
cells and can thicken in turn. In this way, the calving front can advance.
Similarly, the calving front<?pagebreak page401?> can retreat when an inactive CF cell becomes
ice-free; its upstream neighbor, formerly an active cell in the shelf
interior, becomes an inactive CF cell.</p>
      <p id="d1e13181">Thickness-based calving is applied not to CF cells with <inline-formula><mml:math id="M498" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>&lt;</mml:mo><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> but rather to cells with <inline-formula><mml:math id="M499" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub><mml:mo>&lt;</mml:mo><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>. In other words, the CF thickness is inferred from
the active cells just interior to the CF. Where <inline-formula><mml:math id="M500" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub><mml:mo>&lt;</mml:mo><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mi mathvariant="normal">min</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, the effective rate of thickness change is given
by

                <disp-formula id="Ch1.E71" content-type="numbered"><mml:math id="M501" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mo>min⁡</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M502" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a calving timescale. This effective rate is
converted to <inline-formula><mml:math id="M503" display="inline"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>H</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> (i.e., the rate of ice volume change
per unit cell area) as

                <disp-formula id="Ch1.E72" content-type="numbered"><mml:math id="M504" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo movablelimits="false">min⁡</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi>H</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e13374">Glissade's eigencalving scheme is related to the method described by
<xref ref-type="bibr" rid="bib1.bibx47" id="text.64"/> but differs in the details. In the method of
<xref ref-type="bibr" rid="bib1.bibx47" id="text.65"/>, the lateral calving rate is proportional to the
product of the two eigenvalues of the horizontal strain rate tensor, provided
that both eigenvalues are positive. This scheme was tested in CISM but found
to give noisy, erratic results. Instead, we compute the lateral calving rate
<inline-formula><mml:math id="M505" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> as

                <disp-formula id="Ch1.E73" content-type="numbered"><mml:math id="M506" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">ec</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M507" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is an empirical constant with units of
m yr<inline-formula><mml:math id="M508" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> Pa<inline-formula><mml:math id="M509" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, and <inline-formula><mml:math id="M510" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">ec</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is an effective calving
stress defined by

                <disp-formula id="Ch1.E74" content-type="numbered"><mml:math id="M511" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">ec</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mo movablelimits="false">max⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo movablelimits="false">max⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Here, <inline-formula><mml:math id="M512" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M513" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are the eigenvalues of the 2-D horizontal
deviatoric stress tensor, and <inline-formula><mml:math id="M514" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is an empirical constant. The stresses
<inline-formula><mml:math id="M515" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M516" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are positive when the ice is in tension; <inline-formula><mml:math id="M517" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>
corresponds to along-flow tension and <inline-formula><mml:math id="M518" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> to across-flow tension. These
stresses are computed for dynamically active cells and then are extrapolated
to inactive neighbors. When <inline-formula><mml:math id="M519" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, across-flow tension drives calving
more effectively than does along-flow tension, as is the case for the calving
law of <xref ref-type="bibr" rid="bib1.bibx47" id="text.66"/>. Equation (<xref ref-type="disp-formula" rid="Ch1.E74"/>) is
analogous to Eq. (6) in <xref ref-type="bibr" rid="bib1.bibx55" id="text.67"/> (in a calving law for
Greenland's Store Gletscher) but with stress replacing strain rate and with
a weighting term added.</p>
      <p id="d1e13624">Using Eqs. (<xref ref-type="disp-formula" rid="Ch1.E73"/>) and
(<xref ref-type="disp-formula" rid="Ch1.E74"/>), we can compute a lateral calving rate <inline-formula><mml:math id="M520" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula>
for each CF cell. The lateral calving rate is converted to a rate of volume
change using

                <disp-formula id="Ch1.E75" content-type="numbered"><mml:math id="M521" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub><mml:mi>c</mml:mi></mml:mrow><mml:msqrt><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msqrt></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M522" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M523" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> are the grid cell dimensions. Typically, CISM
is run with <inline-formula><mml:math id="M524" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>, but this is not a model requirement.</p>
      <p id="d1e13719">Eigencalving, when applied on its own, can allow very thin ice to persist at
the calving front where stresses are small. For this reason, the eigencalving
algorithm is automatically followed by thickness-based calving as described
above, with <inline-formula><mml:math id="M525" display="inline"><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mi mathvariant="normal">c</mml:mi><mml:mtext>min</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula> set to a value large enough to remove
thin ice, where present, but not so large as to be the dominant driver of
calving.</p>
      <p id="d1e13735">An additional option related to calving is iceberg removal. An iceberg is
defined as a connected region where every cell is floating and has no
connection to grounded ice. Icebergs can be present in initial data sets and
also can arise during simulations, depending on the calving scheme. Finding
the velocity for such a region is an ill-posed problem, so it is best to
remove icebergs as soon as they occur. This is done by first marking all the
grounded ice cells, and then using a parallel flood-fill algorithm to mark
every floating cell that is connected to a grounded cell. (That is, one could
travel from a grounded cell to a given floating cell along a path at least
one cell wide, without leaving the ice sheet.) Any unmarked floating cells
then calve immediately.</p>
      <p id="d1e13738">Another option is to limit the thickness of ice cliffs, defined as grounded
marine-based cells adjacent to ice-free ocean. <xref ref-type="bibr" rid="bib1.bibx9" id="text.68"/> pointed out
that there is an upper thickness limit for marine-terminating cliffs of
outlet glaciers. If the ice cliff sits more than <inline-formula><mml:math id="M526" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m out of the
water, the longitudinal stresses exceed the yield strength, and the ice will
fail. The maximum stable thickness at the terminus is given by

                <disp-formula id="Ch1.E76" content-type="numbered"><mml:math id="M527" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>H</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msqrt><mml:mrow><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mi>g</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>d</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M528" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> MPa is the depth-averaged shear strength, <inline-formula><mml:math id="M529" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula>
is the ocean depth, and <inline-formula><mml:math id="M530" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M531" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are densities
of ice and seawater. When cliff limiting is enabled in CISM, marine-grounded
cells adjacent to ice-free ocean are limited to <inline-formula><mml:math id="M532" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>≤</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, with
any excess thickness added to the calving flux. This thinning mechanism does
not trigger the rapid ice sheet retreat seen by <xref ref-type="bibr" rid="bib1.bibx68" id="text.69"/> in
Antarctic simulations that combined cliff failure with hydrofracture. CISM2.1
does not simulate hydrofracture or lateral cliff retreat.</p>
</sec>
<sec id="Ch1.S3.SS6">
  <title>Sub-shelf melting</title>
      <p id="d1e13900">By default, melting beneath ice shelves is set to zero. The following simple
options may be enabled for simulations with marine ice:
<list list-type="bullet"><list-item>
      <p id="d1e13905">Sub-shelf melting is set to a constant value for all floating ice.</p></list-item><list-item>
      <p id="d1e13909">CISM reads in a 2-D field of basal melt rates and applies the prescribed rates to floating ice.</p></list-item><list-item>
      <?pagebreak page402?><p id="d1e13913">Sub-shelf melting is prescribed as for the Marine Ice Sheet Model Intercomparison Project (MISMIP+) Ice1 experiments described by <xref ref-type="bibr" rid="bib1.bibx4" id="text.70"/>.
In this parameterization, the melt rate is set to zero above a reference elevation <inline-formula><mml:math id="M533" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, then increases linearly
as a function of depth. In shallow sub-shelf cavities, the melt rate is reduced to zero over a characteristic
length scale <inline-formula><mml:math id="M534" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The depth dependence is motivated by observations of temperature increasing with depth in
polar regions but is not necessarily a realistic treatment of melting near grounding lines.</p></list-item><list-item>
      <p id="d1e13942">The sub-shelf melt rate is a piecewise linear function of depth. Above a reference elevation <inline-formula><mml:math id="M535" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> there
is freezing, and below <inline-formula><mml:math id="M536" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> there is melting.  Above <inline-formula><mml:math id="M537" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, the freezing rate increases linearly from 0 to
<inline-formula><mml:math id="M538" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula> at <inline-formula><mml:math id="M539" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>; above <inline-formula><mml:math id="M540" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>, it is capped at <inline-formula><mml:math id="M541" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mtext>frz</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>.
Similarly, below <inline-formula><mml:math id="M542" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, the melt rate increases linearly from 0 to <inline-formula><mml:math id="M543" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mtext>mlt</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula> at <inline-formula><mml:math id="M544" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mtext>mlt</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>; below
<inline-formula><mml:math id="M545" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mtext>mlt</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>, it is capped at <inline-formula><mml:math id="M546" display="inline"><mml:mrow><mml:msubsup><mml:mi>B</mml:mi><mml:mtext>mlt</mml:mtext><mml:mtext>max</mml:mtext></mml:msubsup></mml:mrow></mml:math></inline-formula>.
In shallow cavities, the melt rate is reduced to zero over a scale <inline-formula><mml:math id="M547" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> as for MISMIP+. Like the MISMIP+
parameterization, this is an ad hoc scheme that should be used with caution. More realistic treatments of sub-shelf
melting are being actively developed in the ocean and ice modeling communities <xref ref-type="bibr" rid="bib1.bibx5" id="paren.71"/>.</p></list-item></list>
Sub-shelf melting is applied only to cells that are floating based on the
criterion <inline-formula><mml:math id="M548" display="inline"><mml:mrow><mml:mi>b</mml:mi><mml:mo>&lt;</mml:mo><mml:mo>-</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">o</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi>H</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M549" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> is bed
elevation (negative below sea level) and <inline-formula><mml:math id="M550" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> is ice thickness. In partly
filled cells at the calving front, basal melt is applied to the effective
thickness <inline-formula><mml:math id="M551" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> rather than the grid cell mean thickness <inline-formula><mml:math id="M552" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> (see
Sect. <xref ref-type="sec" rid="Ch1.S3.SS5"/>). For example, a melt rate of
10 m yr<inline-formula><mml:math id="M553" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> applied to a cell that is 10 % full would reduce <inline-formula><mml:math id="M554" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> at a
rate of only 1 m yr<inline-formula><mml:math id="M555" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>. Basal melting for grounded ice, including
marine-based ice, is described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2.SSS3"/>.</p>
</sec>
<sec id="Ch1.S3.SS7">
  <title>Isostasy</title>
      <p id="d1e14214">Isostatic adjustment is handled as in <xref ref-type="bibr" rid="bib1.bibx72" id="text.72"/>, with several options
for the lithosphere and underlying asthenosphere. The lithosphere can be
described as either local (i.e., floating on the asthenosphere) or elastic
(taking flexural rigidity into account). The asthenosphere is either fluid
(reaching isostatic equilibrium instantaneously) or relaxing (responding to
the load on an exponential timescale of several thousand years). The
default, when isostasy is active, is an elastic lithosphere and relaxing
asthenosphere.</p>
      <p id="d1e14220">In the elastic lithosphere calculation, data from many grid cells must be
summed to compute the load in each location. For parallel runs, this is done
by gathering data to one processor to compute the load and then distributing
the result to the local processors. This calculation scales poorly, but it is
done infrequently (every <inline-formula><mml:math id="M556" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> model years) and therefore has a minimal
computational cost at grid resolutions of <inline-formula><mml:math id="M557" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> km.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <title>Model results: standard test cases</title>
      <p id="d1e14251">Test cases for CISM include (1) problems with analytic solutions,
(2) standard experiments without analytic solutions but for which community
benchmarks are available, and (3) some CISM-specific experiments used for
code development and testing. These tests are organized in directories, each
of which includes a README file with instructions on running the test. Most
tests have Python scripts that are used to set up the initial conditions and
run the model, and some tests have an additional Python script to analyze and
plot the output. Each test has a default configuration file, whose settings
can be adjusted manually to make changes (e.g., swapping velocity solvers).
Several tests are described below, with plots generated by Python scripts
included in the code release.</p>
<sec id="Ch1.S4.SS1">
  <title>Halfar dome test</title>
      <p id="d1e14259">The Halfar test case describes the time evolution of a parabolic dome of ice
<xref ref-type="bibr" rid="bib1.bibx32 bib1.bibx14" id="paren.73"/>. For a flat-bedded SIA problem without
accumulation, this case has an analytic solution for the time-varying ice
thickness. The SIA ice evolution equation can be written as

                <disp-formula id="Ch1.E77" content-type="numbered"><mml:math id="M558" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Γ</mml:mi><mml:msup><mml:mi>H</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup><mml:mo>|</mml:mo><mml:mi mathvariant="bold">∇</mml:mi><mml:mi>H</mml:mi><mml:msup><mml:mo>|</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi mathvariant="bold">∇</mml:mi><mml:mi>H</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M559" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the exponent in the Glen flow law, commonly taken as 3, and
<inline-formula><mml:math id="M560" display="inline"><mml:mrow><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>g</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>n</mml:mi></mml:msup><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is a positive constant. For <inline-formula><mml:math id="M561" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>, the
time-dependent solution is

                <disp-formula id="Ch1.E78" content-type="numbered"><mml:math id="M562" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mi>t</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:mfrac></mml:msup><mml:msup><mml:mfenced close="]" open="["><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mi>t</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">18</mml:mn></mml:mfrac></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>r</mml:mi><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">4</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:mfrac></mml:msup></mml:mrow></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">3</mml:mn><mml:mn mathvariant="normal">7</mml:mn></mml:mfrac></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where

                <disp-formula id="Ch1.E79" content-type="numbered"><mml:math id="M563" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">18</mml:mn><mml:mi mathvariant="normal">Γ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">7</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:msubsup><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mn mathvariant="normal">7</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and <inline-formula><mml:math id="M564" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M565" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are the central dome height and dome radius,
respectively, at time <inline-formula><mml:math id="M566" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. As the dome evolves, the ice margin advances
and the thickness decreases. The test can be run using either Glide or
Glissade solvers.</p>
      <p id="d1e14569">Figure <xref ref-type="fig" rid="Ch1.F1"/>a–c show Halfar dome results for the Glide
solver with <inline-formula><mml:math id="M567" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">500</mml:mn><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">700</mml:mn></mml:mrow></mml:math></inline-formula> m, <inline-formula><mml:math id="M568" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">21</mml:mn></mml:mrow></mml:math></inline-formula> km, a grid resolution of 2 km, and a time step of 5 years. The three
panels show the modeled thickness, analytic thickness, and thickness
difference, respectively, at <inline-formula><mml:math id="M569" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> years. Differences are largest near
the ice margin. The rms error in the solution is 6.43 m, with a maximum
absolute error of 32.8 m.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1" specific-use="star"><caption><p id="d1e14632">Results from the Halfar dome test using SIA solvers from Glide
<bold>(a, b, c)</bold> and Glissade <bold>(d, e, f)</bold>. <bold>(a, d)</bold> Modeled
ice thickness. <bold>(b, e)</bold> Analytic ice thickness. <bold>(c, f)</bold> Difference between modeled and analytic thickness.</p></caption>
          <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f01.png"/>

        </fig>

      <p id="d1e14656">The bottom panels of Fig. <xref ref-type="fig" rid="Ch1.F1"/> show Halfar results for
the Glissade SIA solver described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS2"/>, with the
same grid and initial conditions and a time step of 1 year (Glissade's
explicit transport solver requires a shorter time step<?pagebreak page403?> than Glide for
numerical stability). The errors are larger than for Glide; the rms error is
9.06 m and the maximum error is 34.2 m. Since Glissade's SIA velocity
solutions are very similar to Glide's for a given ice sheet geometry, the
larger errors can be attributed to the explicit transport solver
(Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>), which is less accurate for this problem
than Glide's implicit diffusion-based solver.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <title>ISMIP-HOM tests</title>
      <p id="d1e14671">ISMIP-HOM, described by <xref ref-type="bibr" rid="bib1.bibx61" id="text.74"/>, consists of six experiments,
labeled A through F, for higher-order velocity solvers. CISM supports all six
experiments, and here we show results for experiments A and C. These two
tests are particularly useful for benchmarking higher-order models, since
they gauge the accuracy of simulated 3-D flow over a bed with large- and
small-scale variations in basal topography and friction.</p>
      <p id="d1e14677">Experiment A is a test for ice flow over a bumpy bed. The domain is doubly
periodic, and the bed topography is sinusoidal in both the <inline-formula><mml:math id="M570" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M571" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>
directions, with an amplitude of 500 m and wavelength <inline-formula><mml:math id="M572" display="inline"><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>, 10, 20, 40,
80, or 160 km. The mean ice thickness is 1000 m, and the surface slopes
smoothly downward from left to right. The velocity field is diagnosed from
this geometry given a no-slip basal boundary condition.
Figure <xref ref-type="fig" rid="Ch1.F2"/> shows the surface ice speed as a function of
<inline-formula><mml:math id="M573" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> along the bump at <inline-formula><mml:math id="M574" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>L</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula>, computed using Glissade's BP solver. For <inline-formula><mml:math id="M575" display="inline"><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> km or more, the solution agrees well with the mean from the Stokes
models in <xref ref-type="bibr" rid="bib1.bibx61" id="text.75"/>. At <inline-formula><mml:math id="M576" display="inline"><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> km, the amplitude is too large (as
is typical of BP models), but the magnitude is close to the Stokes solution.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2" specific-use="star"><caption><p id="d1e14761">Results for ISMIP-HOM experiment A (ice
flow over a bumpy bed). Each plot shows the surface ice speed across the bump
at <inline-formula><mml:math id="M577" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>L</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> for a different length scale <inline-formula><mml:math id="M578" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula>. The solid black line shows
output from Glissade's BP velocity solver; the dotted red and blue lines show
output from full Stokes and first-order (i.e., higher-order) models,
respectively, in <xref ref-type="bibr" rid="bib1.bibx61" id="text.76"/>, and the red and blue shaded regions show
the corresponding standard deviations. </p></caption>
          <?xmltex \igopts{width=369.885827pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f02.png"/>

        </fig>

      <p id="d1e14796">Figure <xref ref-type="fig" rid="Ch1.F3"/> shows test A results using Glissade's DIVA
solver (cf. Fig. 1 in
<xref ref-type="bibr" rid="bib1.bibx31" id="altparen.77"/>, which shows similar results from a depth-integrated
flowline solver). The DIVA solution is much less accurate than the BP
solution; the modeled ice speed is greater than for the Stokes solution, with
the relative error increasing as <inline-formula><mml:math id="M579" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> decreases. These errors are expected,
since a bumpy, frozen bed implies that the horizontal velocity gradients are
not well approximated (as DIVA assumes) by their vertical averages. The DIVA
solution is more accurate, however, than the L1L2 scheme implemented by
<xref ref-type="bibr" rid="bib1.bibx64" id="text.78"/>. The latter scheme does a 2-D matrix solve for the basal
velocity and then integrates upward, reducing to the very inaccurate SIA when
the basal velocity is zero. DIVA, by solving for the 2-D mean velocity
instead of the basal velocity, is more accurate than the SIA.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3" specific-use="star"><caption><p id="d1e14817">Same as Fig. <xref ref-type="fig" rid="Ch1.F2"/>, except that the solid black
line shows output from Glissade's DIVA velocity solver. Vertical scales are
adjusted relative to Fig. <xref ref-type="fig" rid="Ch1.F2"/> to show the full range of
the model solution. </p></caption>
          <?xmltex \igopts{width=369.885827pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f03.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4" specific-use="star"><caption><p id="d1e14832">Results for ISMIP-HOM experiment C (ice flow over a bed with
variable basal friction). Each plot shows the surface ice speed across the
bump at <inline-formula><mml:math id="M580" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>L</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> for a different length scale <inline-formula><mml:math id="M581" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula>. The solid black line
shows output from Glissade's BP velocity solver; the dotted red and blue
lines show output from Stokes and first-order models, respectively, in
<xref ref-type="bibr" rid="bib1.bibx61" id="text.79"/>, and the red and blue shaded regions show the
corresponding standard deviations. </p></caption>
          <?xmltex \igopts{width=369.885827pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f04.png"/>

        </fig>

      <p id="d1e14867">Experiment C is a test for flow over a bed with variable friction. The ice
surface and mean thickness are as in<?pagebreak page404?> experiment A, but the bed is flat, with
sinusoidal variations in the basal friction parameter <inline-formula><mml:math id="M582" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>.
Figure <xref ref-type="fig" rid="Ch1.F4"/> shows the surface speed at <inline-formula><mml:math id="M583" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>L</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> for each
of six wavelengths using the BP solver, and Fig. <xref ref-type="fig" rid="Ch1.F5"/>
shows the surface speed using the DIVA solver (cf. Fig. 2 from the depth-integrated flowline solver in
<xref ref-type="bibr" rid="bib1.bibx31" id="altparen.80"/>). For both BP and DIVA, the CISM results are similar
to the Stokes results at all wavelengths. There is a modest difference
between BP and DIVA at <inline-formula><mml:math id="M584" display="inline"><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> km, where the DIVA velocity has a small
variation across the domain, whereas the BP and Stokes velocities are nearly
uniform.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5" specific-use="star"><caption><p id="d1e14915">Same as Fig. <xref ref-type="fig" rid="Ch1.F4"/>, except that the solid black
line shows output from Glissade's DIVA velocity solver. </p></caption>
          <?xmltex \igopts{width=369.885827pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f05.png"/>

        </fig>

      <p id="d1e14926">For both experiments A and C, the Glissade BP results are nearly identical to
those shown by <xref ref-type="bibr" rid="bib1.bibx82" id="text.81"/>, who used similar finite-element methods to
assemble and solve the BP equations.</p>
</sec>
<sec id="Ch1.S4.SS3">
  <title>Stream tests</title>
      <p id="d1e14938">CISM's stream tests simulate flow over an idealized ice stream underlain by
subglacial till with a specified yield stress distribution. For the two yield
stress distributions specified in this test case, analytical solutions are
available from <xref ref-type="bibr" rid="bib1.bibx70" id="text.82"/> and <xref ref-type="bibr" rid="bib1.bibx75" id="text.83"/>. For the Raymond
test case, the yield stress is given within the ice stream by a uniform value
of 5.2 kPa (below the gravitational driving stress of about 10 kPa), and
outside the ice stream by a uniform value of 70 kPa (much larger than the
driving stress). That is, the yield stress distribution is approximated by a
step function. For the Schoof test case, the yield stress across the ice
stream varies continuously between about 45 kPa and 0. In both cases, the
basal properties and resulting velocity solutions vary in the across-flow
direction only and are symmetric about the ice stream centerline.</p>
      <p id="d1e14947">Figures <xref ref-type="fig" rid="Ch1.F6"/> and <xref ref-type="fig" rid="Ch1.F7"/> compare model
results to the analytic Raymond and Schoof solutions, respectively. CISM is
run using the BP velocity solver at a grid resolution of 2 km. (DIVA
results, not shown, are nearly identical.) The top panels show across-flow
velocity profiles, and the bottom panels show the prescribed yield stress and
driving stress. In both cases, there is excellent agreement between the
modeled and analytic solutions. For the Raymond test, this excellent
agreement requires a modified assembly procedure for basal friction terms, as
described in Sect. <xref ref-type="sec" rid="App1.Ch1.S1.SS2"/>, to resolve the step change in
yield stress. With the standard finite-element procedure, there is some
smoothing of the friction parameter <inline-formula><mml:math id="M585" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> over neighboring vertices, and
the results at a given grid resolution are less accurate. For the Schoof test
with a smooth<?pagebreak page405?> transition in yield stress, either assembly procedure works
well.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6" specific-use="star"><caption><p id="d1e14965">Results from the Raymond stream test using Glissade's BP velocity
solver. <bold>(a)</bold> Across-flow surface and basal velocity (m yr<inline-formula><mml:math id="M586" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) at
<inline-formula><mml:math id="M587" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> km compared to the analytic solution. At most points, the analytic
and simulated solutions are indistinguishable. <bold>(b)</bold> Prescribed yield
stress and gravitational driving stress (Pa). </p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f06.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7" specific-use="star"><caption><p id="d1e15007">Same as Fig. <xref ref-type="fig" rid="Ch1.F6"/> but for the Schoof stream
test with a smooth transition in yield stress. The analytic and simulated
solutions are virtually indistinguishable.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f07.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS4">
  <title>Shelf tests</title>
      <p id="d1e15025">CISM includes three shelf tests:</p>
      <p id="d1e15028"><list list-type="bullet">
            <list-item>

      <p id="d1e15033">The first is a confined-shelf test based on tests 3 and 4 from the Ice Shelf Model Intercomparison
exercise <xref ref-type="bibr" rid="bib1.bibx71" id="paren.84"/>. This test simulates the flow of a
500 m thick ice shelf within a rectangular embayment that is confined on
three sides. Figure <xref ref-type="fig" rid="Ch1.F8"/> shows the 2-D ice speed
using Glissade's SSA solver (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/>) on a 5 km mesh.
As expected, the solution is nearly identical to those obtained with the DIVA and BP solvers
(not shown). No benchmark is available, but the Glissade solutions are similar to the first-order (BP)
solutions found by <xref ref-type="bibr" rid="bib1.bibx64" id="text.85"/> and <xref ref-type="bibr" rid="bib1.bibx82" id="text.86"/> for the same test.</p>
            </list-item>
            <list-item>

      <p id="d1e15052">The second is a circular-shelf test that simulates the radially symmetric flow of a 1000 m thick ice shelf
that is pinned at one point in the center. The SSA solution (not shown) is similar but not identical
to the DIVA and BP solutions, since the latter allow vertical shear above the pinning point.</p>
            </list-item>
            <list-item>

      <p id="d1e15058">The third test simulates the flow of the Ross Ice Shelf in Antarctica under idealized conditions
(e.g., a spatially uniform flow-rate factor), as described by <xref ref-type="bibr" rid="bib1.bibx51" id="text.87"/>. Figure <xref ref-type="fig" rid="Ch1.F9"/>,
which is based on Figs. 1 and 2 of <xref ref-type="bibr" rid="bib1.bibx51" id="text.88"/>, shows the ice speed computed by Glissade's SSA
solver on the 6.8 km finite-difference grid used in that paper, compared to observed ice speeds.
The model velocities agree well with the published velocities from the
finite-element model in Fig. 3a of
<xref ref-type="bibr" rid="bib1.bibx51" id="text.89"/> and, like the published values, tend to be biased fast compared to observations.
As noted by <xref ref-type="bibr" rid="bib1.bibx51" id="text.90"/>, the model–data agreement could be improved by allowing the flow-rate factor to
vary spatially. Results from the DIVA and BP solvers (not shown) are nearly identical.</p>
            </list-item>
          </list></p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8" specific-use="star"><caption><p id="d1e15079">Ice speed (m yr<inline-formula><mml:math id="M588" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) for the confined-shelf test (based on tests
3 and 4 from the Ice Shelf Model Intercomparison exercise of
<xref ref-type="bibr" rid="bib1.bibx71" id="altparen.91"/>) using Glissade's SSA velocity solver. The ice shelf
is 500 m thick. The rectangular domain is open to the south and confined on
the other three sides.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f08.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS5">
  <title>Dome test</title>
      <p id="d1e15109">CISM's dome test has a simple configuration with a parabolic, radially
symmetric dome on a flat bed. It is a general-purpose time-dependent problem
that can be used to test not just the velocity solver but also the transport
and temperature solvers and various physics options. There is no analytic
solution, but the test has proven useful for day-to-day testing.</p>
</sec>
<?pagebreak page406?><sec id="Ch1.S4.SS6">
  <title>Build-and-test structure</title>
      <p id="d1e15118">To facilitate testing, CISM includes a build-and-test structure (BATS) that
can automatically build the model and then run a set of regression tests,
including the tests discussed above. BATS allows users and developers to
quickly generate a set of regression tests for use with the Land Ice
Verification and Validation toolkit (LIVVkit; <xref ref-type="bibr" rid="bib1.bibx44" id="altparen.92"/>). LIVVkit
is designed to provide robust and automated numerical verification, software
verification, performance validation, and physical validation analyses for
ice sheet models. Instructions on using BATS and LIVV with CISM can be found
on the LIVV website (<uri>https://livvkit.github.io/Docs/</uri>, last access: 20
January 2019).</p>
</sec>
</sec>
<sec id="Ch1.S5">
  <title>Model results: Greenland ice sheet simulations</title>
      <p id="d1e15134">The CISM v2.0 release included the tests described in
Sect. <xref ref-type="sec" rid="Ch1.S4"/> but did not support robust multimillennial
simulations of whole ice sheets. Recent work, included in CISM v2.1, has made
the model more efficient, reliable, and realistic for Greenland ice sheet
simulations. These improvements support the use of CISM in CESM2.0 for
century- to millennial-scale Greenland simulations under paleoclimate (e.g.,
Pliocene and Eemian), present-day, and future climate conditions.</p>
      <p id="d1e15139">Coupled ice sheet–climate simulations can be problematic, because ice sheets
require <inline-formula><mml:math id="M589" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> years or longer to equilibrate with a given climate
<xref ref-type="bibr" rid="bib1.bibx84" id="paren.93"/>, and because climate is never truly constant on these
timescales. If the initial ice sheet conditions in a coupled simulation are
not consistent with the climate, then the transient adjustment can swamp any
climate change signal. One way to minimize the adjustment is to adjust
selected model parameters (e.g., basal traction coefficients or bed
topography at each grid point) to satisfy an optimization problem, reducing
the mismatch between model variables and observations. In this way, one can
generate ice sheet thickness and velocity fields consistent with the SMB from
a climate model <xref ref-type="bibr" rid="bib1.bibx65" id="paren.94"/>. The risk of this approach is that the
model can be overtuned to present-day conditions that might not hold on long
timescales or in different climates. An alternate approach is to spin up the
ice sheet to equilibrium under forcing from a climate model: e.g., steady
pre-industrial forcing or forcing spliced together from two or more climate
time slices <xref ref-type="bibr" rid="bib1.bibx26" id="paren.95"/>. Because of climate model biases, however,<?pagebreak page407?> the
spun-up ice thickness and velocity can differ substantially from modern
observations.</p>
      <p id="d1e15162">Here, we take the second approach, spinning up the Greenland ice sheet with
surface forcing from the regional climate model RACMO2.3p1 statistically
downscaled to 1 km resolution <xref ref-type="bibr" rid="bib1.bibx57" id="paren.96"/>. Since RACMO2 is run at high
resolution, is constrained by reanalysis at model boundaries, and is well
validated against observations, its SMB is more realistic than that of a
global climate model. RACMO2 provides the SMB only for the region included
within its ice sheet mask; outside this region, we prescribe a negative SMB.
The ice sheet is initialized with present-day extent and thickness, and then
is spun up for 50 000 years (long enough to reach quasi-equilibrium) on a
4 km grid (the standard grid for CESM ice sheet simulations).</p>
      <p id="d1e15168">We analyze two experiments. The first experiment uses a “no-float” calving
scheme, in which floating ice is assumed to calve immediately. A similar
configuration was used to initialize CISM for the
initMIP-Greenland experiment
<xref ref-type="bibr" rid="bib1.bibx30" id="paren.97"/>. The no-float assumption simplifies model setup and
analysis, while still simulating ice flow for the vast majority of the
Greenland ice sheet. The second experiment uses the eigencalving scheme
described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS5"/>, along with the depth-dependent
sub-shelf melting scheme of Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>. This
simulation tests the model's ability to generate robust, stable ice shelves
that at least roughly resemble Greenland's present-day ice shelves, including
the floating shelf of Petermann Glacier in northern Greenland and two
floating termini of the Northeast Greenland Ice
Stream (NEGIS):
Nioghalvfjerdsbræ (79 North Glacier) and Zachariae Isstrom.</p>
      <p id="d1e15179">Although the model has been configured to give results that are reasonably
realistic, these spin-ups should be viewed primarily as a demonstration of
CISM capabilities, not as scientifically validated simulations. For example,
model tuning has likely compensated for biases in the forcing data. Generally
speaking, model parameters should always be tested and reviewed depending on
the science application.</p>
<sec id="Ch1.S5.SS1">
  <title>Simulation without ice shelves</title>
      <p id="d1e15187">The simulation without floating ice shelves is configured as follows:</p>
      <p id="d1e15190"><list list-type="bullet">
            <list-item>

      <p id="d1e15195">The model is initialized with present-day ice sheet geometry. The ice thickness and bed topography are
based on the mass-conserving-bed method of <xref ref-type="bibr" rid="bib1.bibx53 bib1.bibx54" id="text.98"/>.</p>
            </list-item>
            <list-item>

      <?pagebreak page408?><p id="d1e15204">The SMB forcing over the Greenland ice sheet is a 1958–2015 climatology from RACMO2.3p1 <xref ref-type="bibr" rid="bib1.bibx57" id="paren.99"/>.
For ice-free regions where RACMO2 does not compute an SMB, the SMB is
arbitrarily set to <inline-formula><mml:math id="M590" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> m yr<inline-formula><mml:math id="M591" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, thus limiting deviations from
present-day ice extent. The surface temperature is from the 20th century
RACMO2 climatology of <xref ref-type="bibr" rid="bib1.bibx24" id="text.100"/>.</p>
            </list-item>
            <list-item>

      <p id="d1e15238">The basal geothermal heat flux is prescribed from <xref ref-type="bibr" rid="bib1.bibx78" id="text.101"/>.</p>
            </list-item>
            <list-item>

      <p id="d1e15247">Where the SMB is negative, the initial temperature profile in each column is
linear, with <inline-formula><mml:math id="M592" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">min</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">air</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> at the surface and <inline-formula><mml:math id="M593" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">pmp</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> at the bed. Where the SMB is positive, the
temperature is initialized to an analytic profile based on a balance between
vertical conduction and cold advection (<xref ref-type="bibr" rid="bib1.bibx21" id="altparen.102"/>, Sect. 9.5.1).
This profile is relatively cold in the upper part of the ice sheet.</p>
            </list-item>
            <list-item>

      <p id="d1e15304">The 3-D velocity field is computed at 11 vertical levels using the DIVA solver described
in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS4"/>. Thickness and tracer evolution are given by
the incremental remapping scheme of Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>, with a
time step <inline-formula><mml:math id="M594" display="inline"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula> years.</p>
            </list-item>
            <list-item>

      <p id="d1e15329">The basal friction coefficient <inline-formula><mml:math id="M595" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is computed at each vertex using a
pseudo-plastic sliding law as described in
Sect. <xref ref-type="sec" rid="Ch1.S3.SS4"/>. This scheme has several parameters
that can be tuned to reduce effective pressure and increase sliding in warm,
low-elevation regions. Parameter values, mostly following
<xref ref-type="bibr" rid="bib1.bibx7" id="text.103"/>, are <inline-formula><mml:math id="M596" display="inline"><mml:mrow><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M597" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m yr<inline-formula><mml:math id="M598" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, with
<inline-formula><mml:math id="M599" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> decreasing from <inline-formula><mml:math id="M600" display="inline"><mml:mn mathvariant="normal">40</mml:mn></mml:math></inline-formula> to <inline-formula><mml:math id="M601" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">5</mml:mn><mml:mo>∘</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> as the bed elevation decreases from
<inline-formula><mml:math id="M602" display="inline"><mml:mn mathvariant="normal">700</mml:mn></mml:math></inline-formula> to <inline-formula><mml:math id="M603" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">700</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>
            </list-item>
            <list-item>

      <p id="d1e15429">Effective pressure is a function of basal water depth as computed by the local
till model described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS4"/> with till
parameters from <xref ref-type="bibr" rid="bib1.bibx13" id="text.104"/>. In particular, <inline-formula><mml:math id="M604" display="inline"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m,
<inline-formula><mml:math id="M605" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> mm yr<inline-formula><mml:math id="M606" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, and <inline-formula><mml:math id="M607" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.02</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
            </list-item>
            <list-item>

      <p id="d1e15495">Floating ice calves immediately, and marine cliff heights are
limited as described in Sect. <xref ref-type="sec" rid="Ch1.S3.SS5"/>.</p>
            </list-item>
            <list-item>

      <p id="d1e15503">Some of the model physics is constrained to make the simulation more robust.
The surface gradients <inline-formula><mml:math id="M608" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M609" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>
in the gravitational driving stress are limited to a magnitude of 0.10 to
prevent unrealistically large ice speeds in coastal regions with steep
topography, and <inline-formula><mml:math id="M610" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is held to a minimum of <inline-formula><mml:math id="M611" display="inline"><mml:mn mathvariant="normal">100</mml:mn></mml:math></inline-formula> Pa m<inline-formula><mml:math id="M612" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> yr for
grounded ice to prevent very fast sliding.</p>
            </list-item>
          </list></p>
      <p id="d1e15566">After 50 000 model years, the ice sheet extent and volume have equilibrated
to <inline-formula><mml:math id="M613" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.63</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M614" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M615" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.97</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M616" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:math></inline-formula>, respectively,
in close agreement with values of <inline-formula><mml:math id="M617" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.67</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M618" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M619" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.95</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M620" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:math></inline-formula> in the observational data set <xref ref-type="bibr" rid="bib1.bibx54" id="paren.105"/>. The close
agreement between observed and modeled extent and volume depends, in part, on
the negative SMB applied outside the RACMO2 ice sheet mask to<?pagebreak page409?> inhibit ice
advance. We checked for equilibrium by comparing thickness snapshots at
500-year intervals near the end of the run. Thickness variations over the
last 1000 years (not shown) are less than 50 m everywhere on the ice sheet.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9" specific-use="star"><caption><p id="d1e15671">Results of the Ross Ice Shelf test described by
<xref ref-type="bibr" rid="bib1.bibx51" id="text.106"/>, computed using Glissade's SSA solver. Panel
<bold>(a)</bold>, based on Fig. 1 of <xref ref-type="bibr" rid="bib1.bibx51" id="text.107"/>, shows the
vertically uniform ice speed (m yr<inline-formula><mml:math id="M621" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>). The circles indicate locations
where ice speed was measured by the Ross Ice Shelf Geophysical and
Glaciological Survey (RIGGS); measured speeds are shaded with the same color
scale as the observations. Axis coordinates match the coordinates in
<xref ref-type="bibr" rid="bib1.bibx51" id="text.108"/>. Panel <bold>(b)</bold>, based on Fig. 2 of
<xref ref-type="bibr" rid="bib1.bibx51" id="text.109"/>, compares simulated to measured ice speeds at the
RIGGS locations.</p></caption>
          <?xmltex \igopts{width=441.017717pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f09.png"/>

        </fig>

      <p id="d1e15712">Figure <xref ref-type="fig" rid="Ch1.F10"/> shows the surface ice speed at the
end of the run, compared to observations. In most of the ice sheet, the
simulated ice flow is in good agreement with observations. The model captures
slow-flowing regions in the interior where the bed is frozen, as well as
fast-flowing outlet glaciers along the margins. A major shortcoming of the
simulation is its failure to capture NEGIS, which in reality extends far into
the northeast interior but is simulated to be slower, shorter, and more diffuse.
<xref ref-type="bibr" rid="bib1.bibx7" id="text.110"/>, who ran PISM using the pseudo-plastic basal sliding
scheme adopted by CISM, obtained similar results. While capturing complex
outlet glacier flow, both models have a poor representation of NEGIS,
possibly due to a missing geothermal heat source or simplified subglacial
hydrology.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F10" specific-use="star"><caption><p id="d1e15722">Surface ice speed (m yr<inline-formula><mml:math id="M622" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, log scale) for the Greenland ice
sheet. <bold>(a)</bold> Observed speed <xref ref-type="bibr" rid="bib1.bibx43" id="paren.111"/>.
<bold>(b)</bold> Simulated speed at the end of a 50 kyr Greenland spin-up
without floating ice shelves. The gray background shows ice-free regions.
Figures <xref ref-type="fig" rid="Ch1.F10"/>–<xref ref-type="fig" rid="Ch1.F17"/>
were created using the <xref ref-type="bibr" rid="bib1.bibx56" id="text.112"/>.</p></caption>
          <?xmltex \igopts{width=412.564961pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f10.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F11"><caption><p id="d1e15762">Difference (m) between (1) simulated ice thickness at the end of a
50 kyr Greenland spin-up without ice shelves and (2) observed thickness from
<xref ref-type="bibr" rid="bib1.bibx54" id="text.113"/>. The observed thickness is the model initial condition.
The gray background shows regions that are ice-free at both the beginning and
end of the simulation.</p></caption>
          <?xmltex \igopts{width=227.622047pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f11.png"/>

        </fig>

      <p id="d1e15774">Figure <xref ref-type="fig" rid="Ch1.F11"/> shows the difference between the
final ice thickness and the observed initial thickness. In most of the
interior, the thickness errors are <inline-formula><mml:math id="M623" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m or less, with the main
exception being the upper part of NEGIS, where slow flow correlates with a
positive thickness bias of <inline-formula><mml:math id="M624" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> m. Errors are larger along the
margins, with positive biases of up to <inline-formula><mml:math id="M625" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula> m in the southeast, where
accumulation is large, and negative biases of up to <inline-formula><mml:math id="M626" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula> m in the
north and northwest, where accumulation is lower and there is significant
ablation at the margins. Low thicknesses along the coast could result from
excessive marginal ablation in the SMB data set, insufficient basal friction,
or a combination. High thickness in the southeast could be attributed to
positive accumulation biases in the data set or too-slow flow in outlet
glaciers, among other factors.</p>
      <p id="d1e15819">Figure <xref ref-type="fig" rid="Ch1.F12"/> illustrates the basal water state.
The ice sheet is shaded to indicate three regions: a frozen central region
(extending to parts of the northern and eastern margins) with basal water
depth <inline-formula><mml:math id="M627" display="inline"><mml:mrow><mml:mi>W</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>; thawed coastal regions, especially along the western margin
and in major outlet glacier basins where <inline-formula><mml:math id="M628" display="inline"><mml:mi>W</mml:mi></mml:math></inline-formula> is capped at <inline-formula><mml:math id="M629" display="inline"><mml:mn mathvariant="normal">2</mml:mn></mml:math></inline-formula> m; and
intermediate regions where <inline-formula><mml:math id="M630" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>&lt;</mml:mo><mml:mi>W</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m. The color scheme in
Fig. <xref ref-type="fig" rid="Ch1.F12"/> was chosen for comparison to Fig. 11
from <xref ref-type="bibr" rid="bib1.bibx52" id="text.114"/>, who presented a synthesis of Greenland's basal
state from observations and models. The agreement is generally excellent
(though the two results are not fully independent, since models similar to
CISM were part of the synthesis). The largest area of discrepancy is the
upstream part of NEGIS, which is thawed or uncertain in the synthesis but
frozen in the model.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F12"><caption><p id="d1e15875">Basal water state at the end of a 50 kyr Greenland spin-up. Red:
fully saturated bed with basal water depth <inline-formula><mml:math id="M631" display="inline"><mml:mi>W</mml:mi></mml:math></inline-formula> capped at the upper limit of
2 m. Light blue: partly saturated bed with <inline-formula><mml:math id="M632" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>&lt;</mml:mo><mml:mi>W</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m. Dark blue: frozen
bed with <inline-formula><mml:math id="M633" display="inline"><mml:mrow><mml:mi>W</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. The color scale is based on Fig. 11 of
<xref ref-type="bibr" rid="bib1.bibx52" id="text.115"/>. The gray background shows ice-free regions.</p></caption>
          <?xmltex \igopts{width=227.622047pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f12.png"/>

        </fig>

      <?pagebreak page411?><p id="d1e15922">The intermediate regions in Fig. <xref ref-type="fig" rid="Ch1.F12"/> have
striped patterns with century-scale temporal variability, consistent with the
band-like patterns in driving and basal shear stresses found by
<xref ref-type="bibr" rid="bib1.bibx77" id="text.116"/> in regions with rapid basal sliding.
<xref ref-type="bibr" rid="bib1.bibx77" id="text.117"/> attributed these patterns to instabilities related to
subglacial water. A more detailed investigation would be needed to determine
how robust these features are in the model, and to what extent they are real
features as opposed to numerical artifacts.</p>
      <p id="d1e15933">As shown by <xref ref-type="bibr" rid="bib1.bibx76" id="text.118"/>, depth-integrated approximations like DIVA
are computationally much cheaper than BP while incurring only a small loss of
accuracy, mainly in slow-sliding regions. However, their analysis did not
consider the effects of vertically varying temperature. In CISM simulations
of real ice sheets, the depth-integrated viscosity depends on the vertical
temperature profile (see Eqs. <xref ref-type="disp-formula" rid="Ch1.E2"/> and
<xref ref-type="disp-formula" rid="Ch1.E24"/>), with dynamic effects that are
not included in idealized problems with a uniform temperature or flow factor.
To assess possible errors associated with the DIVA solver (taking BP to be
“truth”), we ran CISM for 10 000 years using the BP solver, with settings
and forcing otherwise identical to the DIVA run. After 10 kyr, the ice sheet
area and volume are <inline-formula><mml:math id="M634" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.635</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M635" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M636" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.991</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M637" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:math></inline-formula>, respectively, for the BP run, compared to <inline-formula><mml:math id="M638" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.634</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M639" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M640" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.993</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M641" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:math></inline-formula> for DIVA.
Figures <xref ref-type="fig" rid="Ch1.F13"/>
and <xref ref-type="fig" rid="Ch1.F14"/> show differences in
thickness and surface ice speed, respectively, between the two runs. In the
vast majority of the ice sheet, thickness differences are less than 50 m,
and velocity differences are less than 20 m yr<inline-formula><mml:math id="M642" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>. In several outlet
glaciers, however – notably Humboldt Glacier in the northwest – thickness
differences exceed <inline-formula><mml:math id="M643" display="inline"><mml:mn mathvariant="normal">100</mml:mn></mml:math></inline-formula> m, and velocity differences are greater than
<inline-formula><mml:math id="M644" display="inline"><mml:mn mathvariant="normal">100</mml:mn></mml:math></inline-formula> m yr<inline-formula><mml:math id="M645" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>. These differences might merit further study. Some,
although not all, of the larger differences can be attributed to transient
behavior. For example, Humboldt
Glacier is not fully equilibrated at 10 kyr, and the two simulations could
capture the glacier in different phases.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F13"><caption><p id="d1e16085">Difference (m) in simulated ice thickness after 10 kyr between
(1) a run using the BP velocity solver and (2) a run using the DIVA velocity
solver and otherwise configured identically. The gray background shows
regions that are ice-free in both simulations.</p></caption>
          <?xmltex \igopts{width=227.622047pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f13.png"/>

        </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F14"><caption><p id="d1e16096">Difference (m yr<inline-formula><mml:math id="M646" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) in simulated ice speed after 10 kyr
between (1) a run using the BP velocity solver and (2) a run using the DIVA
velocity solver and otherwise configured identically. The gray background
shows regions that are ice-free in both simulations.</p></caption>
          <?xmltex \igopts{width=227.622047pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f14.png"/>

        </fig>

<?xmltex \floatpos{tt}?><table-wrap id="Ch1.T3" specific-use="star"><caption><p id="d1e16121">Computational performance on NCAR's Cheyenne supercomputer for
various simulations: DIVA vs. BP solvers, with and without floating ice
shelves, and 144 vs. 288 processor cores.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Simulation</oasis:entry>
         <oasis:entry colname="col2">No. of cores</oasis:entry>
         <oasis:entry colname="col3">Model year/wall-clock hour</oasis:entry>
         <oasis:entry colname="col4">Model year/core hour</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">DIVA without shelves</oasis:entry>
         <oasis:entry colname="col2">144</oasis:entry>
         <oasis:entry colname="col3">1350</oasis:entry>
         <oasis:entry colname="col4">9.41</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">DIVA without shelves</oasis:entry>
         <oasis:entry colname="col2">288</oasis:entry>
         <oasis:entry colname="col3">2480</oasis:entry>
         <oasis:entry colname="col4">8.61</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BP without shelves</oasis:entry>
         <oasis:entry colname="col2">144</oasis:entry>
         <oasis:entry colname="col3">28.4</oasis:entry>
         <oasis:entry colname="col4">0.197</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">BP without shelves</oasis:entry>
         <oasis:entry colname="col2">288</oasis:entry>
         <oasis:entry colname="col3">54.0</oasis:entry>
         <oasis:entry colname="col4">0.188</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">DIVA with shelves</oasis:entry>
         <oasis:entry colname="col2">144</oasis:entry>
         <oasis:entry colname="col3">1330</oasis:entry>
         <oasis:entry colname="col4">9.26</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">DIVA with shelves</oasis:entry>
         <oasis:entry colname="col2">288</oasis:entry>
         <oasis:entry colname="col3">2590</oasis:entry>
         <oasis:entry colname="col4">8.98</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e16250">Table <xref ref-type="table" rid="Ch1.T3"/> shows the cost of these runs on 144 and 288 cores
of NCAR's Cheyenne supercomputer. On 144 cores, the DIVA run without ice
shelves completes 1350 model years per wall-clock hour or 9.41 model years per core hour.
Running on 288 cores, the throughput increases to 2480 model
years per wall-clock hour, at slightly reduced efficiency of 8.61 model years per core hour.
With the BP solver and an otherwise identical configuration (including 11
vertical velocity levels), the throughput decreases by nearly a factor of 50.
Table <xref ref-type="table" rid="Ch1.T3"/> also shows the cost of DIVA runs with ice
shelves, which are described next. Although we have found that solver
convergence can be slower when floating ice is present, the runs presented
here have a similar cost with or without ice shelves.</p>
</sec>
<?pagebreak page412?><sec id="Ch1.S5.SS2">
  <title>Simulation with ice shelves</title>
      <p id="d1e16263">The simulation with ice shelves is configured like the no-shelf simulation but with these differences:
<list list-type="bullet"><list-item>
      <p id="d1e16268">No-float calving is replaced by the eigencalving scheme of Sect. <xref ref-type="sec" rid="Ch1.S3.SS5"/>,
with <inline-formula><mml:math id="M647" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0025</mml:mn></mml:mrow></mml:math></inline-formula> m yr<inline-formula><mml:math id="M648" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> Pa<inline-formula><mml:math id="M649" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M650" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">25</mml:mn></mml:mrow></mml:math></inline-formula>.
These parameters give a low calving rate for along-flow tensile stresses and a much higher rate for across-flow stresses.</p></list-item><list-item>
      <?pagebreak page413?><p id="d1e16328">Beneath floating ice, we apply the depth-dependent melt rate of
Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>, with a basal mass balance <inline-formula><mml:math id="M651" display="inline"><mml:mrow><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> at <inline-formula><mml:math id="M652" display="inline"><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> m.
The freezing rate is <inline-formula><mml:math id="M653" display="inline"><mml:mn mathvariant="normal">3</mml:mn></mml:math></inline-formula> m yr<inline-formula><mml:math id="M654" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> above <inline-formula><mml:math id="M655" display="inline"><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m, with a linear ramp between
<inline-formula><mml:math id="M656" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M657" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> m. The melt rate is <inline-formula><mml:math id="M658" display="inline"><mml:mn mathvariant="normal">100</mml:mn></mml:math></inline-formula> m yr<inline-formula><mml:math id="M659" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> below <inline-formula><mml:math id="M660" display="inline"><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula> m,
with a linear ramp between <inline-formula><mml:math id="M661" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> m and <inline-formula><mml:math id="M662" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula> m. The scale for reducing melting in shallow cavities is <inline-formula><mml:math id="M663" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></list-item></list>
<xref ref-type="bibr" rid="bib1.bibx16" id="text.119"/> used a similar combination of stress-based calving and
depth-dependent sub-shelf melting in ISSM to simulate glacier evolution in
the NEGIS region. For the CISM simulations, calving and melting parameters
were tuned to improve agreement with Greenland's observed ice shelves (or
lack thereof). For example, higher values of <inline-formula><mml:math id="M664" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> were found to remove
existing ice shelves in northern Greenland. With the chosen value of
<inline-formula><mml:math id="M665" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, lower values of <inline-formula><mml:math id="M666" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are insufficient to calve long, unrealistic
ice tongues along the southeast coast. Similarly, sub-shelf freezing is
needed near the surface to prevent substantial calving-front retreat for the
Petermann and 79 North glaciers. While near-surface freezing is physically
plausible, basal freezing in the simulation might be compensating for a
negative SMB bias <xref ref-type="bibr" rid="bib1.bibx58" id="paren.120"/> or excessive calving. A maximum melt rate
of <inline-formula><mml:math id="M667" display="inline"><mml:mn mathvariant="normal">100</mml:mn></mml:math></inline-formula> m yr<inline-formula><mml:math id="M668" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> exceeds inferred melt rates of <inline-formula><mml:math id="M669" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">30</mml:mn></mml:mrow></mml:math></inline-formula> m yr<inline-formula><mml:math id="M670" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>
near the grounding line (GL) of Petermann Glacier <xref ref-type="bibr" rid="bib1.bibx15" id="paren.121"/>, but
smaller rates in the model permit unrealistic GL advance. Simulated GL
locations could differ, however, if the model were run at different
resolution or with a grounding-line parameterization <xref ref-type="bibr" rid="bib1.bibx28 bib1.bibx46" id="paren.122"/>.</p>
      <p id="d1e16571">By the end of a 50 000-year simulation with ice shelves, the total ice area
and volume reach equilibrium values of <inline-formula><mml:math id="M671" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.67</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M672" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.08</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M673" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula>, respectively. The area agrees closely with the observational
data set, but the volume is high by about 4 %. The floating area more than
doubles compared to observations, from <inline-formula><mml:math id="M674" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.7</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M675" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.2</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> km<inline-formula><mml:math id="M676" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula>. The additional floating ice is contained in many small shelves
along the coasts.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F15"><caption><p id="d1e16655">Difference (m) between (1) simulated ice thickness at the end of a
50 kyr Greenland spin-up with ice shelves and (2) observed thickness from
<xref ref-type="bibr" rid="bib1.bibx54" id="text.123"/>. The observed thickness is the model initial condition.
The thickness difference is shown for grounded ice only. Regions shaded light
green are floating at the end of the simulation, and black contours enclose
regions that are floating in observations. The three boxes indicate floating
regions highlighted in Fig. <xref ref-type="fig" rid="Ch1.F17"/>: Petermann
Glacier (red), 79 North Glacier and Zachariae Isstrom (dark green), and Kangerlussuaq
Glacier (dark blue). The gray background shows regions that are ice-free at
both the beginning and end of the simulation.</p></caption>
          <?xmltex \igopts{width=227.622047pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f15.png"/>

        </fig>

      <p id="d1e16669">Figure <xref ref-type="fig" rid="Ch1.F15"/> shows (for grounded ice) the
thickness difference between the simulation and observations. Simulated
floating ice is shaded light green, and observed floating ice is enclosed by
black contours. The pattern of thickness errors is generally similar to the
run without ice shelves (Fig. <xref ref-type="fig" rid="Ch1.F11"/>), with
positive biases in the northeast interior and along the southeast coast, and
negative biases along the northern and northwest margins. The run with
shelves, however, has additional positive biases in east central and west
central Greenland, upstream of large outlet glaciers such as Jakobshavn in
the west and Helheim and Kangerlussuaq in the southeast. The<?pagebreak page414?> basins that have
thickened relative to the no-shelf simulation generally have ice shelves at
their termini, where no shelves exist in reality. Although these shelves are
small, they appear to provide buttressing that leads to thickening upstream.
Figure <xref ref-type="fig" rid="Ch1.F16"/> shows the difference in surface ice
speed between the simulations with and without ice shelves. Differences are
largest in outlet glaciers with unrealistic floating termini. The general
pattern is of faster speeds near glacier termini in the run with shelves
(where ice can be much thicker than in the no-shelf simulation), with slower
speeds upstream.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F16"><caption><p id="d1e16681">Difference (m yr<inline-formula><mml:math id="M677" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) in simulated surface ice speed at the end
of 50 kyr Greenland spin-up runs with and without ice shelves. Black
contours enclose regions that are floating in the run with ice shelves. The
gray background shows regions that are ice-free in both simulations.</p></caption>
          <?xmltex \igopts{width=227.622047pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f16.png"/>

        </fig>

      <?xmltex \floatpos{p}?><fig id="Ch1.F17"><caption><p id="d1e16704">Close-ups of three regions with floating ice at the end of a 50 kyr
Greenland spin-up with ice shelves: Petermann Glacier <bold>(a)</bold>, 79 North
Glacier and Zachariae Isstrom <bold>(b)</bold>, and Kangerlussuaq Glacier <bold>(c)</bold>.
These regions are enclosed by boxes in
Fig. <xref ref-type="fig" rid="Ch1.F15"/>. The shaded color shows the bed
topography (m). Black and green contours enclose regions that are floating at
the start and end of the simulation, respectively. Calving fronts are located
at the north, northeast, and southeast shelf boundaries, respectively, from
top to bottom; grounding lines are located at the south, southwest, and
northwest shelf boundaries, respectively.</p></caption>
          <?xmltex \igopts{width=184.942913pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/12/387/2019/gmd-12-387-2019-f17.png"/>

        </fig>

      <p id="d1e16724">Figure <xref ref-type="fig" rid="Ch1.F17"/> shows closeups of three regions
enclosed by boxes in Fig. <xref ref-type="fig" rid="Ch1.F15"/>. These regions
illustrate floating ice simulated in the vicinity of Petermann Glacier in the
northwest, 79 North Glacier/Zachariae Isstrom in the northeast, and Kangerlussuaq
Glacier in the southeast. The Petermann simulation (Fig. <xref ref-type="fig" rid="Ch1.F17"/>a) is the most
realistic, with modest retreat of both the grounding line and calving front,
and a total area similar to observations. As mentioned above, however, both
the CF and GL locations are sensitive to model parameters. The 79 North Glacier ice
shelf (upper left of Fig. <xref ref-type="fig" rid="Ch1.F17"/>b) shows modest GL retreat with somewhat
larger CF retreat. The simulated Zachariae shelf (lower right of Fig. <xref ref-type="fig" rid="Ch1.F17"/>b)
substantially retreats; we found no combination of calving and basal
melting/freezing parameters that maintains Zachariae in its observed
location. Figure <xref ref-type="fig" rid="Ch1.F17"/>c, showing Kangerlussuaq Glacier, illustrates the
model's tendency to grow unobserved shelves. While there is little floating
ice in this region in reality, there is a moderate-sized simulated shelf at
the fjord mouth, buttressing the glacier upstream.</p>
      <p id="d1e16740">These results demonstrate a modeling challenge for Greenland: how to simulate
existing ice shelves in northern Greenland without permitting unrealistic
shelves in other regions. An eigencalving parameterization, suitably tuned,
can prevent shelves from extending into the open ocean, but in enclosed bays
there are unrealistic shelves with non-negligible dynamic effects. We were
unable to eliminate the<?pagebreak page415?> unobserved shelves in CISM without also removing
observed shelves. This result suggests that important calving or melting
mechanisms could be missing in the model. For example, <xref ref-type="bibr" rid="bib1.bibx8" id="text.124"/>
suggested that basal melting, which is spatially variable, is a major driver
of crevassing and calving. Lacking ocean forcing, the model does not simulate
spatially dependent basal melt rates.</p>
      <p id="d1e16746">Despite these biases, the results show that CISM is capable of simulating ice
velocities broadly consistent with observations for both slow-flowing and
fast-flowing parts of the Greenland ice sheet, with reasonable computational
costs for multimillennial simulations with a higher-order Stokes
approximation.</p>
</sec>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <title>Conclusions</title>
      <p id="d1e16756">We have described CISM v2.1, which includes many innovations to support
robust, accurate, and efficient ice sheet simulations in both idealized and
real-world applications. The model incorporates a hierarchy of Stokes
approximations, including SIA, SSA, depth-integrated higher-order, and 3-D
higher-order. To solve the large elliptic systems associated with membrane
stresses, CISM has an efficient native Fortran preconditioned conjugate
gradient solver, along with links to third-party solver libraries (Trilinos
and SLAP). CISM also adds test cases for higher-order models, including
ISMIP-HOM and various shelf and stream cases. For each velocity solver and
test case, we have verified that CISM solutions are consistent with community
benchmarks. That is, the solutions are as accurate as expected given the
simplifications in the various approximations.</p>
      <p id="d1e16759">CISM's structured rectangular grid has limitations; in particular, the grid
cannot be refined selectively near grounding lines and other regions
requiring high resolution. On the other hand, the structured grid lends
itself to straightforward algorithm development, debugging, creation of
forcing data sets, and analysis of results. CISM runs efficiently on a 4 km
Greenland grid, with throughput of <inline-formula><mml:math id="M678" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">2000</mml:mn></mml:mrow></mml:math></inline-formula> model years per wall-clock
hour on NCAR's Cheyenne supercomputer using the depth-integrated higher-order
solver. Performance improvements might be needed, however, to support
whole-ice-sheet simulations on grids as fine as 1 or 2 km.</p>
      <p id="d1e16772">CISM has participated in the initMIP-Greenland experiments
<xref ref-type="bibr" rid="bib1.bibx30" id="paren.125"/> for model initialization. When spun up for 50 kyr with
modern climate forcing and without floating ice, CISM gives a steady-state
simulation in good agreement with the observed ice extent, volume, and
velocity structure of the Greenland ice sheet. The quality of the simulation
can be attributed, in part, to a higher-order solver that simulates a
realistic stress state in fast outlet glaciers, along with a pseudo-plastic
basal sliding law that enhances sliding on thawed beds at low elevation. The
simulation also benefits from an accurate SMB (from the regional climate
model RACMO2), adjusted to inhibit ice sheet advance beyond<?pagebreak page416?> modern
boundaries. When floating ice is allowed, CISM can maintain ice shelves that
resemble observed shelves in northern Greenland, but the model also simulates
many small shelves that do not exist in reality.</p>
      <p id="d1e16778">CISM can be used for both stand-alone and coupled ice sheet simulations. CISM
v2.1 is the dynamic ice sheet component of CESM2.0, released in June 2018.
Compared to earlier CESM versions, CESM2.0 has more sophisticated ice sheet
dynamics and physics (as described here), along with interactive coupling
capabilities. These improvements will support increasingly realistic
simulations of coupled ice sheet evolution.</p>
</sec>

      
      </body>
    <back><notes notes-type="codeavailability">

      <p id="d1e16785">Source code for CISM v2.1 can
be obtained by downloading a released version from
<uri>https://cism.github.io/download.html</uri> <xref ref-type="bibr" rid="bib1.bibx38" id="paren.126"/>
or by cloning the code from
the public git repository at <uri>https://github.com/CISM/cism</uri> (last access:
20 January 2019). The CISM2.1 documentation, which includes detailed
instructions for downloading and building the code, can be found at
<uri>https://cism.github.io/documentation.html</uri> (last access: 20
January 2019).</p>

      <p id="d1e16800">Following the release of CESM2.0 in June 2018, new CISM development was moved
to the Earth System Modeling Community Portal (ESCOMP). The latest code is
available on the public git repository at
<uri>https://github.com/escomp/cism</uri> <xref ref-type="bibr" rid="bib1.bibx73" id="paren.127"/>. Current documentation for
CISM and for the land-ice implementation in CESM can be found at
<uri>http://www.cesm.ucar.edu/models/cesm2/land-ice/</uri> (last access: 20
January 2019). New developers are welcome.</p>
  </notes><?xmltex \hack{\clearpage}?><app-group>

<?pagebreak page417?><app id="App1.Ch1.S1">
  <title>Matrix assembly for the Blatter–Pattyn approximation</title>
      <p id="d1e16821">Here, we describe the assembly of the terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>)
into a global matrix <inline-formula><mml:math id="M679" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> and vector <inline-formula><mml:math id="M680" display="inline"><mml:mi mathvariant="bold-italic">b</mml:mi></mml:math></inline-formula>. The four terms in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) describe internal ice stresses, basal
friction, lateral pressure, and the gravitational driving force,
respectively. We begin with the internal stress term, which is the most
complex.</p>
<sec id="App1.Ch1.S1.SS1">
  <title>Internal ice stresses</title>
      <p id="d1e16847">The first term on the LHS of each component of Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>)
can be rewritten in terms of velocity components:

                <disp-formula id="App1.Ch1.E1" content-type="numbered"><mml:math id="M681" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="0.2ex" class="aligned" columnspacing="1em" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac><mml:mfenced close=")" open="("><mml:mrow><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi><mml:mspace width="0.33em" linebreak="nobreak"/></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="{" close="}"><mml:mtable rowspacing="6pt 6pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>y</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac><mml:mfenced open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close="}" open="{"><mml:mtable rowspacing="6pt 6pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where brackets denote row vectors and braces denote column vectors. Glissade
evaluates Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E1"/>) for each active element.
Hexahedral elements have eight nodes, with <inline-formula><mml:math id="M682" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M683" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> to be determined at
each active node. Inserting the velocity expressions
(Eq. <xref ref-type="disp-formula" rid="Ch1.E6"/>) into Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E1"/>), we
obtain

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M684" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="(" close=""><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced close="}" open="{"><mml:mrow><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="{" close="}"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mfenced open="" close=""><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced close="}" open="{"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced close="}" open="{"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mfenced open="" close=")"><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.33em"/></mml:mrow></mml:mfenced><mml:mfenced close="}" open="{"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>y</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced close="" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced close="}" open="{"><mml:mrow><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="{" close="}"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mfenced close="" open=""><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="{" close="}"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="{" close="}"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="App1.Ch1.E2"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mfenced open="" close=")"><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.33em"/></mml:mrow></mml:mfenced><mml:mfenced close="}" open="{"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e17652">Each row or column vector has eight terms, one for each node of the
element. These terms can be evaluated to form a set of four <inline-formula><mml:math id="M685" display="inline"><mml:mrow><mml:mn mathvariant="normal">8</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula>
element matrices, denoted as <inline-formula><mml:math id="M686" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M687" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>,
<inline-formula><mml:math id="M688" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M689" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Each row of an element matrix is
associated with <inline-formula><mml:math id="M690" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M691" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> at a given node. The columns in this row contain
terms linking the node to <inline-formula><mml:math id="M692" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M693" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> at the other nodes of the same element
(with the diagonal term linking the node to itself).</p>
      <p id="d1e17752">In the <inline-formula><mml:math id="M694" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> component of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E2"/>), the terms that
multiply <inline-formula><mml:math id="M695" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are given by

                <disp-formula id="App1.Ch1.E3" content-type="numbered"><mml:math id="M696" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Letting <inline-formula><mml:math id="M697" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M698" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> range from 1 to 8, Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E3"/>) gives
the 64 terms of the <inline-formula><mml:math id="M699" display="inline"><mml:mrow><mml:mn mathvariant="normal">8</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> element matrix <inline-formula><mml:math id="M700" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, which links
the <inline-formula><mml:math id="M701" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> value at each node to the <inline-formula><mml:math id="M702" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> values at all eight nodes. Similarly,
the 64 terms of element matrix <inline-formula><mml:math id="M703" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, which links <inline-formula><mml:math id="M704" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> at each
node to <inline-formula><mml:math id="M705" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> at each of the eight nodes, are given by

                <disp-formula id="App1.Ch1.E4" content-type="numbered"><mml:math id="M706" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Likewise, two <inline-formula><mml:math id="M707" display="inline"><mml:mrow><mml:mn mathvariant="normal">8</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> matrices are associated with the <inline-formula><mml:math id="M708" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> component of
Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E2"/>). The terms of <inline-formula><mml:math id="M709" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are

                <disp-formula id="App1.Ch1.E5" content-type="numbered"><mml:math id="M710" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and the terms of <inline-formula><mml:math id="M711" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are

                <disp-formula id="App1.Ch1.E6" content-type="numbered"><mml:math id="M712" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Because of the symmetry of the underlying PDEs, <inline-formula><mml:math id="M713" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math id="M714" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are symmetric, and <inline-formula><mml:math id="M715" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow><mml:mi>T</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.
The terms containing <inline-formula><mml:math id="M716" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> (i.e., the vertical shear stresses) appear only in
<inline-formula><mml:math id="M717" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M718" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, whereas the terms containing <inline-formula><mml:math id="M719" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> and
<inline-formula><mml:math id="M720" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> (i.e., the membrane stresses) appear in all four element matrices.</p>
      <p id="d1e18425">In the weak form of the equations, each of the 64 coefficients in each
element matrix must be integrated over the element. (Since <inline-formula><mml:math id="M721" display="inline"><mml:mi mathvariant="italic">φ</mml:mi></mml:math></inline-formula> varies
over the element, the integrands in
Eqs. <xref ref-type="disp-formula" rid="App1.Ch1.E3"/>–<xref ref-type="disp-formula" rid="App1.Ch1.E6"/> have a
different value at each point.) The integrals can be computed exactly by
evaluating the integrand at each of eight quadrature points and summing over
quadrature points.</p>
      <?pagebreak page418?><p id="d1e18440">We now specify the form of the basis functions and transform these functions
to the geometry of the element (which is irregular in the vertical direction
because of the sigma coordinate). We can then evaluate the basis function
derivatives at quadrature points. Glissade uses trilinear basis functions
defined on a reference cube. This cube is centered at the origin <inline-formula><mml:math id="M722" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in
local reference coordinates <inline-formula><mml:math id="M723" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>). The eight nodes of
the reference cube are located at <inline-formula><mml:math id="M724" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. By convention, nodes 1–4 are the nodes of the lower face,
proceeding counterclockwise from the southwest corner <inline-formula><mml:math id="M725" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Nodes 5–8 are the nodes of the upper face, also moving
counterclockwise from the southwest corner. Thus, we have

                <disp-formula id="App1.Ch1.E7" content-type="numbered"><mml:math id="M726" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="3pt 3pt 3pt 3pt 3pt 3pt 3pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">7</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          For each <inline-formula><mml:math id="M727" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>, we have <inline-formula><mml:math id="M728" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> at node <inline-formula><mml:math id="M729" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>, with
<inline-formula><mml:math id="M730" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> at the other nodes.</p>
      <p id="d1e19082">The integrands in
Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.E3"/>)–(<xref ref-type="disp-formula" rid="App1.Ch1.E6"/>) are written in
terms of real Cartesian coordinates <inline-formula><mml:math id="M731" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> rather than reference
coordinates <inline-formula><mml:math id="M732" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Spatial derivatives in real
coordinates are related to derivatives in reference coordinates by

                <disp-formula id="App1.Ch1.E8" content-type="numbered"><mml:math id="M733" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced close="}" open="{"><mml:mtable class="matrix" rowspacing="6pt 6pt" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" rowspacing="6pt 6pt" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="{" close="}"><mml:mtable class="matrix" rowspacing="6pt 6pt" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mi>J</mml:mi><mml:mo>]</mml:mo><mml:mfenced close="}" open="{"><mml:mtable rowspacing="6pt 6pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M734" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mi>J</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is the Jacobian of the transformation between coordinate systems.
Given the finite-element expansion,

                <disp-formula id="App1.Ch1.E9" content-type="numbered"><mml:math id="M735" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>n</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          along with the spatial derivatives of <inline-formula><mml:math id="M736" display="inline"><mml:mi mathvariant="italic">φ</mml:mi></mml:math></inline-formula> at
<inline-formula><mml:math id="M737" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (which are easily derived from
Eq. <xref ref-type="disp-formula" rid="App1.Ch1.E7"/>), we can compute
<inline-formula><mml:math id="M738" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> as

                <disp-formula id="App1.Ch1.E10" content-type="numbered"><mml:math id="M739" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>[</mml:mo><mml:mi>J</mml:mi><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable rowspacing="6pt 6pt" class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>y</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>z</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>y</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>z</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>y</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>z</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          We then invert Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E8"/>) to obtain the basis
function derivatives in terms of <inline-formula><mml:math id="M740" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>:

                <disp-formula id="App1.Ch1.E11" content-type="numbered"><mml:math id="M741" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced close="}" open="{"><mml:mtable class="matrix" rowspacing="6pt 6pt" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msup><mml:mi>J</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>]</mml:mo><mml:mfenced close="}" open="{"><mml:mtable class="matrix" rowspacing="6pt 6pt" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e20070">The LHS of Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E11"/>) contains the spatial
derivatives needed to evaluate
Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.E3"/>)–(<xref ref-type="disp-formula" rid="App1.Ch1.E6"/>).</p>
      <p id="d1e20079">Equations (<xref ref-type="disp-formula" rid="App1.Ch1.E3"/>)–(<xref ref-type="disp-formula" rid="App1.Ch1.E6"/>) also
contain the viscosity <inline-formula><mml:math id="M742" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula>, which is computed at each quadrature point. In
the BP approximation, <inline-formula><mml:math id="M743" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> is given by
Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>); it is a function of the flow factor
<inline-formula><mml:math id="M744" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> and the effective strain rate defined by
Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>). We approximate <inline-formula><mml:math id="M745" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> by its value
at the element center. The (squared) effective strain rate <inline-formula><mml:math id="M746" display="inline"><mml:mrow><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal">˙</mml:mo></mml:mover><mml:mi mathvariant="normal">e</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> is evaluated at each quadrature point by summing over
strain-rate components. The <inline-formula><mml:math id="M747" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> components are given by

                <disp-formula id="App1.Ch1.E12" content-type="numbered"><mml:math id="M748" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and similarly for the <inline-formula><mml:math id="M749" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M750" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> components. The nodal velocities in
Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E12"/>) are values from the previous iteration.</p>
      <p id="d1e20263">We now have the information needed to compute the integrands
(<xref ref-type="disp-formula" rid="App1.Ch1.E3"/>)–(<xref ref-type="disp-formula" rid="App1.Ch1.E6"/>) at quadrature
points. To integrate over a hexahedron, we take a weighted sum of the values
at each of eight quadrature points. These points are located at reference
coordinates <inline-formula><mml:math id="M751" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mo>,</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mo>,</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. To evaluate an integral of the form

                <disp-formula id="App1.Ch1.E13" content-type="numbered"><mml:math id="M752" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">η</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Ω</mml:mi></mml:mrow></mml:math></disp-formula>

          over element volume <inline-formula><mml:math id="M753" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula>, we compute the sum over quadrature points

                <disp-formula id="App1.Ch1.E14" content-type="numbered"><mml:math id="M754" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:munderover><mml:msub><mml:mi>w</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi>p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msub><mml:mi>J</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M755" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi>J</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> is the determinant of the Jacobian
(Eq. <xref ref-type="disp-formula" rid="App1.Ch1.E10"/>). For this choice of quadrature points,
each point has a weight <inline-formula><mml:math id="M756" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e20500">The terms of the element matrices <inline-formula><mml:math id="M757" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M758" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are then inserted into the
corresponding global matrices <inline-formula><mml:math id="M759" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M760" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. This is mostly a matter of
bookkeeping. For example, the first row of <inline-formula><mml:math id="M761" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> corresponds to a
particular node of element <inline-formula><mml:math id="M762" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (specifically, the node with indices
<inline-formula><mml:math id="M763" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, given the convention for numbering nodes within elements).
This row corresponds to a row of the global matrix <inline-formula><mml:math id="M764" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and
each of the eight terms in the row of <inline-formula><mml:math id="M765" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is associated with a
column of <inline-formula><mml:math id="M766" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Glissade determines the correct column and adds
the <inline-formula><mml:math id="M767" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> term to the corresponding term in <inline-formula><mml:math id="M768" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.
This process proceeds until the code has looped over all the active elements
and filled the global matrices.</p>
      <?pagebreak page419?><p id="d1e20739">If written in full, each global matrix would have as many rows and columns as
there are active nodes. These matrices, however, are sparse, with a maximum
of 27 nonzero terms per row (corresponding to a node and its 26 nearest
neighbors in a hexahedral lattice). Glissade therefore assembles and stores
arrays of dimension <inline-formula><mml:math id="M769" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">27</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>y</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M770" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M771" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M772" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> are the
grid dimensions. The 27 terms of the first array dimension are arranged
according to a geometric convention. For example, suppose we are filling
columns for the matrix row corresponding to node <inline-formula><mml:math id="M773" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Then, by
convention, index 1 refers to the node with coordinates <inline-formula><mml:math id="M774" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>,
index 14 refers to the node itself (i.e., the diagonal term of the row), and
index 27 refers to the node at <inline-formula><mml:math id="M775" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (and similarly for the other
indices). After assembly, these arrays can be converted to the form required
by a particular linear solver.</p>
      <p id="d1e20898">The remaining assembly consists of evaluating the other terms in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) (i.e., the basal and lateral boundary
conditions and the gravitational forcing) and implementing Dirichlet boundary
conditions, if applicable. We consider these in turn. <?xmltex \hack{\newpage}?></p>
</sec>
<sec id="App1.Ch1.S1.SS2">
  <title>Basal boundary conditions</title>
      <p id="d1e20910">The basal boundary terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) are

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M776" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="italic">β</mml:mi><mml:mi>u</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="App1.Ch1.E15"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>y</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="italic">β</mml:mi><mml:mi>v</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The basal face of each cell is a rectangle. To integrate over a rectangle,
we sum over four quadrature points lying at <inline-formula><mml:math id="M777" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mo>,</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in a reference square with center <inline-formula><mml:math id="M778" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and
vertices <inline-formula><mml:math id="M779" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. This reference square is the 2-D analog of the
reference cube discussed above. We define four bilinear basis functions on
the square (cf. Eq. <xref ref-type="disp-formula" rid="App1.Ch1.E7"/>):

                <disp-formula id="App1.Ch1.E16" content-type="numbered"><mml:math id="M780" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="3pt 3pt 3pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          Given these basis functions and their spatial derivatives, we can
compute the Jacobian for the transformation between the reference square and
the rectangular cell face using the 2-D versions of
Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.E10"/>) and (<xref ref-type="disp-formula" rid="App1.Ch1.E11"/>):

                <disp-formula id="App1.Ch1.E17" content-type="numbered"><mml:math id="M781" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>[</mml:mo><mml:mi>J</mml:mi><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable rowspacing="6pt" class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>y</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>x</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:msubsup><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfrac><mml:msub><mml:mi>y</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e21426"><disp-formula id="App1.Ch1.E18" content-type="numbered"><mml:math id="M782" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced open="{" close="}"><mml:mtable rowspacing="6pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msup><mml:mi>J</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>]</mml:mo><mml:mfenced close="}" open="{"><mml:mtable rowspacing="6pt" class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <?pagebreak page420?><p id="d1e21524">The integrand at a quadrature point has the form <inline-formula><mml:math id="M783" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>,
where the second <inline-formula><mml:math id="M784" display="inline"><mml:mi mathvariant="italic">φ</mml:mi></mml:math></inline-formula> term arises from the finite-element expansion of
<inline-formula><mml:math id="M785" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> at a quadrature point:

                <disp-formula id="App1.Ch1.E19" content-type="numbered"><mml:math id="M786" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:munderover><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          We determine <inline-formula><mml:math id="M787" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> at quadrature points from the values at cell vertices:

                <disp-formula id="App1.Ch1.E20" content-type="numbered"><mml:math id="M788" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:munderover><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The integral over a cell is then computed as a sum over quadrature points:

                <disp-formula id="App1.Ch1.E21" content-type="numbered"><mml:math id="M789" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:munderover><mml:msub><mml:mi>w</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M790" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> for each point. This procedure yields a <inline-formula><mml:math id="M791" display="inline"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula>
matrix describing the connections between each vertex and its neighbors in
the cell. Since the <inline-formula><mml:math id="M792" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> term in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E15"/>) contains <inline-formula><mml:math id="M793" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>
but not <inline-formula><mml:math id="M794" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, and the <inline-formula><mml:math id="M795" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> term contains <inline-formula><mml:math id="M796" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> but not <inline-formula><mml:math id="M797" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, we form 2-D matrices
<inline-formula><mml:math id="M798" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M799" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, but not <inline-formula><mml:math id="M800" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math id="M801" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Each term of <inline-formula><mml:math id="M802" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then inserted into the
global matrix <inline-formula><mml:math id="M803" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and similarly for <inline-formula><mml:math id="M804" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> into
<inline-formula><mml:math id="M805" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e21881">This assembly method tends to smooth the <inline-formula><mml:math id="M806" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> field. If it is desired to
resolve sharp discontinuities in <inline-formula><mml:math id="M807" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>, as in the stream test problem of
Sect. <xref ref-type="sec" rid="Ch1.S4.SS3"/>, Glissade supports a local assembly method in
which the basal friction at a particular vertex depends on the value of
<inline-formula><mml:math id="M808" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> at that vertex alone.</p>
</sec>
<sec id="App1.Ch1.S1.SS3">
  <title>Lateral boundary conditions</title>
      <p id="d1e21913">The lateral boundary terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) are

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M809" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>p</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="App1.Ch1.E22"><mml:mtd/><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>y</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi>p</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Γ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            Since these terms are independent of <inline-formula><mml:math id="M810" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M811" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, they contribute to the load
vectors <inline-formula><mml:math id="M812" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M813" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> on the right-hand side of
Eq. (<xref ref-type="disp-formula" rid="Ch1.E16"/>). They are integrated over the lateral faces of
cells (either grounded or floating) that border the ocean.</p>
      <p id="d1e22038">The lateral faces bordering the ocean are quadrilaterals that can be mapped
to a reference square. The integral over each face is found by summing over
four quadrature points. Basis functions are given by
Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E16"/>), and the Jacobian of the reference
square is found using Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E17"/>). The ice
thickness <inline-formula><mml:math id="M814" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> at each quadrature point is evaluated using

                <disp-formula id="App1.Ch1.E23" content-type="numbered"><mml:math id="M815" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:munderover><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the <inline-formula><mml:math id="M816" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are nodal values interpolated from cell centers.</p>
      <p id="d1e22098">The integrands have the form <inline-formula><mml:math id="M817" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M818" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> is the vertically
averaged net pressure normal to the ice edge, given by
Eq. (<xref ref-type="disp-formula" rid="Ch1.E13"/>). The integral of the pressure terms over a
lateral face is computed as a sum over quadrature points:

                <disp-formula id="App1.Ch1.E24" content-type="numbered"><mml:math id="M819" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">4</mml:mn></mml:munderover><mml:mo>±</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the sign depends on the orientation of the face. The resulting pressure
terms are inserted into the load vector (either <inline-formula><mml:math id="M820" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M821" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>,
depending on the orientation) in the rows associated with each of the four
nodes of the face.</p>
</sec>
<sec id="App1.Ch1.S1.SS4">
  <title>Gravitational driving stress</title>
      <p id="d1e22205">The gravitational forcing terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) are

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M822" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="App1.Ch1.E25"><mml:mtd/><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>y</mml:mi><mml:mo>:</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> d</mml:mtext><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d1e22300">To compute these terms, we evaluate <inline-formula><mml:math id="M823" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M824" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> at each active vertex, typically using
Eq. (<xref ref-type="disp-formula" rid="Ch1.E14"/>) or its <inline-formula><mml:math id="M825" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> analog.</p>
      <p id="d1e22344">The integrals in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E25"/>) are over 3-D elements.
Each hexahedral element is mapped to a reference cube as described above.
Given <inline-formula><mml:math id="M826" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> at the vertices of a cell, the surface slope
terms at quadrature points are

                <disp-formula id="App1.Ch1.E26" content-type="numbered"><mml:math id="M827" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:munderover><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:munderover><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:msub><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the basis functions <inline-formula><mml:math id="M828" display="inline"><mml:mi mathvariant="italic">φ</mml:mi></mml:math></inline-formula> are given by
Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.E7"/>) and the spatial derivatives are derived
from Eqs. (<xref ref-type="disp-formula" rid="App1.Ch1.E10"/>) and
(<xref ref-type="disp-formula" rid="App1.Ch1.E11"/>). The integral of <inline-formula><mml:math id="M829" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>g</mml:mi><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="italic">φ</mml:mi></mml:mrow></mml:math></inline-formula> over an element is evaluated as a sum over quadrature
points:

                <disp-formula id="App1.Ch1.E27" content-type="numbered"><mml:math id="M830" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">8</mml:mn></mml:munderover><mml:msub><mml:mi>w</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>g</mml:mi><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">φ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and similarly for the <inline-formula><mml:math id="M831" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> term. Glissade inserts these
terms into the load vectors <inline-formula><mml:math id="M832" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M833" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e22616">As described above for the assembly of <inline-formula><mml:math id="M834" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> terms, this method tends to
smooth the surface elevation gradient field, averaging neighbor values of
<inline-formula><mml:math id="M835" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M836" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> into the driving stress
at each vertex. For problems with sharp variations in surface gradients, we
have found the solver to be more robust when the driving stress at each
vertex depends on <inline-formula><mml:math id="M837" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M838" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>s</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> at that
vertex alone. Thus, Glissade also supports a local assembly method for the
driving stress.</p>
</sec>
<sec id="App1.Ch1.S1.SS5">
  <title>Dirichlet boundary conditions</title>
      <p id="d1e22696">Once the matrix has been assembled, it may need to be adjusted for Dirichlet
boundary conditions (i.e., prescribed velocity values at certain nodes). A
common Dirichlet condition is to set <inline-formula><mml:math id="M839" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> at the bed to enforce a
no-slip boundary condition. (A no-slip condition can also be enforced by
setting the basal traction coefficient <inline-formula><mml:math id="M840" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> to a large value, but formally
this is not a Dirichlet condition.) Also, it may be desirable to set <inline-formula><mml:math id="M841" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and
<inline-formula><mml:math id="M842" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> to observed values at certain locations, as in the Ross Ice Shelf test
case (Sect. <xref ref-type="sec" rid="Ch1.S4.SS4"/>).</p>
      <?pagebreak page421?><p id="d1e22738">Suppose that at node <inline-formula><mml:math id="M843" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> we have <inline-formula><mml:math id="M844" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M845" display="inline"><mml:mrow><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M846" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M847" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are prescribed values.
Let <inline-formula><mml:math id="M848" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:math></inline-formula> be the row of <inline-formula><mml:math id="M849" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> associated with this node, and let
<inline-formula><mml:math id="M850" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:math></inline-formula> range over the columns with nonzero entries in this row. To enforce the
Dirichlet condition, we set <inline-formula><mml:math id="M851" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for all values of nc except <inline-formula><mml:math id="M852" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:math></inline-formula> (the diagonal term); we set
<inline-formula><mml:math id="M853" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. In addition, we set
<inline-formula><mml:math id="M854" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>v</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for all <inline-formula><mml:math id="M855" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:math></inline-formula>, since
these two matrices do not contain any terms on the diagonal of the full
global matrix (i.e., <inline-formula><mml:math id="M856" display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> in Eq. <xref ref-type="disp-formula" rid="Ch1.E15"/>). On the
right-hand side, we set <inline-formula><mml:math id="M857" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">b</mml:mi><mml:mi mathvariant="normal">u</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math id="M858" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">b</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. These operations convert the matrix rows
associated with node <inline-formula><mml:math id="M859" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> to the equations <inline-formula><mml:math id="M860" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>⋅</mml:mo><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>⋅</mml:mo><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which clearly have the desired solutions
<inline-formula><mml:math id="M861" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M862" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d1e23184">A further step is needed to maintain matrix symmetry, as required for the PCG
solver. Consider the term <inline-formula><mml:math id="M863" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M864" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:math></inline-formula> is a column
associated with a neighboring node. We have already set <inline-formula><mml:math id="M865" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, so we need to set <inline-formula><mml:math id="M866" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> to maintain
symmetry. The Dirichlet condition is <inline-formula><mml:math id="M867" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Thus, we can
replace <inline-formula><mml:math id="M868" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M869" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and set <inline-formula><mml:math id="M870" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> without altering the
problem. We do this for all the terms in the columns associated with node
<inline-formula><mml:math id="M871" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (i.e., all the terms multiplied by <inline-formula><mml:math id="M872" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M873" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
in the matrix–vector product). Thus, both the rows and the columns
associated with node <inline-formula><mml:math id="M874" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are filled with zeros, except for the diagonal
term, and the full global matrix remains symmetric.</p><?xmltex \hack{\clearpage}?>
</sec>
</app>
  </app-group><notes notes-type="authorcontribution">

      <p id="d1e23482">WHL, SFP, and MJH were the primary developers of CISM; WHL led development of
the Glissade dycore. KJE, GRL, MP, DMR, WJS, AGS, and PHW contributed to
various parts of the code, including parallel infrastructure, performance
metrics, links to Trilinos, and links to CESM. JHK, KJE, and ARB integrated
CISM verification and validation tests into the LIVVkit package. ARB, SLB,
JGF, JHK, GRL, and LV helped set up and analyze Greenland experiments. WHL
wrote the paper with contributions from SFP, MJH, and GRL, and with input
from all authors.</p>
  </notes><notes notes-type="competinginterests">

      <p id="d1e23488">The authors declare that they have no conflict of
interest.</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e23495">CISM development was supported primarily by the Earth System Modeling
program, Office of Biological and Environmental Research (BER) of the US
Department of Energy's Office of Science. Additional support was provided by
the DOE's Office of Advanced Scientific Computing Research (ASCR), by BER's
Regional and Global Climate Modeling Program, and by the National Science
Foundation. This material is based upon work supported by the National Center
for Atmospheric Research, which is a major facility sponsored by the National
Science Foundation under cooperative agreement no. 1852977. Computing
resources (<ext-link xlink:href="https://doi.org/10.5065/D6RX99HX" ext-link-type="DOI">10.5065/D6RX99HX</ext-link>) were provided by the Climate Simulation
Laboratory at NCAR's Computational and Information Systems Laboratory,
sponsored by the National Science Foundation and other agencies. Lauren J.
Vargo was supported by NSF grant ANT-0424589 to the Center for Remote Sensing
of Ice Sheets (CReSIS). This paper has been authored by UT-Battelle,
LLC, under contract no. DE-AC05-00OR22725 with the US Department of Energy.
The United States Government retains and the publisher, by accepting the
article for publication, acknowledges that the United States Government
retains a non-exclusive, paid-up, irrevocable, worldwide license to publish
or reproduce the published form of this paper, or allow others to do so,
for United States Government purposes.</p><p id="d1e23500">We thank Jan Lenaerts and Brice Noël for providing surface forcing data
sets from RACMO2. We are also grateful to Rob Arthern, Xylar Asay-Davis, Andy
Aschwanden, Jeremy Bassis, Jed Brown, Ed Bueler, Steph Cornford, John
Dukowicz, Heiko Goelzer, Dan Goldberg, Jesse Johnson, Eric Larour, Marcus
Löfverström, Dan Martin, Mathieu Morlighem, Sophie Nowicki, Frank Pattyn,
Tony Payne, David Pollard, Hélène Seroussi, Slawek Tulaczyk, Miren
Vizcaíno, and Morgan Whitcomb for helpful discussions. We thank Johannes
Sutter and one anonymous referee for constructive
comments.<?xmltex \hack{\newline}?><?xmltex \hack{\newline}?>Edited by: Philippe Huybrechts
<?xmltex \hack{\newline}?>Reviewed by: Johannes Sutter and one anonymous referee</p></ack><?xmltex \hack{\newpage}?><?xmltex \hack{\newpage}?><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Albrecht et al.(2011)Albrecht, Martin, Haseloff, Winkelmann, and
Levermann</label><mixed-citation>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, <ext-link xlink:href="https://doi.org/10.5194/tc-5-35-2011" ext-link-type="DOI">10.5194/tc-5-35-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Arthern and Williams(2017)</label><mixed-citation>Arthern, R. J. and Williams, C. R.: The sensitivity of West Antarctica to the
submarine melting feedback, Geophys. Res. Lett., 44, 2352–2359,
<ext-link xlink:href="https://doi.org/10.1002/2017GL072514" ext-link-type="DOI">10.1002/2017GL072514</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Arthern et al.(2015)Arthern, Hindmarsh, and Williams</label><mixed-citation>Arthern, R. J., Hindmarsh, R. C. A., and Williams, C. R.: Flow speed within
the
Antarctic ice sheet and its controls inferred from satellite observations, J.
Geophys. Res.-Earth, 120, 1171–1188, <ext-link xlink:href="https://doi.org/10.1002/2014JF003239" ext-link-type="DOI">10.1002/2014JF003239</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Asay-Davis et al.(2016)Asay-Davis, Cornford, Durand, Galton-Fenzi,
Gladstone, Gudmundsson, Hattermann, Holland, Holland, Holland, Martin,
Mathiot, Pattyn, and Seroussi</label><mixed-citation>Asay-Davis, X. S., Cornford, S. L., Durand, G., Galton-Fenzi, B. K.,
Gladstone, R. M., Gudmundsson, G. H., Hattermann, T., Holland, D. M.,
Holland, D., Holland, P. R., Martin, D. F., Mathiot, P., Pattyn, F., and
Seroussi, H.: Experimental design for three interrelated marine ice sheet and
ocean model intercomparison projects: MISMIP v. 3 (MISMIP +), ISOMIP v. 2
(ISOMIP +) and MISOMIP v. 1 (MISOMIP1), Geosci. Model Dev., 9, 2471–2497,
<ext-link xlink:href="https://doi.org/10.5194/gmd-9-2471-2016" ext-link-type="DOI">10.5194/gmd-9-2471-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Asay-Davis et al.(2017)Asay-Davis, Jourdain, and
Nakayama</label><mixed-citation>Asay-Davis, X. S., Jourdain, N. C., and Nakayama, Y.: Developments in
simulating and parameterizing interactions between the Southern Ocean and the
Antarctic Ice Sheet, Curr. Clim. Change Rep., 3, 316–329,
<ext-link xlink:href="https://doi.org/10.1007/s40641-017-0071-0" ext-link-type="DOI">10.1007/s40641-017-0071-0</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx6"><?xmltex \def\ref@label{{Aschwanden et~al.(2013)Aschwanden, Adalgeirsd\'{o}ttir, and
Khroulev}}?><label>Aschwanden et al.(2013)Aschwanden, Adalgeirsdóttir, and
Khroulev</label><mixed-citation>Aschwanden, A., Aðalgeirsdóttir, G., and Khroulev, C.: Hindcasting to measure ice sheet model sensitivity to initial states, The Cryosphere, 7, 1083–1093, <ext-link xlink:href="https://doi.org/10.5194/tc-7-1083-2013" ext-link-type="DOI">10.5194/tc-7-1083-2013</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Aschwanden et al.(2016)Aschwanden, Fahnestock, and
Truffer</label><mixed-citation>Aschwanden, A., Fahnestock, M. A., and Truffer, M.: Complex Greenland outlet
glacier flow captured, Nat. Commun., 7, 10524, <ext-link xlink:href="https://doi.org/10.1038/ncomms10524" ext-link-type="DOI">10.1038/ncomms10524</ext-link>,
2016.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Bassis and Ma(2015)</label><mixed-citation>Bassis, J. N. and Ma, Y.: Evolution of basal crevasses links ice shelf
stability to ocean forcing, Earth Planet. Sc. Lett., 409, 203–211,
<ext-link xlink:href="https://doi.org/10.1016/j.epsl.2014.11.003" ext-link-type="DOI">10.1016/j.epsl.2014.11.003</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Bassis and Walker(2012)</label><mixed-citation>Bassis, J. N. and Walker, C. C.: Upper and lower limits on the stability of
calving glaciers from the yield strength envelope of ice, Proc. Roy. Soc. A,
468, 913–931, <ext-link xlink:href="https://doi.org/10.1098/rspa.2011.0422" ext-link-type="DOI">10.1098/rspa.2011.0422</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Blatter(1995)</label><mixed-citation>
Blatter, H.: Velocity and stress fields in grounded glaciers – a simple
algorithm for including deviatoric stress gradients, J. Glaciol., 41,
333–344, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Bueler(2009)</label><mixed-citation>Bueler, E.: Lectures at Karthaus: Numerical modelling of ice sheets and ice
shelves,
available at: <uri>https://www.projects.science.uu.nl/iceclimate/karthaus/archive/lecturenotes/2009/bueler/EdBueler.pdf</uri> (last access: 27 May 2018), 2009.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Bueler and Brown(2009)</label><mixed-citation>Bueler, E. and Brown, J.: Shallow shelf approximation as a “sliding law” in
a
thermodynamically coupled ice sheet model, J. Geophys. Res., 114, F03008,
<ext-link xlink:href="https://doi.org/10.1029/2008JF001179" ext-link-type="DOI">10.1029/2008JF001179</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Bueler and van Pelt(2015)</label><mixed-citation>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,
<ext-link xlink:href="https://doi.org/10.5194/gmd-8-1613-2015" ext-link-type="DOI">10.5194/gmd-8-1613-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Bueler et al.(2005)Bueler, Lingle, Kallen-Brown, Covey, and
Bowman</label><mixed-citation>Bueler, E., Lingle, C. S., Kallen-Brown, J. A., Covey, D. N., and Bowman,
L. N.: Exact solutions and verification of numerical models for isothermal
ice sheets, J. Glaciol., 51, 291–306, <ext-link xlink:href="https://doi.org/10.3189/172756505781829449" ext-link-type="DOI">10.3189/172756505781829449</ext-link>,
2005.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Cai et al.(2017)Cai, Rignot, Menemenlis, and Nakayama</label><mixed-citation>Cai, C., Rignot, E., Menemenlis, D., and Nakayama, Y.: Observations and
modeling of ocean-induced melt beneath Petermann<?pagebreak page423?> Glacier Ice Shelf in
northwestern Greenland, Geophys. Res. Lett., 44, 8396–8403,
<ext-link xlink:href="https://doi.org/10.1002/2017GL073711" ext-link-type="DOI">10.1002/2017GL073711</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Choi et al.(2017)Choi, Morlighem, Rignot, Mouginot, and
Wood</label><mixed-citation>Choi, Y., Morlighem, M., Rignot, E., Mouginot, J., and Wood, M.: Modeling the
response of Nioghalvjerdsjorden and Zachariae Isstrom Glaciers, Greenland, to
ocean forcing over the next century, Geophys. Res. Lett., 44, 11071–11079,
<ext-link xlink:href="https://doi.org/10.1002/2017GL075174" ext-link-type="DOI">10.1002/2017GL075174</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Chronopoulos(1986)</label><mixed-citation>
Chronopoulos, A. T.: A class of parallel iterative methods implemented on
multiprocessors, PhD thesis, Department of Computer Science, University of
Illinois, 1986.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Chronopoulos and Gear(1989)</label><mixed-citation>Chronopoulos, A. T. and Gear, C. W.: <italic>s</italic>-step iterative methods for
symmetric linear systems, J. Comput. Appl. Math., 25, 153–168, 1989.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Church et al.(2013)Church, Clark, Cazenave, Gregory, Jevrejeva,
Levermann, Merrifield, Milne, Nerem, Nunn, Payne, Pfeffer, Stammer, and
Unnikrishnan</label><mixed-citation>Church, J., Clark, P., Cazenave, A., Gregory, J., Jevrejeva, S., Levermann,
A.,
Merrifield, M., Milne, G., Nerem, R., Nunn, P., Payne, A., Pfeffer, W.,
Stammer, D., and Unnikrishnan, A.: Sea Level Change, in: Climate Change 2013:
The Physical Science Basis. Contribution of Working Group I to the Fifth
Assessment Report of the Intergovernmental Panel on Climate Change, edited
by:
Stocker, T., Qin, D., Plattner, G.-K., Tignor, M., Allen, S., Boschung, J.,
Nauels, A., Xia, Y., Bex, V., and Midgley, P.,   Cambridge
University Press, Cambridge, United Kingdom and New York, NY, USA, 1137–1216,
<ext-link xlink:href="https://doi.org/10.1017/CBO9781107415324.026" ext-link-type="DOI">10.1017/CBO9781107415324.026</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Cornford et al.(2013)Cornford, Martin, Graves, Ranken, Le Brocq,
Gladstone, Payne, Ng, and Lipscomb</label><mixed-citation>
Cornford, S. L., Martin, D. F., Graves, D. T., Ranken, D. R., 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.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Cuffey and Paterson(2010)</label><mixed-citation>
Cuffey, K. and Paterson, W. S. B.: The Physics of Glaciers,
Butterworth-Heinneman, Amsterdam, 4th Edn., 2010.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Dukowicz and Baumgardner(2000)</label><mixed-citation>
Dukowicz, J. K. and Baumgardner, J. R.: Incremental remapping as a
transport/advection algorithm, J. Comput. Phys., 160, 318–335, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Dukowicz et al.(2010)Dukowicz, Price, and Lipscomb</label><mixed-citation>
Dukowicz, J. K., Price, S. F., and Lipscomb, W. H.: Consistent
approximations
and boundary conditions for ice-sheet dynamics from a principle of least
action, J. Glaciol., 56, 480–496, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Ettema et al.(2009)Ettema, van den Broeke, van Meijgaard, van de
Berg, Bamber, Box, and Bales</label><mixed-citation>Ettema, J., van den Broeke, M. R., van Meijgaard, E., van de Berg, W. J.,
Bamber, J. L., Box, J. E., and Bales, R. C.: Higher surface mass balance of
the Greenland ice sheet revealed by high-resolution climate modeling,
Geophys. Res. Lett., 36, L12501, <ext-link xlink:href="https://doi.org/10.1029/2009GL038110" ext-link-type="DOI">10.1029/2009GL038110</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Evans et al.(2012)Evans, Salinger, Worley, Price, Lipscomb, Nichols,
III, Perego, Vertenstein, Edwards, and Lemieux</label><mixed-citation>Evans, K. J., Salinger, A. G., Worley, P. H., Price, S. F., Lipscomb, W. H.,
Nichols, J. A., White III, J. B., Perego, M., Vertenstein, M., Edwards, J., and
Lemieux, J.-F.: A modern solver interface to manage solution algorithms in
the Community Earth System Model, Int. J. High Perform. C., 26,
54–62, <ext-link xlink:href="https://doi.org/10.1177/1094342011435159" ext-link-type="DOI">10.1177/1094342011435159</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Fyke et al.(2014)Fyke, Sacks, and Lipscomb</label><mixed-citation>Fyke, J. G., Sacks, W. J., and Lipscomb, W. H.: A technique for generating
consistent ice sheet initial conditions for coupled ice sheet/climate models,
Geosci. Model Dev., 7, 1183–1195, <ext-link xlink:href="https://doi.org/10.5194/gmd-7-1183-2014" ext-link-type="DOI">10.5194/gmd-7-1183-2014</ext-link>,
2014.</mixed-citation></ref>
      <ref id="bib1.bibx27"><?xmltex \def\ref@label{{Gagliardini et~al.(2013)Gagliardini, Zwinger, Gillet-Chaulet, Durand,
Favier, De~Fleurian, Greve, Malinen, Martin, R{\aa}back, Ruokolainen,
Sacchettini, Sch{\"{a}}fer, Seddik, and Thies}}?><label>Gagliardini et al.(2013)Gagliardini, Zwinger, Gillet-Chaulet, Durand,
Favier, De Fleurian, Greve, Malinen, Martin, Råback, Ruokolainen,
Sacchettini, Schäfer, Seddik, and Thies</label><mixed-citation>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, <ext-link xlink:href="https://doi.org/10.5194/gmd-6-1299-2013" ext-link-type="DOI">10.5194/gmd-6-1299-2013</ext-link>,
2013.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Gladstone et al.(2010)Gladstone, Payne, and Cornford</label><mixed-citation>Gladstone, R. M., Payne, A. J., and Cornford, S. L.: Parameterising the
grounding line in flow-line ice sheet models, The Cryosphere, 4, 605–619,
<ext-link xlink:href="https://doi.org/10.5194/tc-4-605-2010" ext-link-type="DOI">10.5194/tc-4-605-2010</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Glen(1955)</label><mixed-citation>
Glen, J. W.: The creep of polycrystalline ice, Proc. R. Soc. Lond. A, 228,
519–538, 1955.</mixed-citation></ref>
      <ref id="bib1.bibx30"><?xmltex \def\ref@label{{Goelzer et~al.(2018)Goelzer, Nowicki, Edwards, Beckley, Abe-Ouchi,
Aschwanden, Calov, Gagliardini, Gillet-Chaulet, Golledge, Gregory, Greve,
Humbert, Huybrechts, Kennedy, Larour, Lipscomb, Le~clec'h, Lee, Morlighem,
Pattyn, Payne, Rodehacke, R\"{u}ckamp, Saito, Schlegel, Seroussi, Shepherd,
Sun, van~de Wal, and Ziemen}}?><label>Goelzer et al.(2018)Goelzer, Nowicki, Edwards, Beckley, Abe-Ouchi,
Aschwanden, Calov, Gagliardini, Gillet-Chaulet, Golledge, Gregory, Greve,
Humbert, Huybrechts, Kennedy, Larour, Lipscomb, Le clec'h, Lee, Morlighem,
Pattyn, Payne, Rodehacke, Rückamp, Saito, Schlegel, Seroussi, Shepherd,
Sun, van de Wal, and Ziemen</label><mixed-citation>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,
<ext-link xlink:href="https://doi.org/10.5194/tc-12-1433-2018" ext-link-type="DOI">10.5194/tc-12-1433-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Goldberg(2011)</label><mixed-citation>Goldberg, D. N.: A variationally derived, depth-integrated approximation to
a higher-order glaciological flow model, J. Glaciol., 57, 157–170,
<ext-link xlink:href="https://doi.org/10.3189/002214311795306763" ext-link-type="DOI">10.3189/002214311795306763</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Halfar(1983)</label><mixed-citation>
Halfar, P.: On the dynamics of the ice sheets 2, J. Geophys. Res., 88,
6043–6051, 1983.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Hanna et al.(2013)Hanna, Navarro, Pattyn, Domingues, Fettweis, Ivins,
Nicholls, Ritz, Smith, Tulaczyk, Whitehouse, and Zwally</label><mixed-citation>Hanna, E., Navarro, F. J., Pattyn, F., Domingues, C. M., Fettweis, X., Ivins,
E. R., Nicholls, R. J., Ritz, C., Smith, B., Tulaczyk, S., Whitehouse, P. L.,
and Zwally, H. J.: Ice-sheet mass balance and climate change, Nature, 498,
51–59, <ext-link xlink:href="https://doi.org/10.1038/nature12238" ext-link-type="DOI">10.1038/nature12238</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Heroux et al.(2005)Heroux, Bartlett, Howle, Hoekstra, Hu, Kolda,
Lehoucq, Long, Pawlowski, Phipps, Salinger, Thornquist, Tuminaro,
Willenbring, Williams, and Stanley</label><mixed-citation>Heroux, M. A., Bartlett, R. A., Howle, V. E., Hoekstra, R. J., Hu, J. J.,
Kolda, T. G., Lehoucq, R. B., Long, K. R., Pawlowski, R. P., Phipps, E. T.,
Salinger, A. G., Thornquist, H. K., Tuminaro, R. S., Willenbring, J. M.,
Williams, A., and Stanley, K. S.: An overview of the Trilinos project, ACM
T. Math. Software, 31, 397–423,
<ext-link xlink:href="https://doi.org/10.1145/1089014.1089021" ext-link-type="DOI">10.1145/1089014.1089021</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Hindmarsh(2006)</label><mixed-citation>Hindmarsh, R.: The role of membrane-like stresses in determining the
stability
and sensitivity of the Antarctic ice sheets: back pressure and grounding line
motion, Philos. T. R. Soc. A, 364, 1733–1767,
<ext-link xlink:href="https://doi.org/10.1098/rsta.2006.1797" ext-link-type="DOI">10.1098/rsta.2006.1797</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Hoffman and Price(2014)</label><mixed-citation>Hoffman, M. J. and Price, S.: Feedbacks between coupled subglacial hydrology
and glacier dynamics, J. Geophys. Res.-Earth, 119, 414–436,
<ext-link xlink:href="https://doi.org/10.1002/2013JF002943" ext-link-type="DOI">10.1002/2013JF002943</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Hoffman et al.(2018)Hoffman, Perego, Price, Lipscomb, Jacobsen,
Tezaur, Salinger, Tuminaro, and Zhang</label><mixed-citation>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,
<ext-link xlink:href="https://doi.org/10.5194/gmd-11-3747-2018" ext-link-type="DOI">10.5194/gmd-11-3747-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Hoffman et al.(2019)</label><mixed-citation>Hoffman, M. J., Price, S. F., and Lipscomb, W. H.: CISM/Community Ice Sheet,
Model, available at: <uri>https://cism.github.io/download.html</uri>, last access:
20 January 2019.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Huebner et al.(2001)Huebner, Dewhirst, Smith, and
Byrom</label><mixed-citation>
Huebner, K. H., Dewhirst, D. L., Smith, D. E., and Byrom, T. G.: The Finite
Element Method for Engineers, Wiley, New York, 4th Edn., 2001.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Hughes(2000)</label><mixed-citation>
Hughes, T.: The Finite Element Method: Linear Static and Dynamic Finite
Element
Analysis, Dover Civil and Mechanical Engineering, Dover, Mineola, New York,
1st Edn., 2000.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Hurrell et al.(2013)Hurrell, Holland, Gent, Ghan, Kay, Kushner,
Lamarque, Large, Lawrence, Lindsay, Lipscomb, Long, Mahowald, Marsh, Neale,
Rasch, Vavrus, Vertenstein, Bader, Collins, Hack, Kiehl, and
Marshall</label><mixed-citation>Hurrell, J., Holland, M., Gent, P., Ghan, S., Kay, J., Kushner, P., Lamarque,
J.-F., Large, W., Lawrence, D., Lindsay, K., Lipscomb, W., Long, M.,
Mahowald, N., Marsh, D., Neale, R., Rasch, P., Vavrus, S., Vertenstein, M.,
Bader, D., Collins, W.,<?pagebreak page424?> Hack, J., Kiehl, J., and Marshall, S.: The Community
Earth System Model: A framework for collaborative research, B. Am. Meteorol.
Soc., 94, 1339–1360, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-12-00121.1" ext-link-type="DOI">10.1175/BAMS-D-12-00121.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Hutter(1983)</label><mixed-citation>
Hutter, K.: Theoretical Glaciology, Mathematical Approaches to Geophysics, D.
Reidel Publishing Company, Dordrecht, Boston, Lancaster, 1983.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Joughin et al.(2010)Joughin, Smith, Howat, and Scambos</label><mixed-citation>
Joughin, I., Smith, B., Howat, I., and Scambos, T.: MEaSUREs Greenland Ice
Sheet Velocity Map from InSAR Data, National Snow and Ice Data Center,
Boulder, Colorado, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Kennedy et al.(2017)Kennedy, Bennett, Evans, Price, Hoffman,
Lipscomb, Fyke, Vargo, Boghozian, Norman, and Worley</label><mixed-citation>Kennedy, J. H., Bennett, A. R., Evans, K. J., Price, S., Hoffman, M.,
Lipscomb,
W. H., Fyke, J., Vargo, L., Boghozian, A., Norman, M., and Worley, P. H.:
LIVVkit: An extensible, python-based, land ice verification and validation
tool kit for ice sheet models, J. Adv. Model. Earth Sy., 9, 854–869,
<ext-link xlink:href="https://doi.org/10.1002/2017MS000916" ext-link-type="DOI">10.1002/2017MS000916</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Larour et al.(2012)Larour, Seroussi, Morlighem, and
Rignot</label><mixed-citation>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,
<ext-link xlink:href="https://doi.org/10.1029/2011JF002140" ext-link-type="DOI">10.1029/2011JF002140</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Leguy et al.(2014)Leguy, Asay-Davis, and Lipscomb</label><mixed-citation>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, <ext-link xlink:href="https://doi.org/10.5194/tc-8-1239-2014" ext-link-type="DOI">10.5194/tc-8-1239-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Levermann et al.(2012)Levermann, Albrecht, Winkelmann, Haseloff, and
Joughin</label><mixed-citation>Levermann, A., Albrecht, T., Winkelmann, R., Martin, M. A., Haseloff, M., and
Joughin, I.: Kinematic first-order calving law implies potential for abrupt
ice-shelf retreat, The Cryosphere, 6, 273–286,
<ext-link xlink:href="https://doi.org/10.5194/tc-6-273-2012" ext-link-type="DOI">10.5194/tc-6-273-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Lipscomb and Hunke(2004)</label><mixed-citation>
Lipscomb, W. H. and Hunke, E. C.: Modeling sea ice transport using
incremental remapping, Mon. Weather Rev., 132, 1341–1354, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Lipscomb et al.(2013)Lipscomb, Fyke, Vizcaino, Sacks, Wolfe,
Vertenstein, Craig, Kluzek, and Lawrence</label><mixed-citation>Lipscomb, W. H., Fyke, J. G., Vizcaino, M., Sacks, W. J., Wolfe, J.,
Vertenstein, M., Craig, A., Kluzek, E., and Lawrence, D. M.: Implementation
and initial evaluation of the Glimmer Community Ice Sheet Model in the
Community Earth System Model, J. Climate, 26, 7352–7371,
<ext-link xlink:href="https://doi.org/10.1175/JCLI-D-12-00557.1" ext-link-type="DOI">10.1175/JCLI-D-12-00557.1</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>MacAyeal(1989)</label><mixed-citation>
MacAyeal, D. R.: Large-scale ice flow over a viscous basal sediment –
Theory
and application to Ice Stream B, Antarctica, J. Geophys. Res., 94,
4071–4087, 1989.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>MacAyeal et al.(1996)MacAyeal, Rommelaere, Huybrechts, Hulbe,
Determann, and Ritz</label><mixed-citation>
MacAyeal, D. R., Rommelaere, V., Huybrechts, P., Hulbe, C. L., Determann, J.,
and Ritz, C.: An ice-shelf model test based on the Ross Ice Shelf,
Antarctica, Ann. Glaciol., 23, 46–51, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>MacGregor et al.(2015)MacGregor, Fahnestock, Catania, Aschwanden,
Clow, Colgan, Gogineni, Morlighem, Nowicki, Paden, Price, and
Seroussi</label><mixed-citation>MacGregor, J. A., Fahnestock, M. A., Catania, G. A., Aschwanden, A., Clow,
G. D., Colgan, W. T., Gogineni, S. P., Morlighem, M., Nowicki, S. M. J.,
Paden, J. D., Price, S. F., and Seroussi, H.: A synthesis of the basal
thermal state of the Greenland Ice Sheet, J. Geophys. Res.-Earth, 121, 1328–1350,
<ext-link xlink:href="https://doi.org/10.1002/2015JF003803" ext-link-type="DOI">10.1002/2015JF003803</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Morlighem et al.(2011)Morlighem, Rignot, Seroussi, Larour, Dhia, and
Aubry</label><mixed-citation>Morlighem, M., Rignot, E., Seroussi, H., Larour, E., Dhia, H. B., and Aubry,
D.: A mass conservation approach for mapping glacier ice thickness, Geophys.
Res. Lett., 38, L19503, <ext-link xlink:href="https://doi.org/10.1029/2011GL048659" ext-link-type="DOI">10.1029/2011GL048659</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Morlighem et al.(2014)Morlighem, Rignot, Mouginot, Seroussi, and
Larour</label><mixed-citation>Morlighem, M., Rignot, E., Mouginot, J., Seroussi, H., and Larour, E.: Deeply
incised submarine glacial valleys beneath the Greenland Ice Sheet, Nat.
Geosci., 7, 418–422, <ext-link xlink:href="https://doi.org/10.1038/ngeo2167" ext-link-type="DOI">10.1038/ngeo2167</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>Morlighem et al.(2016)Morlighem, Bondzio, Seroussi, Rignot, Larour,
Humbert, and Rebuffi</label><mixed-citation>Morlighem, M., Bondzio, J., Seroussi, H., Rignot, E., Larour, E., Humbert,
A.,
and Rebuffi, S.: Modeling of Store Gletscher's calving dynamics, West
Greenland, in response to ocean thermal forcing, Geophys. Res. Lett., 43,
2659–2666,
<ext-link xlink:href="https://doi.org/10.1002/2016GL067695" ext-link-type="DOI">10.1002/2016GL067695</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>NCAR Command Language(2017)</label><mixed-citation>NCAR Command Language (Version 6.4.0)
[Software], Boulder, Colorado, UCAR/NCAR/CISL/VETS,
<ext-link xlink:href="https://doi.org/10.5065/D6WD3XH5" ext-link-type="DOI">10.5065/D6WD3XH5</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx57"><?xmltex \def\ref@label{{No\"{e}l et~al.(2016)No\"{e}l, van~de Berg, Machguth, Lhermitte, Howat,
Fettweis, and van~den Broeke}}?><label>Noël et al.(2016)Noël, van de Berg, Machguth, Lhermitte, Howat,
Fettweis, and van den Broeke</label><mixed-citation>Noël, B., van de Berg, W. J., Machguth, H., Lhermitte, S., Howat, I.,
Fettweis, X., and van den Broeke, M. R.: A daily, 1 km resolution data set
of downscaled Greenland ice sheet surface mass balance (1958–2015), The
Cryosphere, 10, 2361–2377, <ext-link xlink:href="https://doi.org/10.5194/tc-10-2361-2016" ext-link-type="DOI">10.5194/tc-10-2361-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx58"><?xmltex \def\ref@label{{No\"{e}l et~al.(2018)No\"{e}l, van~de Berg, van Wessem, van Meijgaard,
van As, Lenaerts, Lhermitte, Kuipers~Munneke, Smeets, van Ulft, van~de Wal,
and van~den Broeke}}?><label>Noël et al.(2018)Noël, van de Berg, van Wessem, van Meijgaard,
van As, Lenaerts, Lhermitte, Kuipers Munneke, Smeets, van Ulft, van de Wal,
and van den Broeke</label><mixed-citation>Noël, B., van de Berg, W. J., van Wessem, J. M., van Meijgaard, E., van As,
D., Lenaerts, J. T. M., Lhermitte, S., Kuipers Munneke, P., Smeets, C. J. P.
P., van Ulft, L. H., van de Wal, R. S. W., and van den Broeke, M. R.:
Modelling the climate and surface mass balance of polar ice sheets using
RACMO2 – Part 1: Greenland (1958–2016), The Cryosphere, 12, 811–831,
<ext-link xlink:href="https://doi.org/10.5194/tc-12-811-2018" ext-link-type="DOI">10.5194/tc-12-811-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Paterson and Budd(1982)</label><mixed-citation>
Paterson, W. and Budd, W. F.: Flow parameters for ice sheet modeling, Cold
Reg. Sci. Technol., 6, 175–177, 1982.</mixed-citation></ref>
      <ref id="bib1.bibx60"><label>Pattyn(2003)</label><mixed-citation>Pattyn, F.: A new three-dimensional higher-order thermomechanical ice-sheet
model: basic sensitivity, ice-stream development and ice flow across
subglacial lakes, J. Geophys. Res., 108, 2382, <ext-link xlink:href="https://doi.org/10.1029/2002JB002329" ext-link-type="DOI">10.1029/2002JB002329</ext-link>,
2003.</mixed-citation></ref>
      <ref id="bib1.bibx61"><?xmltex \def\ref@label{{Pattyn et~al.(2008)Pattyn, Perichon, Aschwanden, Breuer, de~Smedt,
Gagliardini, Gudmundsson, Hindmarsh, Hubbard, Johnson, Kleiner, Konovalov,
Martin, Payne, Pollard, Price, R\"{u}ckamp, Saito, Sou\v{c}ek, Sugiyama, and
Zwinger}}?><label>Pattyn et al.(2008)Pattyn, Perichon, Aschwanden, Breuer, de Smedt,
Gagliardini, Gudmundsson, Hindmarsh, Hubbard, Johnson, Kleiner, Konovalov,
Martin, Payne, Pollard, Price, Rückamp, Saito, Souček, Sugiyama, and
Zwinger</label><mixed-citation>Pattyn, F., Perichon, L., Aschwanden, A., Breuer, B., de Smedt, B.,
Gagliardini, O., Gudmundsson, G. H., Hindmarsh, R. C. A., Hubbard, A.,
Johnson, J. V., Kleiner, T., Konovalov, Y., Martin, C., Payne, A. J.,
Pollard, D., Price, S., Rückamp, M., Saito, F., Soucek, O., Sugiyama, S.,
and Zwinger, T.: Benchmark experiments for higher-order and full-Stokes ice
sheet models (ISMIP-HOM), The Cryosphere, 2, 95–108,
<ext-link xlink:href="https://doi.org/10.5194/tc-2-95-2008" ext-link-type="DOI">10.5194/tc-2-95-2008</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx62"><label>Pattyn et al.(2012)Pattyn, Schoof, Perichon, Hindmarsh, Bueler,
de Fleurian, Durand, Gagliardini, Gladstone, Goldberg, Gudmundsson,
Huybrechts, Lee, Nick, Payne, Pollard, Rybak, Saito, and Vieli</label><mixed-citation>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,
<ext-link xlink:href="https://doi.org/10.5194/tc-6-573-2012" ext-link-type="DOI">10.5194/tc-6-573-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx63"><label>Payne and Dongelmans(1997)</label><mixed-citation>
Payne, A. J. and Dongelmans, P. W.: Self–organisation in the
thermomechanical
flow of ice sheets, J. Geophys. Res., 102, 12219–12233, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx64"><label>Perego et al.(2012)Perego, Gunzburger, and Burkardt</label><mixed-citation>Perego, M., Gunzburger, M., and Burkardt, J.: Parallel finite-element
implementation for higher-order ice sheet models, J. Glaciol., 58, 76–88,
<ext-link xlink:href="https://doi.org/10.3189/2012JoG11J063" ext-link-type="DOI">10.3189/2012JoG11J063</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx65"><label>Perego et al.(2014)Perego, Price, and Stadler</label><mixed-citation>Perego, M., Price, S., and Stadler, G.: Optimal initial conditions for
coupling ice sheet models to Earth system models, J. Geophys. Res., 119,
1894–1917, <ext-link xlink:href="https://doi.org/10.1002/2014jf003181" ext-link-type="DOI">10.1002/2014jf003181</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx66"><label>Pimentel et al.(2010)Pimentel, Flowers, and Schoof</label><mixed-citation>Pimentel, S., Flowers, G. E., and Schoof, C. G.: A hydrologically coupled
higher-order flow-band model of ice dynamics with a Coulomb friction sliding
law, J. Geophys. Res., 115, 1–16, <ext-link xlink:href="https://doi.org/10.1029/2009JF001621" ext-link-type="DOI">10.1029/2009JF001621</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx67"><label>Pollard and DeConto(2012)</label><mixed-citation>Pollard, D. and DeConto, R. M.: Description of a hybrid ice sheet-shelf
model, and application to Antarctica, Geosci. Model Dev., 5, 1273–1295,
<ext-link xlink:href="https://doi.org/10.5194/gmd-5-1273-2012" ext-link-type="DOI">10.5194/gmd-5-1273-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx68"><label>Pollard et al.(2015)Pollard, DeConto, and Alley</label><mixed-citation>Pollard, D., DeConto, R. M., and Alley, R. B.: Potential Antarctic Ice Sheet
retreat driving by hydrofracturing and<?pagebreak page425?> ice cliff failure, Earth Planet. Sc.
Lett., 412, 112–121, <ext-link xlink:href="https://doi.org/10.1016/j.epsl.2014.12.035" ext-link-type="DOI">10.1016/j.epsl.2014.12.035</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx69"><label>Price et al.(2015)Price, Lipscomb, Hoffman, Hagdorn, Rutt, Payne,
Hebeler, and Kennedy</label><mixed-citation>Price, S., Lipscomb, W., Hoffman, M., Hagdorn, M., Rutt, I., Payne, T.,
Hebeler, F., and Kennedy, J. H.: CISM 2.0.5 Documentation, Tech. rep., Los
Alamos National Laboratory, available at:
<uri>https://cism.github.io/data/cism_documentation_v2_0.pdf</uri> (last
access: 3 December 2018), 2015.</mixed-citation></ref>
      <ref id="bib1.bibx70"><label>Raymond(2000)</label><mixed-citation>
Raymond, C. F.: Energy balance of ice streams, J. Glaciol., 46, 665–674,
2000.</mixed-citation></ref>
      <ref id="bib1.bibx71"><label>Rommelaere(1996)</label><mixed-citation>Rommelaere, V.: Ice Shelf Models Intercomparison: Setup of the experiments,
available at:
<uri>http://homepages.vub.ac.be/~phuybrec/eismint/shelf-descr.pdf</uri> (last
access: 13 May 2016), 1996.</mixed-citation></ref>
      <ref id="bib1.bibx72"><label>Rutt et al.(2009)Rutt, Hagdorn, Hulton, and Payne</label><mixed-citation>Rutt, I., Hagdorn, M., Hulton, N., and Payne, A.: The Glimmer community ice
sheet model, J. Geophys. Res., 114, F02004, <ext-link xlink:href="https://doi.org/10.1029/2008JF001015" ext-link-type="DOI">10.1029/2008JF001015</ext-link>,
2009.</mixed-citation></ref>
      <ref id="bib1.bibx73"><label>Sacks and Lipscomb(2019)</label><mixed-citation>Sacks, W. J. and  Lipscomb, W. H.: Community Ice Sheet Model, available at:
<uri>https://github.com/escomp/cism</uri>, last access: 20 January 2019.</mixed-citation></ref>
      <ref id="bib1.bibx74"><label>Schoof(2005)</label><mixed-citation>Schoof, C.: The effect of cavitation on glacier sliding, P. Roy. Soc. A,
461, 609–627, <ext-link xlink:href="https://doi.org/10.1098/rspa.2004.1350" ext-link-type="DOI">10.1098/rspa.2004.1350</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx75"><label>Schoof(2006)</label><mixed-citation>
Schoof, C.: A variational approach to ice stream flow, J. Fluid Mech., 556,
227–251, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx76"><label>Schoof and Hindmarsh(2010)</label><mixed-citation>
Schoof, C. and Hindmarsh, R. C. A.: Thin-film flows with wall slip: an
asymptotic analysis of higher order glacier flow models, Q. J. Mech. Appl.
Math., 63, 73–114, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx77"><label>Sergienko et al.(2014)Sergienko, Creyts, and
Hindmarsh</label><mixed-citation>Sergienko, O. V., Creyts, T. T., and Hindmarsh, R. C. A.: Similarity of
organized patterns in driving and basal stresses of Antarctic and Greenland
ice sheets beneath extensive areas of basal sliding, Geophys. Res. Lett.,
41, 3925–3932,
<ext-link xlink:href="https://doi.org/10.1002/2014GL059976" ext-link-type="DOI">10.1002/2014GL059976</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx78"><label>Shapiro and Ritzwoller(2004)</label><mixed-citation>Shapiro, N. and Ritzwoller, M.: Inferring surface heat flux distributions
guided by a global seismic model: particular application to Antarctica, Earth
Planet. Sci. Lett., 223, 213–224, <ext-link xlink:href="https://doi.org/10.1016/j.epsl.2004.04.011" ext-link-type="DOI">10.1016/j.epsl.2004.04.011</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx79"><label>Shepherd et al.(2012)Shepherd, Ivins, A, Barletta, Bentley,
Bettadpur, Briggs, Bromwich, Forsberg, Galin, Horwath, Jacobs, Joughin, King,
Lenaerts, Li, Ligtenberg, Luckman, Luthcke, McMillan, Meister, Milne,
Mouginot, Muir, Nicolas, Paden, Payne, Pritchard, Rignot, Rott, Sørensen,
Scambos, Scheuchl, Schrama, Smith, Sundal, van Angelen, van de Berg, van
den Broeke, Vaughan, Velicogna, Wahr, Whitehouse, Wingham, Yi, Young, and
Zwally</label><mixed-citation>Shepherd, A., Ivins, E., A, G., Barletta, V., Bentley, M., Bettadpur, S.,
Briggs, K., Bromwich, D., Forsberg, R., Galin, N., Horwath, M., Jacobs, S.,
Joughin, I., King, M., Lenaerts, J., Li, J., Ligtenberg, S., Luckman, A.,
Luthcke, S., McMillan, M., Meister, R., Milne, G., Mouginot, J., Muir, A.,
Nicolas, J., Paden, J., Payne, A., Pritchard, H., Rignot, E., Rott, H.,
Sørensen, L., Scambos, T., Scheuchl, B., Schrama, E., Smith, B., Sundal, A.,
van Angelen, J., van de Berg, W., van den Broeke, M., Vaughan, D.,
Velicogna, I., Wahr, J., Whitehouse, P., Wingham, D., Yi, D., Young, D., and
Zwally, H.: A reconciled estimate of ice-sheet mass balance, Science, 338,
1183–1189, <ext-link xlink:href="https://doi.org/10.1126/science.1228102" ext-link-type="DOI">10.1126/science.1228102</ext-link>, 2012.
</mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bibx80"><label>Shepherd et al.(2017)</label><mixed-citation>Shepherd, A., Ivins, E., Rignot, E., Smith, B., van den Broeke, M.,
Velicogna,
I., Whitehouse, P., Briggs, K., Joughin, I., Krinner, G., Nowicki, S., Payne,
T., Scambos, T., Schlegel, N., Geruo, A., Agosta, C., Ahlström, A., Babonis,
G., Barletta, V., Blazquez, A., Bonin, J., Csatho, B., Cullather, R.,
Felikson, D., Fettweis, X., Forsberg, R., Gallee, H., Gardner, A., Gilbert,
L., Groh, A., Gunter, B., Hanna, E., Harig, C., Helm, V., Horvath, A.,
Horwath, M., Khan, S., Kjeldsen, K., Konrad, H., Langen, P., Lecavalier, B.,
Loomis, B., Luthcke, S., McMillan, M., Melini, D., Mernild, S., Mohajerani,
Y., Moore, P., Mouginot, J., Moyano, G., Muir, A., Nagler, T., Nield, G.,
Nilsson, J., Noel, B., Otosaka, I., Pattle, M., Peltier, W., Nadege, P.,
Rietbroek, R., Rott, H., Sandberg-Sørensen, L., Sasgen, I., Save, H.,
Schrama, E., Schröder, L., Seo, K.-W., Simonsen, S., Slater, T., Spada, G.,
Sutterley, T., Talpe, M., Tarasov, L., van de Berg, W., van der Wal, W., van
Wessem, M., Vishwakarma, B., Wiese, D., and Wouters, B.: Mass balance of the
Antarctic ice sheet from 1992 to 2017, Nature, 558, 219–222,
<ext-link xlink:href="https://doi.org/10.1038/s41586-018-0179-y" ext-link-type="DOI">10.1038/s41586-018-0179-y</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx81"><label>Shewchuk(1994)</label><mixed-citation>
Shewchuk, J. R.: An Introduction to the Conjugate Gradient Method Without the
Agonizing Pain, Tech. rep., Carnegie Mellon University, Pittsburgh, PA, USA,
1994.</mixed-citation></ref>
      <ref id="bib1.bibx82"><label>Tezaur et al.(2015)Tezaur, Perego, Salinger, Tuminaro, and
Price</label><mixed-citation>Tezaur, I. K., Perego, M., Salinger, A. G., Tuminaro, R. S., and Price, S.
F.: <italic>Albany/FELIX</italic>: a parallel, scalable and robust, finite element,
first-order Stokes approximation ice sheet solver built for advanced
analysis, Geosci. Model Dev., 8, 1197–1220,
<ext-link xlink:href="https://doi.org/10.5194/gmd-8-1197-2015" ext-link-type="DOI">10.5194/gmd-8-1197-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx83"><label>Van den Berg et al.(2006)Van den Berg, Van de Wal, and
Oerlemans</label><mixed-citation>Van den Berg, J., Van de Wal, R., and Oerlemans, J.: Effects of spatial
discretization in ice-sheet modelling using the shallow-ice approximation, J.
Glaciol., 52, 89–98, <ext-link xlink:href="https://doi.org/10.3189/172756506781828935" ext-link-type="DOI">10.3189/172756506781828935</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx84"><label>Vizcaino(2014)</label><mixed-citation>Vizcaino, M.: Ice sheets as interactive components of Earth System Models:
progress and challenges, WIREs Clim. Change, 5, 557–568,
<ext-link xlink:href="https://doi.org/10.1002/wcc.285" ext-link-type="DOI">10.1002/wcc.285</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx85"><label>Weertman(1957)</label><mixed-citation>
Weertman, J.: On the sliding of glaciers, J. Glaciol., 3, 33–38, 1957.</mixed-citation></ref>
      <ref id="bib1.bibx86"><label>Winkelmann et al.(2011)Winkelmann, Martin, Haseloff, Albrecht,
Bueler, Khroulev, and Levermann</label><mixed-citation>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,
<ext-link xlink:href="https://doi.org/10.5194/tc-5-715-2011" ext-link-type="DOI">10.5194/tc-5-715-2011</ext-link>, 2011.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Description and evaluation of the Community Ice Sheet Model (CISM) v2.1</article-title-html>
<abstract-html><p>We describe and evaluate version 2.1 of the Community Ice Sheet Model (CISM).
CISM is a parallel, 3-D thermomechanical model, written mainly in Fortran,
that solves equations for the momentum balance and the thickness and
temperature evolution of ice sheets. CISM's velocity solver incorporates a
hierarchy of Stokes flow approximations, including shallow-shelf,
depth-integrated higher order, and 3-D higher order. CISM also includes a
suite of test cases, links to third-party solver libraries, and
parameterizations of physical processes such as basal sliding, iceberg
calving, and sub-ice-shelf melting. The model has been verified for standard
test problems, including the Ice Sheet Model Intercomparison Project for
Higher-Order Models (ISMIP-HOM) experiments, and has participated in the
initMIP-Greenland initialization experiment. In
multimillennial simulations with modern climate forcing on a 4&thinsp;km grid, CISM
reaches a steady state that is broadly consistent with observed flow patterns
of the Greenland ice sheet. CISM has been integrated into version 2.0 of the
Community Earth System Model, where it is being used for Greenland
simulations under past, present, and future climates. The code is open-source
with extensive documentation and remains under active development.</p></abstract-html>
<ref-html id="bib1.bib1"><label>Albrecht et al.(2011)Albrecht, Martin, Haseloff, Winkelmann, and
Levermann</label><mixed-citation>
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, <a href="https://doi.org/10.5194/tc-5-35-2011" target="_blank">https://doi.org/10.5194/tc-5-35-2011</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Arthern and Williams(2017)</label><mixed-citation>
Arthern, R. J. and Williams, C. R.: The sensitivity of West Antarctica to the
submarine melting feedback, Geophys. Res. Lett., 44, 2352–2359,
<a href="https://doi.org/10.1002/2017GL072514" target="_blank">https://doi.org/10.1002/2017GL072514</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Arthern et al.(2015)Arthern, Hindmarsh, and Williams</label><mixed-citation>
Arthern, R. J., Hindmarsh, R. C. A., and Williams, C. R.: Flow speed within
the
Antarctic ice sheet and its controls inferred from satellite observations, J.
Geophys. Res.-Earth, 120, 1171–1188, <a href="https://doi.org/10.1002/2014JF003239" target="_blank">https://doi.org/10.1002/2014JF003239</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Asay-Davis et al.(2016)Asay-Davis, Cornford, Durand, Galton-Fenzi,
Gladstone, Gudmundsson, Hattermann, Holland, Holland, Holland, Martin,
Mathiot, Pattyn, and Seroussi</label><mixed-citation>
Asay-Davis, X. S., Cornford, S. L., Durand, G., Galton-Fenzi, B. K.,
Gladstone, R. M., Gudmundsson, G. H., Hattermann, T., Holland, D. M.,
Holland, D., Holland, P. R., Martin, D. F., Mathiot, P., Pattyn, F., and
Seroussi, H.: Experimental design for three interrelated marine ice sheet and
ocean model intercomparison projects: MISMIP v. 3 (MISMIP +), ISOMIP v. 2
(ISOMIP +) and MISOMIP v. 1 (MISOMIP1), Geosci. Model Dev., 9, 2471–2497,
<a href="https://doi.org/10.5194/gmd-9-2471-2016" target="_blank">https://doi.org/10.5194/gmd-9-2471-2016</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Asay-Davis et al.(2017)Asay-Davis, Jourdain, and
Nakayama</label><mixed-citation>
Asay-Davis, X. S., Jourdain, N. C., and Nakayama, Y.: Developments in
simulating and parameterizing interactions between the Southern Ocean and the
Antarctic Ice Sheet, Curr. Clim. Change Rep., 3, 316–329,
<a href="https://doi.org/10.1007/s40641-017-0071-0" target="_blank">https://doi.org/10.1007/s40641-017-0071-0</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Aschwanden et al.(2013)Aschwanden, Adalgeirsdóttir, and
Khroulev</label><mixed-citation>
Aschwanden, A., Aðalgeirsdóttir, G., and Khroulev, C.: Hindcasting to measure ice sheet model sensitivity to initial states, The Cryosphere, 7, 1083–1093, <a href="https://doi.org/10.5194/tc-7-1083-2013" target="_blank">https://doi.org/10.5194/tc-7-1083-2013</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Aschwanden et al.(2016)Aschwanden, Fahnestock, and
Truffer</label><mixed-citation>
Aschwanden, A., Fahnestock, M. A., and Truffer, M.: Complex Greenland outlet
glacier flow captured, Nat. Commun., 7, 10524, <a href="https://doi.org/10.1038/ncomms10524" target="_blank">https://doi.org/10.1038/ncomms10524</a>,
2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Bassis and Ma(2015)</label><mixed-citation>
Bassis, J. N. and Ma, Y.: Evolution of basal crevasses links ice shelf
stability to ocean forcing, Earth Planet. Sc. Lett., 409, 203–211,
<a href="https://doi.org/10.1016/j.epsl.2014.11.003" target="_blank">https://doi.org/10.1016/j.epsl.2014.11.003</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Bassis and Walker(2012)</label><mixed-citation>
Bassis, J. N. and Walker, C. C.: Upper and lower limits on the stability of
calving glaciers from the yield strength envelope of ice, Proc. Roy. Soc. A,
468, 913–931, <a href="https://doi.org/10.1098/rspa.2011.0422" target="_blank">https://doi.org/10.1098/rspa.2011.0422</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Blatter(1995)</label><mixed-citation>
Blatter, H.: Velocity and stress fields in grounded glaciers – a simple
algorithm for including deviatoric stress gradients, J. Glaciol., 41,
333–344, 1995.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Bueler(2009)</label><mixed-citation>
Bueler, E.: Lectures at Karthaus: Numerical modelling of ice sheets and ice
shelves,
available at: <a href="https://www.projects.science.uu.nl/iceclimate/karthaus/archive/lecturenotes/2009/bueler/EdBueler.pdf" target="_blank">https://www.projects.science.uu.nl/iceclimate/karthaus/archive/lecturenotes/2009/bueler/EdBueler.pdf</a> (last access: 27 May 2018), 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Bueler and Brown(2009)</label><mixed-citation>
Bueler, E. and Brown, J.: Shallow shelf approximation as a “sliding law” in
a
thermodynamically coupled ice sheet model, J. Geophys. Res., 114, F03008,
<a href="https://doi.org/10.1029/2008JF001179" target="_blank">https://doi.org/10.1029/2008JF001179</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Bueler and van Pelt(2015)</label><mixed-citation>
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,
<a href="https://doi.org/10.5194/gmd-8-1613-2015" target="_blank">https://doi.org/10.5194/gmd-8-1613-2015</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Bueler et al.(2005)Bueler, Lingle, Kallen-Brown, Covey, and
Bowman</label><mixed-citation>
Bueler, E., Lingle, C. S., Kallen-Brown, J. A., Covey, D. N., and Bowman,
L. N.: Exact solutions and verification of numerical models for isothermal
ice sheets, J. Glaciol., 51, 291–306, <a href="https://doi.org/10.3189/172756505781829449" target="_blank">https://doi.org/10.3189/172756505781829449</a>,
2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Cai et al.(2017)Cai, Rignot, Menemenlis, and Nakayama</label><mixed-citation>
Cai, C., Rignot, E., Menemenlis, D., and Nakayama, Y.: Observations and
modeling of ocean-induced melt beneath Petermann Glacier Ice Shelf in
northwestern Greenland, Geophys. Res. Lett., 44, 8396–8403,
<a href="https://doi.org/10.1002/2017GL073711" target="_blank">https://doi.org/10.1002/2017GL073711</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Choi et al.(2017)Choi, Morlighem, Rignot, Mouginot, and
Wood</label><mixed-citation>
Choi, Y., Morlighem, M., Rignot, E., Mouginot, J., and Wood, M.: Modeling the
response of Nioghalvjerdsjorden and Zachariae Isstrom Glaciers, Greenland, to
ocean forcing over the next century, Geophys. Res. Lett., 44, 11071–11079,
<a href="https://doi.org/10.1002/2017GL075174" target="_blank">https://doi.org/10.1002/2017GL075174</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Chronopoulos(1986)</label><mixed-citation>
Chronopoulos, A. T.: A class of parallel iterative methods implemented on
multiprocessors, PhD thesis, Department of Computer Science, University of
Illinois, 1986.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Chronopoulos and Gear(1989)</label><mixed-citation>
Chronopoulos, A. T. and Gear, C. W.: <i>s</i>-step iterative methods for
symmetric linear systems, J. Comput. Appl. Math., 25, 153–168, 1989.
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Church et al.(2013)Church, Clark, Cazenave, Gregory, Jevrejeva,
Levermann, Merrifield, Milne, Nerem, Nunn, Payne, Pfeffer, Stammer, and
Unnikrishnan</label><mixed-citation>
Church, J., Clark, P., Cazenave, A., Gregory, J., Jevrejeva, S., Levermann,
A.,
Merrifield, M., Milne, G., Nerem, R., Nunn, P., Payne, A., Pfeffer, W.,
Stammer, D., and Unnikrishnan, A.: Sea Level Change, in: Climate Change 2013:
The Physical Science Basis. Contribution of Working Group I to the Fifth
Assessment Report of the Intergovernmental Panel on Climate Change, edited
by:
Stocker, T., Qin, D., Plattner, G.-K., Tignor, M., Allen, S., Boschung, J.,
Nauels, A., Xia, Y., Bex, V., and Midgley, P.,   Cambridge
University Press, Cambridge, United Kingdom and New York, NY, USA, 1137–1216,
<a href="https://doi.org/10.1017/CBO9781107415324.026" target="_blank">https://doi.org/10.1017/CBO9781107415324.026</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Cornford et al.(2013)Cornford, Martin, Graves, Ranken, Le Brocq,
Gladstone, Payne, Ng, and Lipscomb</label><mixed-citation>
Cornford, S. L., Martin, D. F., Graves, D. T., Ranken, D. R., 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.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Cuffey and Paterson(2010)</label><mixed-citation>
Cuffey, K. and Paterson, W. S. B.: The Physics of Glaciers,
Butterworth-Heinneman, Amsterdam, 4th Edn., 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Dukowicz and Baumgardner(2000)</label><mixed-citation>
Dukowicz, J. K. and Baumgardner, J. R.: Incremental remapping as a
transport/advection algorithm, J. Comput. Phys., 160, 318–335, 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Dukowicz et al.(2010)Dukowicz, Price, and Lipscomb</label><mixed-citation>
Dukowicz, J. K., Price, S. F., and Lipscomb, W. H.: Consistent
approximations
and boundary conditions for ice-sheet dynamics from a principle of least
action, J. Glaciol., 56, 480–496, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Ettema et al.(2009)Ettema, van den Broeke, van Meijgaard, van de
Berg, Bamber, Box, and Bales</label><mixed-citation>
Ettema, J., van den Broeke, M. R., van Meijgaard, E., van de Berg, W. J.,
Bamber, J. L., Box, J. E., and Bales, R. C.: Higher surface mass balance of
the Greenland ice sheet revealed by high-resolution climate modeling,
Geophys. Res. Lett., 36, L12501, <a href="https://doi.org/10.1029/2009GL038110" target="_blank">https://doi.org/10.1029/2009GL038110</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Evans et al.(2012)Evans, Salinger, Worley, Price, Lipscomb, Nichols,
III, Perego, Vertenstein, Edwards, and Lemieux</label><mixed-citation>
Evans, K. J., Salinger, A. G., Worley, P. H., Price, S. F., Lipscomb, W. H.,
Nichols, J. A., White III, J. B., Perego, M., Vertenstein, M., Edwards, J., and
Lemieux, J.-F.: A modern solver interface to manage solution algorithms in
the Community Earth System Model, Int. J. High Perform. C., 26,
54–62, <a href="https://doi.org/10.1177/1094342011435159" target="_blank">https://doi.org/10.1177/1094342011435159</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Fyke et al.(2014)Fyke, Sacks, and Lipscomb</label><mixed-citation>
Fyke, J. G., Sacks, W. J., and Lipscomb, W. H.: A technique for generating
consistent ice sheet initial conditions for coupled ice sheet/climate models,
Geosci. Model Dev., 7, 1183–1195, <a href="https://doi.org/10.5194/gmd-7-1183-2014" target="_blank">https://doi.org/10.5194/gmd-7-1183-2014</a>,
2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Gagliardini et al.(2013)Gagliardini, Zwinger, Gillet-Chaulet, Durand,
Favier, De Fleurian, Greve, Malinen, Martin, Råback, Ruokolainen,
Sacchettini, Schäfer, Seddik, and Thies</label><mixed-citation>
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, <a href="https://doi.org/10.5194/gmd-6-1299-2013" target="_blank">https://doi.org/10.5194/gmd-6-1299-2013</a>,
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Gladstone et al.(2010)Gladstone, Payne, and Cornford</label><mixed-citation>
Gladstone, R. M., Payne, A. J., and Cornford, S. L.: Parameterising the
grounding line in flow-line ice sheet models, The Cryosphere, 4, 605–619,
<a href="https://doi.org/10.5194/tc-4-605-2010" target="_blank">https://doi.org/10.5194/tc-4-605-2010</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Glen(1955)</label><mixed-citation>
Glen, J. W.: The creep of polycrystalline ice, Proc. R. Soc. Lond. A, 228,
519–538, 1955.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Goelzer et al.(2018)Goelzer, Nowicki, Edwards, Beckley, Abe-Ouchi,
Aschwanden, Calov, Gagliardini, Gillet-Chaulet, Golledge, Gregory, Greve,
Humbert, Huybrechts, Kennedy, Larour, Lipscomb, Le clec'h, Lee, Morlighem,
Pattyn, Payne, Rodehacke, Rückamp, Saito, Schlegel, Seroussi, Shepherd,
Sun, van de Wal, and Ziemen</label><mixed-citation>
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,
<a href="https://doi.org/10.5194/tc-12-1433-2018" target="_blank">https://doi.org/10.5194/tc-12-1433-2018</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Goldberg(2011)</label><mixed-citation>
Goldberg, D. N.: A variationally derived, depth-integrated approximation to
a higher-order glaciological flow model, J. Glaciol., 57, 157–170,
<a href="https://doi.org/10.3189/002214311795306763" target="_blank">https://doi.org/10.3189/002214311795306763</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Halfar(1983)</label><mixed-citation>
Halfar, P.: On the dynamics of the ice sheets 2, J. Geophys. Res., 88,
6043–6051, 1983.
</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Hanna et al.(2013)Hanna, Navarro, Pattyn, Domingues, Fettweis, Ivins,
Nicholls, Ritz, Smith, Tulaczyk, Whitehouse, and Zwally</label><mixed-citation>
Hanna, E., Navarro, F. J., Pattyn, F., Domingues, C. M., Fettweis, X., Ivins,
E. R., Nicholls, R. J., Ritz, C., Smith, B., Tulaczyk, S., Whitehouse, P. L.,
and Zwally, H. J.: Ice-sheet mass balance and climate change, Nature, 498,
51–59, <a href="https://doi.org/10.1038/nature12238" target="_blank">https://doi.org/10.1038/nature12238</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Heroux et al.(2005)Heroux, Bartlett, Howle, Hoekstra, Hu, Kolda,
Lehoucq, Long, Pawlowski, Phipps, Salinger, Thornquist, Tuminaro,
Willenbring, Williams, and Stanley</label><mixed-citation>
Heroux, M. A., Bartlett, R. A., Howle, V. E., Hoekstra, R. J., Hu, J. J.,
Kolda, T. G., Lehoucq, R. B., Long, K. R., Pawlowski, R. P., Phipps, E. T.,
Salinger, A. G., Thornquist, H. K., Tuminaro, R. S., Willenbring, J. M.,
Williams, A., and Stanley, K. S.: An overview of the Trilinos project, ACM
T. Math. Software, 31, 397–423,
<a href="https://doi.org/10.1145/1089014.1089021" target="_blank">https://doi.org/10.1145/1089014.1089021</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Hindmarsh(2006)</label><mixed-citation>
Hindmarsh, R.: The role of membrane-like stresses in determining the
stability
and sensitivity of the Antarctic ice sheets: back pressure and grounding line
motion, Philos. T. R. Soc. A, 364, 1733–1767,
<a href="https://doi.org/10.1098/rsta.2006.1797" target="_blank">https://doi.org/10.1098/rsta.2006.1797</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Hoffman and Price(2014)</label><mixed-citation>
Hoffman, M. J. and Price, S.: Feedbacks between coupled subglacial hydrology
and glacier dynamics, J. Geophys. Res.-Earth, 119, 414–436,
<a href="https://doi.org/10.1002/2013JF002943" target="_blank">https://doi.org/10.1002/2013JF002943</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Hoffman et al.(2018)Hoffman, Perego, Price, Lipscomb, Jacobsen,
Tezaur, Salinger, Tuminaro, and Zhang</label><mixed-citation>
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,
<a href="https://doi.org/10.5194/gmd-11-3747-2018" target="_blank">https://doi.org/10.5194/gmd-11-3747-2018</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Hoffman et al.(2019)</label><mixed-citation>
Hoffman, M. J., Price, S. F., and Lipscomb, W. H.: CISM/Community Ice Sheet,
Model, available at: <a href="https://cism.github.io/download.html" target="_blank">https://cism.github.io/download.html</a>, last access:
20 January 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Huebner et al.(2001)Huebner, Dewhirst, Smith, and
Byrom</label><mixed-citation>
Huebner, K. H., Dewhirst, D. L., Smith, D. E., and Byrom, T. G.: The Finite
Element Method for Engineers, Wiley, New York, 4th Edn., 2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Hughes(2000)</label><mixed-citation>
Hughes, T.: The Finite Element Method: Linear Static and Dynamic Finite
Element
Analysis, Dover Civil and Mechanical Engineering, Dover, Mineola, New York,
1st Edn., 2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Hurrell et al.(2013)Hurrell, Holland, Gent, Ghan, Kay, Kushner,
Lamarque, Large, Lawrence, Lindsay, Lipscomb, Long, Mahowald, Marsh, Neale,
Rasch, Vavrus, Vertenstein, Bader, Collins, Hack, Kiehl, and
Marshall</label><mixed-citation>
Hurrell, J., Holland, M., Gent, P., Ghan, S., Kay, J., Kushner, P., Lamarque,
J.-F., Large, W., Lawrence, D., Lindsay, K., Lipscomb, W., Long, M.,
Mahowald, N., Marsh, D., Neale, R., Rasch, P., Vavrus, S., Vertenstein, M.,
Bader, D., Collins, W., Hack, J., Kiehl, J., and Marshall, S.: The Community
Earth System Model: A framework for collaborative research, B. Am. Meteorol.
Soc., 94, 1339–1360, <a href="https://doi.org/10.1175/BAMS-D-12-00121.1" target="_blank">https://doi.org/10.1175/BAMS-D-12-00121.1</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Hutter(1983)</label><mixed-citation>
Hutter, K.: Theoretical Glaciology, Mathematical Approaches to Geophysics, D.
Reidel Publishing Company, Dordrecht, Boston, Lancaster, 1983.
</mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Joughin et al.(2010)Joughin, Smith, Howat, and Scambos</label><mixed-citation>
Joughin, I., Smith, B., Howat, I., and Scambos, T.: MEaSUREs Greenland Ice
Sheet Velocity Map from InSAR Data, National Snow and Ice Data Center,
Boulder, Colorado, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Kennedy et al.(2017)Kennedy, Bennett, Evans, Price, Hoffman,
Lipscomb, Fyke, Vargo, Boghozian, Norman, and Worley</label><mixed-citation>
Kennedy, J. H., Bennett, A. R., Evans, K. J., Price, S., Hoffman, M.,
Lipscomb,
W. H., Fyke, J., Vargo, L., Boghozian, A., Norman, M., and Worley, P. H.:
LIVVkit: An extensible, python-based, land ice verification and validation
tool kit for ice sheet models, J. Adv. Model. Earth Sy., 9, 854–869,
<a href="https://doi.org/10.1002/2017MS000916" target="_blank">https://doi.org/10.1002/2017MS000916</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Larour et al.(2012)Larour, Seroussi, Morlighem, and
Rignot</label><mixed-citation>
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,
<a href="https://doi.org/10.1029/2011JF002140" target="_blank">https://doi.org/10.1029/2011JF002140</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Leguy et al.(2014)Leguy, Asay-Davis, and Lipscomb</label><mixed-citation>
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, <a href="https://doi.org/10.5194/tc-8-1239-2014" target="_blank">https://doi.org/10.5194/tc-8-1239-2014</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Levermann et al.(2012)Levermann, Albrecht, Winkelmann, Haseloff, and
Joughin</label><mixed-citation>
Levermann, A., Albrecht, T., Winkelmann, R., Martin, M. A., Haseloff, M., and
Joughin, I.: Kinematic first-order calving law implies potential for abrupt
ice-shelf retreat, The Cryosphere, 6, 273–286,
<a href="https://doi.org/10.5194/tc-6-273-2012" target="_blank">https://doi.org/10.5194/tc-6-273-2012</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Lipscomb and Hunke(2004)</label><mixed-citation>
Lipscomb, W. H. and Hunke, E. C.: Modeling sea ice transport using
incremental remapping, Mon. Weather Rev., 132, 1341–1354, 2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Lipscomb et al.(2013)Lipscomb, Fyke, Vizcaino, Sacks, Wolfe,
Vertenstein, Craig, Kluzek, and Lawrence</label><mixed-citation>
Lipscomb, W. H., Fyke, J. G., Vizcaino, M., Sacks, W. J., Wolfe, J.,
Vertenstein, M., Craig, A., Kluzek, E., and Lawrence, D. M.: Implementation
and initial evaluation of the Glimmer Community Ice Sheet Model in the
Community Earth System Model, J. Climate, 26, 7352–7371,
<a href="https://doi.org/10.1175/JCLI-D-12-00557.1" target="_blank">https://doi.org/10.1175/JCLI-D-12-00557.1</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>MacAyeal(1989)</label><mixed-citation>
MacAyeal, D. R.: Large-scale ice flow over a viscous basal sediment –
Theory
and application to Ice Stream B, Antarctica, J. Geophys. Res., 94,
4071–4087, 1989.
</mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>MacAyeal et al.(1996)MacAyeal, Rommelaere, Huybrechts, Hulbe,
Determann, and Ritz</label><mixed-citation>
MacAyeal, D. R., Rommelaere, V., Huybrechts, P., Hulbe, C. L., Determann, J.,
and Ritz, C.: An ice-shelf model test based on the Ross Ice Shelf,
Antarctica, Ann. Glaciol., 23, 46–51, 1996.
</mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>MacGregor et al.(2015)MacGregor, Fahnestock, Catania, Aschwanden,
Clow, Colgan, Gogineni, Morlighem, Nowicki, Paden, Price, and
Seroussi</label><mixed-citation>
MacGregor, J. A., Fahnestock, M. A., Catania, G. A., Aschwanden, A., Clow,
G. D., Colgan, W. T., Gogineni, S. P., Morlighem, M., Nowicki, S. M. J.,
Paden, J. D., Price, S. F., and Seroussi, H.: A synthesis of the basal
thermal state of the Greenland Ice Sheet, J. Geophys. Res.-Earth, 121, 1328–1350,
<a href="https://doi.org/10.1002/2015JF003803" target="_blank">https://doi.org/10.1002/2015JF003803</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Morlighem et al.(2011)Morlighem, Rignot, Seroussi, Larour, Dhia, and
Aubry</label><mixed-citation>
Morlighem, M., Rignot, E., Seroussi, H., Larour, E., Dhia, H. B., and Aubry,
D.: A mass conservation approach for mapping glacier ice thickness, Geophys.
Res. Lett., 38, L19503, <a href="https://doi.org/10.1029/2011GL048659" target="_blank">https://doi.org/10.1029/2011GL048659</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Morlighem et al.(2014)Morlighem, Rignot, Mouginot, Seroussi, and
Larour</label><mixed-citation>
Morlighem, M., Rignot, E., Mouginot, J., Seroussi, H., and Larour, E.: Deeply
incised submarine glacial valleys beneath the Greenland Ice Sheet, Nat.
Geosci., 7, 418–422, <a href="https://doi.org/10.1038/ngeo2167" target="_blank">https://doi.org/10.1038/ngeo2167</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Morlighem et al.(2016)Morlighem, Bondzio, Seroussi, Rignot, Larour,
Humbert, and Rebuffi</label><mixed-citation>
Morlighem, M., Bondzio, J., Seroussi, H., Rignot, E., Larour, E., Humbert,
A.,
and Rebuffi, S.: Modeling of Store Gletscher's calving dynamics, West
Greenland, in response to ocean thermal forcing, Geophys. Res. Lett., 43,
2659–2666,
<a href="https://doi.org/10.1002/2016GL067695" target="_blank">https://doi.org/10.1002/2016GL067695</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>NCAR Command Language(2017)</label><mixed-citation>
NCAR Command Language (Version 6.4.0)
[Software], Boulder, Colorado, UCAR/NCAR/CISL/VETS,
<a href="https://doi.org/10.5065/D6WD3XH5" target="_blank">https://doi.org/10.5065/D6WD3XH5</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Noël et al.(2016)Noël, van de Berg, Machguth, Lhermitte, Howat,
Fettweis, and van den Broeke</label><mixed-citation>
Noël, B., van de Berg, W. J., Machguth, H., Lhermitte, S., Howat, I.,
Fettweis, X., and van den Broeke, M. R.: A daily, 1&thinsp;km resolution data set
of downscaled Greenland ice sheet surface mass balance (1958–2015), The
Cryosphere, 10, 2361–2377, <a href="https://doi.org/10.5194/tc-10-2361-2016" target="_blank">https://doi.org/10.5194/tc-10-2361-2016</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Noël et al.(2018)Noël, van de Berg, van Wessem, van Meijgaard,
van As, Lenaerts, Lhermitte, Kuipers Munneke, Smeets, van Ulft, van de Wal,
and van den Broeke</label><mixed-citation>
Noël, B., van de Berg, W. J., van Wessem, J. M., van Meijgaard, E., van As,
D., Lenaerts, J. T. M., Lhermitte, S., Kuipers Munneke, P., Smeets, C. J. P.
P., van Ulft, L. H., van de Wal, R. S. W., and van den Broeke, M. R.:
Modelling the climate and surface mass balance of polar ice sheets using
RACMO2 – Part 1: Greenland (1958–2016), The Cryosphere, 12, 811–831,
<a href="https://doi.org/10.5194/tc-12-811-2018" target="_blank">https://doi.org/10.5194/tc-12-811-2018</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Paterson and Budd(1982)</label><mixed-citation>
Paterson, W. and Budd, W. F.: Flow parameters for ice sheet modeling, Cold
Reg. Sci. Technol., 6, 175–177, 1982.
</mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Pattyn(2003)</label><mixed-citation>
Pattyn, F.: A new three-dimensional higher-order thermomechanical ice-sheet
model: basic sensitivity, ice-stream development and ice flow across
subglacial lakes, J. Geophys. Res., 108, 2382, <a href="https://doi.org/10.1029/2002JB002329" target="_blank">https://doi.org/10.1029/2002JB002329</a>,
2003.
</mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Pattyn et al.(2008)Pattyn, Perichon, Aschwanden, Breuer, de Smedt,
Gagliardini, Gudmundsson, Hindmarsh, Hubbard, Johnson, Kleiner, Konovalov,
Martin, Payne, Pollard, Price, Rückamp, Saito, Souček, Sugiyama, and
Zwinger</label><mixed-citation>
Pattyn, F., Perichon, L., Aschwanden, A., Breuer, B., de Smedt, B.,
Gagliardini, O., Gudmundsson, G. H., Hindmarsh, R. C. A., Hubbard, A.,
Johnson, J. V., Kleiner, T., Konovalov, Y., Martin, C., Payne, A. J.,
Pollard, D., Price, S., Rückamp, M., Saito, F., Soucek, O., Sugiyama, S.,
and Zwinger, T.: Benchmark experiments for higher-order and full-Stokes ice
sheet models (ISMIP-HOM), The Cryosphere, 2, 95–108,
<a href="https://doi.org/10.5194/tc-2-95-2008" target="_blank">https://doi.org/10.5194/tc-2-95-2008</a>, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Pattyn et al.(2012)Pattyn, Schoof, Perichon, Hindmarsh, Bueler,
de Fleurian, Durand, Gagliardini, Gladstone, Goldberg, Gudmundsson,
Huybrechts, Lee, Nick, Payne, Pollard, Rybak, Saito, and Vieli</label><mixed-citation>
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,
<a href="https://doi.org/10.5194/tc-6-573-2012" target="_blank">https://doi.org/10.5194/tc-6-573-2012</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Payne and Dongelmans(1997)</label><mixed-citation>
Payne, A. J. and Dongelmans, P. W.: Self–organisation in the
thermomechanical
flow of ice sheets, J. Geophys. Res., 102, 12219–12233, 1997.
</mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Perego et al.(2012)Perego, Gunzburger, and Burkardt</label><mixed-citation>
Perego, M., Gunzburger, M., and Burkardt, J.: Parallel finite-element
implementation for higher-order ice sheet models, J. Glaciol., 58, 76–88,
<a href="https://doi.org/10.3189/2012JoG11J063" target="_blank">https://doi.org/10.3189/2012JoG11J063</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Perego et al.(2014)Perego, Price, and Stadler</label><mixed-citation>
Perego, M., Price, S., and Stadler, G.: Optimal initial conditions for
coupling ice sheet models to Earth system models, J. Geophys. Res., 119,
1894–1917, <a href="https://doi.org/10.1002/2014jf003181" target="_blank">https://doi.org/10.1002/2014jf003181</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Pimentel et al.(2010)Pimentel, Flowers, and Schoof</label><mixed-citation>
Pimentel, S., Flowers, G. E., and Schoof, C. G.: A hydrologically coupled
higher-order flow-band model of ice dynamics with a Coulomb friction sliding
law, J. Geophys. Res., 115, 1–16, <a href="https://doi.org/10.1029/2009JF001621" target="_blank">https://doi.org/10.1029/2009JF001621</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>Pollard and DeConto(2012)</label><mixed-citation>
Pollard, D. and DeConto, R. M.: Description of a hybrid ice sheet-shelf
model, and application to Antarctica, Geosci. Model Dev., 5, 1273–1295,
<a href="https://doi.org/10.5194/gmd-5-1273-2012" target="_blank">https://doi.org/10.5194/gmd-5-1273-2012</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>Pollard et al.(2015)Pollard, DeConto, and Alley</label><mixed-citation>
Pollard, D., DeConto, R. M., and Alley, R. B.: Potential Antarctic Ice Sheet
retreat driving by hydrofracturing and ice cliff failure, Earth Planet. Sc.
Lett., 412, 112–121, <a href="https://doi.org/10.1016/j.epsl.2014.12.035" target="_blank">https://doi.org/10.1016/j.epsl.2014.12.035</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Price et al.(2015)Price, Lipscomb, Hoffman, Hagdorn, Rutt, Payne,
Hebeler, and Kennedy</label><mixed-citation>
Price, S., Lipscomb, W., Hoffman, M., Hagdorn, M., Rutt, I., Payne, T.,
Hebeler, F., and Kennedy, J. H.: CISM 2.0.5 Documentation, Tech. rep., Los
Alamos National Laboratory, available at:
<a href="https://cism.github.io/data/cism_documentation_v2_0.pdf" target="_blank">https://cism.github.io/data/cism_documentation_v2_0.pdf</a> (last
access: 3 December 2018), 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib70"><label>Raymond(2000)</label><mixed-citation>
Raymond, C. F.: Energy balance of ice streams, J. Glaciol., 46, 665–674,
2000.
</mixed-citation></ref-html>
<ref-html id="bib1.bib71"><label>Rommelaere(1996)</label><mixed-citation>
Rommelaere, V.: Ice Shelf Models Intercomparison: Setup of the experiments,
available at:
<a href="http://homepages.vub.ac.be/~phuybrec/eismint/shelf-descr.pdf" target="_blank">http://homepages.vub.ac.be/~phuybrec/eismint/shelf-descr.pdf</a> (last
access: 13 May 2016), 1996.
</mixed-citation></ref-html>
<ref-html id="bib1.bib72"><label>Rutt et al.(2009)Rutt, Hagdorn, Hulton, and Payne</label><mixed-citation>
Rutt, I., Hagdorn, M., Hulton, N., and Payne, A.: The Glimmer community ice
sheet model, J. Geophys. Res., 114, F02004, <a href="https://doi.org/10.1029/2008JF001015" target="_blank">https://doi.org/10.1029/2008JF001015</a>,
2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib73"><label>Sacks and Lipscomb(2019)</label><mixed-citation>
Sacks, W. J. and  Lipscomb, W. H.: Community Ice Sheet Model, available at:
<a href="https://github.com/escomp/cism" target="_blank">https://github.com/escomp/cism</a>, last access: 20 January 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib74"><label>Schoof(2005)</label><mixed-citation>
Schoof, C.: The effect of cavitation on glacier sliding, P. Roy. Soc. A,
461, 609–627, <a href="https://doi.org/10.1098/rspa.2004.1350" target="_blank">https://doi.org/10.1098/rspa.2004.1350</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib75"><label>Schoof(2006)</label><mixed-citation>
Schoof, C.: A variational approach to ice stream flow, J. Fluid Mech., 556,
227–251, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib76"><label>Schoof and Hindmarsh(2010)</label><mixed-citation>
Schoof, C. and Hindmarsh, R. C. A.: Thin-film flows with wall slip: an
asymptotic analysis of higher order glacier flow models, Q. J. Mech. Appl.
Math., 63, 73–114, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib77"><label>Sergienko et al.(2014)Sergienko, Creyts, and
Hindmarsh</label><mixed-citation>
Sergienko, O. V., Creyts, T. T., and Hindmarsh, R. C. A.: Similarity of
organized patterns in driving and basal stresses of Antarctic and Greenland
ice sheets beneath extensive areas of basal sliding, Geophys. Res. Lett.,
41, 3925–3932,
<a href="https://doi.org/10.1002/2014GL059976" target="_blank">https://doi.org/10.1002/2014GL059976</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib78"><label>Shapiro and Ritzwoller(2004)</label><mixed-citation>
Shapiro, N. and Ritzwoller, M.: Inferring surface heat flux distributions
guided by a global seismic model: particular application to Antarctica, Earth
Planet. Sci. Lett., 223, 213–224, <a href="https://doi.org/10.1016/j.epsl.2004.04.011" target="_blank">https://doi.org/10.1016/j.epsl.2004.04.011</a>, 2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib79"><label>Shepherd et al.(2012)Shepherd, Ivins, A, Barletta, Bentley,
Bettadpur, Briggs, Bromwich, Forsberg, Galin, Horwath, Jacobs, Joughin, King,
Lenaerts, Li, Ligtenberg, Luckman, Luthcke, McMillan, Meister, Milne,
Mouginot, Muir, Nicolas, Paden, Payne, Pritchard, Rignot, Rott, Sørensen,
Scambos, Scheuchl, Schrama, Smith, Sundal, van Angelen, van de Berg, van
den Broeke, Vaughan, Velicogna, Wahr, Whitehouse, Wingham, Yi, Young, and
Zwally</label><mixed-citation>
Shepherd, A., Ivins, E., A, G., Barletta, V., Bentley, M., Bettadpur, S.,
Briggs, K., Bromwich, D., Forsberg, R., Galin, N., Horwath, M., Jacobs, S.,
Joughin, I., King, M., Lenaerts, J., Li, J., Ligtenberg, S., Luckman, A.,
Luthcke, S., McMillan, M., Meister, R., Milne, G., Mouginot, J., Muir, A.,
Nicolas, J., Paden, J., Payne, A., Pritchard, H., Rignot, E., Rott, H.,
Sørensen, L., Scambos, T., Scheuchl, B., Schrama, E., Smith, B., Sundal, A.,
van Angelen, J., van de Berg, W., van den Broeke, M., Vaughan, D.,
Velicogna, I., Wahr, J., Whitehouse, P., Wingham, D., Yi, D., Young, D., and
Zwally, H.: A reconciled estimate of ice-sheet mass balance, Science, 338,
1183–1189, <a href="https://doi.org/10.1126/science.1228102" target="_blank">https://doi.org/10.1126/science.1228102</a>, 2012.

</mixed-citation></ref-html>
<ref-html id="bib1.bib80"><label>Shepherd et al.(2017)</label><mixed-citation>
Shepherd, A., Ivins, E., Rignot, E., Smith, B., van den Broeke, M.,
Velicogna,
I., Whitehouse, P., Briggs, K., Joughin, I., Krinner, G., Nowicki, S., Payne,
T., Scambos, T., Schlegel, N., Geruo, A., Agosta, C., Ahlström, A., Babonis,
G., Barletta, V., Blazquez, A., Bonin, J., Csatho, B., Cullather, R.,
Felikson, D., Fettweis, X., Forsberg, R., Gallee, H., Gardner, A., Gilbert,
L., Groh, A., Gunter, B., Hanna, E., Harig, C., Helm, V., Horvath, A.,
Horwath, M., Khan, S., Kjeldsen, K., Konrad, H., Langen, P., Lecavalier, B.,
Loomis, B., Luthcke, S., McMillan, M., Melini, D., Mernild, S., Mohajerani,
Y., Moore, P., Mouginot, J., Moyano, G., Muir, A., Nagler, T., Nield, G.,
Nilsson, J., Noel, B., Otosaka, I., Pattle, M., Peltier, W., Nadege, P.,
Rietbroek, R., Rott, H., Sandberg-Sørensen, L., Sasgen, I., Save, H.,
Schrama, E., Schröder, L., Seo, K.-W., Simonsen, S., Slater, T., Spada, G.,
Sutterley, T., Talpe, M., Tarasov, L., van de Berg, W., van der Wal, W., van
Wessem, M., Vishwakarma, B., Wiese, D., and Wouters, B.: Mass balance of the
Antarctic ice sheet from 1992 to 2017, Nature, 558, 219–222,
<a href="https://doi.org/10.1038/s41586-018-0179-y" target="_blank">https://doi.org/10.1038/s41586-018-0179-y</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib81"><label>Shewchuk(1994)</label><mixed-citation>
Shewchuk, J. R.: An Introduction to the Conjugate Gradient Method Without the
Agonizing Pain, Tech. rep., Carnegie Mellon University, Pittsburgh, PA, USA,
1994.
</mixed-citation></ref-html>
<ref-html id="bib1.bib82"><label>Tezaur et al.(2015)Tezaur, Perego, Salinger, Tuminaro, and
Price</label><mixed-citation>
Tezaur, I. K., Perego, M., Salinger, A. G., Tuminaro, R. S., and Price, S.
F.: <i>Albany/FELIX</i>: a parallel, scalable and robust, finite element,
first-order Stokes approximation ice sheet solver built for advanced
analysis, Geosci. Model Dev., 8, 1197–1220,
<a href="https://doi.org/10.5194/gmd-8-1197-2015" target="_blank">https://doi.org/10.5194/gmd-8-1197-2015</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib83"><label>Van den Berg et al.(2006)Van den Berg, Van de Wal, and
Oerlemans</label><mixed-citation>
Van den Berg, J., Van de Wal, R., and Oerlemans, J.: Effects of spatial
discretization in ice-sheet modelling using the shallow-ice approximation, J.
Glaciol., 52, 89–98, <a href="https://doi.org/10.3189/172756506781828935" target="_blank">https://doi.org/10.3189/172756506781828935</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib84"><label>Vizcaino(2014)</label><mixed-citation>
Vizcaino, M.: Ice sheets as interactive components of Earth System Models:
progress and challenges, WIREs Clim. Change, 5, 557–568,
<a href="https://doi.org/10.1002/wcc.285" target="_blank">https://doi.org/10.1002/wcc.285</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib85"><label>Weertman(1957)</label><mixed-citation>
Weertman, J.: On the sliding of glaciers, J. Glaciol., 3, 33–38, 1957.
</mixed-citation></ref-html>
<ref-html id="bib1.bib86"><label>Winkelmann et al.(2011)Winkelmann, Martin, Haseloff, Albrecht,
Bueler, Khroulev, and Levermann</label><mixed-citation>
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,
<a href="https://doi.org/10.5194/tc-5-715-2011" target="_blank">https://doi.org/10.5194/tc-5-715-2011</a>, 2011.
</mixed-citation></ref-html>--></article>
