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 actual density for internal tide bottom drag #415

Merged

Conversation

Hallberg-NOAA
Copy link
Member

This PR consists of a set of commits that calculates the actual density averaged over a near-bottom region when in non-Boussinesq mode via the new subroutine find_rho_bottom, and then uses this calculate the bottom drag experienced by the internal tides. As a part of this, there are new arguments to propagate_int_tide, itidal_lowmode_loss and find_N2_bottom, and changes to the units of a handful of internal variables, as well as a new array in the transparent int_tide_input_type.

All answers are bitwise identical in Boussinesq mode, but some solutions will change in non-Boussinesq mode with this change, and there are new arguments to publicly visible subroutines and a new element in a transparent type.

The commits in this PR include:

  • c0e9b26b6 +*Non-Boussinesq internal tide drag uses density
  • e62a930c6 +Add find_rho_bottom

  Added the new subroutine find_rho_bottom to return a 1-d slice of the in situ
density averaged over a specified distance from the bottom when in fully non-
Boussinesq mode or an array filled with the Boussinesq reference density.  This
new routine is not yet used with this commit, but it has been tested in another
commit that will follow shortly.  All answers are bitwise identical, but there
is a new public interface.
  Use the in situ near bottom density to calculate the internal tide drag,
energy input and energy loss terms when in non-Boussinesq mode.  This change
includes the addition of an argument containing the near-bottom density to
propagate_int_tide, itidal_lowmode_loss and find_N2_bottom.  The recently added
routine find_rho_bottom is used to calculate this near-bottom density.

  Several instances where the Boussinesq reference density or GV%Z_to_H were
used have been eliminated from use in non-Boussinesq cases by this change,  to
simplify the code and reduce the dependence on the value of GV%Rho_0 in
non-Boussinesq mode.  This involved changing the units of 4 internal variables
in find_N2_bottom to use thickness units or related units.  In some places,
GV%Rho0 was replaced with GV%H_to_RZ.  It also includes the rescaling of a
variable in int_tide_CS, and a new element with the bottom drag in the
int_tide_input_type.

 All answers are bitwise identical in Boussinesq mode, but some solutions will
change in non-Boussinesq mode with this change, and there are new arguments to
publicly visible subroutines and a new element in a transparent type.
@Hallberg-NOAA Hallberg-NOAA added enhancement New feature or request answer-changing A change in results (actual or potential) labels Jul 20, 2023
@codecov
Copy link

codecov bot commented Jul 20, 2023

Codecov Report

Merging #415 (41bf342) into dev/gfdl (8f5465b) will increase coverage by 1.14%.
The diff coverage is 0.00%.

❗ Current head 41bf342 differs from pull request most recent head 4666feb. Consider uploading reports for the commit 4666feb to get more accurate results

@@             Coverage Diff              @@
##           dev/gfdl     #415      +/-   ##
============================================
+ Coverage     36.95%   38.10%   +1.14%     
============================================
  Files           266      269       +3     
  Lines         75765    76901    +1136     
  Branches      14122    14151      +29     
============================================
+ Hits          28001    29302    +1301     
+ Misses        42428    42314     -114     
+ Partials       5336     5285      -51     
Files Changed Coverage Δ
src/core/MOM_interface_heights.F90 21.68% <0.00%> (-7.04%) ⬇️
...c/parameterizations/lateral/MOM_internal_tides.F90 0.00% <0.00%> (ø)
...parameterizations/vertical/MOM_diabatic_driver.F90 46.60% <0.00%> (ø)
...meterizations/vertical/MOM_internal_tide_input.F90 0.00% <0.00%> (ø)

... and 9 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

Copy link

@raphaeldussin raphaeldussin left a comment

Choose a reason for hiding this comment

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

All units check out.

Copy link
Member

@marshallward marshallward left a comment

Choose a reason for hiding this comment

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

Approving on behalf of @raphaeldussin

@marshallward
Copy link
Member

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

@marshallward marshallward merged commit e4f76c0 into NOAA-GFDL:dev/gfdl Jul 31, 2023
10 checks passed
@Hallberg-NOAA Hallberg-NOAA deleted the nonBous_internal_tide_input branch November 8, 2023 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
answer-changing A change in results (actual or potential) enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants