Developer guides
These pages explain the implementation choices behind VVMex. Start with the architecture and physics overviews, then open a subsystem guide when changing that area.
| Guide | Read it when you need to… |
|---|---|
| System architecture | Follow startup, MPI/Kokkos ownership, major targets, and repository layout |
| Physics implementation | Understand the model time-step order and optional physics components |
| P3 modifications | Compare VVMex microphysics coupling with EAMxx and original Fortran P3 |
| RRTMGP modifications | Understand the single-precision radiation fixes |
| BP5 output internals | Change the BP5 schema, writer, restart path, or staging behavior |
| Reproducibility | Diagnose repeatability or CPU/GPU floating-point differences |
| Continuous integration | Change test tiers, workflows, runners, or branch protection |
Build and test orientation
The root CMakeLists.txt builds the vvm executable from application libraries
under src/. With -DBUILD_TESTS=ON, CMake registers unit and integration
tests from tests/CMakeLists.txt. Optional BP5, physics, and multirank tiers are
selected at configure time.
For a practical build command, use the Quick start. For workflow and runner details, use the CI guide.