Skip to content

Commit

Permalink
Merge branch 'xylar/ocn/init-land-ice-pressure-from-topo' (PR #6375)
Browse files Browse the repository at this point in the history
Update global ocean init mode for meshes with ice-shelf cavities

This merge updates MPAS-Ocean init mode for global_ocean in several ways
that are critical for initialization that is compatible with planned
coupling to MALI:
* The fields landIcePressure, landIceDraft and ssh are now read from a
  topography file. This means that landIcePressure is no longer computed
  based on the density at the ocean surface in init mode. Similarly, ssh
  is not required to be the same as landIceDraft.
* Support is removed for reading land-ice topography fields from a
  dataset on a lat-lon grid. We no longer use this capability and
  maintaining it is not worth the effort.
* The land-ice topography data set is now required to have
  landIceFloatingFracObserved as a field, and this is used to set
  landIceFloatingFraction. Previously, landIceFracObserved was being
  used to compute both landIceFraction and landIceFloatingFraction
  (assuming no grounded ice in the domain).
* We no longer set landIceFraction and landIceFloatingFraction to zero
  when landIceMask and landIceFloatingMask, respectively, are zero. This
  is in order to allow melting in cells that are less than 50% land ice
  in order to better support conservation between ice sheet and ocean.
* In addition, we use sshAdjustmentMask instead of landIceMask as the
  starting point for smoothing mask used to produce the Haney-number
  vertical coordinate. This is needed because otherwise locations with
  nonzero ice draft get missed and the Haney number may be too high for
  model stability.

[BFB] mpas-ocean standalone feature
  • Loading branch information
jonbob committed Jun 25, 2024
2 parents 752f281 + 266c9d6 commit 31f771c
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 371 deletions.
4 changes: 2 additions & 2 deletions components/mpas-ocean/src/Registry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2934,8 +2934,8 @@
<var name="pressure" type="real" dimensions="nVertLevels nCells Time" units="N m^-2"
description="pressure used in the momentum equation"
/>
<var name="modifyLandIcePressureMask" type="integer" dimensions="nCells Time"
description="A mask indicating where landIcePressure can be modified during iterative init. The mask is 1 under (and perhaps near) ice shelves and 0 elsewhere."
<var name="sshAdjustmentMask" type="integer" dimensions="nCells Time"
description="A mask indicating where ssh or landIcePressure can be modified during iterative init. The mask is 1 under (and perhaps near) ice shelves and 0 elsewhere."
packages="initMode"
/>
<var name="normalTransportVelocity" type="real" dimensions="nVertLevels nEdges Time" units="m s^-1"
Expand Down
49 changes: 6 additions & 43 deletions components/mpas-ocean/src/mode_init/Registry_global_ocean.xml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@
possible_values="Any real positive number."
/>
<nml_option name="config_global_ocean_topography_source" type="character" default_value="latlon_file" units="unitless"
description="If 'latlon_file', reads in topography from file specified in config_global_ocean_topography_file. If 'mpas_variable', reads in topography from mpas variable bed_elevation, and optionally oceanFracObserved, landIceDraftObserved, landIceThkObserved, landIceFracObserved, and landIceGroundedFracObserved"
description="If 'latlon_file', reads in topography from file specified in config_global_ocean_topography_file. If 'mpas_variable', reads in topography from mpas variable bed_elevation, and optionally oceanFracObserved, landIceDraftObserved, landIceThkObserved, landIceFracObserved, and landIceFloatingFracObserved"
possible_values="'latlon_file' or 'mpas_variable'"
/>
<nml_option name="config_global_ocean_topography_file" type="character" default_value="none" units="unitless"
Expand Down Expand Up @@ -199,46 +199,6 @@
description="Logical flag that controls if sea surface pressure and layer thicknesses should be altered by an overlying ice sheet/shelf."
possible_values=".true. or .false."
/>
<nml_option name="config_global_ocean_land_ice_topo_file" type="character" default_value="none" units="unitless"
description="Path to the land ice topography initial condition file."
possible_values="path/to/land_ice_topography/file.nc"
/>
<nml_option name="config_global_ocean_land_ice_topo_nlat_dimname" type="character" default_value="none" units="unitless"
description="Dimension name for the latitude in the land ice topography file."
possible_values="Dimension name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_nlon_dimname" type="character" default_value="none" units="unitless"
description="Dimension name for the longitude in the land ice topography file."
possible_values="Dimension name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_latlon_degrees" type="logical" default_value=".true." units="unitless"
description="Logical flag that controls if the Lat/Lon fields for land ice topography should be converted to radians. True means input is degrees, false means input is radians."
possible_values=".true. or .false."
/>
<nml_option name="config_global_ocean_land_ice_topo_lat_varname" type="character" default_value="none" units="unitless"
description="Variable name for the latitude in the land ice topography file."
possible_values="Variable name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_lon_varname" type="character" default_value="none" units="unitless"
description="Variable name for the longitude in the land ice topography file."
possible_values="Variable name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_thickness_varname" type="character" default_value="none" units="unitless"
description="Variable name for the land ice thickness in the land ice topography file."
possible_values="Variable name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_draft_varname" type="character" default_value="none" units="unitless"
description="Variable name for the land ice draft in the land ice topography file."
possible_values="Variable name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_ice_frac_varname" type="character" default_value="none" units="unitless"
description="Variable name for the land ice fraction in the land ice topography file."
possible_values="Variable name from input file."
/>
<nml_option name="config_global_ocean_land_ice_topo_grounded_frac_varname" type="character" default_value="none" units="unitless"
description="Variable name for the grounded land ice fraction in the land ice topography file."
possible_values="Variable name from input file."
/>
<nml_option name="config_global_ocean_use_constant_land_ice_cavity_temperature" type="logical" default_value=".false." units="unitless"
description="Logical flag that controls if ocean temperature in land-ice cavities is set to a constant temperature."
possible_values=".true. or .false."
Expand Down Expand Up @@ -397,14 +357,17 @@
<var name="landIceDraftObserved" type="real" dimensions="nCells" units="m"
description="z-coordinate of land ice bottom, read in from data file"
/>
<var name="landIcePressureObserved" type="real" dimensions="nCells" units="m"
description="Pressure of land ice on the ocean surface, read in from data file"
/>
<var name="landIceThkObserved" type="real" dimensions="nCells" units="m"
description="Thickness of land ice, read in from data file"
/>
<var name="landIceFracObserved" type="real" dimensions="nCells" units="unitless"
description="Fraction of land ice, read in from data file"
/>
<var name="landIceGroundedFracObserved" type="real" dimensions="nCells" units="unitless"
description="Fraction of grounded land ice, read in from data file"
<var name="landIceFloatingFracObserved" type="real" dimensions="nCells" units="unitless"
description="Fraction of floating land ice, read in from data file"
/>
</var_struct>
<var_struct name="criticalPassages" time_levs="1" mode="init" packages="criticalPassages">
Expand Down
Loading

0 comments on commit 31f771c

Please sign in to comment.