Skip to content

Add marineijedi model and algorithm configs (i-jedi MOM6 interface) - #2186

Open
guillaumevernieres wants to merge 3 commits into
developfrom
feature/add-marineijedi
Open

Add marineijedi model and algorithm configs (i-jedi MOM6 interface)#2186
guillaumevernieres wants to merge 3 commits into
developfrom
feature/add-marineijedi

Conversation

@guillaumevernieres

Copy link
Copy Markdown
Contributor

Summary

Adds a new marineijedi component implementing the i-jedi MOM6 interface, based on
the existing SOCA-based marine configuration. The i-jedi interface differs from SOCA in
geometry (geometry_type: mom6 + MOM_input block), state/background I/O
(io: {filetype: mom6, ...} with field io names), and model/output handling.

Reference yamls: i-jedi/test/testinput/tier1_*-mom6.yaml.

What's included

  • model/marineijedi/ — 14 templates (parity with model/marine), converted to the
    i-jedi MOM6 interface: geometry, background, pseudo model, static & hybrid diffusion
    background error, 3dfgat outer loop, final increment, and output/LETKF templates.
  • algorithm/marineijedi/ — the SOCA algorithm steps that have real i-jedi equivalents:
    • marineijedi_gridgen — grid/geometry cache generation (i-jedi geometry_cache-mom6)
    • marineijedi_parameters_diffusion — combined hz+vt diffusion calibration
      (i-jedi diffusion-mom6)
  • test/client_integration/gdas-marineijedi-templates.yaml — JCB test fixture
    (auto-discovered by jcb_client_init.py; no jcb-repo change needed).

Not ported

SOCA-executable-specific steps with no current i-jedi equivalent were intentionally omitted
rather than fabricated: soca_diagb, soca_ensb, soca_ens_handler, soca_ensweights,
soca_chgres, soca_setcorscales, soca_vtscales, soca_incpostproc (Soca2Cice), and the
obs-stats finalizers.

Testing

Rendered end-to-end through the real JCB pipeline (jcb develop + this branch symlinked):
hofx3d, hofx4d, and 3dfgat all render, and pytest test_client_calls.py passes
(1 passed). Geometry output confirmed to emit the i-jedi MOM6 interface.

Notes for reviewers

  • Component prefix is marine_ijedi (variables, dir, and app_path_model).
  • A few templates are inferred (no i-jedi example exists): marine_ijedi_model_pseudo
    and the LETKF output templates — worth a closer look.
  • field io names ice conventions (aice_h/hi_h/hs_h) should be confirmed.

shlyaeva
shlyaeva previously approved these changes Jun 30, 2026

@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.

🎉 did not run, only a quick glance review. I have one question about balance, otherwise looks good to me. Fine with me to address in a later PR.

Comment on lines +56 to +57
linear variable changes:
- linear variable change name: BalanceSOCA

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 wouldn't expect this to work with ijedi. Maybe this needs to be removed and changed to saber outer block?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Oops, deleted. I'm only keeping the central block, using the saber outer block requires building with torch, which is not yet part of the default stack unfortunately.

Comment on lines +39 to +55
linear variable change:
input variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
- sea_surface_height_above_geoid
output variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
- sea_surface_height_above_geoid
linear variable changes:
- linear variable change name: BalanceSOCA

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.

Same here.

@DavidNew-NOAA

Copy link
Copy Markdown
Collaborator

As we discussed yesterday, I'm centralizing the variable lists in these templates in #2171

@guillaumevernieres

Copy link
Copy Markdown
Contributor Author

As we discussed yesterday, I'm centralizing the variable lists in these templates in #2171

Sounds good @DavidNew-NOAA , it's in a very prototype phase at this point so don't worry too much about the cosmetics for now. We'll start cleaning up once things start working properly.

@AndrewEichmann-NOAA AndrewEichmann-NOAA 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.

Not tested, not too familiar with it, but nothing offensive leaps out

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.

5 participants