Skip to content

ZM: remove all support for f90 bridging - #8681

Open
jgfouca wants to merge 7 commits into
masterfrom
jgfouca/rm_zm_f90
Open

ZM: remove all support for f90 bridging#8681
jgfouca wants to merge 7 commits into
masterfrom
jgfouca/rm_zm_f90

Conversation

@jgfouca

@jgfouca jgfouca commented Aug 28, 2026

Copy link
Copy Markdown
Member

[BFB] - But BFB unit_test diffs are expected.

@jgfouca
jgfouca requested review from AaronDonahue, bartgol and whannah1 and a balanced review from Copilot August 28, 2026 20:53
@jgfouca jgfouca self-assigned this Aug 28, 2026
@jgfouca jgfouca added BFB PR leaves answers BFB EAMxx C++ based E3SM atmosphere model (aka SCREAM) labels Aug 28, 2026

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

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.

Comment thread components/eamxx/src/physics/zm/CMakeLists.txt
Comment thread components/eamxx/src/physics/zm/eamxx_zm_process_interface.cpp
Comment thread components/eamxx/src/physics/zm/eamxx_zm_process_interface.cpp Outdated
@@ -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) {

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.

Should we remove the use_fortran_bridge member altogether?

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

Labels

BFB PR leaves answers BFB EAMxx C++ based E3SM atmosphere model (aka SCREAM)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants