Warning, /doc/phys_pkgs/remesh.rst is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit 39fa6219 on 2021-07-19 16:01:45 UTC
08815fc806 Jeff*0001 .. _sub_phys_remesh:
0002
0003 SHELFICE Remeshing
0004 ******************
0005
0006 Author: James Jordan and Daniel Goldberg
0007
0008 .. _ssub_phys_remesh_intro:
0009
0010 Introduction
0011 ============
0012
0013 This code works the nonlinear free surface feature of the ocean
0014 model to allow continuous updating of the ice shelf draft in a mass-, salt- and heat-conservative fashion.
0015 Note 'Shelfice Remeshing' is not a separate physical package as such, but works in conjunction
0016 with :filelink:`pkg/shelfice`, and all code is contained within :filelink:`pkg/shelfice`.
0017 However, as a separate line of development its application and use warrants
0018 its own entry in the documentation.
0019 By using :filelink:`pkg/streamice` at the same time, remeshing can allow synchronous coupling between ocean and ice shelf.
0020
0021 .. _ssub_phys_remeshing_config:
0022
0023 REMESHING configuration and compiling
0024 =====================================
0025
0026 Compile-time options
0027 --------------------
0028
0029 Shelfice remeshing requires that :filelink:`pkg/shelfice` be enabled, which is done by adding ``shelfice`` to ``packages.conf``
0030 (see Section :numref:`building_code`). Nonlinear free surface is required, which is enabled by adding ``#define`` :varlink:`NONLIN_FRSURF`
0031 to :filelink:`CPP_OPTIONS.h <model/inc/CPP_OPTIONS.h>`. Additionally,
0032
0033 - ``#define`` :varlink:`ALLOW_SHELFICE_REMESHING` must be added to :filelink:`SHELFICE_OPTIONS.h <pkg/shelfice/SHELFICE_OPTIONS.h>`;
0034
0035 - If :varlink:`SHI_ALLOW_GAMMAFRICT` is defined in :filelink:`SHELFICE_OPTIONS.h <pkg/shelfice/SHELFICE_OPTIONS.h>`
0036 we recommend also setting run-time parameter :varlink:`SHI_withBL_uStarTopDz` to ``.true.``, which will limit spurious features
0037 in the melt rate as explained in :numref:`ssub_phys_remesh_topdr`.
0038
0039 .. _ssub_phys_remeshing_runtime:
0040
0041 Run-time parameters
0042 ===================
0043
0044 :numref:`tab_phys_remeshing_runtimeparms` lists run-time parameters in ``data.shelfice`` relevant
0045 to shelfice remeshing. In addition, :varlink:`nonlinFreeSurf`\ ``=4`` should be set, and :varlink:`select_rstar` should be zero (the model default) in file ``data``.
0046
0047 .. table:: Run-time parameters and default values
0048 :name: tab_phys_remeshing_runtimeparms
0049
0050 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0051 | Name | Default value | Description |
0052 +=======================================+==============================+==========================================================================================================================+
0053 | :varlink:`SHI_withBL_realFWflux` | FALSE | Necessary for mass/volume-conservative freezing/melting when :varlink:`SHELFICEboundaryLayer` ``= .true.`` |
0054 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0055 | :varlink:`SHI_withBL_uStarTopDz` | FALSE | With :varlink:`SHELFICEboundaryLayer` ``= .true.`` compute :math:`u^*` from uVel,vVel |
0056 | | | averaged over top :math:`\Delta z` thickness |
0057 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0058 | :varlink:`SHELFICEmassFile` | :kbd:`' '` | Initialization file for ice shelf mass (kg m\ :sup:`-2`) |
0059 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0060 | :varlink:`SHELFICEMassStepping` | FALSE | Enables ice mass to change in time |
0061 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0062 | :varlink:`SHELFICEMassDynTendFile` | :kbd:`' '` | Input file to specify non-thermodynamic ice mass change rate in kg/s (overridden when :filelink:`pkg/streamice` enabled) |
0063 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0064 | :varlink:`SHELFICEDynMassOnly` | FALSE | Update :varlink:`shelficeMass` via non-thermodynamic change only (overridden when :filelink:`pkg/streamice` enabled |
0065 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0066 | :varlink:`SHELFICERemeshFrequency` | 2592000 | Frequency of remeshing operation (seconds) |
0067 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0068 | :varlink:`SHELFICESplitThreshold` | 1.25 | Maximum allowed :varlink:`hFacC` for a cell |
0069 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0070 | :varlink:`SHELFICEMergeThreshold` | 0.26 | Minimum allowed :varlink:`hFacC` for a cell |
0071 +---------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------+
0072
0073 .. _ssub_phys_remesh_descr:
0074
0075 Description
0076 ===========
0077
0078 When :filelink:`pkg/shelfice` is enabled, the elevation of the free surface in a grid cell is
39fa6219cc Oliv*0079 determined by the mass of the ice shelf in that cell, see Jordan et al. (2018)
0080 :cite:`jordan:18`. In general use of :filelink:`shelfice <pkg/shelfice>`
08815fc806 Jeff*0081 this mass is held constant, but if it is allowed to change the free surface adjusts if :varlink:`implicitFreeSurface` ``= .true.``
0082 through adjustment of the thickness of the top-level cell (:numref:`figremesh1`). If :varlink:`nonlinFreeSurf`\ ``=4``
0083 these changes are fully accounted for in the ocean dynamics and tracer transport. However:
0084
0085 - in the case of ice thinning, the numerical approximation to the governing equations will break down if the top-level cell becomes too thick, and
0086
0087 - in the case of ice thickening, the top-level cell thickness cannot become negative or the model will fail.
0088
0089 Remeshing addresses these issues. At predefined intervals (set by :varlink:`SHELFICERemeshFrequency`),
0090 the code checks every column and flags those where the top-level cell is too thick (:math:`h_c` is
0091 larger than :varlink:`SHELFICESplitThreshold`) or where it is too thin (:math:`h_c` is smaller
0092 than :varlink:`SHELFICEMergeThreshold`). In the former case, the cell is split into two cells as described
0093 in :numref:`figremesh2`. In the latter case, the top cells is "merged" with the one below it. In both cases,
0094 splitting and merging conserves mass, heat, and salt. Momentum is conserved where possible but
0095 this is more difficult because velocities live at cell edges.
0096
0097 Ice shelf basal melt and freezing add and remove water from the ocean. :varlink:`useRealFreshWaterFlux`\ ``= .true.`` will cause
0098 the ocean volume to be updated - unless :varlink:`SHELFICEboundaryLayer`\ `` = .true.``, which inputs heat
0099 and salt fluxes over a distance :math:`\Delta z` from the ice-ocean interface, instead of inputting directly
0100 into the top cell (:numref:`figremesh1`). In this case, an additional option :varlink:`SHI_withBL_realFWflux`\ ``=.true.``
0101 can be set in ``data.shelfice`` to allow volume conservation.
0102
0103 .. figure:: figs/remesh1.*
0104 :width: 80%
0105 :align: center
0106 :alt: Remeshing schematic 1
0107 :name: figremesh1
0108
0109 Schematic representation of (a) reference ice-shelf depth, d, vertical position of the ice-ocean interface, :math:`z_{surf}`,
0110 and the distance between the two, :math:`\eta`, and (b) the extent of the ice-shelf boundary layer used to calculate velocities,
0111 Bv (red), and tracers, B :math:`_\chi` (blue), used in the melt rate calculation.
0112 The model grid is represented by dashed lines with the actual sizeof the cells represented by the solid lines.
0113
0114 .. figure:: figs/remesh2.*
0115 :width: 80%
0116 :align: center
0117 :alt: Remeshing schematic 2
0118 :name: figremesh2
0119
0120 Schematic representation of dimensionless vertical grid size, :math:`h_c`, and reference ice-shelf depth, `d`,
0121 at i=2 in (a) a "normal" case, (b) a cell with :math:`h_c` > :math:`h_{max}` at i=2, k=2 just before a model
39fa6219cc Oliv*0122 remesh check, and (c) the same cell just after a model remesh has occurred.
08815fc806 Jeff*0123
0124 .. _ssub_phys_remesh_topdr:
0125
0126 Alternate boundary layer formulation
0127 ====================================
0128
0129 If :varlink:`SHELFICEboundaryLayer`\ ``= .true.``, then salt and temperature are averaged over a distance :math:`\Delta z`
0130 from the ice-ocean interface in order to calculate melt rates, as described in Losch (2008) :cite:`losch:08`.
0131 When :varlink:`SHI_ALLOW_GAMMAFRICT` is defined and :varlink:`SHELFICEuseGammaFrict`\ ``= .true.``,
0132 near-ice velocities are used to calculate exchange coefficients of heat and salt, which can lead to spurious
0133 features where there is a change in the level of the top fluid cell. In the default formulation velocities
0134 (or rather square velocities) are first averaged horizontally from cell faces to cell centers, and then
0135 vertically over a distance :math:`\Delta z`. The run-time parameter :varlink:`SHI_withBL_uStarTopDz`\ ``= .true.`` reverses
0136 this order: velocities are first averaged vertically, and then horizontally. In some cases this has been found
0137 to give less spurious variability, but either can be used.
0138
0139 Coupling with :filelink:`pkg/streamice`
0140 =======================================
0141
0142 Shelfice remeshing can be used on its own (i.e. without coupling to an ice sheet model), with the effects of ice
0143 dynamics specified via :varlink:`SHELFICEMassDynTendFile`. Alternatively it can be coupled to the :varlink:`pkg/streamice`.
0144 To allow this, :varlink:`pkg/streamice` must be enabled. Please see the :filelink:`verification/shelfice_2d_remesh` for an example. (Documentation on SHELFICE is under construction)
0145
0146 .. Sea level restoring
0147 .. ===================
0148
0149 .. When the grounded part of an ice sheet represented by ``STREAMICE`` or the calved mass of an ice shelf is not accounted for,
0150 .. the amount of water displaced by the ice changes, which could lead to sea level change in open ocean. The latter of these is
0151 .. the case in the shelfice_remeshing verification experiment. In a small domain, this has large effects on open-ocean sea level.
0152 .. If these effects are unwanted, the ``conserve_ssh`` flag can be used. This feature takes advantage of the balance feature
0153 .. of the OBCS (:numref:`sub_phys_pkg_obcs`) package. To use this, OBCS must be enabled, as well as the CPP directive ``OBCS_BALANCE_FLOW``
0154 .. and the runtime parameter ``useOBCSbalance`` must be set to .TRUE. This remeshing feature calculates at each time step
0155 .. the average sea level :math:`z_{sl}` of non-ice shelf covered ocean, and the OBCS balance flow then acts as if there is an
0156 .. additional flux of :math:`\frac{z_{sl}}{\Delta t}` into the domain which must be balanced.
0157
0158 Diagnostics
0159 ===========
0160
0161 In addition to the diagnostics from :filelink:`pkg/SHELFICE`, remeshing adds one additional diagnostic: ``SHIRshel``,
0162 the "reference" elevation of the ice shelf base (`d` in :numref:`figremesh1`).
0163
0164 Experiments that use Remeshing
0165 ==============================
0166
0167 - :filelink:`verification/shelfice_2d_remesh`
0168