Skip to content
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

Update CPT fork of MOM6 to latest (12/10/2020) from NOAA-GFDL #4

Merged
merged 488 commits into from
Dec 14, 2020

Conversation

adcroft
Copy link

@adcroft adcroft commented Dec 11, 2020

I've checked this produces the same answers for config_025 without any changes to MOM_input. There's a big sync about to happen across the main forks and the CPT changes ought to be in before they get broken. Once we've updated dev/cpt we'll submit it to GFDL.

marshallward and others added 30 commits September 22, 2020 10:26
Additional changes were made to support older Autoconf versions (at
least as far back as 2.63).

* AC_FC_LINE_LENGTH, added in 2.67, was backported
* AC_OPENMP, bugged for Fortran until 2.69, tests against the C flag

Version restrictions are now explicit (2.63) and

This may work with 2.62, when the m4_version_change macro was
introduced, but I have not yet tested it.

The Cray pointer macro's cache variable was also renamed.
Reduced two m4 version conditionals into a single block.
The COVERAGE variable was incorrectly quoted, and was causing incorrect
quotes in the compile flag arguments.

This patch removes the redundant quotes.
- Fixing whitespace
- Fixing parenthesis in A*B/C to (A*B)/C
- Moving /grav to *igrav (and computing threshold outside of i,j loop).
The total kinetic energy per unit mass, used heavily for model
reproducibility tests, was being computed in a non-reproducibile form:

   KE_mass = 0.5 * (u(i-1)**2 + u(i)**2 + v(j-1)**2 + v**2)

which uses an ambiguous order of summation.

This was causing reproducibility errors in rotational tests where u and
v become swapped.

This patch resolves the problem by explicitly summing the u**2 and v**2
interpolations before adding together.

There is an extremely high change that this will change the output of
`ocean.stats`, causing most tests to report a regression.  Actual model
results should not be affected.
This patch fixes the dimensional scaling of three diagnostics:

- grid_Re_Ah
- grid_Re_Kh
- boundary_forcing_h_tendency

The fix to `grid_Re_Ah` and `grid_Re_Kh` removes the `Kh_min` and
`Ah_min` parameters, which could not be dimensionally scaled and
replaces them with variables in the control structure.

The minimum Laplacian and biharmonic viscosites are chosed to estimate
the smallest viscosity which is capable to altering the velocity.  We
use `spacing(1.) * L^2N / T` where `spacing()` is the smallest
difference in floating point.  We use the minimum harmonic grid spacing,
precomputed during initialization, rather than the local value, in order
to avoid additional computation and memory access during timestepping.

This will changes the value of grid_Re_[AK]h in certain isolated
examples of negligible viscosity, but will otherwise avoid the
possibility of divide-by-zero while also producing a realizable large
value at near-inviscid upper limit.

The second fix to `boundary_focing_h_tendency` had its T units set but
not its H units.  This patch fixes the dimensionality.

These are required to fix the dimensional verification errors in PR
1210.
marshallward and others added 23 commits December 1, 2020 20:42
…diags

+Eliminate all-zero diabatic diagnostics
…ugfix

(*)Use hvel_shelf in vertvisc_coef with ice shelves
…e_diags

+Add option to write shorter available diags files
Correct units of integrated salt flux diagnostics
…flush-function

Use flush function instead of subroutine/extension
- Remove whitespace in regression.yml
- Add files for future debugging work with fortran parser
- conf.py: ignore details directory
- Release sphinxcontrib-autodoc_doxygen 0.7.13
- Improvements to whitespace handling within xmlutils.py
- bump requirements.txt
- Update README.md
- Remove "\n" from ALIASES as it tends to be passed through to latex and causes it to fail.
- Add/move notes around in README.md and details/.
Doxygen support for 1.8.13 through 1.8.20
@codecov-io
Copy link

codecov-io commented Dec 11, 2020

Codecov Report

❗ No coverage uploaded for pull request base (dev/cpt@adf6046). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##             dev/cpt       #4   +/-   ##
==========================================
  Coverage           ?   45.79%           
==========================================
  Files              ?      225           
  Lines              ?    71496           
  Branches           ?        0           
==========================================
  Hits               ?    32739           
  Misses             ?    38757           
  Partials           ?        0           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update adf6046...788aeb0. Read the comment docs.

@adcroft
Copy link
Author

adcroft commented Dec 14, 2020

I've verified that the apparent fail in the Regression test is due to changes upstream on the dev/gfdl branch and that once merged, if we send back dev/cpt to merge into dev/gfdl there will be no conflicts.

@neerajabhamidipati neerajabhamidipati merged commit 2507f7a into dev/cpt Dec 14, 2020
@adcroft adcroft deleted the update-mom6-nov-2020 branch December 14, 2020 21:58
gustavo-marques pushed a commit that referenced this pull request May 27, 2021
Only write checksums from root PE MCT/NUOPC caps
gustavo-marques pushed a commit that referenced this pull request Feb 14, 2022
Correct a couple of typos in hor_visc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.