An official website of the United States government.

This is not the current EPA website. To navigate to the current EPA website, please go to This website is historical material reflecting the EPA website as it existed on January 19, 2021. This website is no longer updated and links to external websites and some internal pages may not work. More information »

Community Multiscale Air Quality Modeling System (CMAQ)

Frequent CMAQ Questions

General Questions

Getting Started

CMAQ Inputs

Questions about Special Configurations

Working with CMAQ Outputs

Modifying CMAQ

Additional Support Through the CMAS Center

What is CMAQ?

CMAQ is a powerful open-source computational tool used for air quality management. It combines current knowledge in atmospheric science and air quality modeling with multi-processor computing techniques to simultaneously model multiple air pollutants including ozone, particulate matter, and a variety of air toxics. CMAQ can be used to help air quality managers determine the best air quality management scenarios for their communities, regions, and states. It can also provide users with detailed information about air pollutant concentrations in any given area for any specified emission or climate scenario. 

Who develops CMAQ?

CMAQ is a product of the Center for Environmental Measurement and Modeling (CEMM) under U.S. Environmental Protection Agency (EPA) Office of Research and Development (ORD).  Read more about the CMAQ development team on our About Us page.

Who uses CMAQ?

CMAQ is used by a wide range of scientists, consultants, and researchers spanning the globe. It is also used by several U.S. agencies including the National Weather Service, the Center for Disease Control, and the EPA Office of Air Quality Planning and Standards. See more information about our users on the CMAQ User Community page.

Can I run CMAQ outside of the United States?

Yes - we have users in over 50 countries.  See more information about the international nature of our user community on the CMAQ User Community page.  Also visit our page on CMAQ's invovlement in the Air Quality Model Evaluation International Initiative to learn about some of the groups applying the CMAQ system in Europe. 

Can I run CMAQ on my PC/Mac/tablet/smartphone?

CMAQ is a linux-based model that requires significant computational resources to run and therefore requires a multi-processor computer. Secure Shell (SSH) applications are often used to remotely access models that have been installed on networked computers or servers.

I've heard about a web or online version of the model; where is that?

Because of the computational resources required to run CMAQ, a web or online version of the model does not exist.

Can I contribute to CMAQ? What is the process for doing so?

Yes!  The EPA uses the version control system git to manage the cross-community access to this software.  More information on how to colloborate with the EPA team, including contributing code to the CMAQ system can be found on the Opportunities for Collaborators page. 

What other chemical transport models exist?

Several other chemical transport models exist including WRF-Chem, CAMx, and GEOS-Chem.

What about source-receptor models, land use regression models, or other statisitcal approaches?

In contrast to statistical air quality models that use historical trends in observed atmospheric conditions to predict air pollution, CMAQ uses coupled mathematical representations of actual chemical and physical processes to simulate air quality.   CMAQ belongs to the Eulerian class of mathematical models that are used to integrate our understandings of the complex processes that affect the concentrations of pollutants in the atmosphere.  Because the model relies on scientific first principlesHelpfirst principlesThe fundamental concepts or assumptions on which a theory, system, or method is based. to predict the concentration of airborne gases and particles, it can be used to explore different kinds of air pollution scenarios. For example, CMAQ is often used to test the impact of future emission regulations as well as the interaction of meteorology and air quality, e.g. the effects of particles on solar radiation and clouds.

What is the scientific documentation for CMAQ?

View the CMAQ documentation page to see scientific documentation for different versions of CMAQ.

Has CMAQ been Peer Reviewed?

Information about the Peer Review process and their final reports, as well as a list of publications can be found on our Publications and Peer Review page.

Is CMAQ used for air quality forecasting? What is the relationship between CMAQ and the NOAA National Air Quality Forecast Capability (NAQFC)?

The National Weather Service (NWS) uses CMAQ to produce air quality forecasts twice daily. They have been producing these forecasts since 2004. More information on the NAQFC can be found online.

What kind of hardware do I need?

CMAQ is a comprehensive air pollution modeling system whose source code is written in Fortran. CMAQ execution is typically performed on Linux based systems. The hardware configuration of such a system depends on the domain size, grid resolution and simulation duration. Since typical input and output data sets for CMAQ entail three dimensional descriptions of the dynamical and chemical state of the simulated atmosphere, these data sets could require upwards of several gigabytes of disk storage per simulation day.

To simulate the Southeast Benchmark episode provided with the release CMAQ, the following is recommended:

System recommendation for the CMAQ Southeast Benchmark episode
System component  Hardware requirement
O/S Linux
Processor 64-bit x86
Memory >4 Gb RAM
Disk Space > 400 GB

What other software do I need?

To install, compile, and run CMAQ on a multi-processor machine (Linux2_x86_64) you need the following pieces of software:

  1. Fortran compiler (typically Intel, Portland Group, or Gnu Fortran)
  2. If you're going to do parallel runs, either mpich or openmpi (or a vendor MPI, Like IntelMPI).
  3. Version 3 or 4 of netCDF.  The big issue is that Makefiles need to be configured for v3.x (with "-lnetcdf") or v4.x (with
     "-lnetcdff -lnetcdf").
  4. I/O API
  5. mpif90 wrapper

