Skip to content

CATChem Library and Modeling Component

CATChem_logo CATChem (Configurable ATmospheric Chemistry) is a library and modeling component that includes all chemical and aerosol processes needed to perform atmospheric chemistry and composition simulations within a model through a flexible, easy to modify, and well-documented infrastructure. CATChem will include the following processes: chemical kinetics, aerosols, photolysis, wet deposition, dry deposition, connections to emissions, and connection to physics schemes. CATChem is integrated into NOAAโ€™s Unified Forecasting System (https://ufscommunity.org/) to create UFS-Chem. UFS-Chem is a modern, high-performance atmospheric chemistry model designed for operational and research applications including weather, air quality, and smoke forecasting. Built with modern Fortran and designed for scalability, CATChem provides sophisticated atmospheric chemistry capabilities as an open-source community project.

โœจ Key Features

  • High Performance

Optimized for modern HPC systems with column virtualization, efficient memory management, and scalable parallelization.

  • Modular Architecture

Process-based design with pluggable schemes, flexible configuration, and clean separation of concerns.

  • Operational Ready

Designed for 24/7 operational use with robust error handling, comprehensive diagnostics, and monitoring capabilities.

  • Comprehensive Chemistry

Full atmospheric chemistry including gas-phase, aerosol processes, emissions, deposition, and transport.

๐Ÿš€ Quick Start

# Clone the repository
git clone https://github.com/UFS-Community/CATChem.git
cd CATChem

# Build with CMake
mkdir build && cd build
cmake ..
make -j$(nproc)
# Run a test case
cd build
ctest -R test_CATChemCore
! Integrate with your model
use CATChemAPI_Mod

type(CATChemType) :: catchem

call catchem%init(config_file, rc)
call catchem%run(dt, met_fields, chem_fields, rc)
call catchem%finalize(rc)

๐Ÿงช Available Processes

Process Type Description Status
Chemistry Gas-phase and aerosol chemistry ๐Ÿšง In development
Emissions Anthropogenic and biogenic emissions ๐Ÿšง In development
Settling Gravitational settling with slip correction ๐Ÿšง In Development
Dry Deposition Surface deposition processes ๐Ÿšง In Development
Wet Deposition Precipitation scavenging ๐Ÿšง In Development
Dust Mineral dust emission and transport ๐Ÿšง In development
Sea Salt Marine aerosol processes โœ… Production

๐Ÿ—๏ธ Architecture Overview

flowchart TB
    A["Driver/Host Model"] --> B["CATChem API"]
    B --> C["State Management"]
    C --> D["Process Manager"]
    D --> E["Column Virtualization"]
    E --> F{"Process Types"}
    F --> G["Chemistry Processes"]
    F --> H["Transport Processes"]
    F --> I["Emission Processes"]
    F --> J["Loss Processes"]
    G --> K["Diagnostic System"]
    H --> K
    I --> K
    J --> K
    K --> L["Output Manager"]

Modern Design Principles

  • Separation of Concerns: Clear boundaries between I/O, computation, and state management
  • Column Virtualization: Efficient 1D processing with automatic parallelization
  • Process-Based Architecture: Modular, testable, and maintainable components
  • StateContainer Pattern: Unified data management with automatic dependency tracking
  • Comprehensive Diagnostics: Built-in monitoring, profiling, and error reporting

๐ŸŽฏ Use Cases

Operational Weather Prediction

  • NOAA UFS Integration: Native support for FV3 and other UFS components
  • Real-time Processing: Optimized for operational time constraints
  • Ensemble Forecasting: Efficient multi-member ensemble capabilities

Research Applications

  • Process Studies: Individual process testing and validation
  • Sensitivity Analysis: Parameter perturbation and uncertainty quantification
  • Model Development: Framework for new process implementation

Air Quality Forecasting

  • Multi-scale Modeling: Global to urban scale applications
  • Chemical Data Assimilation: Support for observation integration
  • Health Impact Assessment: Human exposure and risk evaluation

๐Ÿ“š Documentation Structure


Get up and running with CATChem in minutes


Comprehensive guide for model users


Technical documentation for developers


Complete API documentation


CATChem is incorporated into the UFS to create UFS-Chem or the Unified Forecast System with Chemistry


Learn more how you can use, test, or develop CATChem and UFS-Chem!

๐Ÿค Community & Support Quick Reference

๐Ÿ“„ License

CATChem is released under the Apache 2.0 License.


Community-Driven Atmospheric Chemistry Modeling

Open source project supporting operational and research applications including weather, air quality, and smoke forecasting