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

merge latest dev/emc #7

Merged
merged 136 commits into from
Apr 6, 2020
Merged

Conversation

DeniseWorthen
Copy link
Owner

No description provided.

ashao and others added 30 commits September 4, 2019 16:42
First stab at parameterizing the diabatic mixing by mesoscale eddies
using a 'bulk layer' approach. Added a simple unit test where column
thickness is exactly equal to the boundary layer depth, equal,
layer thicknesses, and the tracer gradient points from right to left.

Go Gustavo and Andrew
Add more complex unit tests and begin work on improving the algorithm
to deal with cases where the boundary layer intersects within a layer.
For the near-boundary lateral mixing, the indices of the layers that
are spanned by the boundary layer need to be returned. Additionally,
in cases where the boundary layer intersects partway through a layer,
the non-dimensional position also needs to be returned for polynomial
reconstructions to be evaluated correctly. Six unit tests were added
to test this new function.

All unit tests currently pass
Many updates to allow the boundary layer to intersect a layer.
Commented out some of the unit test previously added as the
API has changed. These need to be revisited later.
- Add two unit tests for cases where the surface boundary layer
intersects partly through a cell.
  1. Right column same BLT, same thicknesses, flux from right to left,
  constant in the vertical
  2. Right column same BLT, same thicknesses, flux from right to left,
  linear profile on right
TODO:
  1. Uncomment out previous unit tests
  2. Update API in those test cases
  3. Need to add similar unit tests for the bottom boundary
This updates all the previously commented out unit tests to update the
API. These changes were required to allow for cases where the boundary
layer that intersects partway through a model layer.
All the development in the boundary layer mixing scheme has focused on
simple unit tests. This provides a skeleton for some of the interfaces
that will need to be in place before using the new parameterization in a
'real' MOM6 simulation
- Pass diabatic CS through tracer_hor_diff_init and
lateral_boundary_mixing_init.
- Modify extract_diabatic_member to return KPP and ePBL CS
- Finish initialization for lateral_boundary_mixing
The new lateral boundary mixing routine has been added into
tracer_hor_diff and needs to be tested in a 'real' configuration.
This only works with KPP for now because ePBL needs US passed which is
not currently implemented in the API for tracer_hor_diff
Calculation of fluxes needs to be masked otherwise NaNs will
definitely be calcualted
The CVMix KPP module would allocate it's control structure regardless
of wthether KPP was used or not. The allocate statement has been moved
down after USE_KPP has been parsed.
- Indexing error in the y-direction led to a non-conservation of
  tracer
- Extra guards added to avoid divisions by zero
- Pass US through to lateral_boundary_mixing to enable compatibility
  with ePBL
Diffusive fluxes calculated from the lateral boundary mixing scheme
of tracers have been added as a diagnostic to the tracer registry.
The total 'bulk' flux was added as well
The get_MLD and get_BLD routines only return boundary layer depths
on the T-grid's computational domain leading to striping when
calculating the LBM fluxes. Adding a halo update for this variable
fixes the problem
TODO:
* add code for boundary = BOTTOM
* add unit tests
alperaltuntas and others added 27 commits February 12, 2020 15:17
Fix OMP race conditions and some chkcsum calls
Following changes have been made:

* add new argument (thickness_diffuse_CS) to horizontal_viscosity;
this is needed so that the GM coeff can be called from MOM_hor_visc.

* Deletes unnecessary calls to pass_vector

* Simplifies GME by removing dependecy on MEKE. GME is now set to be
some multiple of the GM coeff. A new runtime parameter (GME_efficiency)
can be used to control the strength of GME.
…de_MEKE

Updates GME by removing dependency on MEKE
Fix thread-unsafe computations of advective tracer flux vertical sums
solve conflice in mom_surface_forcing_nuopc.F90
@DeniseWorthen DeniseWorthen merged commit 1be1217 into DeniseWorthen:dev/emc Apr 6, 2020
DeniseWorthen pushed a commit that referenced this pull request Oct 1, 2021
DeniseWorthen pushed a commit that referenced this pull request Apr 29, 2022
Corrected the descriptions of 60 variables
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.

7 participants