Skip to content

Add vertex shear mixing#801

Merged
adcroft merged 10 commits into
mom-ocean:dev/gfdlfrom
Hallberg-NOAA:vertex_shearmix
Jun 26, 2018
Merged

Add vertex shear mixing#801
adcroft merged 10 commits into
mom-ocean:dev/gfdlfrom
Hallberg-NOAA:vertex_shearmix

Conversation

@Hallberg-NOAA
Copy link
Copy Markdown
Collaborator

Added the ability to calculate the effects of stratified shear mixing at the tracer vertices. This new
capability dramatically improves mixing-driven gridscale noise in short test cases, especially in the
tropics, and there may be changes to climate. By default, all changes are bitwise identical, but there are multiple new interfaces and runtime parameters. The MOM6 commits covered by this change include:

  Added the new module MOM_full_convection to homogenize temperature and
salinity in regions of static instability.  All answers are bitwise identical,
but a new public interface has been added.
  Cleaned up the MOM_kappa_shear code in preparation for adding the code to do
the shear-mixing calculations at the vertices, includign dOxyGenizing the
comments describing the elements of the Kappa_shear_CS, compacting some openMP
directives, and eliminating duplicate comments describing arguments.  All
answers are bitwise identical.
  Cleaned up the allocation and restart registry calls for the persistent
elements of the visc type, including always setting visc%Kv_slow, as the comment
indicated should be done but was not.  The allocate calls now use safe_alloc_ptr
and the restart registration calls avoid the use of a vardesc type.  All answers
are bitwise identical.
  Added a new pointer, Kv_shear_Bu, to the vertvisc_type to describe the
viscosity at the corner points. Also amended the comments describing TKE_turb
to note that this now can be discretized at either the tracer or corner points.
By default all answers are bitwise identical.
  Check whether visc%Kv_shear_Bu is allocated, and if so add it to the
viscosity.  All answers are bitwise identical unless visc%Kv_shear_Bu is
allocated.
  Added a new subroutine, Calc_kappa_shear_vertex, to calculate the Jackson et
al. stratified shear mixing at the cell corners, along with a new runtime
parameter, VERTEX_SHEAR, to control wheter this is used, and a second new
function, kappa_shear_at_vertex, to allow external queries of the setting of
VERTEX_SHEAR.  By default, all answers are bitwise identical, but there are
two new interfaces and MOM_parameter_doc files have a new field.
  Added code to calculate shear mixing at the cell verticies if VERTEX_SHEAR is
true.  Also added calls to allocate visc%Kv_visc_Bu and visc%TKE_turb in this
case, including the addition of new restart fields.  By default, all answers are
bitwise identical, but several recently added interfaces are used.  With this
commit, the vertex mixing is fully available.
  Added halo updates of vertex turbulence fields during initialization for
reproducibility across restarts in non-symmetric memory mode.  Also eliminated
an unnecessary variable.  All answers in test cases are bitwise identical.
@Hallberg-NOAA
Copy link
Copy Markdown
Collaborator Author

This PR is being tested with https://gitlab.gfdl.noaa.gov/ogrp/MOM6/pipelines/4749

  Corrected a typo in the restart registration call for Kv_shear that was
introduced with 130a32b.  This bug fix should restore the
ability to reproduce across restarts.
@adcroft
Copy link
Copy Markdown
Collaborator

adcroft commented Jun 26, 2018

Second pipeline https://gitlab.gfdl.noaa.gov/ogrp/MOM6/pipelines/4754 passed.

@adcroft adcroft merged commit 4475187 into mom-ocean:dev/gfdl Jun 26, 2018
@Hallberg-NOAA Hallberg-NOAA deleted the vertex_shearmix branch July 30, 2021 19:09
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.

2 participants