Skip to content

Update with MOM6 folk#1

Merged
hlkong merged 24 commits into
hlkong:dev/gfdlfrom
mom-ocean:dev/gfdl
Dec 26, 2017
Merged

Update with MOM6 folk#1
hlkong merged 24 commits into
hlkong:dev/gfdlfrom
mom-ocean:dev/gfdl

Conversation

@hlkong
Copy link
Copy Markdown
Owner

@hlkong hlkong commented Dec 26, 2017

No description provided.

kshedstrom and others added 24 commits November 29, 2017 10:57
- adds to MOM_parameter_doc.all
- has both dye and supercritical-type flow input
- dyed_obc and dyed_channel have NUM_DYE_TRACERS dyes, runtime parameter
- only invoke vertical diffusion for nz > 1
- Needs OBC tracer registry
- Needs boundary update call
- Exchange is not needed because we set OBC values in halos.
- Also added check for nz==1 in vertical diffusion.
  Added a new function, transport_remap_grid_needed, that indicates whether it
is necessary to calculate the diagnostic grids for transports, and then only
call diag_update_remap_grids if it is necessary.  Without this change, the model
will fail to run if no transports are being remapped but any other diagnostic
fields are being remapped.  If the model does run, all answers are bitwise
identical.
  Rescaled thickness weighting in global_layer_mean and global_volume_mean to
avoid overflow or underflow for extreme values of H_to_m.  This does not change
answers, but makes the code more robust.  All answers are bitwise identical.
  Corrected a required argument name and comment in int_density_dz_generic_plm
from H_subroundoff to dz_subroundoff to reflect the fact that the argument
dz_neglect is a geometric height difference, not a thickness (in m or kg m-2 or
whatever) difference.  Also added a fatal argument if anyone very tries to use
int_density_dz_generic_plm_analytic, which from inspection simply can not be
right, but thankfully appears not to be used ever.  All answers are bitwise
identical.
  Replaced the hard-coded parameter LARGE_VAL inside of MOM_entrain_diffusive
with an equivalent parameter that is rescaled appropriately when H_TO_M is
changed.  All answers are bitwise identical when H_TO_M=1, but answers can
change slightly for very small values of H_TO_M.  All existing test cases are
bitwise identical.
  Corrected the accumulation of one of the work terms contributing to GMwork and
MEKE%GM_src so that it now gives answers that are robust to changes in H_TO_M.
Also corrected the units written out with 6 diagnostic diffusivities, so
available_diags files will change. Answers remain unchanged if H_TO_M=1, and no
test case solutions change.
  Corrected the unit conversion from H to m inside of the calculation of
SkinBuoyFlux, so it now works properly when H_to_m is not 1.  Also cleaned up
this calculation to avoid the use of array syntax in calculations.  This will
change answers in test cases that use some variants of ePBL with H_TO_M not
equal to 1, but answers do not change in existing test cases.
  Corrected the calculation of the modal structure when H_to_m is not 1.  This
particular code failed because remapping_core_h requires that the input and
output grids use the same units.  This can change answers, but does not change
any of the existing test cases.
  Corrected the rescaling of Coef_x and Coef_y when doing checksums and only
report these checksums if the arrays are in use.  All answers are bitwise
identical.
  Changed H_subroundoff to dz_neglect in a call to int_density_dz_generic_plm,
reflecting the fact that this particular argument is for an actual vertical
geopotential height difference, which will not scale the same way as the
internal representation of thickness.  This changes answers if H_TO_M is not 1,
but answers are bitwise identical in all existing test cases.
  Corrected an expression that combined two variables with units of H and m in
ePBL.  This code is only exercised with certain options for the shape of the
diffusivity, and all existing test cases are bitwise identical.
  Corrected the unit conversion from H to m inside of the calculation of
SkinBuoyFlux, so it now works properly when H_to_m is not 1.  Also cleaned up
this calculation to avoid the use of array syntax in calculations.  This will
change answers in test cases that use some variants of ePBL with H_TO_M not
equal to 1, but answers do not change in existing test cases.
  Changed the value for a tiny amount of TKE from 1e-300 to 1e-150  to avoid
underflow when H_to_m is much less than 1 in one sensitivity calculation as a
part of an iteration in the mechanical entrainment portion of the bulk mixed
layer code.  This does not change any answer in existing test cases.
  Added new optional arguments for the thicknesses to neglect to all of the
remapping code where a neglected thickness is used.
  The subroutines that were changed include: remapping_core_h, remapping_core_w,
build_reconstructions_1d, {PCM, PLM,PPM,PQM}_reconstruction,
{PLM,PPM}_boundary_extrapolation, edge_values_..., edge_slopes_...,
build_and_interpolate_grid, remapByProjection, remapByDeltaZ,
integrateReconOnInterval, build_{rho,hycom1,SLight}_column, and
build_rho_column_iteratively.
  The internal work routines P3M_interpolation and {PPM,P3M}_limiter have new
required arguments. Also, to accomodate the new optional h_neglect arguments,
internally h_neglect was renamed hNeglect in many places. This change will
enable this code to reproduce across changes in the internal representation of
thickness, once the optional arguments are used.  All answers are bitwise
identical.
  Set values of h_neglect and h_neglect edge that are consistent with the
internal representation of thickness in MOM6, and added these arguments to the
underlying regridding code.  Altered routines include ALE_regrid_accelerated,
pressure_gradient_plm, pressure_gradient_ppm, remap_all_state_vars,
ALE_remap_scalar, build_rho_grid, build_grid_HyCOM1, and build_grid_SLight. Also
shortened some internal variable names.  All answers are bitwise identical in
the test cases.
  Rescale the negligible thickness used in some of the neutral_diffusion
routines, including adding a new optional argument for edge remapping, so that
answers do not change with the value of H_TO_M. Also reformatted many of the
unit test calls to avoid overly long lines.  All answers are bitwise identical
when H_TO_M=1, and no test cases answers change.
  Perform the conversion of thicknesses into the internal H unit representation
inside of all of the intialization routines, allowing things like ALE remapping
to work correctly during initialization. This affects a large number of routines
for initializing thickness, temperatures and salinities, and velocities.  With
these changes (and changes to ALE), all MOM6 test cases now give the same
initial values regardless of the scaling of H.  All answers in the existing test
cases are bitwise identical.
@hlkong hlkong merged commit c239823 into hlkong:dev/gfdl Dec 26, 2017
hlkong pushed a commit that referenced this pull request Jul 11, 2018
removed copy_profiles, using linked profiles in ensemble_filter
hlkong pushed a commit that referenced this pull request Aug 19, 2018
Pull latest MOM6 changes into dev/gfdl fork
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.

4 participants