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

dev/gfdl main candidate 2021-03-26 #1358

Merged
merged 107 commits into from
Apr 2, 2021

Conversation

marshallward
Copy link
Collaborator

@marshallward marshallward commented Mar 26, 2021

This PR is a minor update to the main branch, unrelated to the FMS2 update. This is a joint update from GFDL and EMC.

Review request:

The main purpose of this PR is to restore the history between main, dev/gfdl, and dev/emc. This was caused (by myself) when main was accidentally updated with content from dev/gfdl during the main -> dev/gfdl update.

Although we reversed the accidental update to main, the timing was such that the new content ended up in dev/emc before the reversal.

To resolve this, we locally merged dev/emc into dev/gfdl. The dev/emc -> dev/gfdl merge contained both our own content as well as new content from dev/emc.

Although the number of changes is less than usual, there is at least one answer-changing modification to the NUOPC coupler (flux sign bugfix), as well as another potentially detected by NCAR.


GFDL summary:

Contributors:


EMC summary:

  • fixed missing halo in two halo updates for taux and tauy in mom_surface_forcing_nuopc.F90 in nuopc_cap
  • allow MOM6 to use a mesh optionally in nuopc_cap
  • fixed sign error on fprec passed to ocean in mom_surface_forcing_nuopc.F90 in nuopc_cap (from NCAR)
  • allow ocean->land topo edits in MOM_shared_initialization.F90

DeniseWorthen and others added 30 commits November 26, 2019 09:08
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.
- In A and B grid configuration halos were never updated after taux/tauy were populated.
- This propogated through to the ustar_gustless field, hence caused a restart issue when using ustar_gustless in parameterizations.
- This appears to correct the restart issue by updating the halos at the end of the A and B grid taux/tauy loops.
Add two halo updates for taux and tauy in mom_surface_forcing_nuopc
…20210120

This is corresponding GFDL 20210120 main branch commit (hash # fe5e605)
This patch fixes a sign bug, in both MCT and NUOPC, when
accounting for the latent heat from fprec and frunnoff.
Following MOM6's definition, both fprec
and frunoff are > 0 into the ocean. Therefore, the latent heat
associated with these terms should be negative.
Bugfix: sign error on fprec for nuopc and mct caps
Hallberg-NOAA and others added 7 commits March 17, 2021 16:52
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
@kshedstrom
Copy link
Collaborator

I approve this PR.

Copy link
Collaborator

@sanAkel sanAkel left a comment

Choose a reason for hiding this comment

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

@marshallward Thanks for requesting to review.

Thanks to @mathomp4, we are on about a bi-weekly sync schedule with dev/gfdl. So comparing with what we use in GEOS-ESM the only relevant change is a parameter addition of: ALLOW_LANDMASK_CHANGES, which is okay!
(Please note that we use FMS_cap driver.)

@jiandewang
Copy link
Collaborator

approval

@abozec
Copy link
Collaborator

abozec commented Mar 27, 2021

FSU/COAPS approves too

@alperaltuntas
Copy link
Collaborator

@jiandewang, @DeniseWorthen, The newly added code block in config_src/drivers/nuopc_cap/mom_cap.F90 impacts CESM's nuopc configuration. Specifically, this PR changes our geomtype from ESMF_GEOMTYPE_MESH to ESMF_GEOMTYPE_GRID. Did you intend to change geomptype for CESM configurations as well? If so, could you remind us the rationale? Also mentioning @mvertens.

@DeniseWorthen
Copy link
Contributor

@alperaltuntas This was not intended to change CESM configuration. The only intent was to allow UFS to optionally use the mesh instead of the current grid. I realized only later that by setting the config variable false by default this would possibly impact CESM.

@alperaltuntas
Copy link
Collaborator

Thanks, @DeniseWorthen! We'll wait for you to address this and we will then test the PR again. (No rush on our side.)

@DeniseWorthen
Copy link
Contributor

@alperaltuntas Does switching the default value for use_mommesh to true work for CESM? I've tested it in ufs and it will work on our end. We will eventually switch our default to using the mesh for the mom_cap.

diff --git a/config_src/drivers/nuopc_cap/mom_cap.F90 b/config_src/drivers/nuopc_cap/mom_cap.F90
index c96c98cdd..7dc95e13f 100644
--- a/config_src/drivers/nuopc_cap/mom_cap.F90
+++ b/config_src/drivers/nuopc_cap/mom_cap.F90
@@ -136,7 +136,7 @@ integer              :: logunit  !< stdout logging unit number
 logical              :: profile_memory = .true.
 logical              :: grid_attach_area = .false.
 logical              :: use_coldstart = .true.
-logical              :: use_mommesh = .false.
+logical              :: use_mommesh = .true.
 character(len=128)   :: scalar_field_name = ''
 integer              :: scalar_field_count = 0
 integer              :: scalar_field_idx_grid_nx = 0
@@ -349,7 +349,7 @@ subroutine InitializeP0(gcomp, importState, exportState, clock, rc)
   write(logmsg,*) use_coldstart
   call ESMF_LogWrite('MOM_cap:use_coldstart = '//trim(logmsg), ESMF_LOGMSG_INFO)

-  use_mommesh = .false.
+  use_mommesh = .true.
   call NUOPC_CompAttributeGet(gcomp, name="use_mommesh", value=value, &
        isPresent=isPresent, isSet=isSet, rc=rc)
   if (ChkErr(rc,__LINE__,u_FILE_u)) return

@alperaltuntas
Copy link
Collaborator

@DeniseWorthen, yes, setting use_mommesh to true by default works for CESM.

@DeniseWorthen
Copy link
Contributor

Thanks for testing @alperaltuntas. I will have Jiande commit the change when he is back in the office on 4/1.

@marshallward
Copy link
Collaborator Author

Thank you @DeniseWorthen we'll also merge the work into this PR when it's ready.

@jiandewang
Copy link
Collaborator

@marshallward I just merged dev-gfdl-main-candidate-2021-03-26 branch to the original branch I provided to you (https://github.com/jiandewang/MOM6/tree/feature/for-GFDL-hot-fixing-20210322), and committed the changing of default value as True for use_mommesh in nuopc_cap/mom_cap.F90.
thanks for the fixing @DeniseWorthen @alperaltuntas

@marshallward
Copy link
Collaborator Author

Thanks @jiandewang this branch has now been updated.

Since this change is very minor and isolated to the NUOPC cap, I'll merge this after NCAR approval.

@alperaltuntas
Copy link
Collaborator

I approve.

@marshallward
Copy link
Collaborator Author

Thanks all, merging this now. Histories between EMC and GFDL (and hopefully everyone else) should now be in sync.

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.