Jump to: navigation, search


CMAQv5.0.2 includes an optional plume-in-grid treatment for modeling major point sources. This model version, referred to as CMAQ with Advanced Plume Treatment (CMAQ-APT), uses SCICHEM for simulating user specified sources. The requirements for building and running this model version are slightly different than for the base CMAQ model. For photolysis rate calculations, the code is only compatible with the look-up table option. You will need to build and generate jtables for the CCTM run using the photolysis rate preprocessor JPROC. Also, you will need to build an additional library (ODEPACK) as described below. The CCTM-APT will generate gridded concentration files and puff files that can be merged using postprocessing utilities (merge_conc, merge_dep, and merge_receptor_conc).

Build Instructions

For installing CMAQ-APT, first download, install, and build the base version of the model.

Then download the CMAQ-APT tar file and untar into the CMAQv5.0.2 home directory:

cd $M3HOME/../
tar xvzf CMAQv5.0.2_APT.Nov2015.tar.gz

Build required libraries

Create the ODEPACK library required for CMAQ-APT:

cd $M3HOME/scripts/odepack

Create the STENEX and PARIO libraris required for CMAQ-APT:

cd $M3HOME/scripts/stenex_apt
./ (for MPI applications)
./bldit.se_noop (for serial applications)
cd $M3HOME/scripts/pario_apt

Build CMAQ-APT executable

Use the bldit.cctm_apt script as you would the base cctm build script.

cd $M3HOME/scripts/cctm_apt
./bldit.cctm.apt |& tee bldit.cctm.apt.log

Building the APT post-processors

There are three post-processors provided with the APT code. One post-processor, “merge_conc”, combines the puff concentrations of active puffs (saved in the SCICHEM output files) with the gridded 3-D fields in the hourly “CONC” NetCDF files created by CMAQ to produce new 3-D CONC files that contain the merged outputs (i.e., total concentrations). Note that the SCICHEM output contains hourly snapshots of puff concentrations and does not currently offer the option of saving hourly average concentrations, so it cannot be combined with the ACONC files created in CMAQ.

The merge_conc executable is built using the build script provided in the $M3HOME/scripts/cctm_apt directory. This executable can only be built after the CCTM_APT executable is built since it needs the SCICHEM and ODEPACK libraries and compiled CCTM modules.

./bldit.merge_conc |& tee bldit.merge_conc.log

The second post-processor, “merge_dep”, is similar to merge_conc and combines the deposition fluxes in SCICHEM with those from CMAQ to create total dry and wet deposition fluxes. The merge_dep executable is also built using the build script provided in the $M3HOME/scripts/cctm_apt directory.

./bldit.merge_dep |& tee bldit.merge_dep.log

This executable can only be built after the CCTM-APT executable is built since it needs the SCICHEM and ODEPACK libraries and CMAQ modules.

The third post-processor, “receptor_conc”, extracts species concentrations at discrete locations. This post-processor can be used to look at subgrid-scale concentrations. The receptor_conc executable is also built using the build script provided in the $M3HOME/scripts/cctm_apt directory.

./bldit.receptor_conc |& tee bldit.receptor_conc.log

As with the other post-processors, this executable can only be built after the CCTM-APT executable is built since it needs the SCICHEM and ODEPACK libraries and CMAQ modules.

Run Instructions

SCICHEM inputs

The APT version of CMAQ uses the same input files as the base CMAQ. However, one additional ASCII file is required by SCICHEM. The name of this file is of the form “projname.inp” where “projname” is the project name for the particular APT application. The “inp” file extension is always required. This input file contains the SCICHEM run control parameters, species list (consistent with the CB05TUCL_AE6_AQ species in CMAQ) and the gas-phase chemistry mechanism (consistent with the CB05TUCL_AE6_AQ chemistry option). Note that no rate constants are specified in the reaction list since SCICHEM directly gets the rate constants from the RXDT.EXT file in the CMAQ directory. However, the reactants, products and stoichiometric coefficients are required since SCICHEM internally builds the production and destruction terms for the gas-phase chemistry solver from this information.

A sample SCICHEM input file is provided in the apt/CMAQv5.0.2/data/scicheminp directory. The sample input file is named cmaqapt50.inp, so the project name in the sample APT run script (see APT run script section below) is “cmaqapt50”.

