Community Modeling and Analysis System


(Sparse Matrix Operator Kerner Emissions) Modeling System


SMOKE version 4.7 Release Notes

Movesmrg Enhancements

Average Speed Distribution (ASD) Enhancement
  • New feature in Movesmrg for users to optional to apply hour-specific average speed distribution profiles based on 16-speed bins by FIPS, vehicle, road, fuel, process, and day of the week
  • USE_AVG_SPD_DIST [default: N]: Define whether to apply hourly average speed distribution profiles by hour or not
  • AVGSPD_SCCXREF: Average speed distribution SCC mapping input file
  • SPDIST: 16-speed bin average speed distribution profiles sorted by FIPS, SCC, day of the week and hour
  • The impacts of these ASD correction applications have been analyzed in the presentation from the 2019 International Emissions Inventory Conference
NOx Humidity Correction Enhancement
  • New feature in Movesmrg for users to correct NOx emissions from exhaust processes using the gridded hourly MCIP meteorology input data
  • APPLY_NOX_HUMIDITY_ADJ [default: N]: Define whether to apply NOx humidity correction to all NOx emissions from RatePerDistance (RPD) and RatePerHour (RPH) modes
  • To avoid double NOx humidity correction to existing MOVES lookup tables that already adjusted NOx humidity correction, new header line "HUMIDITY_ADJUSTED_NOX [Y|N]" has been added. If HUMIDITY_ADJUSTED_NOX is set to Y, then APPLY_NOX_HUMIDITY_ADJ=Y setting will be ignored. If there is no header line exited, APPLY_NOX_HUMIDITY_ADJ=Y setting will be also ignored based on an assumption that those MOVES lookup tables already adjusted NOx humidity correction during the MOVES runs
  • Use the official MOVES 2014 NOx humidity correction equation (K):
  • "K =1.0-(Specific humidity-75%)*Humidity correction coefficient"
  • The bounded Specific humidity unit is in units of grains of water per pound of dry air. The specific humidity is not allowed to be lower than 21 grains and is not allowed to be larger than 124 grains. If the specific humidity input exceeds these limits, the value of the limit is used to calculate the humidity adjustment. Humidity correction coefficients: 0.0038 for Gasoline fuel type and 0.0026 for Diesel fuel type
  • The impacts of NOx humidity correction applications have been analyzed in the presentation from the 2019 International Emissions Inventory Conference

Grdmat Updates

  • Fixed a bug of initialization of sphere specification (IOAPI_ISPH)
  • Updated to treat all modeling domain parameters as double precision

Temporal Updates

  • Added new hierarchy for Plant Identification and Unit Identification level temporal cross-reference entry

Bug fixes

  • Various bug fixes since the public SMOKE version 4.6 release in September 2018

This is the official SMOKE website hosted by the Center for Environmental Modeling for Policy Development (CEMPD) at the University of North Carolina at Chapel Hill. SMOKE is an active open-source development project supported and distributed by the CEMPD through the Community Modeling and Analysis System Center.

SMOKE Digital Object Identifier (DOI)

  • DOI

SMOKE Online Training


Previous Documentation

Online Resources


System Requirements

O/S Linux
Processor 64-bit x86
Memory >2 Gb RAM
Disk Space > 40 Gb
Software I/O API, netCDF, Fortran ( Portland Group | Intel )


About the Developer

B.H. Baek

Dr. B.H. Baek took over lead SMOKE development in 2005. Prior to joining CEMPD he held positions at Colorado State and Texas A&M, where he conducted field monitoring compaigns studying livestock emissions. He earned is PhD from North Carolina State University in 2002 where he studied gas to particle conversions between ammonia, acid gases, and fine particles.

SMOKE-ready Data

SMOKE input data consist of emissions inventories, temporal and chemical speciation profiles, spatial surrogates, gridded meteorology and land use data, and other ancillary files for specifying the timing, location, and chemical nature of emissions. SMOKE is distributed with example data for getting started with the model. The example files distributed with SMOKE are for demonstration purposes only, they are not meant for real-world modeling applications.

The primary source for non-meteorology SMOKE input data is the U.S. EPA Clearinghouse for Inventories and Emissions Factors (CHIEF). The U.S. EPA Office of Air Quality Planning and Standards (OAQPS) Emissions Inventory and Analysis Group (EIAG) provides SMOKE inputs for different rule-making modeling platforms. These platforms include not only the NEI for both criteria air pollutants (CAPs) and hazardous air pollutants (HAPs), but also all of the SMOKE ancillary data files created by EPA for use in SMOKE. EPA uses CHIEF to provide these data.

Meteorology data must be generated for specific SMOKE applications using either MM5, WRF, or a similar model. The output data from meteorology models must be formatted for SMOKE using a program like MCIP.

Additional useful links for SMOKE input data are provide below.

SMOKE Data Type SMOKE Data Sources
North America
Ancillary Data
Temporal - CHIEF Temporal Data
Spatial - CHIEF Spatial Surrogates (US and Canada), BELD3 Land Use
Chemical - CHIEF Speciation Profiles
Projection - CHIEF Projection Data

History of SMOKE

The Sparse Matrix Operator Kernel Emissions (SMOKE) Modeling System was originally developed at MCNC to integrate emissions data processing with high-performance computing (HPC) sparse-matrix algorithms. SMOKE is now under active development at the Institute for the Environment and is partially supported by the Community Modeling and Analysis System (CMAS).

SMOKE is primarily an emissions processing system designed to create gridded, speciated, hourly emissions for input into a variety of air quality models such as CMAQ, REMSAD, CAMX and UAM. SMOKE supports area, biogenic, mobile (both onroad and nonroad), and point source emissions processing for criteria, particulate, and toxic pollutants. For biogenic emissions modeling, SMOKE uses the Biogenic Emission Inventory System, version 2.5 (BEIS2) and version 3.09 and 3.14 (BEIS3). SMOKE is also integrated with the on-road emissions model MOBILE6 and MOVES.

The sparse matrix approach used throughout SMOKE permits rapid and flexible processing of emissions data. Rapid processing is possible because SMOKE uses a series of matrix calculations rather than a less-efficient sequential approach used by previous systems. Flexible processing comes from splitting the processing steps of inventory growth, controls, chemical speciation, temporal allocation, and spatial allocation into independent steps whenever possible. The results from these steps are merged together in the final stage of processing using vector-matrix multiplication. This means that individual steps (such as adding a new control strategy, or processing for a different grid) can be performed and merged without having to redo all of the other processing steps.

SMOKE is written in Fortran 90 and is designed to run on a variety of UNIX platforms. We currently provide executables for Linux and the source code is available for download and can easily be compiled for your particular system. We do not support running SMOKE on Windows, due to the inherent limitations of that system. The current version of SMOKE is version 2.5, although versions 1.5 - 2.4 are still available for download.

The original SMOKE concept was envisioned in the early 1990's at MCNC by Dr. Carlie Coats, now of Baron Advanced Meteorology Services. Marc Houyoux managed the development of SMOKE until his departure to the U.S. EPA Office of Air Quality Planning and Standards in 2002. With active-development continuing at the CEMPD, lead SMOKE development was passed from Catherine Seppanen to Dr. B.H. Baek in 2005. While some SMOKE development is occurring outside of CEMPD, the primary line of development is managed by Dr. Baek under funding from the U.S. EPA.