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

Candidate dev master 2017 07 05 #550

Merged
merged 106 commits into from
Jul 21, 2017
Merged

Conversation

adcroft
Copy link
Collaborator

@adcroft adcroft commented Jul 7, 2017

This PR will bring dev/master up to date with dev/gfdl (as of 2017 July 5th).

This PR is not to be merged until we have had reviews from NCAR. There are 137 files changed so "reviewing" really means testing (unless @gustavo-marques really want to read through the 106 commits since May 9).

This is the code that was tagged dev/master/2017.07.05 from NOAA-GFDL/MOM6-examples even though we have not merged onto dev/master yet. It is the where dev/gfdl was on July 5th. I should have tagged it dev/gfdl/... but that would have caught others off guard.

This is a test of the new procedures for updating dev/master and master. We need to get @kshedstrom added to the reviewer list so the ESMG fork is part of the process for updating dev/master and master.

Andrew Shao and others added 30 commits May 9, 2017 15:05
…ed to

figure out why the redistribution of residual does not fully conserve.
in MOM_tracer_registry.F90: MOM_tracer_chkinv. This routine calculates
the global inventories of all tracers in the registry. Some of the
debugging checksums in the offline tracer routines are updated to use this
new function.
This primarily resulted from an error in the indexing when the fields were
being updated. Now to test in OM4_05
Added a term proportional to the gradient of divergence to the
Leith viscosity, which turns regular 2D Leith into Modified Leith.
- When regression tests fail, the working dir is left dirty and
  needs to be reset before pulling the latest regression answers.
  Moved the calls to set_viscous_BBL out of the dynamics code and up into
step_MOM, eliminating 4-way redundant calls and making the various algorithms
more obviously similar.  The answers are bitwise identical with 3 of the 4
dynamic solvers, but with MOM_dynamics_unsplit the time level of thicknesses
used to calculate the bottom boundary layer properties are replaced with the
initial thicknesses (like the other schemes), rather than the average of the
initial thicknesses and the predicted thicknesses from the first (of perhaps
several) step of the dynamics.  All existing test cases are bitwise identical,
but if SPLIT=FALSE and USE_RK2=FALSE, answers will change.
  Eliminated calc_bbl and bbl_calc_time_interval from the vertvisc_type.  Also
renamed pass_kd_kv_turb to pass_kv_turb and added local variables inside of
step_MOM to take the place of the variables that were eliminated, and added a
new clock to step_MOM to record the time taken by calls to set_viscous_BBL. The
unused module use statements for set_viscous_BBL were also eliminated from the
MOM_dynamics modules.  All answers are bitwise identical.
Runs fail with
FATAL from PE   107: MPP_RESET_GROUP_UPDATE_FIELD_3D_: group%reset_index_s > group%nscalar
etc.

" .and. (.not.CS%thickness_diffuse_first .or. CS%t_dyn_rel_adv == 0)) " was removed in a previous update.
  Corrected a bug when DIABATIC_FIRST=True in how the compensation for the
difference between the dynamic sea surface height used by the barotropic solver
and the height that the layers would have if net mass sources were applied
gradually instead of abruptly at the start of the thermodynamic time step. This
would change answers if both SPLIT and DIABATIC_FIRST are true and the value of
BT_MASS_SOURCE_LIMIT > 0.0, but as there are currently no test cases that match
these conditions, the answers are unchanged in all of the test cases. In cases
where the answers do change, they are unambiguously better based on weaker high
frequency gravity waves arising from coupling shocks.
Bugfix to reintroduce group halo pass check removed in 282a160
  Corrected spelling errors and content errors in several of the comments
describing subroutine arguments.  All answers are bitwise identical.
  Reverted to the simpler pass_var routines for the single 3-d variable h.  This
avoids the issue that triggered the recent pull request #520, and it should have
no performance impacts.  (In fact, by letting each call have its own halo size,
it might lead to performance improvements in subsequent commits.)  All answers
are bitwise identical.
added Doxygen comments to all of the arguments to the subroutines in
MOM_checksum_packages.F90. All the answers are bitwise identical.
Change to pass_var for h and correct barotropic mass source

...and it passed (no surprise): https://gitlab.gfdl.noaa.gov/ogrp/MOM6/pipelines/1956
added Doxygen comments to all of the subroutines in MOM_checksum_packages.F90.
All the answers are bitwise identical.
Added Doxygen comments to all of the subroutines in the
MOM_dynamics_legacy_split.F90. All the answers are bitwise identical.
Added Doxygen comments to all of the subroutines in the
MOM_dynamics_unsplit.F90. All the answers are bitwise identical.
Hallberg-NOAA and others added 24 commits June 29, 2017 11:18
  Modified MOM_state_initialization and all of the thickness, temperature, and
velocity initialization routines it calls so that the relevant routines are
always called, regardless of whether this run segment is for a new run or
started from a restart file, so that all valid parameters are read.  This will
enable detection of misspelled or invalid runtime parameters without requiring
that the MOM input files be changed between run segments. Several
MOM_parameter_doc files have been changed by the addition of missing log_version
calls for some initialization routines. All answers are bitwise identical, but
there are new optional arguments to numerous intialization routines.
This commit addresses and should close NOAA-GFDL/MOM6-examples Issue #135.
  Made the ocean_state_type argument to ocean_model_flux_init optional, so that
