Skip to content

Add marine LEKTF workflow support#2175

Open
AndrewEichmann-NOAA wants to merge 26 commits into
developfrom
feature/revive_marine_letkf_workflow
Open

Add marine LEKTF workflow support#2175
AndrewEichmann-NOAA wants to merge 26 commits into
developfrom
feature/revive_marine_letkf_workflow

Conversation

@AndrewEichmann-NOAA

@AndrewEichmann-NOAA AndrewEichmann-NOAA commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Description

Companion PR to NOAA-EMC/global-workflow#4789 to add marine LETKF to workflow and recenter increments around deterministic background to initialize ensemble.

Companion PRs

NOAA-EMC/global-workflow#4789

Issues

NOAA-EMC/global-workflow#5025
Also resolves #2155

Automated CI tests to run in Global Workflow

  • atm_jjob
  • C96C48_ufs_hybatmDA
  • C96C48_hybatmsnowDA
  • C96_gcafs_cycled
  • C48mx500_3DVarAOWCDA
  • C48mx500_hybAOWCDA
  • C96C48_ufsgsi_hybatmDA
  • C48_ufsenkf_atmDA
  • C96C48_hybatmDA

@AndrewEichmann-NOAA AndrewEichmann-NOAA changed the title Feature/revive marine letkf workflow Add marine LEKTF workflow support Jun 15, 2026
@AndrewEichmann-NOAA

Copy link
Copy Markdown
Collaborator Author

@shlyaeva Is @lslivins Laura?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR is a draft companion to global-workflow changes, intended to add/enable marine LETKF workflow support and related recentering/ensemble-increment handling in GDASApp’s marine configuration templates.

Changes:

  • Updates marine workflow YAML templates to stage/route LETKF increment outputs into analysis COM locations and to stage recentering inputs (increments/analysis).
  • Extends marine LETKF configuration to include additional sea-ice increment variables and enables saving posterior ensemble increments.
  • Adds a JCB marine output template for ensemble increments and introduces marine_letkf_app-conditioned behavior in marine JCB templates.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
parm/marine/marine_ens_config.yaml.j2 Updates LETKF staging/output paths and switches per-resolution fix template inclusion to zero-padded OCNRES.
parm/marine/marine_ecen_config.yaml.j2 Adds staging for LETKF increments/analysis for ensemble recentering and updates fix-template inclusion formatting.
parm/marine/marine_det_config.yaml.j2 Zero-pads OCNRES when including the marine fix staging template.
parm/marine/marine_bmat_config.yaml.j2 Zero-pads OCNRES when including the marine fix staging template.
parm/marine/jcb-base.yaml.j2 Adds ice thickness variables and enables saving posterior ensemble increments for marine LETKF driver settings.
parm/jcb-gdas/model/marine/marine_output_ensemble_increments.yaml.j2 Introduces a marine model output template intended for ensemble increment output.
parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 Conditions ensemble state variable lists on LETKF-app mode (and adds additional ice variables for that path).
parm/jcb-gdas/algorithm/marine/soca_ens_handler.yaml.j2 Adds LETKF-app-conditioned behavior for increment variables, optional analysis-increment inputs, and recentering background selection.

Comment thread parm/marine/marine_ens_config.yaml.j2
Comment thread parm/marine/marine_ecen_config.yaml.j2 Outdated
Comment thread parm/marine/marine_ecen_config.yaml.j2 Outdated
Comment thread parm/marine/jcb-base.yaml.j2
Comment thread parm/jcb-gdas/model/marine/marine_background_ensemble.yaml.j2 Outdated
@RussTreadon-NOAA

Copy link
Copy Markdown
Contributor

@AndrewEichmann-NOAA : The CI failure was due to soca compilation issues. Not sure why this happened. I will log into Ursa role.jedipara and manually rerun CI to troubleshoot.

@emcbot

emcbot commented Jun 18, 2026

Copy link
Copy Markdown

Automated GW-GDASApp Testing Results:
Machine: ursa

Start: Thu Jun 18 11:19:17 UTC 2026 on ufe04
---------------------------------------------------
Build:                                  *FAILED*
Build: Failed at Thu Jun 18 11:20:36 UTC 2026
Build: see output at /scratch4/NCEPDEV/stmp/role.jedipara/CI/ursa/GDASApp/workflow/PR/2175/global-workflow/sorc/log.build

@emcbot

emcbot commented Jun 18, 2026

Copy link
Copy Markdown

Automated GW-GDASApp Testing Results:
Machine: ursa

Start: Thu Jun 18 11:48:48 UTC 2026 on ufe04
---------------------------------------------------
Build:                                  *FAILED*
Build: Failed at Thu Jun 18 11:50:07 UTC 2026
Build: see output at /scratch4/NCEPDEV/stmp/role.jedipara/CI/ursa/GDASApp/workflow/PR/2175/global-workflow/sorc/log.build

@RussTreadon-NOAA

Copy link
Copy Markdown
Contributor

@AndrewEichmann-NOAA :

Not sure if the following is the problem, but it's something I noticed:

I would update sorc/gdas.cd in your g-w branch AndrewEichmann-NOAA:feature/revive_marine_letkf_workflow to point at hash ad9c3ea, Apply the ursa-GW-RT label in this PR after updating your g-w branch and see what happens.

@shlyaeva shlyaeva 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 have one major question below (on whether DOLETKF_OCN_INC means the same as marine_letkf_app). Also, I think it would be good to add @lslivins's changes.

- sea_ice_thickness
- sea_ice_snow_thickness

{% if marine_letkf_app | default(false) %}

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 think we only need this when we have DOLETKF_OCN_INC, is the check consistent here?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I thought it was internally necessary to the soca yamls, it's set if DOLETKF_OCN_INC or DOLETKF_OCN are YES (I think)

Comment thread parm/jcb-gdas/algorithm/marine/soca_ens_handler.yaml.j2 Outdated
Comment on lines +12 to +15
{% if not marine_letkf_app | default(false) %}
- eastward_sea_water_velocity
- northward_sea_water_velocity
{% endif %}

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 think we can just remove the velocities altogether, for both with and without LETKF cases.
I would however ignore this comment (because it requires more testing, and it's probably easier to not do it at this point), not very important.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I seem to recall some problems with doing this, maybe elsewhere?

Comment thread parm/marine/fms/input.nml
@AndrewEichmann-NOAA

Copy link
Copy Markdown
Collaborator Author

@lslivins That would be for the g-w PR - I'm unsure how that would interact with the needs of OMD, can we make that a separate PR for the future?

@AndrewEichmann-NOAA

Copy link
Copy Markdown
Collaborator Author

Hash updated in g-w, trying again

@emcbot

emcbot commented Jun 25, 2026

Copy link
Copy Markdown

Automated GW-GDASApp Testing Results:
Machine: ursa

Start: Thu Jun 25 15:32:22 UTC 2026 on ufe02
---------------------------------------------------
Build:                                 *SUCCESS*
Build: Completed at Thu Jun 25 15:46:30 UTC 2026
---------------------------------------------------
Tests: ctest -j12 -R gdasapp -E atm_jjob|C96C48_ufs_hybatmDA|C96C48_ufsgsi_hybatmDA|C96C48_hybatmsnowDA|C96_gcafs_cycled|C48_ufsenkf_atmDA|C96C48_hybatmDA
Tests:                                 *SUCCESS*
Tests: Completed at Thu Jun 25 15:53:53 UTC 2026
Tests: 100% tests passed, 0 tests failed out of 31

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Have marine letkf task use input.nml.j2 and remove input.nml

7 participants