Back to home page

darwin3

 
 

    


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