Skip to content

Remove physcons Module #652

Description

@scrasmussen

Use of the physcons module in the CCPP physics does not follow CCPP regulations and direct dependencies on the global physcons module from CCPP physics schemes should be removed.

  • Supplies physical constants through explicit CCPP arguments, with standard names, units, and metadata.
  • Makes each scheme’s required constants visible in its interface instead of relying on hidden module state.
  • Improves portability and reuse of physics schemes in different host models and configurations.
  • Simplifies dependency tracking, testing, and maintenance by centralizing ownership of physical constants in the host/CCPP framework.

This is an issue to track the progress of the removal of physcons module from the SCM and CCPP Physics and will be updated as PRs are submitted.

Tests

  • SCM Github CI
  • ufs-wm Derecho regression tests
    • Regression Test Answer Changes
      • control_stochy_gnu failed only the bit-for-bit comparison
        • note: this test for intel, debug-intel, and debug-gnu passed
        • Some initial differences are tiny, around 1e-12, but the regression comparison has no numerical tolerance, so they fail
        • By hour 12, stochastic physics has amplified those perturbations into widespread differences
      • control_csawmg_gnu failed only the bit-for-bit comparison
        • note: this test for intel, debug-intel, and debug-gnu passed
        • The evidence points to the physical-constants refactor in UFSATM/ccpp/physics/physics/CONV/Chikira_Sugiyama/cs_conv.F90:303. Previously, derived quantities such as elocp, emeltocp, cpoel, and fact2 were compile-time parameters. They are now recomputed at runtime from CCPP arguments. Optimized GNU evaluates that arithmetic slightly differently

PRs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions