-
Notifications
You must be signed in to change notification settings - Fork 60
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
(+) porous topography implementation #3
Conversation
* reads in porous topography parameters from CHANNEL_LIST_FILE *new module to compute curve fit for porous topography *porous constraints used to modify continuity_PPM, CoriolisAdv, and Rayleigh bottom channel drag
Codecov Report
@@ Coverage Diff @@
## dev/gfdl #3 +/- ##
============================================
- Coverage 29.18% 29.15% -0.03%
============================================
Files 239 240 +1
Lines 71294 71456 +162
============================================
+ Hits 20810 20836 +26
- Misses 50484 50620 +136
Continue to review full report at Codecov.
|
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.
This is looking very good and mostly clean. There are a few specific adjustments/comments in line which are easy changes.
It passed regression tests at https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/14109.
Note to devs: there are new diagnostics so M6E needs updating.
* Style Fixes * Store depths for porous curve fitting as [Z ~> m] and account for Z_ref
Thank you @adcroft @Hallberg-NOAA @marshallward for the feedback. I've pushed some fixes that I think address all of the above concerns. |
* changed porous topo code to preserve dimensions * readded rotations that got lost in merge
Sorry, my last patch didn't merge in properly and the commits got a bit messy. I'll fix things now |
@sditkovsky If you want to reshape your commit and prune the small edits, you can use If you want to experiment first, you can try it on a new branch ( |
* also small fix to porous module. invert order of do loops
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.
After a number of rounds of review, I think that this excellent contribution is ready to be merged in once it has successfully passed the regression tests.
This PR has passed pipeline testing at https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/14228, although there will have to be an update to MOM6-examples due to the new diagnostics and entries in the MOM_parameter_doc files. |
- Spacing within expressions was uneven and made multiplation look like POW functions. Leftover from merging NOAA-GFDL#3. - No answer changes.
- Spacing within expressions was uneven and made multiplation look like POW functions. Leftover from merging #3. - No answer changes.
Use the por_face_area[UV] in the effective thickness calculations in zonal_face_thickness and merid_face_thickness, so that they are more consistent with their use elsewhere in the code for the relative weights in calculating the barotropic accelerations. Because these por_face_area arrays are still 1 in all test cases, the answers are unchanged in any test cases from before a few weeks ago, but there could be answer changes in cases that are using the very recently added capability (in PR #3) to set fractional face areas. This change was discussed with Sam Ditkovsky, and agreed that there is no reason to keep the ability to recover the previous answers in any cases that use the recently added partial face width option. This commit also expanded the comments describing the h_u and h_v arguments to btcalc(), zonal_face_thickness(), and merid_face_thickness() routines, the diag_h[uv] elements of the accel_diag_ptrs type and the h_u and h_v elements of the BT_cont_type. All answers and output are bitwise identical in the MOM6-examples test suite and TC tests, but answer changes are possible in cases using a very recently added code option.
* additions for stochastic physics and ePBL perts * cleanup of code and enhancement of ePBL perts * Update MOM_diabatic_driver.F90 remove conflict with dev/emc * Update MOM_diabatic_driver.F90 further resolve conflict * Update MOM_diabatic_driver.F90 put id_sppt_wts, etc back. * add stochy_restart writing to mom_cap * additions for stochy restarts * clean up debug statements * clean up code * fix non stochastic ePBL calculation * re-write of stochastic code to remove CPP directives * remove blank link in MOM_diagnostics * clean up MOM_domains * make stochastics optional * correct coupled_driver/ocean_model_MOM.F90 and other cleanup * clean up of code for MOM6 coding standards * remove stochastics container * revert MOM_domains.F90 * clean up of mom_ocean_model_nuopc.F90 * remove PE_here from mom_ocean_model_nuopc.F90 * remove debug statements * stochastic physics re-write * move stochastics to external directory * doxygen cleanup * add write_stoch_restart_ocn to MOM_stochastics * add logic to remove incrments from restart if outside IAU window * revert logic wrt increments * add comments * update to gfdl 20210806 (#74) * remove white space and fix comment * Update MOM_oda_incupd.F90 remove unused index bounds, and fix sum_h2 loop. Co-authored-by: pjpegion <Philip.Pegion@noaa.gov> Co-authored-by: Marshall Ward <marshall.ward@noaa.gov> * Fussing with zotero.bib. Getting a warning about a repeated bibliography entry for adcroft2004. Rob thinks this is a hash failure. * Still fussing with zotero.bib - it was complaining about the (unused) Kasahara reference. * Several little things, one is making sponge less verbose. - Pointing to OBC wiki file from the lateral parameterizations doc. - Using the MOM6 verbosity to control the time_interp verbosity. - Making the check for negative water depths more informative. * return a more accurate error message in MOM_stochasics * Working on boundary layer docs. * Done with EPBL docs? * Undoing some patches from others * Cleaning up too-new commits * Adding in that SAL commit again. * correction on type in directory name * Added some to vertical viscisity doc. * Cleaned up whitespace leftover from porous topomerge. - Spacing within expressions was uneven and made multiplation look like POW functions. Leftover from merging #3. - No answer changes. * Fix out-of-bounds k index in PPM flux - An errant use of the porous face area led to an out-of-bounds k-index reported in #19. - Closes #19 * Adding Channel drag figure * Take cite out of figure caption. * Copyright year 2022
…GFDL#3) * mod g_tracer interface * mod g_tracer interface * Simplify g_tracer interface changes * add description
Initial implementation of porous topography modifying only cell face metrics (grid volumes are not modified). Cell faces are modified in the continuity scheme (
MOM_continuity_PPM.F90
), Coriolis acceleration (MOM_CoriolisAdv.F90
), and the Rayleigh bottom channel drag (MOM_set_viscosity.F90
).Porous channels can be set in the
CHANNEL_LIST_FILE
using the following a similar template to existing barotropic channel restrictions:barotropic:
[U|V]_width, min_longitude, max_longitude, min_latitude, max_latitude, width
baroclinic:
[U|V]_WIDTH_POR, min_lon, max_lon, min_lat, max_lat, width, min_bathy, max_bathy, avg__bathy
The porous topography implementation was tested for scaling and rotational consistency.