ZM: remove all support for f90 bridging - #8681
Open
jgfouca wants to merge 7 commits into
Open
Conversation
jgfouca
requested review from
AaronDonahue,
bartgol and
whannah1
and
a balanced review from Copilot
August 28, 2026 20:53
Contributor
There was a problem hiding this comment.
Pull request overview
Removes the legacy Fortran bridge so ZM runs exclusively through its C++
implementation.
Changes:
- Deletes Fortran bridge sources and build integration.
- Updates ZM execution and buffers for C++-only operation.
- Generates and compares unit-test baselines using C++ results.
Reviewed changes
Copilot reviewed 30 out of 30 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
components/eamxx/src/physics/zm/tests/zm_transport_tracer_tests.cpp |
Uses C++ tracer implementation. |
components/eamxx/src/physics/zm/tests/zm_transport_momentum_tests.cpp |
Uses C++ momentum implementation. |
components/eamxx/src/physics/zm/tests/zm_ientropy_tests.cpp |
Uses C++ inverse entropy implementation. |
components/eamxx/src/physics/zm/tests/zm_find_mse_max_tests.cpp |
Uses C++ MSE implementation. |
components/eamxx/src/physics/zm/tests/zm_entropy_tests.cpp |
Uses C++ entropy implementation. |
components/eamxx/src/physics/zm/tests/zm_downdraft_properties_tests.cpp |
Uses C++ downdraft implementation. |
components/eamxx/src/physics/zm/tests/zm_conv_mcsp_tend_tests.cpp |
Uses C++ MCSP tendency implementation. |
components/eamxx/src/physics/zm/tests/zm_conv_mcsp_calculate_shear_tests.cpp |
Uses C++ shear implementation. |
components/eamxx/src/physics/zm/tests/zm_conv_main_tests.cpp |
Updates C++ baseline indexing. |
components/eamxx/src/physics/zm/tests/zm_conv_evap_tests.cpp |
Uses C++ evaporation implementation. |
components/eamxx/src/physics/zm/tests/zm_compute_dilute_parcel_tests.cpp |
Uses C++ parcel implementation. |
components/eamxx/src/physics/zm/tests/zm_compute_dilute_cape_tests.cpp |
Uses C++ dilute CAPE implementation. |
components/eamxx/src/physics/zm/tests/zm_compute_cape_from_parcel_tests.cpp |
Uses C++ parcel CAPE implementation. |
components/eamxx/src/physics/zm/tests/zm_cloud_properties_tests.cpp |
Uses C++ cloud implementation. |
components/eamxx/src/physics/zm/tests/zm_closure_tests.cpp |
Uses C++ closure implementation. |
components/eamxx/src/physics/zm/tests/zm_calc_output_tend_tests.cpp |
Uses C++ output tendency implementation. |
components/eamxx/src/physics/zm/tests/zm_calc_fractional_entrainment_tests.cpp |
Uses C++ entrainment implementation. |
components/eamxx/src/physics/zm/tests/infra/zm_test_data.hpp |
Removes Fortran test declarations. |
components/eamxx/src/physics/zm/tests/infra/zm_test_data.cpp |
Removes Fortran test wrappers. |
components/eamxx/src/physics/zm/tests/infra/zm_c2f_bridge.f90 |
Deletes test bridge module. |
components/eamxx/src/physics/zm/tests/infra/CMakeLists.txt |
Stops building test bridge. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge.hpp |
Deletes C++ bridge API. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge.cpp |
Deletes C++ bridge implementation. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge_wv_saturation.F90 |
Deletes bridge saturation module. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge_physconst.F90 |
Deletes bridge constants module. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge_params.F90 |
Deletes bridge parameters module. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge_methods.F90 |
Deletes bridge utility methods. |
components/eamxx/src/physics/zm/fortran_bridge/zm_eamxx_bridge_main.F90 |
Deletes primary Fortran bridge. |
components/eamxx/src/physics/zm/eamxx_zm_process_interface.cpp |
Makes execution and buffers C++-only. |
components/eamxx/src/physics/zm/CMakeLists.txt |
Removes legacy Fortran sources. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
whannah1
reviewed
Aug 28, 2026
bartgol
approved these changes
Aug 28, 2026
| @@ -133,15 +131,7 @@ void ZMDeepConvection::initialize_impl (const RunType) | |||
| if (this->get_comm().am_i_root()) ZMF::s_zm_opts.print(); | |||
| //---------------------------------------------------------------------------- | |||
| if (ZMF::s_zm_opts.use_fortran_bridge) { | |||
Contributor
There was a problem hiding this comment.
Should we remove the use_fortran_bridge member altogether?
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.
[BFB] - But BFB unit_test diffs are expected.