The atmosphere model of the CliMA Earth System Model: a GPU-capable global atmosphere model designed for calibration with data assimilation and machine learning.
ClimaAtmos.jl solves the compressible equations of atmospheric motion on cubed-sphere and column grids, with physics parameterizations for turbulence and convection (PROPHET, an extended prognostic EDMF scheme), cloud microphysics, and radiation. It is built on ClimaCore.jl and runs on CPUs and GPUs from a single codebase.
| Documentation | |
| Version | |
| License | |
| Tests | |
| Code Coverage | |
| Downloads |
Condensed water path from a global simulation initialized with ERA5 on 8-31-25 00Z. Output every 30 minutes; ran for ~4 days.
- Global and single-column configurations: cubed-sphere grids with topography for global simulations; boxes, planes, and columns for process studies (BOMEX, DYCOMS, RICO, and other standard cases)
- Turbulence and convection: TKE-based eddy diffusion and the PROPHET scheme (an extended, prognostic eddy-diffusivity mass-flux (EDMF) scheme), designed for calibration with data assimilation and machine learning
- Cloud microphysics: 0-moment to 2-moment bulk schemes, plus the P3 ice scheme, via CloudMicrophysics.jl
- Radiation: RRTMGP radiative transfer
- ERA5 and GCM-driven initial conditions and forcing
- Configurable diagnostics with NetCDF and HDF5 output
- Restarts and checkpointing for long simulations
- GPU support: runs on CPUs and NVIDIA GPUs from the same codebase
- Composable configuration: script and YAML-config interfaces for every aspect of a simulation
ClimaAtmos.jl is a registered Julia package (recommended Julia: v1.11):
using Pkg
Pkg.add("ClimaAtmos")The simplest simulation uses all defaults: it solves the dry compressible equations on a global cubed-sphere grid from a hydrostatically balanced, slightly perturbed state:
import ClimaAtmos as CA
simulation = CA.AtmosSimulation{Float32}(; t_end = "1days")
CA.solve_atmos!(simulation)Every aspect of the simulation can be customized through keyword arguments, for example a single-column model:
grid = CA.ColumnGrid(Float32; z_elem = 30, z_max = 30000.0)
simulation = CA.AtmosSimulation{Float32}(; grid, t_end = "6hours")See Your First Simulation in the documentation for a guided introduction.
- Stable docs: equations, parameterizations, configuration reference, and API
- Dev docs: latest development version
- Available diagnostics: output variables
ClimaAtmos.jl is a component of the CliMA Earth System Model:
- ClimaCore.jl: dynamical core and discretization tools
- ClimaCoupler.jl: coupling to ocean, land, and sea ice components
- Thermodynamics.jl: moist thermodynamics, shared across all CliMA components for energetic consistency
- ClimaParams.jl: the single source of truth for all model parameters
See The CliMA Ecosystem in the documentation for the full architectural overview, including Insolation.jl, RRTMGP.jl, SurfaceFluxes.jl, and CloudMicrophysics.jl.
If you're interested in contributing to ClimaAtmos, we welcome contributions of any size! Let us know by opening an issue if you'd like to work on a new feature.
Contributors should follow the shared CliMA engineering standards in docs/dev-guides/, which cover architecture, performance, code quality, documentation, and workflows. These are vendored from CliMA/DeveloperGuides. The repo's AGENTS.md is a starting point for AI agents with repo-specific guidance. See also the contributor's guide.