A unique set of input data for the CMAQ-APT tutorial case is distributed with the software. To avoid confusing these data with the input files for the base version of the model, the DATA.CMAQv5.0.2_APT.Nov2015.tar.gz archive will unpack into a slightly different directory structure than the CMAQ-APT source code. You will need to update the CCTM_APT run scripts accordingly to point to the correct directory location of these files.

SCICHEM outputs

SCICHEM creates a number of files named “projname.???” where projname is the same as the project name in the SCICHEM input file (e.g., “cmaqapt50” for the provided example) and ??? represents the filename extension according the convention below:

  • “projname”.prj: A binary file containing the project parameters
  • “projname”.puf: A binary file containing hourly puff concentrations and other puff variables
  • “projname”.ddp: A binary file containing cumulative hourly dry deposition of puff material
  • “projname”.wdp: A binary file containing cumulative hourly wet deposition of puff material
  • “projname”.dmp and “projname”.dgn: Binary files containing diagnostic information
  • “projname”.log: ASCII file containing the run log
  • “projname”.err: ASCII file indicating whether the run completed successfully or encountered an error

In addition to the files above that are always created, NetCDF diagnostic files can be created if selected as an option at runtime. These files can be viewed using PAVE or other tools.

APT run script

A sample run script is provided in the APT release package under $M3HOME/scripts/cctm_apt.

The key differences between an APT run script and the standard CMAQ run script are explained briefly below:

  1. Link to the executable (APT instead of base CMAQ)
  2. APT-specific environment variables and pathnames:
    • “setenv CTM_PING T” (specifies that this is a PinG run using APT); default is false
    • “setenv CTM_PROJNAME cmaqapt50” (sets APT project name)
    • “setenv SCI_INDIR $SCIpath” (specifies path name for location of projname.inp file); in the provided sample script $SCIpath is set to the current working directory (where the run script is located)
    • “setenv SCI_OUTDIR $OUTDIR” (specifies path name for location of standard SCICHEM output files such as projname.prj and projname.puf); this is typically the directory that contains the CMAQ output files for each day of simulation
    • “set PREVOUTDIR = $pathname”, where pathname is the name of the directory containing the previous day’s outputs (for second and subsequent days of a multi-day simulation or for restarting a run using the previous day’s output)
    • “setenv SCI_RSTDIR $PREVOUTDIR” (specifies the location of the APT restart directory to be the same as in c) above)
    • “setenv APT_RESTART F” for a new run and “setenv APT_RESTART T” for a restarted run. The provided sample run script for a multi-day simulation sets the environment variable to false for the first day of the simulation and to true for subsequent days.
    • setenv APT_DIAG T” (species the creation of NetCDF SCICHEM diagnostic files); default is false
    • set pathnames of NetCDF SCICHEM diagnostic files if selected as an option at runtime in g) above:

  • set pathnames for in-line point source stack group and emission files (note that in this version of APT only 1 stack group and corresponding emission file can be specified as containing PinG sources). The sources to be treated with PinG in these files are specified by setting the LPING flag to 1 in the stack groups file; these sources are only treated in SCICHEM and not in the grid model:
setenv PING0 $IN_PTpath/stack_groups_ptipm_12EUS1_2005ck_05b.LPING_select.top15.ncf
setenv PING $IN_PTpath/inln_mole_ptipm_${EMISDATE}_12EUS1_cmaq_cb05_soa_2005ck_05b.AE6.ncf

Post-processor run scripts

Sample run scripts for merge_conc, merge_dep, and receptor_conc are provided in the APT release package under $M3HOME/scripts/cctm_apt. These run scripts are self-explanatory. The outputs from the merge_conc and merge_dep utilities are NetCDF files similar to the CMAQ “CONC”, “DDEP” and “WDEP” files and contain the combined (grid+puff) gridded concentrations and deposition amounts. The output from the receptor_conc is an ascii file of subgrid concentrations at specified receptors.


Karamchandani, P., J. Johnson, G. Yarwood, and E. Knipping (2014) Implementation and application of sub-grid-scale plume treatment in the latest version of EPA’s third-generation air quality model, CMAQ 5.01, Journal of the Air & Waste Management Association, 64:4, 453-467, DOI: 10.1080/10962247.2013.855152


Prakash Karamchandani, Ramboll Environ Corporation


The work to develop CMAQ APT was performed by Ramboll Environ Corporation with sponsorship from the Electric Power Research Institute (EPRI).