How e3sm-project/omega works
E3SM is a coupled Earth-system simulation model. The principal workflow is a researcher launching a case, the atmosphere driver advancing atmospheric dynamics and physical processes, and model output being written for analysis or restart. The tree and excerpts strongly expose the EAMxx atmosphere and its data/output layers, but provide little implementation evidence for the other coupled domains; those appear here only as documented model components, without speculative runtime links.
Main entry points: atmosphere_driver.cpp Atmosphere driver · physics Atmospheric physics · CMakeLists.txt Other model domains · eamxx_output_manager.cpp Output manager
Components 25
Atmosphere orchestration
- Atmosphere driver
components/eamxx/src/control/atmosphere_driver.cpp - HOMME grids
components/eamxx/src/dynamics/homme/homme_grids_manager.cpp
Atmosphere processes
- HOMME dynamics
components/eamxx/src/dynamics/homme - Atmospheric physics
components/eamxx/src/physics - P3 microphysics
components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp - MAM aerosols
components/eamxx/src/physics/mam - Cloud fraction
components/eamxx/src/physics/cld_fraction - Gravity waves
components/eamxx/src/physics/gw - RRTMGP radiation
components/eam/src/physics/rrtmgp/cpp/rrtmgp_interface.cpp - Cloud-resolving model
components/eam/src/physics/crm/samxx/crm.cpp
Earth-system coupling
- Surface export
components/eamxx/src/control/atmosphere_surface_coupling_exporter.cpp - Surface import
components/eamxx/src/control/atmosphere_surface_coupling_importer.cpp - Other model domains
components/CMakeLists.txt - Land
components/cmake/lnd/CMakeLists.txt - Ocean
components/cmake/ocn/CMakeLists.txt - Sea ice
components/cmake/ice/CMakeLists.txt - Glacier
components/cmake/glc/CMakeLists.txt - River runoff
components/cmake/rof/CMakeLists.txt - Waves
components/cmake/wav/CMakeLists.txt
Model data and output
- IOP forcing
components/eamxx/src/share/data_managers/IOPDataManager.cpp - Field manager
components/eamxx/src/share/data_managers/field_manager.cpp - Output manager
components/eamxx/src/share/io/eamxx_output_manager.cpp
Other components
- Researcher
- History and restart files
- Model input files
Connections 24
- Researcher → Atmosphere driver: runs case
- Atmosphere driver → HOMME grids: sets up grids
- Atmosphere driver → HOMME dynamics: advances dynamics
- Atmosphere driver → Atmospheric physics: runs processes
- Atmospheric physics → P3 microphysics: includes
- Atmospheric physics → MAM aerosols: includes
- Atmospheric physics → Cloud fraction: includes
- Atmospheric physics → Gravity waves: includes
- Atmospheric physics → RRTMGP radiation: includes
- Atmospheric physics → Cloud-resolving model: includes
- Atmosphere driver → IOP forcing: uses forcing
- Atmosphere driver → Field manager: accesses fields
- Atmosphere driver → Output manager: sets up output
- Output manager → Field manager: reads fields
- Output manager → History and restart files: writes files
- Atmosphere driver → Surface export: exports surface data
- Atmosphere driver → Surface import: imports surface data
- Model input files → IOP forcing: provides forcing
- Other model domains → Land: defines component
- Other model domains → Ocean: defines component
- Other model domains → Sea ice: defines component
- Other model domains → Glacier: defines component
- Other model domains → River runoff: defines component
- Other model domains → Waves: defines component