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

(*)Use summed thicknesses in OBC wave speed #1470

Merged
merged 14 commits into from
Aug 23, 2021

Conversation

Hallberg-NOAA
Copy link
Collaborator

(*)Use summed thicknesses in OBC wave speed

Changed the calculation of the external mode gravity wave speed used by the
radiation open boundary conditions and in the Kelvin-wave test case to use the
summed layer thicknesses rather than bathyT. This change will prevent taking
the square root of negative thicknesses, even if there is wetting and drying so
some of the bathymetry is above the mean sea level, and it is more physically
accurate. This PR will at least partly address MOM6 issue #1447. Some
solutions will exhibit changing answers, including the barotropic Kelvin wave
test case, but after a broad discussion it was decided not to reproduce the
previous solutions with a runtime parameter.

This single-commit PR builds on PR#1469, and should only be dealt with after
that one is merged into dev/gfdl.

  Added an optional dZref argument to the two find_eta routines so that the
bathymetry can use a different reference height than is used for the interface
heights.  By default, they use the same reference height and all answers are
bitwise identical.  There is a new optional arguments (that is not yet being
exercised with this commit, but has been tested and will be used in an upcoming
commit) to two publicly visible interfaces.
  Eliminated the depth argument to check_grid_column, along with some internal
calculations that are never used.  Also corrected some comments.  All answers
are bitwise identical.
  Lengthened a message string in get_polynomial_coordinate so that it will give
a valid fatal error message in some cases of failures rather than resulting a
segmentation fault with no message output.  All answers are bitwise identical.
  Added an optional Z_0p argument to the various Boussinesq density integral
routines as a new intercept for the linear expression between the (arbitrary)
interface heights and pressure used for the equation of state routines.  If
omitted, this is equivalent to setting this intercept to 0, and all answers are
bitwise identical.  There are new optional arguments to several publicly visible
interfaces (that are not yet being exercised with this commit, but have been
tested and will be used in an upcoming commit).
  Corrected error messages to indicate the right subroutine in
rescale_dyn_horgrid_bathymetry.  All answers are bitwise identical.
  Added the optional argument dZ_ref_eta to adjustEtaToFitBathymetry so that the
bathymetry can use a different reference height than is used in this routine.
Also changed the name and reversed the sign of the depth (now Z_bot) argument to
find_interfaces, and a new Z_bottom array in MOM_temp_salt_initialize_from_Z.
An extra unit conversion factor was eliminated from MOM_state_init_tests.  All
answers are bitwise identical, and all of these changes are internal to this
module.
  Extensive inconsequential cleanup in MOM_ALE_sponge.F90, including the
elimination of a dozen unnecessary index-range elements of the ALE_sponge_CS and
modifying a number of comments to be much more descriptive.  This included the
correction of numerous spelling errors and other typos in comments.  All answers
are bitwise identical.
  Corrected dimensional inconsistencies in the negligible thicknesses in the
denominators of the expressions for the topographic betas in MEKE_equilibrium
and MEKE_lengthScales.  This could change answers in strange cases, but seems
unlikely to do so (partly because it is in a max expression, and not added), and
did not change any answers in the MOM6-examples test suite.
  Added comments denoted with "###" indicating bugs or conceptual errors in
update_OBC_segment_data, horizontal_viscosity, thickness_diffuse and wave_speed.
Only comments and the case of some indices are changed in this commit, and all
answers are bitwise identical.  Actually correcting these bugs would probably
change answers in some cases.
  Added depth_tot arguments to explicitly pass the total depth to various
initialization routines for the thicknesses, sponges, or temperatures.  These
routines had previously used G%bathT for this role, but this change prepares to
allow the reference depth for the bathymetry to change without requiring these
routines to be changed to accommodate it.  All answers are bitwise identical,
but there are new arguments to about two dozen routines.
  Added a new argument, depth_tot, to three routines within MOM_MEKE.F90 to
replace places where G%bathyT had been used.  This new depth_tot variable is
currently set to G%bathyT, but there is commented-out code suggesting a more
appropriate expression based on the temporally evolving total thickness of
the water column.  All answers are bitwise identical, but there are new
arguments to 3 private routines.
  Changed the calculation of the external mode gravity wave speed used by the
radiation open boundary conditions and in the Kelvin-wave test case to use the
summed layer thicknesses rather than bathyT.  This change will prevent taking
the square root of negative thicknesses, even if there is wetting and drying so
some of the bathymetry is above the mean sea level, and it is more physically
accurate.  This PR will at least partly address MOM6 issue mom-ocean#1447.  Some
solutions will exhibit changing answers, including the barotropic Kelvin wave
test case, but after a broad discussion it was decided not to reproduce the
previous solutions with a runtime parameter.
@codecov
Copy link

codecov bot commented Aug 18, 2021

Codecov Report

Merging #1470 (00ea6c7) into dev/gfdl (a29bff9) will increase coverage by 0.01%.
The diff coverage is 16.60%.

Impacted file tree graph

@@             Coverage Diff              @@
##           dev/gfdl    #1470      +/-   ##
============================================
+ Coverage     29.12%   29.13%   +0.01%     
============================================
  Files           235      235              
  Lines         71045    71061      +16     
============================================
+ Hits          20694    20707      +13     
- Misses        50351    50354       +3     
Impacted Files Coverage Δ
src/ALE/MOM_regridding.F90 21.45% <0.00%> (+0.09%) ⬆️
src/ALE/regrid_interp.F90 1.41% <ø> (ø)
src/core/MOM_open_boundary.F90 20.00% <0.00%> (ø)
src/diagnostics/MOM_wave_speed.F90 23.68% <0.00%> (ø)
src/framework/MOM_dyn_horgrid.F90 62.68% <0.00%> (ø)
src/parameterizations/lateral/MOM_hor_visc.F90 43.07% <0.00%> (ø)
...arameterizations/lateral/MOM_thickness_diffuse.F90 31.52% <0.00%> (ø)
src/user/BFB_initialization.F90 0.00% <0.00%> (ø)
src/user/DOME2d_initialization.F90 0.00% <0.00%> (ø)
src/user/DOME_initialization.F90 0.00% <0.00%> (ø)
... and 22 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a29bff9...00ea6c7. Read the comment docs.

@kshedstrom
Copy link
Collaborator

I approve this PR. So many changes!

@marshallward
Copy link
Collaborator

Gaea regression: https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/13429 ✔️

@marshallward marshallward merged commit 817217e into mom-ocean:dev/gfdl Aug 23, 2021
@Hallberg-NOAA Hallberg-NOAA deleted the OBC_cg_depth_fix branch November 22, 2021 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants