Skip to content

Add ndrop nsubmix diagnostics - #8645

Draft
susburrows wants to merge 1 commit into
E3SM-Project:masterfrom
susburrows:codex/eamxx-instrument-ndrop-nsubmix
Draft

Add ndrop nsubmix diagnostics#8645
susburrows wants to merge 1 commit into
E3SM-Project:masterfrom
susburrows:codex/eamxx-instrument-ndrop-nsubmix

Conversation

@susburrows

@susburrows susburrows commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Add exact ndrop explicit mixing count diagnostics without changing the physics.

Summary

Add three per-column EAMxx output fields:

  • ndrop_nsubmix: count used by the most recent MAMAci call.
  • ndrop_sum_nsubmix: sum across MAMAci calls in the enclosing physics step.
  • ndrop_max_nsubmix: maximum across those calls.

MAM4xx returns the integer that directly controls the existing explicit mixing loop. EAMxx records the latest value and physics-step summaries within the existing device kernel, without a per-call host copy, MPI reduction, or separate reset kernel.

All three fields are initialized to zero. Before the first ACI call, zero means that the count has not yet been calculated.

Exactness and failure behavior

Atmospheric history output defaults to single precision, including for double-precision model builds. An always-active check therefore limits each count and accumulated sum to 16,777,216 (2^24) in all builds. Every accepted integer remains exact both in the model's Real fields and in default history output. Invalid nonpositive counts and aggregates above the exact limit fail loudly.

Dependency

Depends on eagles-project/mam4xx#577, which exposes the exact loop count without changing MAM4xx physics.

Validation

  • MAM4xx focused ndrop unit test: 1/1 passed.
  • Complete MAM4xx ndrop comparison suite: 78 passed and 2 existing configured skips; no numerical failures.
  • Independent review: PASS for draft-PR readiness.
  • Local EAMxx compilation was not attempted because this Mac is not a supported EAMxx test machine.

Scope

This diagnostic-only change does not alter the computed substep count, loop bounds, equations, limiters, process ordering, state updates, or production physics.

@susburrows
susburrows requested a review from odiazib August 18, 2026 18:23
@rljacob rljacob added MAM4xx MAM4xx related changes EAMxx C++ based E3SM atmosphere model (aka SCREAM) labels Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

EAMxx C++ based E3SM atmosphere model (aka SCREAM) MAM4xx MAM4xx related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants