Skip to content

Conversation

@mgharamti
Copy link
Contributor

@mgharamti mgharamti commented Oct 29, 2025

Description:

I added a feature to the ROMS-rutgers model-mod that allows easy and quick access to the ensemble mean through the input template file. There is a new logical namelist parameter that controls this. When the mean of the input ensemble is provided, the model-mod can use its SSH for conducting more accurate localization. This removes the need to implement vertical conversion routines. The PR also includes some cleanup of the model-mod and some of its unused code.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Documentation changes needed?

  • My change requires a change to the documentation.
    • I have updated the documentation accordingly.

Tests

Ran ROMS-rutgers with an 80 member ensemble.

Checklist for merging

  • Updated changelog entry
  • Documentation updated
  • Update conf.py

Checklist for release

  • Merge into main
  • Create release from the main branch with appropriate tag
  • Delete feature-branch

Testing Datasets

The testing dataset can be accessed here: /glade/derecho/scratch/gharamti/inacawo/DART/models/ROMS_rutgers/work

- Cleaned clutter
- Functionality to use SSH from ensemble mean if provided as template
Copy link
Member

@hkershaw-brown hkershaw-brown left a comment

Choose a reason for hiding this comment

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

Quick note to request changes on this. The logic for compute_physical_depth and what zsurf to use (0m, zeta, or zeta_man) I think

overloaded functions + optional arguments for zeta + repeated code for the actual depth calculation:
compute_physical_depth_all
compute_physical_depth_one

I think the terminology/docs of template_ensemble_mean is also worth looking at for perfect_model_obs vs. filter.

@mgharamti
Copy link
Contributor Author

Hi Helen,
Thanks for looking at this. To clarify a couple of things, there is a compute_physical_depth interface towards the top of the model_mod that switches between a scalar or array computation depending on the call. I could delete that interface and just use a scalar one, and loop over it when I need depths for the entire water column. I just thought having an interface is a cleaner way (like many other tools we have in DART). Note: the interface is not new to this PR.

For zeta, there are 3 distinct cases:

  • it will come as an input argument if the interpolation routine is requesting depths,
  • gsmd (or localization) is requesting depths, then it will check whether we have that information from the ensemble mean,
  • not available, it will simply be set to 0 (which may not be that bad of an assumption).

Happy to change the name of the new namelist parameter if it doesn't sound right. Can you clarify what you mean by terminology/docs?

This commit also renames a &model_nml parameter
for clarity.
@hkershaw-brown hkershaw-brown added the release! bundle with next release label Nov 13, 2025
Copy link
Member

@hkershaw-brown hkershaw-brown left a comment

Choose a reason for hiding this comment

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

Nice stuff Moha!

@hkershaw-brown hkershaw-brown merged commit 212a4ca into NCAR:main Nov 13, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release! bundle with next release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants