Skip to content

Require state vars in write_initial_state_dataset, including surface pressure#615

Open
cbegeman wants to merge 16 commits into
E3SM-Project:mainfrom
cbegeman:incl-surf-pressure-in-state-vars
Open

Require state vars in write_initial_state_dataset, including surface pressure#615
cbegeman wants to merge 16 commits into
E3SM-Project:mainfrom
cbegeman:incl-surf-pressure-in-state-vars

Conversation

@cbegeman

@cbegeman cbegeman commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

TODO to include submodule update to E3SM-Project/Omega#433

Currently, write_vert_coord_dataset requires the vert_coord variables. Similarly, here write_initial_state_dataset requires the state variables. This ensures that all model-specific required inputs are present.

Thus, this PR adds surfacePressure to the initial state dataset, requiring that Omega have the capability to read it in, provided by E3SM-Project/Omega#433.

The implications of this PR are that any tests not using all of the state variables (e.g., those not including tracers) must use write_model_dataset or add_outputs_for_model_inputs(..., skip_validation=True), which does not require state variables by default.

Checklist

  • Testing comment in the PR documents testing used to verify the changes

Fixes #594

@cbegeman cbegeman self-assigned this Jun 16, 2026
@cbegeman cbegeman changed the title Require state vars in write_initial_state_dataset, including surface pressure Require state vars in write_initial_state_dataset, including surface pressure Jun 16, 2026
@cbegeman

Copy link
Copy Markdown
Collaborator Author

Testing

with e3sm_submodules/Omega at 18c5e81d5b

Polaris omega_pr suite

  • Baseline workdir: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-main-omega-20260512
  • Baseline build: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-main-omega-20260512/build
  • PR build: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-surfacepressure-omega-surfacepressure-20260515/build
  • PR workdir: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-surfacepressure-omega-surfacepressure-20260515
  • Machine: chrysalis
  • Partition: compute
  • Compiler: oneapi-ifx
  • Build type: Release
  • Log: not found
  • Result: All tests passed

Polaris mpaso_pr suite

  • PR build: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-surfacepressure-mpaso-master-20260516/build
  • PR workdir: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-surfacepressure-mpaso-master-20260516
  • Machine: chrysalis
  • Partition: compute
  • Compiler: oneapi-ifx
  • Build type: unknown
  • Log: not found
  • Result:
    • Failures (1 of 19):
      • ocean/planar/inertial_gravity_wave/convergence_both >> Resolved

@cbegeman cbegeman force-pushed the incl-surf-pressure-in-state-vars branch 3 times, most recently from 9b18ad9 to 7cf5b3f Compare June 18, 2026 16:22
@cbegeman cbegeman marked this pull request as ready for review June 18, 2026 16:31
@cbegeman cbegeman force-pushed the incl-surf-pressure-in-state-vars branch from 7cf5b3f to 00796e1 Compare June 19, 2026 15:17
@cbegeman cbegeman requested a review from xylar June 29, 2026 15:54
@xylar

xylar commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

It's fine to just remove check-list items that don't apply. I personally prefer that to crossing them out.

@xylar xylar added enhancement New feature or request ocean Related to the ocean component Omega PR required The polaris changes won't work with the current Omega submodule and require an update labels Jun 30, 2026

@xylar xylar left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I rebased this onto main and the tested with E3SM-Project/Omega#433, using Omega develop and Polaris main as the baseline.

Polaris omega_pr suite

  • Baseline workdir: /lcrc/group/e3sm/ac.xylar/polaris_1.0/chrysalis/test_20260630/omega-pr-develop
  • Baseline build: /lcrc/group/e3sm/ac.xylar/polaris_1.0/chrysalis/test_20260630/omega-pr-develop/build
  • PR build: /lcrc/group/e3sm/ac.xylar/polaris_1.0/chrysalis/test_20260630/omega-pr-surf-press-in-state-check/build
  • PR workdir: /lcrc/group/e3sm/ac.xylar/polaris_1.0/chrysalis/test_20260630/omega-pr-surf-press-in-state-check
  • Machine: chrysalis
  • Partition: compute
  • Compiler: oneapi-ifx
  • Build type: Release
  • Log: /lcrc/group/e3sm/ac.xylar/polaris_1.0/chrysalis/test_20260630/omega-pr-surf-press-in-state-check/polaris_omega_pr.o1243944
  • Result: All tests passed

The code looks good.

I would like to take out 00796e1 if #632 makes it in before this PR.

I will approve as soon as we bring E3SM-Project/Omega#433 in via a submodule update.

@cbegeman

Copy link
Copy Markdown
Collaborator Author

@xylar Of course. I think we should remove 00796e1 from this PR regardless.

@cbegeman

cbegeman commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator Author

Testing

Re-tested after surface pressure was moved from the state to vert_coord:

Polaris omega_pr suite

  • PR build: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-surfacepressure-omega-surfacepressure-20260707/build
  • PR workdir: /lcrc/group/e3sm/ac.cbegeman/scratch/MPAS-Ocean-output/chrys/polaris-surfacepressure-omega-surfacepressure-20260707
  • Machine: chrysalis
  • Partition: compute
  • Compiler: oneapi-ifx
  • Build type: Release
  • Log: not found
  • Result: All tests passed

@cbegeman cbegeman force-pushed the incl-surf-pressure-in-state-vars branch from 00796e1 to fa4394d Compare July 6, 2026 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ocean Related to the ocean component Omega PR required The polaris changes won't work with the current Omega submodule and require an update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create and use ocean model-specific state variable lists

2 participants