forked from NOAA-GFDL/MOM6
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Test #5
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Addressed compiler warnings about unused variables and argument intent. - Note there is one dummy argument that was unused and the best way to address the warnings was to remove the argument, i.e. and API change. This was only in a debugging/utility function so does not impact the rest of the model. - Address warnings about unused/uninitialized variables in MOM_remapping.F90 - Sets values that appear to the compiler to be potentially unset, but always are in practice
- Added new driver, time_MOM_remapping, to config_src/timing_tests/ that exercises the remapping_core_h() function with PCM and PLM. - We should add other reconstruction schemes too, but the main reason for adding this now is to monitor the impact of refactoring the function remapping_core_h() which is mostly independent of the reconstruction schemes. - Fixed .testing/Makefile to not fail with `make build.timing -j`
Added a simple driver for the remapping unit tests.
- Added a simple class within MOM_remapping.F90 to greatly abbreviate the lines comparing values of arrays. - Translated the existing remapping unit tests to use the testing class.
- The first block of remap_via_sub_cells() computes the intersection between two columns (grids). I've split out this block into a stand alone function so that we can re-use it in a to-be-written analog of remap_via_sub_cells() that will remap integrated quantities. - Added some in-line documentation of algorithm used by remap_via_sub_cells() - Added new column-wise function intersect_src_tgt_grids() - Added tests of intersect_src_tgt_grids() that check against known results - Had to add a new helper function to MOM_remapping to report state of integer arrays.
- This second phase of remap_via_sub_cells() maps the values from the source grid to the sub-grid using the pre-calculated arrays/indices from intersect_src_tgt_grids(). This phase as-is is only used for remapping of intensive variables but it does implicitly calculate intermediate extensive quantities which are analogous to what we need when remapping momentum. Splitting this phase out primarily allows us to test this bit of code and it has indeed revealed an edge case that fails. - Added new column-wise function remap_src_to_sub_grid() - Added tests of remap_src_to_sub_grid() that check against known results - One test is commented out corresponding to an edge case that reveals the current code is wrong. Will enable this test after checking how many experiments are impacted but the associated bug fix.
- We had debugging left over from development a decade ago that was retained "just in case" but has been obsoleted by the unit testing. - Also cleaned up unused variables.
- Added remap_sub_to_tgt_grid() to handle remapping of intermediate state on sub-layers to the target grid. This function will be reused by alternate remap_via_subcells() analogs for extensive quantities. - Added unit tests for remap_sub_to_tgt_grid().
- The original remap_via_subcells() assumed that the first and last sub-layers would be vanished and thus needed to only assign the edge values of the source reconstructions to the sub-layers. However, this is only a valid assumption (and correct) if the total column thickness of source/target are the same. That is generally true doing the main loop. However, when initializing from WOA, the ocean model depth and source-data depth often differ, and this assumption that we can ignore the top/bottom reconstructions breaks. - The original fix was developed with @claireyung and took the form claireyung@924b7ac In this patch, I have unrolled the loop inside remap_src_to_sub_grid() to avoid adding an additional `if` test on the loop index. - The fix is implemented in remap_src_to_sub_grid() and the original method is reached by setting a logical inside the remapping_CS. Default is to use the OM4 alorithm (original method with bug). - New runtime parameters are added in to recover original algorithm selectively: - OBC_REMAPPING_USE_OM4_SUBCELLS, - Z_INIT_REMAPPING_USE_OM4_SUBCELLS, - EBT_REMAPPING_USE_OM4_SUBCELLS, - SPONGE_REMAPPING_USE_OM4_SUBCELLS, - SPONGE_REMAPPING_USE_OM4_SUBCELLS, - DIAG_REMAPPING_USE_OM4_SUBCELLS, - NDIFF_REMAPPING_USE_OM4_SUBCELLS, - HBD_REMAPPING_USE_OM4_SUBCELLS, and - REMAPPING_USE_OM4_SUBCELLS all of which default to True. - No answer changes. Testing defaults More defaults EBT flag
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Debugging MacOS regression