What you don't need:

  1. HDF5
  2. netCDF HDF5 support
  3. I/O API coupling mode
  4. PVM
  5. Z lib
  6. Curl lib

How do I get the code? Can I just download the executable?

There are no precompiled executables for CMAQ.  You can download the code using a GitHub command or through direct download on our Access Model Source Code page.  Check out the Getting Started Tutorial for directions on how to prepare your Linux system for installing and running CMAQ.  A list of available CMAQ Tutorials is provided on the CMAQ Documentation page.  

Is there a step-by-step tutorial?

There are step-by-step tutorials for common CMAQ tasks on the CMAQ Documentation page.  

I've encountered errors while installing/running the model, what should I do?

A good place to start are the CMAQ tutorials on Building CMAQ, Running the CMAQ Test Case and Debugging TipsA list of available CMAQ Tutorials is provided on the CMAQ Documentation page.  

What should I do if I need more help?

The CMAS Center maintains a community-based user forum website: https://forum.cmascenter.orgExit You can search the forum for past questions and answers on the topic of your interest. To post a new question or respond to an existing post, sign up for the forum by clicking on the "Sign Up" button in the top right corner of the website. Please read and follow these five steps prior to submitting requests for assistance:  PLEASE READ before posting  EXIT

What input data do I need to run CMAQ?

Information for input data can be found on our Model Inputs and Test Case Data page.

How can I create inital and boundary conditions for my simulation?

Information on the CMAQ pre-processors used for creating initial and boundary condition input files is available in Chapter 4 of the CMAQv5.3 User's Guide.

Where can I get meteorological data?

There is no central repository of meteorological data to use with CMAQ.  You can obtain sample meteorological data sets generated with the WRF model from the CMAQ Inputs and Test Case page to use with the CMAQ tutorial on Running the CMAQ Test Case.  A list of available CMAQ Tutorials is provided on the CMAQ Documentation page.  

What meteorological models can be used with CMAQ?

The released version of CMAQ supports meteorological fields from the Weather Research and Forecasting (WRF) model.  Community users have also linked CMAQ to other meteorological models, but those processes have not been made publicly available.

What land use data set should I use?

Bi-directional CMAQ uses a land cover data set generated by the BELD4 tool in the Spatial Allocator (SA) Raster Tool which uses information from NLCD and MODIS land cover and crop and forest data at the county level.  As part of the FEST-C and SA Installation, you are directed to download NLCD and MODIS data files from their home websites.  Crop and forest county-level data tables are provided in the SA data directory.  The FEST-C interface has a sub-interface for generating the land use data set which is needed for CMAQ bi-directional modeling.  The interface supports NLCD 2002v11 or NLCD 2006v11 and NLCD 2011 with whatever MODIS files you have downloaded.  You are prompted for file locations.  We will soon be adding an NLCD 2016 option.  You will be prompted in the FEST-C interface to choose the land use land cover data set which is most appropriate for your application.  You can find the generation procedure in the  FEST-C documentationExit

Where can I get emissions data?

The national emissions inventory (NEI) modeling platforms are released by the EPA. Links to various inventory years can be found  on our Model Inputs and Test Case Data page.

How do I create an OCEAN file?

The CMAQ OCEAN file is used by the CCTM to define surf zone and open ocean grid cells in the calculation of sea salt emissions. The file contains two variables: OPEN, and SURF. The OPEN variable defines open ocean cells. It represents the fraction of an ocean grid cell's area that is further than 50 m from the shoreline. The SURF variable defines surf zone cells. It represents the fraction of an ocean grid cell's area that is within 50m of the shore, not including bays and inlets.

The Spatial Allocator Vector Tools can be used to generate an OCEAN file. The alloc_surf_zone_to_oceanfile script in the Spatial Allocator distribution is an example of how to create an OCEAN file using the allocate mode of the software for the North America. The inputs to the script are an I/O API grid description file and a Shapefile that defines the surf zone. The Shapefile contains an integer attribute called Type. Type 2 = land and Type 3 = surf zone.  There is a surf zone Shapefile for North America packaged with the Spatial Allocator (see the Download Sample Data table in the Spatial Allocator downloads area under the CMAS Center software clearinghouse). 

The biggest issue for generating an OCEAN file outside of North America is the surf zone Shapefile. This file needs to be created for each new region of the world where CMAQ is being applied. There is no standardized process for creating this Shapefile. Users need to mask the locations in the Shapefile within 50m of the land boundary as the surf zone by assigning the attribute Type = 3 to these areas on the map. See the North American Shapefile as an example.

For step-by-step instructions, see the CMAQ tutorial on Creating an OCEAN File.   A list of available CMAQ Tutorials is provided on the CMAQ Documentation page.  

How do I use the Coupled WRF-CMAQ model?

Learn more about the WRF-CMAQ model in Chapter 13 of the CMAQv5.3 User's Guide and step-by-step instructions on building and running the model in the WRF-CMAQ Tutorial .  Exit

