Add ERF-native SHOC PBL parameterization#3298
Draft
pressel wants to merge 24 commits into
Draft
Conversation
… into native-shoc-pr-development-base
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds an ERF-native implementation of the Simplified Higher-Order Closure (SHOC) turbulence and cloud parameterization.
The native implementation lives in
Source/PBL/Shoc. It is based on the E3SM/EAMxx SHOC algorithms and source structure, but it is adapted to ERF data structures, AMReX loops, ERF surface-flux coupling, diagnostics, and build systems. It is not a bit-for-bit port of EAMxx SHOC.Users select the native path at runtime with:
The optional EAMxx SHOC interface remains available through:
The legacy runtime name
SHOCnow maps toEAMXX_SHOCwith a deprecation warning.What changed
NATIVE_SHOCandEAMXX_SHOCruntime names.SHOCas a deprecated alias forEAMXX_SHOC.Coupling behavior
Native SHOC receives lower-boundary heat, moisture, and momentum fluxes through ERF's surface-layer infrastructure. These fluxes may come from Monin-Obukhov similarity theory, prescribed surface-layer inputs, or an active land or ocean surface model when that model provides fluxes.
SHOC diagnoses subgrid non-precipitating cloud partitioning with its assumed PDF. To avoid double counting, ERF suppresses the saturation-adjustment or condensation step in the microphysics package when a SHOC-family PBL scheme is active. This does not disable microphysics. Microphysics still handles precipitating processes outside SHOC's cloud macrophysics role.
User-facing notes
Native SHOC is selected at runtime:
It does not require EAMxx, EKAT, or Kokkos.
Native SHOC requires the lower boundary to use ERF's surface-layer boundary condition:
Native SHOC is column based. Like ERF's other column physics, it requires each AMReX box on a SHOC-active level to span the full vertical domain. Z-split boxes are not supported.
Native SHOC supports two transport modes:
The default is
tendencies.Documentation
This PR updates:
Docs/sphinx_doc/theory/PBLschemes.rstDocs/sphinx_doc/buildingLibraryConfig.rstDocs/sphinx_doc/buildingSystems.rstSource/PBL/Shoc/README.mdThe docs describe runtime selection, build behavior, runtime options, diagnostics, surface-flux coupling, microphysics coupling, and the full-column grid requirement.
Reviewer notes
The most important review areas are:
NATIVE_SHOC,EAMXX_SHOC, and non-SHOC cases.This PR does not update regression gold files.
This PR does not add a generalized portability checker.
Testing
Please update this section with final local or CI results before merging.
Suggested validation:
Also validate the Sphinx docs build if the docs environment is available.