Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add temperature and salinity to ocean extrapolation #124

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

alexolinhager
Copy link

Makes edits to the existing ocean thermal forcing extrapolation framework so that either user can choose to either extrapolate ocean thermal forcing, or ocean temperature and salinity. If the case of the latter, ocean thermal forcing is then recalculated following extrapolation according to the method declared in the namelist files (<< add those options here once code is written >>). Temperature and salinity will be extrapolated instead of thermal forcing is config_recalculate_thermal_forcing is set to .true..

cshafer and others added 6 commits August 27, 2024 15:27
…nd added check for invalid TF values"

This reverts commit 93c7ad7.
This commit makes adjustments to how the seafloor and inland seas
(locations below sea level not connected to the global ocean) are
handled for extraplation.  The adjustments are applied primarily to
availOceanMask, which is the mask of to where ocean data should be
extrapolated.

Changes made:
* Adjust availOceanMask to extend one layer below the seafloor (needed
  so that facemelting has a valid value one level below the seafloor for
  interpolation to the seafloor elevation)
   * to support this, generate error if ismip6shelfMelt_zBndsOcean is
     not populated, because that field is needed for the seafloor
     detection
* Adjust availOceanMask to ignore inland seas - we will not attempt to flood
  fill into areas below sea level that are not connected to the open
  ocean.
   * to support this, create mask of marine locations connected to global open ocean
* Adjustment to where invalid values are assigned to avoid inserting
  them in inland seas.  This will give inland seas either the value from the ocean
  data if it exists, or else TF=0
Eliminates 100s of repetitive log messages per timestep
Makes changes to mpas_li_ocean_extrap.F to enable the choice to either
extrapolate thermal forcing (original implementation) or extrapolate
both ocean salinity and temperature. In the latter case, thermal forcing
will eventually be recalculated after the extrapolation process. The
option to extrapolate salt/temp is activated by setting
config_recalculate_thermal_forcing to true.
@alexolinhager alexolinhager added the in progress Still being worked on, don't merge yet! label Sep 9, 2024
@@ -165,7 +167,7 @@ subroutine li_ocean_extrap_solve(domain, err)
do iter = 1, nCellsExtra
do iCell = 1, nCellsSolve
if ( growOceanMaskHoriz(iCell) == 1 .and. seedOceanMaskHorizOld(iCell) == 0 ) then
do iNeighbor = 1, nEdgesOnCell(iCell)
do iNeighbor /TFoce= 1, nEdgesOnCell(iCell)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this a typo?

Add recalculate_thermal_forcing subroutine to ocean extrapolation. By
setting config_recalculate_thermal_forcing to true, the user can now
choose to calculate thermal forcing at the glacier face using any of the
methods outlined in Hager et al. (2024). If
config_recalculate_thermal_forcing is false then MALI will default to
using the extrapolated version of ismip6shelfMelt_3dThermalForcing from
the input file.
@alexolinhager alexolinhager force-pushed the alexolinhager/add_salt_temp_extrapolation branch from 3f6736d to 735add8 Compare September 25, 2024 21:19
Moves consolidation of 3d thermal forcing profiles into 2d scalars, previously done in
mpas_li_ocean_extrap.F, to mpas_li_iceshelf_melt.F. This is done to be consistent with MALI
configurations that do not use the ocean extrapolation framework.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress Still being worked on, don't merge yet!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants