<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="namelist_definition.xsl"?>

<!-- ===================================================================

This file contains entries for all namelist variables that can be output
by buildnml. These variables can appear either in cism_in or
cism.icesheet.config (controlled by the "group" of each variable). A
modified version of this file can be placed in
$CASEROOT/SourceMods/src.cism/; if so, that one is used instead of the
standard one in the source tree. The handling of this file is done by
CISM's buildnml script; however, for standard variables that don't
require any special handling, no changes are needed in buildnml.

Each namelist variable is defined by an <entry> element. This element
has a required id, giving the name of the namelist variable. Additional
optional attributes can also be given; two helpful ones are:

- skip_default_entry="true": If specified, this variable will NOT
  automatically have a default value added to the namelist. Some
  examples of when you might want to use this are:
  - If an obscure variable should only appear in cism.icesheet.config if
    it is explicitly set in user_nl_cism. In this case, you should NOT
    define a <values> section for this variable.
  - If there is some logic around the default value that should be set
    for this variable, with an explicit add_default call in
    buildnml. This can either invoke the defaults set in this xml file
    (in which case there should still be a <values> section) or can set
    the default explicitly in the python code (in which case the
    <values> section isn't needed).

- modify_via_xml="XML_VARIABLE": If specified, it is an error for the
  user to try to set this variable via user_nl_cism; an error message
  will be generated in this case, telling them to set it via the given
  XML_VARIABLE.

Sub-elements of each entry include:

- type: The type of this variable (char, integer, logical, real)

- category: Used for organizing auto-generated documentation

- group: The name of the namelist group or section of
  cism.icesheet.config in which this variable will appear

- valid_values (optional): If given, this is a list of allowed values;
  if not given, there are no restrictions on allowed values.

- input_pathname (optional): Include this attribute to indicate that the
  variable contains the pathname of an input dataset that resides in the
  CESM inputdata directory tree. The recognized values are "abs" to
  indicate that an absolute pathname is required or "rel:var_name" to
  indicate that the pathname is relative and that the namelist variable
  "var_name" contains the absolute root directory.

- values (optional, but should be given unless
  skip_default_entry="true"): list of default values:
  - <value>XXX</value> indicates that this should be the default for
    this variable, unless some later match overrides it
  - <value variable="value"> indicates that this should be the default
    for this variable if the given variable has the given value. The
    given variable must appear in the config dictionary set in
    buildnml. The default namelist value for a given variable is the one
    that matches the most attributes.

- desc: Description, for documentation

==================================================================== -->

<entry_id version="2.0">

  <!-- =============================================================  -->
  <!-- =============================================================  -->
  <!-- cism_in groups                                                 -->
  <!-- =============================================================  -->
  <!-- =============================================================  -->

  <!-- =============================================================  -->
  <!-- group: cism_params                                             -->
  <!-- =============================================================  -->

  <entry id="paramfile_base" skip_default_entry="true">
    <type>char</type>
    <category>cism</category>
    <group>cism_params</group>
    <desc>
      Base name of top-level configuration file for CISM
      Actual param file names are this base name plus ".icesheet.config"
      for the given ice sheet.
      (Determined by scripts -- should not be set by user)
    </desc>
  </entry>

  <entry id="num_icesheets" skip_default_entry="true" modify_via_xml="GLC_USE_ANTARCTICA, GLC_USE_GREENLAND, etc.">
    <type>integer</type>
    <category>cism</category>
    <group>cism_params</group>
    <desc>
      Number of ice sheets in this simulation
      (Determined by scripts -- cannot be set by user)
    </desc>
  </entry>

  <entry id="icesheet_names" skip_default_entry="true" modify_via_xml="GLC_USE_ANTARCTICA, GLC_USE_GREENLAND, etc.">
    <type>char(10)</type>
    <category>cism</category>
    <group>cism_params</group>
    <desc>
      List of names of ice sheets in this simulation
      (Determined by scripts -- cannot be set by user)
    </desc>
  </entry>

  <entry id="cism_debug" >
    <type>logical</type>
    <category>cism</category>
    <group>cism_params</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      Determines whether extra diagnostics are printed in the cism log file
      Default: false
    </desc>
  </entry>

  <entry id="ice_flux_routing">
    <type>char</type>
    <category>cism</category>
    <group>cism_params</group>
    <valid_values>ocn,ice</valid_values>
    <values>
      <value>ocn</value>
    </values>
    <desc>
      Code describing how the solid ice runoff flux (i.e., calving) should
      be routed.
      ocn: all solid ice goes to the ocean component
      ice: all solid ice goes to the sea ice component
      Default: ocn
    </desc>
  </entry>

  <entry id="test_coupling">
    <type>logical</type>
    <category>cism</category>
    <group>cism_params</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      If this is set to true, it sets the mass balance timestep to 1 day.
      This means the ice dynamics is called after one day of climate simulation.
      THIS IS ONLY FOR TESTING OF COUPLING PROCEDURES, NOT TO BE USED FOR SCIENCE.
    </desc>
  </entry>

  <entry id="enable_frac_overrides">
    <type>logical</type>
    <category>cism</category>
    <group>cism_params</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      Whether to enable overrides of the glc fraction sent to the coupler.
      If this is true, then settings in glc_override_nml are used.
      ONLY MEANT FOR TESTING - SHOULD NOT BE USED FOR SCIENCE RUNS.
      Note that, if running with multiple ice sheets, this and the
      various override settings apply to all ice sheets: there is no way
      to do overrides for one ice sheet but not the others.
      Default: .false.
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: time_manager_nml                                        -->
  <!-- =============================================================  -->

  <entry id="runid" modify_via_xml="CASE">
    <type>char</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <values>
      <value>$CASE</value>
    </values>
    <desc>
      Simulation identifier (ie case name)
      Default: case name set by create_newcase
    </desc>
  </entry>

  <entry id="dt_option" skip_default_entry="true">
    <type>char</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>steps_per_year,steps_per_day,seconds,hours</valid_values>
    <desc>
      GLC time-step units
      This generally should not be changed
      Valid values: steps_per_year, steps_per_day, seconds, hours
      Default: set based on NCPL_BASE_PERIOD and GLC_NCPL in env_run.xml,
      so that there is one GLC time step per coupling period
    </desc>
  </entry>

  <entry id="dt_count" skip_default_entry="true">
    <type>real</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <desc>
      Time step, in units given by dt_option
      This generally should not be changed
      Default: set based on NCPL_BASE_PERIOD and GLC_NCPL in env_run.xml,
      so that there is one GLC time step per coupling period
    </desc>
  </entry>

  <entry id="allow_leapyear">
    <type>logical</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <values>
      <value>.true.</value>
      <value calendar="NO_LEAP">.false.</value>
    </values>
    <desc>
      Whether leap years are enabled in the GLC time manager.
      CAUTION: Leap years don't work correctly with GLC time steps longer than a few months.
      Default: .false. for NO_LEAP calendar, .true. otherwise
    </desc>
  </entry>

  <entry id="iyear0" skip_default_entry="true">
    <type>integer</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <desc>
      Starting year number
      Default: comes from RUN_STARTDATE or RUN_REFDATE
    </desc>
  </entry>

  <entry id="imonth0" skip_default_entry="true">
    <type>integer</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>1,2,3,4,5,6,7,8,9,10,11,12</valid_values>
    <desc>
      Starting month number
      Default: comes from RUN_STARTDATE or RUN_REFDATE
    </desc>
  </entry>

  <entry id="iday0" skip_default_entry="true">
    <type>integer</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31</valid_values>
    <desc>
      Starting day number in month
      Default: comes from RUN_STARTDATE or RUN_REFDATE
    </desc>
  </entry>

  <entry id="ihour0" skip_default_entry="true">
    <type>integer</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23</valid_values>
    <desc>
      Starting hour of the day
      Default: 0
    </desc>
  </entry>

  <entry id="iminute0" skip_default_entry="true">
    <type>integer</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59</valid_values>
    <desc>
      Starting minute of the day
      Default: 0
    </desc>
  </entry>

  <entry id="isecond0" skip_default_entry="true">
    <type>integer</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59</valid_values>
    <desc>
      Starting second of the minute
      Default: 0
    </desc>
  </entry>

  <entry id="date_separator">
    <type>char</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <values>
      <value>-</value>
    </values>
    <desc>
      Character to separate date values
      Default: '-'
    </desc>
  </entry>

  <entry id="stop_option">
    <type>char</type>
    <category>time</category>
    <group>time_manager_nml</group>
    <valid_values>never</valid_values>
    <values>
      <value>never</value>
    </values>
    <desc>
      Stop option:  always let the coupler stop the model so use `never`.
      Default: 'never'
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: glc_override_nml                                        -->
  <!-- =============================================================  -->

  <entry id="decrease_override_delay">
    <type>integer</type>
    <category>overrides</category>
    <group>glc_override_nml</group>
    <values>
      <value>0</value>
    </values>
    <desc>
      Time delay before beginning decrease_frac overrides (days).
      Default: 0 (start overrides at beginning of run)
    </desc>
  </entry>

  <entry id="increase_override_delay">
    <type>integer</type>
    <category>overrides</category>
    <group>glc_override_nml</group>
    <values>
      <value>0</value>
    </values>
    <desc>
      Time delay before beginning increase_frac overrides (days).
      Default: 0 (start overrides at beginning of run)
    </desc>
  </entry>

  <entry id="rearrange_override_delay">
    <type>integer</type>
    <category>overrides</category>
    <group>glc_override_nml</group>
    <values>
      <value>0</value>
    </values>
    <desc>
      Time delay before beginning rearrange_freq overrides (days).
      Default: 0 (start overrides at beginning of run)
    </desc>
  </entry>

  <entry id="decrease_frac">
    <type>real</type>
    <category>overrides</category>
    <group>glc_override_nml</group>
    <values>
      <value>0.0</value>
    </values>
    <desc>
      Fractional decrease in glacier area, per day (should be positive).
      (days_elapsed * decrease_frac) determines the elevation threshold below which ice_covered is set to 0.
      When this factor reaches 1, all elevations below 3500 m are set to non-ice-covered.
      Default: 0 (no decrease)
    </desc>
  </entry>

  <entry id="increase_frac">
    <type>real</type>
    <category>overrides</category>
    <group>glc_override_nml</group>
    <values>
      <value>0.0</value>
    </values>
    <desc>
      Fractional increase in glacier area, per day.
      (days_elapsed * increase_frac) determines the elevation threshold above which ice_covered is set to 1.
      When this factor reaches 1, all elevations >= 0 m are set to ice-covered.
      Default: 0 (no increase)
    </desc>
  </entry>

  <entry id="rearrange_freq">
    <type>integer</type>
    <category>overrides</category>
    <group>glc_override_nml</group>
    <values>
      <value>0</value>
    </values>
    <desc>
      Frequency (days) at which we rearrange elevation classes.
      Default: 0 (no flips ever)
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- =============================================================  -->
  <!-- cism.icesheet.config groups                                    -->
  <!-- =============================================================  -->
  <!-- =============================================================  -->

  <!-- =============================================================  -->
  <!-- group: derived (handled uniquely)                              -->
  <!-- =============================================================  -->

  <entry id="cisminputfile" skip_default_entry="true">
    <type>char</type>
    <category>cism</category>
    <input_pathname>abs</input_pathname>
    <group>derived</group>
    <values>
      <!-- the following is just for the sake of software testing, and should not be used for science -->
      <value icesheet="gris" glc_grid="gris20">glc/cism/Greenland/gland20.input_c150415.nc</value>
      <!-- this is the resolution that should be used for science applications with cism2 -->
      <value icesheet="gris" glc_grid="gris4">glc/cism/Greenland/greenland_4km_epsg3413_c171126.nc</value>

      <!-- the following is for software testing of Antarctica -->
      <value icesheet="ais" glc_grid="ais8">glc/cism/Antarctica/ISMIP6_Antarctica_8km.init.c210908.nc</value>
    </values>
    <desc>
      Input file
      Default: For startup runs or hybrid runs with CISM_OBSERVED_IC=TRUE, a resolution-dependent
               initial conditions file.
               For branch/hybrid runs with CISM_OBSERVED_IC=FALSE, a restart file name
               built based on RUN_REFCASE and RUN_REFDATE.
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: grid                              -->
  <!-- =============================================================  -->

  <entry id="ewn" >
    <type>integer</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <values>
      <value icesheet="gris" glc_grid="gris20" >76</value>
      <value icesheet="gris" glc_grid="gris4"  >416</value>
      <value icesheet="ais"  glc_grid="ais8"   >704</value>
    </values>
    <desc>
      Number of nodes in x-direction
      Default: resolution-dependent
    </desc>
  </entry>

  <entry id="nsn" >
    <type>integer</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <values>
      <value icesheet="gris" glc_grid="gris20" >141</value>
      <value icesheet="gris" glc_grid="gris4"  >704</value>
      <value icesheet="ais"  glc_grid="ais8"   >576</value>
    </values>
    <desc>
      Number of nodes in y-direction
      Default: resolution-dependent
    </desc>
  </entry>

  <entry id="upn" >
    <type>integer</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <values>
      <value icesheet="gris" glc_grid="gris20" >11</value>
      <value icesheet="gris" glc_grid="gris4"  >11</value>

      <value icesheet="ais"  glc_grid="ais8"   >5</value>
    </values>
    <desc>
      Number of nodes in z-direction
      Default: resolution-dependent
    </desc>
  </entry>

  <entry id="dew" >
    <type>real</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <values>
      <value icesheet="gris" glc_grid="gris20" >20000.</value>
      <value icesheet="gris" glc_grid="gris4"  >4000.</value>
      <value icesheet="ais"  glc_grid="ais8"   >8000.</value>
    </values>
    <desc>
      Node spacing in x-direction (m)
      Default: resolution-dependent
    </desc>
  </entry>

  <entry id="dns" >
    <type>real</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <values>
      <value icesheet="gris" glc_grid="gris20" >20000.</value>
      <value icesheet="gris" glc_grid="gris4"  >4000.</value>
      <value icesheet="ais"  glc_grid="ais8"   >8000.</value>
    </values>
    <desc>
      Node spacing in y-direction (m)
      Default: resolution-dependent
    </desc>
  </entry>

  <entry id="nx_block" >
    <type>integer</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <values>
      <value>0</value>
    </values>
    <desc>
      User-specified block sizes, one task per block; optionally, tasks not assigned to inactive blocks
      Default: 0
    </desc>
  </entry>

  <entry id="ny_block" >
    <type>integer</type>
    <category>cism_config_grid</category>                                                                  
    <group>grid</group>
    <values>                                                                                               
      <value>0</value>
    </values>
    <desc>                                                                                                 
      User-specified block sizes, one task per block; optionally, tasks not assigned to inactive blocks    
      Default: 0  
    </desc>
  </entry>

  <entry id="global_bc" >
    <type>integer</type>
    <category>cism_config_grid</category>
    <group>grid</group>
    <valid_values>0,1,2,3</valid_values>
    <values>
      <value icesheet="gris">1</value>
      <value icesheet="ais" >3</value>
    </values>
    <desc>
      Global boundary conditions
      0: Doubly periodic
      1: Free outflow; scalars in global halo set to zero
      2: No penetration; outflow set to zero at global boundaries (only supported for Glissade dycore)
      3: No ice at global boundary; scalars set to zero adjacent to boundary
      Default: 1 for Greenland, 3 for Antarctica
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: sigma                             -->
  <!-- =============================================================  -->

  <!-- This group is only relevant if sigma = 2 -->

  <entry id="sigma_levels" >
    <type>real(20)</type>
    <category>cism_config_sigma</category>
    <group>sigma</group>
    <values>
      <!-- These levels focus resolution at the bottom -->
      <value>0.00 0.15 0.30 0.45 0.60 0.75 0.83 0.90 0.95 0.98 1.00</value>
    </values>
    <desc>
      List of sigma levels, in ascending order, separated by spaces
      These run between 0.0 (at top surface) and 1.0 (at lower surface)
      Only relevant if sigma = 2
      Default: 0.00 0.15 0.30 0.45 0.60 0.75 0.83 0.90 0.95 0.98 1.00
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: climate                           -->
  <!-- =============================================================  -->

  <entry id="evolve_ice" modify_via_xml="CISM_EVOLVE_ICESHEET for the given ice sheet">
    <type>integer</type>
    <category>cism_config_climate</category>
    <group>glad_climate</group>
    <valid_values>0,1</valid_values>
    <values>
      <value cism_evolve_this_icesheet=".true.">1</value>
      <value cism_evolve_this_icesheet=".false.">0</value>
    </values>
    <desc>
      0: Do not let the ice sheet evolve (hold ice state fixed at initial condition)
      1: Let the ice sheet evolve
      Default: 1
    </desc>
  </entry>

  <entry id="zero_gcm_fluxes">
    <type>logical</type>
    <category>cism_config_climate</category>
    <group>glad_climate</group>
    <values>
      <value glc_two_way_coupling=".true." cism_evolve_this_icesheet=".true.">.false.</value>
      <value glc_two_way_coupling=".false." cism_evolve_this_icesheet=".true.">.true.</value>
      <value glc_two_way_coupling=".true." cism_evolve_this_icesheet=".false.">.true.</value>
      <value glc_two_way_coupling=".false." cism_evolve_this_icesheet=".false.">.true.</value>
    </values>
    <desc>
      If true, zero out all fluxes sent to the GCM
      Default: Depends on GLC_TWO_WAY_COUPLING xml variable and whether
      this ice sheet is evolving
    </desc>
  </entry>

  <entry id="ice_tstep_multiply" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_climate</category>
    <group>glad_climate</group>
    <desc>
      Ice time-step multiplier: allows asynchronous climate-ice coupling
      Default: (use hard-coded default- currently 1)
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: esm_output                        -->
  <!-- =============================================================  -->

  <entry id="esm_history_vars" >
    <type>char</type>
    <category>cism_config_history</category>
    <group>esm_output</group>
    <values>
      <value cism_evolve_this_icesheet=".true." >smb artm thk usurf topg uvel vvel temp bmlt bwat beta_internal floating_mask grounded_mask bpmp acab_applied bmlt_applied calving_rate iareaf iareag imass imass_above_flotation total_smb_flux total_bmb_flux total_calving_flux total_gl_flux ice_sheet_mask ice_cap_mask</value>
      <value cism_evolve_this_icesheet=".false.">smb artm thk usurf topg</value>
    </values>
    <desc>
      Space-delimited list of variables output to history file
      Default: Depends on physics and ice evolution options
    </desc>
  </entry>

  <entry id="history_option">
    <type>char</type>
    <category>cism_config_history</category>
    <group>esm_output</group>
    <valid_values>nyears,coupler</valid_values>
    <values>
      <value>nyears</value>
    </values>
    <desc>
      How history frequency is specified
      nyears: Write history every N years
      coupler: Get history frequency from coupler (HIST_OPTION/HIST_N xml variables)
               WARNING: SHOULD NOT BE USED IN PRODUCTION RUNS - frequency metadata not set properly
      Default: nyears
    </desc>
  </entry>

  <entry id="history_frequency">
    <type>integer</type>
    <category>cism_config_history</category>
    <group>esm_output</group>
    <values>
      <value>1</value>
    </values>
    <desc>
      History frequency
      e.g., if history_option=nyears, then 1 = annual, 2 = every two years, etc.
      Ignored for history_option = 'coupler'
      Default: 1
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: options                           -->
  <!-- =============================================================  -->

  <entry id="dycore">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>2</valid_values>
    <values>
      <value>2</value>
    </values>
    <desc>
      Which dycore to use
      0: NOT SUPPORTED: Glide dycore (SIA, serial only)
         Note that this option is no longer supported in CESM
      1: NOT SUPPORTED: glam dycore (HO, FDM, serial or parallel)
         Note that this option is not allowed within CESM, because it is buggy
      2: Glissade dycore (HO, FEM, serial or parallel)
      Default: 2
    </desc>
  </entry>

  <entry id="temperature">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Determines the temperature solution method
      0: isothermal: set column to surface air temperature
      1: prognostic temperature solution
      2: do NOTHING: hold temperatures steady at initial value
      3: prognostic enthalpy solution
      Default: 1
    </desc>
  </entry>

  <entry id="temp_init">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3,4</valid_values>
    <values>
      <!-- temp_init = 3 can only generate an advective-diffusive-balance profile if acab
           or smb are present in the input file (which is currently only the case for some
           input files). But it defaults to a linear profile (temp_init 2) if neither of
           these fields are present. So to keep things simple, we specify temp_init = 3
           for all input files, rather than making this dependent on glc_grid. -->
      <value>3</value>
    </values>
    <desc>
      Temperature initialization method
      0: Initialize temperature to 0 C
      1: Initialize temperature to surface air temperature
      2: Initialize temperature with a linear profile in each column
      3: Initialize temperature with an advective-diffusive balance in each column
      4: Initialize temperature from external file
      Default: 3
    </desc>
  </entry>

  <entry id="flow_law">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3</valid_values>
    <values>
      <value>2</value>
    </values>
    <desc>
      0: Constant value, taken from default_flwa
      1: Uniform value equal to the Paterson-Budd value at -10 deg C
      2: Paterson-Budd temperature-dependent relationship
      3: Read flwa/flwastag from file
      Default: 2
    </desc>
  </entry>

  <entry id="bmlt_float">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3,4,6</valid_values>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais" >6</value>
    </values>
    <desc>
      Basal melt rate for floating ice
      0: Basal melt rate = 0 for floating ice
      1: Depth-dependent basal melt rate for floating ice as prescribed for MISMIP+
      2: Basal melt rate = constant for floating ice (with option to selectively mask out melting)
      3: Depth-dependent basal melt rate for floating ice
      4: External basal melt rate field (from input file or coupler)
      5: [NOT SUPPORTED] Basal melt rate for floating ice from MISOMIP ocean forcing with plume model
      6: Basal melt rate for floating ice derived from ocean thermal forcing 
      Default: 0 for Greenland, 6 for Antarctica
    </desc>
  </entry>

  <entry id="bmlt_float_ismip6_magnitude">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      0: lowest forcing magnitude
      1: median forcing magnitude
      2: highest forcing magnitude
    </desc>
  </entry>
  
  <entry id="bmlt_float_thermal_forcing_param">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3</valid_values>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais"> 2</value>
    </values>
    <desc>
      0: Quadratic parameterization to compute basal melting from thermal forcing
      1: ISMIP6 local quadratic parameterization to compute basal melting from thermal forcing
      2: ISMIP6 nonlocal quadratic parameterization to compute basal melting from thermal forcing
      3: ISMIP6 nonlocal quadratic parameterization with slope dependence
      Default: 0 for Greenland, 2 for Antarctica
    </desc>
  </entry>

  <entry id="ocean_data_domain">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais" >1</value>
    </values>
    <desc>
      0: ocean data set internally by CISM
      1: ocean data read from external file
      2: ocean data received from coupler via Glad
      Default: 0 for Greenland, 1 for Antarctica
    </desc>
  </entry>

  <entry id="ocean_data_extrapolate">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      0: ocean data not extrapolated to shelf cavities
      1: ocean data extrapolated to shelf cavities
      Default: 0
    </desc>
  </entry>

  <entry id="marine_margin">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3,4,5,6,7,8,9</valid_values>
    <values>
      <value icesheet="gris">1</value>
      <value icesheet="ais" >5</value>
    </values>
    <desc>
      Calving
      0: No calving
      1: Set thickness to zero if floating
      2: Lose a fraction of floating ice at marine margin
      3: Set thickness to zero if relaxed bedrock is more than a certain water depth (marine_limit)
      4: Set thickness to zero if present bedrock topography lies below a certain water depth (marine_limit)
      5: Set thickness to zero based on grid location (field 'calving_mask')
      6: Set thickness to zero if ice at marine margin is thinner than a certain value (calving_minthck)
      7: Set thickness to zero based on stress (eigencalving) criterion
      8: [NOT SUPPORTED] Calve ice that is sufficiently damaged
      9: [NOT SUPPORTED] Huybrechts grounding line scheme for Greenland initialization
      Default: 1 for Greenland, 5 for Antarctica
    </desc>
  </entry>

  <entry id="calving_domain">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      0: Calve only at ocean edge
      1: Calve wherever the calving criterion is met
      Default: 1
    </desc>
  </entry>

  <entry id="apply_calving_mask">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      If true, then apply a calving mask to prevent calving-front advance.
      Default: .false.
    </desc>
  </entry>

  <entry id="remove_icebergs">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <values>
      <value>.true.</value>
    </values>
    <desc>
      If true, then identify and remove icebergs after calving.
      These are connected regions with zero basal traction and no connection to grounded ice.
      Safer to make it true (and this is needed for stability when allowing floating ice
      with more advanced calving options), but not necessary for all applications.
      Default: .true.
    </desc>
  </entry>

  <entry id="remove_isthmuses">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      If true, then identify and remove ice isthmuses after calving.
      These are narrow bridges connecting two regions of floating ice.              
      False by default, but may need to be true for the FORCE_RETREAT_FLOATING_ICE option.
      Default: .false.
    </desc>
  </entry>

  <entry id="limit_marine_cliffs">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <values>
      <value>.true.</value>
    </values>
    <desc>
      If true, then thin marine-based cliffs based on a thickness threshold
      Default: .true.
    </desc>
  </entry>

  <entry id="cull_calving_front" skip_default_entry="true">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <desc>
      Expert setting.
      If true, then cull calving_front cells at initialization.
      This can make the run more stable by removing long, thin peninsulas.
      If this is set, then also need to set ncull_calving_front.
      Default: (use hard-coded default - currently .false.)
    </desc>
  </entry>

  <entry id="adjust_input_thickness">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <values>
      <value icesheet="gris">.false.</value>
      <value icesheet="ais" >.true.</value>
    </values>
    <desc>
      If true, then adjust thck to maintain usrf, instead of deriving usrf from topg and thck.
      Default: .false. for Greenland, .true. for Antarctica
    </desc>
  </entry>

  <entry id="read_lat_lon">
    <type>logical</type>
    <category>cism_config_options</category>
    <group>options</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      If true, then read lat and lon fields from the input file and write to restarts.
      Default: .false.
    </desc>
  </entry>

  <entry id="calving_init">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      0: Do not calve at initialization
      1: Calve at initialization
      Default: 1
    </desc>
  </entry>

  <entry id="slip_coeff">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2,3,4,5</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      Basal traction parameter
      Glide or Glissade local SIA (which_ho_approx = -1) only.
      0: no basal sliding
      1: constant basal traction coefficient
      2: constant coefficient where basal water is present, else no sliding
      3: constant coefficient where the basal temperature is at the pressure melting point, else no sliding
      4: coefficient is proportional to basal melt rate
      5: coefficient is a linear function of basal water depth
      Default: 0
    </desc>
  </entry>

  <entry id="evolution">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>3,4,5</valid_values>
    <values>
      <value>3</value>
    </values>
    <desc>
      3: remap thickness
      4: 1st order upwind
      5: no thickness evolution
      Default: 3
    </desc>
  </entry>

  <entry id="vertical_integration">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      Method of integration used to obtain vertical velocity
      0: standard vertical integration
      1: vertical integration constrained to obey an upper kinematic boundary condition
      Default: 0
    </desc>
  </entry>

  <entry id="basal_mass_balance">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      0: not in continuity equation
      1: in continuity equation
      Default: 1
    </desc>
  </entry>

  <entry id="gthf">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      0: prescribed uniform geothermal heat flux
      1: read 2D geothermal flux field from input file, if present
         (if absent, fall back to prescribed uniform geothermal heat flux)
      2: calculate geothermal flux using 3d diffusion
      Default: 1
    </desc>
  </entry>

  <entry id="isostasy">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      0: no isostasy
      1: compute isostasy
      Default: 0
    </desc>
  </entry>

  <entry id="sigma">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,2,3,4</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      How to determine sigma values
      0: compute standard Glimmer sigma coordinates
      1: sigma coordinates are given in external file [NOT ALLOWED WHEN RUNNING CISM IN CESM]
      2: read sigma coordinates from config file (from sigma_levels)
      3: evenly spaced levels, as required for glam dycore
      4: compute Pattyn sigma coordinates
      Default: 0
    </desc>
  </entry>

  <entry id="periodic_ew" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <desc>
      0: no periodic EW boundary conditions
      1: periodic EW boundary conditions
      (This is a Glimmer serial option. The parallel code enforces periodic
      EW and NS boundary conditions by default.)
      Default: (use hard-coded default - currently 0)
    </desc>
  </entry>

  <entry id="diag_minthck" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <desc>
      How to determine minimum thickness for diagnostic
      0: global diagnostics include all cell with H > 0
      1: global diagnostics include all cells with H > thklim
      This change only affects log files, not output .nc files
      Default: (use hard-coded default - currently 1)
    </desc>
  </entry>

  <entry id="dm_dt_diag">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Switch units from kg/s to Gt/yr in the log file
      0: use kg/s unit in log file
      1: use Gt/yr unit in log file
      This change only affects log files, not output .nc files
      Default: 1
    </desc>
  </entry>

  <entry id="restart" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_options</category>
    <group>options</group>
    <valid_values>0,1</valid_values>
    <desc>
      Restart the model if set to 1.
      This allows for exact restarts from previous initial conditions
      Default: 0 for startup or hybrid with CISM_OBSERVED_IC=TRUE, 1 for hybrid/branch with CISM_OBSERVED_IC=FALSE
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: time                              -->
  <!-- =============================================================  -->

  <entry id="dt">
    <type>real</type>
    <category>cism_config_time</category>
    <group>time</group>
    <values>
      <!-- Note: if change dt, also should change dt_diag -->
      <!-- A dt of 1 seems sufficient for cism2 gris20. However, use 0.5 because (a)
           this is less likely to break due to instabilities, and (b) it exercises the
           code in a more typical configuration (i.e., with a sub-annual time step) -->
      <value icesheet="gris" glc_grid="gris20">0.5</value>
      <value icesheet="gris" glc_grid="gris4" >0.1</value>

      <!-- Gunter used nsteps_per_year = 6. Can we use that instead of
           dt here? -->
      <value icesheet="ais"  glc_grid="ais8"  >0.2</value>
    </values>
    <desc>
      Ice sheet timestep (years)
      Must translate into an integer number of hours
      Default: Depends on resolution and physics option
    </desc>
  </entry>

  <entry id="ntem" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_time</category>
    <group>time</group>
    <desc>
      Multiplier of ice sheet timestep, dt
      (in theory, can be real-valued, but values less than 1 are not handled properly, so restricted to being an integer)
      Default: (use hard-coded default: 1)
    </desc>
  </entry>

  <entry id="subcyc" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_time</category>
    <group>time</group>
    <desc>
      Subcycling for Glissade
      Default: (use hard-coded default: 1)
    </desc>
  </entry>

  <entry id="adaptive_cfl_threshold">
    <type>real</type>
    <category>cism_config_time</category>
    <group>time</group>
    <values>
      <value>0.5</value>
    </values>
    <desc>
      Adaptively subcycle the advection when advective CFL exceeds this value (Glissade only)
      (Zero value means no adaptive subcycling.)
      A nonzero value makes it possible for CISM to run with large velocities
      that otherwise would violate the advective CFL limit. Results are
      generally more accurate and stable, however, if the model is run with a
      time step short enough to avoid subcycling.
      Default: 0.5
    </desc>
  </entry>

  <entry id="dt_input_option">
    <type>integer</type>
    <category>cism_config_time</category>
    <group>time</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      Set dt_option to specify whether the dynamic timestep (model%numerics%tinc) 
      is based on dt (the timestep in years) or nsteps_per_year in the config file.
      The default (dt_option = 0) is to read dt directly,
      but the nsteps_per_year option allows more flexibility.
      [0] Input dt in years
      [1] Input dt in steps per year
      Default: 0 (DT_IN_YEARS)
    </desc>
  </entry>

  <entry id="nsteps_per_year">
    <type>integer</type>
    <category>cism_config_time</category>
    <group>time</group>
    <values>
      <value>0</value>
    </values>
    <desc>
      Number of time steps per year (for dt_input_option=1 (STEPS_PER_YEAR))
      Default: 0, (dt_input_option=0)
    </desc>
  </entry>

  <entry id="dt_diag">
    <type>real</type>
    <category>cism_config_time</category>
    <group>time</group>
    <values>
      <!-- Set dt_diag same as dt in order to get diagnostics every time step -->
      <value icesheet="gris" glc_grid="gris20">0.5</value>
      <value icesheet="gris" glc_grid="gris4" >0.1</value>

      <value icesheet="ais"  glc_grid="ais8"  >0.2</value>
    </values>
    <desc>
      Diagnostic frequency (years)
      Set to 0 for no diagnostic output; set to dt for diagnostic output every time step
      Default: Same as dt
    </desc>
  </entry>

  <entry id="idiag">
    <type>integer</type>
    <category>cism_config_time</category>
    <group>time</group>
    <values>
      <!-- 5-km idiag & jdiag chosen by Jeremy Fyke, as a point prone to CFL
           instability (in trunk of Jakobshavn); 20-km and 4-km points
           chosen to be roughly the same point in space -->
      <!-- Update 5-2-17: The 4-km point should be updated for the new grid -->
      <value icesheet="gris" glc_grid="gris20" >17</value>
      <value icesheet="gris" glc_grid="gris4"  >134</value>

      <!-- AIS 8-km idiag & jdiag: Thwaites shelf near GL -->
      <value icesheet="ais"  glc_grid="ais8"   >157</value>
    </values>
    <desc>
      x coordinate of point for diagnostic output
      Default: resolution-dependent
    </desc>
  </entry>

  <entry id="jdiag">
    <type>integer</type>
    <category>cism_config_time</category>
    <group>time</group>
    <values>
      <!-- See comments for idiag, above -->
      <value icesheet="gris" glc_grid="gris20" >57</value>
      <value icesheet="gris" glc_grid="gris4"  >280</value>

      <value icesheet="ais"  glc_grid="ais8"   >230</value>
    </values>
    <desc>
      y coordinate of point for diagnostic output
      Default: resolution-dependent
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: parameters                        -->
  <!-- =============================================================  -->

  <entry id="log_level">
    <type>integer</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <valid_values>0,1,2,3,4,5,6</valid_values>
    <values>
      <value>6</value>
    </values>
    <desc>
      Set to a value between 0 (no messages) and 6 (all messages)
      Default: 6
    </desc>
  </entry>

  <entry id="ice_limit">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.</value>
    </values>
    <desc>
      Thickness below which ice dynamics is ignored (m)
      Below this limit, ice is only accumulated
      Default: 1
    </desc>
  </entry>

  <entry id="thck_gradient_ramp">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">50.</value>
      <value icesheet="ais" >100.</value>
    </values>
    <desc>
      Thickness scale (in meters) over which gradients increase from zero to full value (HO only)
      Default: 50. for Greenland, 100. for Antarctica
    </desc>
  </entry>

  <entry id="effstrain_min">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.0e-8</value>
    </values>
    <desc>                                                                                                                                
      Thickness scale (in meters) over which gradients increase from zero to full value (HO only)
      Default: 1.0e-8
    </desc>
  </entry>

  <entry id="gamma0">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">0.</value>
      <value icesheet="ais" >14433.</value>
    </values>
    <desc>
      default coefficient for sub-shelf melt rates (m/yr).
      Note: There are two ways to read in gamma0:
      (1) Set gamma0 to a positive value in the config file.  This value will be used throughout the run.
      (2) Set several potential values (gamma0_local_pct5, etc.) in the input file.
          Based on the chosen ISMIP6 parameterization options, gamma0 will be set to the appropriate value at startup.
          If no value is present in the config file, then the model will default to a value below.
      Default: 0. for Greenland, 14433. for Antarctica
    </desc>
  </entry>

  <entry id="max_slope">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.1</value>
    </values>
    <desc>
      Maximum surface slope used in the Glissade driving-stress calculation (unitless)
      Not valid for other dycores
      Default: 0.1
    </desc>
  </entry>

  <entry id="marine_limit" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      All ice is assumed lost once water depths reach this value (for marine_margin=3 or 4) (m)
      Note that water depth is negative
      Default: (use hard-coded default - currently -200.)
    </desc>
  </entry>

  <entry id="calving_fraction" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Fraction of ice lost to calving (marine_margin = 2 only)
      Default: (use hard-coded default - currently 0.2)
    </desc>
  </entry>

  <entry id="calving_minthck">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>100.</value>
    </values>
    <desc>
      Minimum thickness of floating ice at marine edge before it calves (m)
      Default: 100.
    </desc>
  </entry>

  <entry id="taumax_cliff">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">1.e6</value>
      <value icesheet="ais" >7.5e5</value>
    </values>
    <desc>
      Yield stress (Pa) for marine-based ice cliffs (Glissade only)
      Default: 1.e6 for Greenland, 7.5e5 for Antarctica
    </desc>
  </entry>

  <entry id="cliff_timescale">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.</value>
    </values>
    <desc>
      Time scale (yr) for limiting marine cliffs (Glissade only)
      Default: 0.
    </desc>
  </entry>

  <entry id="eigencalving_constant" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Lateral calving rate (m/yr) per unit stress (Pa)
      Used only with marine_margin = 7 and 8
      Default: (use hard-coded default - currently 0.01)
    </desc>
  </entry>

  <entry id="eigen2_weight" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Weight that can increase lateral calving rate (eigencalving_constant).
      Used only with marine_margin = 7 and 8
      Default: (use hard-coded default - currently 1.)
    </desc>
  </entry>

  <entry id="damage_constant" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Damage rate (1/yr) per unit stress (Pa)
      [NOT SUPPORTED]
      Default: (use hard-coded default - currently 1.e-7)
    </desc>
  </entry>

  <entry id="damage_threshold" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Damage threshold for calving
      [NOT SUPPORTED]
      Default: (use hard-coded default - currently 0.75)
    </desc>
  </entry>

  <entry id="ncull_calving_front" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Number of times to cull calving_front cells at initialization
      Set to a larger value to remove thicker peninsulas
      To use this, also set cull_calving_front to .true.
      Default: (use hard-coded default - currently 0)
    </desc>
  </entry>

  <entry id="calving_timescale">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">0.</value>
      <value icesheet="ais" >1.</value>
    </values>
    <desc>
      Timescale for calving (yr) (Glissade only)
      calving_thck = thck*max(dt/calving_timescale,1)
      If calving_timescale = 0, then the full column calves at once
      Default: 0. for Greenland, 1. for Antarctica
    </desc>
  </entry>

  <entry id="geothermal">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>-5.e-2</value>
    </values>
    <desc>
      Constant geothermal heat flux (W m-2; sign convention is positive down)
      (May be overwritten by a spatially-varying field in input file [bheatflx])
      Default: -0.05
    </desc>
  </entry>

  <entry id="flow_factor">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.</value>
    </values>
    <desc>
      Flow enhancement parameter for the Arrhenius relationship;
      typically used in SIA model to speed up the ice.
      Default: 1.0
    </desc>
  </entry>

  <entry id="flow_factor_float">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">1.</value>
      <value icesheet="ais" >0.40</value>
    </values>
    <desc>
      Flow enhancement parameter for floating ice.
      Default is 1.0, but for marine simulations a smaller value
      may be needed to match observed shelf speeds.
      Default: 1.0 for Greenland, 0.40 for Antarctica
    </desc>
  </entry>

  <entry id="default_flwa" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Glen's A to use in isothermal case, i.e, when temperature = 0
      Default: (use hard-coded default - currently 1.e-16)
    </desc>
  </entry>

  <entry id="basal_tract_const">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.e-4</value>
    </values>
    <desc>
      (m yr-1 Pa-1)
      Relevant only when slip_coeff is relevant (Glide or Glissade local SIA)
      Default: 1.e-4
    </desc>
  </entry>

  <entry id="basal_tract_max" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      (m yr-1 Pa-1)
      (Only used for slip_coeff = BTRC_LINEAR_BMLT)
      Default: (use hard-coded default - currently 0.)
    </desc>
  </entry>

  <entry id="basal_tract_slope" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      (Pa-1)
      (Only used for slip_coeff = BTRC_LINEAR_BMLT)
      Default: (use hard-coded default - currently 0.)
    </desc>
  </entry>

  <entry id="basal_tract_tanh" skip_default_entry="true">
    <type>real(5)</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      5-element list of values
      (Only used for slip_coeff = BTRC_TANH_BWAT)
      Default: (use hard-coded default - currently 0.2d0, 0.5d0, 0.0d0 ,1.0d-2, 1.0d0)
    </desc>
  </entry>

  <entry id="periodic_offset_ew" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Optional periodic offset for ismip-hom and similar tests
      May be needed to ensure continuous ice geometry at the edges of the
      global domain
      Default: (use hard-coded default - currently 0.)
    </desc>
  </entry>

  <entry id="periodic_offset_ns" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Optional periodic offset for ismip-hom and similar tests
      May be needed to ensure continuous ice geometry at the edges of the
      global domain
      Default: (use hard-coded default - currently 0.)
    </desc>
  </entry>

  <entry id="ho_beta_const" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Only relevant for which_ho_babc = 0
      Spatially uniform beta for higher-order dycores (Pa yr m-1)
      Default: (use hard-coded default - currently 1000.)
    </desc>
  </entry>

  <entry id="pmp_offset">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">5.</value>
      <value icesheet="ais" >1.0</value>
    </values>
    <desc>
      Offset of initial Tbed from pressure melting point temperature (deg C)
      Default: 5. for Greenland, 1.0 for Antarctica
    </desc>
  </entry>

  <entry id="pseudo_plastic_q">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.5</value>
    </values>
    <desc>
      Parameter for pseudo-plasting sliding law:
      Exponent for pseudo-plastic law (unitless)
      0 &lt;= q &lt;= 1
      q = 1: linear sliding law
      q = 0: plastic
      Intermediate values: power law
      Default: 0.5
    </desc>
  </entry>

  <entry id="pseudo_plastic_u0">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>100.</value>
    </values>
    <desc>
      Parameter for pseudo-plasting sliding law:
      Threshold velocity for pseudo-plastic law (m yr-1)
      Default: 100.
    </desc>
  </entry>

  <entry id="pseudo_plastic_phimin">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>5.</value>
    </values>
    <desc>
      Parameter for pseudo-plasting sliding law:
      min(phi) in pseudo-plastic law, for topg &lt;= bedmin (degrees)
      0 &lt; phi &lt; 90
      Default: 5.
    </desc>
  </entry>

  <entry id="pseudo_plastic_phimax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>40.</value>
    </values>
    <desc>
      Parameter for pseudo-plasting sliding law:
      max(phi) in pseudo-plastic law, for topg &gt;= bedmin (degrees)
      0 &lt; phi &lt; 90
      Default: 40.
    </desc>
  </entry>

  <entry id="pseudo_plastic_bedmin">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>-700.</value>
    </values>
    <desc>
      Parameter for pseudo-plasting sliding law:
      Bed elevation below which phi = phimin (m)
      Default: -700.
    </desc>
  </entry>

  <entry id="pseudo_plastic_bedmax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>700.</value>
    </values>
    <desc>
      Parameter for pseudo-plasting sliding law:
      Bed elevation above which phi = phimax (m)
      Default: 700.
    </desc>
  </entry>

  <entry id="effecpress_delta">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.02</value>
    </values>
    <desc>
      Parameter for reducing the effective pressure where the bed is warm, saturated or connected to the ocean:
      Multiplier for effective pressure N where the bed is saturated and/or thawed (unitless)
      Default: 0.02
    </desc>
  </entry>

  <entry id="effecpress_bpmp_threshold" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Parameter for reducing the effective pressure where the bed is warm, saturated or connected to the ocean:
      Temperature range over which N ramps from a small value to full overburden (deg C)
      Only applies for which_ho_effecpress = 1.
      Default: (use hard-coded default - currently 0.1)
    </desc>
  </entry>

  <entry id="effecpress_bmlt_threshold" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <desc>
      Basal melting range over which N ramps from a small value to full overburden (m/yr)
      Relevant only for which_ho_effecpress = 2
      Default: (use hard-coded default - currently 1.0d-3)
    </desc>
  </entry>

  <entry id="bwat_till_max">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>2.</value>
    </values>
    <desc>
      Parameter for local till model: Maximum water depth in till (m)
      Relevant only for which_ho_bwat = 2
      Default: 2.0
    </desc>
  </entry>

  <entry id="c_drainage">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.e-3</value>
    </values>
    <desc>
      Parameter for local till model: Uniform drainage rate (m/yr)
      Relevant only for which_ho_bwat = 2
      Default: 1.e-3
    </desc>
  </entry>

  <entry id="beta_grounded_min">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">100.</value>
      <value icesheet="ais" >1.</value>
    </values>
    <desc>
      Minimum value of beta for grounded ice (Pa yr m-1)
      (Applies only to Glissade higher-order dycore)
      Default: 100. for Greenland, 1. for Antarctica
    </desc>
  </entry>

  <entry id="bmlt_float_h0">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>75.</value>
    </values>
    <desc>
      Scale for sub-shelf cavity thickness (m)
      Default: 75.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_meltmax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>10.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Max melt rate at depth (m/yr).
      (Ignored for other bmlt_float options.)
      Default: 10.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_frzmax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Max freezing rate near surface (m/yr).
      (Ignored for other bmlt_float options.)
      Default: 0.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_zmeltmax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>-500.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Depth (m) below which bmlt_float = meltmax.
      (Ignored for other bmlt_float options.)
      Default: -500.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_zmelt0">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>-200.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Depth (m) where bmlt_float = 0.
      (Ignored for other bmlt_float options.)
      Default: -200.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_zfrzmax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>-100.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Depth (m) above which bmlt_float = -frzmax.
      (Ignored for other bmlt_float options.)
      Default: -100.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_meltmin">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Minimum melt rate in warm ocean (m/yr).
      Relies on having a warm_ocean_mask field on the input file.
      (Ignored for other bmlt_float options.)
      Default: 0.
    </desc>
  </entry>

  <entry id="bmlt_float_depth_zmeltmin">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.</value>
    </values>
    <desc>
      Parameter for bmlt_float=3 (depth-dependent basal melt rate for floating ice):
      Depth (m) above which bmlt_float = meltmin.
      Relies on having a warm_ocean_mask field on the input file.
      (Ignored for other bmlt_float options.)
      Default: 0.
    </desc>
  </entry>

  <entry id="inversion_thck_flotation_buffer">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>2.</value>
    </values>
    <desc>
      If usrf_obs implies thck near the flotation thickness,
      set to thck_flotation +/- thck_flotation_buffer (m).
      Default: 2.0
    </desc>
  </entry>

  <entry id="inversion_thck_threshold">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.</value>
    </values>
    <desc>
      Ice thinner than this threshold (m) is removed at initialization.
      Default: 1.0
    </desc>
  </entry>

  <entry id="inversion_dbmlt_dtemp_scale">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>10.0</value>
    </values>
    <desc>
      Scale for rate of change of bmlt w/temperature, m/yr/degC 
      Default: 10.0
    </desc>
  </entry>

  <entry id="inversion_bmlt_basin_timescale">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>100.0</value>
    </values>
    <desc>
      Timescale (yr) for adjusting deltaT_basin
      Default: 100.0
    </desc>
  </entry>

  <entry id="inversion_bmlt_basin_flotation_threshold">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>500.0</value>
    </values>
    <desc>
      Threshold (m) for counting ice as lightly floating/grounded
      Default: 500.0
    </desc>
  </entry>

  <entry id="inversion_bmlt_basin_mass_correction">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1000.0</value>
    </values>
    <desc>
      Optional mass correction (Gt) for a selected basin
      Default: 1000.0
    </desc>
  </entry>

  <entry id="inversion_bmlt_basin_number_mass_correction">
    <type>integer</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>9</value>
    </values>
    <desc>
      integer ID for the basin receiving the correction
      Default: 9
    </desc>
  </entry>

  <entry id="bmlt_cavity_h0">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">0.</value>
      <value icesheet="ais" >50.</value>
    </values>
    <desc>
      Scale for reducing melting in sub-shelf cavities (m)
      Similar to bmlt_float_h0, which is used specifically for MISMIP+
      Default: 0. for Greenland, 50. for Antarctica
    </desc>
  </entry>

  <entry id="powerlaw_c">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">1.0e+4</value>
      <value icesheet="ais" >2.0e+4</value>
    </values>
    <desc>
      Parameters for power law, taub_b = C * u_b^(1/m); used for HO_BABC_COULOMB_POWERLAW_TSAI/SCHOOF
      Friction coefficient in power law, units of Pa m^(-1/3) yr^(1/3) 
      Default: 1e4 for Greenland, 2e4 for Antarctica
    </desc>
  </entry>

  <entry id="powerlaw_m">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>3.0</value>
    </values>
    <desc>
      Parameters for power law, taub_b = C * u_b^(1/m); used for HO_BABC_COULOMB_POWERLAW_TSAI/SCHOOF
      Exponent in power law (unitless)
      Default: 3.0
    </desc>
  </entry>

  <entry id="powerlaw_c_max">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>1.0e+5</value>
    </values>
    <desc>
      Parameters for power law, taub_b = C * u_b^(1/m); used for HO_BABC_COULOMB_POWERLAW_TSAI/SCHOOF
      Note: These values work well for MISMIP+, but may not be optimal for whole ice sheets. 
      Max value of powerlaw_c, Pa (m/yr)^(-1/3) 
      Default: 1.0e+5
    </desc>
  </entry>

  <entry id="powerlaw_c_min">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">1.0e+2</value>
      <value icesheet="ais" >10.</value>
    </values>
    <desc>
      Parameters for power law, taub_b = C * u_b^(1/m); used for HO_BABC_COULOMB_POWERLAW_TSAI/SCHOOF
      Note: These values work well for MISMIP+, but may not be optimal for whole ice sheets. 
      Max value of powerlaw_c, Pa (m/yr)^(-1/3) 
      Default: 1.0e+2 for Greenland, 10. for Antarctica
    </desc>
  </entry>

  <entry id="inversion_babc_timescale">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>500.0</value>
    </values>
    <desc>
      Parameters for adjusting powerlaw_c_inversion
      Note: inversion_babc_timescale is later rescaled to SI units (s).
      Inversion timescale (yr); must be > 0
      Default: 500.0
    </desc>
  </entry>

  <entry id="inversion_babc_thck_scale">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>100.</value>
    </values>
    <desc>
      Parameters for adjusting powerlaw_c_inversion
      Note: inversion_babc_timescale is later rescaled to SI units (s).
      thickness inversion scale (m); must be > 0
      Default: 100.
    </desc>
  </entry>

  <entry id="beta_powerlaw_umax">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">0.0</value>
      <value icesheet="ais" >5000.</value>
    </values>
    <desc>
      Parameter to limit the min value of beta for various power laws
      Upper limit of ice speed (m/yr) when evaluating powerlaw beta
      Where u > umax, let u = umax when evaluating beta(u).
      Default: 0.0 for Greenland, 5000. for Antarctica
    </desc>
  </entry>

  <entry id="coulomb_c">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value icesheet="gris">0.42</value>
      <value icesheet="ais" >0.50</value>
    </values>
    <desc>
      Parameters for Coulomb friction sliding law (default values from Pimentel et al. 2010)
      Basal stress constant (no dimension)
      Pimentel et al. have coulomb_c = 0.84*m_max, where m_max = coulomb_bump_max_slope
      Default: 0.42 for Greenland, 0.50 for Antarctica
    </desc>
  </entry>

  <entry id="p_ocean_penetration">
    <type>real</type>
    <category>cism_config_parameters</category>
    <group>parameters</group>
    <values>
      <value>0.0</value>
    </values>
    <desc>
      Parameters for reducing the effective pressure where the bed is warm, saturated or connected to the ocean:
      P-exponent parameter for ocean penetration parameterization (unitless, 0 .le. p .le. 1)
      Default: 0.0
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.config: grid_ocn                                   -->
  <!-- =============================================================  -->

  <entry id="nzocn">
    <type>integer</type>
    <category>cism_config_grid_ocn</category>
    <group>grid_ocn</group>
    <values>
      <value icesheet="gris">1</value>
      <value icesheet="ais" >30</value>
    </values>
    <desc>
      Number of ocean levels fields for ISMIP6-style ocean data input
      Must be a positive integer
      Default: 1 for Greenland, 30 for Antarctica
    </desc>
  </entry>

  <entry id="dzocn">
    <type>real</type>
    <category>cism_config_grid_ocn</category>
    <group>grid_ocn</group>
    <values>
      <value icesheet="gris">0.0</value>
      <value icesheet="ais" >60.</value>
    </values>
    <desc>
      Thickness of ocean levels (ISMIP6-style ocean data input); 
      nonzero value set in config file
      Default: 0.0 for Greenland, 60. for Antarctica
    </desc>
  </entry>

  <entry id="nbasin">
    <type>integer</type>
    <category>cism_config_grid_ocn</category>
    <group>grid_ocn</group>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais" >16</value>
    </values>
    <desc>
      Number of basins (= 16 for IMBIE2) for ISMIP6-style ocean data input
      Default: 0 for Greenland, 16 for Antarctica
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: ho_options (higher-order options) -->
  <!-- =============================================================  -->

  <entry id="which_ho_babc">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14</valid_values>
    <values>
      <value icesheet="gris">3</value>
      <value icesheet="ais" >9</value>
    </values>
    <desc>
      Basal boundary condition for higher order dynamical core
      0: spatially uniform value (low value of 10 Pa yr-1 by default)
      1: large value for frozen bed, lower value for bed at pressure melting point
      2: treat beta value as a till yield stress (in Pa) using Picard iteration
      3: pseudo-plastic basal sliding law; can model linear, power-law or plastic behavior
      4: very large value for beta to enforce no slip everywhere
      5: beta field passed in from .nc input file as part of standard i/o
      6: no slip everywhere (using Dirichlet BC rather than large beta)
      7: treat beta value as till yield stress (in Pa) using Newton-type iteration (in development)
      8: beta field as prescribed for ISMIP-HOM test C (serial only)
      9: power law
      10: Coulomb friction law using effective pressure, with flwa from lowest ice layer
      11: Coulomb friction law using effective pressure, with constant basal flwa
      12: basal stress is the minimum of Coulomb and power-law values, as in Tsai et al. (2015)
      13: power law based on effective pressure
      14: simple hard-coded pattern (useful for debugging)
      Default: 3 for Greenland, 9 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_beta_limit">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais" >1</value>
    </values>
    <desc>
      Flag for setting minimum beta beneath grounded ice.
      0: Absolute limit given by beta_grounded_min 
      1: Limited using beta_grounded_min, then multiplied by f_ground
      Default: 0 for Greenland, 1 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_cp_inversion">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais" >1</value>
    </values>
    <desc>
      Flag for basal inversion options: invert for Cp = powerlaw_c
      Note: Cp inversion is currently supported for which_ho_babc = 9 and 11 only
      0: no inversion                                                                             
      1: invert for basal friction parameter Cp                                                   
      2: apply Cp from a previous inversion  
      Default: 0 for Greenland, 1 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_bmlt_basin_inversion">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value icesheet="gris">0</value>
      <value icesheet="ais" >1</value>
    </values>
    <desc>
      Flag for inversion of basin-based basal melting parameters 
      0: no inversion                                                                             
      1: invert for basin-based melting parameters
      2: apply basin-based melting parameters from a previous inversion
      Default: 0 for Greenland, 1 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_bwat">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value icesheet="gris">2</value>
      <value icesheet="ais" >0</value>
    </values>
    <desc>
      Basal water depth
      0: Set to zero everywhere
      1: Set to constant everywhere, to force T = Tpmp.
      2: Local basal till model with constant drainage
      Default: 2 for Greenland, 0 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_effecpress">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2,3,4</valid_values>
    <values>
      <value icesheet="gris">4</value>
      <value icesheet="ais" >3</value>
    </values>
    <desc>
      Flag that describes effective pressure calculation for higher order dynamical core
      0: N = overburden pressure, rhoi*grav*thck
      1: N is reduced where the bed is at or near the pressure melting point
      2: N is reduced where there is melting at the bed
      3: N is reduced due to the connection of subglacial water to the ocean
      4: N is reduced where basal water is present
      Default: 4 for Greenland, 3 for Antarctica
    </desc>
  </entry>

  <entry id="compute_blocks">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      0: Compute on all blocks in the global domain; one task per block 
      1: Compute on active blocks only; one task per active block, no task for some or all inactive blocks
      2: Inquire how many active blocks there are, in prep for resubmitting with option 1
      Default: 0
    </desc>
  </entry>

  <entry id="which_ho_efvs">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>2</value>
    </values>
    <desc>
      How effective viscosity is computed for higher-order dynamical core
      0: constant value
      1: multiple of flow factor
      2: compute from effective strain rate
      Default: 2
    </desc>
  </entry>

  <entry id="which_ho_thermal_timestep">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value icesheet="gris">2</value>
      <value icesheet="ais" >0</value>
    </values>
    <desc>
      0: vertical thermal solve before transport solve
      1: vertical thermal solve after transport solve
      2: vertical thermal solve split; both before and after transport solve
      Default: 2 for Greenland, 0 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_resid">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2,3,4</valid_values>
    <values>
      <value>4</value>
    </values>
    <desc>
      Method for computing residual in Payne/Price dynamical core
      0: maxval
      1: maxval ignoring basal velocity
      2: mean value
      3: L2 norm of system residual, Ax-b=resid
      4: L2 norm of system residual relative to rhs, |Ax-b|/|b|
      Default: 4
    </desc>
  </entry>

  <entry  id="which_ho_disp">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>-1,0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Method for computing the dissipation during the temperature calculation
      -1: no dissipation
      0: 0-order SIA approx.
      1: 1st order solution (e.g., Blatter-Pattyn)
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_sparse" >
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>-1,0,1,2,3</valid_values>
    <values>
      <value>3</value>
    </values>
    <desc>
      Method for solving the sparse linear system that arises from the higher-order solver
      -1: SLAP (serial) Preconditioned conjugate gradient, incomplete Cholesky preconditioner
      0: SLAP (serial) Biconjugate gradient, incomplete LU preconditioner
      1: SLAP (serial) GMRES, incomplete LU preconditioner
      2: Native PCG, parallel-enabled, standard solver
      3: Native PCG, parallel-enabled, Chronopoulos-Gear solver
      (4: UNSUPPORTED: standalone interface to Trilinos)
      Default: 3
    </desc>
  </entry>

  <entry id="which_ho_nonlinear">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Flag that indicates method for solving the nonlinear iteration when solving the first-
      order momentum balance 
      0: Use the standard Picard iteration
      1: Do Picard iteration with acceleration
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_gradient">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>0</value>
    </values>
    <desc>
      Which gradient operator to use in the Glissade dycore.
      Not valid in other dycores.
      NOTE: Upstream may be better for ice evolution because it damps checkerboard noise.
      0: Centered gradient
      1: First-order accurate upstream gradient
      2: Second-order accurate upstream gradient
    </desc>
  </entry>

  <entry id="which_ho_gradient_margin">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      How to compute the gradient at the ice margin in the Glissade dycore.
      Not valid for other dycores.
      Note: Gradients are always computed at edges with ice on both sides.
      The methods differ in whether gradients are computed when an ice-covered cell
      lies above an ice-free cell (land or ocean).
      0: Compute edge gradient when either cell is ice-covered
      1: Compute edge gradient for ice-covered cell above ice-free land (not ocean)
      2: Compute edge gradient only when both cells have ice
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_approx">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>-1,0,1,2,3,4</valid_values>
    <values>
      <value>4</value>
    </values>
    <desc>
      Flag that indicates which Stokes approximation to use with the Glissade dycore.
      Not valid for other dycores.
      -1: Shallow-ice approximation, Glide-type calculation (uses glissade_velo_sia)
      0: Shallow-ice approximation, vertical-shear stresses only (uses glissade_velo_higher)
      1: Shallow-shelf approximation, horizontal-plane stresses only (uses glissade_velo_higher)
      2: Blatter-Pattyn approximation with both vertical-shear and horizontal-plane stresses (uses glissade_velo_higher)
      3: Vertically integrated 'L1L2' approximation with vertical-shear and horizontal-plane stresses (uses glissade_velo_higher)
      4: Depth-integrated viscosity approximation based on Goldberg (2011) (uses glissade_velo_higher)
      Default: 4
    </desc>
  </entry>

  <entry id="which_ho_precond">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2,3,4</valid_values>
    <values>
      <value icesheet="gris">1</value>
      <value icesheet="ais" >3</value>
    </values>
    <desc>
      Flag that indicates which Stokes preconditioner to use in the Glissade dycore.
      Not valid for other dycores.
      0: No preconditioner
      1: Diagonal preconditioner
      2: Physics-based shallow-ice preconditioner
      3: Local tridiagonal preconditioner (one solve per task)
      4: Global tridiagonal preconditioner (global solve)
      Default: 1 for Greenland, 3 for Antarctica
    </desc>
  </entry>

  <entry id="which_ho_assemble_beta">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Flag that describes how beta terms are assembled in the Glissade finite-element calculation
      0: Standard finite-element calculation (which effectively smooths beta)
      1: Apply local value of beta at each vertex
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_assemble_taud">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Flag that describes how driving-stress terms are assembled in the Glissade finite-element calculation
      Not valid for other dycores
      0: Standard finite-element calculation (which effectively smooths the driving stress)
      1: Apply local value of driving stress at each vertex
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_assemble_bfric">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Flag that describes how the basal friction heat flux is computed in the Glissade finite-element calculation
      Not valid for other dycores
      0: Standard finite-element calculation summing over quadrature points
      1: Apply local value of beta*(u^2 + v^2) at each vertex
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_assemble_lateral">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>                                                                                                                
      Flag that describes how lateral stress terms are assembled in the glissade finite-element calculation 
      0: Standard finite-element calculation of thck and usrf at quadrature points
      1: Apply local cell-center value of thck and usrf on each face 
      Default: 1
    </desc>
  </entry>

  <entry id="which_ho_calving_front">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1</valid_values>
    <values>
      <!-- 2017-11-21: Bill Lipscomb says: For Antarctic runs, we'll want to
           set this to 1, for accuracy and stability.  But for Greenland runs
           out of the box, it's OK to use the CISM default of 0, since there's
           no floating ice. -->
      <value>0</value>
    </values>
    <desc>
      Flag that indicates whether to use a subgrid calving front parameterization
      0: No subgrid calving front parameterization
      1: Use subgrid calving front parameterization
      Default: 0
    </desc>
  </entry>

  <entry id="which_ho_ground">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>2</value>
    </values>
    <desc>
      Flag that indicates how the grounded ice fraction is computed in the Glissade dycore
      Not valid for other dycores
      0: f_ground = 0 in floating cells (based on flotation condition), else f_ground = 1
      1: basal friction GLP with 0 .lte. f_ground .lte. 1 at vertices
      2: "deluxe" GLP with f_ground at both cells and vertices; includes both friction and melting
      Default: 0
    </desc>
  </entry>

  <entry id="which_ho_ground_bmlt">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2</valid_values>
    <values>
      <value>1</value>
    </values>
    <desc>
      Flag that indicates how to compute bmlt_float in partly grounded cells
      0: Apply bmlt_float in all floating cells, based on floating_mask 
      1: Do not apply bmlt_float in partly grounded cells
      2: Set bmlt_float = 0 in partly grounded cells (f_ground > 0)
      Default: 0
    </desc>
  </entry>

  <entry id="which_ho_flotation_function">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <valid_values>0,1,2,3</valid_values>
    <values>
      <value>3</value>
    </values>
    <desc>
      Flag that indicates how to compute the flotation function at and near vertices in the Glissade dycore
      Not valid for other dycores
      Only applicable for which_ho_ground=1
      0: f_flotation = (-rhow*b/rhoi*H) = f_pattyn; &lt;=1 for grounded, &gt; 1 for floating
      1: f_flotation = (rhoi*H)/(-rhow*b) = 1/f_pattyn; &gt;=1 for grounded, &lt; 1 for floating
      2: f_flotation = -rhow*b - rhoi*H = ocean cavity thickness; &lt;=0 for grounded, &gt; 0 for floating
      3: Modified version of (2), without extrapolation to ice-free ocean
      Default: 2
    </desc>
  </entry>

  <entry id="glissade_maxiter">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <values>
      <value>50</value>
    </values>
    <desc>
      Maximum number of nonlinear iterations to be used by the Glissade velocity solver
      Default: 50
    </desc>
  </entry>

  <entry id="linear_solve_ncheck">
    <type>integer</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <values>
      <value icesheet="gris">5</value>
      <value icesheet="ais" >10</value>
    </values>
    <desc>
      Check the linear solver for convergence every linear_solve_ncheck iterations.
      Default: 5 for Greenland, 10 for Antarctica
    </desc>
  </entry>

  <entry id="block_inception">
    <type>logical</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      Flag that indicates whether ice inception away from the main ice sheet is blocked
      Default: false
    </desc>
  </entry>

  <entry id="remove_ice_caps">
    <type>logical</type>
    <category>cism_config_ho_options</category>
    <group>ho_options</group>
    <values>
      <value>.false.</value>
    </values>
    <desc>
      Flag that indicates whether ice caps are removed and added to the calving flux
      Default: false
    </desc>
  </entry>

  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: GTHF (geothermal heat flux)       -->
  <!-- =============================================================  -->

  <!-- This group is only relevant if gthf = 2 (calculate using 3d diffusion) -->

  <entry id="num_dim" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <valid_values>1,3</valid_values>
    <desc>
      1: 1D calculations
      3: 3D calculations
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 1)
    </desc>
  </entry>

  <entry id="nlayer" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      Number of vertical layers
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 20)
    </desc>
  </entry>

  <entry id="surft" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      Initial surface temperature (degrees C)
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 2.)
    </desc>
  </entry>

  <entry id="rock_base" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      Depth below sea-level at which geothermal heat gradient is applied (m)
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently -5000.)
    </desc>
  </entry>

  <entry id="numt" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      Number of time steps for spinning up GTHF calculations
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 0)
    </desc>
  </entry>

  <entry id="rho" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      Density of lithosphere (kg m-3)
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 3300.)
    </desc>
  </entry>

  <entry id="shc" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      Specific heat capacity of lithosphere (J kg-1 K-1)
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 1000.)
    </desc>
  </entry>

  <entry id="con" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_gthf</category>
    <group>gthf</group>
    <desc>
      thermal conductivity of lithosphere (W m-1 K-1)
      Only relevant if gthf = 2
      Default: (use hard-coded default - currently 3.3)
    </desc>
  </entry>


  <!-- =============================================================  -->
  <!-- group: cism.icesheet.config: isostasy                          -->
  <!-- =============================================================  -->

  <!-- This group is only relevant if isostasy = 1 -->

  <entry id="whichrelaxed" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_isostasy</category>
    <group>isostasy</group>
    <valid_values>0,1,2</valid_values>
    <desc>
      0: relaxed topography is read from a separate variable
      1: first time slice of input topography is assumed to be relaxed
      2: first time slice of input topography is assumed to be in isostatic equilibrium with ice thickness
      Default: (use hard-coded default - currently 0)
    </desc>
  </entry>

  <entry id="lithosphere" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_isostasy</category>
    <group>isostasy</group>
    <valid_values>0,1</valid_values>
    <desc>
      0: local lithosphere, equilibrium bedrock depression is found using Archimedes' principle
      1: elastic lithosphere, flexural rigidity is taken into account
      Only relevant if isostasy = 1
      Default: (use hard-coded default - currently 1)
    </desc>
  </entry>

  <entry id="asthenosphere" skip_default_entry="true">
    <type>integer</type>
    <category>cism_config_isostasy</category>
    <group>isostasy</group>
    <valid_values>0,1</valid_values>
    <desc>
      0: fluid mantle, isostatic adjustment happens instantaneously
      1: relaxing mantle, mantle is approximated by a half-space
      Only relyvant if isostasy = 1
      Default: (use hard-coded default - currently 1)
    </desc>
  </entry>

  <entry id="relaxed_tau" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_isostasy</category>
    <group>isostasy</group>
    <desc>
      Characteristic time constant of relaxing mantle (years)
      Only relevant if isostasy = 1
      Default: (use hard-coded default - currently 4000.)
    </desc>
  </entry>

  <entry id="lithosphere_period" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_isostasy</category>
    <group>isostasy</group>
    <desc>
      Lithosphere update period (years)
      Only relevant if isostasy = 1
      Default: (use hard-coded default - currently 100.)
    </desc>
  </entry>

  <entry id="flexural_rigidity" skip_default_entry="true">
    <type>real</type>
    <category>cism_config_isostasy</category>
    <group>isostasy</group>
    <desc>
      Flexural rigidity of the lithosphere
      Only relevant if 'lithosphere' is set to 1
      Default: (use hard-coded default - currently 0.24e25)
    </desc>
  </entry>

</entry_id>