this routine can be used more versatilely from the coupler.  All answers are
bitwise identical.
  Removed trailing white space that had recently been added on two lines.  All
answers are bitwise identical.
Renames "mod" variable to avoid using imod() fn
  The name "mod" had been used for various module name variables throughout the
MOM6 code, but this can cause name-space conflicts with the mod intrinsic
function, so "mod" has been renamed "mdl" throughout the MOM6 code.  All answers
are bitwise identical.
Renamed variables "mod" to "mdl"

Passed: https://gitlab.gfdl.noaa.gov/ogrp/MOM6/pipelines/2054

(Initial fail seems to have been a stale file issue).
- VarMix was originally for a crude implementation of a Visbeck et al.
  diffusivity formula. It has become a catchall for resolution functions,
  stored slopes and length-scales. It infact has never contained an actual
  diffusivity. The meaning of the parameter USE_VARIABLE_MIXING was original
  "use Visbeck" but has really meant "allocate and calculate everything in
  this module even if not being used". This has now been cleaned up...
- USE_VARIABLE_MIXING still exists but does nothing.
  - It will be made obsolete shortly.
- Visbeck related fields (VarMix@L2v, ...) are allocated only if
  KhTh_Slope_Cff>0 or KhTr_Slope_Cff>0.
- The Eady growth rates are now allocated and calculated if
  either of Visbeck or MEKE schemes are in use.
- The field VarMix%Rd_dx_h is allocated and calculated if either the
  diagnostic is requested or the field needed "Passivity" or the
  resolution functions.
- The wave speed VarMix%cg1 is calculated only if needed but which
  includes resolution fns, Rd_dx, and FGNV stream fn.
  - Closes #522.
- Added logic in tracer_hordiff() to avoid referencing VarMix%L2v or
  VarMix%SN_v when VarMix%KhTh_Slope_Cff==0.
- Added logic in tracer_hordiff() to avoid referencing VarMix%L2v or
  VarMix%SN_v when VarMix%KhTr_Slope_Cff==0.

- This commit affects available_diags and MOM_parameter_doc for some
  experiments but does not changes answers.
- The third paper, in the series of Fox-Kemper et al., proposed upscaling
  the buoyancy gradients from the frontal scale to the grid-scale. To date
  this has been implemented as a globally constant upscaling indicated by
  the FOX_KEMPER_ML_RESTRAT parameter. This commit implements the upscaling
  as a function of grid-spacing, 1st-baroclinic deformation radius and a
  frontal length scale parameter, MLE_FRONT_LENGTH.
- VarMix is now passed to mixedlayer_restrat since we need VarMix%Rd_dx.
- Updated MLE doxumentation.
- For some reason we had "MLD" in the argument list but "Hml" in the
  subroutine code and declarations. This was breaking the CM4 compile.
- This fixes another occurrence of a keyword being used as a
  variable name. It is allowed but is rather poor practice and
  makes searching for the use of keywords and constructs somewhat
  harder.
- The forcing diagnostics were using array syntax than meant calculations
  were being made for points that could be invalid (uninitialized in halos)
- In order to call calculateBuoyancyFlux2d() along with the ePBL
  the KPP fields are all allocated but not all are needed. This
  allocates only those used.
- The resetting/zeroing and accumulation of diagnostic arrays within
  extractFluxes1d() assumes the routine is called only once. With the
  need for a buoyancy flux in ePBL, it is currently being called twice.
  - This was leading to the "hdfs" diagnostic accumulating too much.
- I have added a flag to indicate to not calculate the diagnostic fields.
  - A better solution will be to only call once but calculate a buoyancy
    flux in extractFluxes1d() but this will require more coding since
    the latter is dependent on the equation of state and needs a different
    interpretation of mass fluxes.
- I checked that this changes "hdfs" but have not checked whether other
  diagnostics were affected.
- Closes NOAA-GFDL/MOM6-examples#128 but I opened #543 to make a note that
  we have more tidying up to do.
Re-factor of MOM_lateral_mixing_coeffs.F90 (VarMix)
Fixed argument name to match declaration gen_trcr_col_physics()
- A new local variable was missing from the openmp directives.
@kshedstrom
Copy link
Collaborator

A checkout of gfdl/candidate-dev-master-2017-07-05
passes all my tests.

@gustavo-marques
Copy link
Collaborator

gustavo-marques commented Jul 21, 2017 via email

@adcroft adcroft merged commit 6db42af into dev/master Jul 21, 2017
@adcroft
Copy link
Collaborator Author

adcroft commented Jul 21, 2017

Thanks all - dev/master on all repos have been rolled forward.

MOM6-examples dev/master now points to the commit that we tagged dev/master/2017.07.05 and which uses MOM6 dev/master implied by that tag. I did this by doing fast-forwards - I had placed a dev/master tag on dev/gfdl branch. From here on, we'll use dev/gfdl/yyyy.mm.dd tags on dev/gfdl.

@adcroft adcroft deleted the candidate-dev-master-2017-07-05 branch July 21, 2017 17:33
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.

9 participants