-
Notifications
You must be signed in to change notification settings - Fork 16
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
feature/update-to-GFDL-20200515 #28
feature/update-to-GFDL-20200515 #28
Conversation
Vertically extensive diagnostics like advective transports, diffusive fluxes, etc. were being remapped onto a diagnostic grid prior to the physical process that chagne the tracer and/or layer thicknesses. However this means that the effective operator used for each component of a tracer budget was not the same, and so budgets could never be closed cell-by-cell in a diagnostic coordinate. This commit fixes one part of the inconsistency by setting the target diagnostic grid for all vertically extensive quantities to be one constructed at the very beginning of the timestep. However, problems with closing the budget should still be expected 1. Conservation of column integrals cannot be expected because the target grid can be smaller than the source grid (layer thicknesses at the native grid at the current point in the algorithm). This leads to some fluxes being 'thrown away' due to the reintegrate algorithm. 2. To truly have a consistent operator for all terms of a budget, the source grid for all vertically extensive grids should also be the same
Moving FMS and mkmf to the `build` directory led to conflicts in the `build/%/Makefile` and `build/%/path_names` rules, which were causing redundant builds. This patch moves these repositories back into a local `deps` directory, now kept inside of `.testing`.
The Travis environment was updated in order to get a newer GCC compiler version. This was done to enable more aggressive initialization.
The FMS version has been updated in order to permit more aggressive initialization settings in MOM6. This requires a few bugfixes in the newer FMS release.
Flags for initializing reals on stack as signaling NaNs (SNaN) and integers as 2**31 - 1 have been added in this build.
Travis bionic test
This resolves several new issues raised by the current version of Doxygen (1.8.17). Primarily it addresses the stricter enforcement of grouping syntax, e.g. !>@{ ... !>@} The current code is somewhat inconsistent in its use of !!@{ vs !>@{ , and moreso in the closing token. This patch updates these to always lead with starting Doxygen comment tokens !> . Exposing these groups also revealed a few undocumented variables, which have been updated with minimal descriptions for now. Finally, one subroutine in MOM_horizontal_regridding was causing a segfault, so it had to be reworked to remove its grouping, so that individual indices now have descriptions.
- The new FMS has test_ programs that are found by list_paths which do not build properly unless using the FMS Makefile.am method. - The "no libs" test was added to detect namespace collisions that are hidden when building with libraries. For now we'll retain this test but to do so requires a one-line hack to edit the pathnames file.
Fix "no lib" builds
Doxygen 1.8.17 documentation fixes
The target grid for the diagnostic grid update is now based on a assigning a differrent pointer based on the boolean input argument 'intensive'. This is done so that this update is done in a more 'object-oriented' way
This reverts commit 9abcb10.
The model thicknesses
Corrected the units reported for 9 diagnostics, and altered the code so that the diagnostics N2_u and N2_v are only offered if the can be calculated and the proper diagnostics are written if these diagnostics are requested (previously arrays of zeros were always output). All solutions are bitwise identical, but some diagostics in output files change and the available_diags files have altered entries.
Rewrote the subroutine doc_param_time to work like the other doc_param routines, including making the units argument optional, removing the argument layout_param, and adding the new internally visible routine time_string. Because time variables are currently logged as real values using the timeunit argument to log_param_time, these changes do not have a widespread impact. All answers are bitwise identical, but there are some limited interface changes.
- Rename `h_dest` to `h_target` in routine and in signature - Remove extraneous logic
Added or corrected comments describing the units of many of the variables in the ALE code. All solutions are bitwise identical, although there are some unit changes in arguments to unused subroutines.
Originally, the diagnostic arrays were being allocated on the first call generating the diagnostic grid. This seems overly clunky because the size of the grids are known before that. This was also causing a segfault in updates to the new routine. The allocate statements for these arrays are now done right after the number of levels is known
Corrected documented units in comments, corrected spelling errors in comments and removed unused variables. All answers are bitwise identical.
Rescaled the calculations of diagnostics of the integrated mass transports, column integrated temperature and salinity, cell thicknesses and column mass for dimensional consistency testing. All answers are bitwise identical.
Rescaled the density derivatives used in full_convection, smoothed_dRdT_dRdS and user_change_diff. This change requires that new unit_scale_type arguments be passed to these three subroutines. All answers are bitwise identical.
Converted find_interfaces from a function to a subroutine and revised determine_temperature to rescale arguments and internal variables. Also made the declaration of array sizes consistent with other MOM6 code. All answers are bitwise identical, but there are changes to public interfaces.
Removed an unneeded halo update in iceberg_forces. All answers are bitwise identical.
+Corrected diagnostics and diagnostic units
CodeCov reporting log is now saved to results/ rather than piped to stdout, further reducing test logging output.
We were saving codecov output to results, but this was breaking the `test.summary` test, which only returns true if `results` is empty. This change should resolve this issue.
…into Hallberg-NOAA-units_cleanup
…g-NOAA/MOM6 into Hallberg-NOAA-improved_ePBL_iterations
…/MOM6 into Hallberg-NOAA-fix_angular_advect
Reduced output during testing
…cean#1113) - gcc/8.3.0 issued `Error: Integer too big for its kind` reported in feedback on PR mom-ocean#1111. The intent was to assume kind=4 in these calculations but apparently our compilers were promoting `mod(dy + 32*(mo + 13*yr), 2147483648)` to kind=8. There were two mistakes in the expression: - the use of `2147483648` in the `mod` is not representable with kind=4; - the `mod` produces negative values and should have been a `modulo`. - This commit reduces the range of the results by one number on the positive side and removes all the negatives.
4b42365
to
abc14fd
Compare
…er to dev-master-candidate-2020-05-15 solve conflict in: (1) config_src/coupled_driver/MOM_surface_forcing_gfdl.F90 (2) src/core/MOM_forcing_type.F90 BUG FIXING: add missing halo in MOM_full_convection.F90
abc14fd
to
3850530
Compare
wait for code review, detail discussion is attached here |
I'd like to understand whether the changes to freeze-melt were something that GFDL says would be expected. |
@DeniseWorthen Let me gather some information on freeze-melt and contact GFDL |
I converted this PR to draft as we still need to figure out the freeze-melt-potential issue |
due to the imperfect in git commit log history information, Jiande closed this PR, and will create a new one with standardized commit history. |
Merge in latest dev/gfdl updates
require to update EMC MOM6 to GFDL dev/master May 29th commit (hash # 48d208d), which refers to "dev-master-candidate-2020-05-15".