Community Modeling and Analysis System


(Sparse Matrix Operator Kernel Emissions) Modeling System


SMOKE version 4.8.1 Release Notes

SMOKE-MOVES Integration Tool Enhancements

New MOVES RatePerStart (RPS) Mode
  • New feature in Movesmrg for users to model Off-Network Start Exhaust and Crankcase Start Exhaust processes that are currently modeled under RatePerVehicle (RPV) mode.
  • Unit of RPS emission rate is mass per vehicle-engine start (grams/vehicle-start).
  • New "STARTS" activity inventory is required to compute RPS emissions with RPS emission rates.
  • RPS_MODE [default: N] : Estimates off-network RPS emissions from engine starts.
New Off-Network Idling (ONI) Mode
  • New feature in Movesmrg for users to model idling emissions from parking lot, distribution centers and other off-network spaces.
  • Previously modeled under RatePerDistance (RPD) mode with roadtypes=1 (off-network) and speedbin=0 (speed=zero).
  • Unit of ONI emission rate is mass per vehicle-idling hour (grams/hour).
  • New "IDLING" activity inventory is required to compute ONI emissions with ONI emission rates.
  • ONI_MODE [default: N] : Estimates off-network idling emissions from parking, and distribution centers.

New Source Apportionment Regroup Tool

BEIS v3.7 Enhancements

  • New BEIS Emission Factors (BEISFAC) and BELD5 landuse input files are required.
  • Latest BEISFAC and North America region BELD5 (1km x 1km) input files for BEIS v3.7 can be found from the CMAS Data Warehouse.
  • Custom BELD5 input file over your modeling domain can be developed using new updated Aggwndw utility program in SMOKE that can optionally aggregate non-mass values with the setting of AGGREGATE_EMIS_YN = N.

Laypoint Updates

  • Update to treat new WRF hybrid-vertical coordinate type (-999) as existing sigma (7) coordinate.
  • Update to enforce fire bottom plume height starting from surface layer.
  • FIRE_BOTTOM_LAYER_1_YN [default: Y]: Define the bottom of fire plume as model layer 1.

Smkinven Updates

  • Prevent from dropping CEMS hourly NOX and SO2 emissions when all CEMS parameters (e.g., heat input, steam load and gross load) are missing.
  • Update to proper handle multiple ORIS and Boiler IDs CEMS sources under the same point source Unit ID.
  • PROCESS_MULT_ORIS_UNITS_YN [default: N]: Allows Smkinven to append "__##" to Unit ID to treat them as separate point sources.

Spcmat Updates

  • USE_REF_COUNTY_MAP_YN [default:N]: New feature to assign speciation profiles by reference county based on the inventory-reference county cross-reference input file (MCXREF).
  • New speciation profile description (GSPRODESC) input file support in Smkreport. Users can optionally output the speciation profile descriptions to Smkreport "BY SPCCODE" report.

Smkmerge and Movesmrg Updates

  • SMK_SUB_SECTOR_OUTPUT_YN [default:N]: Generate sub-sector source group emissions output files based on the list of source group ID defined in (SOURCE_GROUPS).

Smkreport Updates

  • Generate correct Smkreport reports for the inventory sources with multiple speciation profiles assigned by GSPRO_COMBO and/or multiple GSREF cross-referencing approaches.
  • New speciation profile description (GSPRODESC) input file support in Smkreport. Users can optionally output the speciation profile descriptions to Smkreport "BY SPCCODE" report.
  • Updated "BY SPCCODE" summary report to output associated model species along with a targeted inventory pollutant.


  • Added new command "AERMOD ANNUAL" in Smkreport to generate emission helper files for AERMOD model for sectors other than onroad.
  • Overall updates across all sectors (e.g., point, area, commercial marine vessel port & underway, and gridded sectors).

Bug fixes

  • Various bug fixes since the public SMOKE version 4.7 release in September 2019

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-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.

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.