-
Notifications
You must be signed in to change notification settings - Fork 61
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
+Optionally use SSH in calculate density for PGF #696
+Optionally use SSH in calculate density for PGF #696
Conversation
I have re-examined the question of whether the reference height for calculating the pressure used for the equation of state calls is correctly placed relative to the addition of self-attraction and loading adjustments to the geoid, and I am convinced that the order of these two parts of the code is correct. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have reviewed these changes and agree. The new parameter flag SSH_IN_EOS_PRESSURE_FOR_PGF will correctly account for sea surface displacement in the calculation of in situ pressure gradient forces.
MOM6/src/core/MOM_density_integrals.F90 Line 250 in 99b95df
I think |
For Boussinesq, if we incorporate tidal and SAL potential into interface height, there will be a baroclinic component of these forcing, which means for each layer tidal and SAL (both body forces ) term is different. Maybe we can argue that this is consistent with Boussinesq approximation, but I am not sure. |
After re-inspecting the code, I am pretty sure that |
This is a good question, and I think that the answer is ambiguous to when we are making the Boussinesq approximation. However, I also think that this question goes beyond the scope of what is being addressed with this PR. |
99b95df
to
316678e
Compare
Added the option of including the atmospheric or ice pressure and sea surface height displacements from the global reference height in the pressures used in the density calculations for Boussinesq pressure gradient calculations. Note that the full pressures were already being used everywhere apart from the calculation of the equation of state. This capability is controlled by the new runtime parameter SSH_IN_EOS_PRESSURE_FOR_PGF. This commit changes the Z_0p argument to int_density_dz and 8 other routines (int_density_dz_generic_pcm, int_density_dz_generic_plm, int_density_dz_generic_ppm, analytic_int_density_dz, int_density_dz_wright, int_density_dz_wright_full, int_density_dz_wright_red and int_density_dz_linear) from scalars into 2-d arrays, as were the internal z0pres arrays in most of these routines. By default, all answers are bitwise identical, but there is a new runtime parameter in the MOM_parameter_doc files for Boussinesq cases.
Rearranged the calculation of the layer average pressure used in the density integrals to have one less multiply and be clearer to read. This could change answers at roundoff if REFERENCE_HEIGHT is nonzero (it is 0 by default and in all known cases) or if SSH_IN_EOS_PRESSURE_FOR_PGF is set to true. Because the former is mostly used for approximate self-consistency testing and the latter option has just been added, it is unlikely that answers will change for any production runs.
316678e
to
2e3488f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OBO @MJHarrison-GFDL
Gaea regression: https://gitlab.gfdl.noaa.gov/ogrp/mom6ci/MOM6/-/pipelines/24788 ✔️ 🟡 |
Added the option of including the atmospheric or ice pressure and sea surface height displacements from the global reference height in the pressures used in the density calculations for Boussinesq pressure gradient calculations. Note that the full pressures were already being used everywhere apart from the calculation of the equation of state. This capability is controlled by the new runtime parameter
SSH_IN_EOS_PRESSURE_FOR_PGF
. This commit changes theZ_0p
argument toint_density_dz()
and 8 other routines (int_density_dz_generic_pcm()
,int_density_dz_generic_plm()
,int_density_dz_generic_ppm()
,analytic_int_density_dz()
,int_density_dz_wright()
,int_density_dz_wright_full()
,int_density_dz_wright_red()
andint_density_dz_linear()
) from scalars into 2-d arrays, as were the internal z0pres arrays in most of these routines. By default, all answers are bitwise identical, but there is a new runtime parameter in the MOM_parameter_doc files for Boussinesq cases.