NGWPC NWM PI-3 Formulation Selection Delivery 2026-02-25#941
Open
cmaynard-ngwpc wants to merge 701 commits into
Open
NGWPC NWM PI-3 Formulation Selection Delivery 2026-02-25#941cmaynard-ngwpc wants to merge 701 commits into
cmaynard-ngwpc wants to merge 701 commits into
Conversation
Co-authored-by: Phil Miller - NOAA <pmiller@lynker.com>
… from the realization file in the existing and proposed new format.
…Formulation as well.
… from the realization file in the existing and proposed new format.
…Formulation as well.
…s://github.com/NGWPC/ngen into sselvanathan_8301_output_variables_realization
…eprecated output vairables json format is used.
…ormats for the output variables.
Forecast validation
Co-authored-by: Phil Miller - NOAA <pmiller@lynker.com>
Merge ngwpc-candidate into development for release 3.1.2.2.0-rc2
Merge ngwpc-candidate into development for release 3.1.2.2.0-rc4
Merge ngwpc-candidate into development for release 3.1.2.2.0-rc5
…resolves the SWE bug.
Dockerfile: arg to specify full name of ngen-forcing base image
CICD Updates
Apply units conversion for inputs provided by Forcings Engine Data Provider (NGWPC 9633/9671): This takes care of the zero SWE bug.
Merge ngwpc-candidate
…Profiles and ueb-bmi
…release Update submod refs for cfe, LASAM, lstm, SoilFreezeThaw, SoilMoistureProfiles and ueb-bmi
Update submod ref for t-route
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request delivers major stability, correctness, and capability improvements to ngen, with a strong focus on:
A substantial portion of the work addresses use-after-free and teardown ordering bugs, introduces fully optional and resilient unit handling in multi-formulation realizations, and aligns documentation and tests with the updated behavior.
Additions
Output Variables & Units
Added unit conversion support in forcing providers (fixes SWE bug).
Added support for querying provider-native units via
get_provider_units_for_variable.Added capability to:
Added runtime error messages and logging when unit queries fail.
Added unit test coverage for multi-formulation output indexing.
BMI Lifecycle & Safety
Added explicit guarantees that BMIs are destroyed before
MPI_Finalize.Added safeguards ensuring:
Added clearer runtime error reporting for invalid BMI states.
Configuration & Documentation
Updated:
REALIZATION_CONFIGURATION.mdBMI_MODELS.mdAdded documentation clarifying unit conversion behavior and limitations.
CI / Docker
Added Docker support for:
Updated CI/CD to support ngwpc-candidate and ngwpc-release branches.
Changes
BMI Multi-Formulation & Output Handling
Bmi_Multi_FormulationandBmi_Module_Formulationto:Memory Safety & Runtime Stability
Fixed multiple use-after-free scenarios.
Removed unsafe or redundant:
Corrected teardown ordering to prevent invalid access patterns.
Logging & EWTS Integration
Standardized logging behavior across ngen and submodules:
GetLogLevel/IsLoggingEnabledto match other C++ modulesImproved exception logging when CSV forcing or initialization fails.
Forcing Engine Improvements
Submodules & Dependency Alignment
Removals
get_output_variable_units)