Skip to content

Developer guides

These pages summarize how GVVM is structured in this repository and how major subsystems fit together.

Guide Contents
System architecture Directories, libraries, main program flow, MPI and Kokkos
Physics implementation RRTMGP, turbulence, surface, land, and the driver time step
P3 Microphysics Modifications Details on restoring Fortran P3 \(q_v \leftrightarrow q_c\) conversions within the EAMxx C++ framework

Build system: The root CMakeLists.txt configures C++17, CUDA/Kokkos, MPI, EKAT, NetCDF, PnetCDF, HDF5, ADIOS2, and optional NCCL. The main executable target is vvm, built from src/main.cpp and linked against vvm_driver, vvm_core, vvm_io, vvm_dynamics, scream_share, and eamxx_physics.

Tests: With -DBUILD_TESTS=ON, CMake registers integration tests that run vvm with JSON files under tests/configs/ and compare HDF5 output to baselines using tests/scripts/verify_output.py.