Skip to content

STOFS-3D-ATL coupled: write and publish verticalVelocity and diffusivity (as ops and standalone) - #224

Open
mansurjisan wants to merge 2 commits into
developfrom
fix/atl-coupled-vvel-diff
Open

mansurjisan wants to merge 2 commits into
developfrom
fix/atl-coupled-vvel-diff

Conversation

@mansurjisan

Copy link
Copy Markdown
Collaborator

Description

Makes the STOFS-3D-ATL UFS-coupled run (DATM + CMEPS + SCHISM, OLDIO) write the verticalVelocity and diffusivity field stacks, as the standalone (scribe) run and ops v3.1.5 do.

Cause: the coupled param.nml had iof_hydro(17) (vertical velocity) and iof_hydro(21) (vertical eddy diffusivity) at 0, while the ops template and the standalone template have both at 1. The coupled schout therefore never held either field; the WCOSS2 coupled post log lists only ['evaporation', 'wind_stress', 'dahv'] as unsplit variables.

OLDIO supports both fields in the existing build (schism_step.F90: vertical_velocity under iof_hydro(17), diffusivity under iof_hydro(21)), so no executable change is needed. The coupled splitter (schism_combine_outputs.py, convert_schout_to_split) did not map the OLDIO names, so the flags alone would have left both fields in schout and unpublished. Changes:

  • fix/stofs_3d_atl_ufs/stofs_3d_atl_ufs.param.nml: iof_hydro(17) = 1, iof_hydro(21) = 1; header updated. iof_hydro(2) (air pressure) stays 0.
  • ush/schism_combine_outputs.py: vertical_velocity -> verticalVelocity_N.nc and diffusivity -> diffusivity_N.nc, the scribe names that the fields product, the ops attribute step and the archive globs already handle.
  • Tests: the param.nml diff list now allows only iof_hydro(2); two new splitter tests (fields present and absent).

Cost: each field is 3,052,121 nodes x 49 levels x 4 bytes, about 0.6 GB per hourly record before compression. The coupled 3D output goes from 5 arrays (zcor, temp, salt, hvel x2) to 7, so about +40% on 3D combine time and 3D staging/archive volume per cycle.

COMOUT: the split 3D stacks are written uncompressed, so the two fields add about 2 x 120 hourly records x 0.6 GB, roughly 144 GB per cycle, to COMOUT staging (plus their deflated copies inside the staged schout files). Check ptmp space before cycling.

Also removes the run-guide limitation line saying coupled runs do not write these fields, and updates the splitter docstring.

Type of change

  • Bug fix (non-breaking change that fixes an issue)

Change characteristics

  • Changes outputs (values, COMOUT files or names, archives)? YES, two new field stacks per phase (fields.verticalVelocity, fields.diffusivity), no change to existing ones or to model results
  • Breaking change to existing functionality? NO
  • Requires a nos-utils submodule bump (nos-workflow) or a paired nos-workflow change (nos-utils)? NO
  • Requires new or regenerated fix files on the machine? YES, the updated stofs_3d_atl_ufs.param.nml must be in the FIXofs the coupled cards read
  • Requires a re-prep or a new hotstart before the next cycle? NO
  • Machines affected: WCOSS2 / Hercules (ATL coupled only; SECOFS and AK templates are untouched)

How has this been tested?

  • pytest: 1337 passed, 13 skipped, 1 xfailed (baseline 1335, plus the 2 new splitter tests).
  • On-machine: not yet run. Needs one coupled ATL cycle to confirm the two stacks appear in the post log and the walltimes of the nowcast and forecast (combine) and post (split) jobs stays inside the card limits.

Checklist

  • Dependent PRs merged and published (nos-utils before any submodule bump)
  • pytest suite passes
  • Existing operational behavior preserved, or the change is called out above
  • No edits to a shared FIXofs while it is cycling (the coupled ATL FIXofs is not on a cron; deploy between cycles)
  • Self-review done; yaml comments and docstrings updated where behavior changed
  • No markdown files added to the repo (this template is the only exception)

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.

1 participant