How do I use the Direct Decoupled Method with CMAQ?

Please refer to the CMAQ-DDM-3D Chapter in the User's GuideExit

How do I use ISAM?

Please refer to the CMAQ-ISAM Chapter in the User's Guide and the ISAM Benchmark TutorialEXIT

What tools are available for processing and visualizing CMAQ output?

Examples of software programs for evaluating and visualizing CMAQ outputs can be found on our Resources/Utilities for Model Users page.

How do I compute PM2.5?  How do I compute PM10 or PM1?

There are multiple chemical mechanisms available with the CMAQ system.  Each chemical mechanism has a corresponding "Species Definition" file that prescribes how model output variables should be combined to predict different gas, particle and deposition species.  When you download the CMAQ code for version 5.2 or later, these definition files are automatically included under the subdirectory "CCTM/src/MECHS".   You can also view these files online by going directly to the EPA's CMAQ GitHub repositoryExit.  Browse to CCTM -> src -> MECHS.  Within each of the listed mechanism folders, you will find  files "SpecDef_MECH_NAME.txt" and "SpecDef_dep_MECH_NAME.txt" that contain a long list of species definitions and corresponding documentation.  For example, to find how to calculate PM2.5 using the CB6r3_ae7 mechanism, open the file "SpecDef_cb6r3_ae7_aq.txt" and read the documentation on PM2.5 calculations.  The species definition file will indicate which species should be included in PM2.5 (for example: sulfate, ammonium, and organic carbon) as well as factors to obtain the fraction of each CMAQ size distribution mode that corresponds to 2.5 micron (diameter) and smaller particles.  Similar information is available for calculating PM10 and PM1.  These species definition files are designed to be used with the combine and sitecmp utilities to match air pollutant measurements with the appropriate model predicted output.  Information on combine, sitecmp and other post-processing utilities can also be found on the CMAQ GitHub repository under the directory "POST".

What procedures are recommended for evaluating model output?

Learn more about the CMAQ Model Evaluation Framework and find examples of recent evaluation studies of the CMAQ system.

What observational data are available for air quality model evaluation?

Air quality observation data formatted specifically for model evaluation are available from nine air quality monitoring networks for 2001 - 2017 from the CMAS Data Clearinghouse.  These formatted observation data files are designed for use with the sitecmp utility to match model and observed data.  Previously users had to download these data from various locations on the web and possibly reformat them to be compatible with the sitecmp utility for matching modeled and observed data.  Observation files are included for the years 2001 through 2017 for the following networks: AERONET, AMON, AQS (hourly data), CASTNET (hourly and weekly data), CSN, FLUXNET, IMPROVE, MDN, NADP, NAPS, and SEARCH (hourly and daily data). See the accompanying README file in the obs_data folder with information on the creation dates for each of the observation files.

Access 2001-2017 observation data through the CMAS Data Warehouse.Exit

Find source code, documentation and sample run scripts for the sitecmp utility on EPA's CMAQ GitHub repository.Exit

Is there a master list of environment variables used in CMAQ, and what their defaults are?

For a given CMAQ output file, how do I know what model version or configuration was used to generate it?

Enhanced metadata options are available with I/O API version 3.2.  

What do I need to do to upgrade to the latest version of CMAQ?

For information on updating from v5.2.1 to v5.3 or from v5.3 to v5.3.1 or v5.3.2 see the CMAQ FAQ available with the CMAQv5.3.2 Release Notes on GitHub. 

How do I add a new species (inert tracer)?

For step-by-step instructions, see the CMAQ tutorial on Adding a TracerA list of available CMAQ Tutorials is provided on the CMAQ Documentation page.  

How do I add or modify a chemical reaction?

The chemical reactions used by the model are available in the mech*.def file located within the code repository’s CCTM/src/MECHS folder for the relevant mechanism. The mech*.def file is not directly used by the fortran CCTM code but is preprocessed by other utilities to provide the files needed for the CCTM. After modifying mech*.def, the RXNS_DATA_MODULE.F90 and RXN_FUNC_MODULE.F90 files can be created using the CHEMMECH pre-processor (UTIL/chemmech/). If the ebi solver is desired, the ebi solver code must also be updated which can be accomplished using the create_ebi utility also located in the UTIL folder of the code repository.

What are current areas of research and development for CMAQ?

We now have an entire page devoted to ongoing research and development called Research Highlights!

When is the next model release planned?

Updates to CMAQ are typically provided on a one to two year time scale.  View the release calendar provided by CMAS Exitto see historical and future release dates for new versions and bug fixes.

I want to be a beta tester of new CMAQ updates. How do I sign up?

You can check the EPA's CMAQ GitHub repository to see if there are any current beta versions available.  Click on Branch: master to see a pull down menu of available versions.  New beta versions of the model are announced through the CMAS Forum website.

I have a question not listed here, what do I do?

The CMAS User Forum is available for users and developers to discuss issues related to the U.S. EPA’s CMAQ modeling system and associated software maintained by the U.S. EPA and the CMAS Center.