Main to dev/gfdl 2024-02-28#571
Merged
Merged
Conversation
* two fields remain unresolved, sea_level and mass_overlying_ice
switch to cesm-style field names in MOM6 cap
…1031 update MOM6 to its main repo 20231025 (NCAR candidate) and 20231031(GMAO FMS_cap) updating
The most recent NCAR -> GFDL merge created an error (courtesy of myself) which left the CFC concentration units in the post_data call, even though these are now handled at registration. This patch restores this expression and removes the unit conversion from post_data.
update MOM6 to its main 20231218 commit (disable FPEs)
- add restart_fh config variable and define restartfhtimes to enable restarts on non-interval hours - write info to stdout for documenting when additional restarts will or will not be written
Add non-interval restart capability
…0230122 dev emc candidate 20230122
This patch modifies select calculations of PR#1616 in order to preserve bit
reproducibility when FMA optimization is enabled. We add parentheses and
reorder terms in selected expressions which either direct or suppress FMAs,
ensuring equivalence with the previous release.
We address two specific equations in the PR. The first is associated
with vertical friction coupling coupling coefficient. The diff is shown
below.
- a_cpl(i,K) = Kv_tot(i,K) / (h_shear*GV%H_to_Z + I_amax*Kv_tot(i,K))
+ a_cpl(i,K) = Kv_tot(i,K) / (h_shear + I_amax*Kv_tot(i,K))
The denominator is of the form `a*b + c*d`. A compiler may favor an FMA
of the form `a*b + (c*d)`. However, the modified equation is of form
which favors the `a + c*d` FMA. Each form gives different results in
the final bits.
We resolve this by expliciting wrapping the RHS in parentheses:
a_cpl(i,K) = Kv_tot(i,K) / (h_shear + (I_amax*Kv_tot(i,K)))
Although this disables the FMA, it produces the same bit-equivalent
answer as the original expression.
----
The second equation for TKE due to kappa shear is shown below.
- tke_src = dz_Int(K) *(((kappa(K) + kappa0)*S2(K) - kappa(k)*N2(K)) - &
- (TKE(k) - q0)*TKE_decay(k)) - &
+ tke_src = h_Int(K) * (dz_h_Int(K)*((kappa(K) + kappa0)*S2(K) - kappa(k)*N2(K)) - &
+ (TKE(k) - q0)*TKE_decay(k)) - &
...
The outer equation was of the form `b + c` but is promoted to `a*b + c`,
transforming it to an FMA.
We resolve this by suppressing this FMA optimization:
tke_src = h_Int(K) * ((dz_h_Int(K) * ((kappa(K) + kappa0)*S2(K) - kappa(k)*N2(K))) - &
(TKE(k) - q0)*TKE_decay(k)) - &
...
----
The following two changes are intended to be the smallest modification
which preserves answers for known testing on target compilers. It does
not encompass all equation changes in this PR. If needed, we could
extend these changes to similar modifications of PR#1616.
We do not expect to support bit reproducibility when FMAs are enabled.
But this is an ongoing conversation, and the rules around FMAs should be
expected to change as we learn more and agree on rules of
reproducibility.
…ate-2023-11-13 GFDL to main, 2023-11-13
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev/gfdl #571 +/- ##
============================================
+ Coverage 37.45% 39.00% +1.54%
============================================
Files 270 272 +2
Lines 79625 90534 +10909
Branches 14824 17787 +2963
============================================
+ Hits 29826 35311 +5485
- Misses 44251 49089 +4838
- Partials 5548 6134 +586 ☔ View full report in Codecov by Sentry. |
Member
Author
|
Gaea regression: https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/22477 ✔️ This has now been merged. |
This was referenced May 16, 2024
This file contains hidden or 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
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.
Update from main branch.
DO NOT MERGE, this is for record keeping. It will be updated by command line.