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

Feature/update to gfdl 20210402 #65

Merged

Conversation

jiandewang
Copy link
Collaborator

Description of changes

update EMC MOM6 to GFDL 20210402 commit (see detail at https://github.com/NOAA-GFDL/MOM6/pull/1358#issuecomment-811919139)

Issues Fixed (include github issue #):

MOM6 closes #64

ufs-weather-model Issue 489 (ufs-community/ufs-weather-model#489)

Are changes expected to change answers?

No
Testing performed:

machine: orion, hera and dell-p3
Hashes used for testing

NEMS: b80b5b1

CMEPS: 0658dde

FV3: ebccc53

CICE: f773ef38

WW3: fc509248a

stochastic_physics: d0e62eb2

MOM6: c549ae9 (https://github.com/jiandewang/MOM6/tree/feature/update-to-GFDL-20210402)

OlgaSergienko and others added 30 commits December 15, 2020 20:32
MOM_ice_shelf_dynamics.F90  modified
initialize_ice_shelf_boundary_channel in MOM_ice_shelf_initialze.F90
Merge branch 'revert_drivers' of https://github.com/MJHarrison-GFDL/MOM6 into matts-revert-drivers
…e ice-shelf_fields consistent

with diag_table
Modifications to MOM_ice_shelf.F90 to apply melting to the case of a
dynamic ice shelf.
- Tag v0.93-beta of CVMix is the last tag on their "master" branch before
  an API change within CVMix.
- Answers reproduce with the three-year prior commit being used, as tested
  in MOM6-examples single_column cases. These do not cover all CVMix code.
- This tag involves an API change that requires changes to MOM_tidal_mixing.F90.
- Changes are dropped arguments so presumably that data is not needed.
- Answers reproduce in so far as they are covered by MOM6-examples.
  Not all of CVMix is covered in these tests and this code in particular
  is not.
- v0.98-beta is the latest tag of CVMix that is available a.t.t.
- There were no API changes since the v0.94b-beta that affected MOM6.
- No answer changes for MOM6-examples, but these do not exercise much
  of CVMix.
This patch fixes an issue with the vertical array bounds of the Ferrari
et al. streamfunction.  The array is bounded across interfaces, from 1
to nz+1, but only the interior values need to be determined due to the
arbitrary boundary value (set here to zero).

In the current source, the streamfunction is rescaled before calling
streamfn_solver, but need not be applied to the boundary values.  This
is unlikely to cause errors in production, since the values are later
reset to zero, but the rescaling can raise errors in more aggressive
debugging builds, such as when the arrays are initialized with NaN
values.
This commit fixes the issue that dirs%restart_input_dir is not initiated before
"ocean_solo.res" and "ice_solo.res" are read.
Bugfix: empty restart_input_dir for *_solo.res
  Added code to explicitly set a (1x1) io_domain when no other io_layout is
specified, complying with changing requirements for 2020 and later versions of
FMS, and following the default behavior of previous versions.  Also corrected
three module use statements in infra/FMS1 to eliminate any dependencies of code
in config_src/infra/FMS1 on code in src/framework.  These use statements
eventually point to the same place as before, but with less indirection.  This
change should facilitate later steps to compile everything in and under the
config_src/infra directories as libraries.  All answers are bitwise identical.
* if true, allow the topog overrides to change the land mask
marshallward and others added 15 commits March 12, 2021 16:26
Change units of slope returned from calc_isoneutral_slopes() to "Z L-1"
Bugfix: FGNV streamfunction vertical bounds
Two minor changes to the .testing build:

- We now apply `--recurse-submodules` to the target build in the
  regression test.  This is required after an update to the submodules,
  when the target submodule is out of sync with the main branch (e.g.
  dev/gfdl at NOAA-GFDL).

- A LDFLAGS_USER hook was added to the `.testing/Makefile`
  configuration, similar to the FCFLAGS_* hooks.  This is required if
  the library dependencies do not reside in the default directores.

  For example, this may be needed for a custom netCDF or MPI library.
Testing: Recurse target submodules, LDFLAGS hook
…ate-2021-03-26

dev/gfdl main candidate 2021-03-26
@jiandewang
Copy link
Collaborator Author

passed RT in all platforms, ready for review

Copy link
Collaborator

@DeniseWorthen DeniseWorthen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine. Thanks for taking the opportunity to get the topo edits change in.

@JessicaMeixner-NOAA
Copy link
Collaborator

This is being merged into ufs-weather-model with this PR: ufs-community/ufs-weather-model#488 correct?

@jiandewang
Copy link
Collaborator Author

This is being merged into ufs-weather-model with this PR: ufs-community/ufs-weather-model#488 correct?

correct

@jiandewang jiandewang merged commit 00ea3fd into NOAA-EMC:dev/emc Apr 12, 2021
jiandewang pushed a commit to jiandewang/MOM6 that referenced this pull request Jun 17, 2021
jiandewang pushed a commit to jiandewang/MOM6 that referenced this pull request Apr 5, 2022
…OAA-EMC#65)

* Eliminate GET_ALL_PARAMS in hor_visc_init

  Added do_not_log arguments to get_param calls in MOM_hor_visc.F90 that are
only used conditionally, and eliminated the unlogged GET_ALL_PARAMS runtime
parameter and get_all variable in hor_visc_init().  By design, all logging of
parameters after this commit is identical to before, even for variables that are
inactive and therefore should not be logged.  In several places, there were some
problems, mostly with the GME code, that have been noted in comments marked with
'###'.  Also cleaned up the code alignment and eliminated unneeded temporary
variables in a few places in hor_visc().  All solutions are bitwise identical,
and no output is changed.

* Move call to get get_KH outside k-loop

The call to get the 3-d GME diffusivity arrays and the subsequent
blocking halo update was moved outside of the k-loop.

* Increase loop range for calculation of GME fluxes

* Makes GME filter rotationally invariant

* Makes the GME filter rotationally invariant
* Adds a runtime param to allow the user to control how many
smoothing passes should be done.

* Rearranges the get_param calls related to Leith

The get_param calls for Leith were not in the correct location.
This commit fixes that.

* Adding halo updates

* Fixes do loops indices and adds diagnostics

* Adds option to save barotropic tension and strain;

* Fixes many i and j loops indices associated with GME to avoid halo
problems and unnecessary halo updates. With these changes, the
model is now conserving mass and tracers when USE_GME = True.

* Fixes issues related to the merging with dev/gfdl

* Fixes calculation of FrictWork_GME

The calculation now mimics the calculation of FrictWork and it
includes the energy diffusion term.

* Removes dependency of FrictWork_GME calculation on MEKE

* Adding sh_xy_sq and sh_xx_sq in the OMP directives

Co-authored-by: Robert Hallberg <Robert.Hallberg@noaa.gov>
jiandewang pushed a commit to jiandewang/MOM6 that referenced this pull request Apr 5, 2022
  Fixed the bug noted in issue NOAA-EMC#72 and excessive loop sizes noted in the
unresolved comments in a recent commit, and cleaned up other aspects of
MOM_hor_visc, mostly related to the code that is exercised when USE_GME=True.

 - Fixed the bug with the wrong arrays being used when ADD_LES_VISCOSITY=True
   that was noted in MOM6 issue NOAA-EMC#72.

 - Corrected some of the overly large loop extents that were noted in unresolved
   comments about MOM6 PR NOAA-EMC#65.

 - Only log USE_KH_BG_2D if a Laplacian viscosity is used.

 - Use extra calculations in the halos and marching in to avoid unnecessary halo
   updates in smooth_GME if there multiple smoothing passes.

 - Corrected the capitalization of some horizontal indices to follow the MOM6
   convention for indicating the horizontal staggering position.

 - Collected the post_data calls for diagnostics with use_GME with the other
   post data calls to collocate some of the potential inter-PE synchronization
   points.

 - Fixed the indentation of some expressions that were using less than 4 points
   for some continuation lines.

 - Eliminated several unused variables, and fused some loops to allow 2-d
   variables to be replaced with scalars.

  With this PR, answers can change when ADD_LES_VISCOSITY=True and there is a
Smagorinsky or Leith Laplacian viscosity and there is a nonzero background.
One run-time parameter is no longer logged if LAPLACIAN=false, so there are
changes to the MOM_parameter_doc files.  All answers in the MOM6-examples test
suite are bitwise identical.
@jiandewang jiandewang deleted the feature/update-to-GFDL-20210402 branch February 28, 2023 03:53
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.

update MOM6 code from GFDL (20210402)
8 participants