-
Notifications
You must be signed in to change notification settings - Fork 237
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
(*)Use summed thicknesses in OBC wave speed #1470
Conversation
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 Report
@@ 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
Continue to review full report at Codecov.
|
I approve this PR. So many changes! |
Gaea regression: https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/13429 ✔️ |
(*)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.