ENVIRON International Corporation 

USER’S GUIDE 

COMPREHENSIVE AIR QUALITY MODEL

WITH EXTENSIONS

VERSION 5.30

ENVIRON International Corporation 

773 San Marin Drive, Suite 2115 

Novato, California 94998 

415-899-0700 

www.camx.com 

www.environcorp.com 

December 2010

773 San Marin Drive, Suite 2115, Novato, CA 94998 415.899.0700 

CAMx Ozone

Particulates 

Toxics
Copyright: ENVIRON International Corporation, 

1997 – 2010 

This publication may be reproduced for 

non-commercial purposes with appropriate attribution. 

 
ACKNOWLEDGMENTS 

ENVIRON acknowledges the following groups for their contributions to the development of 

CAMx: 

• The Texas Commission on Environmental Quality (TCEQ), for sponsoring the 

development, testing, and review of numerous components of the model; 

• The Lake Michigan Air Directors Consortium (LADCo), for sponsoring the development, 

testing and review of numerous components of the model; 

• The Coordinating Research Council (CRC), for sponsoring the development, testing, and 

review of numerous components of the model; 

• The Carnegie-Mellon University, Department of Chemical Engineering, for providing 

full-science PM algorithms, assistance in incorporating them into CAMx, and testing the 

implementation; 

• The University of Texas, Center for Energy and Environmental Resources, for assistance 

in developing and testing the Open-MP multi-processor capability; 

• Atmospheric, Meteorological, and Environmental Technologies (ATMET), for providing 

libraries and implementation support for the HDF5 output format and the MPI parallel 

processing capability; 

• The Midwest Ozone Group (MOG), for sponsoring the development and testing of the 

MPI parallel processing capability; 

• The U.S. Environmental Protection Agency (EPA), for sponsoring the development, 

testing, and review of the MPI parallel processing capability. Special thanks to Dr. Jon 

Pleim for assistance with our implementation of ACM2; 

• The San Francisco Bay Area Air Quality Management District (BAAQMD), for 

supporting and testing the coupling of SAPRC99 gas-phase chemistry to the PM 

chemistry algorithm; 

• The American Petroleum Institute (API), for sponsoring the development and testing of 

improvements to the vertical advection algorithm; 

• Atmospheric and Environmental Research (AER), for developing the mercury chemistry 

algorithm. 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx i

TABLE OF CONTENTS 

Page 

1. OVERVIEW ......................................................................................................................... 1-1 

1.1 CAMx Features ............................................................................................................... 1-2 

1.2 CAMx Extensions ........................................................................................................... 1-4 

1.3 Updates in CAMx Version 5.30...................................................................................... 1-5 

2. CORE MODEL FORMULATION ..................................................................................... 2-1 

2.1 Numerical Approach ....................................................................................................... 2-1 

2.2 CAMx Grid Configuration .............................................................................................. 2-3

2.3 Treatment of Emissions .................................................................................................. 2-7 

2.4 Transport Fundamentals ................................................................................................ 2-11 

2.5 Transport Algorithms .................................................................................................... 2-14 

2.6 Wet Deposition ............................................................................................................. 2-17 

2.7 Dry Deposition .............................................................................................................. 2-24 

3. CHEMISTRY MECHANISMS ........................................................................................... 3-1 

3.1 Gas-Phase Chemistry ...................................................................................................... 3-2 

3.2 Aerosol Chemistry ........................................................................................................ 3-23 

3.3 Mercury Chemistry ....................................................................................................... 3-28 

3.4 Simple Chemistry via Mechanism 10 ........................................................................... 3-32 

4. PLUME-IN-GRID SUBMODEL ......................................................................................... 4-1 

4.1 CAMx PiG Formulation ................................................................................................. 4-2

4.2 IRON PiG ....................................................................................................................... 4-7 

4.3 GREASD PiG ............................................................................................................... 4-12 

4.4 Particulate Matter in PiG .............................................................................................. 4-13 

4.5 PiG Configuration ......................................................................................................... 4-15 

5. CORE MODEL INPUT/OUTPUT STRUCTURES .......................................................... 5-1 

5.1 CAMx Run Control File ................................................................................................. 5-2 

5.2 CAMx Chemistry Parameters File ................................................................................ 5-14 

5.3 Photolysis Rates File ..................................................................................................... 5-23 

5.4 Albedo/Haze/Ozone File ............................................................................................... 5-24 

5.5 FORTRAN Binary Input Files ...................................................................................... 5-27 

5.6 FORTRAN Binary Output Files ................................................................................... 5-41 

5.7 HDF5 Output Files ........................................................................................................ 5-46 

6. OZONE SOURCE APPORTIONMENT TECHNOLOGY ............................................. 6-1 

6.1 Introduction ..................................................................................................................... 6-1 

6.2 OSAT Formulation ......................................................................................................... 6-5 

6.3 Running CAMx with OSAT ......................................................................................... 6-21 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx ii

6.4 Input File Formats ......................................................................................................... 6-28 

6.5 Output File Formats ...................................................................................................... 6-32 

6.6 Postprocessing............................................................................................................... 6-33 

6.7 Steps in Developing Inputs and Running OSAT .......................................................... 6-35 

7. PARTICULATE SOURCE APPORTIONMENT TECHNOLOGY ............................... 7-1 

7.1 Approaches to PM Source Attribution in Grid Models .................................................. 7-1 

7.2 PSAT Methodology ........................................................................................................ 7-4 

7.3 Testing PSAT .................................................................................................................. 7-7 

7.4 Running CAMx with PSAT .......................................................................................... 7-12 

7.5 Steps in Developing Inputs and Running PSAT ............................................................ 7-15 

8. DECOUPLED DIRECT METHOD FOR SENSITIVITY ANALYSIS .......................... 8-1 

8.1 Implementation ............................................................................................................... 8-3 

8.2 Running CAMx with DDM and HDDM ........................................................................ 8-6 

8.3 Approaches to Define IC, BC and Emissions Sensitivities .......................................... 8-11 

8.4 DDM Output Files ........................................................................................................ 8-11 

8.5 DDM Sensitivity Coefficient Names ............................................................................ 8-12 

8.6 Steps in Developing Inputs and Running DDM ........................................................... 8-16 

9. PROCESS ANALYSIS ......................................................................................................... 9-1 

9.1 Process Analysis in CAMx ............................................................................................. 9-1

9.2 Running Process Analysis............................................................................................... 9-6 

9.3 Postprocessing................................................................................................................. 9-9 

9.4 Chemical Process Analysis and Grid Nesting .............................................................. 9-14 

9.5 CPA Demonstration ...................................................................................................... 9-17 

10. REACTIVE TRACERS ................................................................................................... 10-1 

10.1 Description of RTRAC ............................................................................................... 10-1

10.2 Description of RTCMC............................................................................................... 10-7 

10.3 Reactive Tracers in IRON PiG ................................................................................. 10-13 

10.4 Running CAMx with Reactive Tracers ..................................................................... 10-16 

11. THE CAMx MODELING SYSTEM .............................................................................. 11-1 

11.1 CAMx Program Structure ........................................................................................... 11-2 

11.2 Compiling CAMx ....................................................................................................... 11-4 

11.3 Running CAMx ........................................................................................................... 11-7 

11.4 CAMx Pre- and Post-Processors ............................................................................... 11-14 

12. REFERENCES .................................................................................................................. 12-1 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx iii

TABLES 

Table 2-1. Summary of the CAMx modules for key physical processes. ............................ 2-1 

Table 2-2. Relationships between season and month/latitude used in the CAMx 

Wesely/Slinn dry deposition model. Exception: seasons for the area 

within 50N-75N and 15W-15E are internally set to those of latitude 

band 35-50 to account for regions of Europe in which the climate is 

influenced by the Gulf Stream. ......................................................................... 2-28 

Table 3-1. Gas-phase chemical mechanisms currently implemented in CAMx. ................. 3-1 

Table 3-2. Reactions and rate constants for the CB4 mechanism (Mechanism 3). .............. 3-4 

Table 3-3. Species in the CB4 mechanism (Mechanism 3). ................................................ 3-6 

Table 3-4. Properties of VOC species in the CB4 mechanism: average carbon 

numbers, kOH values (ppm-1min-1) and maximum incremental 

reactivity (MIR) values (mole O3/mole VOC). ................................................... 3-6 

Table 3-5. Reactions and rate constants for the SAPRC99 mechanism 

(Mechanism 5). ................................................................................................... 3-7 

Table 3-6. Species in the SAPRC99 mechanism (Mechanism 5). ..................................... 3-11 

Table 3-7. Properties of VOC species in the SAPRC99 mechanism: average 

carbon numbers, molecular weights, kOH values (ppm-1min-1) and 

maximum incremental reactivity (MIR) values (mole O3/mole VOC) ............ 3-13 

Table 3-8. Reactions and rate constants for the CB05 mechanism (Mechanism 6) ........... 3-14 

Table 3-9. Species in the CB05 mechanism (Mechanism 6). ............................................ 3-17 

Table 3-10. Properties of VOC species in the CB05 mechanism: average carbon 

numbers, molecular weights, kOH values (ppm-1min-1) and maximum 

incremental reactivity (MIR) values (mole O3/mole VOC). ............................. 3-18 

Table 3-11. SOA precursor reactions included in CAMx. ................................................... 3-24 

Table 3-12. Properties of CG/SOA pairs.............................................................................. 3-25 

Table 3-13. List of PM species for the CAMx CF aerosol option. ...................................... 3-27 

Table 5-1. Data requirements of CAMx. .............................................................................. 5-1 

Table 5-2. CAMx output file suffixes and their corresponding file types. .......................... 5-9 

Table 5-3. Description of the CAMx chemistry parameters file. The record 

labels exist in columns 1-20, and where given, the input data for that 

record start in column 21. The format denoted “list” indicates a freeformat list of numbers (comma or space-delimited). ........................................ 5-15 

Table 5-4a. Rate constant expression types supported in CAMx and order of 

expression parameters for the chemistry parameters file. ................................. 5-22 

Table 5-4b. List of parameters that must be provided in the CAMx chemistry 

parameter file for each of the seven types of rate constant expressions. 

Use ppm/minute units for A and Kelvin for Ea and TR. The variable 

O is the order of the reaction (1 to 3).. .............................................................. 5-23 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx iv

Table 5-5. The 11 CAMx landuse categories and the default surface roughness 

values (m) assigned to each category by season for the WESELY89 

dry deposition option. Winter is defined for conditions where there is 

snow present; winter months with no snow are assigned to the Fall 

category. Roughness for water is taken as the maximum of the 

baseline value given in the table, and the function 6 2.5

0 z 2 10 w− = × , 

where w is surface wind speed (m/s). The UV albedos are used in the 

albedo/haze/ozone (AHO) file. ......................................................................... 5-30 

Table 5-6. The 26 CAMx landuse categories and the default annual minimum 

and maximum LAI and surface roughness (m) ranges assigned to each 

category for the ZHANG03 dry deposition option. Roughness for 

water is calculated from the function 6 2.5

z 0 2 10 w− = × , where w is 

surface wind speed (m/s). The UV albedos are used in the 

albedo/haze/ozone (AHO) file. ......................................................................... 5-32 

Table 5-7. List of steady-state radical species names used in the CB4, CB05, and 

SAPRC99 gas-phase chemical mechanisms. .................................................... 5-42 

Table 6-1. Numbers of emission file sets (i.e., low level files and point source 

file) needed for different model configurations. ............................................... 6-23 

Table 6-2. Format for the receptor definition file. ............................................................. 6-31 

Table 8-1. DDM output file suffix names. ......................................................................... 8-12 

Table 9-1. Process information reported by the IPR option. ................................................ 9-3 

Table 9-2. Chemical Process Analysis (CPA) variables calculated in CAMx for 

the CB4, CB05 and SAPRC99 mechanisms. ...................................................... 9-4 

Table 9-3. Process analysis keywords and associated CAMx output files. ......................... 9-6 

Table 10-1. Keywords, options and default values for the Control section of the 

IMC file. ............................................................................................................ 10-9 

Table 10-2a. Recommended SCICHEM rate constant expression types for use in 

CAMx. ............................................................................................................ 10-14 

Table 10-2b. Parameters required by SCICHEM rate constant expression types. ............... 10-15 

Table 10-3. Determining the reaction order and consequent unit dimensions for 

rate constants. .................................................................................................. 10-15 

Table 10-4. RTCMC parameters default settings in the Includes/rtcmc.com

include file. ..................................................................................................... 10-19 

Table 11-1. Parameters and their defaults in camx.prm used to statically 

dimension local arrays in low-level subroutines. .............................................. 11-3 

Table 11-2. Example of computer requirements for several non-MPI CAMx 

configurations on a dual-processor Athlon 2800+ (2.1Ghz) PC; 

compiled using the Portland Group compiler. ................................................ 11-13 

Table 11-3. CAMx speed performance with MPI and OMP for the distribution test 

case available at www.camx.com (processed on 2.83 Ghz Intel Xeon 

chipsets). ......................................................................................................... 11-14 

Table 11-4. CAMx speed performance with MPI and OMP for the EPA/OAQPS 

test case (processed on 2.83 Ghz Intel Xeon chipsets). ................................. 11-14 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx v

FIGURES 

Figure 2-1. A horizontal representation of the Arakawa C variable configuration 

used in CAMx. .................................................................................................... 2-4 

Figure 2-2. An example of horizontal grid nesting, showing two telescoping 

nested grids within a 10×10 cell master grid. The outer nest contains 

10×12 cells, and the inner nest contains 6×10 cells. ........................................... 2-5 

Figure 2-3. A schematic illustration of the CAMx vertical grid indexing 

convention and vertical nesting. The lowest 2 master (coarse) grid 

layers are split into 4 layers in nested Fine Grid 1, and the lowest 5 

layers of Fine Grid 1 are split into 9 layers in nested Fine Grid 2. 

Note that the nested grids possess a matching layer interface for every 

parent grid layer interface. .................................................................................. 2-6 

Figure 2-4. Schematic representation of the turbulent exchange among layers 

within a vertical grid column during convective adjustment in the 

ACM2 (taken from Pleim [2007]). ................................................................... 2-16 

Figure 2-5. Comparison of monthly LAI data embedded in the Zhang dry 

deposition scheme against episode-specific LAI for June 2005. ...................... 2-30 

Figure 2-6. Comparison of particle dry deposition velocities as a function of size 

and wind speeds (m/s) for three models: black – Zhang et al. (2001); 

blue – Slinn and Slinn (1980); orange – AERMOD (EPA, 1998). 

Results are shown for a forest landuse category during daytime neutral 

stability. Particle density was set at 1.5 g/cm3

. ................................................ 2-32 

Figure 2-7 Comparison of particle dry deposition velocities determined by the 

Zhang et al. (2001) and Slinn and Slinn (1980) models, as a function 

of landuse and wind speed during daytime neutrally stable conditions. 

Particle density was set at 1.5 g/cm3

 ................................................................. 2-32 

Figure 3-1. Impact of chemical decay on the concentration of the donor species 

PMT. ................................................................................................................. 3-33 

Figure 3-2. Impact of chemical production on the concentration of the recipient 

species PM2. ..................................................................................................... 3-33 

Figure 4-1. Schematic representation of CAMx PiG puff shape in the horizontal. 

Directional orientation of the puff is arbitrary, and evolves during the 

age of the puff according to wind direction, shears and diffusive 

growth along its trajectory. ................................................................................. 4-3 

Figure 4-2. Plan-view schematic representation of a chain of PiG puffs emitted 

from a point source into an evolving gridded wind field. The red line 

connected by dots represents puff centerlines, with dots representing 

leading and trailing points of each puff. The CAMx computational 

grid is denoted by the blue lines. ........................................................................ 4-6 

Figure 4-3. Example of a single point source PiG plume as depicted by a sampling 

grid with 200 m resolution (shown by the extent of the plot). This 

sampling grid was set within a CAMx computational grid with 4-km 

resolution. The source location is arbitrary and is emitting an inert 

tracer. ................................................................................................................ 4-12 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx vi

Figure 5-1. A sample CAMx job script that generates a “CAMx.in” file and runs 

the model. .......................................................................................................... 5-11 

Figure 5-2a. Example CAMx chemistry parameters file for Mechanism 6 (CF 

scheme), including the mercury species HG0, HG2, and HGP. ....................... 5-17 

Figure 5-2b. Example inert chemistry parameters file (requires chemistry flag to be 

set false-see the description of the CAMx control file). ................................... 5-21 

Figure 5-3. Example of the first several panels of lookup data in the photolysis 

rates input file. .................................................................................................. 5-25 

Figure 5-4. Example of the structure of a 2-grid abedo/haze/ozone input file 

showing panels for all mandatory and optional fields. ..................................... 5-28 

Figure 6-1. Example of the sub-division of a CAMx domain into separate areas 

for geographic source apportionment. ................................................................ 6-2 

Figure 6-2. Example display of ozone source apportionment information provided 

by OSAT for a run with 17 source areas and 1 emission group. ........................ 6-4 

Figure 6-3. Daytime reactions of ozone with HOx (OH and HO2) showing 

potential for reformation of ozone or ozone destruction via peroxide 

formation. .......................................................................................................... 6-12 

Figure 6-4. Box model simulation to evaluate PH202/PHNO3 indicator for VOC vs. 

NOx limited ozone formation (see text). Ozone is plotted against the 

left axis, PH202/PHNO3 is plotted against the right axis. For PH202/PHN03

below 0.35 ozone formation is VOC limited. Thus, the transition form 

VOC to NOx limited ozone formation is predicted to occur about 12 

noon. Initial VOC/NOx = 10:1. ....................................................................... 6-15 

Figure 6-5. Effect on ozone of controlling VOC and NOx by 30 percent for the 

base scenario shown in Figure 6-4. The vertical dashed line shows the 

transition form VOC to NOx limited ozone formation for the base 

case derived in Figure 6-4. Initial base case VOC/NOx = 10:1. ..................... 6-15 

Figure 6-6. Change in ozone (control-base) for the VOC and NOx control 

scenarios shown in Figure 6-5. The vertical dashed line shows the 

transition from VOC to NOx limited ozone formation for the base 

case derived in Figure 6-4. Initial base case VOC/NOx = 10:1. ..................... 6-16 

Figure 6-7a. As Figure 6-4, but for an Initial VOC/NOx = 20:1. ......................................... 6-16 

Figure 6-7b. As in Figure 6-6, but for an Initial VOC/NOx = 20:1. ..................................... 6-17 

Figure 6-8a. As Figure 6-4, but for an Initial VOC/NOx = 5:1. ........................................... 6-17 

Figure 6-8b. As Figure 6-6, but for an Initial VOC/NOx = 5:1 ............................................ 6-18 

Figure 6-9a. An example of OSAT input records in the CAMx run control file. 

The options for this run are as follows: this is a two-grid run, master 

and nested grid surface concentrations are written to file, a single 

tracer type is to be used for all boundaries, 19 source regions, one 

emission group (i.e., zero additional emission files and no leftover 

group), and two timing tracer releases per day. This is the first day of 

the simulation (i.e., restart is false), so no OSAT restart files are 

supplied. ............................................................................................................ 6-24 

Figure 6-9b. As in Figure 6-9(a), but in this case the run is a continuation, and so 

the restart flag is set to TRUE and a “Tracer Restart” files are 

supplied. ............................................................................................................ 6-25 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx vii

Figure 6-9c. As in Figure 6-9(a), but in this case the run is a continuation day of a 

run with three emission groups. The three emission groups are 

defined by supplying two pairs of extra emission files for each grid 

(AREA group 1, AREA group 2, and POINT group 2), and setting the 

“Use_Leftover_Group” flag to TRUE for the model to calculate the 

third group internally. The POINT group 1 filename is blank because 

group 1 is a category with no point source emissions (e.g., biogenics). ........... 6-26 

Figure 6-9d. As in Figure 6-9(c) (i.e. a continuation day of a run with three 

emission groups), but in this case all three emission groups are defined 

explicitly by supplying extra emission files (AREA group 1, AREA 

group 2, POINT group 2, AREA group 3, and POINT group 3). 

Therefore, the “Use_Leftover_Group” flag is set to FALSE. The 

POINT group 1 filename is blank because group 1 is a category with 

no point source emissions (e.g., biogenics). ..................................................... 6-27 

Figure 6-10. Example source area mapping file for the domain and source areas 

shown in Figure 6-1. ......................................................................................... 6-30 

Figure 6-11. Example Receptor Concentration File. Lines ending with “..” are 

truncated to fit the page, and the file would continue with data for 

additional receptors and hours in the same format. .......................................... 6-34 

Figure 7-1. The CAMx modeling domain for PSAT testing showing sub-division 

to geographic areas and locations of four hypothetical point sources (+ 

symbols). ............................................................................................................. 7-9 

Figure 7-2. Comparison of sulfate contributions (μg/m3

) from the hypothetical 

MRPO point source on 28 June 2001 at hour 15: (a) PSAT result; (b) 

Zero-out result. .................................................................................................... 7-9 

Figure 7-3. Comparison of episode average (June 18 to July 21, 2001) sulfate 

contributions (μg/m3

) from the hypothetical MRPO point source: (a) 

PSAT result; (b) Zero-out result. ...................................................................... 7-11 

Figure 7-4. PSAT apportionment of reactive nitrogen (NOy) to initial conditions 

and emissions during a 24-hour box model simulation. ................................... 7-11 

Figure 7-5. Source-Oriented External Mixture (SOEM) apportionment of reactive 

nitrogen (NOy) to initial conditions and emissions during a 24-hour 

box model simulation. ....................................................................................... 7-12 

Figure 7-6. This figure follows from Figure 6-8(d): it is a continuation day of a 2-

grid run with three emission groups, and all three emission groups are 

defined explicitly by supplying extra emission files (AREA group 1, 

AREA group 2, POINT group 2, AREA group 3, and POINT group 

3). Therefore, the “Use_Leftover_Group” flag is set to FALSE. The 

POINT group 1 filename is blank because group 1 is a category with 

no point source emissions (e.g., biogenics). PSAT will trace PM 

sulfate and nitrate species only. ........................................................................ 7-14 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx viii

Figure 8-1. Example input of DDM options and filenames via the CAMx control 

file. In this case, CAMx is run with two grids, and DDM is 

configured to track emissions from four source regions and two source 

groups (biogenic and anthropogenic). Initial and boundary conditions 

are tracked as a single sensitivity called “ALL”, while emissions are 

tracked with three sensitivities called “NOx”, “VOC”, and “ALL”. 

Additionally, second-order sensitivities to biogenic VOC emissions 

from the first source region will be computed. No source region map 

is provided for the nested grid (the region assignments on the nest are 

defined by the master grid). Initial condition sensitivity is not being 

tracked (no file provided), and only the group 2 point sources are 

tracked (no biogenic point sources are available). ............................................ 8-10 

Figure 8-2. Example concordance of long and short sensitivity coefficient names 

from the CAMx diagnostic output file. ............................................................. 8-13 

Figure 9-1. Example section of a CAMx control file specifying options for 

Process Analysis. ................................................................................................ 9-7 

Figure 9-2. Time-averaged IPR analysis for PSO4 and PNO3 on June 13 and 14, 

2002; all of the processes are plotted individually. ........................................... 9-11 

Figure 9-3. IPR time series analysis for PSO4 and PNO3; Lateral 

boundary/Chemistry terms are not aggregated. ................................................ 9-12 

Figure 9-4. IPR time series analysis for PSO4 and PNO3; Lateral 

boundary/Chemistry terms are aggregated to a single net term, in 

contrast to Figure 9-3. ....................................................................................... 9-13 

Figure 9-5. Surface OH concentrations for the OTAG master grid area with (a) 

and without (b) vertical nesting in the nested grid area. ................................... 9-16 

Figure 9-6. Surface ozone concentrations for the OTAG master grid area with (a) 

and without (b) vertical nesting in the nested grid area. ................................... 9-16 

Figure 9-7. The CAMx Los Angeles modeling domain (Yarwood et al., 2003). ................ 9-18 

Figure 9-8. PBL depth (m) diagnosed by VRTAVG for 14:00 on August 5, 1997. ........... 9-19 

Figure 9-9. PBL average ozone (ppb) at 14:00 on August 5, 1997. .................................... 9-19 

Figure 9-10. Relative response of ozone to a 50% NOx emission reduction at 14:00 

on August 5, 1997. ............................................................................................ 9-20 

Figure 9-11. Ozone production rate (ppb/hr) at 14:00 on August 5, 1997. ........................... 9-21 

Figure 9-12. Difference (CB4-SAPRC99) in ozone production rate (ppb/hr) at 

14:00 on August 5, 1997. .................................................................................. 9-21 

Figure 9-13. Ratio of instantaneous production rates for hydrogen peroxide to nitric 

acid (H2O2 produced / HNO3 produced) at 14:00 on August 5, 1997. ............. 9-22 

Figure 9-14. Ozone production rate in areas defined as NOx-sensitive by the 

PH2O2/PHNO3 indicator ratio at 14:00 on August 5, 1997. .................................. 9-22 

Figure 9-15. Ozone production rate in areas defined as VOC-sensitive by the 

PH2O2/PHNO3 indicator ratio at 14:00 on August 5, 1997. .................................. 9-23 

Figure 9-16. HOx radical initiation rate (ppb/hour) at 14:00 on August 5, 1997. ................. 9-24 

Figure 9-17. HOx radical reaction rate (ppb/hour) at 14:00 on August 5, 1997. .................. 9-25 

Figure 9-18. HOx chain length at 14:00 on August 5, 1997.................................................. 9-26 

Figure 9-19. Ratio of the HOx chain length for CB4 to SAPRC99 at 14:00 on 

August 5, 1997. ................................................................................................. 9-26 

Figure 9-20. RO2 organic peroxy radical reaction rate (ppb/hour) at 14:00 on 

August 5, 1997. ................................................................................................. 9-27 
CAMx v5.30 User’s Guide, December 2010 

Table of Contents 

Y:\CAMx\UsersGuide\v5.30\TOC.docx ix

Figure 9-21. Conversion rate (ppb/hr) for NO2 to HNO3 by reaction with OH at 

14:00 on August 5, 1997. .................................................................................. 9-28 

Figure 9-22. Rate of NOx recycling (ppb/hr) from NOz at 14:00 on August 5, 1997 .......... 9-29 

Figure 9-23. Ozone destruction rate by chemical reactions (ppb/hr) at 14:00 on 

August 5, 1997. ................................................................................................. 9-30 

Figure 9-24. OH + isoprene as a fraction of OH + VOC reactions at 14:00 on 

August 5, 1997. ................................................................................................. 9-31 

Figure 10-1. Example RTRAC chemistry input file for modeling the MATES toxic 

species using CB4 as the host chemical mechanism. ....................................... 10-2 

Figure 10-2. Example RTRAC chemistry input file for modeling toxic species with 

SAPRC99 as the host chemical mechanism. .................................................... 10-3 

Figure 10-3. Example RTRAC receptor input file identifying the grid cells with 

locations of point source complexes where hourly decay rates will be 

output for subgrid-scale point source modeling (see format for OSAT 

receptor file in Table 6-2). ................................................................................ 10-6 

Figure 10-4. Example RTCMC chemistry input file. ............................................................ 10-8 

Figure 10-5. Example RTRAC tracer plume emanating from a large point source 

and displayed on a surface sampling grid with 1-km grid spacing. The 

figure illustrates the entire extent of the sampling grid. ................................. 10-16 

Figure 10-6. Example input of RTRAC options and filenames within the CAMx 

control file. ...................................................................................................... 10-18 

Figure 11-1. Schematic diagram of the CAMx modeling system. See Table 5-1 for 

a detailed list of specific model input requirements for the five major 

data classes shown at the top of the figure. Certain pre- and postprocessor programs shown in the figure are described in this section. 

Third-party models, processors, and visualization software are not 

described in this User’s Guide and are not distributed with CAMx. ................ 11-1 

Figure 11-2. An example of global ozone column from the Ozone Monitoring 

Instrument (OMI) platform. White areas denote missing data. From 

http://jwocky.gsfc.nasa.gov/. .......................................................................... 11-17 
CAMx v5.30 User’s Guide, December 2010 

Overview 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_01_overview.docx 1-1 

1. OVERVIEW

The Comprehensive Air quality Model with extensions (CAMx) is an Eulerian photochemical 

dispersion model that allows for an integrated “one-atmosphere” assessment of gaseous and 

particulate air pollution (ozone, PM2.5, PM10, air toxics, mercury) over many scales ranging from 

sub-urban to continental. It is designed to unify all of the technical features required of “state-ofthe-science” air quality models into a single system that is computationally efficient, easy to use, 

and publicly available. The model code has a highly modular and well-documented structure 

which eases the insertion of new or alternate algorithms and features. The input/output file 

formats are compatible with the Urban Airshed Model genre and are compatible with many 

existing pre- and post-processing tools. 

CAMx simulates the emission, dispersion, chemical reaction, and removal of pollutants in the 

troposphere by solving the pollutant continuity equation for each chemical species (l) on a 

system of nested three-dimensional grids. The Eulerian continuity equation describes the time 

dependency of the average species concentration (cl

) within each grid cell volume as a sum of all 

of the physical and chemical processes operating on that volume. This equation is expressed 

mathematically in terrain-following height (z) coordinates as follows: 

where VH

 is the horizontal wind vector, η is the net vertical transport rate, h is the layer interface 

height, ρ is atmospheric density, and K is the turbulent exchange (or diffusion) coefficient. The 

first term on the right-hand side represents horizontal advection, the second term represents net 

resolved vertical transport across an arbitrary space- and time-varying height grid, and the third 

term represents sub-grid scale turbulent diffusion. Chemistry is treated by simultaneously 

solving a set of reaction equations defined from specific chemical mechanisms. Pollutant 

removal includes both dry surface uptake (deposition) and wet scavenging by precipitation. 

CAMx can perform simulations on three types of cartesian map projections: Universal 

Transverse Mercator, Rotated Polar Stereographic, and Lambert Conic Conformal. CAMx also 

offers the option of operating on a curvi-linear geodetic latitude/longitude grid system as well. 

Furthermore, the vertical grid structure is defined externally, so layer interface heights may be 

specified as any arbitrary function of space and/or time. This flexibility in defining the 

horizontal and vertical grid structures allows CAMx to be configured to match the grid of any 

meteorological model that is used to provide environmental input fields. 

( ) ( )

Removal

l

Chemistry

l

Emission

l

l l

l

H H l

l

t

c

t

c

t

c

K c

z t

h

c

z

c

V c

t

c

∂

∂

+

∂

∂

+

∂

∂

+

+ ∇ ⋅ ∇

















∂ ∂

∂

−

∂

∂

= − ∇ ⋅ +

∂

∂

ρ ρ

η

/

2
CAMx v5.30 User’s Guide, December 2010 

Overview 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_01_overview.docx 1-2 

1.1 CAMx FEATURES 

In addition to the attributes it shares with most photochemical grid models, some of the most 

notable features of CAMx are: 

Two-Way Nested Grid Structure: This feature allows CAMx to be run with coarse grid spacing 

over a wide regional domain in which high spatial resolution is not particularly needed, while 

within the same run, applying fine grid nests in specific areas where high resolution is needed. 

Flexi-Nesting: CAMx offers the ability for users to arbitrarily introduce and/or remove various 

nested grids at any point during the course of a simulation. Upon model restart, CAMx 

automatically diagnoses any changes to the grid system. User’s can supply complete information 

for new grids (emissions, landuse, meteorology) or allow CAMx to interpolate any or all of these 

inputs from parent grids. Example applications of flexi-nesting include running spin-up days 

with a single coarse master grid and introducing nests just for episode days, or evaluating 

sensitivity to grid configuration when designing a model application. 

Multiple Photochemical and Gas Phase Chemistry Mechanism Options: Users can select among 

two versions of Carbon Bond IV (CB4) chemistry (CAMx Mechanisms 3 and 4), the 2005 

version of Carbon Bond (CB05) chemistry (CAMx Mechanism 6) or the 1999 version of SAPRC 

chemistry (CAMx Mechanism 5). 

Treatment of Particulate Matter: CAMx features a “one-atmosphere” treatment for ozone and 

particulate matter (PM) with detailed algorithms for the relevant science processes, including 

aqueous chemistry (RADM-AQ), inorganic aerosol thermodynamics/partitioning (ISORROPIA), 

and secondary organic aerosol formation/partitioning (SOAP). Nitrate uptake by calcium on fine 

crustal PM is calculated external to ISORROPIA. The particulate chemistry mechanism utilizes 

products from the gas-phase photochemistry for production of sulfate, nitrate, condensable 

organic gases, and chloride. The one-atmosphere ozone/PM treatment is linked to CB4 gasphase chemistry via CAMx “Mechanism 4”, to CB05 gas-phase chemistry via CAMx 

“Mechanism 6”, and SAPRC99 gas-phase chemistry via CAMx “Mechanism 5.” CAMx 

provides two options for the representation of the particle size distribution: a static two-mode 

coarse/fine (CF) scheme, and the multi-sectional CMU scheme, which treats the size evolution of 

each aerosol constituent among a number of fixed size sections. 

Mercury Chemistry: CAMx may be used to model the chemistry of three mercury species, two 

gaseous (HG0 and HG2) and one particulate (HGP), via gas and aqueous pathways. The 

mercury chemistry module requires total PM concentrations, so mercury can only be modeled 

with Mechanisms 4, 5 or 6 (CF) by including mercury species among the list of modeled species. 

All of the rate and equilibrium constants for the mercury mechanism are hard-coded within 

chemistry module. 

User-Defined Chemistry Mechanism: The model recognizes “Mechanism 10” as a simple way 

to define your own chemistry mechanism. This option is intended for users to define simple 

chemical transformations between gas and/or aerosol species. You must develop your own 

Mechanism 10 subroutine and chemistry parameters file. An example might be a case where the 

user has only SO2 emissions from a few sources and wishes to estimate first-order decay to 

sulfate without the need to employ full photochemical oxidant chemistry. 
CAMx v5.30 User’s Guide, December 2010 

Overview 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_01_overview.docx 1-3 

Chemical Kinetics Solver Options: Three options are available to solve gas-phase chemistry. 

The Euler-Backward Iterative (EBI) solver has replaced the original Chemistry Mechanism 

Compiler (CMC) solver employed in past versions of CAMx. EBI provides improved accuracy 

with similar speed compared to CMC. Alternatively, users may select the Implicit-Explicit 

Hybrid (IEH) chemical solver of Sun, Chock and Winkler (1994). The IEH solver accuracy is 

comparable to reference methods such as LSODE but is several times slower than the EBI 

solver. The model also includes the fully explicit LSODE solver. LSODE can be used to 

"benchmark" a simulation to evaluate the performance of EBI or IEH. We do not recommend 

use of LSODE for typical applications as the model will run much more slowly. 

Plume-in-Grid (PiG) Module: CAMx features a PiG sub-model to treat the chemistry and 

dispersion of point source emission plumes at sub-grid scales; individual plume segments are 

tracked by the Lagrangian module while undergoing dispersion and chemical evolution, until 

such time as their pollutant mass should be represented within the grid model framework. Plume 

dispersion is determined using a second-order closure puff spread calculation. The full 

photochemical chemistry option is called Incremental Reactions for Organics and NOx (IRON) 

PiG, and may be applied to point sources of any kind to simulate full CB4, CB05 or SAPRC99 

gas-phase photochemistry. Gas-phase chemistry in PiG is solved using LSODE. The GREASD 

PiG option is designed to treat the early chemical evolution of large NOx point source plumes 

before oxidant production becomes important to facilitate ozone and PM source apportionment 

Probing Tools. PM chemistry is only treated by the GREASD PiG option. Both PiG options 

include a “sampling grid” capability to passively sample plume surface concentrations at any 

resolution, which is particularly useful to visualize near-source sub-grid scale impacts. 

Horizontal Advection Solver Options: The Area Preserving Flux-Form advection solver of Bott 

(1989) and the Piecewise Parabolic Method (PPM) of Colella and Woodward (1984) are 

available in CAMx. These schemes possess high-order accuracy, little numerical diffusion, and 

are sufficiently quick for applications on very large grids. Either of these solvers may be 

selected via the CAMx run control file. 

Vertical Diffusion (Mixing) Options: By default, CAMx employs a standard “K-theory” 

approach for vertical diffusion to account for sub-grid scale mixing layer-to-layer, where threedimensional diffusivity fields values are provided via input file. Version 2 of the Asymmetric 

Convective Model (ACM2; Pleim, 2007) is available as an alternative to the K-theory approach. 

ACM2 includes mixing between adjacent layers using K-theory and includes mixing between 

non-adjacent layers only for transfer from the surface to layers aloft during convective 

conditions. Thus, ACM2 includes the basic features of both local and the most important 

component of non-local exchange. Note that ACM2 increases CAMx runtime considerably 

relative to the default K-theory, so use of parallelization with ACM2 is encouraged. 

Dry Deposition Options: CAMx offers two dry deposition options: the original approach based 

on the work of Wesely (1989) and Slinn and Slinn (1980); and an updated approach based on the 

work of Zhang et al. (2001; 2003). The Zhang scheme is a state-of-the-science algorithm that 

incorporates vegetation density effects via leaf area index (LAI), possesses an updated 

representation of non-stomatal deposition pathways including a better snow cover treatment, and 

has been tested extensively through its use in daily air quality forecasting. It has been shown to 

reproduce observed fluxes of ozone and SO2 with reasonable accuracy. The original 
CAMx v5.30 User’s Guide, December 2010 

Overview 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_01_overview.docx 1-4 

Wesely/Slinn model is formulated for 11 landuse categories, while the Zhang model uses 26 

landuse categories. 

 

Advanced Photolysis Model: The TUV radiative transfer and photolysis model (Madronich, 

2002), developed at the National Center of Atmospheric Research (NCAR), is used as a CAMx 

preprocessor to provide the air quality model with a multi-dimensional lookup table of clear-sky 

photolysis rates by surface albedo, total ozone column, haze turbidity, altitude, and zenith angle. 

CAMx includes two optional schemes to internally adjust clear-sky photolysis rates for the 

presence of clouds. The default approach uses a fast in-line version of TUV (Emery et al., 2010) 

to calculate photolysis adjustment profiles through each cloudy grid column. The original cloud 

adjustment approach has been retained as an option, which is based on the parameterization 

developed for the Regional Acid Deposition Model (RADM; Chang, et al., 1987). 

Parallel Processing: Multi-processor support is included in CAMx in two ways: (1) use of 

OpenMP (OMP) compiler directives within the CAMx code, which allows parallel processing on 

shared-memory (e.g., multi-core) computers; and (2) use of the Message Passing Interface (MPI) 

protocol, which allows for parallel processing on distributed memory (networked) computer 

cluster environments. Significant speed improvements can be realized using parallel processing, 

depending on the size of the application and number/speed of CPUs to which the CAMx 

simulation is distributed. Both MPI and OMP can be used in combination to maximize speed 

performance. To use MPI you must have the MPICH utility installed on your system. To use 

OMP, your fortran compiler must include libraries to support its in-code directives. 

1.2 CAMx EXTENSIONS 

The CAMx “extensions” include: 

Ozone Source Apportionment Technology (OSAT): The OSAT and its derivatives (e.g., APCA) 

allow CAMx to track source region and/or source category contributions to predicted grid cell 

ozone concentration; thus, for any selected receptor point and time, the model gives a clear 

picture of the likely distribution of ozone and ozone precursors by source category and/or source 

region, as well as an indication as to whether the ozone at the selected time and location would 

more likely respond to upwind NOx or VOC controls. 

Particulate Source Apportionment Technology (PSAT): PSAT provides source-category and 

geographic source apportionment of modeled PM by individual species or by several species 

aggregation methods. This Probing Tool works similarly to OSAT methods for ozone. It works 

in conjunction with the Mechanism 4, 5 or 6 (CF) chemistry only. 

Decoupled Direct Method (DDM) and Higher-Order Decoupled Direct Method (HDDM) for 

Source Sensitivity of Ozone and Other Gas Species: The CAMx implementation calculates firstorder (DDM) sensitivity coefficients, and both first and second order (HDDM) sensitivity 

coefficients, of all gas concentrations to changes in emissions, initial conditions and boundary 

conditions. The primary purpose of (H)DDM is to estimate the impact of region- and categoryspecific emission changes on pollutant concentrations. DDM provides very accurate sensitivity 

estimates for relative small changes (10-20%). HDDM runs faster than DDM and allows for 

more accurate sensitivity estimates for larger changes (up to 70%), but its first-order estimates 

are less accurate than DDM. 
CAMx v5.30 User’s Guide, December 2010 

Overview 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_01_overview.docx 1-5 

Process Analysis (PA): The PA tool is designed to provide in-depth analyses of the physical and 

chemical processes in an air quality model. Through PA, one can more fully understand the 

complex interactions of the different processes, explain simulation results within the context of 

model formulation, and improve the design of control strategies. Three components of PA are 

implemented in CAMx: (1) Integrated Processes Rate (IPR) analysis, which provides detailed 

process rate information for each bulk process in CAMx (i.e., advection, diffusion, deposition, 

emissions, chemistry, etc.) for selected grid cells and selected species; (2) Integrated Reaction 

Rate (IRR) analysis, which provides detailed reaction rate information for all reactions in the 

chemical mechanism for selected grid cells; and (3) Chemical Process Analysis (CPA), which is 

closely related to the IRR method but is designed to be more user friendly and accessible. PA is 

available for use in CB4, CB05, and SAPRC99 chemical mechanisms, and for EBI, IEH, and 

LSODE chemistry solvers. 

Reactive Tracer (RTRAC) Source Apportionment: The RTRAC method provides a flexible 

approach for tracking the emission, dispersion, chemistry, and deposition of multiple gas and 

particle tracers. The tracers operate in parallel to the CAMx host model. Gas-phase chemistry 

can be defined as a simple decay rate for each species (photolysis and reactions with radicals), or 

as a complex non-linear system defined by the user through the RTRAC Chemical Mechanism 

Compiler (RTCMC). RTRAC can also output locally specific tracer decay rates for input to a 

separate Gaussian or puff dispersion model for sub-grid scale or “fence line” dispersion 

calculations. Potential RTRAC applications include simulating gaseous and particle air toxic 

compounds from specific source sectors. RTRAC species can also be carried within IRON PIG 

puffs. An RTRAC/PiG “sampling grid” capability can be used to passively sample surface 

concentrations of RTRAC species within reactive plumes at very small spatial scales. 

1.3 UPDATES IN CAMx VERSION 5.30

CAMx version 5.30 includes the following major updates and additional capabilities over 

version 5.20: 

New Dry Deposition Option: CAMx offers two dry deposition options: the original approach 

based on the work of Wesely (1989) and Slinn and Slinn (1980); and an updated approach based 

on the work of Zhang et al. (2001; 2003). The new scheme is a state-of-the-science algorithm 

that incorporates vegetation density effects via leaf area index (LAI), possesses an updated 

representation of non-stomatal deposition pathways including a better snow cover treatment, and 

has been tested extensively through its use in daily air quality forecasting. It has been shown to 

reproduce observed fluxes of ozone and SO2 with reasonable accuracy. The original 

Wesely/Slinn model is formulated for 11 landuse categories, while the Zhang model uses 26 

landuse categories. A new landuse input file format is introduced that supports both landuse 

categorizations as well as an optional LAI data field. 

Cloud Photolysis Adjustments Using an In-Line Version of TUV: CAMx includes two optional 

schemes to adjust clear-sky photolysis rates for the presence of clouds. The new default 

approach uses a fast in-line version of TUV (Emery et al., 2010) to calculate photolysis 

adjustment profiles through each cloudy grid column. The original CAMx cloud adjustment 

approach has been retained as an option, which is based on the parameterization developed for 

the Regional Acid Deposition Model (RADM; Chang, et al., 1987). While the new option is 
CAMx v5.30 User’s Guide, December 2010 

Overview 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_01_overview.docx 1-6 

very fast, the scheme maintains accuracy in the calculation of clear-sky photolysis rates, while 

allowing clouds to be directly involved in radiative transfer calculations through each grid 

column. The definition of cloud optical depth in the cloud/rain file has changed; thus, cloud/rain 

files generated for CAMx v5.30 and later will not work correctly in earlier versions of CAMx. 

Plume Rise Update: The plume rise algorithm was updated to calculate plume depth at final rise 

and to distribute point source emissions into all model layers spanned by plume depth. In prior 

versions, point emissions were emitted into the single layer containing the altitude of final rise. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-1 

2. CORE MODEL FORMULATION

This section introduces the basic numerical approach employed in CAMx, and describes the 

technical formulation of the transport and removal processes. The specific chemical mechanisms 

and their numerical solvers are discussed in detail in Section 3. 

2.1 NUMERICAL APPROACH 

The physical representations and the numerical methods used for each term of the pollutant 

continuity equation (described in Section 1) are summarized in Table 2-1. CAMx includes peeraccepted algorithms and component formulations, and its modular framework permits easy 

substitution of additional and/or updated algorithms in the future. 

Table 2-1. Summary of the CAMx models and methods for key physical processes. 

Process Physical Models Numerical Methods

Horizontal advection Eulerian continuity equation • Bott (1989) 

• PPM (Colella and Woodward,1984) 

Horizontal diffusion K-theory 1st order closure Explicit simultaneous 2-D solver 

Vertical advection Eulerian continuity equation Implicit backward-Euler (time) hybrid 

centered/upstream (space) solver 

Vertical diffusion • K-theory 1st order closure 

• Non-local mixing 

• Implicit backwards-Euler (time) 

centered (space) solver 

• Explicit ACM2 non-local 

convection/diffusion (Pleim, 2007) 

Gas-Phase Chemistry 

• Carbon Bond IV (Gery et al., 1989) 

• Carbon Bond 2005 (Yarwood et al., 2005b) 

• SAPRC99 (Carter, 2000) 

• Inorganic/organic aerosol precursors 

• EBI (Hertel et al., 1993) 

• IEH (Sun et al., 1994) 

• LSODE (Hindmarsh, 1983) 

Aerosol Chemistry 

• Aqueous inorganic chemistry 

• Inorganic thermodynamics/partitioning 

• Organic thermodynamics/partitioning 

• Static 2-mode or multi-section size models 

• RADM-AQ (Chang et al., 1987) 

• ISORROPIA (Nenes et al., 1998) 

• SOAP (Strader et al., 1999) 

• CMU (Pandis et al., 1993) 

Dry deposition 

• Resistance model for gases (Wesely, 1989) 

and aerosols (Slinn and Slinn, 1980) 

• Resistance model for gases (Zhang et al., 

2003) and aerosols (Zhang et al., 2001) 

Deposition velocity as surface 

boundary condition in vertical 

diffusion solver 

Wet deposition Scavenging model for gases and aerosols 

(Seinfeld and Pandis, 1998) 

Exponential decay as a function of 

scavenging coefficient 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-2 

The continuity equation is numerically marched forward in time over a series of time steps. At 

each step, the continuity equation is replaced by an operator-splitting approach that calculates the 

separate contribution of each major process (emission, advection, diffusion, chemistry, and 

removal) to concentration change within each grid cell. The specific equations that are solved 

individually in the operator-splitting process are shown in order below: 

where cl

 is species concentration (μmol/m3 for gasses, μg/m3 for aerosols), El is the local species 

emission rate (μmol/s for gasses, μg/s for aerosols), ∆#t is timestep length (s), u and v are the 

respective east-west (x) and north-south (y) horizontal wind components (m/s), Ayz and Axz are 

cell cross-sectional areas (m2) in the y-z and x-z planes, respectively, m is the ratio of the 

transformed distance on the various map projections to true distance (m=1 for curvi-linear 

latitude/longitude coordinates), and Λl is the wet scavenging coefficient (s-1). 

A master driving time step for the model is internally determined during the simulation for the 

largest and coarsest (master) grid. Time steps typically range from 5-15 minutes for grid cell 

sizes of 10-50 km, to a minute or less for small cell sizes of 1-2 km. As a result, nested grids 

require multiple driving time steps per master step depending on their grid sizes relative to the 

master grid spacing. Furthermore, multiple transport and chemistry time steps per driving step 

are used as necessary to ensure accurate solutions for these processes on all grids. 

( )

( )

( ) ( )

Mechanism specific reaction equations

t

c

c

t

c

y

c ρ/

m K

x y

c ρ/

m K

x

m

t

c

z

c ρ/

ρK

t z

c

z t

h

c

z

c

t

c

m

vA c

A y

m

t

c

m

uA c

A x

m

t

c

x y z

E

m

t

c

Chemistry

l

l l

Wet Scavenging

l

l

Y

l

X

XY diffusion

l

l

v

 diffusion

l

l

l

Z transport

l

xz l

Y advection xz

l

yz l

X advection yz

l

l

Emission

l

= −

∂

∂

= − Λ

∂

∂

























∂

∂

∂

∂

+ 











∂

∂

∂

∂

=

∂

∂













∂

∂

∂

∂

=

∂

∂

∂ ∂

∂

−

∂

∂

=

∂

∂













∂

∂

= −

∂

∂

















∂

∂

= −

∂

∂

∂ ∂ ∂

=

∂

∂

ρ ρ

Z

2

2

2

2

η
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-3 

The first process in each time step for a given grid is the injection of emissions from all sources. 

CAMx then performs horizontal advection and vertical advection, followed by vertical diffusion, 

horizontal diffusion, chemistry, and finally wet scavenging. 

Although advection is performed separately in the x (east-west), y (north-south), and z (vertical) 

directions, the numerical linkage between these components has been developed in a mass 

consistent fashion to preserve the density field at each time step. This maintains the flexibility to

allow many types of meteorological models, and modeling grid resolutions, projections, and 

layer structures, to characterize transport in CAMx. 

Trace gases and particles are removed from the atmosphere via deposition to the ground. Dry 

deposition refers to the direct sedimentation and/or diffusion of material to various terrestrial 

surfaces and uptake into biota. Wet deposition refers to the uptake of material into cloud water 

and precipitation, and its subsequent transfer to the surface. The efficiency with which wet and 

dry deposition processes can remove pollutants from the air depends upon the physical and 

chemical properties of the pollutants, local meteorological conditions, the type of surface on 

which they are being deposited, and on the frequency, duration, and intensity of precipitation 

events. Dry deposition is an important removal mechanism, but it is not explicitly treated as a 

separate process in the time-splitting approach. Instead, deposition velocities for each species 

are calculated based on species chemical properties and local meteorological/surface conditions, 

and used as the lower boundary condition for vertical diffusion. This appropriately couples the 

surface removal of pollutants through each column of cells via the vertical mixing process. 

2.2 CAMx GRID CONFIGURATION 

Grid Cell Arrangement

CAMx carries pollutant concentrations at the center of each grid cell volume, representing the 

average concentration over the entire cell. Meteorological fields are supplied to the model to 

quantify the state of the atmosphere in each grid cell for the purposes of calculating transport and 

chemistry. CAMx internally carries these variables in an arrangement known as an “Arakawa 

C” grid configuration (Figure 2-1). State variables such as temperature, pressure, water vapor, 

and cloud water are located at cell center along with pollutant concentration, and represent grid 

cell average conditions. Wind components and diffusion coefficients are carried at cell 

interfaces to describe the transfer of mass in and out of each cell face. Note in Figure 2-1, for 

example, that horizontal wind components u and v are staggered from each other. This facilitates 

the solving of the transport equations in “flux form”. 

Depending upon the source of meteorological data, it is recommended that the user directly 

provide the gridded horizontal wind fields in the staggered Arakawa C configuration. However, 

this is not always feasible, and so CAMx offers the option for the user to supply all 

meteorological variables, including horizontal wind components, at cell center; in this case 

CAMx internally interpolates the winds to cell interfaces. Note that this leads to a slight 

smoothing effect on the horizontal wind fields. 

Figure 2-1 also describes the horizontal cell indexing convention used in CAMx. Each cell is 

defined by the index pair (i,j), where i ranges from 1 to nx (the number of cells in the east-west 

direction), and j ranges from 1 to ny (the number of cells in the north-south direction). The 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-4 

Figure 2-1. A horizontal representation of the Arakawa C variable configuration used in CAMx. 

eastern and northern faces of the cell are indexed (i,j), while the western and southern faces are 

indexed (i-1,j) and (i,j-1), respectively. 

In the vertical, most variables are carried at each layer midpoint (defined as exactly half way 

between layer interfaces). Again the exceptions are those variables that describe the rate of mass 

transport across the layer interfaces, which include the vertical diffusion coefficient KV and the 

vertical transport rate η. These variables are carried in the center of each cell horizontally, but 

are located at the top of the layer (i.e., the interface) vertically. 

Grid Nesting

CAMx incorporates two-way grid nesting, which means that pollutant concentration information 

propagates into and out of all grid nests during model integration. Any number of grid nests can 

be specified in a single run, while grid spacings and vertical layer structures can vary from one 

grid nest to another. The nested grid capability of CAMx allows cost-effective application to 

large regions in which regional transport occurs, yet at the same time providing fine resolution to 

address small-scale impacts in selected areas. 

Each grid nest is defined over a subset of master (coarsest) grid cells. The range of master grid 

row and column indices that define the coverage of each nested grid must be specified in the run 

control file. An integer number of nested grid cells must span one master grid cell; this number 

is referred to as a “meshing factor”. “Buffer” cells are added around the perimeter of each nested 

grid to hold boundary conditions. Buffer cells are added automatically within CAMx and should 

not be specified by the user in the run control file. All nested grid output files contain data for 

the entire array of computational and buffer cells; however, buffer cell concentrations are 

considered invalid and should be ignored. Additionally, all nested grid input files must contain 

data for the entire array of computational and buffer cells. An example of a horizontal nesting 

arrangement is shown in Figure 2-2. Here, two telescoping fine grid nests are defined: one with 

 

(i, j)

T, p, q, Kv

(i, j)

(i, j)

(i, j-1)

u, Kx (i-1, j) u, Kx

v, Ky

v, Ky
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-5 

Figure 2-2. An example of horizontal grid nesting, showing two telescoping nested grids within 

a 10×10 cell master grid. The outer nest contains 10×12 cells (including buffer cells to hold 

internal boundary conditions), and the inner nest contains 6×10 cells (including buffer cells). 

a meshing factor of 2 spanning master grid cells (5,4) to (8,8), and one with a meshing factor of 4 

spanning master grid cells (6,6) to (6,7). 

Nesting in the vertical is allowed, but only by sub-dividing parent grid layers into a series of 

finer layers. To maximize flexibility in the vertical grid structure, each parent grid layer may be 

individually split into a unique set of fine layers, or not split at all. The vertical layer division is 

defined by the input height/pressure file for each grid. Figure 2-3 displays an example of how 

layers may be defined for a master grid and two fine grid nests. Vertical nesting is not 

recommended because it can lead to mass consistency errors (discussed shortly). The indexing 

convention in the vertical is also shown in Figure 2-3, where the top of layer k is referenced as 

interface k. Index k=0 is at the ground. 

Coarse Grid Boundary Cells

Coarse Grid Boundary Cells

Coarse Grid Boundary Cells

Coarse Grid Boundary Cells

Fine Buffer Cells

Fine Buffer Cells

Fine Buffer Cells

Fine Buffer Cells

Boundary of Fine Grid 1

Boundary of Fine Grid 2

1 2 3 4 5 6 7 8 9 10

10

9

8

7

6

5

4

3

2

1
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-6 

Figure 2-3. A schematic illustration of the CAMx vertical grid indexing convention and vertical 

nesting. The lowest 2 master (coarse) grid layers are split into 4 layers in nested Fine Grid 1, 

and the lowest 5 layers of Fine Grid 1 are split into 9 layers in nested Fine Grid 2. Note that the 

nested grids possess a matching layer interface for every parent grid layer interface.

Restrictions on specifying the size and resolution of all grid nests include the following: 

1) The ratio of master grid cell size to nested grid cell size must be an integer (e.g., a 

“meshing factor” of 3 means that 3 nested cells span the distance of 1 master cell, 

resulting in an area of 9 nested cells per master cell); 

2) For telescoping grids (a nested grid containing an even finer grid), the cell size of the 

finest grid must be a common denominator for all parent grids above it (e.g., a 36-12-4 

km or 36-12-2 km arrangement is allowed, but a 36-12-9 km is not); 

3) The restriction in (2) above does not apply to parallel nested grids of the same generation 

(e.g., 4 km and 5 km grids can be located in different areas of a master grid provided that 

the master cell size is some multiple of 20 km); 

4) Nested grids cannot overlap, although they may share a common boundary or edge; 

5) Nested grids cannot extend into a boundary, or non-modeled, area of the master grid; 

6) CAMx is currently configured to allow four “generations” of nests (e.g., four levels of 

telescoping grids); this can be extended in the code easily if more than four levels of nests 

are required; 

7) The total vertical depth of each nested grid must exactly match the depth of the master 

grid; 

8) Nested grid vertical layers may exactly match the parent grid vertical structure, or the 

parent grid layers may be individually split into several finer grid layers (defined via the 

nested grid height/pressure files); 

9) A parent grid layer may be unevenly split into any number of finer layers, as long as there 

is a matching nested grid layer interface at each parent grid layer interface; 

Coarse Grid Fine Grid 1 Fine Grid 2

h(1)

h(2)

h(3)

h(4)

h(nc)

h(2)

h(4)

h(6)

h(7)

h(8)

h(9)

h(10)

h(nf2)
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-7 

10) Nested grids that share a common horizontal boundary must possess equivalent layer 

structures. 

The following Fortran binary I/O files must be provided for the master grid, and optionally 

provided for each nested grid: 

• gridded surface emissions; 

• fractional landuse distribution; 

• height/pressure (defines the layer interface structure); 

• horizontal wind components; 

• temperatures; 

• vertical diffusivities; 

• water vapor; 

• clouds and precipitation 

Any of these input files may be supplied for each nested grid, or none at all. If any of these files 

are not supplied for a particular nested grid, the Flexi-Nest algorithm within CAMx interpolates 

the missing fields from the parent grid. Clearly it is desirable to provide nested grid data 

whenever possible. However, the ability to interpolate data is useful for testing sensitivity to 

grid configurations or for situations when it is not possible to run a meteorological model for all 

grid nests. 

The Flexi-Nest option also allows users to redefine the nested grid configuration at any point in a 

simulation. Nested grids can be introduced or removed only at the time of a model restart since a 

new CAMx user control file must be used to redefine the grid configuration. For example, the 

user may wish to “spin-up” the model using a regional-scale master grid and a single nest over 

an area of interest for two days. Starting at 6 AM on the third day, the user might introduce one 

or more nests within the original nested grid for more detailed analysis. This would require that 

the model be restarted at 6 AM of the third day with a new control file that defines the position 

of the two new nests and (optionally) provides any additional input fields for these grids. CAMx 

will internally reconcile the differences in grid structure between the nested grid restart files and 

the new user control file, and then interpolate any data fields not supplied to CAMx for the new 

nests from the parent grid(s). 

2.3 TREATMENT OF EMISSIONS 

Pollutant emissions are treated in two basic ways within CAMx: low-level (gridded) emissions 

that are released into the lowest (surface) layer of the model; and elevated stack-specific (point) 

emissions with buoyant plume rise that can be emitted into any model layer. Emissions are 

injected into each cell of every grid at every time step during the simulation. Gridded and point 

emissions are provided to CAMx in separate input files. External emission processing systems 

are used to develop gridded and point, time- and space-resolved, chemically-speciated input files 

for CAMx. These external programs are not discussed in this User’s Guide; see Section 11 for 

more information on emission systems that are used to support CAMx applications. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-8 

Gridded Emissions 

Two-dimensional gridded low-level emissions are defined by space- and time-varying rates for 

each individual gas and PM species to be modeled. Gridded emissions represent sources that 

emit near the surface and that are not sufficiently buoyant to reach into the upper model layers. 

Such emission categories include: 

• Low-level stack (point) emissions that are too small to result in plume rise above the 

model surface layer; 

• Other non-point industrial sources (fugitive leaks, tanks, etc.); 

• Mobile sources (cars, trucks, non-road vehicles, railroad, marine, aircraft, etc.); 

• Residential sources (heating, cooking, consumer products); 

• Commercial sources (bakeries, refueling stations, dry cleaners); 

• Biogenic sources; 

• Natural sources (small fires, wind-blown dust). 

The spatial distribution of each individual source within these categories is defined by the 

modeling grid. Information such as population distribution, housing density, roadway networks, 

vegetative cover, etc. is typically used as a surrogate to distribute regional emission estimates for 

each source to the grid system. Processing tools are used to combine emissions from all sources 

into a single input file for each grid (see Sections 5 and 11). 

Elevated Point Emissions 

Similarly to gridded emissions, elevated point emissions are defined by space- and time-varying 

rates for each individual gas and PM species to be modeled. The only difference is that these 

sources emit from individual stacks with buoyant rise that may take them into upper model 

layers. These types of sources are almost always associated with large industrial processes, such 

as electric generators, smelters, refineries, large factories, etc. The spatial distribution of these

points is specifically given by the coordinates of the stacks themselves (grid locations are 

determined within CAMx). Plume rise is determined within CAMx as a function of stack 

parameters (height, diameter, exit velocity and temperature) and ambient meteorological 

conditions, so the point source file provides speciated time-resolved emission rates and stack 

parameters for each individual source. A single point source file provides the definition of all 

stacks and their emissions over the entire modeling domain (see Sections 5 and 11). 

Plume rise is calculated using the multi-layer stability-dependent algorithm of Turner et al. 

(1986). This approach calculates the momentum and buoyant plume rise energy from the stack, 

takes the larger of these two values, and determines the dissipation of that energy via mixing 

with ambient air according to the meteorological conditions through the host model layer. If 

sufficient energy remains to reach into the next model layer, the calculation for buoyant rise 

repeats for the meteorological conditions of that layer, and so on, until a layer is found where the 

plume cannot rise any farther. All emissions from this source are then injected into the grid cell 

directly above the stack at this layer height. This algorithm was adopted for CAMx because it 

provides a more realistic handling of stable layers aloft that can trap plume rise, whereas this 

effect would not be realized based on meteorological conditions at stack top alone. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-9 

Under neutral/unstable conditions, momentum rise at the stack top is calculated from 

while buoyancy rise is the lesser of 

and 

In these expressions ds is stack diameter (m), vs is stack exit velocity (m/s), hs is stack height (m), 

w is ambient wind speed (m/s), and zb is the distance between the stack top and the base of the 

current model layer. A minimum wind speed of 1 m/s is specified to avoid unrealistically large 

plume rise. Buoyancy flux f is initially calculated from stack parameters, but is set to residual 

flux entering the bottom of any higher layer. The initial buoyancy flux at stack top is given by 

where g is gravitational acceleration (9.8 m2/s), Ts is stack exit temperature (K), and T is ambient 

temperature (K). The residual flux calculation into the next higher layer depends on which 

neutral/unstable buoyancy rise equation was originally used in the current layer: 

or 

where zt

 is the distance between stack top and the top of the current model layer. 

Under stable conditions, momentum rise at the stack top is calculated from the lesser of Hmu and 

while buoyancy rise is the lesser of 

and 

 

w

d v

H

s s

mu

3

=

( ) bu b H = f w + z

5/3

30 /

( ) [ ( )] bu s b H = f w h + f w + z

5/2 35/3 3

24 / 200 /















 −

=

s

s

s s

T

T T

f g v d

4

2

0

3/5

30











 −

=

bu t H z

f w

( )

3/2

3 3

5.5 10 1

−

−

















−

= × − +

bu t

s

bu t H z

h

f w H z

3/1 6/1 2 2

2/1

.0 646

−













∂

∂

















=

T w z

v d

H T

s

s s

ms

θ

3/1

3

1

8.1

















 +











∂

∂

=

−

bs b

z

w z

f T

H

θ
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-10 

In these expressions, ∂θ/dz is the potential temperature gradient (a measure of atmospheric 

stability). Here also, buoyancy flux is initially calculated from stack parameters, but is set to 

residual flux if the plume extends into the next higher layer. The residual flux calculation 

depends on which stable buoyancy rise equation was originally used: 

or 

When final plume rise is reached using stable buoyancy rise, it is adjusted downward to twothirds of the rise through the stable depth. After final plume rise is determined, the rise is further

adjusted downward by stack tip downwash according to a critical Froude number and ambient 

wind speed. The stack Froude number is given by 

For F<3, no downwash adjustment is made to final plume rise. Above that value, the following 

downwash factors (D) are applied depending upon the ambient wind speed at stack top: 

CAMx injects point source emissions into all model layers spanned by the plume depth at final 

(adjusted) rise. Plume depth is determined as a function of stack diameter, plume temperature, 

plume velocity, time of plume rise, and ambient wind and temperature conditions. A uniform 

mass distribution through plume depth is assumed. If this depth is wholly contained within a 

single layer, that layer receives all emission mass. If this depth spans several layers, then 

fractions of the emissions are injected into these layers according to the fraction of plume depth 

spanning those layers. We apply the “rule-of-thumb” that plume depth equals plume rise (Turner 

and Schulze, 2007) as a maximum limit for plume depth. 

The following equations are used to define the plume depth after reaching final rise. These are 

based on the approach used in the SCIPUFF model (EPRI, 2000) and were developed for use in 

the CAMx plume-in-grid (PiG) submodel. The plume depth Dp at final rise is given by 

8/3

3/8

1

3/1

0

1.4

















 +











∂

∂

=

−

bs b

z

f z

f T

H

θ

( )

3 3

.0 56 t bz z

T

w

z

f f −

∂

∂

= −

θ

( ) 3/8 3/8

3/1

0

.0 24 t bz z

T

f

z

f f −

∂

∂

= −

θ

g d ( ) T T

T v

F

s s

s

−

=

2

( )

s

s s

s

s

s

D w v

v w v

v

v w

D

D v w no plume rise

3

2

,1

3

2

3 ,

,0

= <

≤ <

−

=

= <
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-11 

( )

2/1

2 D 3 2 D 2K t p = s +

where Ds is stack diameter, K is plume diffusivity during rise, and t is the time of rise. The time 

of rise is determined by dividing final plume rise by the mean plume rise speed Vp; the latter is 

set to half the stack exit velocity. A lower limit of 1 m/s is applied to the exit velocity, so the 

minimum value of Vp is 0.5 m/s. The plume diffusivity is determined by scaling initial plume 

width (according to stack diameter) by the turbulent flux moment qp

2

: 

( )

2

.0 15 2 s p K = D q

where 

































+

= +

2 2

2

2 2 3

4.0

p

p p p

v V

v

q f V

The turbulent flux moment is a function of the mean plume rise speed Vp, the ambient wind 

speed v taken at the level of final rise, and a plume entrainment coefficient fp: 

( ) 













 −

= +

2

1 4 2

p

p

p s

T V

T T

f D g

where g is the gravitational constant (9.8 m2/s), T is ambient temperature at the level of final rise,

and Tp is the mean plume temperature, taken as the mean of the stack exit temperature and the 

ambient temperature at final rise. 

2.4 TRANSPORT FUNDAMENTALS

The CAMx transport algorithm is both mass conservative and mass consistent. Mass 

conservation refers to the ability to accurately account for all sources and sinks of mass in the 

model, with no spurious loss or gain of mass during model integration. To be mass conservative, 

CAMx internally carries concentrations of each species as a density (μmol/m3

 for gases, μg/m3

for aerosols), and solves the advection/diffusion equations in flux form. This also serves to 

simplify mass budget accounting, which is used by the various source apportionment and process 

analysis options. Gas concentrations are internally converted to volumetric mixing ratio (parts 

per million, or ppm) for the chemistry step, and when they are written to the average output files. 

Mass consistency refers to the model’s ability to transport pollutant mass exactly equivalent to 

the input atmospheric momentum field. For example, a model that is perfectly mass consistent 

will preserve a unity pollutant mixing ratio field given constant unity boundary and initial 

conditions and zero sources and sinks. Sources of poor mass consistency in air quality models 

are typically related to the following (in order of importance): 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-12 

1) supplying meteorology that is inherently inconsistent, e.g., from an interpolative 

objective analysis or diagnostic wind model in which wind, temperature, moisture, and 

pressure fields are all independently developed; 

2) spatially interpolating or averaging meteorological model fields, especially threedimensional wind vector fields, to an air quality model grid of different resolution and/or 

different mapping projection; 

3) relying on a nested grid model to internally interpolate coarse grid meteorological 

parameters to finer grids, especially in cases of varying vertical resolution among the 

grids; 

4) employing numerical techniques within the air quality model that are mass inconsistent, 

e.g., holding input wind and density fields constant between meteorological update times, 

assuming non-divergent three-dimensional winds, etc.; and 

5) employing different numerical and/or physical methods in the air quality and 

meteorological models. 

It is expected that CAMx users will prepare high quality, mass consistent meteorological fields 

using advanced prognostic models so as to minimize inconsistencies in the inputs themselves. 

CAMx operates on the map projections and grid systems employed in several widely used 

meteorological models (e.g., MM5, RAMS, and WRF) so that translation of meteorological data 

to CAMx requires as little manipulation as possible. The practice of developing meteorological 

input fields using objective analysis or “diagnostic” approaches is highly discouraged. 

However, CAMx provides a very important flexibility that allows the air quality grid to differ 

from the meteorological grid in terms of projection and/or resolution when necessary. This, of 

course, leads to a potentially large source of mass consistency error as noted in point (2) above, 

and if nested grids are specified where higher resolution meteorological fields are unavailable, 

additional error may occur as in point (3). Therefore, adjustments must be made to correct for 

the external inconsistencies coming into the model. Such adjustments could be applied to the 

meteorological fields during the interpolation/averaging procedure, but this approach would not 

account for internal sources of inconsistency within the air quality model itself (points 3-5 

above). To account for all sources of error while maintaining flexibility on input requirements 

and grid configuration, CAMx internally minimizes the sources of mass inconsistency as the 

model integrates forward in time. As discussed below, the model does this in several ways.

First, the transport equations are written and solved in mass “flux” form. Gridded 

meteorological inputs are carried in an “Arakawa C” arrangement (Figure 2-1), which optimizes 

the calculation of mass flux divergences while ensuring mass conservation. These points are 

important for the calculations described further below. Solutions based on the alternative 

“advective” form cannot guarantee mass conservation or consistency. 

Second, CAMx can accept input meteorological fields for each individual nested grid, if 

available from a meteorological model. This reduces errors stemming from internal 

interpolations from parent to nested grids. Input gridded fields of layer heights, temperature, 

pressure, horizontal winds, water vapor, and vertical diffusivity are then interpolated in time to 

the unique time steps for each modeling grid. Since the vertical grid structure is defined via 

external inputs, layer interface heights may be specified as any arbitrary function of space and/or 

time. This allows the CAMx vertical grid system to exactly match all or a subset of any 

meteorological model layer structures, whether they are defined in terms of physical height 

above ground, normalized height coordinates (i.e., “sigma-z”), or normalized pressure 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-13 

coordinates (i.e., “sigma-p”). Therefore, total vertical transport is the combination of resolved 

vertical advection and mass exchange across undulating layer interfaces. 

Third, and most importantly, the grid- and timestep-specific horizontal momentum fields are 

used to determine an instantaneous vertical velocity field that balances the local atmospheric 

continuity equation for the specific grid configuration employed. To calculate a vertical velocity 

profile for a given grid column, the atmospheric continuity equation is locally integrated through 

the depth of the column. Normally this integration would be performed by assuming a nondivergent wind field (∇⋅V = 0) or a non-divergent momentum field (∇⋅ ρV = 0). Both of these 

approaches presume that the three dimensional divergence components exactly balance to result 

in a zero net change in local atmospheric density. The non-divergent wind assumption is not 

valid for model applications spanning a significant fraction of the atmospheric scale height (8 or 

9 km). In either case, the presumption of zero density tendency is usually invalid within air 

quality models since the externally supplied wind and density fields are not balanced in the first 

place (see points 1-3 above). In CAMx, such a density-momentum balance obviously does not 

exist since a linear rate of temperature, pressure and horizontal wind change is imposed at each 

time step between meteorological update times. 

In CAMx, the vertical velocity profile at each time step is determined from vertical integration of 

the divergent continuity equation: 

which is 

where the local time-rate change of atmospheric density ∂ρ/∂t in each grid cell is known from the 

input meteorological fields. In this approach, a vertical velocity profile w(z) is constructed that 

provides a balance between the imposed density tendency and the resolved horizontal 

momentum divergence in each grid cell at each time step. The total vertical transport rate η at a 

particular layer interface is defined as the combination of resolved vertical velocity and the local 

time-rate of change of the layer interface height: 

The total vertical transport rate is used for subsequent vertical transport calculations for all 

pollutants. A zero vertical velocity is specified at the ground, while a column- and pollutantspecific zero-gradient mixing ratio condition is applied at the top of the model. 

The fourth way CAMx ensures mass consistency is to calculate the horizontal flux divergence of 

atmospheric density in a manner that is numerically consistent with the procedure used to 

horizontally transport pollutants. Atmospheric density is advected in and out of each cell using 

the same equation as for pollutants: 

ρV

t

ρ

= − ∇ ⋅

∂

∂

( ) ρV dz

t

ρ

ρw z

z

∫ H H 











+ ∇ ⋅

∂

∂

= −

0













∂

∂

+ 















∂

∂

∇ ⋅ =

m

vA

A y

m

m

uA

A x

m

ρV xz

xz

yz

yz

H H

ρ ρ

2 2

w

t

h

−

∂

∂

η =
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-14 

and this equation is solved using either the Bott (1989) or PPM (Colella and Woodward, 1984) 

advection solvers, as selected by the user (see Section 2.5 below). The resulting horizontal 

advective fluxes include resolved momentum convergence/divergence rates as well as any 

artificial divergences caused by the horizontal and vertical grid specifications (e.g., spatially 

varying vertical grid structure, or systematic distortions associated with the map projections). In 

simple tests in which a uniform pollutant field of unity mixing ratio is transported throughout a 

single regional grid over several days using actual episodic meteorological inputs, this approach 

has been shown to provide nearly exact (to 10-3-10-4%) consistency between the density and 

pollutant fields. 

2.5 TRANSPORT ALGORITHMS

Horizontal advection is performed using the area preserving flux-form advection solver of Bott 

(1989) or the Piecewise Parabolic Method (PPM) of Colella and Woodward (1984) as 

implemented by Odman and Ingram (1993). These two finite difference schemes were 

incorporated into CAMx because they provide higher order accuracy with minimal numerical 

diffusion, yet are equivalent in execution speed compared to other simpler advection algorithms 

when operating on equivalent time steps. In CAMx, the Bott scheme is allowed to take larger 

time steps than PPM because Bott remains stable for Courant-Friedrichs-Levy (CFL) numbers up 

to 1 (i.e., the ratio of wind speed to grid spacing per timestep). Time steps are determined for 

Bott using a CFL number of 0.9, while time steps for PPM are restrained by a CFL number of 

0.5. Therefore, the Bott option results in a faster simulation than the PPM option, perhaps at the 

price of some accuracy. We recommend testing both for your specific application. 

The Bott and PPM algorithms have been shown to produce significant differences in 

concentration predictions compared to previously used flux-corrective schemes such as the 

Smolarkiewicz (1983) algorithm. This is a result of the considerably lower amount of numerical 

diffusion associated with Bott and PPM. As discussed by Yamartino (2000) the latest advection 

solvers reduce numerical diffusion to the point where modelers need to be concerned about 

including appropriate levels of explicit horizontal diffusion. Currently, there is very little 

information on the appropriate level of horizontal diffusion for Eulerian grid models. We see 

this issue becoming increasingly important as more accurate advection solvers are utilized in grid 

models. This issue is not limited to CAMx. 

Explicit horizontal diffusion coefficients are determined within CAMx using a deformation 

approach based on the methods of Smagorinsky (1963): 

Separate diffusivity components are generated for fluxes in the x- and y-directions since KX and 

KY are calculated for separate cell faces in the Arakawa C grid arrangement. The value of K0 is 

specified according to the approach in MM5 (Anthes and Warner, 1978): 

/1 2

2 2

/

4 2 































∂

∂

−

∂

∂

+ 















∂

∂

+

∂

∆ ∆ ∂

= +

y

v

x

u

x

v

y

x y u

KX Y Ko

t

x y

K

∆

∆ ∆

= ×

−3

0

3 10
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-15 

A maximum value of KX/Y is set to maintain numerical stability for the given grid-specific 

timestep. A minimum value is set to 1 m2/s. Horizontal diffusion is applied using an explicit 

simultaneous two-dimensional flux-divergence calculation. 

Vertical transport and K-theory diffusion are both solved using implicit backward-Euler 

integration schemes. Since implicit schemes are absolutely stable, only one solution step is 

necessary per driving time step. Explicit approaches require potentially many sub-steps (on the 

order of 10-100) to maintain a stable solution, which introduces the potential for excessive 

numerical diffusion. Whereas the vertical advection step is implicitly solved in a single step, Ktheory vertical diffusion is implicitly solved over potentially several sub-steps, depending upon 

the magnitude of the vertical diffusivity relative to the vertical layer depths (CAMx uses the 

smaller of the current grid time step or a maximum 5 minute sub-step). This ensures non-local 

diffusive coupling among all layers that exhibit high diffusivity, especially for long driving time 

steps on coarser grids that would otherwise only experience mixing between adjacent layers 

during a single implicit step. Gridded vertical diffusion coefficients must be supplied to the 

model for the master grid via input file; the user may optionally supply vertical diffusion 

coefficients for any or all nested grids. 

ACM2 Vertical Diffusion 

The representation of sub-grid turbulent diffusion (or “mixing”) in photochemical grid models 

has not significantly advanced for several decades. Simple eddy viscosity (or “K-theory”) firstorder closure approaches have been used in most models. As a “local” closure technique, Ktheory only treats mass transfer cell-by-cell (horizontal) or layer-by-layer (vertical), analogously 

to the diffusion of heat through a solid medium. Whereas K-theory adequately characterizes 

horizontal diffusion and weak vertical mixing during neutral and stable conditions, the 

shortcomings of K-theory are related to its inadequate treatment of deep vertical convective 

boundary layer mixing. In convective situations, buoyant plumes deriving energy in the surface 

layer are quickly and efficiently mixed deep into the atmosphere within eddies that are usually 

much larger than the individual model layers. K-theory therefore mixes the convective boundary 

layer much less efficiently than commonly observed. This has been shown to have very 

important ramifications for chemistry, especially during transition periods between stable/neutral 

and convective conditions. Modelers have commonly adjusted for the lack of adequate vertical 

mixing by arbitrarily increasing the magnitude of the input vertical diffusivity fields. 

A promising non-local mixing scheme was developed in the early 1990’s called transilient theory 

(Raymond and Stull, 1990). This approach calculates the elements of a transilient matrix, where 

each element specifies the transfer rate from a given layer to any other layer, either adjacent or 

distant. In fact, K-theory is just a special case of transilient theory, in which transfer can only 

occur between adjacent layers above and below, leading to the trivially-solved “tri-diagonal” 

matrix. However, a fully populated transilient matrix is difficult to determine and until recently 

the approach has not been widely used in chemistry models. 

The U.S. Environmental Protection Agency (EPA) has recently developed a new asymmetric 

convective model (ACM2) for the Models-3 Community Scale Air Quality (CMAQ) model 

(Pleim, 2007). This is considered a truncated, or simplified form of the general transilient 

mixing scheme in that it includes: (1) mixing among adjacent layers using K-theory (i.e, 

symmetrically along the diagonal of the transilient matrix); (2) rapid upward non-local mixing 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-16 

from the surface layer to all layers through the boundary layer (the convective aspect); and (3) 

slower compensating downward mixing layer-by-layer from the top of the boundary layer to the 

surface (the asymmetric aspect). All other matrix elements outside of these three transport paths 

are ignored. Figure 2-4 shows this approach schematically. During non-convective conditions, 

ACM2 reverts back to the local K-theory component. Thus, ACM2 includes the basic features 

of both local and the most important component of non-local exchange. Tests comparing ACM2 

against standard K-theory result in more realistic profiles of ozone precursors, but usually minor 

impacts on surface ozone. 

Figure 2-4. Schematic representation of the turbulent exchange among layers within a vertical 

grid column during convective adjustment in the ACM2 (taken from Pleim [2007]).

The ACM2 parameterization has been implemented in CAMx as an alternative to the K-theory 

approach. All variables needed to calculate the transfer rates are available from the existing 

input files, or are already calculated within CAMx for other purposes. The CAMx ACM2 option 

does not require that ACM2 be run within the meteorological model used to derive inputs for 

CAMx. However, EPA states that using ACM2 in both meteorological and chemistry models 

does lead to consistent boundary layer characterization. Meteorological interface programs (e.g., 

MM5CAMx, WRFCAMx, and RAMSCAMx) have been updated to include an option to 

generate vertical diffusivities in the same manner as the approach used within the CMAQ ACM2 

algorithm, which performs its diffusivity calculations internally. The CMAQ ACM2 diffusivity 

calculation is a hybrid of two methodologies: (1) boundary layer scaling based on Hostlag and 

Boville (1993); and (2) local scaling according to Richardson number and vertical shear similar 

to Liu and Carroll (1996). The former is used within the stable boundary layer or if it is larger 

than the latter. The CAMx implementation of ACM2 supports OMP and MPI parallel 

processing, and all probing tools except the Integrated Process Rates algorithm of Process 

Analysis. 

Note that ACM2 increases CAMx runtime considerably. Whereas the original CAMx K-theory 

solver is implicit and does not need to use small time steps, ACM2 and its K-theory counterpart 

both use explicit solvers, which must divide the model time step into many very small sub-steps 

to generate a stable solution. The slow-down can be exacerbated by using the much larger 

ACM2 vertical diffusivity values instead of the original diffusivity options available in the 

CAMx meteorological preprocessors. The larger ACM2 diffusivity values further increase the 

number of integration sub-steps. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-17 

2.6 WET DEPOSITION 

Wet deposition is the predominant removal process for particles. Particles act as cloud 

condensation nuclei and subsequently the cloud droplets grow and collect into sufficiently large 

sizes to fall as precipitation. Additionally, particles that are entrained into the cloud, and that 

exist below precipitating clouds, can be directly scavenged by precipitation via accretion and 

impaction processes. The rates of nucleation and impaction depend upon cloud type (e.g., 

prolonged stratiform vs. vigorous convective development), precipitation rate, and particle size 

distribution. 

Wet deposition can also be an important removal process for relatively soluble gaseous 

pollutants and this occurs through the following series of steps: 

• Mixing of trace gas and condensed water in common air space; 

• Absorption of gas molecules by water droplets; 

• Possible aqueous-phase reactions of the pollutant within water droplets; 

• Precipitation of droplets to the earth’s surface; 

• Diffusion of ambient gases into falling precipitation. 

It is important to note that each of the above steps may be reversible, so that the overall wet 

deposition rate for gases depends on the net results of the forward and backward processes at 

each step. 

The rate at which the first and fourth steps proceed depends on the frequency and nature of cloud 

formation and precipitation events. For example, mid-latitude cyclonic storm events (e.g., winter 

storms) will result in different deposition rates than convective precipitation events such as 

summertime thunderstorms. The rates at which the second, third, and fifth steps proceed depend 

on the extent to which the pollutant in question dissolves in water and its overall reaction rate 

once in solution. Cloud water droplets can absorb gases from the air up the limit of their 

solubility in water. For many pollutants this solubility far exceeds the amount of pollutant 

present in the air so that the distribution of the pollutant between the air and water droplets is 

determined by the Henry’s Law constant, which is defined as the ratio of pollutant 

concentrations in the liquid-phase to the gas-phase at equilibrium. High values for the Henry’s 

law constant (greater than about 10,000 M/atm) indicate a strong tendency to dissolve in water 

droplets, whereas low values (less than about 100 M/atm) indicate a tendency to remain in the air 

(Seinfeld and Pandis, 1998). Equilibrium between concentrations of pollutants in the air and in 

water droplets is usually established on time scales of minutes, so equilibrium conditions can 

generally be assumed to exist in the atmosphere. 

If a pollutant partitions significantly into water droplets it can be removed by precipitation. 

Averaged globally, highly soluble gases that are removed efficiently by wet deposition (e.g., 

nitric acid) are estimated to have lifetimes due to rainout of about 5 days (Warneck, 1989). 

Clearly, on regional or local scales, lifetimes against wet deposition will depend upon the 

frequency and intensity of rainout events. Gases that are removed less efficiently by wet 

deposition will have longer lifetimes. For example, the corresponding global average lifetime of 

formaldehyde against rainout is estimated to be 14 days (Warneck, 1989). 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-18 

The basic model implemented in CAMx is a scavenging approach in which the local rate of 

concentration change ∂c/∂t within or below a precipitating cloud depends on a scavenging 

coefficient Λ: 

The scavenging coefficient is determined differently for gases and particles, based upon 

relationships described by Seinfeld and Pandis (1998). Two components are calculated for 

gases: (1) direct diffusive uptake of ambient gases into falling precipitation; and (2) accretion of 

cloud droplets that contain dissolved gases. Two components are also determined for particles: 

(1) impaction of ambient particles into falling precipitation with an efficiency that is dependent 

upon particle size; and (2) accretion of cloud droplets that contain particle mass. Each of these 

processes are described below. 

The external environmental inputs to the CAMx wet deposition algorithm include the threedimensional gridded distribution of cloud and precipitation water contents, with the precipitation 

contents broken down into liquid, snow, and ice (“graupel”). Scavenging rate equations were 

derived in terms of equivalent liquid precipitation rates, so the input precipitation water contents 

are internally translated into this metric. 

The following general assumptions are made in the CAMx scavenging model: 

1) Rain drops, snow flakes, and graupel particles are each separately represented by a single 

mean size, mass, and fall speed, which are determined from equivalent liquid 

precipitation rate; 

2) There is no mixed-phased precipitation within a given grid cell – the dividing line 

between liquid rainfall and the two frozen forms is 273 K; 

3) Snow is only associated with stratiform precipitation, and graupel only with convective 

precipitation; 

4) Liquid cloud water is allowed to exist below 273 K – a linear ramp function is applied to 

apportion total cloud water into liquid form between 243-273 K (all cloud water is 

assumed to be in ice crystal form below 243 K); 

5) All gasses can directly diffuse into or from liquid rainfall (only strong acids can diffuse 

into frozen precipitation) at a rate according to the precipitation’s state of saturation, 

pollutant diffusivity, and aerodynamic considerations; 

6) All gases can dissolve into liquid cloud water, which can be scavenged by all 

precipitation forms – dissolved gasses are in equilibrium with ambient concentrations 

according to Henry’s Law; 

7) PM is irreversibly scavenged directly by all precipitation forms via impaction, and by 

uptake into cloud water (liquid and ice) as condensation nuclei that is itself scavenged by 

all precipitation forms; 

8) All in-cloud PM mass exists in cloud water (i.e., no “dry” aerosols exist in the interstitial 

air between cloud droplets) – all PM species and sizes are hygroscopic and internally 

mixed. 

Λ c

t

c

= −

∂

∂
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-19 

Precipitation Parameters 

The mean raindrop diameter dd (m) and fall speed vd (m/s) are taken from the empirical estimates 

of Scott (1978). The drop diameter is related to rainfall rate P (mm/hr), and the fall speed 

relationship has been modified to better agree with data provided by Seinfeld and Pandis (1998): 

The precipitation water content Lp (g/m3) is related to rainfall rate by 

where ρw is liquid water density (g/m3

). This equation can be simplified to a dependency on just 

rainfall rate when the above relations for drop velocity and size are substituted. The resulting 

expression for rainfall rate as a function of precipitation water content is 

Locatelli and Hobbs (1974) developed power law equations relating average diameters, fall 

speeds, and masses for 15 precipitating ice “habits”. We consolidated these relationships into 

two forms, termed “snow” and “graupel”, by fitting new power law curves to the Locatelli and 

Hobbs data. For snow, 

And for graupel, 

Note that in these equations for ice, dd is in mm and crystal mass md is in mg. By assuming that 

the number density and mass of snow/graupel crystals are equal to those for rain drops given 

equal precipitation water contents, we can relate the magnitudes of ice size and fall speed to 

equivalent liquid precipitation rate. 

Gas Scavenging 

Wet scavenging of gases by precipitation occurs within and below precipitating clouds. Below 

the cloud, the total gas concentration in a given grid cell is available for scavenging. Within a 

cloudy cell the total gas concentration must first be partitioned into an aqueous fraction caq

within cloud water and the remaining gaseous fraction cg within the interstitial air. Both aqueous 

and interstitial gasses within a cloudy cell are available for scavenging, but are removed at 

different rates as described below. 

4 .0 21 dd 0.9 10 P

−

= ×

d d

v = 3100 d

6.2

.0 61

.0 059

1.1

d d

d d

m d

v d

=

=

8.1

.0 20

.0 035

.0 83

d d

d d

m d

v d

=

=

d

w

p

v

P

L 6

6.3 ×10

=

ρ

.1 27 7

1 10















 ×

=

w

Lp

P

ρ
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-20 

Scavenging of Gases in Cloud Water

The aqueous concentration in liquid cloud water (or cloud ice in the case of strong acids) is 

determined by Henry’s Law thereby assuming the solution exists in steady-state equilibrium. 

The Henry’s Law constant for a given gas species k0 (M/atm) specifies the ratio of pollutant mass 

in aqueous solution (M or mol/lh2o) to its equilibrium partial pressure (atm) at standard pressure 

and temperature. This constant is adjusted for temperature T and converted to a dimensionless 

molar ratio: 

where R is the ideal gas constant (8.206×10-2 l atm/mol K), and A is the temperature dependence 

factor. Dissociation of ammonia, nitric acid, and sulfur dioxide as a function of cloud and 

rainwater pH is also considered in the solubility calculation. The effective Henry’s Law constant 

H thus expresses the equilibrium ratio of the aqueous concentration caq (mass per volume of 

water) to the gas concentration cg (mass per volume of air), 

which are related to total concentration c by 

where Lc is cloud liquid water content (g/m3

). 

The fraction of gases present in cloud water can be removed by precipitation via accretion of 

cloud water onto the falling hydrometeor (liquid or ice). As the hydrometeor falls, it sweeps a 

cylindrical volume per unit time equal to 

where dc is the size of cloud droplets. This implies that the ambient motion of cloud droplets is 

insignificant compared to the hydrometeor fall speed. Due to aerodynamic perturbations of air 

flow around the falling hydrometeor, a collection efficiency is applied, i.e., the fraction of cloud 

droplets within the collection volume that are scavenged by precipitation. For large 

hydrometeors with sizes greater than 0.5 mm and droplets 10-20 μm, we take this efficiency to 

be 0.9 (Seinfeld and Pandis, 1998). Also, we further assert that (dd + dc)

2

 ~ dd

2

. Assuming then 

that a mono-disperse distribution of hydrometeors are falling through a mono-disperse 

distribution of cloud water droplets, the scavenging coefficient for precipitation collecting cloud 

water is 

where E is the collection efficiency (0.9) and Nd is the hydrometeor number density. The 

number density can be expressed in terms of equivalent rainfall rate, fall velocity, and drop size: 

( ) d c d V d d v

2

4

= +

π

c d d E Nd Λ d v

2

4

π

=

























= −

T

H k R T A

1

298

1

exp 0

g

aq

c

c

H =

w

c

g aq

L

c c c

ρ

= +
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-21 

Substituting the relationship between Nd and rainfall parameters, then 

The cloud water scavenging coefficient is scaled by the ratio of aqueous pollutant concentration 

to total grid cell concentration to achieve the aqueous-phase scavenging coefficient: 

Scavenging of Ambient Gases

Given the relatively short residence times of falling precipitation through a given grid cell, 

aqueous equilibrium between ambient gas and precipitation cannot be assumed and so the 

transfer of ambient gas into liquid rainfall (or ice in the case of strong acids) is explicitly 

calculated. The maximum rate of transfer W of a gas to a falling hydrometeor containing no preexisting pollutant mass is 

The mass transfer coefficient Kc can be determined for a falling hydrometeor with speed vd and 

diameter dd by 

where Dg and ν are the molecular diffusivity of the gas species and air, respectively. 

Following the methodology of Seinfeld and Pandis (1998), the rate of caq increase can be 

represented by a mass balance with the rate of transport to the hydrometeor: 

The expression for W is substituted into the equation above, rearranged, and expressed in terms 

of rainfall velocity. We then assume that through a given model layer the ambient gas 

concentration and hydrometeor pH and size is constant. Multiplying by the number density of 

falling hydrometeors Nd described above yields the gas-phase concentration scavenged by all 

drops falling through the layer: 

c g W = K H c













































= +

3/1

/1 2

2 6.0

g

d d

d

g

c D

v d

d

D

K

ν

ν

d W

dt

dc

d d

aq

d

3 2

6

1

π = π

d d

c

g

d v

P K

Λ

6

.1 67 10−= ×

d

c

d

E P

Λ

7

2.4 10 −= ×

w

aq c

a c

c

c L

Λ Λ

ρ

=

6/

8.2 10

3

7

d d

d

d v

P

N

π

−

×

=
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-22 

Within cloudy layers, the gas-phase and aqueous-phase scavenging coefficients are added to 

provide the total in-cloud scavenging rate for gases, Λ = Λg+Λa. For below-cloud scavenging, 

Λ = Λg.

Solubility Limits on Gas Scavenging

There is a chance for rainfall to become super-saturated for sparingly soluble gasses as it falls 

through a grid column. The net scavenging coefficient for gases described above provides for 

the maximum potential uptake rate into clean rain water, so careful consideration must be given 

to appropriately determine the sign and magnitude of ambient grid cell concentration change 

according to the degree of rainfall saturation. The change in gas concentration is relaxed toward 

the difference between the maximum possible gas in solution for the given conditions ceq, and 

the amount of pre-existing gas in solution from layers above c0, 

Here ceq is determined from the total liquid water in the cell (rain plus cloud water) and from 

Henry’s law equilibrium according to the total gas concentration in the cell (ambient grid 

concentrations plus total gas in pre-existing solution). If the concentration change is positive, 

mass is added to the rain water (c0 is augmented) and removed from the grid cell; if negative, 

mass is removed from rain water (c0 is decremented) and added to the grid cell. 

Aerosol Scavenging 

Scavenging of Aqueous Aerosols

All aerosols within cloudy layers are assumed to exist within cloud water. Therefore, the 

scavenging coefficient for aqueous aerosols is exactly the same as for the scavenging of cloud 

droplets: Λ = Λc. 

Scavenging of Dry Particles

Wet scavenging of dry particles only occurs below precipitating clouds. We use the same 

scavenging coefficient as derived for the collection of cloud droplets: 

For rain or graupel, the collection efficiency E is a function of particle size dp, and is given by 

Seinfeld and Pandis (1998) as: 

 

d

c

d

E P

Λ

7

2.4 10 −= ×

c c c [ ( t)] ∆ = (

eq − 0

) 1 − exp − Λ∆
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-23 

where μ and μw are the kinematic viscosity of air (1.8×10-5 kg/ms) and water (10-3 kg/ms), 

respectively, φ = dp/dd is the ratio of particle size to hydrometeor size, Re is the Reynolds 

number for the hydrometeor, Sc is the Schmidt number for the collected particle, and St

 is the 

Stokes number of the collected particle. The Reynolds number is given by 

while the Schmidt number is 

where Dp is the particle Brownian diffusivity: 

Here, k is the Boltzman constant (1.38×10-23 J/K) and C is the Cunningham correction factor for 

small particles: 

and where λ is the mean free path of air (6.5×10-8 m). The Stokes number is given by 

where ρp is the particle density. The S

*

 parameter is given by 

Note that particle size dp and density ρp are affected by aerosol water content, which is 

determined from local humidity and PM deliquescence properties according to the ISORROPIA 

model (see Section 3). 

( ) ( )

( )

2/3

*

*

2/1

2/1 3/1 2/1 2/1

3/2

4 1 2

1 4.0 .0 16 4

















− +

−

+













+ + +

= + +

S S

S S

R

R S R S

R S

E d

t

t

e

w

e c e c

e c

p

φ

μ

μ

φ

2ν

d d

e

D v

R =

p

c D

S

ν

=

p

p

d

k T C

D

3πμ

=





























= + + −

λ

λ p

p

d

d

C

.0 55

.1 257 4.0 exp

2

1

d

d p p

t

d

v d C

S

μ

ρ

9

2

=

( )

( ) e

e

R

R

S

+ +

+ +

=

1 ln 1

* 2.1 ln 1 /12
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-24 

Snow presents a complication for the efficiency calculation, since it is not a single solid mass but 

rather a collection of crystals arranged in a myriad of possible shapes that can lead to significant 

aerodynamic drag. This drag affects particle collection efficiency. To simplify the calculation, 

we use the value for E determined for rain and graupel, but set a lower limit for E of 1×10-3

based on the work of Sauter and Wang (1989). 

2.7 DRY DEPOSITION

For many compounds, dry deposition can be as important as wet deposition as a removal 

process. Due to the difficulty of making direct measurements of dry deposition and the need for 

a suitable model parameterization, dry deposition is often treated as a first-order removal 

mechanism, where the flux of a pollutant to the surface is the product of a characteristic 

deposition velocity and its concentration in the “surface layer” (i.e., the lowest model layer). 

Deposition velocities are derived from models that account for the reactivity, solubility, and 

diffusivity of gases, the sizes of particles, local meteorological conditions, and season-dependent 

surface characteristics. The factors affecting deposition are discussed in more detail below. 

For a given species, particle size, and grid cell, CAMx determines a deposition velocity for each 

landuse type in that cell and then linearly combines them according to the fractional distribution 

of landuse. The deposition flux is used as the lower boundary condition in the vertical diffusion 

algorithm. Aerosol size spectra and species-dependent properties needed for the deposition 

velocity calculations are externally supplied to CAMx for all pollutant species via the chemistry 

parameters file; gridded landuse is supplied to the master grid and optionally any nested fine 

grids; the season is determined by the simulation date and location on the globe. 

Movement of material along a path from the atmosphere, through any plant canopy, and onto the 

various plant and ground surfaces within and below the canopy is typically modeled by analogy 

to an electrical circuit. Resistances in serial and parallel arrangements are used to represent the 

relative ease with which material moves through different portions of the deposition pathway. 

Each branch of the circuit represents a different path by which material may be deposited. For 

example, gaseous pollutants may transfer through the lowest layers of the atmosphere partially 

into a plant canopy, through the stomatal openings on plant leaves and into the plant mesophyll 

tissue. Alternatively, the material may travel all the way through the plant canopy and deposit on 

the ground surface. 

CAMx offers two dry deposition options: the original approach based on the work of Wesely 

(1989) and Slinn and Slinn (1980); and an updated approach based on the work of Zhang et al. 

(2001; 2003). Both of these options are briefly described below. 

The Wesely/Slinn Model 

Dry Deposition of Gases

Wesely (1989) developed a resistance model that incorporates the major elements described 

above. Deposition velocity vd is calculated from three primary resistances r (s/m) in series: 

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-25 

a b s

d

r r r

V

+ +

=

1

The aerodynamic resistance ra represents bulk transport through the lowest model layer by 

turbulent diffusion, and operates equivalently for all gases and small particles. The magnitude of 

this resistance depends on the intensity of turbulent motion, which in turn depends on solar 

insolation, wind speed, surface roughness, and near-surface temperature lapse rate. In CAMx it 

is calculated from 

where u* is friction velocity (m/s), k is von Karman’s constant, z is the lowest model layer 

midpoint height (m), z0 is the surface roughness length (m), and φh is a stability correction term. 

The surface layer parameterization of Louis (1979) is used to supply friction velocity and 

stability correction as a function of input surface meteorology and roughness length. By default, 

roughness length is internally assigned according to season and the input gridded distribution of 

11 landuse types based on values used in AERMOD (EPA, 1998). However, the user may 

override this default by explicitly providing gridded roughness fields via the albedo/haze/ozone 

file as described in Section 5. In general, aerodynamic resistance is at a minimum on warm, 

sunny days with strong mixing due to surface heating and mechanical turbulence, and at a 

maximum on cool, calm nights when turbulent mixing is suppressed. 

The quasi-laminar sublayer (or boundary) resistance rb represents molecular diffusion through 

the thin layer of air directly in contact with the particular surface to which material is being 

deposited. It is usually assumed to depend only on the molecular diffusivity of each pollutant 

species, and is given by 

where Sc is the Schmidt number, or the ratio of air viscosity to species molecular diffusivity. 

Over land, surface resistance rs is expressed as several more serial and parallel resistances that 

depend upon the physical and chemical properties of the surface in question: 

where the first set of parallel resistances represents the pathway into the stomatal (rst) and 

mesophyll (rm) portions of active plants, the second is the pathway into the upper canopy (ruc), 

the third is the pathway into the lower canopy (rdc and rcl), and the fourth is the pathway to the 

ground surface (rac and rgs). Many of these resistances are season- and landuse-dependent, and 

are built into Wesely’s model; some in turn are adjusted within CAMx for solar insolation, 

moisture stress, and surface wetness (by default, vegetation is assumed to be unstressed, but 

several degrees of moisture stress can be introduced to the model through the gridded 

albedo/haze/ozone input file as described in Section 5). A few other resistances have been 

*

3/2

2

k u

S

r

c

b =

st m uc dc cl ac gs

s

r r r r r r r

r

+

+

+

+ +

+

=

1 1 1 1

1













−















= h

o

a

k u z

r φ

1

ln 1

*
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-26 

developed by Wesely for SO2 and ozone, and so are scaled for each gaseous species based on the 

following pollutant properties: 

• Molecular diffusivity; 

• Henry’s law solubility; 

• Chemical reactivity toward oxidation of biological substances. 

This allows the resistance approach to be used to estimate deposition velocities for a wide range 

of gaseous pollutants. 

Over water, the surface resistance is based on some improvements adopted by Kumar et al. 

(1996) in UAM-AERO, following Sehmel (1980): 

where Ts is surface temperature (K). 

The surface resistances for strong acids (e.g., nitric, sulfuric, and hydrochloric acid, peroxides) 

are set to zero given their strong rates of update by biota and other surfaces (Huebert and Robert, 

1995; Wesely and Hicks, 2000). The species for which surface resistance is set to zero are 

defined in the CAMx chemistry parameters file. 

Dry Deposition of Aerosols

Surface deposition of particles occurs via diffusion, impaction, and/or gravitational settling. 

Particle size is the dominant variable controlling these processes. The resistance approach of 

Slinn and Slinn (1980), as implemented in UAM-AERO (Kumar et al., 1996), has been adopted 

in CAMx. Particle deposition velocity for a given aerosol size is calculated using the following 

resistance equation: 

where vsed is the gravitational settling (or sedimentation) velocity. This velocity is dependent on 

aerosol size and density: 

where D is the log-mean particle diameter (m) of a given size section, ρp is particle density 

(g/m3

), g is gravitational acceleration, and ν is the viscosity of air. The factor C is the 

Cunningham correction for small particles, as described earlier for wet scavenging of particles. 

Note that particle size and density are affected by aerosol water content, which is determined 

from local humidity and PM deliquescence properties according to the ISORROPIA model (see 

Section 3). 

S *

s

H T u

r

5

3.9 10

1

−

×

=

a b a b sed

d sed

r r r r v

v v

+ +

= +

1

ν

ρ

18

2

p

sed

D gC

v =
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-27 

Aerodynamic resistance ra is identical to the value used for gaseous dry deposition. Resistance 

to diffusion through the quasi-laminar sub-layer layer depends on aerosol Brownian diffusion 

and inertial impaction. Particles are assumed to remain on a surface once they impact, so 

resuspension effects are ignored. Boundary resistance rb is given by 

The stokes number St is calculated from 

Specification of Season

The Wesely (1989) deposition algorithm specifies the various surface resistances by land cover 

type for five seasons: 

• Spring 

• Summer 

• Fall 

• Winter 

• Winter with snow-cover 

CAMx internally defines a season map to determine four of these five seasons by month and 

latitude (Table 2-2). Five latitude bands exist in each hemisphere: 

• Tropical < 20°

• Sub-tropical 20° to 35°

• Temperate 35° to 50°

• Cool 50° to 75°

• Polar > 75°

The seasons in the Northern and Southern hemispheres are offset by six months. This offset 

does not cause any discontinuity at the equator because all 12 months are defined as summer in 

the tropical band at the equator. This season map is generalized and may not be ideal for all 

locations. The season map is coded into data statements in the “CAMx/chmdat.f” subroutine 

and could be changed to better suit a specific region. 

 

( ) St

c

b

u S

r

3/2 /3

*

10

1

− −

+

=

g

v u

S

sed

t

ν

2

* =
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-28 

Table 2-2. Relationships between season and month/latitude used in the CAMx Wesely/Slinn 

dry deposition model. Exception: seasons for the area within 50N-75N and 15W-15E are 

internally set to those of latitude band 35-50 to account for regions of Europe in which the 

climate is influenced by the Gulf Stream. 

Month Latitude Band

Northern 

Hemisphere

Southern 

Hemisphere 

< 20° 20° - 35° 35° - 50° 50° - 75° > 75°

Tropical Sub-tropical Temperate Cool Polar

Jan Jul Summer Winter Winter Winter Winter 

Feb Aug Summer Spring Winter Winter Winter 

Mar Sep Summer Spring Spring Winter Winter 

Apr Oct Summer Spring Spring Spring Winter 

May Nov Summer Summer Spring Spring Winter 

Jun Dec Summer Summer Summer Summer Spring 

Jul Jan Summer Summer Summer Summer Summer 

Aug Feb Summer Summer Summer Summer Fall 

Sep Mar Summer Summer Fall Fall Winter 

Oct Apr Summer Fall Fall Fall Winter 

Nov May Summer Fall Fall Winter Winter 

Dec Jun Summer Fall Winter Winter Winter 

Specifying Snow-Cover

The season map shown in Table 2-2 does not specify any snow-cover because snow-cover is 

quite variable in space and time. Instead, CAMx provides a way of explicitly specifying which 

grid cells are snow-covered during the simulation. An optional snow-cover data field may be 

added to the albedo/haze/ozone column (AHO) file to specify the spatial and temporal 

distribution of snow cover during a simulation (see Section 5). The snow-cover input is a binary 

value where 1 signifies that the grid cell is snow-covered, while 0 is snow-free. Snow-covered 

grid cells are assigned the Wesely (1989) surface resistances for the category “winter with snowcover”, regardless of the season. Snow cover also impacts photolysis rates (see Section 3). 

Snow-cover data can be developed in several ways: 

• Spatially interpolated snow-cover observations; 

• Analyses of snow-cover data included in existing metrological data sets, such as the 

NCEP Eta Data Assimilation System (EDAS); 

• Analyses of climatological snow-cover based on surface reflectivity data from the 

satellite-based instruments. 

The Zhang Model 

The Wesely/Slinn model was the most comprehensive algorithm at the time for regional-scale air 

quality modeling, but no longer represents the current state of the science. Furthermore, it is 

defined for a limited number of land cover types that are in turn characterized by typical eastern 

U.S. vegetation types, density, and seasonal conditions. The deposition velocities calculated 

with the Wesely/Slinn model may not be sufficiently accurate outside the eastern U.S. or for 

atypical conditions (e.g., seasonal transitions, drought stress). It was desirable to implement a 

dry deposition algorithm in CAMx that incorporates updates in theory as well as recent 

measurements. One of the most important aspects of newer dry deposition schemes is the use of 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-29 

“leaf area index” (LAI) to scale pollutant uptake into biota. The LAI is defined as the ratio of the 

one-sided green leaf area to a unit area of the ground. This index characterizes the amount of 

vegetation present, and can be measured by satellites instruments at fairly high spatial resolution. 

A recent LAI-based algorithm is used in Environment Canada’s AURAMS air quality model 

(Zhang et al. 2003; Zhang et al. 2008). This scheme is a state-of-the-science algorithm that 

possesses an updated representation of non-stomatal deposition pathways and has been tested 

extensively through its use in daily air quality forecasting. It has been shown to reproduce 

observed fluxes of ozone and SO2 with reasonable accuracy. 

Dry Deposition of Gases

The gas resistance model of Zhang et al. (2003) invokes the same 3-resistance equation for 

deposition velocity as the Wesely (1989) model. The equations for aerodynamic resistance (ra) 

and boundary resistance (rb) are very similar to the Wesely (1989) formulations. However, 

Zhang et al. (2003) replace the surface resistance (rs) equation with a new relationship for the 

overall canopy resistance: 

st m cut ac gs

st

c

r r r r r

W

r

+

+ +

+

−

=

1 1 1

1

where Wst is the fraction of stomatal blocking under wet conditions, rcut is the cuticle resistance, 

and all other resistances have similar meaning to the Wesely model. Stomatal resistance (rst) is 

calculated using a sunlit/shade (so-called “two-big-leaf”) stomatal resistance sub-model. 

Following Wesely (1989), values for rg and rcut are calculated for SO2 and O3 and then scaled for 

other gaseous species. Cuticle resistance is slightly different from that defined in traditional bigleaf models in that it also considers the aerodynamic and quasi-laminar resistances of individual 

leaves. This is done by parameterizing rcut as a function of friction velocity, similar to the

concept of overall cuticle uptake considered in a multi-layer model framework. 

LAI is used in functions for rac, and rcut, where the LAI for any given day is linearly interpolated 

from monthly default LAI as a function of landuse type. To account for LAI effects on surface 

roughness (z0), a similar daily LAI interpolation is applied to that parameter. Hence, the Zhang 

model does not require the specification of season, as all resistance equations are continuous 

over each month (note that CAMx automatically applies the 6-month offset for applications in 

the southern hemisphere). 

For snow on the ground and leaves, both rgs and rcut are adjusted by a snow cover fraction, which 

is assumed to be 0.8 when snow cover is flagged for a grid cell in CAMx. Snow cover is defined 

through an optional record in the input albedo/haze/ozone file, as described in Section 5. For 

surfaces without canopies, rgs is defined as the resistance to any surface (e.g. soil, ice, snow and 

water), rac is set to zero, and very large values are used for rst, rm and rcut. 

The Zhang scheme uses 26 land use categories, whereas the Wesely scheme uses 11. Therefore, 

the CAMx land use file was expanded to handle up to 26 categories (see Section 5). The Zhang 

model includes a set of embedded annual surface roughness ranges and monthly LAI specific to 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-30 

each of the 26 landuse categories. The capabilities of the scheme were extended by adding the 

option to use episode-specific (i.e., satellite-derived) LAI data. Satellite-based LAI data from 

MODIS (MODerate-resolution Imaging Spectroradiometer)1

 can be processed into gridded LAI 

fields that are passed to CAMx as an optional record in the landuse input file (see Section 5). 

The optional gridded LAI fields are used to scale the default landuse-specific LAI values. For 

each grid cell, a landuse-weighted default LAI is determined according to the landuse fractions 

present. An LAI scaling factor is then determined as the ratio of the input LAI to the landuseweighted default LAI. This factor is used to scale the individual default LAI values for each 

landuse type in the grid cell, subject to the annual maximum to minimum range among the 

monthly default values. Figure 2-5 illustrates how the use of satellite LAI data introduces 

additional episode-specific variation into the LAI field. 

Figure 2-5. Comparison of monthly LAI data embedded in the Zhang dry deposition scheme 

against episode-specific LAI for June 2005. 

In developmental tests, the Zhang dry deposition model has tended to generate lower ozone 

deposition rates relative to the Wesely model, which leads to higher ozone predictions overall. 

This effect is seasonally dependent and will vary with the definition of LAI. Ozone is less 

sensitive to the source of LAI (whether Zhang defaults or satellite-enhanced) than to the choice 

of deposition model. 

 

1

 MODIS provides LAI at 250 meter spatial resolution and 16 day temporal resolution. 

LAI from Satellite

Zhang Embedded LAI Data

Modified LAI using Satellite Data
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-31 

Dry Deposition of Aerosols

Many previous particle dry deposition models were evaluated against wind tunnel measurements, 

which may not be representative of field measurements. Ruijgrok et al. (1995) showed that 

estimates from these early models differ greatly, especially in the range of 0.1-1.0 μm (by 2 to 3 

orders of magnitude). Theoretically, particles in this range deposit at rates much less than 0.01 

cm/s, a value comparable only to laboratory (wind tunnel) studies. According to Zhang et al. 

(2001), much higher values have been obtained in many field studies, including for sub-micron 

sulfate in which deposition velocities of one to two orders of magnitude higher have been 

measured. Gallagher et al. (1997) state that much higher deposition velocity values, typically 

1 cm/s or more for sub-micron aerosol deposition to a forest, are consistent across the aerosol 

size spectrum. The Zhang et al. (2001) study developed a simple parameterization of particle dry 

deposition as a function of aerosol size and landuse that predicts higher deposition velocities for 

sub-micron aerosols, especially over rough vegetated surfaces. 

The deposition of aerosols is based on the model of Slinn (1982), but using simplified empirical 

parameterizations to replace detailed canopy information. The aerosol deposition velocity is 

defined as: 

a s

d sed

r r

v v

+

= +

1

where vsed and ra have identical meanings as the Slinn and Slinn (1980) definition described 

earlier for the Wesely/Slinn deposition model. Note that in this case, the virtual serial resistance 

ra⋅rs⋅vsed has been removed, which results in higher values of deposition velocity. The surface 

resistance is given by 

( ) 0 * 1

1

u E E E R

r

B IM IN

s

+ +

=

ε

where the variable E includes the collection efficiencies for Brownian diffusion, impaction, and 

interception, respectively, R1 is a factor representing the fraction of particles that stick to the 

surface, and ε0 is an empirical constant that is set to a value of 3. The Brownian collection 

efficiency depends on the Schmidt number, while the impaction efficiency and R1 depend on the 

Stokes number. 

The collection efficiency by interception also exists if the particle passes an obstacle at a distance

shorter than its physical dimensions (e.g., large particles passing near hairy leaves). Zhang et al. 

(2001) adopted a simple equation for this term that is a function of particle diameter and a 

characteristic radius, for which default values are given for different land use and seasonal 

categories. 

Figures 2-6 and 2-7 compare estimated particle deposition velocities from the Zhang model, the 

Slinn and Slinn (1980) model, and the AERMOD model (EPA, 1998). Calculations were made 

for daytime, neutrally stable conditions for a range of wind speeds and land use categories. 

Figure 2-6 shows that the Zhang model increases deposition velocities over forest by roughly an 

order of magnitude for the 0.1-1 μm range, yet reduces deposition velocities above 1 μm. Figure 
CAMx v5.30 User’s Guide, December 2010 

Core Model Formulation 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_02_formulation.docx 2-32 

2-7 clearly shows the Zhang model generates sub-micron deposition velocities that are ten times 

higher than the Slinn and Slinn (1980) model over the five landuse types tested. 

Figure 2-6. Comparison of particle dry deposition velocities as a function of size and wind 

speeds (m/s) for three models: black – Zhang et al. (2001); blue – Slinn and Slinn (1980); 

orange – AERMOD (EPA, 1998). Results are shown for a forest landuse category during 

daytime neutral stability. Particle density was set at 1.5 g/cm3

. 

Figure 2-7 Comparison of particle dry deposition velocities determined by the Zhang et al. 

(2001) and Slinn and Slinn (1980) models, as a function of landuse and wind speed during 

daytime neutrally stable conditions. Particle density was set at 1.5 g/cm3

Forest

0.01

0.1

1

10

100

0.001 0.01 0.1 1 10 100

Particle diameter (μm)

Vd (cm s-1

)

wind = 2

wind = 5

wind = 10

wind = 15

wind = 2

wind = 5

wind = 10

wind = 15

wind = 2

wind = 5

wind = 10

wind = 15

0.0

0.2

0.4

0.6

0.8

0 0.2 0.4 0.6 0.8

Zhang [cm/s]

Slinn 80 [cm/s]

Particle (Dp = 0.35 μm) deposition in day time

water, 0.8m/s

forest, 0.8m/s

crops, 0.8m/s

urban, 0.8m/s

swamp, 0.8m/s

water, 2m/s

forest, 2m/s

crops, 2m/s

urban, 2m/s

swamp, 2m/s

water, 4 m/s

forest, 4m/s

crops, 4m/s

urban, 4m/s

swamp, 4m/s

water, 6m/s

forest, 6m/s

crops, 6m/s

urban, 6m/s

swamp, 6m/s

water, 8m/s

forest, 8m/s

crops, 8m/s

urban, 8m/s

swamp, 8m/s

water, 10m/s

forest, 10m/s

crops, 10m/s

urban, 10m/s

swamp, 10m/s
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-1 

3. CHEMISTRY MECHANISMS

The CAMx gas-phase chemical mechanisms include the 2005 version of Carbon Bond (CB05; 

Yarwood et al., 2005b), SAPRC99 (Carter, 2000) and several versions of Carbon Bond IV (CB4; 

Gery et al., 1989). There is also an interface that allows a simple user-defined chemical 

mechanism to be employed by coding the mechanism in a user-supplied subroutine. The gasphase chemical mechanisms currently supported are listed in Table 3-1. 

Table 3-1. Gas-phase chemical mechanisms currently implemented in CAMx. 

Mechanism ID Description

6 

CB05, the 2005 version of the Carbon Bond mechanism developed for 

use in EPA atmospheric modeling studies (Yarwood et al., 2005b). This 

mechanism optionally includes the same aerosol and mercury chemistry 

as Mechanism 4. 156 reactions and up to 89 species (54 state gases, up 

to 22 state particulates, and 13 radicals). 

5 

The fixed parameter version of the SAPRC99 gas-phase mechanism 

(Carter, 2000). This mechanism optionally includes the same aerosol and 

mercury chemistry as Mechanism 4. 217 reactions and up to 114 species 

(76 state gases, up to 22 state particulates, and 16 radicals). 

3 

CB4 (Gery et al., 1989) gas-phase chemistry with revised PAN chemistry, 

additional radical-radical termination reactions and updated isoprene 

chemistry (Carter 1996; Whitten et al.,1996). 96 reactions and 36 species 

(26 state gases and 10 radicals). 

4 

Mechanism 3 with additional inorganic gas-phase reactions important for 

regional modeling (Yarwood et al., 2005a). This mechanism optionally 

includes aerosol and mercury chemistry including: secondary organic 

aerosol formation from condensable gases, aqueous PM chemistry, 

inorganic PM thermodynamics, and aerosol size evolution. 113 reactions 

and up to 76 species (up to 44 state gases, up to 22 state particulates, 

and 10 radicals). 

10 

A user-defined simple chemistry mechanism can be developed for any 

gas and/or particulate species, which is defined by a “Mechanism 10” 

parameters file and solved within a user-supplied subroutine called 

“chem10.f.” 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-2 

The selection of which mechanism to employ in a given CAMx application is determined by the 

“chemistry parameter” input file. This file defines the mechanism number, the number of gas 

and aerosol species, and the number of reactions for the mechanism, lists the species by name 

with associated physico-chemical properties, lists the reaction rate constants and temperature 

dependencies for each reaction, and defines which reactions are photolytic. Chemistry parameter 

input files for the CB05, SAPRC99, and CB4 mechanisms listed in Table 3-1 are provided with 

CAMx and are not normally modified by users. See Section 5 for additional information on the 

format and usage of these files. Chemistry parameters files are specific to versions of CAMx. 

Always use chemistry parameters files with the right CAMx version number, do not attempt to 

use files for another CAMx version. 

3.1 GAS-PHASE CHEMISTRY

Two versions of the CB4 mechanism are included in CAMx, labeled Mechanisms 3 and 4. 

Mechanism 3 was established in the mid-1990’s as the “default” mechanism for simulations 

without aerosols; it comprises CB4 (Gery et al., 1989) with revised PAN chemistry, additional 

radical-radical termination reactions and updated isoprene chemistry (Carter 1996; Whitten et al., 

1996). Mechanism 4 is intended for aerosol modeling with CB4 and has the following updates 

to Mechanism 3: 

• Seventeen additional inorganic chemistry reactions are added that are most important for 

regional/annual ozone, PM, mercury and toxics modeling (Yarwood et al., 2005a). 

• Rate expressions for gas-phase reactions 26, 36, and 82 are updated to explicitly include 

pressure dependence. 

• The rate for reaction 83 is set to zero. This reaction was used in the UAM to represent 

heterogeneous SO2 to sulfate conversion but now should be set to zero because aqueous 

chemistry is explicitly handled. 

• The rate for reaction 18 (N2O5 + H2O –> 2 HNO3) is reduced to a value that is consistent 

with just the known gas-phase processes (Mentel, Bleilebens and Wahner, 1996). 

Heterogeneous conversion of N2O5 to HNO3 is treated in the aerosol chemistry module. 

Mechanism 5 is the SAPRC99 chemistry adapted for photochemical grid modeling by selecting a 

specific “fixed parameter” lumping scheme (Carter, 2000). The SAPRC99 mechanism was 

added as an alternate mechanism because it is chemically up-to-date, has been tested extensively 

against environmental chamber data, and uses a different approach for VOC lumping than the 

Carbon Bond mechanisms. 

Mechanism 6 is the 2005 version of the Carbon Bond mechanism (CB05) developed for EPA 

atmospheric modeling studies. Updates in CB05 compared to the earlier CB4 mechanisms are: 

• Updated rate constants based on recent (2003 – 2005) IUPAC and NASA evaluations. 

• An extended inorganic reaction set for urban to remote tropospheric conditions. 

• NOx recycling reactions to represent the fate of NOx over multiple days. 

• Explicit organic chemistry for methane and ethane. 

• Explicit methylperoxy radical, methyl hydroperoxide and formic acid. 

• Lumped higher organic peroxides, organic acids and peracids. 

• Internal olefin (R-HC=CH-R) species called IOLE. 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-3 

• Higher aldehyde species ALDX making ALD2 explicitly acetaldehyde. 

• Higher peroxyacyl nitrate species from ALDX called PANX. 

• Lumped terpene species called TERP. 

The CB05 was evaluated against smog chamber data from the Universities of North Carolina and 

California at Riverside (Yarwood et al., 2005b). The new higher aldehyde and internal olefin 

species improve mechanism performance for these species and produce oxidants more rapidly at 

low VOC/NOx ratios. The new terpene species improves simulation of oxidants and PM from 

biogenic emissions. Several new organic peroxide species improve the simulation of oxidants 

that are involved in PM sulfate formation. The addition of explicit methylperoxy radical 

improves the simulation of hydrogen peroxide under low NOx conditions. 

All mechanisms described above are all balanced for nitrogen conservation so that predicted 

NOy can be calculated as the sum of nitrogen containing species. A listing of the species, 

reactions, and VOC species properties in Mechanism 3 (CB4), Mechanism 5 (SAPRC99), 

Mechanism 6 (CB05) are provided in Tables 3-2 through 3-10, respectively. 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-4 

Table 3-2. Reactions and rate constants for the CB4 mechanism (Mechanism 3). 

Reaction 

Number Reactants Products k298

1

(ppm–n min–1) 

1 NO2 NO + O Photolysis 

2 O O3 4.323E+06 

3 O3 + NO NO2 2.664E+01 

4 O + NO2 NO 1.375E+04 

5 O + NO2 NO3 2.309E+03 

6 O + NO NO2 2.438E+03 

7 NO2 + O3 NO3 4.731E-02 

8 O3 O Photolysis 

9 O3 O1D Photolysis 

10 O1D O 4.250E+10 

11 O1D + H2O 2 OH 3.260E+05 

12 O3 + OH HO2 1.000E+02 

13 O3 + HO2 OH 2.999E+00 

14 NO3 0.89 NO2 + 0.89 O + 0.11 NO Photolysis 

15 NO3 + NO 2 NO2 4.417E+04 

16 NO3 + NO2 NO + NO2 5.901E-01 

17 NO3 + NO2 N2O5 1.853E+03 

18 N2O5 + H2O 2 HNO3 1.900E-06 

19 N2O5 NO3 + NO2 2.776E+00 

20 NO + NO 2 NO2 1.539E-04 

21 NO + NO2 + H2O 2 HONO 1.600E-11 

22 NO + OH HONO 9.799E+03 

23 HONO NO + OH Photolysis 

24 OH + HONO NO2 9.770E+03 

25 HONO + HONO NO + NO2 1.500E-05 

26 NO2 + OH HNO3 1.682E+04 

27 OH + HNO3 NO3 2.179E+02 

28 HO2 + NO OH + NO2 1.227E+04 

29 HO2 + NO2 PNA 0.000E+00 

30 PNA HO2 + NO2 0.000E+00 

31 OH + PNA NO2 0.000E+00 

32 HO2 + HO2 H2O2 4.144E+03 

33 HO2 + HO2 + H2O H2O2 2.181E-01 

34 H2O2 2 OH Photolysis 

35 OH + H2O2 HO2 2.520E+03 

36 OH + CO HO2 3.220E+02 

37 FORM + OH HO2 + CO 1.500E+04 

38 FORM 2 HO2 + CO Photolysis 

39 FORM CO Photolysis 

40 FORM + O OH + HO2 + CO 2.370E+02 

41 FORM + NO3 HNO3 + HO2 + CO 9.300E-01 

42 ALD2 + O C2O3 + OH 6.360E+02 

43 ALD2 + OH C2O3 2.400E+04 

44 ALD2 + NO3 C2O3 + HNO3 3.700E+00 

45 ALD2 FORM + 2 HO2 + CO + XO2 Photolysis 

46 C2O3 + NO FORM + NO2 + HO2 + XO2 2.820E+04 

47 C2O3 + NO2 PAN 1.370E+04 

48 PAN C2O3 + NO2 2.540E-02 

49 C2O3 + C2O3 2 FORM + 2 XO2 + 2 HO2 3.700E+03 

50 C2O3 + HO2 0.79 FORM + 0.79 XO2 + 0.79 HO2 + 0.79 OH 9.600E+03 

512 OH FORM + XO2 + HO2 2.100E+01 

52 PAR + OH 0.87 XO2 + 0.13 XO2N + 0.11 HO2 + 0.11 ALD2 - 0.11 PAR + 0.76 ROR 1.203E+03 

53 ROR 0.96 XO2 + 1.1 ALD2 + 0.94 HO2 - 2.1 PAR + 0.04 XO2N 1.371E+05 

54 ROR HO2 9.545E+04 

55 ROR + NO2 NTR 2.200E+04 

56 O + OLE 0.63 ALD2 + 0.38 HO2 + 0.28 XO2 + 0.3 CO + 0.2 FORM + 0.02 XO2N + 

0.22 PAR + 0.2 OH 5.920E+03 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-5 

Reaction 

Number Reactants Products k298

1

(ppm–n min–1) 

57 OH + OLE FORM + ALD2 - PAR + XO2 + HO2 4.200E+04 

58 O3 + OLE 0.5 ALD2 + 0.74 FORM + 0.22 XO2 + 0.1 OH + 0.33 CO + 0.44 HO2 - PAR 1.800E-02 

59 NO3 + OLE 0.91 XO2 + FORM + 0.09 XO2N + ALD2 + NO2 - PAR 1.135E+01 

60 O + ETH FORM + 1.7 HO2 + CO + 0.7 XO2 + 0.3 OH 1.080E+03 

61 OH + ETH XO2 + 1.56 FORM + 0.22 ALD2 + HO2 1.192E+04 

62 O3 + ETH FORM + 0.42 CO + 0.12 HO2 2.700E-03 

63 TOL + OH 0.44 HO2 + 0.08 XO2 + 0.36 CRES + 0.56 TO2 9.150E+03 

64 TO2 + NO 0.9 NO2 + 0.9 HO2 + 0.9 OPEN + 0.1 NTR 1.200E+04 

65 TO2 CRES + HO2 2.500E+02 

66 OH + CRES 0.4 CRO + 0.6 XO2 + 0.6 HO2 + 0.3 OPEN 6.100E+04 

67 CRES + NO3 CRO + HNO3 3.250E+04 

68 CRO + NO2 NTR 2.000E+04 

69 OPEN C2O3 + HO2 + CO Photolysis 

70 OPEN + OH XO2 + 2 CO + 2 HO2 + C2O3 + FORM 4.400E+04 

71 OPEN + O3 0.03 ALD2 + 0.62 C2O3 + 0.7 FORM + 0.03 XO2 + 0.69 CO + 0.08 OH + 

0.76 HO2 + 0.2 MGLY 1.500E-02 

72 OH + XYL 0.7 HO2 + 0.5 XO2 + 0.2 CRES + 0.8 MGLY + 1.1 PAR + 0.3 TO2 3.620E+04 

73 OH + MGLY XO2 + C2O3 2.600E+04 

74 MGLY C2O3 + HO2 + CO Photolysis 

75 O + ISOP 0.75 ISPD + 0.5 FORM + 0.25 XO2 + 0.25 HO2 + 0.25 C2O3 + 0.25 PAR 5.320E+04 

76 OH + ISOP 0.912 ISPD + 0.629 FORM + 0.991 XO2 + 0.912 HO2 + 0.088 XO2N 1.472E+05 

77 O3 + ISOP 0.65 ISPD + 0.6 FORM + 0.2 XO2 + 0.066 HO2 + 0.266 OH + 0.2 C2O3 + 

0.15 ALD2 + 0.35 PAR + 0.066 CO 1.897E-02 

78 NO3 + ISOP 0.2 ISPD + 0.8 NTR + XO2 + 0.8 HO2 + 0.2 NO2 + 0.8 ALD2 + 2.4 PAR 9.963E+02 

79 XO2 + NO NO2 1.200E+04 

80 XO2 + XO2 2.000E+03 

81 XO2N + NO NTR 1.200E+04 

82 SO2 + OH SULF + HO2 1.110E+03 

83 SO2 SULF 8.167E-05 

84 MEOH + OH FORM + HO2 1.349E+03 

85 ETOH + OH HO2 + ALD2 4.714E+03 

86 XO2 + HO2 8.900E+03 

87 XO2N + HO2 8.900E+03 

88 XO2N + XO2N 2.000E+03 

89 XO2 + XO2N 4.000E+03 

90 OH + HO2 1.626E+05 

91 CRO 2.778E-04 

92 OH + ISPD 1.565 PAR + 0.167 FORM + 0.713 XO2 + 0.503 HO2 + 0.334 CO + 0.168 

MGLY + 0.273 ALD2 + 0.498 C2O3 4.967E+04 

93 O3 + ISPD 0.114 C2O3 + 0.15 FORM + 0.85 MGLY + 0.154 HO2 + 0.268 OH + 0.064 

XO2 + 0.02 ALD2 + 0.36 PAR + 0.225 CO 1.050E-02 

94 NO3 + ISPD 0.357 ALD2 + 0.282 FORM + 1.282 PAR + 0.925 HO2 + 0.643 CO + 0.85 

NTR + 0.075 C2O3 + 0.075 XO2 + 0.15 HNO3 1.478E+00 

95 ISPD 0.333 CO + 0.067 ALD2 + 0.9 FORM + 0.832 PAR + 1.033 HO2 + 0.7 XO2 

+ 0.967 C2O3 Photolysis 

96 NO2 + ISOP 0.2 ISPD + 0.8 NTR + XO2 + 0.8 HO2 + 0.2 NO + 0.8 ALD2 + 2.4 PAR 2.200E-04 

Notes: 

1

 Rate constants are shown for 298 K and 1 atmosphere in units of ppm and minutes. See 

the CAMx chemistry parameters file (Section 5) for the temperature and pressure 

dependencies. 

2

 Reaction 51 implicitly assumes 1.85 ppm of methane in the rate constant.
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-6 

Table 3-3. Species in the CB4 mechanism (Mechanism 3). 

Species Name Description

NO2 Nitrogen dioxide 

NO Nitric oxide 

O Oxygen atom in the O3(P) electronic state 

O3 Ozone 

NO3 Nitrate radical 

O1D Oxygen atom in the O1(D) electronic state 

OH Hydroxyl radical 

HO2 Hydroperoxy radical 

N2O5 Dinitrogen pentoxide 

HNO3 Nitric acid 

HONO Nitrous acid 

PNA Peroxynitric acid (HNO4) 

H2O2 Hydrogen peroxide 

CO Carbon monoxide 

FORM Formaldehyde 

ALD2 Higher aldehyde (based on acetaldehyde) 

C2O3 Acylperoxy radical (based on acetylperoxy) 

XO2 NO to NO2 conversion from alkylperoxy (RO2) radical 

PAN Peroxyacyl nitrate (based on peroxyacetyl nitrate) 

PAR Paraffin carbon bond (C-C) 

XO2N NO to organic nitrate conversion from alkylperoxy (RO2) radical 

ROR Secondary alkoxy radical 

NTR Organic nitrate (RNO3) 

OLE Olefin carbon bond (C=C) 

ETH Ethene 

TOL Toluene and other monoalkyl aromatics 

CRES Cresol and higher molecular weight phenols 

TO2 Toluene-hydroxyl radical adduct 

OPEN Aromatic ring opening product 

CRO Methylphenoxy radical 

MGLY Methylglyoxal and other aromatic products 

XYL Xylene and other polyalkyl aromatics 

ISOP Isoprene 

ISPD Isoprene product (lumped methacrolein, methyl vinyl ketone, etc.) 

SO2 Sulfur dioxide 

SULF Sulfuric acid (gaseous) 

MEOH Methanol 

ETOH Ethanol 

Table 3-4. Properties of VOC species in the CB4 mechanism: average carbon numbers, kOH

values (ppm-1min-1) and maximum incremental reactivity (MIR) values (mole O3/mole VOC). 

Species Carbon Number Average kOH MIR

PAR 1 1.20E+03 0.3458 

OLE 2 4.20E+04 4.831 

ETH 2 1.19E+04 2.328 

TOL 7 9.15E+03 0.5139 

XYL 8 3.62E+04 2.383 

FORM 1 1.50E+04 5.771 

ALD2 2 2.40E+04 3.007 

ISOP 5 1.47E+05 4.375 

MEOH 1 1.35E+03 0.4101 

ETOH 2 4.71E+03 0.6650 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-7 

Table 3-5. Reactions and rate constants for the SAPRC99 mechanism (Mechanism 5). 

Reaction 

Number Reactants Products 

k298

1

(ppm–n min–1) 

1 NO2 NO + O Photolysis 

2 O + O2 + M O3 + M 2.105E-05 

3 O + O3 2O2 1.175E+01 

4 O + NO + M NO2 + M 3.676E-03 

5 O + NO2 NO + O2 1.435E+04 

6 O + NO2 NO3 2.690E+03 

7 O3 + NO NO2 + O2 2.682E+01 

8 O3 + NO2 O2 + NO3 5.202E-02 

9 NO + NO3 2NO2 3.849E+04 

10 NO + NO + O2 2NO2 7.104E-10 

11 NO2 + NO3 N2O5 2.268E+03 

12 N2O5 NO2 + NO3 3.169E+00 

13 N2O5 + H2O 2HNO3 3.841E-07 

14 NO2 + NO3 NO + NO2 + O2 9.689E-01 

15 NO3 NO + O2 Photolysis 

16 NO3 NO2 + O Photolysis 

17 O3 O + O2 Photolysis 

18 O3 O1D + O2 Photolysis 

19 O1D + H2O 2OH 3.250E+05 

20 O1D + M O + M 4.248E+04 

21 OH + NO HONO 1.094E+04 

22 HONO OH + NO Photolysis 

23 HONO HO2 + NO2 Photolysis 

24 OH + HONO NO2 9.549E+03 

25 OH + NO2 HNO3 1.326E+04 

26 OH + NO3 HO2 + NO2 2.954E+04 

27 OH + HNO3 NO3 + H2O 2.176E+02 

28 HNO3 OH + NO2 Photolysis 

29 OH + CO HO2 3.081E+02 

30 OH + O3 HO2 9.794E+01 

31 HO2 + NO OH + NO2 1.244E+04 

32 HO2 + NO2 HNO4 0.000E+00 

33 HNO4 HO2 + NO2 0.000E+00 

34 HNO4 0.61HO2 + 0.61NO2 + 0.39OH + 0.39NO3 Photolysis 

35 HNO4 + OH NO2 0.000E+00 

36 HO2 + O3 OH 2.763E+00 

37 HO2 + HO2 HO2H + O2 4.235E+03 

38 HO2 + HO2 + H2O HO2H + O2 + H2O 2.348E-01 

39 NO3 + HO2 0.8OH + 0.8NO2 + 0.2HNO3 5.909E+03 

40 NO3 + NO3 2NO2 + O2 3.373E-01 

41 HO2H 2OH Photolysis 

42 HO2H + OH HO2 2.504E+03 

43 OH + HO2 1.641E+05 

44 OH + SO2 HO2 + SULF 1.444E+03 

45 OH + H2 HO2 9.898E+00 

46 CXO2 + NO NO2 + HCHO + HO2 1.076E+04 

47 CXO2 + HO2 COOH + O2 7.691E+03 

48 CXO2 + NO3 HCHO + HO2 + NO2 1.920E+03 

49 CXO2 + CXO2 MEOH + HCHO + O2 3.914E+02 

50 CXO2 + CXO2 2HCHO + 2HO2 1.581E+02 

51 RO2R + NO NO2 + HO2 1.334E+04 

52 RO2R + HO2 ROOH 2.200E+04 

53 RO2R + NO3 NO2 + O2 + HO2 3.398E+03 

54 RO2R + CXO2 HO2 + 0.75HCHO + 0.25MEOH 2.954E+02 

55 RO2R + RO2R HO2 5.170E+01 

56 R2O2 + NO NO2 1.334E+04 

57 R2O2 + HO2 HO2 2.200E+04 

58 R2O2 + NO3 NO2 3.398E+03 

59 R2O2 + CXO2 CXO2 2.954E+02 

60 R2O2 + RO2R RO2R 5.170E+01 

61 R2O2 + R2O2 5.170E+01 

62 RO2N + NO RNO3 1.334E+04 

63 RO2N + HO2 ROOH 2.200E+04 

64 RO2N + CXO2 HO2 + 0.25MEOH + 0.5MEK + 0.5PROD + 0.75HCHO 2.954E+02 

65 RO2N + NO3 NO2 + O2 + HO2 + MEK 3.398E+03 

66 RO2N + RO2R HO2 + 0.5MEK + 0.5PROD 5.170E+01 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-8 

Reaction 

Number Reactants Products 

k298

1

(ppm–n min–1) 

67 RO2N + R2O2 RO2N 5.170E+01 

68 RO2N + RO2N MEK + HO2 + PROD 5.170E+01 

69 CCO3 + NO2 PAN 1.548E+04 

70 PAN CCO3 + NO2 3.123E-02 

71 CCO3 + NO CXO2 + NO2 3.152E+04 

72 CCO3 + HO2 0.75CO3H + 0.25CO2H + 0.25O3 2.084E+04 

73 CCO3 + NO3 CXO2 + NO2 5.909E+03 

74 CCO3 + CXO2 CO2H + HCHO 1.425E+04 

75 CCO3 + RO2R CO2H 1.108E+04 

76 CCO3 + R2O2 CCO3 1.108E+04 

77 CCO3 + RO2N CO2H + PROD 1.108E+04 

78 CCO3 + CCO3 2CXO2 2.295E+04 

79 RCO3 + NO2 PAN2 1.783E+04 

80 PAN2 RCO3 + NO2 2.661E-02 

81 RCO3 + NO NO2 + CCHO + RO2R 4.132E+04 

82 RCO3 + HO2 0.75RC3H + 0.25RC2H + 0.25O3 2.084E+04 

83 RCO3 + NO3 NO2 + CCHO + RO2R 5.909E+03 

84 RCO3 + CXO2 RC2H + HCHO 1.425E+04 

85 RCO3 + RO2R RC2H 1.108E+04 

86 RCO3 + R2O2 RCO3 1.108E+04 

87 RCO3 + RO2N RC2H + PROD 1.108E+04 

88 RCO3 + CCO3 CXO2 + CCHO + RO2R 2.295E+04 

89 RCO3 + RCO3 2CCHO + 2RO2R 2.295E+04 

90 BZCO + NO2 PBZN 2.024E+04 

91 PBZN BZCO + NO2 1.873E-02 

92 BZCO + NO NO2 + BZO + R2O2 4.132E+04 

93 BZCO + HO2 0.75RC3H + 0.25RC2H + 0.25O3 2.084E+04 

94 BZCO + NO3 NO2 + BZO + R2O2 5.909E+03 

95 BZCO + CXO2 RC2H + HCHO 1.425E+04 

96 BZCO + RO2R RC2H 1.108E+04 

97 BZCO + R2O2 BZCO 1.108E+04 

98 BZCO + RO2N RC2H + PROD 1.108E+04 

99 BZCO + CCO3 CXO2 + BZO + R2O2 2.295E+04 

100 BZCO + RCO3 CCHO + RO2R + BZO + R2O2 2.295E+04 

101 BZCO + BZCO 2BZO + 2R2O2 2.295E+04 

102 MCO3 + NO2 MPAN 1.783E+04 

103 MPAN MCO3 + NO2 2.127E-02 

104 MCO3 + NO NO2 + HCHO + CCO3 4.132E+04 

105 MCO3 + HO2 0.75RC3H + 0.25RC2H + 0.25O3 2.084E+04 

106 MCO3 + NO3 NO2 + HCHO + CCO3 5.909E+03 

107 MCO3 + CXO2 RC2H + HCHO 1.425E+04 

108 MCO3 + RO2R RC2H 1.108E+04 

109 MCO3 + R2O2 MCO3 1.108E+04 

110 MCO3 + RO2N 2RC2H 1.108E+04 

111 MCO3 + CCO3 CXO2 + HCHO + CCO3 2.295E+04 

112 MCO3 + RCO3 HCHO + CCO3 + CCHO + RO2R 2.295E+04

113 MCO3 + BZCO HCHO + CCO3 + BZO + R2O2 2.295E+04 

114 MCO3 + MCO3 2HCHO + 2CCO3 2.295E+04 

115 TBUO + NO2 RNO3 3.545E+04 

116 TBUO ACET + CXO2 5.923E+04 

117 BZO + NO2 NPHE 5.620E+04 

118 BZO + HO2 PHEN 2.200E+04 

119 BZO PHEN 6.000E-02 

120 BZNO + NO2 2XN 5.620E+04 

121 BZNO + HO2 NPHE 2.200E+04 

122 BZNO NPHE 6.000E-02 

123 HCHO 2HO2 + CO Photolysis 

124 HCHO CO Photolysis 

125 HCHO + OH HO2 + CO 1.359E+04 

126 HCHO + HO2 HCO3 1.167E+02 

127 HCO3 HO2 + HCHO 9.060E+03 

128 HCO3 + NO HC2H + NO2 + HO2 1.076E+04 

129 HCHO + NO3 HNO3 + HO2 + CO 8.477E-01 

130 CCHO + OH CCO3 2.341E+04 

131 CCHO CO + HO2 + CXO2 Photolysis 

132 CCHO + NO3 HNO3 + CCO3 4.027E+00 

133 RCHO + OH 0.034RO2R + 0.001RO2N + 0.965RCO3 + 0.034CO + 0.034CCHO 2.954E+04 

134 RCHO CCHO + RO2R + CO + HO2 Photolysis 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-9 

Reaction 

Number Reactants Products 

k298

1

(ppm–n min–1) 

135 RCHO + NO3 HNO3 + RCO3 5.421E+00 

136 ACET + OH HCHO + CCO3 + R2O2 2.840E+02 

137 ACET CCO3 + CXO2 Photolysis 

138 MEK + OH 0.37RO2R + 0.042RO2N + 0.616R2O2 + 0.492CCO3 + 

0.096RCO3 + 0.115HCHO + 0.482CCHO + 0.37RCHO 1.741E+03 

139 MEK CCO3 + CCHO + RO2R Photolysis 

140 MEOH + OH HCHO + HO2 1.351E+03 

141 COOH + OH 0.35HCHO + 0.35OH + 0.65CXO2 8.111E+03 

142 COOH HCHO + HO2 + OH Photolysis 

143 ROOH + OH RCHO + 0.34RO2R + 0.66OH 1.625E+04 

144 ROOH RCHO + HO2 + OH Photolysis 

145 GLY 2CO + 2HO2 Photolysis 

146 GLY HCHO + CO Photolysis 

147 GLY + OH 0.63HO2 + 1.26CO + 0.37RCO3 1.625E+04 

148 GLY + NO3 HNO3 + 0.63HO2 + 1.26CO + 0.37RCO3 1.424E+00 

149 MGLY HO2 + CO + CCO3 Photolysis 

150 MGLY + OH CO + CCO3 2.216E+04 

151 MGLY + NO3 HNO3 + CO + CCO3 3.584E+00 

152 BACL 2CCO3 Photolysis 

153 PHEN + OH 0.24BZO + 0.76RO2R + 0.23GLY 3.885E+04 

154 PHEN + NO3 HNO3 + BZO 5.584E+03 

155 CRES + OH 0.24BZO + 0.76RO2R + 0.23MGLY 6.204E+04 

156 CRES + NO3 HNO3 + BZO 2.024E+04 

157 NPHE + NO3 HNO3 + BZNO 5.584E+03 

158 BALD + OH BZCO 1.906E+04 

159 BALD Photolysis 

160 BALD + NO3 HNO3 + BZCO 3.867E+00 

161 METH + OH 0.5RO2R + 0.416CO + 0.084HCHO + 0.416MEK + 0.084MGLY + 

0.5MCO3 4.962E+04 

162 METH + O3 0.008HO2 + 0.1RO2R + 0.208OH + 0.1RCO3 + 0.45CO + 

0.2HCHO + 0.9MGLY + 0.333HC2H 1.670E-03 

163 METH + NO3 0.5HNO3 + 0.5RO2R + 0.5CO + 0.5MCO3 + 0.5XN 6.762E+00 

164 METH + O RCHO 9.365E+03 

165 METH 0.34HO2 + 0.33RO2R + 0.33OH + 0.67CCO3 + 0.67CO + 

0.67HCHO + 0.33MCO3 Photolysis 

166 MVK + OH 0.3RO2R + 0.025RO2N + 0.675R2O2 + 0.675CCO3 + 0.3HCHO + 

0.675RCHO + 0.3MGLY 2.796E+04 

167 MVK + O3 0.064HO2 + 0.05RO2R + 0.164OH + 0.05RCO3 + 0.475CO + 

0.1HCHO + 0.95MGLY + 0.351HC2H 6.765E-03 

168 MVK + O 0.45RCHO + 0.55MEK 6.382E+03 

169 MVK 0.3CXO2 + 0.7CO + 0.7PROD + 0.3MCO3 Photolysis 

170 ISPD + OH 

0.67RO2R + 0.041RO2N + 0.289MCO3 + 0.336CO + 0.055HCHO 

+ 0.129CCHO + 0.013RCHO + 0.15MEK + 0.332PROD + 0.15GLY 

+ 0.174MGLY 

9.144E+04 

171 ISPD + O3 

0.4HO2 + 0.048RO2R + 0.048RCO3 + 0.285OH + 0.498CO + 

0.125HCHO + 0.047CCHO + 0.21MEK + 0.023GLY + 0.742MGLY 

+ 0.1HC2H + 0.372RC2H 

6.175E-03 

172 ISPD + NO3 

0.799RO2R + 0.051RO2N + 0.15MCO3 + 0.572CO + 0.15HNO3 + 

0.227HCHO + 0.218RCHO + 0.008MGLY + 0.572RNO3 + 

0.278XN 

1.477E+02 

173 ISPD 1.233HO2 + 0.467CCO3 + 0.3RCO3 + 1.233CO + 0.3HCHO + 

0.467CCHO + 0.233MEK Photolysis 

174 PROD + OH 

0.379HO2 + 0.473RO2R + 0.07RO2N + 0.029CCO3 + 0.049RCO3 

+ 0.213HCHO + 0.084CCHO + 0.558RCHO + 0.115MEK + 

0.329PROD 

2.216E+04 

175 PROD 0.96RO2R + 0.04RO2N + 0.515R2O2 + 0.667CCO3 + 0.333RCO3 

+ 0.506HCHO + 0.246CCHO + 0.71RCHO Photolysis 

176 RNO3 + OH 

0.338NO2 + 0.113HO2 + 0.376RO2R + 0.173RO2N + 0.596R2O2 

+ 0.01HCHO + 0.439CCHO + 0.213RCHO + 0.006ACET + 

0.177MEK + 0.048PROD + 0.31RNO3 + 0.352XN 

1.152E+04 

177 RNO3 

NO2 + 0.341HO2 + 0.564RO2R + 0.095RO2N + 0.152R2O2 + 

0.134HCHO + 0.431CCHO + 0.147RCHO + 0.02ACET + 

0.243MEK + 0.435PROD 

Photolysis 

178 DCB1 + OH RCHO + RO2R + CO 7.386E+04 

179 DCB1 + O3 1.5HO2 + 0.5OH + 1.5CO + GLY 2.954E-03 

180 DCB2 + OH R2O2 + RCHO + CCO3 7.386E+04 

181 DCB2 RO2R + 0.5CCO3 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY Photolysis 

182 DCB3 + OH R2O2 + RCHO + CCO3 7.386E+04 

183 DCB3 RO2R + 0.5CCO3 + 0.5HO2 + CO + R2O2 + 0.5GLY + 0.5MGLY Photolysis 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-10 

Reaction 

Number Reactants Products 

k298

1

(ppm–n min–1) 

184 CH4 + OH CXO2 9.402E+00 

185 ETHE + OH RO2R + 1.61HCHO + 0.195CCHO 1.258E+04

186 ETHE + O3 0.12OH + 0.12HO2 + 0.5CO + HCHO + 0.37HC2H 2.346E-03 

187 ETHE + NO3 RO2R + RCHO + XN 3.022E-01 

188 ETHE + O 0.5HO2 + 0.2RO2R + 0.3CXO2 + 0.491CO + 0.191HCHO + 

0.25CCHO + 0.009GLY 1.077E+03 

189 ISOP + OH 0.907RO2R + 0.093RO2N + 0.079R2O2 + 0.624HCHO + 

0.23METH + 0.32MVK + 0.357ISPD 1.450E+05 

190 ISOP + O3 

0.266OH + 0.066RO2R + 0.008RO2N + 0.126R2O2 + 0.192MCO3 

+ 0.275CO + 0.592HCHO + 0.1PROD + 0.39METH + 0.16MVK + 

0.204HC2H + 0.15RC2H 

1.897E-02 

191 ISOP + NO3 0.187NO2 + 0.749RO2R + 0.064RO2N + 0.187R2O2 + 0.936ISPD 

+ 0.813RNO3 9.958E+02 

192 ISOP + O 0.01RO2N + 0.24R2O2 + 0.25CXO2 + 0.24MCO3 + 0.24HCHO + 

0.75PROD 5.318E+04 

193 TERP + OH 0.75RO2R + 0.25RO2N + 0.5R2O2 + 0.276HCHO + 0.474RCHO + 

0.276PROD 1.221E+05 

194 TERP + O3 

0.567OH + 0.033HO2 + 0.031RO2R + 0.18RO2N + 0.729R2O2 + 

0.123CCO3 + 0.201RCO3 + 0.157CO + 0.235HCHO + 

0.205RCHO + 0.13ACET + 0.276PROD + 0.001GLY + 0.031BACL 

+ 0.103HC2H + 0.189RC2H 

1.014E-01 

195 TERP + NO3 0.474NO2 + 0.276RO2R + 0.25RO2N + 0.75R2O2 + 0.474RCHO 

+ 0.276RNO3 + 0.25XN 9.714E+03 

196 TERP + O 0.147RCHO + 0.853PROD 4.830E+04 

197 ALK1 + OH RO2R + CCHO 3.752E+02 

198 ALK2 + OH 

0.246OH + 0.121HO2 + 0.612RO2R + 0.021RO2N + 0.16CO + 

0.039HCHO + 0.155RCHO + 0.417ACET + 0.248GLY + 

0.121HC2H 

1.533E+03 

199 ALK3 + OH 

0.695RO2R + 0.07RO2N + 0.559R2O2 + 0.236TBUO + 

0.026HCHO + 0.445CCHO + 0.122RCHO + 0.024ACET + 

0.332MEK 

3.515E+03 

200 ALK4 + OH 

0.835RO2R + 0.143RO2N + 0.936R2O2 + 0.011CXO2 + 

0.011CCO3 + 0.002CO + 0.024HCHO + 0.455CCHO + 

0.244RCHO + 0.452ACET + 0.11MEK + 0.125PROD 

6.486E+03 

201 ALK5 + OH 

0.653RO2R + 0.347RO2N + 0.948R2O2 + 0.026HCHO + 

0.099CCHO + 0.204RCHO + 0.072ACET + 0.089MEK + 

0.417PROD 

1.378E+04 

202 ARO1 + OH 

0.224HO2 + 0.765RO2R + 0.011RO2N + 0.055PROD + 0.118GLY 

+ 0.119MGLY + 0.017PHEN + 0.207CRES + 0.059BALD + 

0.491DCB1 + 0.108DCB2 + 0.051DCB3 

8.793E+03 

203 ARO2 + OH 

0.187HO2 + 0.804RO2R + 0.009RO2N + 0.097GLY + 0.287MGLY 

+ 0.087BACL + 0.187CRES + 0.05BALD + 0.561DCB1 + 

0.099DCB2 + 0.093DCB3 

3.900E+04 

204 OLE1 + OH 0.91RO2R + 0.09RO2N + 0.205R2O2 + 0.732HCHO + 

0.294CCHO + 0.497RCHO + 0.005ACET + 0.119PROD 4.770E+04 

205 OLE1 + O3 

0.155OH + 0.056HO2 + 0.022RO2R + 0.001RO2N + 0.076CXO2 + 

0.345CO + 0.5HCHO + 0.154CCHO + 0.363RCHO + 0.001ACET + 

0.215PROD + 0.185HC2H + 0.05CO2H + 0.119RC2H 

1.574E-02 

206 OLE1 + NO3 0.824RO2R + 0.176RO2N + 0.488R2O2 + 0.009CCHO + 

0.037RCHO + 0.024ACET + 0.511RNO3 + 0.489XN 1.862E+01 

207 OLE1 + O 0.45RCHO + 0.437MEK + 0.113PROD 7.208E+03 

208 OLE2 + OH 

0.918RO2R + 0.082RO2N + 0.001R2O2 + 0.244HCHO + 

0.732CCHO + 0.511RCHO + 0.127ACET + 0.072MEK + 

0.061BALD + 0.025METH + 0.025ISPD 

9.339E+04 

209 OLE2 + O3 

0.378OH + 0.003HO2 + 0.033RO2R + 0.002RO2N + 0.137R2O2 + 

0.197CXO2 + 0.137CCO3 + 0.006RCO3 + 0.265CO + 0.269HCHO 

+ 0.456CCHO + 0.305RCHO + 0.045ACET + 0.026MEK + 

0.006PROD + 0.042BALD + 0.026METH + 0.073HC2H + 

0.129CO2H + 0.303RC2H 

1.576E-01 

210 OLE2 + NO3 

0.391NO2 + 0.442RO2R + 0.136RO2N + 0.711R2O2 + 0.03CXO2 

+ 0.079HCHO + 0.507CCHO + 0.151RCHO + 0.102ACET + 

0.001MEK + 0.015BALD + 0.048MVK + 0.321RNO3 + 0.288XN 

1.072E+03 

211 OLE2 + O 0.013HO2 + 0.012RO2R + 0.001RO2N + 0.012CO + 0.069RCHO 

+ 0.659MEK + 0.259PROD + 0.012METH 3.087E+04 

212 ETOH + OH 0.05RO2R + 0.95HO2 + 0.081HCHO + 0.96CCHO 4.919E+03 

213 MTBE + OH 

0.743RO2R + 0.078RO2N + 0.381R2O2 + 0.162CXO2 + 

0.016TBUO + 0.234HCHO + 0.024ACET + 0.719MEK + 

0.007PROD 

4.343E+03 

214 MBUT + OH 0.935RO2R + 0.065RO2N + 0.311HCHO + 0.624CCHO + 

0.311RCHO + 0.624ACET 9.346E+04 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-11 

Reaction 

Number Reactants Products 

k298

1

(ppm–n min–1) 

215 MBUT + O3 0.099OH + 0.099HO2 + 0.365CO + 0.3HCHO + 0.7RCHO + 

0.015ACET + 0.259HC2H + 0.285RC2H 1.374E-02 

216 MBUT + NO3 0.935RO2R + 0.065RO2N + 0.935RCHO + 0.934ACET + RNO3 1.760E+01 

217 MBUT + O 0.45RCHO + 0.55MEK 2.969E+04 

Notes: 

1

 Rate constants are shown for 298 K and 1 atmosphere in units of ppm and minutes. See the CAMx chemistry 

parameters file for the temperature and pressure dependencies (Section 5).

Table 3-6. Species in the SAPRC99 mechanism (Mechanism 5). 

Species Name Description

NO2 Nitrogen dioxide 

NO Nitric oxide 

O3 Ozone 

O Oxygen atom in the O3(P) electronic state 

NO3 Nitrate radical 

N2O5 Dinitrogen pentoxide 

HNO3 Nitric acid 

O1D Oxygen atom in the O1(D) electronic state 

OH Hydroxyl radical 

HONO Nitrous acid 

HO2 Hydroperoxy radical 

CO Carbon monoxide 

HNO4 Peroxynitric acid 

HO2H Hydrogen peroxide 

SO2 Sulfur dioxide 

SULF Sulfuric acid (gaseous) 

CXO2 Methylperoxy radical 

HCHO Formaldehyde 

COOH Methyl hydroperoxide 

MEOH Methanol 

RO2R Organic peroxy radical converting NO to NO2 with HO2 production 

ROOH Organic hydroperoxide 

R2O2 Organic peroxy radical converting NO to NO2 

RO2N Organic peroxy radical converting NO to organic nitrate 

RNO3 Organic nitrate 

MEK Methylethyl ketone 

PROD Organic product 

CCO3 Acetylperoxy radical 

PAN Peroxyacetyl nitrate 

CO3H Peroxyacetic acid 

CO2H Acetic acid 

RCO3 Higher acylperoxy radical (based on propylperoxy) 

PAN2 Higher peroxyacetyl nitrate (based on peroxypropyl nitrate) 

CCHO Acetaldehyde 

RC3H Higher percarboxylic acid 

RC2H Higher carboxylic acid 

BZCO Peroxybenxoyl radical 

PBZN Peroxybenzoyl nitrate 

BZO Phenoxy radical 

MCO3 Peroxyacyl radical from methacrolein 

MPAN PAN compound from methacrolein 

TBUO Tertiary-butoxy radical 

ACET Acetone 

NPHE Nitrophenol 

PHEN Phenol 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-12 

Species Name Description

BZNO Nitrophenol reaction product 

XN Other nitrogen containing product 

HCO3 Adduct from HO2 plus formaldehyde 

HC2H Formic acid 

RCHO Higher aldehyde (based on propionaldehyde) 

GLY Glyoxal 

MGLY Methylglyoxal 

BACL Biacetyl 

CRES Cresol 

BALD Benzaldehyde 

METH Methacrolein 

MVK Methylvinyl ketone 

ISPD Isoprene product 

DCB1 Aromatic ring opening dicarbonyl product 

DCB2 Aromatic ring opening dicarbonyl product 

DCB3 Aromatic ring opening dicarbonyl product 

ETHE Ethene 

ISOP Isoprene 

TERP Terpene 

ALK1 Lumped alkane 1 

ALK2 Lumped alkane 2 

ALK3 Lumped alkane 3 

ALK4 Lumped alkane 4 

ALK5 Lumped alkane 5 

ARO1 Lumped aromatic 1 

ARO2 Lumped aromatic 2 

OLE1 Lumped olefin 1 

OLE2 Lumped olefin 2 

ETOH Ethanol 

MTBE Methyl tertiary butyl ether 

MBUT Methylbutenol 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-13 

Table 3-7. Properties of VOC species in the SAPRC99 mechanism: average carbon numbers, 

molecular weights, kOH values (ppm-1min-1) and maximum incremental reactivity (MIR) values 

(mole O3/mole VOC). 

Species Molecular Weight Carbon Number Average kOH

1 MIR

ALK1 46.81 1.88 3.75E+02 0.39 

ALK2 47.02 2.65 1.53E+03 0.80 

ALK3 57.72 2.92 3.51E+03 2.19 

ALK4 73.23 4.36 6.49E+03 3.11 

ALK5 106.97 6.42 1.38E+04 4.95 

ETHE 28.05 2 1.26E+04 5.44 

OLE1 61.68 3.99 4.77E+04 9.73 

OLE2 79.05 5.67 9.34E+04 10.98 

ISOP 68.12 5 1.45E+05 12.62 

TERP 136.24 10 1.22E+05 8.54 

ARO1 100.47 7.27 8.79E+03 6.72 

ARO2 113.93 8.58 3.90E+04 15.36 

HCHO 30.03 1 1.36E+04 6.49 

CCHO 44.05 2 2.34E+04 5.79 

RCHO 67.32 3.66 2.95E+04 9.45 

BALD 108.21 7.15 

ACET 58.08 3 

MEK 72.82 4.03 

PROD 106.44 6.48 

MEOH 32.04 1 1.35E+03 1.34 

GLY 58.04 2 

MGLY 72.06 3 

BACL 101.31 6.37 

PHEN 94.11 6 

CRES 115.38 7.52 

METH 56.06 3 

MVK 112.17 7 

ISPD 70.45 4.03 

ETOH 46.07 2 4.92E+03 1.62 

MTBE 88.15 5 4.34E+03 1.43 

MBUT 86.13 5 9.35E+04 9.12 

Notes: 

1

 kOH values are given to assist in assigning VOC species to SAPRC99 lumped species.
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-14 

Table 3-8. Reactions and rate constants for the CB05 mechanism (Mechanism 6). 

Reaction 

Number Reactants Products

k298

1

(ppm–n min–1) 

1 NO2 NO + O Photolysis 

2 O + O2 + M O3 + M 2.220E-05 

3 O3 + NO NO2 2.888E+01 

4 O + NO2 NO 1.513E+04 

5 O + NO2 NO3 4.852E+03 

6 O + NO NO2 2.459E+03 

7 NO2 + O3 NO3 4.765E-02 

8 O3 O Photolysis 

9 O3 O1D Photolysis 

10 O1D + M O + M 4.368E+04 

11 O1D + H2O 2 OH 3.250E+05 

12 O3 + OH HO2 1.071E+02 

13 O3 + HO2 OH 2.853E+00 

14 NO3 NO2 + O Photolysis 

15 NO3 NO Photolysis 

16 NO3 + NO 2 NO2 3.920E+04 

17 NO3 + NO2 NO + NO2 9.691E-01 

18 NO3 + NO2 N2O5 1.742E+03 

19 N2O5 + H2O 2 HNO3 3.693E-07 

20 N2O5 + H2O + H2O 2 HNO3 6.554E-11 

21 N2O5 NO3 + NO2 3.168E+00 

22 NO + NO + O2 2 NO2 7.114E-10 

23 NO + NO2 + H2O 2 HONO 1.820E-11 

24 NO + OH HONO 1.094E+04 

25 HONO NO + OH Photolysis 

26 OH + HONO NO2 7.184E+03 

27 HONO + HONO NO + NO2 1.477E-05 

28 NO2 + OH HNO3 1.545E+04 

29 OH + HNO3 NO3 2.280E+02 

30 HO2 + NO OH + NO2 1.196E+04 

31 HO2 + NO2 PNA 0.000E+00 

32 PNA HO2 + NO2 0.000E+00 

33 OH + PNA NO2 0.000E+00 

34 HO2 + HO2 H2O2 4.319E+03 

35 HO2 + HO2 + H2O H2O2 2.397E-01 

36 H2O2 2 OH Photolysis 

37 OH + H2O2 HO2 2.504E+03 

38 O1D + H2 OH + HO2 1.625E+05 

39 OH + H2 HO2 9.887E+00 

40 OH + O HO2 4.861E+04 

41 OH + OH O 2.773E+03 

42 OH + OH H2O2 9.298E+03 

43 OH + HO2 1.641E+05 

44 HO2 + O OH 8.670E+04 

45 H2O2 + O OH + HO2 2.517E+00 

46 NO3 + O NO2 1.477E+04 

47 NO3 + OH HO2 + NO2 3.250E+04 

48 NO3 + HO2 HNO3 5.170E+03 

49 NO3 + O3 NO2 1.477E-02 

50 NO3 + NO3 2 NO2 3.375E-01 

51 PNA 0.61 HO2 + 0.61 NO2 + 0.39 OH + 0.39 NO3 Photolysis 

52 HNO3 OH + NO2 Photolysis 

53 N2O5 NO2 + NO3 Photolysis 

54 XO2 + NO NO2 1.307E+04 

55 XO2N + NO NTR 1.307E+04 

56 XO2 + HO2 ROOH 1.160E+04 

57 XO2N + HO2 ROOH 1.160E+04 

58 XO2 + XO2 1.005E+02 

59 XO2N + XO2N 1.005E+02 

60 XO2 + XO2N 1.005E+02 

61 NTR + OH HNO3 + HO2 + 0.33 FORM + 0.33 ALD2 + 0.33 ALDX - 0.66 PAR 2.604E+02 

62 NTR NO2 + HO2 + 0.33 FORM + 0.33 ALD2 + 0.33 ALDX - 0.66 PAR Photolysis 

63 SO2 + OH SULF + HO2 1.313E+03 

64 ROOH + OH XO2 + 0.5 ALD2 + 0.5 ALDX 8.412E+03 

65 ROOH OH + HO2 + 0.5 ALD2 + 0.5 ALDX Photolysis 

66 OH + CO HO2 3.376E+02 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-15 

Reaction 

Number Reactants Products

k298

1

(ppm–n min–1) 

67 OH + CH4 MEO2 9.371E+00 

68 MEO2 + NO FORM + HO2 + NO2 1.132E+04 

69 MEO2 + HO2 MEPX 7.503E+03 

70 MEO2 + MEO2 1.37 FORM + 0.74 HO2 + 0.63 MEOH 5.194E+02 

71 MEPX + OH 0.7 MEO2 + 0.3 XO2 + 0.3 HO2 1.098E+04

72 MEPX FORM + HO2 + OH Photolysis 

73 MEOH + OH FORM + HO2 1.346E+03 

74 FORM + OH HO2 + CO 1.330E+04 

75 FORM 2 HO2 + CO Photolysis 

76 FORM CO Photolysis 

77 FORM + O OH + HO2 + CO 2.340E+02 

78 FORM + NO3 HNO3 + HO2 + CO 8.568E-01 

79 FORM + HO2 HCO3 1.167E+02 

80 HCO3 FORM + HO2 9.054E+03 

81 HCO3 + NO FACD + NO2 + HO2 8.272E+03 

82 HCO3 + HO2 MEPX 1.860E+04 

83 FACD + OH HO2 5.909E+02 

84 ALD2 + O C2O3 + OH 6.631E+02 

85 ALD2 + OH C2O3 2.047E+04 

86 ALD2 + NO3 C2O3 + HNO3 3.520E+00 

87 ALD2 MEO2 + CO + HO2 Photolysis 

88 C2O3 + NO MEO2 + NO2 2.961E+04 

89 C2O3 + NO2 PAN 1.548E+04 

90 PAN C2O3 + NO2 1.986E-02 

91 PAN C2O3 + NO2 Photolysis 

92 C2O3 + HO2 0.8 PACD + 0.2 AACD + 0.2 O3 2.082E+04 

93 C2O3 + MEO2 0.9 MEO2 + 0.9 HO2 + FORM + 0.1 AACD 1.582E+04 

94 C2O3 + XO2 0.9 MEO2 + 0.1 AACD 2.356E+04 

95 C2O3 + C2O3 2 MEO2 2.294E+04 

96 PACD + OH C2O3 1.156E+03 

97 PACD MEO2 + OH Photolysis 

98 AACD + OH MEO2 1.156E+03 

99 ALDX + O CXO3 + OH 1.036E+03 

100 ALDX + OH CXO3 2.932E+04 

101 ALDX + NO3 CXO3 + HNO3 9.602E+00 

102 ALDX MEO2 + CO + HO2 Photolysis 

103 CXO3 + NO ALD2 + NO2 + HO2 + XO2 3.098E+04 

104 CXO3 + NO2 PANX 1.548E+04 

105 PANX CXO3 + NO2 1.986E-02 

106 PANX CXO3 + NO2 Photolysis 

107 PANX + OH ALD2 + NO2 4.432E+02 

108 CXO3 + HO2 0.8 PACD + 0.2 AACD + 0.2 O3 2.082E+04 

109 CXO3 + MEO2 0.9 ALD2 + 0.9 XO2 + HO2 + 0.1 AACD + 0.1 FORM 1.582E+04 

110 CXO3 + XO2 0.9 ALD2 + 0.1 AACD 2.356E+04 

111 CXO3 + CXO3 2 ALD2 + 2 XO2 + 2 HO2 2.294E+04 

112 CXO3 + C2O3 MEO2 + XO2 + HO2 + ALD2 2.294E+04 

113 OH + ETHA 0.991 ALD2 + 0.991 XO2 + 0.009 XO2N + HO2 3.545E+02 

114 OH + ETOH HO2 + 0.9 ALD2 + 0.05 ALDX + 0.1 FORM + 0.1 XO2 4.711E+03 

115 PAR + OH 0.87 XO2 + 0.13 XO2N + 0.11 HO2 + 0.06 ALD2 - 0.11 PAR + 

0.76 ROR + 0.05 ALDX 1.196E+03 

116 ROR 0.96 XO2 + 0.6 ALD2 + 0.94 HO2 - 2.1 PAR + 0.04 XO2N + 0.02 

ROR + 0.5 ALDX 1.316E+05 

117 ROR HO2 9.600E+04 

118 ROR + NO2 NTR 2.216E+04 

119 O + OLE 0.2 ALD2 + 0.3 ALDX + 0.3 HO2 + 0.2 XO2 + 0.2 CO + 0.2 FORM 

+ 0.01 XO2N + 0.2 PAR + 0.1 OH 5.773E+03 

120 OH + OLE 0.8 FORM + 0.33 ALD2 + 0.62 ALDX + 0.8 XO2 + 0.95 HO2 - 0.7 

PAR 4.727E+04 

121 O3 + OLE 0.18 ALD2 + 0.74 FORM + 0.32 ALDX + 0.22 XO2 + 0.1 OH + 

0.33 CO + 0.44 HO2 - PAR 1.634E-02 

122 NO3 + OLE NO2 + FORM + 0.91 XO2 + 0.09 XO2N + 0.56 ALDX + 0.35 

ALD2 - PAR 7.356E-01 

123 O + ETH FORM + 1.7 HO2 + CO + 0.7 XO2 + 0.3 OH 1.077E+03 

124 OH + ETH XO2 + 1.56 FORM + 0.22 ALDX + HO2 1.204E+04 

125 O3 + ETH FORM + 0.63 CO + 0.13 HO2 + 0.13 OH + 0.37 FACD 2.605E-03 

126 NO3 + ETH NO2 + XO2 + 2 FORM 3.096E-01 

127 IOLE + O 1.24 ALD2 + 0.66 ALDX + 0.1 HO2 + 0.1 XO2 + 0.1 CO + 0.1 

PAR 3.398E+04 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-16 

Reaction 

Number Reactants Products

k298

1

(ppm–n min–1) 

128 IOLE + OH 1.3 ALD2 + 0.7 ALDX + HO2 + XO2 9.354E+04 

129 IOLE + O3 0.65 ALD2 + 0.35 ALDX + 0.25 FORM + 0.25 CO + 0.5 O + 0.5 

OH + 0.5 HO2 3.095E-01 

130 IOLE + NO3 1.18 ALD2 + 0.64 ALDX + HO2 + NO2 5.731E+02 

131 TOL + OH 0.44 HO2 + 0.08 XO2 + 0.36 CRES + 0.56 TO2 8.751E+03 

132 TO2 + NO 0.9 NO2 + 0.9 HO2 + 0.9 OPEN + 0.1 NTR 1.196E+04 

133 TO2 CRES + HO2 2.520E+02 

134 OH + CRES 0.4 CRO + 0.6 XO2 + 0.6 HO2 + 0.3 OPEN 6.056E+04 

135 CRES + NO3 CRO + HNO3 3.250E+04 

136 CRO + NO2 NTR 2.068E+04 

137 CRO + HO2 CRES 8.125E+03 

138 OPEN C2O3 + HO2 + CO Photolysis 

139 OPEN + OH XO2 + 2 CO + 2 HO2 + C2O3 + FORM 4.432E+04 

140 OPEN + O3 0.03 ALDX + 0.62 C2O3 + 0.7 FORM + 0.03 XO2 + 0.69 CO + 

0.08 OH + 0.76 HO2 + 0.2 MGLY 1.490E-02 

141 OH + XYL 0.7 HO2 + 0.5 XO2 + 0.2 CRES + 0.8 MGLY + 1.1 PAR + 0.3 TO2 3.706E+04 

142 OH + MGLY XO2 + C2O3 2.511E+04 

143 MGLY C2O3 + HO2 + CO Photolysis 

144 O + ISOP 0.75 ISPD + 0.5 FORM + 0.25 XO2 + 0.25 HO2 + 0.25 CXO3 + 

0.25 PAR 5.318E+04 

145 OH + ISOP 0.912 ISPD + 0.629 FORM + 0.991 XO2 + 0.912 HO2 + 0.088 

XO2N 1.473E+05 

146 O3 + ISOP 0.65 ISPD + 0.6 FORM + 0.2 XO2 + 0.066 HO2 + 0.266 OH + 0.2 

CXO3 + 0.15 ALDX + 0.35 PAR + 0.066 CO 1.898E-02 

147 NO3 + ISOP 0.2 ISPD + 0.8 NTR + XO2 + 0.8 HO2 + 0.2 NO2 + 0.8 ALDX + 

2.4 PAR 9.954E+02 

148 NO2 + ISOP 0.2 ISPD + 0.8 NTR + XO2 + 0.8 HO2 + 0.2 NO + 0.8 ALDX + 2.4 

PAR 2.216E-04 

149 OH + ISPD 

1.565 PAR + 0.167 FORM + 0.713 XO2 + 0.503 HO2 + 0.334 CO 

+ 0.168 MGLY + 0.252 ALD2 + 0.21 C2O3 + 0.25 CXO3 + 0.12 

ALDX 

4.963E+04 

150 O3 + ISPD 0.114 C2O3 + 0.15 FORM + 0.85 MGLY + 0.154 HO2 + 0.268 OH 

+ 0.064 XO2 + 0.02 ALD2 + 0.36 PAR + 0.225 CO 1.049E-02 

151 NO3 + ISPD 0.357 ALDX + 0.282 FORM + 1.282 PAR + 0.925 HO2 + 0.643 

CO + 0.85 NTR + 0.075 CXO3 + 0.075 XO2 + 0.15 HNO3 1.477E+00 

152 ISPD 0.333 CO + 0.067 ALD2 + 0.9 FORM + 0.832 PAR + 1.033 HO2 + 

0.7 XO2 + 0.967 C2O3 Photolysis 

153 TERP + O 0.15 ALDX + 5.12 PAR 5.318E+04 

154 TERP + OH 0.75 HO2 + 1.25 XO2 + 0.25 XO2N + 0.28 FORM + 1.66 PAR + 

0.47 ALDX 9.997E+04 

155 TERP + O3 0.57 OH + 0.07 HO2 + 0.76 XO2 + 0.18 XO2N + 0.24 FORM + 

0.001 CO + 7 PAR + 0.21 ALDX + 0.39 CXO3 1.128E-01 

156 TERP + NO3 0.47 NO2 + 0.28 HO2 + 1.03 XO2 + 0.25 XO2N + 0.47 ALDX + 

0.53 NTR 9.833E+03 

Notes: 

1

 Rate constants are shown for 298 K and 1 atmosphere in units of ppm and minutes. See the CAMx chemistry parameters 

file for the temperature and pressure dependencies (Section 5). 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-17 

Table 3-9. Species in the CB05 mechanism (Mechanism 6). 

Species Name Description

NO Nitric oxide 

NO2 Nitrogen dioxide 

O3 Ozone 

O Oxygen atom in the O3(P) electronic state 

O1D Oxygen atom in the O1(D) electronic state 

OH Hydroxyl radical 

HO2 Hydroperoxy radical 

H2O2 Hydrogen peroxide 

NO3 Nitrate radical 

N2O5 Dinitrogen pentoxide 

HONO Nitrous acid 

HNO3 Nitric acid 

PNA Peroxynitric acid (HNO4) 

CO Carbon monoxide 

FORM Formaldehyde 

ALD2 Acetaldehyde 

C2O3 Acetylperoxy radical 

HCO3 Adduct from HO2 plus formaldehyde 

PAN Peroxyacetyl nitrate 

ALDX Propionaldehyde and higher aldehydes 

CXO3 C3 and higher acylperoxy radicals 

PANX C3 and higher peroxyacyl nitrates 

XO2 NO to NO2 conversion from alkylperoxy (RO2) radical 

XO2N NO to organic nitrate conversion from alkylperoxy (RO2) radical 

NTR Organic nitrate (RNO3) 

ETOH Ethanol 

MEO2 Methylperoxy radical 

MEOH Methanol 

MEPX Methylhydroperoxide 

FACD Formic acid 

ETHA Ethane 

ROOH Higher organic peroxide 

AACD Acetic and higher carboxylic acids 

PACD Peroxyacetic and higher peroxycarboxylic acids

PAR Paraffin carbon bond (C-C) 

ROR Secondary alkoxy radical 

ETH Ethene 

OLE Terminal olefin carbon bond (R-C=C) 

IOLE Internal olefin carbon bond (R-C=C-R) 

ISOP Isoprene 

ISPD Isoprene product (lumped methacrolein, methyl vinyl ketone, etc.) 

TERP Terpene 

TOL Toluene and other monoalkyl aromatics 

XYL Xylene and other polyalkyl aromatics 

CRES Cresol and higher molecular weight phenols 

TO2 Toluene-hydroxyl radical adduct 

OPEN Aromatic ring opening product 

CRO Methylphenoxy radical 

MGLY Methylglyoxal and other aromatic products 

SO2 Sulfur dioxide 

SULF Sulfuric acid (gaseous) 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-18 

Table 3-10. Properties of VOC species in the CB05 mechanism: average carbon numbers, 

molecular weights, kOH values (ppm-1min-1) and maximum incremental reactivity (MIR) values 

(mole O3/mole VOC). 

Species Carbon Number Average kOH MIR

PAR 1 1.20E+03 0.319 

ETHA 2 3.54E+02 0.109 

MEOH 1 1.35E+03 0.361 

ETOH 2 4.71E+03 1.042 

ETH 2 1.20E+04 4.370 

OLE 2 4.73E+04 8.235 

IOLE 4 9.35E+04 13.109 

ISOP 5 1.47E+05 11.555 

TERP 10 1.00E+05 8.824 

FORM 1 1.33E+04 4.496 

ALD2 2 2.05E+04 4.454 

ALDX 2 2.93E+04 6.807 

TOL 7 8.75E+03 2.941 

XYL 8 3.71E+04 14.790 

Photolysis Rates 

The rates of atmospheric photolysis reactions depend upon solar irradiance and therefore are 

sensitive to the amount of solar radiation transmitted through the atmosphere as well as reflected 

from the earth’s surface (albedo). Photolysis rates are externally derived assuming clear sky 

conditions as a function of five parameters: solar zenith angle, altitude, total ozone column, 

surface albedo, and atmospheric turbidity. The rates are provided to CAMx as a large lookup 

table that spans the range of conditions for each of the five dimensions. This table may be 

developed using the CAMx photolysis rate pre-processor, which incorporates the Tropospheric 

Ultraviolet and Visible (TUV) radiative transfer model (Madronich; 1993, 2002). The CAMx 

version of TUV is modified to output photolysis rate information in a format directly compatible 

with CAMx for the CB4, SAPRC99, or CB05 chemical mechanism. See Sections 5 and 11 for 

more information on developing photolysis inputs. 

Effects of Clouds

Photochemical production of ozone is strongly influenced by the presence of clouds, which can 

both attenuate and enhance the actinic flux of ultraviolet (UV) and visible radiation responsible 

for photolysis. The specific radiative impact depends on many factors, including cloud height 

and depth, water content and phase (i.e., liquid droplets or ice crystals), and cloud form (i.e., 

widespread stratus or isolated cumulus). CAMx includes two optional schemes to adjust clearsky photolysis rates for the presence of clouds. The default approach uses a fast in-line version 

of TUV (Emery et al., 2010) to calculate photolysis adjustment profiles through each cloudy grid 

column. The original CAMx cloud adjustment approach has been retained as an option, which is 

based on the parameterization developed for the Regional Acid Deposition Model (RADM; 

Chang, et al., 1987). Both options are further described below. 

Both the default TUV and original RADM cloud adjustments utilize cloud optical depth fields 

provided by the CAMx cloud/rain file. Note that since CAMx v5.30, the definition of cloud 

optical depth in the cloud/rain file has changed to accommodate the TUV cloud adjustment 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-19 

scheme. Therefore, cloud/rain files specifically generated for CAMx v5.30 and later will not 

work correctly in earlier versions of CAMx.

The CAMx meteorological interface pre-processors generate cloud water and optical depth fields 

from the variable fields present in the raw meteorological output files. Cloud optical depth τ is 

calculated in each model grid cell according to the approach of DelGenio et al. (1996) and 

Voulgarkakis et al. (2009), which satisfactorily approximates the effects of random cloud overlap 

according to 

( ) 2/3

2

3

c

w d

F

r

L z

ρ

τ

∆

=

where L is cloud liquid water content (g/m3), ∆z is the cell depth containing cloud water, ρw is 

the density of liquid water (106 g/m3), and Fc is fractional cloud cover. The mean cloud droplet

radius rd is not dependent on water phase, and is assumed to be a typical tropospheric value of 

1.5×10-5 m for liquid cloud water. 

In-Line TUV Adjustment 

The default cloud adjustment employs a streamlined version of TUV for the single purpose of 

calculating cloud adjustment factors to scale predetermined clear-sky photolysis rates. The inline TUV is run twice for each cloudy grid column: once for clear conditions and again with 

clouds to derive a vertical profile of the cloudy:clear actinic flux ratio. This ratio is then applied 

as a multiplicative factor to the clear-sky value in each grid cell. This approach maintains 

accuracy in the calculation of clear-sky photolysis rates, while allowing clouds to be directly 

involved in radiative transfer calculations through each grid column. 

The in-line TUV solver calculates and passes back photolysis adjustment factor profiles through 

each grid column containing at least one cloudy layer. TUV is not called for completely clear 

grid columns, and the adjustment profile in such cases is set to a uniform value of 1. TUV 

includes a calculation of integrated atmospheric density above the top CAMx layer, based on the 

U.S. standard atmosphere, so that atmospheric attenuation of the UV stream is properly 

calculated entering the model top. TUV assumes constant Mie scattering parameters for clouds: 

a single scattering albedo of 0.99, and an asymmetry factor of 0.85. 

Other aspects of the in-line TUV model were substantially streamlined to minimize runtimes. 

First, radiative calculations are performed for only a single representative wavelength (350 nm). 

Second, since absorption by gases occurs in rather narrow UV bands relative to the broad-band 

influence of clouds, the absorption from oxygen, ozone, nitrogen dioxide and sulfur dioxide were 

removed. Third, the extraterrestrial flux was not needed as it cancels out in the calculation of the 

cloudy:clear ratio. Fourth, the plane-parallel version of the delta-Eddington approach was used 

in lieu of the more complex and expensive pseudo-spherical geometry. Finally, TUV is provided 

a zero profile of aerosol optical depth, but this capability is maintained as a place-holder for 

future updates. Currently haze is included in the clear-sky calculations performed in the fullscience TUV pre-processor. Preliminary tests against the full-science TUV showed that the 

streamlined version resulted in less than 1% differences in actinic flux ratio (Emery et al., 2010). 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-20 

RADM Adjustment 

The original RADM adjustment to clear-sky photolysis rates Jclear is given by 

Ac is the vertical cloud attenuation factor, which is calculated separately for above clouds and 

within/below clouds according to: 

 

( )

A t within below cloud layer

A t above cloud layer

c r

c r

6.1 cos , /

1 1 cos ,

φ

φ

=

= + −

where φ is solar zenith angle (≤ 60°) and tr is the energy transmission coefficient for normally 

incident light. For zenith angles greater than 60°, values for Ac at φ = 60° are used. The 

expression for the energy transmission coefficient is derived from delta-Eddington theory and is 

given by 

where f is the scattering phase function asymmetry factor, given by Chang et al. (1987) as 0.86, 

and Τ is total vertically integrated cloud optical depth ( =∑τ[z] ) above the current grid cell to the 

top of the troposphere. For optically thin clouds (Τ< 5), no adjustment is made to the photolysis 

rates. 

Effects of Surface Albedo including Snow Cover

Photolysis rates also depend the amount of solar radiation reflected from the earth’s surface 

(albedo). The CAMx albedo/haze/ozone column (AHO) input file specifies the UV albedo for 

each grid cell. The UV albedo generally is calculated from land cover data using characteristic 

values by land cover type as shown in Tables 5-5 and 5-6. This approach results in UV albedos 

that fall in the range 0.04 to 0.08 and are constant in time, because the land cover data are 

constant in time. Analyses of reflected UV radiation recorded in satellite data (Herman and 

Celarier, 1997) report similar UV albedo values in the range 0.02-0.08 for surfaces not covered 

by snow. 

CAMx can optionally treat the impact of snow cover on photolysis rates (and deposition). Snow 

is much more reflective than other types of surfaces and so snow cover will enhance the rates of 

photolysis reactions. Since most photolysis reactions depend upon ultra-violet radiation it is 

important to characterize the effect of snow cover on UV albedo. Measurements of the UV 

albedo for Antarctic snow report values of 0.96 to 0.98 over a wide range of snow grain sizes and 

solar zenith angles. However, these high values should be considered an upper limit to the 

reflectivity of snow-covered surfaces at the scale of grid cells because snow may not cover all 

surface features (e.g., in forests and urban areas) and because the snow may be dirty. For areas 

with snow cover, satellite climatology shows surface albedos spanning a wide range of values 

from 0.2 to nearly 1.0. Potential reasons for this wide range of values include coarse resolution 

(1° latitude by 1.25° longitude) such that snow-covered and snow-free surfaces are combined, 

( ) f

e

t

r

+ Τ −

−

=

−Τ

4 3 1

5

[ ( )] c c clear J = 1 + F A −1 J
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-21 

differences between rough and smooth land cover types (e.g., forest vs. open range land), and 

differences between clean and dirty snow. 

The CAMx AHO and photolysis rate input files classify grid cells to one of five albedo ranges. If 

snow cover data are provided in the AHO file, CAMx assigns the highest albedo value included 

in the AHO and photolysis rate input files for snow covered grid cells. Therefore, when 

providing snow-cover data to CAMx, the fifth (highest) albedo range should be assigned a value 

representative of snow and the lower four albedo ranges should represent surfaces without snowcover. We recommend a UV albedo of 0.5 for snow covered surfaces because this is in the 

middle of the range reported by Herman and Celarier (1997) and because grid cells should be 

defined as snow-covered if the fractional cover is greater than 0.5. 

Gas-Phase Chemistry Solvers 

Solving the time evolution of gas-phase chemistry requires numerically integrating a set of 

ordinary differential equations (ODEs) and is among the most computationally expensive 

operations performed in a photochemical grid model. One reason for this is that the ODEs 

describing tropospheric chemistry are “stiff” – meaning that the chemical species involved have 

widely varying production and/or decay times. The computational efficiency of the gas-phase 

chemistry solver strongly influences the overall efficiency of a grid model. CAMx includes 

three chemistry solvers that offer differing trade-offs between accuracy and efficiency. 

The most accurate solution methods available for stiff ODEs are “Gear” type implicit solvers 

(Gear, 1971) such as LSODE (Hindmarsh, 1983). Gear solvers are stable when applied to “stiff” 

problems, such as gas-phase chemistry, but are generally too slow for routine use in grid model 

applications. Sun et al. (1994) developed an implicit-explicit hybrid (IEH) method based on 

LSODE that is accurate and much faster than LSODE. Hertel et al. (1993) developed an 

implementation of the Euler Backward Iterative (EBI) method that is very efficient and also 

accurate because it utilizes explicit algebraic formulae to solve several important groups of 

species (HOx, NOx, etc.) Hertel’s EBI solver is the most efficient solver available in CAMx and 

has replaced the CMC solver used in CAMx versions prior to 5.10. 

LSODE

CAMx includes the double precision version of the Livermore Solver for Ordinary Differential 

Equations (LSODE; Hindmarsh, 1983) distributed by the Netlib repository of numerical 

algorithms (http://www.netlib.org/). LSODE is too slow for everyday use but valuable as a 

reference method within CAMx. LSODE is based on Gear’s method with numerical refinements 

to improve efficiency and ease of use (Radhakrishnan and Hindmarsh, 1993). Gear methods 

(Gear, 1971) are implicit and employ backwards-differentiation formulae to step forward in time 

by taking multiple steps. The converged solutions at each step are saved in a history matrix and 

used to predict the next solution. Thus, LSODE must initially take short time steps to build the 

history matrix and may then take progressively longer steps. LSODE is most efficient for long 

integration times (and inefficient for short integration times) and therefore least burdensome for 

coarse grid model applications that have relatively long coupling times between gas-phase 

chemistry and other processes, e.g., advection. 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-22 

User-supplied information required by LSODE is essentially the error control parameters and the 

functions defining the system of ODEs, f(y,t), where y is the vector of species concentrations and 

t is time. Supplying a subroutine to evaluate the time derivatives of species concentrations (f = 

dy/dt) is mandatory. Supplying a function to evaluate the Jacobian matrix (J = df/dy) is optional 

since, if not supplied, LSODE can derive a numerical Jacobian by finite difference between 

repeated evaluations of f. Supplying an algebraic Jacobian ensures accuracy, although a 

numerical Jacobian may be equally accurate if adequate precision (e.g., double precision) is 

employed. Supplying an algebraic Jacobian is more efficient when J is sparse, but for condensed 

mechanisms such as CB05 J is not sparse and the numerical Jacobian method is faster. CAMx 

uses the numerical Jacobian method with a relative error tolerance of 10-7 and an absolute error 

tolerance of 10-10. 

IEH Solver

A stiffly-stable solver, such as LSODE, is only needed to solve the chemical species that have 

time constants comparable to or shorter than the integration time and which interact strongly 

with each other. Slowly changing species may be treated as constant for the duration of an 

LSODE solution and then solved outside LSODE using a simple explicit method. Sun et al. 

(1993) called this approach an implicit-explicit hybrid method and Chock et al. (1994) showed 

that IEH methods offer useful computational efficiency and accuracy. The IEH method is faster 

than LSODE because fewer species are solved using the expensive Gear method, but less 

accurate than LSODE because of inaccuracy in the explicit method. The speed and accuracy of 

an IEH method is influenced by the designation of “fast” species to be solved implicitly and 

“slow” species to be solved explicitly. 

The CAMx IEH solver designates species as fast, slow or steady-state (this designation is 

performed when mechanisms are implemented for the IEH solver and can’t be changed by the 

user). Steady-state species are solved by assuming that they are in a quasi-stationary state (dy/dt 

= 0) with respect to other species and, therefore, that y = P/L, where P and L are respectively the 

production and loss rates for species y. Oxygen atoms, O(1D) and O(3

P), are the most rapidly 

changing species in tropospheric chemistry mechanisms. Solving O-atoms with a steady-state 

assumption reduces stiffness and permits the single-precision version of LSODE to be used by 

the IEH solver. To ensure IEH solver accuracy with single precision, the Jacobian matrix is 

supplied algebraically to LSODE (see discussion, above). The relative error tolerance for 

LSODE within IEH is 5 x10-5 and the absolute error tolerance is 10-7. The O-atom 

concentrations are recalculated every time the derivatives (f) or Jacobian (J) are evaluated for 

LSODE. Slow species concentrations are calculated using rates evaluated at the middle of each 

IEH step. The IEH step size is limited to a few minutes for the slow species integration and 

multiple IEH steps are taken sequentially if needed. 

EBI Solver

The backward Euler method solves concentrations (y) as y(t+h) = y(t) + hf, where f is the time 

derivative of species concentrations (f= dy/dt) evaluated at t+h. The method must be iterated to 

convergence in y(t+h) because species concentrations are interdependent. The basic EBI method 

is not efficient for stiff problems such as tropospheric chemistry because convergence is slow 

and the step size (h) must be short. Hertel et al. (1993) greatly improved the efficiency and 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-23 

accuracy of the method by developing analytical solutions to the EBI equation for groups of 

species that are strongly coupled (e.g. HOx and NOx/O3). Time steps of up to 3 minutes are 

taken by the Hertel EBI solver in CAMx.

Chemical Mechanism Compiler 

Each of the CAMx chemistry solvers relies upon equations that define the species time 

derivatives (f = dy/dt) and, in some cases, the Jacobian matrix (J = df/dy) for each chemical 

mechanism. The preprocessor portion of the CAMx chemical mechanism compiler (CMC) reads 

a listing of the mechanism reactions and generates the Fortran statements for the rate equations 

and Jacobian matrix. This approach avoids potential errors resulting from coding equations by 

hand. 

For the IEH and EBI chemistry solvers, the CMC preprocessor requires user input that 

determines how each species is solved. The CMC preprocessor could be used to generate many 

different solver implementations for a given mechanism, only some of which will be robust. The 

CMC preprocessor is not distributed with CAMx to avoid potential problems with User’s 

generating invalid chemistry solvers that produce unreliable results. 

3.2 AEROSOL CHEMISTRY

Aerosol chemistry processes are currently linked to the CB4 (Mechanism 4), CB05 (Mechanism 

6), and SAPRC99 (Mechanism 5) gas-phase chemistry mechanisms (Table 3-1). CAMx 

provides two options for treating aerosol size distributions: the CF scheme and CMU scheme. 

The CF scheme divides the size distribution into two static modes (coarse and fine). Primary 

species are modeled as fine and/or coarse particles, while all secondary species are modeled as 

fine particles only. The CMU scheme employs a sectional approach that dynamically models the 

size evolution of each aerosol constituent across a number of fixed size sections. The user 

defines the number of size sections and their size ranges in the chemistry parameters file (Section 

5). Aerosol water is explicitly treated in both CF and CMU options; it affects aerosol size and 

density. The gas-phase chemistry of Mechanisms 4, 5 and 6 may be run alone (no aerosols) by 

simply setting the aerosol option keyword to “NONE” (rather than “CF” or “CMU”) and 

omitting the entire list of aerosol species in the chemistry parameters file (see Section 5). 

Additional Gas-Phase Species 

When either the CF or CMU aerosol option is selected, the following gas-phase species are 

added to model gas-aerosol interactions: 

 

1) Ammonia (NH3) as a precursor for inorganic aerosol.

2) Gaseous sulfuric acid (SULF) as a precursor to sulfate aerosol. 

3) Hydrogen chloride (HCL) as a product of acidified sea salt aerosol and aerosol precursor. 

4) Condensable organic gases (CG1-CG7) as precursors to secondary organic aerosol (SOA) 

formation. 

5) Organic gases that form CG species via oxidation reactions, namely toluene (TOLA), 

xylene (XYLA), monoterpenes (TRP), sesquiterpenes (SQT) and isoprene (ISP). 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-24 

SOA Precursors 

Secondary organic aerosol (SOA) species exist in equilibrium with condensable gasses (CG) that 

can be produced by VOC oxidation: 

 VOC + oxidant → CG ↔ SOA 

CG formation from VOC oxidation reactions (Table 3-11) is handled within the SOA module 

rather than the main gas-phase chemistry, as described below. This approach has the following 

advantages: (1) separates the VOC precursors and lumping schemes for oxidant chemistry and 

SOA formation, e.g., for aromatics, different lumping schemes may be appropriate for oxidant 

and SOA formation: (2) allows the same SOA mechanism to be used with different oxidant 

mechanisms: (3) allows inclusion of SOA precursors without explicitly defining oxidant 

reactions, e.g., sesquiterpenes are explicit in the SOA module but their oxidant formation may be 

represented by surrogate species. 

Table 3-11. SOA precursor reactions included in CAMx. 

Precursor Reaction CG Products1k298

2

(ppm–1 min–1)

Anthropogenic

 Toluenes TOLA + OH 0.044 CG1 + 0.085 CG2 8.75E+03

 Xylenes XYLA + OH 0.027 CG1 + 0.118 CG2 3.71E+04 

Biogenic

 Isoprene ISP + O none 5.32E+04 

ISP + OH 0.015 CG3 + 0.12 CG4 1.47E+05 

ISP + O3 none 1.90E-02 

ISP + NO3 none 9.96E+02 

 Terpenes TRP + O 0.065 CG5 + 0.29 CG6 4.12E+04 

TRP + OH 0.065 CG5 + 0.29 CG6 7.76E+04 

TRP + O3 0.065 CG5 + 0.29 CG6 1.33E-01 

TRP + NO3 0.065 CG5 + 0.29 CG6 9.18E+03 

 Sesquiterpenes SQT + OH 0.85 CG7 2.91E+05 

SQT + O3 0.85 CG7 1.71E+01 

SQT + NO3 0.85 CG7 2.81E+04 

Notes: 

1 Yield values are in ppm/ppm. 

2

 Rate constants are shown for 298 K and 1 atmosphere in ppm-1 min-1. 

Emissions of SOA precursors must be provided separately from the emissions of oxidant 

precursors, e.g., isoprene emissions must be speciated both as ISOP for oxidant chemistry and 

ISP for SOA chemistry. This “double counting” of emissions is correct because the species (e.g., 

ISOP and ISP) serve different purposes. Ideally, emissions processors will develop VOC 

speciation schemes that suit both oxidant and SOA modeling. In the absence of more refined 

information, emissions of SOA precursors may be set equal to emissions of oxidant precursors as 

follows: ISP = ISOP; TRP = TERP; TOLA = TOL or ARO1; XYLA = XYL or ARO2. 

Some emitted VOCs are semi-volatile (SVOCs) and can condense directly to SOA, e.g., biogenic 

emissions of oxygenated VOCs. SOA formation from SVOC emissions may be accounted for 

by including the SVOC in the CAMx emissions as one of the CGs listed in Table 3-12. Choose a 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-25 

CG that has appropriate volatility properties, and account for any molecular weight difference 

between the SVOC and surrogate CG (moles CG emitted = moles SVOC x MWSVOC/MWCG). 

Table 3-12. Properties of CG/SOA pairs. 

Species

Molecular 

Weight 

(g mole-1)

Saturation 

Concentration 

(μg m-3 at 298 K)

Heat of 

vaporization 

(kJ mole-1)

CG1/SOA1 150 7.82 66.8 

CG2/SOA2 150 227 66.8 

CG3/SOA3 130 0.726 42 

CG4/SOA4 130 136 42 

CG5/SOA5 180 3.92 75.5 

CG6/SOA6 180 55.8 75.5 

CG7/SOA7 210 0 – 

SOPA 220 – – 

SOPB 220 – – 

Aerosol Processes 

Aerosol processes are modeled using either the CF or CMU algorithm, depending on how the 

aerosol option keyword is set in the chemistry parameters file. The CF and CMU aerosol 

chemistry algorithms both perform the following three processes: 

1) Aqueous sulfate and nitrate formation in resolved cloud water using the RADM aqueous 

chemistry algorithm (Chang et al., 1987). 

2) Partitioning of condensable organic gases (CG1-CG7) to secondary organic aerosols 

(SOA1-SOA7) to form a condensed “organic solution phase” using a semi-volatile, 

equilibrium scheme called SOAP (Strader et al., 1999). 

3) Partitioning of inorganic aerosol constituents (sulfate, nitrate, ammonium, sodium, and 

chloride) between the gas and aerosol phases using the ISORROPIA thermodynamic 

module (Nenes et al., 1998, 1999). 

4) Uptake of nitric acid by calcium in soil dust particles is calculated external to 

ISORROPIA. 

The aqueous chemistry does not treat sub-grid scale clouds; clouds are assumed to either occupy 

the entirety of a grid cell volume, or be completely absent from it. Cloudy grid cells are 

determined by cloud liquid water contents above a threshold of 0.05 g/m3

 as defined by input 

gridded cloud water fields. Aqueous chemistry is calculated for each cloud grid cell at each 

model time step. The SOAP and ISORRIOPA equilibrium algorithms are called on a unique 

aerosol “coupling” time step that is defined within the chemistry parameters file. By default, the 

aerosol coupling time step is 15 minutes, and this is used for all grids in a simulation regardless 

of the grid-specific driving time step. 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-26 

The CAMx SOA module consists of two parts: gas-phase oxidation chemistry that forms 

condensable gases (CGs), and equilibrium partitioning between gas and aerosol phases for each 

CG/SOA pair. Table 3-11 lists the oxidation reactions and CG products. The CG yields are 

expressed as ppm of CG formed per ppm of VOC reacted so that CG concentrations follow the 

CAMx convention for gases and are in ppm. The physical properties of CG/SOA pairs are 

shown in Table 3-12. The SOAs formed from the CGs are in units of μg/m3 as are all other 

aerosol species. 

Studies are starting to elucidate mechanisms for polymerization reactions in organic aerosol 

phases. Polymerization increases the molecular weight of the condensed aerosol and reduces the 

volatility. Detailed descriptions of polymerization will likely depend upon the chemical 

composition of the organic and inorganic aerosol phases (e.g., aerosol acidity). Based on limited 

available data we assumed that the SOA polymerized to a non-volatile form (i.e., moved 

permanently to the aerosol phase) with a lifetime of about 1 day (Kalberer et al., 2004). 

Polymerization slowly forms organic aerosol polymers called SOPA (anthropogenic) and SOPB 

(biogenic). 

Uptake of nitric acid on mineral dust particles is one of the pathways of particle nitrate 

formation. For example, calcium in soil dust particles reacts with nitric acid to form calcium 

nitrate. Based on IMPROVE observations, we estimate 3.5% mass fraction of calcium in fine 

dust particles (FCRS), which is assumed to be fully neutralized by nitrate. Since the current 

ISORROPIA implementation in CAMx does not consider mineral cations other than sodium, 

nitrate uptake by calcium in soil dust is calculated external to ISORROPIA. CAMx outputs total 

particulate nitrate, i.e., the sum of particle nitrate determined by ISORROPIA and calcium 

nitrate. 

Table 3-13 shows the aerosol species that can be included with the CF scheme. Some species 

must be present for this scheme (“Mandatory Species”) to establish linkages between gas and 

aerosol phase chemistry. Other species are optional (meaning that they can be removed from the 

chemistry parameters input file), except that sodium and chloride must always be present or 

absent together (i.e., one cannot be present without the other). If sodium and chloride are not 

modeled then default background values are used within CAMx. 

In the CMU scheme, CRST is used to identify all primary inert material, which replaces the CF 

species of FPRM, FCRS, CPRM, and CCRS in Table 3-13. Individual aerosol species names 

specify both the constituent and the size section using a set naming convention, e.g., PSO4_1 

refers to particle sulfate in the section 1. The CMU scheme requires that the complete list of all 

aerosol species be present in the chemistry parameters file (i.e., no aerosol species are optional). 

 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-27 

Table 3-13. List of PM species for the CAMx CF aerosol option. 

Internal Label Name Mandatory Species

PSO4 Sulfate X 

PNO3 Particulate Nitrate X 

PNH4 Particulate Ammonium X 

PH2O Aerosol Water Content X 

SOA1-2 Anthropogenic SOA (see Table 3-12) X 

SOA3-7 Biogenic SOA (see Table 3-12) X 

SOPA Polymerized anthropogenic SOA X 

SOPB Polymerized biogenic SOA X 

NA Sodium 

PCL Particulate Chloride 

POA Primary Organic Aerosol 

PEC Primary Elemental Carbon 

FPRM Fine Other Primary (diameter≤2.5 μm) 

FCRS Fine Crustal (diameter≤2.5 μm) 

CPRM Coarse Other Primary 

CCRS Coarse Crustal 

Aerosol Sectional Approach 

Unlike the CF scheme, where each species is represented by a single particle size, the CMU 

scheme institutes an additional step to distribute the bulk aerosol concentrations from the 

aqueous/aerosol chemistry modules into each size bin. For inorganic aerosol species, 

ISORROPIA yields the bulk aerosol composition at equilibrium. The aerosol size distribution is 

then determined by distributing the change in aerosol mass during the time step into each size bin 

using a weighting factor (Pandis et al., 1993). The fraction fi,k of total flux of species i between 

gas and aerosol phases that condenses onto or evaporates from an aerosol size section k is given 

by, 

( ) ( )

∑ ( ) − ( ) +

− +

=

k

k

eq

k k i i i

k

eq

k k i i i

i k

N d D c c

N d D c c

f

2 1

2 1

,

π β

π β

, 

where Nk and dk are the number and mean diameter of particles in the section k, respectively, Di

, 

ci, and ci

eq are the diffusivity, bulk gas-phase concentration, and equilibrium concentration at the 

particle surface of species i, respectively, βk=2λ/adk, λ is the mean free path of air, and a is the 

accommodation coefficient (Pandis et al., 1993). Assuming that ci

eq is independent of particle 

size, the fraction is reduced to, 

( )

( ) k

k

k k k

k k k

i k

f

N d

N d

f =

+

+

=

∑ 1

1

,

β

β

. 

The above weighting factor then depends on the surface area only. 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-28 

For organic aerosols, SOAP calculates the bulk equilibrium composition. Using the pseudo-ideal 

solution assumption (Strader et al., 1999), the effect of chemical composition of the particle can 

be incorporated into the weighting factor: 

( ) ( )

∑ ( ) − ( ) +

− +

=

k

k k i i k i k

k k i i k i k

i k

N d c x c

N d c x c

f

1

1

*

,

*

,

,

β

β

. 

where xi,k is the mole fraction of species i in the section k and ci

*

 is the effective saturation 

concentration of species i. Since the fraction determines the composition of each size section, 

the above equation should be solved iteratively at each time step. Assuming that the chemical 

composition changes slowly during a time step, however, the mole fractions can be 

approximated with those from the previous time step (Koo et al., 2003). 

For cloud/fog droplets, RADM is used to calculate sulfate and nitrate formation in the bulk 

aqueous phase. The added mass is then distributed into each size bin by a weighting factor 

which is based on the size-resolved aqueous chemistry model simulation results (Fahey and 

Pandis, 2001). 

In addition, mathematical descriptions of nucleation and coagulation have been added to the 

CMU scheme. The nucleation model employs the nucleation rate parameterization proposed by 

Russell et al. (1994). The model assumes a linear sulfuric acid vapor concentration variation for 

the given time step of the aerosol module based on the initially available sulfuric acid and 

assigns all the nucleated mass to the first section of the distribution. The coagulation rate of the 

aerosol particles is modeled according to Seinfeld and Pandis (1998). A high-resolution 

distribution is used for the coagulation calculations by subdividing each section of the original 

distribution into 3 additional sections.

3.3 MERCURY CHEMISTRY 

Mercury exists in the atmosphere as elemental mercury, Hg(0), and oxidized mercury, Hg(II) 

(Schroeder and Munthe, 1998). Hg(II) can be inorganic (e.g., mercuric chloride, HgCl2) or 

organic (e.g., methyl mercury, MeHg). It can also be present as particulate mercury (e.g., 

mercuric oxide, HgO, or mercury sulfide, HgS). In the global atmosphere, Hg(0) is the dominant 

form. Hg(II) typically constitutes a few percent of total mercury and is predominantly in the gas 

phase. MeHg concentrations in the atmosphere are negligible, about a factor of 10 to 30 lower 

than Hg(II) concentrations, based on analysis of precipitation samples conducted by Frontier 

Geosciences, Inc. (e.g., Seigneur et al., 1998). However, Hg(II) becomes methylated in water 

bodies, where it can bioaccumulate in the food chain. Hg(0) is sparingly soluble and is not 

removed significantly by wet deposition; its dry deposition velocity is also believed to be low. 

As a result, Hg(0) has a long atmospheric lifetime, on the order of several months, that is 

governed by its oxidation to Hg(II). On the other hand, Hg(II) is quite soluble; it is consequently 

removed rapidly by wet and dry deposition processes. Particulate mercury, Hg(p), is mostly 

present in the fine fraction of particulate matter (PM2.5), although some Hg(p) may be present in 

coarse PM (e.g., Landis and Keeler, 2002). 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-29 

Known transformations among inorganic mercury species include the gas-phase oxidation of 

Hg(0) to Hg(II), the aqueous-phase oxidation of Hg(0) to Hg(II), the aqueous-phase reduction of 

Hg(II) to Hg(0), various aqueous-phase equilibria of Hg(II) species and the aqueous-phase 

adsorption of Hg(II) to PM. The inorganic mercury chemistry modules implemented in CAMx 

are based on our current knowledge of these transformations. However, it should be noted that 

our knowledge of mercury chemistry continues to evolve as new laboratory data become 

available, and the Hg chemical kinetic mechanisms in CAMx and other models that treat the 

atmospheric fate of mercury will need to be revised accordingly. 

Below, we provide additional details on the gas- and aqueous-phase mercury chemistry 

mechanisms implemented in CAMx, and the implementation approach. 

Gas-Phase Chemistry 

The gas-phase transformations include the oxidation of Hg(0) to Hg(II) by ozone (O3) (Hall, 

1995), hydrogen chloride (HCl) (Hall and Bloom, 1993), hydrogen peroxide (H2O2) (Tokos et 

al., 1998), molecular chlorine (Cl2) (Ariya et al., 2002), and hydroxyl radicals (OH) (Sommar et 

al., 2001): 

 

Hg(0) (g) + O3 (g)→ Hg(II) (g), k = 3 x 10-20 cm

3

 molec-1s

-1

 

Hg(0) (g) + HCl (g)→ HgCl2 (g), k = 1 x 10-19 cm

3

 molec-1s

-1

 

Hg(0) (g) + H2O2 (g)→ Hg(OH)2 (g), k = 8.5 x 10-19 cm

3

 molec-1s

-1

 

Hg(0) (g) + Cl2 (g)→ HgCl2 (g), k = 2.6 x 10-18 cm

3

 molec-1s

-1

 

Hg(0) (g) + OH (g) → Hg(OH)2 (g), k = 8 x 10-14 cm

3

 molec-1s

-1

The reaction rate constants provided above are for temperatures in the range of 20 to 25oC; no 

temperature dependence information is available. 

Aqueous-Phase Chemistry 

The aqueous-phase chemistry includes the reduction of Hg(II) to Hg(0) via reaction with 

hydroperoxy radicals (HO2) and by the formation of the sulfite complexes (at low HCl 

concentrations), HgSO3 and Hg(SO3)2

2-, as well as the oxidation of Hg(0) to Hg(II) by dissolved 

O3, OH, and Cl2. Adsorption of Hg(II) species on atmospheric particulate matter (PM) is 

simulated using an adsorption coefficient (K = 34 L g-1) recommended by Seigneur et al. (1998). 

The relevant reactions are listed below. Note that the gas-liquid equilibria and ionic equilibria of 

the non-mercury species (e.g., SO2, O3) involved in the mercury aqueous-phase chemistry are not 

shown here, since they are identical to those in the other CAMx mechanisms. 

Gas-liquid Equilibria

 Hg(0) (g) ⇔ Hg(0) (aq), K = 0.11 M atm-1 (Sanemasa, 1975; Clever et al., 1985) 

 

HgCl2 (g) ⇔ HgCl2 (aq), K = 1.4 x 106 M atm-1 (Lindqvist and Rodhe, 1985) 

 

Hg(OH)2 (g) ⇔ Hg(OH)2 (aq), K = 1.2 x 104 M atm-1 (Lindqvist and Rodhe, 1985) 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-30 

The Henry's Law constants listed above are for temperatures in the range of 20 to 25oC. 

Temperature dependence information is available for the Hg(0) Henry's Law constant but the 

validity of this information for temperatures below 0oC is not established. 

Aqueous-phase Equilibria

 

HgCl2 (aq) ⇔ Hg2+ + 2Cl-, K = 10-14 M2 (Sillen and Martel, 1964) 

 

Hg(OH)2 (aq) ⇔ Hg2+ + 2OH-, K = 10-22 M2 (Sillen and Martel, 1964) 

 

Hg2+ + SO3

2-

⇔ HgSO3, K = 2.1 x 1013 M-1 (van Loon et al., 2001) 

 

HgSO3 + SO3

2-

⇔ Hg(SO3)2

2-, K = 1 x 1010 M-1 (van Loon et al., 2001) 

Adsorption of Hg(II) on PM

 Hg(II) (aq) ⇔ H(II) (p), K = 34 L g-1 (Seigneur et al., 1998) 

Aqueous-phase Kinetics

 

Hg(0) (aq) + O3 (aq) → Hg2+, k = 4.7 x 107 M-1s

-1 (Munthe, 1992) 

 Hg(0) (aq) + OH (aq)→ Hg2+

, k = 2 x 109 M-1s

-1 (Lin and Pehkonen, 1997) 

 

HgSO3 (aq) →Hg(0) (aq), k = 0.0106 s-1 (van Loon et al., 2000) 

 

Hg(II) (aq) + HO2 (aq) → Hg(0) (aq), k = 1.7 x 104 M-1s

-1 (Pehkonen and Lin, 1998) 

 Hg(0) (aq) + HOCl (aq) → Hg2+

, k = 2.09 x 106 M-1s

-1 (Lin and Pehkonen, 1998) 

 Hg(0) (aq) + OCl- → Hg2+

, k = 1.99 x 106 M-1s

-1 (Lin and Pehkonen, 1998) 

In the last two reactions listed above, HOCl and OCl

-

 come from the dissolution and subsequent 

dissociation of molecular chlorine (Cl2). Note that Hg(II) (aq) refers to all divalent Hg species in 

solution (i.e., Hg2+ + HgCl2(aq) + Hg(OH)2(aq) + HgSO3 + Hg(SO3)2

2-). 

The rate constants listed for the aqueous-phase kinetics are for temperatures in the range of 20 to 

25oC. Temperature dependence information is available for the HgSO3 reduction reaction. 

As mentioned previously, the gas- and aqueous-phase Hg transformations presented above 

represent the current state of the science (Ryaboshapko et al., 2002; Seigneur et al., 2001a, 

2003a), but our knowledge of mercury chemistry continues to evolve. For example, Gardfeldt 

and Johnson (2003) have recently challenged the aqueous-phase reduction of Hg(II) to Hg(0) by 

dissolved HO2, suggesting that this pathway is unimportant. There also seems to be some 

circumstantial evidence of reduction of Hg(II) to Hg(0) in power plant plumes from various 

experimental studies that is not accounted for in current treatments of Hg chemistry (e.g., 

Edgerton et al., 2001; Seigneur et al., 2001b). Additional details are provided in a recent scoping 

study for mercury deposition conducted for the Midwest Regional Planning Organization by 

Seigneur et al. (2003b). 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-31 

Implementation Approach 

The approach used to implement the mercury transformation pathways, discussed above, into 

CAMx is based on the assumption that the mercury species concentrations are much smaller than 

those of the species with which they react. Thus, the concentrations of the non-mercury species 

can be assumed to be constant during the mercury chemistry calculations and analytical solutions 

are available for both the gas-phase and aqueous-phase conversions. 

The mercury chemistry discussed in the previous sections requires the concentrations of the 

following non-mercury species: O3, H2O2, OH, SO2, HO2, Cl2, HCl, and atmospheric particulate 

matter (PM). The concentrations of most of these species are available from CAMx. However, 

Cl2 and HCl are not explicitly simulated because the emissions data required to model these 

species are generally inadequate or unavailable. Thus, we specify typical vertical profiles of HCl 

and Cl2 concentrations. The Cl2 concentrations are prescribed to be non-zero over oceans and 

zero elsewhere. Also, daytime Cl2 concentrations are lower than nighttime values to account for 

the fact that Cl2 is photolyzed during the day. The zenith angle is used for the determination of 

night/day. A 2-D array of integer values (1 if ocean, 0 if not) is used to determine if the grid 

column is predominantly over ocean. This array is initialized at the beginning of the simulation 

from an input file and is specific for the modeling domain and grid. 

The mercury aqueous-phase chemistry module also requires the specification of cloud liquid 

water content (LWC) and cloudwater pH. Both these variables are available from CAMx – the 

mercury aqueous-phase chemistry module is invoked after the CAMx PM aqueous-phase 

chemistry calculations are performed, so the cloudwater pH has already been calculated. Note 

that the PM aqueous-phase module (based on the RADM aqueous-phase chemistry module that 

is also used in Models-3/CMAQ) does not explicitly simulate the cloud chemistry of OH and 

HO2 radicals. The concentrations of these radicals can be reduced by their heterogeneous 

chemistry within clouds (e.g., Jacob, 2000; Jaegle et al., 2001). In the CAMx implementation, 

we account for this by reducing the concentrations of OH and HO2 radicals by factors of 2 and 

10, respectively. 

Chemistry Parameters for Mercury 

The mercury chemistry module requires total PM concentrations, so mercury can only be 

modeled in conjunction with PM chemistry. In CAMx, PM chemistry is modeled using 

Mechanisms 4, 5 and 6. Mercury chemistry is selected by invoking Mechanism 4, 5 or 6 and 

including mercury species among the list of modeled species. The CAMx mercury species 

names are: 

 HG0 – elemental gaseous mercury, or Hg(0) 

 HG2 – reactive gaseous mercury, or Hg(II) 

 HGP – primary particulate mercury, or Hg(P) 

CAMx requires that all three or none of these species be included in a simulation. Therefore, 

mercury chemistry is not required for PM modeling, but if mercury chemistry is selected then all 

three mercury species must be modeled. All of the rate constants and equilibrium constants for 

the mercury chemistry module are hard-coded and so no mercury reaction rate data are included 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-32 

in the chemistry parameters input file (see Section 5). This is similar to the RADM aqueous 

chemistry and ISORROPIA inorganic aerosol equilibrium modules. 

Several physical properties of the mercury species must be specified on the chemistry parameters 

file (see Figure 5-2a). The physical properties specified for the gas species (Henry’s Law, 

molecular diffusivity, surface reactivity) influence the deposition characteristics. The Henry 

constant for HG2 is assumed to be similar to that of HNO3 because these two gases have similar 

solubility. The HG2 species represents HgCl2 and Hg(OH)2. The Henry constant for the former 

is 1.4E+06 M atm-1 and for the latter it is 1.2E+04 M atm-1. No temperature dependence is 

assumed for the HG2 Henry constant because there is no information available to determine this. 

The molecular diffusivity ratio for HG2 was calculated as the average for HgCl2 and Hg(OH)2. 

The surface reactivity parameter is set to zero for strong acids, such as HNO3, that have a strong 

tendency to stick to surfaces. Setting the surface reactivity to zero overrides the surface 

resistance calculated in the Wesely (1989) deposition algorithm and forces the surface resistance 

to zero. The reactivity parameter for HG2 is set to 1 so that surface resistance will be calculated 

based on the Henry constant using Wesely’s algorithm. 

The dry deposition of HG0 is set to zero by choosing a very low Henry constant (similar to CO). 

This is based on the assumption that background emissions and dry deposition of HG0 balance 

each other over the modeling domain. This assumption is justified by the fact that the 

atmospheric lifetime of HG0 (about 1 year) greatly exceeds its residence time (days to weeks) 

within a regional modeling domain. Since background emissions of HG0 are not included in the 

mercury emissions inventory, this means that the dry deposition of HG0 should be ignored. In 

CAMx, setting a Henry constant of smaller the 1.0E-08 M atm-1 results in zero dry and wet 

deposition for the species. The HG0 Henry constant is set to 1.0E-10 M atm-1. 

3.4 SIMPLE CHEMISTRY VIA MECHANISM 10 

CAMx offers 5 different chemical mechanisms for ozone and particulate matter modeling. 

However, the minimum level of chemistry is the CB4 mechanism for ozone with 37 species and 

96 reactions. Using CB4 requires significant effort to prepare all of the input data, particularly 

with regard to emissions. There are many cases when air pollution problems could be 

investigated with a much simpler chemistry scheme. An example of this would include 

modeling SO2 from a few specific sources over a relatively small region, and treating conversion 

to sulfate by assuming a representative decay rate. An approach was necessary to provide a 

simple and flexible scheme that can be used for modeling chemical reactions other than the 

ozone or secondary PM reactions treated by the full-science mechanisms. 

The new simple chemistry scheme is selected by specifying a mechanism ID of 10 in the 

chemistry parameters input file. The specific chemical reactions to be modeled must be set in 

the subroutine chem10.f, which resides in the main source code directory. The user must 

modify this subroutine to implement whatever reactions are desired. Follow the guidelines for 

implementing reactions that are included in the subroutine. This approach requires some 

knowledge from the user, but also provides complete flexibility in implementing reactions. 

The simple chemistry has been tested using a modeling database for primary PM species in 

Cairo, Egypt (personal communication from Mr. Usama Faramawy, Egyptian Environmental 

Affairs Agency). Results of the tests are shown in Figures 3-1 and 3-2. A simple chemical 
CAMx v5.30 User’s Guide, December 2010 

Chemistry Mechanisms 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_03_chemistry.docx 3-33 

reaction was implemented where the species PMT decayed to PM2 with a first-order rate 

constant of 10% per hour. These species were selected because PMT has high emissions and 

PM2 has low emissions. This modeling is not intended to represent any actual chemical 

reactions for PM species in Cairo, but rather is just a hypothetical testing scenario. The expected 

result is that the chemical reaction will lower the concentration of PMT and raise the 

concentration of PM2. Figure 3-1 shows the expected result, that the PMT concentration is 

lowered by the reaction. The reduction in PMT becomes proportionately greater at longer 

downwind distances because there has been more time for reaction to take place. Figure 3-2 

shows the complementary increase in PM2 due to chemical production. 

 

No Chemical Decay Chemical Decay

Figure 3-1. Impact of chemical decay on the concentration of the donor species PMT. 

No Chemical Production Chemical Production

Figure 3-2. Impact of chemical production on the concentration of the recipient species PM2. 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-1

4. PLUME-IN-GRID SUBMODEL

Photochemistry is a highly non-linear problem because chemical reaction rates among most 

compounds depend upon their ambient concentrations. In Eulerian air quality models, ambient 

concentrations depend on how well the modeling grid resolves emissions, transport, and 

chemical history. Thus, grid resolution plays a vital role in the ability of the model to properly 

characterize photochemical conditions. Increasing resolution should in theory lead to a better 

model as the time/space discretization tends toward a continuum. However, practical and 

theoretical considerations suggest that the lower limit on horizontal grid spacing is about 1000 

meters for Eulerian air quality models such as CAMx. Nevertheless, even higher resolution is 

often necessary to adequately simulate chemistry within concentrated point source plumes. 

As a result, many modern Eulerian models contain a Plume-in-Grid sub-model that tracks 

individual plume segments (or puffs) in a Lagrangian sense, accounting for plume-scale 

dispersion and chemical evolution, until such time as puff mass can be adequately represented 

within the larger grid model framework. At this point the puff mass is added to the grid system 

as a virtual source, and that mass is then carried by the core grid model processes. It is important 

to understand that the inclusion of a Lagrangian puff model within an Eulerian grid model is a 

forced construct. The formulations of the two modeling approaches are fundamentally different 

and there is no theoretically “correct” methodology. This explains the variety of Plume-in-Grid 

methodologies that are in use today. 

There are two schools of thought regarding the appropriate times at which to transfer puff mass 

into the host model grid system. The first primarily focuses on the physical size of puffs relative 

to grid cells. It is assumed that once puffs are large enough to be adequately resolved by a grid, 

their mass should be added to the host cell. The two principle problems associated with this 

approach are deciding what the appropriate size criteria are to be, and how to distribute puff 

mass into the grid system. The second school focuses on the chemical maturity of the puffs 

(Gillani and Pleim, 1996), and the potential performance effects of dumping immature plume 

mixtures into a grid system. The main problem seen with this approach is identifying chemically 

mature plume mixtures within an ever-evolving puff relative to ever-evolving grid chemistry. 

Puffs may reach a stage of chemical maturity after very long simulation periods (say 24 hours), 

however it is unrealistic to assume that puffs will maintain physical coherence over such a long 

period given the cumulative effects of wind shears and mixing gradients. In summary, neither of 

the above approaches is completely satisfactory and we strongly believe that further research is 

needed to develop new approaches to PiG modeling that adequately address both chemical 

maturity and physical size considerations. 

Two CAMx Plume-in-Grid (PiG) approaches are available that provide different levels of 

chemical complexity. Both approaches share common design features for puff initialization, puff 

structure, transport, and growth. They deviate in how they treat chemistry and when they 

transfer mass from puffs to grid cells. This section details the structure and functionality of both 

options. 

The first PiG approach is aimed at treating the early chemical evolution of large NOx plumes 

when mostly inorganic gas-phase reactions are operative. The method is called the Greatly 

Reduced Execution and Simplified Dynamics (GREASD) PiG. The streamlining employed in

this version was based upon our experiences in developing, utilizing, and studying the responses 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-2

of more detailed PiG algorithms for large NOx plumes. The GREASD PiG model works with 

the Ozone and Particulate Source Apportionment Technology (OSAT/PSAT). This is possible 

because of the simplified approach used in GREASD PiG and because compatibility with the 

source apportionment Probing Tools was an explicit design objective. 

The second approach treats the full suite of gas-phase photochemistry for all types of point 

sources and so by necessity incorporates much more chemical complexity than the first. This 

CAMx plume treatment is called the Incremental Reactions for Organics and NOx (IRON) PiG. 

Chemical processes are simulated within each plume segment using an “incremental chemistry” 

approach, whereby puffs carry the incremental contributions of the puff relative to the grid 

concentrations. Incremental puff concentrations can be positive or negative, depending upon the 

species and stage of plume evolution. A similar chemistry approach is used in the SCICHEM 

Lagrangian model (EPRI, 2000). IRON PiG supports the Reactive Tracer (RTRAC) Probing 

Tool. However, the incremental chemistry technique in IRON PiG is sufficiently complex as to 

prohibit the implementation of source apportionment Probing Tools. Furthermore, IRON PiG 

does not treat PM. 

4.1 CAMx PiG FORMULATION

Basic Puff Structure and Diffusive Growth 

Both GREASD and IRON PiG sub-models share a common physical structure and growth 

algorithm. A stream of plume segments (puffs) is released from a designated point source. Each 

puff possesses a longitudinal length and directional orientation defined by the separation of a 

leading and a trailing point. Initial separation of these points is determined by the wind vector at 

final plume rise. Each point is then subsequently and independently transported through the 

gridded wind fields, which directly accounts for puff stretching and changes to centerline 

orientation due to deforming shears. The official "position" of each puff is defined by the center 

point of each puff between the endpoints. This position defines the grid cell in which the puff 

resides for the calculation of diffusion and chemistry. 

Like other puff models, the shape of each puff is characterized by a spread tensor, which is 

defined from a set of Gaussian standard deviations (so-called “sigmas”) along the three spatial 

axes (σx, σy, σz). Diffusive growth is defined by the growth in these sigma values. The total 

cross-sectional width extends ±1.5σy from puff centerline. The limits of ±1.5σy result in an 

average concentration across the Gaussian distribution that nearly equals a uniformly mixed 

concentration across that distance. Similarly, the total cross-sectional depth extends ±1.5σz from 

puff centerline (with limits placed on depth by the ground and by capping stable layers aloft). 

The total longitudinal length is the distance between the puff endpoints ±1.5σx. Horizontal area 

and total volume are calculated using the formulae for an ellipse. Figure 4-1 presents a 

schematic representation of each puff in horizontal cross-section. 

We have developed an explicit solution approach for puff growth that shares SCICHEM theory 

and concepts (EPRI, 2000), but includes some simplifications. SCICHEM solves predictive 

spatial moment equations with second-order closure that relate the evolution of the puff spread 

tensor (σij=σi×σj) to resolved mean shears and turbulent velocity statistics. 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-3

Figure 4-1. Schematic representation of CAMx PiG puff shape in the horizontal. Directional 

orientation of the puff is arbitrary, and evolves during the age of the puff according to wind 

direction, shears and diffusive growth along its trajectory.

The Reynolds-averaged second-moment transport equation is given as 

where u is the mean wind vector component, the primed values represent turbulent fluctuations 

from the mean, and the angle brackets denote integrals over space. The Reynolds averaging 

process always introduces higher-order fluctuation correlations, and this is given by the turbulent 

flux moments x ′u ′c′ , where u ′ c ′ represents the turbulent flux of concentration. It is these last 

two diffusion terms that SCICHEM solves in its second-order closer scheme. 

For sub-puff scale turbulence, SCICHEM employs the restriction that the only off-diagonal 

component of x ′u ′c′ to be considered is the symmetric horizontal term (i=x, j=y), and then 

only for the large-scale (meso to synoptic) contribution to puff deformation when puff scale 

reaches such dimensions. In CAMx, we ignore this off-diagonal flux moment term altogether 

since puff mass is ultimately introduced to the grid when puff size is at the grid scale (1-50 km in 

practically all applications), and thus puffs never reach spatial scales at which this term becomes 

important. SCICHEM also makes the assumption that the horizontal turbulence is isotropic, 

x′u c′′ = y v c′′′ . This results in a single diffusivity equation for both x and y directions, and a 

single diffusivity for the z direction: 

Q

y v c

Kx Ky

′′′

= =

Q

z w c

Kz

′ ′′

=

P (lead)

P (trail)

y 1.5

x 1.5

Q

x u c

Q

x u c

x

u

x

u

dt

d i j j i

k

i

jk

k

j

ik

ij

′ ′′

+

′ ′ ′

+

∂

∂

+

∂

∂

= σ σ

σ
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-4

In our approach for CAMx, we have adopted the SCICHEM second-order tendency equations to 

model the time-evolution of puff turbulent flux moments (represented by diffusivities Kx=Ky and 

Kz) and their contribution to the evolution of puff spread (represented by the diagonal 

components of the puff spread tensor, σx

2

, σy

2

 and σz

2

). Puff spread is defined for puff depth 

(σz), puff width (σy), and puff length (σx). We account for the effects of wind shears in the 

evolution of lateral and longitudinal spread, but assume that the evolution of vertical spread is 

solely the result of turbulent fluxes. 

The resulting two Reynolds-averaged second-moment transport equations for CAMx PiG are: 

where D is total horizontal deformation of horizontal wind (see Section 2.5). S is the vertical 

shear of horizontal wind, which is broken down into puff-relative lateral and longitudinal 

components: 

The difference between θ and φ represents the relative angle between the puff’s longitudinal 

orientation and the direction of vertical shear; a cross-puff shear results in more lateral spread 

while along-puff shear results in more longitudinal spread. 

The SCICHEM tendency equation for the horizontal turbulent flux moment is 

where A = 0.75, q

2

 = v v′′ , and Λ is the horizontal turbulent length scale. Separate equations are 

given for two different boundary layer turbulence scales (shear- and buoyancy-produced), such 

that 

Within the surface-based boundary layer, the horizontal velocity variance is given by 

y y z y x

y

D S K

dt

d

2 2 2

2

2

= σ + σ σ +

σ

z

z K

dt

d

2

2

=

σ

y v c

q

y v c Qq A

dt

d

′′′

Λ

′′′ = −

2

shear buoyancy

y v c′′′ = y v c′′′ + y v c′′′

( ) shear iq 5.2 u 1 z/ z

2

*

2

= −

[ ( )] buoyancy i q .0 13w 1 5.1 exp z / z

2

*

2

= +

( )

2/1

2 2

cos 















= − +

dz

dv

dz

du Sy θ φ

x x z x x

x D S K

dt

d

2 2 2

2

2

= σ + σ σ +

σ

( )

2/1

2 2

sin 















= − +

dz

dv

dz

du Sy θ φ
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-5

where u* is the friction velocity, w* is the convective velocity scale, z is height above the surface, 

and zi

 is the height of the surface-based boundary layer. The horizontal turbulent length scale is 

given by 

In the stable boundary layer, only the shear components of q

2

 and Λ are applied. Above the 

boundary layer, SCICHEM applies rough approximations for the velocity variance and turbulent 

length scale: q

2

 = 0.25 m2/s2, and Λ = 1000 m. 

The SCICHEM tendency equation for the vertical turbulent flux moment is 

where qv

2

 = w′w′ , Λv is the vertical turbulent length scale, and Kz

eq is the equilibrium diffusivity. 

Whereas a specific equation for Kz

eq is formulated for SCICHEM, we have chosen to specify the 

value of this parameter from the gridded fields of vertical diffusivity in CAMx. Again 

SCICHEM gives separate equations for shear- and buoyancy-produced turbulence scales. 

Within the surface-based boundary layer, the vertical velocity variance is given by 

The vertical turbulent length scale for both shear and buoyancy is equal to Λshear given above for 

horizontal length scale. Above the boundary layer, SCICHEM again applies rough 

approximations for the velocity variance and turbulent length scale: qv

2

 = 0.01 m2/s2, and Λv = 

10 m. 

The external variables needed by PiG to complete the dispersion calculations include zi

, u* and 

w*. All of these are available from an internal module in CAMx that calculates these boundary 

layer similarity theory parameters. Thus, no additional parameters are needed to be input to the 

model. 

Puff Transport 

A fresh set of new puffs are released from all PiG point sources within the modeling domain for 

the duration of the smallest time step among the master and all nested grids. The length of each 

puff is determined by the combination of the mean total wind speed at the height of final plume 

rise and time step. Limits are placed on maximum extruded length based on half the finest 

resolution in the given simulation. If winds and time-steps are such that the maximum allowed 

( ) ( ) 2 2 2.0 65

1

3.0

1 1

z z shear i

= +

Λ

buoyancy i Λ = 3.0 z

(QK z w c )

q

z w c A

dt

d eq

z

v

v

− ′ ′′

Λ

′ ′′ =

( )i

shear v q 5.1 u 1 z / z

2

*

2

= −

( ) ( ) i i

buoyancy v q 1.1 w z/ z .1 05 z/ z

2 3/2

*

2

= −
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-6

length is violated, then several puffs are automatically extruded from a given stack per time step. 

The user can also set a maximum time interval of release if more puffs (better plume resolution) 

are desired over the default automation. The orientation of the puff length is along the total wind 

vector. Total puff volume is determined by stack volumetric flow rate in conjunction with 

growth due to turbulent entrainment following the SCICHEM approach. Initially, σx = σy and σz

values are explicitly calculated from this entrainment calculation. 

The effects of resolved wind shear on plume deformation (i.e., at plume scales larger than 

individual puff scales) are treated using a “chained puff” approach (Figure 4-2). Points at the 

leading and trailing edges of the puff centerline are individually transported through the gridded 

wind fields, which directly accounts for puff stretching and changes to centerline orientation due 

to deforming shears. Since puffs can extend over multiple layers, layer density-weighted 

average wind components are determined for each endpoint based on the vertical coverage of the 

puff. 

Figure 4-2. Plan-view schematic representation of a chain of PiG puffs emitted from a point 

source into an evolving gridded wind field. The red line connected by dots represents puff 

centerlines, with dots representing leading and trailing points of each puff. The CAMx 

computational grid is denoted by the blue lines.

The “chain” aspect means that at least initially (as puffs are extruded from the stack) the trailing 

point of a puff emitted at time t will be the leading point of a puff emitted at time t+dt. 

However, as the puffs are advected downstream, the leading point of one puff will deviate from 

the trailing point the puff behind it due to evolving puff depth and wind fields. Puff volume is 

conserved in convergent/divergent wind fields. Puff endpoints may move closer together or 

further apart, in wind fields that are slowing or accelerating downstream. We compute puff endpoint separation changes and then adjust puff widths and depths to maintain constant puff 

Stack
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-7

volume. The change in computed puff endpoint spacing defines puff length tendencies, then puff 

depth tendencies are computed from grid-resolved vertical wind shear (dw/dz), and finally we 

determine the puff width tendencies required to conserve puff volume. 

The official “position” of each puff is defined by the center point of each puff between the 

endpoints. This position defines which grid domain and grid cell the puff resides for the 

calculation of diffusion and chemistry. This definition holds even if the puff is sufficiently long 

that the endpoints are in different grid cells (or even different grid domains if near a domain 

boundary). With our definition for termination when horizontal area approaches grid cell area, 

the extents of the puff length should not extend across more than two grid cells. 

4.2 IRON PiG 

The IRON PiG model incorporates a complete treatment of gas-phase chemistry in point source 

pollutant plumes, while secondarily adding additional features central for treating toxic 

pollutants not normally carried by the standard CAMx chemical mechanisms. Several 

approaches have been developed to treat photochemistry within point source plume models. One 

of the more elegant methodologies is the incremental chemistry idea embodied in the SCICHEM 

model (EPRI, 2000). However, we found that the implementation of incremental chemistry in 

SCICHEM is very complex, especially in its handling of the chemistry of overlapping puffs, and 

not sufficiently flexible to allow for the adaptation of numerous chemistry mechanisms and/or 

solvers. In adopting this innovative approach for the IRON PiG, it was necessary to utilize an 

accurate numerical solution approach based on the LSODE chemical solver. 

The Concept of Incremental Chemistry 

For a second-order reaction between puff species A and B, the total reaction rate is given by: 

(1) 

where PA and PB are the total puff concentrations of each species. The total puff concentrations 

can be expressed as the sum of the background and puff perturbation concentrations: 

where C is the ambient concentration and c is the puff increment concentration (which can be 

positive or negative). Thus the reaction rate is found to be: 

or 

If we subtract the rate of change of the background, 

(2) 

( )( ) T A A B CB R = k c + C c +

( ) T A B A B ACB CACB R = k c c + C c + c +

RAmbient = CACB

( )( ) T PA PB R = k

( ) A A CA P = c +

( ) B B CB P = c +
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-8

by assuming that it is explicitly and separately treated by the grid model, we obtain the reaction 

rate for the puff increments: 

 (3) 

Equation 3 is the basis of the SCICHEM incremental chemical kinetic solver. One problem with 

this approach is the mixed terms, CAcB and cACB. Most chemical solver packages are designed to 

solve rate equations for total concentration, as in Equation 1. Thus, for the IRON PiG we 

developed an alternative numerical solution scheme for puff perturbation chemistry. We note 

that the CAMx chemical solver can be independently applied to the rate equation for total puff 

concentrations, Equation 1, and to the rate equation for ambient concentrations, Equation 2. By 

subtraction of the two solutions, we obtain the solution to rate Equation 3. This requires no 

modification to, and is obviously completely self-consistent with, the CAMx chemical solvers. 

Once the incremental puff reaction rates are obtained they are applied to the incremental puff 

mass to calculate the new (adjusted for chemistry) incremental concentrations. These new puff 

increments are subsequently advected and dispersed by the transport portions of the PiG code. 

Puff Constructs For Incremental Chemistry 

The PiG sub-model includes three constructs designed specifically to facilitate the incremental 

chemistry approach: 

• Treatments to handle puff-grid information exchange for puffs spanning multiple model 

layers; 

• The concept of “virtual dumping” to handle the chemical impacts of large puffs that can 

overlap other puffs within a given grid column; 

• The concept of multiple puff “reactor” cells to account for the chemical effects of 

concentration distributions within each puff. 

Each of these is described below. 

Puff Layer Spanning

The PiG is designed to chemically process point source plume mass within streams of puffs until 

such time that each puff can be adequately resolved on the horizontal grid. Puffs are allowed to 

vertically span multiple grid model layers before they reach horizontal grid scales. This 

introduces technical implications for defining “background” concentrations and ambient 

conditions for puff chemistry, as well as for transferring plume incremental mass to the grid. 

The solution employed is to: 

1) Assume that the vertical distribution of puff concentration is always uniform; 

2) Distribute puff mass transfer (via “leaking” and “dumping”) to the grid according to the 

puff fractional coverage across each model layer and by density-weighting; and 

3) Determine mean background concentrations and other ambient conditions (e.g., 

temperature, humidity, etc.) over the puff vertical span via similar fractional layer-density 

weighting. 

( ) P A B A B ACB R = k c c + C c + c
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-9

Horizontally, the mean background concentration and ambient conditions are taken from the 

single host grid column containing each puff center point, even if the puff is large and/or spans a 

horizontal cell interface. As described earlier, puffs are considered to be elliptical in the 

horizontal, with the minor axis spanning the cross-wind puff width (defined as ±1.5σy), and the 

major axis spanning the along-wind puff length (defined as length ±1.5σy on each end). 

However, given the complications associated with multiple layer spanning and mass-weighting 

of ambient inputs and dumped mass, puffs are rectangular and uniform in the vertical, with total 

puff depth defined as ±1.5σz. 

Puff Overlap and the Idea of Virtual Dumping

The chemical effects of puff overlap were considered to be an important attribute of PiG. 

However, we wished to maintain a relatively simple approach, while appropriately accounting 

for the largest probable effects. We assume that the largest effect is the condition in which older 

expansive puffs span significant fractions of their host grid cell, thereby potentially overlapping 

all other puffs contained within the same cell. Instead of geometrically determining fractional 

overlap puff-by-puff, we instead introduce a process that we refer to as “virtual dumping.” 

For a given grid column, the mass from all puffs determined to be “sufficiently” large are 

temporarily dumped to the column, distributed according to each puff’s vertical layer span, and 

added together along with the pre-existing grid concentrations. This process is referred to as a 

“virtual dump” of puff mass to the grid column. The criteria to determine a “sufficiently” large 

puff is the same that initiates puff mass leaking to the grid (as described below). In this 

approach, all large puffs contribute to the background chemistry step for other puffs occupying 

the same grid column. Double-counting of chemistry is avoided by not including a puff’s 

contribution to the background while it’s specific background and incremental chemical 

calculations are performed. 

Multiple Puff Reactors

Accounting for full chemistry potentially introduces significant non-linear effects that are highly 

dependent upon the distribution of pollutant mass within each puff. Especially for ozone, aircraft 

flights through power plant plumes have often recorded wide concentration variations relative to 

ambient conditions: within the plume core where NOx remains concentrated, ozone is often 

depressed and follows NO-NO2-ozone equilibrium, whereas on plume fringes where NOx is 

dilute and mixes with ambient VOC, ozone concentrations can exhibit concentration maxima. 

Past models have accounted for cross-plume chemistry variations through the use of reactors, 

with approaches ranging from multiple rectangular slabs to concentric shells. 

The user may select multiple reactors as well to sub-divide the puff. Any number of reactors 

may be chosen (the default is 1). Multiple reactors simply divide the total puff volume evenly, 

and the initial mass assignments for newly emitted puffs are made using the standard error 

function that results in an initial Gaussian-like mass/concentration distribution among the 

reactors. This provides a mechanism for simulating the differing chemical processing that takes 

place in various concentration regimes. As the purpose of the reactors is merely to represent the 

range of photochemical conditions that are likely to occur at various locations within the puff as 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-10

it undergoes differential shearing and mixing, there is no particular physical orientation assigned 

to these reactors with respect to each other or to the puff as a whole. Thus, there is no 

communication (i.e., diffusional mass exchange) between the reactors. The same background 

concentration chemistry applies to all reactors of a given puff. When puff mass is leaked or 

dumped, all reactors shed the same relative fraction of mass. 

In summary, chemistry is solved for each puff “reactor” in three steps: 

1) The layer-mean background (grid + overlapping puff) concentrations and environmental 

conditions over the volume occupied by the puff are stored and then chemically updated 

via the LSODE gas-phase chemistry mechanism; 

2) The pre-updated mean background concentrations are added to the puff increments and 

the total concentrations are chemically updated; and 

3) The updated results from step 1 are subtracted from the updated results of step 2 to 

provide the updated incremental concentrations. 

An important consequence of this approach is that the incremental puff mass may be positive or 

negative. For example, a high-NOx puff that is destroying ambient ozone will have negative 

ozone increments. The puff increments are subsequently advected and dispersed by the transport 

portions of the PiG code. Note that the updated background concentrations, which include 

“virtual dumps” of mass from large puffs, are used for reference only in the puff incremental 

chemistry algorithm; the actual grid concentrations are updated in the grid chemistry routine. 

Puff Dumping and PiG Rendering

Mass transfer from puff to grid can happen in two ways: slowly, termed “leaking”, or suddenly, 

termed “dumping.” As described earlier, all mass is transferred to the vertical grid structure in a 

density-weighted fashion according to each puff’s fractional layer coverage. The process of 

leaking ensures that puff mass is transferred to the grid continuously, rather than in discrete 

lumps of pollutants with very different concentrations than those in the grid. Sudden dumping 

can cause unphysical numerical shocks in the grid and can lead to unrealistic gridded 

concentration patterns that appear as “bullseyes”. The idea behind puff leakage is to account for 

turbulent shearing of mass from the main plume and its subsequent dispersion to the grid scale. 

This rate of transfer should be directly proportional to the puff size relative to the grid scale. 

Puff leakage is controlled by comparing the horizontal area of a puff to a specified leakage 

parameter, defined as a fraction of horizontal grid cell area. When a puff is first emitted there is 

no leakage. As the puff grows in volume the concentrations within the reactors are reduced 

accordingly by dilution. When the puff area exceeds the leakage onset parameter, a fraction of 

the mass in each puff reactor is transferred to the grid. This fraction is determined by the relative

exceedance of the leakage parameter; initial leakage is slow as the exceedance is relatively small, 

but leakage rates grow as the puff continues to grow beyond the leakage parameter. 

The reduced mass from leakage is compensated by a reduced effective volume, so that 

concentrations are not artificially diluted by leakage (an essential chemical imperative). Thus, 

two distinct volumes are tracked: the actual volume (defined by the puff spread sigmas) and the 

effective volume. While these are identical before leakage, they obviously deviate after leakage 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-11

is initiated, and thereafter the relative deformation of the actual puff volume (via diffusion, 

shearing, etc.) is used to scale the deformation of effective puff volume. 

Eventually the horizontal span of the puff will exceed the grid cell area, and the remaining mass 

is then dumped all at once to the grid. However, because of the combination of photochemical 

processing and leakage, by the time a puff dumps the potential for producing numerical shocks is 

much reduced. Furthermore, if the puff exceeds a user-defined maximum age, puff mass is 

transferred to the grid at the rate of 10% per timestep. 

While the mass confined to the puffs at any given time has not yet affected the grid 

concentrations, it will eventually, so it can be somewhat misleading to sequester this mass from 

visualizations of a model simulation. The puff mass can be optionally incorporated into the 

model average output files for visualization purposes (referred to as “PiG rendering”). 

Rendering employs a “virtual dump” of the puff masses into the average concentration array 

each time step. As described for chemistry, virtual puff mass is added as an increment over the 

entire grid column according to fractional layer-density weighting over puff depth, thus diluting 

it’s concentrations relative to that within the puff. The actual puff mass remains within the puffs 

over the course of their lifetimes. It should be noted that this visualization is available for 3-D 

average output files, and can produce some rather startling effects in output displays, including 

very narrow virtual plumes, or streaks, representing mass moving through the grid in sub-grid 

puffs, but not subject to grid-scale eddy diffusion. 

High Resolution Puff Sampling

PiG optionally employs surface-layer puff sampling of CB4, CB05, or SAPRC99 species on a 

user-defined grid of arbitrary horizontal resolution, similarly to the way nested grids are defined. 

Sampling grids are entirely passive, and intended to provide a display of the plume 

concentrations at scales much smaller than typically used for the finest computational grids (i.e., 

<1 km), primarily around and downwind of a source complex. Sampled PiG concentrations are 

time-averaged like the output concentrations provided on the computational grids, and are 

written to files with similar format so that they may be readily viewed and manipulated with 

CAMx post-processing software. Additional information on configuring and using PiG sampling 

grids is provided in Section 5. 

Given that the puffs constantly evolve via diffusive growth and reshaping due to deforming 

shears, the sampling procedure includes trigonometric calculations to define which sampling 

points are influenced by each puff. This influence is determined according to the puffs’ twodimensional horizontal Guassian shape shown in Figure 4-1. To include a sufficiently large 

percentage of mass across each puff for sampling, limits of ±3σx/y in both horizontal dimensions 

are used to define the puffs’ total elliptical area coverage. Puffs are only sampled if they extend 

vertically into the model’s surface layer. 

Sampling grids are defined in the CAMx control file (see Section 5), and array dimensions must 

be set sufficiently large in the CAMx Fortran parameters file in ./Includes/camx.prm (see 

Section 11). An example of the type of plume detail that can be visualized using a sampling grid 

is provided in Figure 4-3. In this case, a very fine 200 m sampling grid is set within a 4-km 

computational grid. 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-12

Figure 4-3. Example of a single point source PiG plume as depicted by a sampling grid with 

200 m resolution (shown by the extent of the plot). This sampling grid was set within a CAMx 

computational grid with 4-km resolution. The source location is arbitrary and is emitting an inert 

tracer. 

4.3 GREASD PiG 

The GREASD PiG is designed for large NOx point sources, where inorganic chemistry is 

applicable only for early plume evolution with the intention of aging the NOx to mitigate the 

chemical effects of emitting fresh point source NO directly from the stack to the modeling grid. 

Therefore, this option should not be used for VOC sources. The chemical limitations applied 

within GREASD PiG force the puffs to transfer their mass to the grid before full photochemical 

processing can develop, and usually before puffs reach size criteria relative to the grid spacing. 

Concentrations and chemistry in GREASD PiG are treated with the same incremental techniques 

as described in Section 4.2 for IRON PiG. In fact they are the same model, but with a distinct 

difference in the criteria that control when the puffs dump their incremental mass to the grid. 

The objective for GREASD PiG is to perform this dumping at about the time when non-linear 

organic chemistry starts to become important. This was a specific design constraint that allowed 

source apportionment Probing Tools to be including into the PiG algorithm. Kumar and Russell 

(1996) found that a PiG model with simplified inorganic chemistry produced results that were 

very similar to full chemistry. 

EPRI (2000) describes the chemical evolution of large point source plumes in terms of three 

stages, as described below: 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-13

• Stage 1: Early plume conditions where NOx concentrations are very high and radical 

concentrations are negligible – simple NO/NO2/O3 photostationary state applies along 

with the NO-NO self reaction; 

• Stage 2: Mid-range plume conditions where radical concentrations are sufficiently large 

to generate secondary inorganic acids like nitrate and sulfate; 

• Stage 3: Long-range plume conditions where sufficient mixing with the ambient air leads 

to the full range of gas-phase reactions involving VOC oxidation and ozone formation. 

The GREASD PiG treats plume chemistry during Stages 1 and 2. We define the onset of Stage 3 

chemistry when the following criterion is met: 

This conservative threshold ensures that GREASD puffs transfer all of their mass to the grid 

before the onset of any non-linear oxidant production, which is compatible with the source 

apportionment requirements. 

4.4 PARTICULATE MATTER IN PiG 

Particulate chemistry in the CAMx PiG closely parallels the approach for gas-phase chemistry. 

The ISORROPIA, SOAP and RADM-AQ chemistry modules are called for each puff in the 

same manner and sequence as they are for the grid chemistry, but using the PiG incremental 

chemistry approach; i.e., by separate integrations for background and puff+background in order 

to determine the evolution of puff incremental PM concentrations. Note that the PM capability 

in PiG was designed specifically for the static 2-mode PM chemistry only (CF), and not for the 

multi-section PM chemistry (CMU). The PM capability is linked to the simper GREASD PiG 

option to limit the amount of non-linear chemistry in the PM treatment. The addition of PM, and 

the PSAT Probing Tool, necessitated the addition of dry and wet deposition processes to the 

CAMx PiG. These are described below. 

PM Chemistry 

The PiG performs gas and particulate chemical calculations for a given puff over each time step 

of the host grid where the puff resides. This is done by calling a chemistry driver routine that is 

practically identical to the grid chemistry driver, except that layer-averaged ambient conditions 

over puff depth and PiG increments are passed to the chemistry algorithms rather than cellspecific conditions. The driver routine contains the specific calls to all supported CAMx 

chemistry mechanism solvers, including the 2-mode (CF) PM algorithms. 

Non-linear effects in gas-phase chemistry are transmitted to the PM and potentially amplified 

through the aqueous and equilibrium PM chemistry algorithms. The implementation of PSAT in 

PiG prompted the need to limit the impact of such non-linearity in the plume chemistry similarly 

to the constraints imposed by OSAT for gas-phase chemistry. Therefore, PM and PSAT can 

only be run using the GREASD PiG option. Other limitations associated with running PM in 

PiG include: 

[ ][ ] [ ][ ] [ ][ ]

[ ][ ] 1.0

2

2 >

+ +

k OH NO

k OH CO k OH SO k OH VOC
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-14

• No puff leaking is allowed; 

• No virtual dumping is allowed; 

• No overlap chemistry is performed. 

To maintain consistency with the grid chemistry, the PiG calls the aqueous PM chemistry 

algorithm at every time step for each puff that resides in a cloudy grid cell. The remainder of the 

PM chemistry (ISORROPIA and SOAP) continues to be called on the PM “coupling” time step 

(default is 15 minutes), as these routines are not based on integrating conversion rates, but rather 

are equilibrium calculations independent of time step. 

Deposition 

The CAMx PiG treats the removal of gas and PM species from each puff via deposition 

processes. Both dry and wet deposition calculations presented unique implementation issues for 

puffs. The most difficult issue for both forms of deposition was how to manage deposition 

exchange between puffs and the ground in the case of negative puff concentration increments. 

Dry Deposition

Dry deposition needs to consider the following: (1) the point at which puffs begin to deposit to 

the surface; (2) how to handle deposition through potentially deep puffs that may straddle several 

layers of varying stability since the puffs do not themselves resolve these stratifications or 

vertical concentration distributions; (3) managing deposition fluxes of negative concentration 

increments. Our solution to issue (1) was to ignore dry deposition within puffs until they 

diffusively grow to the ground, although in reality deposition occurs on roughness elements that 

extend some distance above the nominal surface (trees, buildings, etc.). We implemented a 

criterion that the bottom of the puff must extend to or below the midpoint of the surface layer, or 

below 10 m (whichever is larger), in order for dry deposition to be active. 

Issue (2) can be handled in a variety of ways and complexity. The current implementation 

institutes a simpler solution and we will consider more complicated improvements for future 

developments if evidence suggests that they would be necessary. PiG utilizes pre-computed 

species-dependent deposition velocities derived for the grids. Each puff in a particular grid cell 

is provided the host cell’s deposition velocities for each species, and these are used to determine 

the flux of mass through the fraction of puff depth occupying the model’s surface layer. 

Issue (3) is unique to the incremental chemistry concept introduced with IRON PiG. The flux of 

material depositing to the ground is given by d F = c ⋅ v , where by the normal definition a positive 

deposition velocity vd leads to a positive deposition flux to the ground. If the puff increment c is 

negative, then a negative flux is calculated (flux from ground to puff). This is appropriate if we 

consider the following argument. Dry deposition applied to a grid cell removes some pollutant 

mass from the entire volume. If there is a puff existing in that cell with a negative concentration 

increment, then the amount of mass removed from the cell was over estimated if we consider the 

puff’s contribution to total cell mass. The negative deposition flux calculated for this puff leads 

to the addition of mass to the puff increment. Adding mass to a negative increment reduces the 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-15

magnitude of the increment, as expected for a deposition process. This mass is taken from the 

grid cell’s accumulated deposited mass to maintain accurate mass accounting within the model. 

Wet Deposition

Wet deposition needs to consider the following: (1) how to handle scavenging of pollutants 

through potentially deep puffs that may straddle several layers of varying cloud and rain water 

contents but that do not themselves resolve vertical concentration distributions; (2) managing 

deposition fluxes of negative concentration increments in combination with the potential for 

mass to move in and out of rainwater as it falls (e.g., for slightly soluble gasses); (3) accounting 

for the initial pollutant concentrations in rainwater as they enter the top of each puff. 

It was important to maintain consistency between the treatment of wet deposition and the 

approach for puff chemistry. The chemistry relies on the assumption of vertically well-mixed 

puff reactors that can span multiple layers, and this is why layer-density weighted average 

ambient conditions are passed to the chemistry routines. To maintain this assumption for wet 

deposition, a single scavenging rate is applied through the entire puff depth as effectively a 

single layer of pollutant. This was found to be the simplest implementation approach. This 

single scavenging rate is calculated according to layer-density weighted average ambient cloud 

and rainwater contents. 

Wet scavenging is performed throughout the entire depth of the puff to determine the amount of 

flux in or out of rainwater. Total concentrations (puff + background) are used to determine 

species-dependent scavenging rates using the identical algorithm as for grid removal. The rates 

are used to derive removal fractions, and these fractions are then applied directly to the puff 

incremental mass for each species. Removal fractions are considered positive for the standard 

case of mass moving from puff to rain. Note that negative puff mass increments in combination 

with a positive removal fraction lead to a reversal of the flux direction (rain to puff), and that is 

acceptable by an argument similar to that presented for dry deposition. We account for impacts 

on the mass budget appropriately by adding or subtracting from the wet deposition mass array 

according to the net fluxes into and out of rainwater, respectively. 

We further assume that the top boundary condition for rainwater entering the top of each puff is 

zero. This means that the removal fraction is always positive (from puff to rain) in the singlelayer puff. In contrast, for gridded concentrations the layer-by-layer buildup of slightly soluble 

species can lead to a reversal of fluxes (from rain to grid) if super saturation is diagnosed in a 

particular layer. 

4.5 PiG CONFIGURATION 

Selecting the individual elevated point sources to receive the PiG treatment is accomplished by 

setting their stack diameters negative within the header (time-invariant point list) section of the 

CAMx input point source file. CAMx will run correctly with these negative diameters even if 

the PiG algorithm is not invoked. CAMx preprocessors exist to ease the procedure of ranking 

elevated point sources by emission rate and flagging the sources that the user wishes to treat. 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-16

Invoking the CAMx PiG sub-model is controlled by keywords in the CAMx control file 

(CAMx.in), as described in Section 5. The choices are: 

PiG_Submodel = 'NONE', 

PiG_Submodel = 'GREASD', 

PiG_Submodel = 'IRON', 

Note that the single choice between GREASD and IRON applies to all flagged point sources. It 

is not possible to make a single CAMx run with IRON PiG applied to a certain group of sources, 

and GREASD PiG applied to another group. Also note that GREASD must be selected to run 

PiG with OSAT, PM and PSAT; IRON must be selected to run PiG with the RTRAC Probing 

Tool. Several additional parameters are used to configure the PiG. It is important to note that all 

PiG configuration parameters exist in the CAMx Fortran parameters file 

(./Includes/camx.prm), as described in Section 11. PiG parameters are grouped together 

and briefly described at the end of that file. By effectively configuring the PiG submodel in the 

code, the default PiG configuration (as recommended by the model developers) is preset within 

the model distribution and alleviates the need for users to select settings on their own. 

The default values are shown below: 

parameter ( MXPIG = 10000 ) 

parameter ( MXRECTR = 1 ) 

 parameter ( FLEAK = .25 ) 

 parameter ( LEAKON = .FALSE. ) 

 parameter ( LVISPIG = .FALSE. ) 

 parameter ( OVERLAP = .FALSE. ) 

 parameter ( DXYMAX = 0. ) 

 parameter ( AGEMAX = 18.*3600. ) 

parameter ( PIGMXDT = 300. ) 

Users should exercise thoughtful consideration when altering these default values. A description 

of each of the remaining parameters is provided below, along with guidance in setting values. 

Guidance on the Use of CAMx PiG 

PiG Keyword

The PiG keyword controls whether the PiG option is to be invoked in a CAMx simulation, and 

whether the emissions are treated with the GREASD or IRON options. This keyword can be 

switched from NONE to GREASD or IRON on a model restart to invoke the PiG treatment at 

any point during a multi-day simulation. To allow for this, it is not mandatory to provide CAMx 

with a pre-existing PiG output file upon a model restart – CAMx will not stop if this file is 

missing. It is recommended that this file be provided on all subsequent restarts since the PiG 

output file is needed to reinitialize the PiG module, otherwise all mass contained in puffs at the 

end of the previous run will be lost. If the PiG keyword is switched to NONE on a model restart, 

CAMx will continue the simulation without PiG, but all mass contained in puffs at the end of the 

previous run will be lost. 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-17

• Guidance: 

- Invoke GREASD or IRON PiG at any point during a multi-day simulation, or none 

at all. Once PiG is started, provide CAMx with the PiG output file from the previous 

run for all subsequent model restarts so that no point source mass is lost. 

- GREASD PiG should be invoked for large NOx point sources only, since it does not 

provide any organic chemistry. GREASD PiG does support PM chemistry (CF). It 

can be run in conjunction with the OSAT and PSAT Probing Tools. It does not 

support DDM, PA, or RTRAC. 

- IRON PiG can be invoked for any point sources to treat gas-phase chemical 

evolution using CB4, CB05, or SAPRC99 mechanisms. IRON PiG does not treat 

particulate chemistry. It can be run in conjunction with the RTRAC Probing Tool. It 

does not support OSAT, PSAT, DDM, or PA. 

Both GREASD and IRON options use the expensive LSODE chemistry solver exclusively, so 

users will notice a significant impact on run time, particularly if many (~thousands) puffs are to 

be carried and/or puffs are configured with many puff reactor cells (see below). Since the 

lifetime of GREASD puffs are much shorter than their IRON counterparts, GREASD PiG will 

run faster than IRON PiG for the same number of flagged sources. PiG chemistry is internally 

parallelized using OMP to maximize PiG speed performance. 

Number of PiG Puffs

MXPIG sets the maximum number of PiG puffs to be expected during a simulation. It is used to 

statically allocate memory arrays for the PiG sub-model. A value of 10,000 is usually sufficient 

for most applications in which PiG is used; set this parameter to 1 if PiG is not used to conserve 

memory. If this parameter is exceeded during a simulation, the model will halt. If this happens, 

simply increase MXPIG, recompile the model executable, and restart the simulation. 

• Guidance: Use the default value for most simulations, or set to 1 if PiG is not to be used. 

If the model stops because MXPIG is exceeded, increase its value, recompile, and restart 

the model. 

Number of PiG Reactors

MXRECTR sets the number of puff reactors; when greater than 1, each puff is separated into that 

number of reactor cells and primary emissions are apportioned among them using a Gaussian 

distribution. Since chemistry is performed for each individual reactor cell (both background and 

puff+background), this parameter can affect the speed of chemical computations in the PiG. We 

have not seen a significant sensitivity to values greater than 1, but testing for each application is 

warranted. 

• Guidance: Use the default of 1 for initial simulations, but test the sensitivity to this 

parameter for each unique application. 

 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-18

Leakage Parameters

FLEAK, LEAKON, and DXYMAX together control puff leakage to the computational grid and 

ultimately puff termination. When LEAKON is true, FLEAK and DXYMAX control when 

puffs begin to leak portions of reactor mass to the grid along their trajectory. When LEAKON is 

false, no leaking is performed and puffs maintain all of their mass until they reach sizes for 

termination, at which point all mass is directly introduced to the grid at that point. DXYMAX 

sets the maximum dimension that puff size will be compared to for leaking and termination; 

when it is zero, puff size will be compared to grid area, but when it is non-zero, puff size will be 

compared to the value of DXYMAX. FLEAK is the relative fraction of horizontal puff area to 

cell area, or DXYMAX, above which leaking will begin and continue until sufficient mass is 

shed and the puff is terminated. In the example above, puffs will begin to leak mass when they 

reach 25% of the host grid cell’s area. 

• Guidance: If LEAKON is set to true, maintain FLEAK at the default value of 0.25. Then 

test model sensitivity to different values of FLEAK and/or DXYMAX. 

• Leaking is not allowed when PiG is run with PM. 

Overlap Flag

OVERLAP controls whether puff overlap is to be treated in the background chemistry step. As 

stated earlier, puffs only overlap if they meet the size criteria for leaking; all puffs smaller than 

this size do not overlap any other puffs in the same grid cell. 

• Guidance: We recommend that the OVERLAP flag remain set to the default value of 

“false”. 

• Overlap is not allowed when PiG is run with PM. 

Virtual Puff Rendering

LVISPIG is a flag that turns on puff “rendering” to the computational grid average 

concentrations. When it is false, the chemical effects of puff mass are not seen on the output 

average files until they either begin to leak mass to the grid and/or they are terminated and their 

mass is entirely introduced to the computation grid. However, when the flag is true, all puff 

mass that resides in each grid column is summed, apportioned vertically to each grid cell 

according to puff vertical extent (via density and layer-depth weighting), converted to 

concentrations, and added to the average gridded concentrations for output. This process is 

referred to as rendering since the effects of all puff mass can be readily visualized in the CAMx 

output. 

• Guidance: This option has no impact on the actual CAMx chemical solution. However, 

output average concentration files will be affected by puff rendering, and therefore could 

impact graphics of CAMx results and model performance measures. 

• Virtual dumps are not allowed when PiG is run with PM. 
CAMx v5.30 User’s Guide, December 2010 

Plume-in-Grid Submodel 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_04_PiG.docx 4-19

Maximum Puff Age

AGEMAX is the age limit for all PiG puffs (IRON and GREASD). When puffs reach this age 

limit, they are terminated and all of their mass is transferred to the host grid. 

The assumption of a stream of coherent puffs becomes less valid with time as horizontal and 

vertical wind shears increase plume spread. At some point the plume mass is better resolved on 

the grid than within puffs. In CAMx the rate of puff expansion most often determines this 

transfer of mass, and the maximum puff age provides a safety check to ensure that puffs do not 

persist for unrealistic times in stable environments. The maximum puff age should be set long 

enough to allow puffs to persist overnight, but a lifetime of longer than a day is probably not 

realistic. 

• Guidance: limit puff age to 12-24 hours – we find that 18 hours works best since it will 

allow puffs emitted in the late afternoon to last through the night and into the following 

morning. The purpose is to restrict growth-limited puffs to terminate over night simply 

as a result of age constraints. Twelve hours is seen to be too short in this regard; puffs 

usually do not reach 24 hours of age before being terminated by grid constraints. 

Maximum Puff Release Interval

PIGMXDT sets the maximum frequency of release and by default is set to 300 seconds (5 

minutes). This value should be adequate for most applications. However, if the user wishes to 

improve plume resolution by increasing the number of puffs, the frequency of release can be 

increased by reducing the value of PIGMXDT. This value supersedes the automated puff release 

rate that is determined by wind speed and grid size. 

• Guidance: Maintain the default value of 300 s and allow PiG to use the automated PiG 

release frequency. Set to a lower value if better plume resolution is desired; note that 

more puffs will be released and this could slow the model markedly. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-1 

5. CORE MODEL INPUT/OUTPUT STRUCTURES

CAMx requires input files that configure each simulation, define the chemical mechanism, and 

describe the photochemical conditions, surface characteristics, initial/boundary conditions, 

emission rates, and various meteorological fields over the entire modeling domain. Table 5-1 

summarizes the input data requirements of CAMx. Preparing this information requires several 

preprocessing steps to translate “raw” emissions, meteorological, air quality and other data into 

final input files for CAMx. We expect that most CAMx applications will utilize output from a 

prognostic meteorological model that can generate all of the required time varying threedimensional meteorological fields. Most CAMx I/O file formats are compatible with those of 

the UAM genre, which allows the user to employ widely available software designed specifically 

for these formats to develop the input files or to post-process and visualize the output files. 

Table 5-1. Data requirements of CAMx. 

Data Types Data Fields 

Meteorology

Supplied by a Meteorological Model 

• 3-Dimensional Gridded Fields: 

- Vertical Grid Structure 

- Horizontal Wind Components 

- Temperature 

- Pressure 

- Water Vapor 

- Vertical Diffusivity 

- Clouds/Precipitation 

Air Quality

Obtained from Measured Ambient Data

• Gridded Initial Concentrations 

• Gridded Boundary Concentrations 

Emissions

Supplied by an Emissions Model 

• Elevated Point Sources 

• Combined Gridded Sources 

- Low-level Point 

- Mobile 

- Area/Non-road Mobile 

- Biogenic 

Geographic

Developed from Terrain and 

Landuse/Landcover Maps, 

Drought Index Maps, Modeled or Satellitederived Snow Cover, Satellite-derived LAI

• Gridded Surface Characteristics 

- Land Use Category 

- UV Albedo 

- Snow Cover 

- Leaf area index (LAI) 

- Land/Water Mask 

- Roughness Length 

- Drought Stress 

- Terrain Elevation 

Photolysis

Derived from Satellite Measurements and 

Radiative Transfer Models

• Atmospheric Radiative Properties 

- Gridded Haze Opacity Codes 

- Gridded Ozone Column Codes 

- Photolysis Rates Lookup Table 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-2 

CAMx produces gridded time-averaged concentration output files; the user selects the time 

interval (usually hourly), the species to be output (either “state” species defined in the chemistry 

parameters file or steady-state “radical” species), and whether the output contains just twodimensional surface layer fields or entire three-dimensional fields. A separate average output 

file is written for each grid employed in the simulation in UAM format. Surface deposition 

fields for the same user-selected species are also written to output files with the same structure as 

the average concentration files. Gridded three-dimensional instantaneous concentrations of all 

species on all grids are written at the end of the simulation to allow for a model restart. 

Commonly available graphical visualization and animation software can be used to view CAMx 

average and deposition output files. The CAMx Probing Tool options provide their own 

information in separate output files in UAM format that can be viewed directly or further postprocessed for detailed analysis. Diagnostic output files include three files that track computer 

resources, echo input selections, provide mass budget and diagnostic summaries, and provide 

error/warning messages. 

5.1 CAMx RUN CONTROL FILE 

CAMx reads a text (ASCII) run control file named “CAMx.in” that must exist locally in the 

directory from which the model is run. This file is in the Fortran “namelist” format, and contains 

all user-specified control parameters for a given simulation, including model configuration, 

option-specific inputs, and I/O filenames. The run control file must contain the primary namelist 

module labeled “&CAMx_Control”, which provides all of the information to configure and run 

the core model. Additional namelist modules may be provided in the run control file to 

configure and run the various CAMx Probing Tools. These optional namelist modules are 

ignored if none of the Probing Tools are selected in the primary namelist. 

Each record in the CAMx control file contains a variable name that is explicitly set to a 

numerical, logical, or character value. The variable names are used by the program directly, and 

therefore cannot be changed without source code modifications. Character strings must be 

enclosed by single quotes, and all variable assignments must be delimited with commas. The 

order of the records may be arranged in any fashion that the user prefers. Any number of 

comment statements may be included anywhere within the namelists, provided that they do not 

interrupt “variable_name = value,” assignments. The “!” character is the Fortran 

namelist comment delimiter. 

Certain variables are multi-dimension arrays; the user may provide a comma-delimited list of 

values to fill the array or assign values to specific array elements. Certain other variables are 

optional or associated with option flags; these do not need to appear in the namelist if their 

associated options are not invoked, and they will be ignored if they remain in the file. If the user 

does not provide necessary inputs, the model will stop with a descriptive error message. 

We suggest that users start with the CAMx.in template that is provided with the source code. 

A detailed description of the run control file variables necessary to run the core model are 

provided below. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-3 

Description of the CAMx Run Control File 

&CAMx_Control Label for the primary namelist module that configures the core 

model; it must begin in column 2 

& Flag ending a namelist module; it must be in column 2 

Run_Message 60-character simulation message, written to output files to label 

the run 

Model Clock Control

Time_Zone Integer time zone (0=UTC, 5=EST, 6=CST, 7=MST, 8=PST) 

Restart Logical model restart flag (TRUE=read restart file, FALSE=read 

initial conditions file) 

Start_Date_Hour Integer array start time (YYYY, MM, DD, HHmm) 

End_Date_Hour Integer array end time (YYYY, MM, DD, HHmm) 

Maximum_Timestep Real maximum allowable timestep (minutes) 

Met_Input_Frequency Real input frequency of environmental fields (minutes) 

Ems_Input_Frequency Real input frequency of emissions (minutes) 

Output_Frequency Real output frequency (minutes) 

Map Projection Parameters

Map_Projection Character mapping projection keyword (LAMBERT, POLAR, 

UTM, LATLON) 

UTM_Zone Integer UTM zone 

POLAR_Longitude_Pole Real longitude of projection pole (degrees, west<0) 

POLAR_Latitude_Pole Real latitude of projection pole (degrees, south<0) 

LAMBERT_Center_Longitude Real central longitude of modeling domain (degrees, west<0) 

LAMBERT_Center_Latitude Real central latitude of modeling domain (degrees, south<0) 

LAMBERT_True_Latitude1 Real first true latitude of projection (degrees, south<0) 

LAMBERT_True_Latitude2 Real second true latitude of projection (degrees, south<0) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-4 

Parameters For The Master (First) Grid

Number_of_Grids Integer number of grids in simulation 

Master_Origin_XCoord Real x-coordinate of domain southwest corner (km, or degrees 

for LATLON) 

Master_Origin_YCoord Real y-coordinate of domain southwest corner (km, or degrees 

for LATLON) 

Master_Cell_XSize Real cell size in x (km, or degrees for LATLON) 

Master_Cell_Ysize Real cell size in y (km, or degrees for LATLON) 

Master_Grid_Columns Integer number of master grid columns (E-W grid cells) 

Master_Grid_Rows Integer number of master grid rows (N-S grid cells) 

Number_of_Layers Integer array (by grid) number of grid layers 

Parameters For The Nested Grids

Nest_Meshing_Factor Integer array (by grid) nested grid cell size relative to master grid 

Nest_Beg_I_Index Integer array (by grid) master grid column containing western 

edge of nest 

Nest_End_I_Index Integer array (by grid) master grid column containing eastern 

edge of nest 

Nest_Beg_J_Index Integer array (by grid) master grid row containing southern edge 

of nest 

Nest_End_J_Index Integer array (by grid) master grid row containing northern edge 

of nest 

Model Options

Diagnostic_Error_Check Logical model startup diagnostic flag (TRUE=stops before first 

timestep indicating successful model initialization, 

FALSE=continues with simulation after model initialization) 

Advection_Solver Character horizontal advection solver keyword (PPM, BOTT) 

Chemistry_Solver Character chemistry solver keyword (EBI, IEH, LSODE) 

PiG_Submodel Character PiG submodel keyword (NONE, GREASD, IRON) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-5 

Probing_Tool Character Probing Tool keyword (NONE, OSAT, GOAT, 

APCA, PSAT, DDM, HDDM, PA, IPR, IRR, RTRAC, 

RTCMC) 

Chemistry Logical chemistry flag (TRUE=chemistry on, FALSE=chemistry 

off) 

Drydep_Model Character dry deposition model keyword (NONE, WESELY89, 

ZHANG03) 

Wet_Deposition Logical wet deposition flag (TRUE=deposition on,

FALSE=deposition off) 

ACM2_Diffusion Logical ACM2 vertical diffusion flag (TRUE=ACM2 on, 

FALSE=standard K-theory diffusion) 

TUV_Cloud_Adjust Logical TUV cloud photolysis adjustment flag (TRUE=use inline TUV model [default], FALSE=use original RADM 

parameterization) 

Staggered_Winds Logical staggered input wind field flag (TRUE=winds are input 

at cell interfaces, FALSE=winds are input at cell midpoints) – 

ignored if this flag is provided on input wind files. 

Super_Stepping Logical super-stepping flag (TRUE=use super-stepping for 

horizontal advection to maximize model speed, FALSE=do not 

use super-stepping). 

Gridded_Emissions Logical gridded emissions flag (TRUE=gridded emissions will 

be used, FALSE=gridded emissions will be ignored) 

Point_Emissions Logical elevated point source flag (TRUE=point emissions will 

be used, FALSE=point emissions will be ignored) 

Ignore_Emission_Dates Logical date-insensitive emission flag (TRUE=dates on emission 

files will be ignored, FALSE=dates on emission files will be 

checked against simulation date) 

Output Specifications

Root_Output_Name Character root output path/filename (see Table 5-2 for 

description of file suffixes) 

Average_Output_3D Logical 3-D average output file flag (TRUE=output full 3-D 

concentration fields, FALSE=output surface layer concentration 

fields) 

Output_3D_Grid Logical array (by grid) 3-D average output file flag 

(TRUE=output full 3-D concentration fields for specified grid, 

FALSE=output surface layer concentration fields) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-6 

HDF_Format_Output Logical HDF average output format flag (TRUE=output 

additional HDF format files, FALSE=do not output HDF format 

files) 

HDF_File_Root Character HDF root output path/filename 

Number_of_Output_Species Integer number of species to be written to average and deposition 

output files 

Output_Species_Names Character array (by output species) species names to be written 

to average and deposition output files 

PiG_Sampling_Grid Logical sampling grid flag for IRON PiG output 

(TRUE=sampling grids are specified, FALSE=sampling grids 

will not be generated) 

Sample_Background Logical flag to include background concentrations 

(TRUE=background concentrations from the host computational 

grid will be added to puff increments, FALSE=only puff 

increments will be shown) 

Number_of_Sampling_Grids Integer number of sampling grids 

SG_Beg_I_Index Integer array (by sampling grid) master grid column containing 

western edge of sampling grid 

SG_End_I_Index Integer array (by sampling grid) master grid column containing 

eastern edge of sampling grid 

SG_Beg_J_Index Integer array (by sampling grid) master grid row containing 

southern edge of sampling grid 

SG_End_J_Index Integer array (by sampling grid) master grid row containing 

northern edge of sampling grid 

SG_Mesh_Factor Integer array (by sampling grid) cell size relative to master grid 

Input Files

Chemistry_Parameters Character input chemistry parameters path/filename 

Photolyis_Rates Character input photolysis rates path/filename (optional 

according to Chemistry flag and Chemistry_Parameters file) 

Initial_Conditions Character input master grid initial conditions path/filename 

(ignored if Restart=TRUE) 

Boundary_Conditions Character input master grid boundary conditions path/filename 

Albedo_Haze_Ozone Character input albedo/haze/ozone column path/filename 

(ignored if Chemistry=FALSE and Dry_Deposition=FALSE) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-7 

Point_Sources Character input elevated point source emissions path/filename 

(ignored if Point_Emissions=FALSE) 

Master_Grid_Restart Character input master grid restart path/filename (ignored if 

Restart=FALSE) 

Nested_Grid_Restart Character input nested grid restart path/filename (ignored if 

Restart=FALSE or Number_of_Grids=1) 

PiG_Restart Character input PiG restart path/filename (ignored if 

Restart=FALSE or PiG_Submodel=FALSE) 

Landuse_Grid Character array (by grid) input landuse path/filename (ignored if 

Dry_Deposition=FALSE and PiG_Submodel=NONE, optional 

for nested grids) 

ZP_Grid Character array (by grid) input height/pressure path/filename 

(optional for nested grids) 

Wind_Grid Character array (by grid) input wind path/filename (optional for 

nested grids) 

Temp_Grid Character array (by grid) input temperature path/filename 

(optional for nested grids) 

Vapor_Grid Character array (by grid) input water vapor path/filename 

(ignored if Chemistry=FALSE and Dry_Deposition=FALSE and 

Wet_Deposition=FALSE, optional for nested grids) 

Cloud_Grid Character array (by grid) input cloud/rain path/filename 

(required if Wet_Deposition=TRUE, otherwise optional, 

optional for nested grids) 

Kv_Grid Character array (by grid) input vertical diffusivity path/filename 

(optional for nested grids) 

Emiss_Grid Character array (by grid) input gridded emissions path/filename 

(ignored if Gridded_Emissions=FALSE, optional for nested 

grids) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-8 

The order of the variables follows the template available with the source code. The Probing 

Tools require separate additional namelist modules in the run control file, and their contents vary 

among the various options. The specific run control information needed for each of these 

options is provided in Sections 6 through 10. 

The short simulation “run message” is written to all output files to describe and label the run. 

The user specifies the simulation start/end year, month, day, and hour; the model uses julian 

dates internally. All times must be given in military format (e.g., 1:30 PM must be given as 

1330). The simulation time zone must match the time zone in which the emission and 

environmental inputs are developed, usually the most central time zone in the domain. 

The grid projection may be selected as Cartesian (fixed physical distance coordinates on a flat 

plane) or curvi-linear geodetic (following the curved surface of the Earth). The Cartesian 

options include Universal Transverse Mercator (UTM), Lambert Conic Conformal 

(LAMBERT), and Rotated Polar Stereographic (POLAR). The geodetic option performs the 

simulation on a latitude/longitude grid (LATLON). All gridded input files must be defined on 

the grid projection specified for the CAMx simulation. The definition of nested grids is specified 

in the CAMx.in file in terms of the range of master grid cells that each nested grid spans (see 

Section 2). 

The user has the option of selecting among the Bott or Piecewise Parabolic Method horizontal 

advection solvers by specifying “BOTT” or “PPM” as keywords in the run control file. The user 

also has the option to use the EBI, IEH, or LSODE chemistry solvers for gas-phase chemistry by 

specifying these respective keywords. Probing Tools are selected by specifying one of the 

allowed keywords; no Probing Tool will be run if this keyword is set to “None”. 

Super stepping maximizes the model’s speed performance by setting the largest grid-specific 

driving time steps possible. This results in the need for potentially many sub-steps to be applied 

in horizontal advection on a layer-by-layer basis to maintain a stable solution. Prior to version 

5.00, super stepping was performed automatically (transparent to the user). While super stepping 

has little impact on surface concentrations in non-MPI mode, larger differences are seen using 

MPI. A “super-stepping” flag was added to the control namelist that allows users to specifically 

turn off super stepping when they wish to compare concentrations between MPI and non-MPI 

runs in the most consistent manner possible. Super stepping can reduce the accuracy of the 

vertical transport solution, especially in high wind conditions over complex terrain. 

The user specifies a “root” path and filename that will be used for all standard CAMx core model 

output files. The model appends suffixes to these root names according to the file type 

generated. Alternatively, the user may select HDF5 output files. In this case, a separate HDF 

root path and filename is required, and CAMx will automatically generate grid- and hourspecific average concentration and sampling grid output files in HDF5 format in lieu of the 

standard UAM file formats. The relationship between CAMx file types is shown in Table 5-2. 

A subset of species and steady-state radicals may be output to the average concentration output 

files; see the description of output file formats later in this section. There are two flags that 

control whether 3-D average output files are generated. The first (original) flag will toggle 3-D 

output for all grids in the run. The second is the “Output_3D_Grid” flag array, which allows 

3-D average output to be set for specific grids. The original flag supersedes the grid-specific 

flag. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-9 

Table 5-2. CAMx output file suffixes and their corresponding file types. 

Suffix CAMx File Type 

.out Text simulation tracking file (CPU, input files read, error/warning 

messages) 

.diag Text simulation diagnostic file (repeat of run control inputs, PiG 

diagnostics, miscellaneous diagnostic output) 

.mass Text mass budget file for subsequent postprocessing 

.inst Binary master grid instantaneous concentration file at the end of the 

simulation (used for restarts) 

.finst Binary nested grid instantaneous concentration file at the end of the 

simulation (used for restarts) 

.PiG Binary PiG sub-model file (used for restarts) 

Standard CAMx Output Option 

.avrg.grdnn

Binary (UAM format) average concentration file for grid nn; optionally 

contains 2-D layer 1 concentration field or full 3-D concentration field 

.depn.grdnn Binary (UAM format) surface deposition file for grid nn

.smpnn

Binary (UAM format) average surface concentration file for PiG 

sampling grid nn (optional) 

HDF5 Output Option 

-CX-YYYY-MM-DD-HHMMSS-head.txt 

 Text header file for all grids at specific date/time 

-CX-YYYY-MM-DD-HHMMSS-gnn.h5 

 HDF average concentration file for grid nn at specific date/time; 

 optionally contains 2-D layer 1 concentration field or full 3-D 

 concentration field 

-CS-YYYY-MM-DD-HHMMSS-head.txt (optional) 

 Text header file for all sampling grids at specific date/time 

-CS-YYYY-MM-DD-HHMMSS-gnn.h5 (optional) 

 HDF average surface concentration file for sampling grid nn at 

 specific date/time 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-10 

The description of PiG submodel is provided in Section 4. PiG sampling grids are set identically 

to the way nested grids are specified for the host model, with one exception: there are no vertical 

levels to define (sampling grids are currently only 2-D surface fields). The same rules that apply 

for the specification of nested grids holds for the specification of all sampling grids (see Section 

2 of the User’s Guide). The “mesh factor” sets the resolution or cell size of the sampling grid 

relative to the master grid. The CAMx diagnostic output file provides information on the 

location and size of each sampling grid to help ensure proper setup. 

If CAMx cannot find or open a non-blank input filename provided in the run control file, the 

model will stop with an error. CAMx will accept blank input filenames for only those files that 

are optional. 

On computer platforms running Unix or Linux the generation of the run control file is most 

easily accomplished in the job script that actually runs the model; Figure 5-1 shows an example 

of a CAMx job script that builds a “CAMx.in” file and runs the model for each day to be 

simulated. Alternatively, the run control file could be written separately with a name specific to 

a given simulation, then linked or copied to the standard “CAMx.in” filename before the model 

is executed at a command line or in a job script.
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-11 

#!/bin/csh 

# 

# CAMx 5.30 

# 

setenv OMP_NUM_THREADS 4 

setenv MPSTKZ 128M 

limit stacksize unlimited 

# 

set EXEC = "../../src/CAMx.v5.30.noMPI.pg_linuxomp" 

# 

set RUN = "v5.30.midwest.36.12.noMPI" 

set INPUT = "../inputs" 

set MET = "../inputs/met" 

set EMIS = "../emiss" 

set PTSRCE = "../ptsrce" 

set OUTPUT = "../outputs" 

# 

mkdir -p $OUTPUT 

# 

# --- set the dates and times ---- 

# 

set RESTART = "NO" 

foreach today (03.154 04.155) 

set JUL = $today:e 

set CAL = $today:r 

set YESTERDAY = `echo ${CAL} | awk '{printf("%2.2d",$1-1)}'` 

# 

if( ${RESTART} == "NO" ) then 

 set RESTART = "false" 

else 

 set RESTART = "true" 

endif 

# 

# --- Create the input file (always called CAMx.in) 

# 

cat << ieof > CAMx.in 

 &CAMx_Control 

 Run_Message = 'CAMx 5.30 Test Problem -- Mech6 CF CB05 $RUN', 

!--- Model clock control --- 

 Time_Zone = 0, ! (0=UTC,5=EST,6=CST,7=MST,8=PST) 

 Restart = .${RESTART}., 

 Start_Date_Hour = 2002,06,${CAL},0000, ! (YYYY,MM,DD,HHmm) 

 End_Date_Hour = 2002,06,${CAL},2400, ! (YYYY,MM,DD,HHmm) 

 Maximum_Timestep = 15., ! minutes 

 Met_Input_Frequency = 60., ! minutes 

 Ems_Input_Frequency = 60., ! minutes 

 Output_Frequency = 60., ! minutes 

!--- Map projection parameters --- 

 Map_Projection = 'LAMBERT', ! (LAMBERT,POLAR,UTM,LATLON) 

 LAMBERT_Central_Meridian = -97., ! deg (west<0,south<0) 

 LAMBERT_Center_Longitude = -97., ! deg (west<0,south<0) 

 LAMBERT_Center_Latitude = 40., ! deg (west<0,south<0) 

 LAMBERT_True_Latitude1 = 45., ! deg (west<0,south<0) 

 LAMBERT_True_Latitude2 = 33., ! deg (west<0,south<0) 

Figure 5-1. A sample CAMx job script that generates a “CAMx.in” file and runs the model.
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-12 

!--- Parameters for the master (first) grid --- 

 Number_of_Grids = 2, 

 Master_Origin_XCoord = -792., ! km or deg, SW corner of cell(1,1) 

 Master_Origin_YCoord = -1656., ! km or deg, SW corner of cell (1,1) 

 Master_Cell_XSize = 36., ! km or deg 

 Master_Cell_YSize = 36., ! km or deg 

 Master_Grid_Columns = 68, 

 Master_Grid_Rows = 68, 

 Number_of_Layers(1) = 16, 

!--- Parameters for the second grid --- 

 Nest_Meshing_Factor(2) = 3, ! Cell size relative to master grid 

 Nest_Beg_I_Index(2) = 22, ! Relative to master grid 

 Nest_End_I_Index(2) = 51, ! Relative to master grid 

 Nest_Beg_J_Index(2) = 22, ! Relative to master grid 

 Nest_End_J_Index(2) = 58, ! Relative to master grid 

 Number_of_Layers(2) = 16, 

!--- Model options --- 

 Diagnostic_Error_Check = .false., ! True = will stop after 1st timestep 

 Advection_Solver = 'PPM', ! (PPM,BOTT) 

 Chemistry_Solver = 'EBI', ! (EBI,IEH,LSODE) 

 PiG_Submodel = 'None', ! (None,GREASD,IRON) 

 Probing_Tool = 'None', ! (None,OSAT,GOAT,APCA,PSAT,DDM, 

 HDDM,PA,IPR,IRR,RTRAC,RTCMC) 

 Chemistry = .true., 

 Drydep_Model = ‘WESELY89’, ! (NONE, WESELY89, ZHANG03) 

 Wet_Deposition = .true., 

 ACM2_Diffusion = .false., 

 TUV_Cloud_Adjust = .true., 

 Staggered_Winds = .true., 

 Super_Stepping = .true., 

 Gridded_Emissions = .true., 

 Point_Emissions = .true., 

 Ignore_Emission_Dates = .true., 

!--- Output specifications --- 

 Root_Output_Name = '$OUTPUT/CAMx.$RUN.200206${CAL}', 

 Average_Output_3D = .false., 

 HDF_Format_Output = .false., 

 Number_of_Output_Species = 21, 

 Output_Species_Names(1) = 'NO', 

 Output_Species_Names(2) = 'NO2', 

 Output_Species_Names(3) = 'O3', 

 Output_Species_Names(4) = 'SO2', 

 Output_Species_Names(5) = 'H2O2', 

 Output_Species_Names(6) = 'HNO3', 

 Output_Species_Names(7) = 'NH3', 

 Output_Species_Names(8) = 'PNO3', 

 Output_Species_Names(9) = 'PSO4', 

 Output_Species_Names(10) = 'PNH4', 

 Output_Species_Names(11) = 'POA', 

 Output_Species_Names(12) = 'PEC', 

 Output_Species_Names(13) = 'FPRM', 

 Output_Species_Names(14) = 'CPRM', 

 Output_Species_Names(15) = 'CCRS', 

 Output_Species_Names(16) = 'FCRS', 

 Output_Species_Names(17) = 'SOA1', 

 Output_Species_Names(18) = 'SOA2', 

 Output_Species_Names(19) = 'SOA3', 

 

Figure 5-1. (continued). 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-13 

 Output_Species_Names(20) = 'SOA4', 

 Output_Species_Names(21) = 'SOA5', 

!--- Input files --- 

 Chemistry_Parameters = '$INPUT/CAMx5.2.chemparam.6_CF', 

 Photolyis_Rates = '$INPUT/tuv.200206.STL.txt', 

 Initial_Conditions = '$INPUT/IC.vistas_2002gt2a_STL_36_68X68_16L.2002081', 

 Boundary_Conditions = '$INPUT/BC.vistas_2002gt2a_STL_36_68X68_16L.2002${JUL}', 

 Albedo_Haze_Ozone = '$INPUT/ahomap.200206.STL_36_68X68_12_92X113.txt', 

 Point_Sources = '$PTSRCE/ptsrce.stl.36km.2002${JUL}.a0.bin', 

 Master_Grid_Restart = '$OUTPUT/CAMx.$RUN.200206${YESTERDAY}.inst', 

 Nested_Grid_Restart = '$OUTPUT/CAMx.$RUN.200206${YESTERDAY}.finst', 

 PiG_Restart = ' ', 

 Emiss_Grid(1) = '$EMIS/emiss.stl.36km.200206${CAL}.a1.bin', 

 Landuse_Grid(1) = '$INPUT/lu.STL_36_68X68.bin', 

 ZP_Grid(1) = '$INPUT/met/camx.zp.200206${CAL}.36k.bin', 

 Wind_Grid(1) = '$INPUT/met/camx.uv.200206${CAL}.36k.bin', 

 Temp_Grid(1) = '$INPUT/met/camx.tp.200206${CAL}.36k.bin', 

 Vapor_Grid(1) = '$INPUT/met/camx.qa.200206${CAL}.36k.bin', 

 Cloud_Grid(1) = '$INPUT/met/camx.cr.200206${CAL}.36k.bin', 

 Kv_Grid(1) = '$INPUT/met/camx.kv.200206${CAL}.36k.bin', 

 Emiss_Grid(2) = '$EMIS/emiss.stl.12kmsmall.200206${CAL}.a1.bin', 

 Landuse_Grid(2) = '$INPUT/lu.STL_12_92X113.bin', 

 ZP_Grid(2) = '$INPUT/met/camx.zp.200206${CAL}.12ksmall.bin', 

 Wind_Grid(2) = '$INPUT/met/camx.uv.200206${CAL}.12ksmall.bin', 

 Temp_Grid(2) = '$INPUT/met/camx.tp.200206${CAL}.12ksmall.bin', 

 Vapor_Grid(2) = '$INPUT/met/camx.qa.200206${CAL}.12ksmall.bin', 

 Cloud_Grid(2) = '$INPUT/met/camx.cr.200206${CAL}.12ksmall.bin', 

 Kv_Grid(2) = '$INPUT/met/camx.kv.200206${CAL}.12ksmall.bin', 

 / 

!------------------------------------------------------------------------------- 

ieof 

# 

# --- Execute the model --- 

# 

if( ! { $EXEC } ) then 

 exit 

endif 

end 

Figure 5-1. (concluded).
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-14 

5.2 CAMx CHEMISTRY PARAMETERS FILE 

Chemistry parameters are provided in a text (ASCII) file that provides chemical information for 

the simulation and selects which mechanism is to be used. The chemistry parameters file format 

is unique to CAMx; the formats are defined in Table 5-3, and samples are given in Figure 5-2. 

Some records in this file are labeled (columns 1-20) to indicate the type of information to supply 

on that line (starting in column 21). For records that are not labeled, data start in column 1. 

Some chemistry parameter records are optional, depending upon the logical flags indicated for 

such records, and are shown in Table 5-3 by a check in the third column; if the indicated option 

is not invoked these records should not appear in the file. The first record of the chemistry 

parameters file must contain the string “VERSION5.3”, which indicates that this file is 

compatible with CAMx version 5.20. 

If the chemistry flag is set “true” on the CAMx.in file, CAMx checks that certain properties of 

the selected mechanism are consistent with parameters supplied on the input file (e.g., number of 

reactions, photolysis reactions and species). If any discrepancies are found, they are reported in 

the output message file and the simulation is halted. The user may also specify an inert 

simulation by setting the chemistry flag to “false”. In this case, any number of arbitrarily named 

species may be listed, and chemistry reaction parameters are read but not used. The lower bound 

values specified in the chemistry parameter file are used to specify initial and/or boundary 

conditions for species that are omitted from the initial and/or boundary condition files. The 

Henry’s Law, diffusion, reactivity, and surface resistance scaling parameters for gases are used 

for dry deposition calculations (Wesley, 1989). Aerosol density and diameters are used for both 

wet and dry deposition calculations. 

The chemistry parameters file controls how photolysis rates are calculated in CAMx. So-called 

“primary” photolysis rates are input to CAMx via the photolysis rates file. The primary 

photolysis reactions are identified by number in the chemistry parameters file and the photolysis 

rates file must match this declaration. So-called “secondary” photolysis rates are set by scaling 

factors to one of the primary reactions. Clearly, this approach requires at least one primary 

photolysis reaction. 

CAMx supports several equations for specifying rate constants, as shown in Table 5-4a. The 

type of equation used for each reaction is identified by the second parameter specified for each 

reaction – a number between 1 and 7 (Table 5-3). The number of additional parameters required 

depends upon the expression type and varies between 2 and 13, as shown in Table 5-4b. 

Currently, the CB4 mechanisms implemented in CAMx (Table 3-1) use expression types 1, 2, 4 

and 7, whereas CB05 uses types 1, 3, 4, and 7, and SAPRC99 uses types 1, 3, 4, 6 and 7. 

Expression type 4 (Troe expression) allows for a complete description of dependencies on 

temperature and pressure; background information on Troe expressions may be found in the 

NASA and IUPAC rate constant compilations (NASA, 1997; IUPAC, 1992). 

Rate constants can be specified in molecular units (e.g., cm3

 molecule-1 s

-1) or ppm units (e.g., 

ppm

-1 min-1). All the rate constants must be in a single units system; CAMx will determine 

which units system is being used from the magnitude of the rate constants. Diagnostic 

information on the rate constants and units system is output by CAMx at run-time.
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-15 Table 5-3. Description of the CAMx chemistry parameters file. The record labels exist in columns 1-20, and where given, the input 

data for that record start in column 21. The format denoted “list” indicates a free-format list of numbers (comma or space-delimited). 

Record Label(columns 1-20)

Record

Optional Format Description

CAMx version A Model version keyword (VERSION5.3) Mechanism ID list ID number of chemical mechanism (see Table 3-1) Aerosol Option A Keyword for aerosol scheme (CF, CMU, or NONE)1Description A Message record to describe this file No of gas species list Number of gas species (NGAS ≥ 1) No of aero species list 

Number of aerosol species (NAERO ≥ 0) 

Aerosol chemistry timestep (min) (if NAERO > 0) 

Number of size bins (NBIN ≥ 1) (if NAERO > 0)2

Aerosol diameter (μm) for NBIN+1 cut points (if NAERO > 0) 

No of reactions list Number of reactions (NREACT ≥ 0) Prim photo rxns list Number of primary photolysis reactions (NPHOT1 ≥ 0) List of primary photolysis reaction ID numbers (must match the photolysis rates input file) No of sec photo rxn list Number of secondary photolysis reactions (NPHOT2 ≥ 0) ID, prim ID, scale √ list 

If NPHOT2 > 0, repeat this record for each secondary photolysis reaction 

ID number of the secondary photolysis reaction ID number of the primary photolysis reaction used for scaling Secondary reaction scale factor 

Species Records Heading Gas Spec ... Heading 

5X, 

A10, 

E10.0, 

E10.0, 

F10.0, F10.0, 

F10.0 F10.0 

Repeat this record for each gas species (start in column 1) Gas species name Lower bound concentration (ppm) Henry’s law constant (M/atm) Henry’s law temperature dependence (K) Molecular diffusivity ratio Wesley’s reactivity parameter Surface resistance scaling factor for strong acids (0-1) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-16 Table 5-3. (Continued) Description of the CAMx chemistry parameters file. The record labels exist in columns 1-20, and where 

given, the input data for that record start in column 21. The format denoted “list” indicates a free-format list of numbers (comma or 

space-delimited). 

Record Label(columns 1-20)

Record

Optional Format Description

Aero Spec ... √ Heading (if NAERO > 0) 

√

5X, 

A10, 

E10.0, 

F10.0 

If NAERO > 0, repeat this record for each aerosol species (start in column 1) 

Aerosol species name 

Lower bound concentration (μg/m3) 

Species density (g/cm3) 

Reaction Records √ Heading (if NREACT > 0) Rxn Typ Param ... √ Heading (if NREACT > 0) 

√ list 

If NREACT > 0, repeat this record for each gas-phase reaction (start in column 1) 

Reaction ID number Rate constant expression ID number (1-7, as shown in Table 5-4) Rate constant parameters (depending on expression type in Table 5-4). For reactions identified as photolysis reactions above, the rate constant is not used and is customarily set to zero. 

1 Used only for Mechanisms 4, 5 or 6 (otherwise can be left blank): CF = Coarse/Fine scheme; CMU = multi-sectional scheme; 

NONE = gas-phase chemistry only. 

2 For the CF scheme, NBIN must be set to 2, and the user specifies the coarse/fine size ranges. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-17 

CAMx Version |VERSION5.3 

Mechanism ID |6 

Aerosol Option |CF 

Description |CB05 plus PM (CF) with Hg: PNA rates set to 0; molecular units 

No of gas species |54 

#aero, dt, bins |22 15.0 2 0.039 2.5 10.0 

No of reactions |156 

Prim photo rxns |19 1 8 9 14 15 25 36 51 52 53 62 65 75 76 87 91 102 143 152 

No of sec photo rxn|4 

ID, prim ID, scale |72 65 1.0 

 |97 65 0.0 

 |106 91 1.0 

 |138 75 9.0 

Species Records 

 Gas Spec lower bnd H-law T-fact Diffrat Reactvty Rscale 

 1 NO 1.00E-15 1.90e-03 -1480. 1.29 0.0 1. 

 2 NO2 1.00E-09 1.00e-02 -2516. 1.60 0.8 1. 

 3 O3 1.00E-09 1.10e-02 -2415. 1.63 1.0 1. 

 4 PAN 1.00E-09 3.60e+00 -5910. 2.59 0.6 1. 

 5 NO3 1.00E-12 1.00e+05 -4000. 1.86 0.1 0. 

 6 N2O5 1.00E-12 1.00e+05 -4000. 2.45 0.1 0. 

 7 OLE 1.00E-09 5.00e-03 -4000. 1.80 0.0 1. 

 8 PAR 1.00E-04 1.00e-03 -4000. 2.00 0.0 1. 

 9 TOL 1.00E-09 1.20e+00 -4000. 2.26 0.0 1. 

 10 XYL 1.00E-09 1.40e+00 -4000. 2.43 0.0 1. 

 11 FORM 1.00E-09 6.30e+03 -6492. 1.29 0.0 1. 

 12 ALD2 1.00E-09 6.30e+03 -6492. 1.56 0.0 1. 

 13 ETH 1.00E-09 1.00e-02 -4000. 1.25 0.0 1. 

 14 CRES 1.00E-09 2.70e+03 -6492. 2.45 0.0 1. 

 15 MGLY 1.00E-09 2.70e+03 -6492. 2.00 0.0 1. 

 16 OPEN 1.00E-12 2.70e+03 -6492. 2.47 0.0 1. 

 17 PNA 1.00E-09 2.00e+04 -5910. 2.09 1.0 1. 

 18 CO 1.00E-04 1.00e-10 0. 1.25 0.0 1. 

 19 HONO 1.00E-09 5.90e+01 -4781. 1.62 1.0 1. 

 20 H2O2 1.00E-09 7.40e+04 -6643. 1.37 1.0 0. 

 21 HNO3 1.00E-09 2.10e+05 -8707. 1.87 0.0 0. 

 22 ISOP 1.00E-09 1.00e-02 -4000. 1.94 0.0 1. 

 23 MEOH 1.00E-09 2.20e+02 -4932. 1.33 0.0 1. 

 24 ETOH 1.00E-09 2.20e+02 -4932. 1.60 0.0 1. 

 25 ISPD 1.00E-09 6.30e+03 -6492. 1.97 0.0 1. 

 26 NTR 1.00E-09 9.40e+03 -8706. 2.72 0.0 1. 

 27 SO2 1.00E-09 1.22e+00 -3156. 1.89 0.0 1. 

 28 SULF 1.00E-12 1.00e+10 0. 2.33 0.0 0. 

 29 ROOH 1.00E-12 1.00E+02 -4000. 2.06 0.8 0. 

 30 ALDX 1.00E-12 6.30E+03 -6492. 1.80 0.0 1. 

 31 MEPX 1.00E-12 3.05E+02 -5250. 1.63 0.8 0. 

 32 FACD 1.00E-12 5.68E+03 -6060. 1.83 0.0 1. 

 33 PACD 1.00E-12 5.00E+03 -4000. 2.24 0.0 1. 

 34 AACD 1.00E-12 5.00E+03 -4000. 2.03 0.0 1. 

 35 PANX 1.00E-09 3.60E+00 -5910. 2.74 0.6 1. 

 36 ETHA 1.00E-04 1.73E-03 -4000. 1.43 0.0 1. 

 37 IOLE 1.00E-12 5.00E-03 -4000. 2.05 0.0 1. 

 38 TERP 1.00E-12 4.90E-02 -4000. 2.75 0.0 1. 

 39 NH3 1.00E-09 5.76e+01 -4100. 0.97 0.0 0. 

 40 HCL 1.00E-12 1.00e+05 -4000. 1.42 0.0 0. 

 41 TOLA 1.00E-09 1.20e+00 -4000. 2.26 0.0 1. 

 42 XYLA 1.00E-09 1.40e+00 -4000. 2.43 0.0 1. 

 43 ISP 1.00E-09 1.00e-02 -4000. 1.94 0.0 1. 

 44 TRP 1.00E-12 4.90e-02 -4000. 2.75 0.0 1. 

 45 SQT 1.00E-12 4.90e-02 -4000. 3.37 0.0 1. 

 46 CG1 1.00E-12 1.00e+05 -4000. 2.89 0.0 1. 

 47 CG2 1.00E-12 1.00e+05 -4000. 2.89 0.0 1. 

 48 CG3 1.00E-12 1.00e+05 -4000. 2.69 0.0 1. 

Figure 5-2a. Example CAMx chemistry parameters file for Mechanism 6 (CF scheme), 

including the mercury species HG0, HG2, and HGP. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-18 

 49 CG4 1.00E-12 1.00e+05 -4000. 2.69 0.0 1. 

 50 CG5 1.00E-12 1.00e+05 -4000. 3.16 0.0 1. 

 51 CG6 1.00E-12 1.00e+05 -4000. 3.16 0.0 1. 

 52 CG7 1.00E-12 1.00e+05 -4000. 3.42 0.0 1. 

 53 HG0 1.00E-12 1.00e-10 0. 3.34 0.0 1. 

 54 HG2 1.00E-12 2.00e+05 -4000. 3.76 0.0 1. 

 Aero Spec lower bnd Density 

 1 PNO3 1.00E-09 1.5 

 2 PSO4 1.00E-09 1.5 

 3 PNH4 1.00E-09 1.5 

 4 POA 1.00E-09 1.0 

 5 SOA1 1.00E-09 1.0 

 6 SOA2 1.00E-09 1.0 

 7 SOA3 1.00E-09 1.0 

 8 SOA4 1.00E-09 1.0 

 9 SOA5 1.00E-09 1.0 

 10 SOA6 1.00E-09 1.0 

 11 SOA7 1.00E-09 1.0 

 12 SOPA 1.00E-09 1.0 

 13 SOPB 1.00E-09 1.0 

 14 PEC 1.00E-09 2.0 

 15 FPRM 1.00E-09 3.0 

 16 FCRS 1.00E-09 3.0 

 17 CPRM 1.00E-09 3.0 

 18 CCRS 1.00E-09 3.0 

 19 NA 1.00E-09 2.0 

 20 PCL 1.00E-09 2.0 

 21 HGP 1.00E-12 2.0 

 22 PH2O 1.00E-09 1.0 

Reaction Records 

Rxn Typ Order Parameters (1 to 12, depending upon Typ) 

1 1 1 0.000E+00 

2 3 3 6.000E-34 0.0 -2.40 300.0

3 3 2 3.000E-12 1500.0 0.00 300.0

4 3 2 5.600E-12 -180.0 0.00 300.0

5 4 2 2.500E-31 0.0 -1.80 300.0 2.200E-11 0.0 -

0.70 300.0 0.60 1.00 

6 4 2 9.000E-32 0.0 -1.50 300.0 3.000E-11 0.0 0.00 

300.0 0.60 1.00 

7 3 2 1.200E-13 2450.0 0.00 300.0

8 1 1 0.000E+00 

9 1 1 0.000E+00 

10 3 2 2.100E-11 -102.0 0.00 300.0

11 1 2 2.200E-10 

12 3 2 1.700E-12 940.0 0.00 300.0

13 3 2 1.000E-14 490.0 0.00 300.0

14 1 1 0.000E+00 

15 1 1 0.000E+00 

16 3 2 1.500E-11 -170.0 0.00 300.0

17 3 2 4.500E-14 1260.0 0.00 300.0

18 4 2 2.000E-30 0.0 -4.40 300.0 1.400E-12 0.0 -

0.70 300.0 0.60 1.00 

19 1 2 2.500E-22 

20 1 3 1.800E-39 

21 4 1 1.000E-03 11000.0 -3.50 300.0 9.700E+14 11080.0 0.10 

300.0 0.45 1.00 

22 3 3 3.300E-39 -530.0 0.00 300.0

23 1 3 5.000E-40 

24 4 2 7.000E-31 0.0 -2.60 300.0 3.600E-11 0.0 -

0.10 300.0 0.60 1.00 

25 1 1 0.000E+00 

26 3 2 1.800E-11 390.0 0.00 300.0

27 1 2 1.000E-20 

Figure 5-2a. (continued). 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-19 

28 4 2 2.000E-30 0.0 -3.00 300.0 2.500E-11 0.0 0.00 

300.0 0.60 1.00 

29 6 2 2.400E-14 -460.0 0.00 300.0 2.700E-17 -2199.0 0.00 

300.0 6.500E-34 -1335.0 0.00 300.0 

30 3 2 3.500E-12 -250.0 0.00 300.0

31 1 2 0.000E+00 

32 1 1 0.000E+00 

33 1 2 0.000E+00 

34 7 2 2.300E-13 -600.0 0.00 300.0 1.700E-33 -1000.0 0.00 

300.0 

35 7 3 3.220E-34 -2800.0 0.00 300.0 2.380E-54 -3200.0 0.00 

300.0 

36 1 1 0.000E+00 

37 3 2 2.900E-12 160.0 0.00 300.0

38 1 2 1.100E-10 

39 3 2 5.500E-12 2000.0 0.00 300.0

40 3 2 2.200E-11 -120.0 0.00 300.0

41 3 2 4.200E-12 240.0 0.00 300.0

42 4 2 6.900E-31 0.0 -1.00 300.0 2.600E-11 0.0 0.00 

300.0 0.60 1.00 

43 3 2 4.800E-11 -250.0 0.00 300.0

44 3 2 3.000E-11 -200.0 0.00 300.0

45 3 2 1.400E-12 2000.0 0.00 300.0

46 1 2 1.000E-11 

47 1 2 2.200E-11 

48 1 2 3.500E-12 

49 1 2 1.000E-17 

50 3 2 8.500E-13 2450.0 0.00 300.0

51 1 1 0.000E+00 

52 1 1 0.000E+00 

53 1 1 0.000E+00 

54 3 2 2.600E-12 -365.0 0.00 300.0

55 3 2 2.600E-12 -365.0 0.00 300.0

56 3 2 7.500E-13 -700.0 0.00 300.0

57 3 2 7.500E-13 -700.0 0.00 300.0

58 1 2 6.800E-14 

59 1 2 6.800E-14 

60 1 2 6.800E-14 

61 3 2 5.900E-13 360.0 0.00 300.0

62 1 1 0.000E+00 

63 4 2 3.000E-31 0.0 -3.30 300.0 1.500E-12 0.0 0.00 

300.0 0.60 1.00 

64 3 2 3.010E-12 -190.0 0.00 300.0

65 1 1 0.000E+00 

66 7 2 1.440E-13 0.0 0.00 300.0 3.430E-33 0.0 0.00 

300.0 

67 3 2 2.450E-12 1775.0 0.00 300.0

68 3 2 2.800E-12 -300.0 0.00 300.0

69 3 2 4.100E-13 -750.0 0.00 300.0

70 3 2 9.500E-14 -390.0 0.00 300.0

71 3 2 3.800E-12 -200.0 0.00 300.0

72 1 1 0.000E+00 

73 3 2 7.300E-12 620.0 0.00 300.0

74 1 2 9.000E-12 

75 1 1 0.000E+00 

76 1 1 0.000E+00 

77 3 2 3.400E-11 1600.0 0.00 300.0

78 1 2 5.800E-16 

79 3 2 9.700E-15 -625.0 0.00 300.0

80 3 1 2.400E+12 7000.0 0.00 300.0

81 1 2 5.600E-12 

82 3 2 5.600E-15 -2300.0 0.00 300.0

83 1 2 4.000E-13 

Figure 5-2a. (continued). 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-20 

84 3 2 1.800E-11 1100.0 0.00 300.0

85 3 2 5.600E-12 -270.0 0.00 300.0

86 3 2 1.400E-12 1900.0 0.00 300.0

87 1 1 0.000E+00 

88 3 2 8.100E-12 -270.0 0.00 300.0

89 4 2 2.700E-28 0.0 -7.10 300.0 1.200E-11 0.0 -

0.90 300.0 0.30 1.00 

90 4 1 4.900E-03 12100.0 0.00 300.0 5.400E+16 13830.0 0.00 

300.0 0.30 1.00 

91 1 1 0.000E+00 

92 3 2 4.300E-13 -1040.0 0.00 300.0

93 3 2 2.000E-12 -500.0 0.00 300.0

94 3 2 4.400E-13 -1070.0 0.00 300.0

95 3 2 2.900E-12 -500.0 0.00 300.0

96 3 2 4.000E-13 -200.0 0.00 300.0

97 1 1 0.000E+00 

98 3 2 4.000E-13 -200.0 0.00 300.0

99 3 2 1.300E-11 870.0 0.00 300.0

100 3 2 5.100E-12 -405.0 0.00 300.0

101 1 2 6.500E-15 

102 1 1 0.000E+00 

103 3 2 6.700E-12 -340.0 0.00 300.0

104 4 2 2.700E-28 0.0 -7.10 300.0 1.200E-11 0.0 -

0.90 300.0 0.30 1.00 

105 4 1 4.900E-03 12100.0 0.00 300.0 5.400E+16 13830.0 0.00 

300.0 0.30 1.00 

106 1 1 0.000E+00 

107 1 2 3.000E-13 

108 3 2 4.300E-13 -1040.0 0.00 300.0

109 3 2 2.000E-12 -500.0 0.00 300.0

110 3 2 4.400E-13 -1070.0 0.00 300.0

111 3 2 2.900E-12 -500.0 0.00 300.0

112 3 2 2.900E-12 -500.0 0.00 300.0

113 3 2 8.700E-12 1070.0 0.00 300.0

114 3 2 6.900E-12 230.0 0.00 300.0

115 1 2 8.100E-13 

116 3 1 1.000E+15 8000.0 0.00 300.0

117 1 1 1.600E+03 

118 1 2 1.500E-11 

119 3 2 1.000E-11 280.0 0.00 300.0

120 1 2 3.200E-11 

121 3 2 6.500E-15 1900.0 0.00 300.0

122 3 2 7.000E-13 2160.0 0.00 300.0

123 3 2 1.040E-11 792.0 0.00 300.0

124 4 2 1.000E-28 0.0 -0.80 300.0 8.800E-12 0.0 0.00 

300.0 0.60 1.00 

125 3 2 1.200E-14 2630.0 0.00 300.0

126 3 2 3.300E-12 2880.0 0.00 300.0

127 1 2 2.300E-11 

128 3 2 1.000E-11 -550.0 0.00 300.0

129 3 2 8.400E-15 1100.0 0.00 300.0

130 3 2 9.600E-13 270.0 0.00 300.0

131 3 2 1.800E-12 -355.0 0.00 300.0

132 1 2 8.100E-12 

133 1 1 4.200E+00 

134 1 2 4.100E-11 

135 1 2 2.200E-11 

136 1 2 1.400E-11 

137 1 2 5.500E-12 

138 1 1 0.000E+00 

139 1 2 3.000E-11 

140 3 2 5.400E-17 500.0 0.00 300.0

141 3 2 1.700E-11 -116.0 0.00 300.0

Figure 5-2a. (continued). 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-21 

142 1 2 1.700E-11 

143 1 1 0.000E+00 

144 1 2 3.600E-11 

145 3 2 2.540E-11 -407.6 0.00 300.0

146 3 2 7.860E-15 1912.0 0.00 300.0

147 3 2 3.030E-12 448.0 0.00 300.0

148 1 2 1.500E-19 

149 1 2 3.360E-11 

150 1 2 7.100E-18 

151 1 2 1.000E-15 

152 1 1 0.000E+00 

153 1 2 3.600E-11 

154 3 2 1.500E-11 -449.0 0.00 300.0

155 3 2 1.200E-15 821.0 0.00 300.0

156 3 2 3.700E-12 -175.0 0.00 300.0

Figure 5-2a. (concluded). 

CAMx Version |VERSION5.3 

Mechanism ID |0 

Aerosol Option | 

Description |inert test 

No of gas species |1 

No of aero species |0 

No of reactions |0 

Prim photo rxns |0 

No of sec photo rxn|0 

Species Records 

 Gas Spec lower bnd H-law T-fact Diffrat Reactvty 

 1 TRACER 1.00E-09 1.00e-10 0. 1.00 0.0

Figure 5-2b. Example inert chemistry parameters file (requires chemistry flag to be set falsesee the description of the CAMx control file).

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-22 

Table 5-4a. Rate constant expression types supported in CAMx and order of expression 

parameters for the chemistry parameters file. 

Expression 

Type Description Expression 

1 Constant 298 k = k

2 UAM (Arrhenius expression) 























= −

T

k k Ea

1

298

1

exp 298

3 General temperature dependence 











− 















=

T

E

T

T

k A

a

B

R

exp

4 Troe-type temperature and pressure 

dependence 

[ ]

[ ]

G F

k M k

k M k

















+

=

∞

1 /

0

0













− 















=

T

E

T

T

k A

a

B

R

exp 0











 ′

− 















′

= ′

′

∞

T

E

T

T

k A

a

B

R

exp

( ) 1

2

0

log [ /]

1

−

∞





































= +

n

k M k

G

5 Equilibrium with a previously defined 

reaction (kref) 











− 















=

T

E

T

T

k k A

a

B

R

ref exp

6 Lindemann - Hinshelwood as used for 

OH + HNO3 3 2

0 3

1 [ /]

[ ]

k M k

k M

k k

+

= +

7 Simple pressure dependence used for 

OH + CO [ ] k = k1 + k2 M

Notes: 

 T is temperature (K) 

 TR is reference temperature of 300 K 

 Ea is an Arrhenius activation energy (K) 

 k

0

 is the low pressure limit of the rate constant 

 k

∞

 is the high pressure limit of the rate constant 

 [M] is the concentration of air 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-23 

Table 5-4b. List of parameters that must be provided in the CAMx chemistry parameter file for 

each of the seven types of rate constant expressions. Use ppm/minute units for A and Kelvin 

for Ea and TR. The variable O is the order of the reaction (1 to 3). 

Expression

Type Parameters 

1 2 3 4 5 6 7 8 9 10 11 12 13

1 O k298 

2 O k298 Ea 

3 O A Ea B TR 

4 O A Ea B TR A’ Ea’ B’ TR’ F n 

5 O kref A Ea B TR 

6 O Ao

 Ea

o

 Bo TR

o

 A2 Ea

2

 B2 TR

2

 A3 Ea

3

 B3 TR

3

7 O A1

 Ea

1

 B1 TR

1

 A2 Ea

2

 B2 TR

2

 

5.3 PHOTOLYSIS RATES FILE

The rates for the primary photolysis reactions are supplied via the photolysis rates file in units of 

minute-1. This file must be supplied if chemistry is invoked, and it is essentially a large look-up 

table that provides the photolysis rates in five dimensions, including variations over solar zenith 

angle, height above ground, ultraviolet (UV) albedo of the ground, atmospheric turbidity, and 

total ozone column density. This table can be generated using the TUV radiative transfer model 

as a preprocessor, which can be configured by the user for the range of conditions expected 

during a specific CAMx application. Therefore, the user must supply the number of intervals (or 

“classes”) and associated values in each of the five dimensions. Typically, TUV is run for a 

matrix of 11 heights, 10 solar zenith angles, 5 ozone column values, 5 albedo values, and 3 

turbidity values. 

The photolysis rates file is a readable text (ASCII) format and it has the following structure: 

where the variables in the photolysis rates file have the following definitions: 

 

 Loop from 1 to nozn ozone column intervals: 

 Loop from 1 to nalb UV albedo intervals: 

 Loop from 1 to nhaz haze turbidity intervals: 

 ozcl,albcl,hazcl (12X,f7.3,8X,f7.3,11X,f7.3)

 Loop from 1 to nalt altitudes above ground: 

 height (*) 

 Loop from 1 to nphot photolysis reactions: 

 (pk(n),n=1,nsol) (1X,10F12.0) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-24 

 ozcl Ozone column value for the current interval (Dobson units) 

 albcl UV albedo value for the current interval (unitless) 

 hazcl Haze turbidity value for the current interval (unitless) 

 height Altitude (km) 

 pk Photolysis rates (min-1) for nsol solar zenith angles 

Figure 5-3 presents an example of a photolysis rates file for the first several panels of data. 

5.4 ALBEDO/HAZE/OZONE FILE

This file (commonly condensed to ALHZOZ or AHO) contains the spatial and temporal 

distribution of surface UV albedo, ozone column density, and turbidity for a specific CAMx 

domain and episode. These parameters are essential for photochemical simulations as they 

determine the spatial and temporal variation of photolysis rates. Therefore, this file must be 

supplied if chemistry is invoked. Additionally, the AHO file may also provide optional fields of 

snow cover, land/ocean mask, drought stress codes, and surface roughness. 

The mandatory time-invariant UV albedo, and optional time-invariant land/ocean mask, drought 

stress, and surface roughness fields, must be supplied for each cell of the master grid, and 

optionally any nested grids. The mandatory time-varying ozone and turbidity fields, and the 

optional time-varying snow cover field, are supplied for the master grid only; CAMx internally 

assigns master cell values to all nested grids cells for these three fields. The time-invariant fields 

must be located at the top of the file (below some definition records), followed by all timevarying fields. 

Instead of supplying the actual values of these parameters, the file contains the respective 

“codes” for each interval (or class). For ozone column, UV albedo, and turbidity, the classes 

must exactly coincide with the values specified in preparing the photolysis rates file. For 

example, if 5 ozone column classes are specified in TUV, then the ozone column map in the 

ALHZOZ file must consist of a distribution of integers ranging from 1 to 5 and the value ranges 

of those 5 classes must match the value ranges used in TUV. 

The optional surface roughness field allows the user to override the default surface roughness 

that is set internally in CAMx according to season and the input landuse file. This effects dry 

deposition and PiG puff growth rates. If roughness is provided, the ALHZOZ header must 

include the definition of the surface roughness classes. CAMx is configured to read 9 roughness 

classes, and their definitions must range between the limits of 1×10-5 and 20 m, otherwise CAMx 

will stop with an error message. 

Class interval definitions are not needed for land/ocean mask, drought stress, or snow cover. The 

land/ocean mask is used for Hg chemistry and defines chloride concentrations; it is simply a map 

of 0 (land) and 1 (ocean). Drought stress indices coincide with the Palmer Drought Index (PDI) 

and range from 0 to 5 (corresponding to PDI values 0 [normal] to –5 [severe drought]). Drought 

stress impacts dry deposition calculations for non-water landuse categories. Snow cover is 

simply a map of 0 (no snow) and 1(snow); if snow exists, the season is overridden to “winter 

with snow” in the WESELY89 dry deposition algorithm. This impacts surface roughness, 

surface resistances for dry deposition, and chemistry by setting UV albedo to the maximum 

class. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-25 

O3 Column =0.285 Albedo =0.040 Haze O.D. =0.000 

 0.000 = Current altitude in km 

 4.562E-01 4.526E-01 4.416E-01 4.224E-01 3.934E-01 3.516E-01 2.921E-01 2.065E-01 1.148E-01 3.074E-02 

 1.670E-03 1.643E-03 1.563E-03 1.427E-03 1.236E-03 9.889E-04 6.936E-04 3.747E-04 1.502E-04 2.570E-05 

 2.211E-03 2.186E-03 2.107E-03 1.973E-03 1.776E-03 1.506E-03 1.152E-03 7.108E-04 3.352E-04 7.560E-05 

 2.078E-03 2.007E-03 1.801E-03 1.485E-03 1.097E-03 6.925E-04 3.382E-04 1.034E-04 2.201E-05 2.056E-06 

 3.131E-04 3.058E-04 2.841E-04 2.491E-04 2.027E-04 1.482E-04 9.100E-05 4.015E-05 1.264E-05 1.517E-06 

 8.728E-05 8.638E-05 8.364E-05 7.891E-05 7.189E-05 6.212E-05 4.892E-05 3.166E-05 1.580E-05 3.934E-06 

 0.150 = Current altitude in km 

 4.866E-01 4.830E-01 4.717E-01 4.521E-01 4.223E-01 3.794E-01 3.179E-01 2.284E-01 1.308E-01 3.760E-02 

 1.855E-03 1.827E-03 1.742E-03 1.598E-03 1.394E-03 1.130E-03 8.102E-04 4.566E-04 1.956E-04 3.701E-05 

 2.443E-03 2.416E-03 2.334E-03 2.193E-03 1.986E-03 1.701E-03 1.322E-03 8.415E-04 4.159E-04 1.000E-04 

 2.327E-03 2.249E-03 2.024E-03 1.677E-03 1.250E-03 8.008E-04 4.035E-04 1.337E-04 3.383E-05 4.166E-06 

 3.489E-04 3.410E-04 3.177E-04 2.799E-04 2.297E-04 1.704E-04 1.075E-04 5.024E-05 1.755E-05 2.556E-06 

 9.553E-05 9.460E-05 9.176E-05 8.684E-05 7.952E-05 6.928E-05 5.530E-05 3.672E-05 1.910E-05 5.068E-06 

 0.360 = Current altitude in km 

 5.050E-01 5.013E-01 4.900E-01 4.702E-01 4.402E-01 3.968E-01 3.343E-01 2.426E-01 1.412E-01 4.171E-02 

 1.974E-03 1.945E-03 1.857E-03 1.708E-03 1.497E-03 1.222E-03 8.862E-04 5.096E-04 2.245E-04 4.415E-05 

 2.587E-03 2.560E-03 2.477E-03 2.333E-03 2.120E-03 1.826E-03 1.432E-03 9.258E-04 4.673E-04 1.152E-04 

 2.494E-03 2.411E-03 2.174E-03 1.806E-03 1.353E-03 8.740E-04 4.474E-04 1.536E-04 4.129E-05 5.492E-06 

 3.722E-04 3.640E-04 3.396E-04 3.002E-04 2.475E-04 1.851E-04 1.183E-04 5.679E-05 2.067E-05 3.210E-06 

 1.006E-04 9.970E-05 9.681E-05 9.180E-05 8.433E-05 7.382E-05 5.940E-05 3.999E-05 2.122E-05 5.763E-06 

 0.640 = Current altitude in km 

 5.230E-01 5.193E-01 5.080E-01 4.882E-01 4.581E-01 4.143E-01 3.510E-01 2.574E-01 1.520E-01 4.577E-02 

 2.092E-03 2.062E-03 1.972E-03 1.819E-03 1.601E-03 1.315E-03 9.632E-04 5.633E-04 2.535E-04 5.126E-05 

 2.731E-03 2.703E-03 2.618E-03 2.471E-03 2.254E-03 1.951E-03 1.544E-03 1.011E-03 5.191E-04 1.304E-04 

 2.664E-03 2.577E-03 2.327E-03 1.939E-03 1.459E-03 9.497E-04 4.928E-04 1.738E-04 4.872E-05 6.809E-06 

 3.958E-04 3.872E-04 3.618E-04 3.207E-04 2.656E-04 2.000E-04 1.294E-04 6.343E-05 2.378E-05 3.860E-06 

 1.057E-04 1.047E-04 1.018E-04 9.672E-05 8.912E-05 7.839E-05 6.354E-05 4.331E-05 2.336E-05 6.448E-06 

 0.980 = Current altitude in km 

 5.409E-01 5.373E-01 5.260E-01 5.062E-01 4.760E-01 4.321E-01 3.682E-01 2.727E-01 1.635E-01 4.989E-02 

 2.210E-03 2.179E-03 2.087E-03 1.930E-03 1.705E-03 1.409E-03 1.041E-03 6.178E-04 2.827E-04 5.837E-05 

 2.873E-03 2.845E-03 2.758E-03 2.609E-03 2.387E-03 2.077E-03 1.656E-03 1.099E-03 5.718E-04 1.454E-04 

 2.837E-03 2.746E-03 2.483E-03 2.074E-03 1.567E-03 1.028E-03 5.396E-04 1.944E-04 5.611E-05 8.121E-06 

 4.195E-04 4.106E-04 3.842E-04 3.414E-04 2.840E-04 2.152E-04 1.407E-04 7.017E-05 2.689E-05 4.509E-06 

 1.107E-04 1.097E-04 1.068E-04 1.016E-04 9.392E-05 8.299E-05 6.775E-05 4.673E-05 2.556E-05 7.133E-06 

 1.380 = Current altitude in km 

 5.593E-01 5.556E-01 5.444E-01 5.247E-01 4.947E-01 4.507E-01 3.863E-01 2.892E-01 1.760E-01 5.427E-02 

 2.329E-03 2.298E-03 2.203E-03 2.042E-03 1.811E-03 1.505E-03 1.122E-03 6.743E-04 3.128E-04 6.563E-05 

 3.016E-03 2.988E-03 2.900E-03 2.749E-03 2.524E-03 2.207E-03 1.773E-03 1.190E-03 6.270E-04 1.609E-04 

 3.015E-03 2.920E-03 2.644E-03 2.215E-03 1.681E-03 1.109E-03 5.887E-04 2.158E-04 6.364E-05 9.454E-06 

 4.437E-04 4.345E-04 4.071E-04 3.627E-04 3.029E-04 2.310E-04 1.524E-04 7.716E-05 3.009E-05 5.169E-06 

 1.157E-04 1.148E-04 1.118E-04 1.066E-04 9.883E-05 8.772E-05 7.213E-05 5.031E-05 2.789E-05 7.835E-06 

 1.840 = Current altitude in km 

 5.782E-01 5.746E-01 5.635E-01 5.440E-01 5.141E-01 4.702E-01 4.056E-01 3.069E-01 1.897E-01 5.904E-02 

 2.451E-03 2.419E-03 2.322E-03 2.157E-03 1.920E-03 1.605E-03 1.206E-03 7.338E-04 3.445E-04 7.312E-05 

 3.162E-03 3.133E-03 3.045E-03 2.892E-03 2.664E-03 2.341E-03 1.894E-03 1.286E-03 6.856E-04 1.769E-04 

 3.200E-03 3.101E-03 2.811E-03 2.361E-03 1.799E-03 1.196E-03 6.407E-04 2.385E-04 7.141E-05 1.082E-05 

 4.685E-04 4.589E-04 4.307E-04 3.846E-04 3.224E-04 2.473E-04 1.647E-04 8.451E-05 3.341E-05 5.848E-06 

 1.209E-04 1.199E-04 1.169E-04 1.117E-04 1.039E-04 9.263E-05 7.671E-05 5.412E-05 3.039E-05 8.570E-06 

 2.350 = Current altitude in km 

 5.974E-01 5.939E-01 5.829E-01 5.636E-01 5.340E-01 4.904E-01 4.257E-01 3.258E-01 2.046E-01 6.425E-02 

 2.572E-03 2.540E-03 2.441E-03 2.273E-03 2.031E-03 1.706E-03 1.292E-03 7.955E-04 3.775E-04 8.077E-05 

 3.307E-03 3.278E-03 3.190E-03 3.036E-03 2.805E-03 2.477E-03 2.019E-03 1.386E-03 7.476E-04 1.934E-04 

 3.389E-03 3.285E-03 2.983E-03 2.512E-03 1.922E-03 1.285E-03 6.952E-04 2.622E-04 7.936E-05 1.221E-05 

 4.934E-04 4.836E-04 4.544E-04 4.068E-04 3.424E-04 2.641E-04 1.774E-04 9.214E-05 3.685E-05 6.538E-06 

 1.261E-04 1.251E-04 1.221E-04 1.169E-04 1.090E-04 9.763E-05 8.142E-05 5.811E-05 3.305E-05 9.333E-06 

 2.910 = Current altitude in km 

 6.169E-01 6.134E-01 6.026E-01 5.836E-01 5.543E-01 5.111E-01 4.466E-01 3.458E-01 2.209E-01 7.003E-02 

 2.694E-03 2.661E-03 2.561E-03 2.390E-03 2.143E-03 1.810E-03 1.382E-03 8.602E-04 4.124E-04 8.867E-05 

 3.452E-03 3.423E-03 3.335E-03 3.180E-03 2.948E-03 2.615E-03 2.148E-03 1.492E-03 8.140E-04 2.106E-04 

 3.582E-03 3.474E-03 3.159E-03 2.667E-03 2.049E-03 1.379E-03 7.528E-04 2.874E-04 8.761E-05 1.363E-05 

 5.187E-04 5.086E-04 4.786E-04 4.294E-04 3.628E-04 2.814E-04 1.906E-04 1.002E-04 4.045E-05 7.246E-06 

 1.312E-04 1.303E-04 1.273E-04 1.221E-04 1.142E-04 1.027E-04 8.630E-05 6.231E-05 3.593E-05 1.014E-05 

 3.530 = Current altitude in km 

 6.368E-01 6.334E-01 6.228E-01 6.041E-01 5.754E-01 5.328E-01 4.687E-01 3.673E-01 2.389E-01 7.670E-02 

 2.818E-03 2.784E-03 2.683E-03 2.510E-03 2.258E-03 1.917E-03 1.476E-03 9.296E-04 4.505E-04 9.704E-05 

 3.599E-03 3.571E-03 3.482E-03 3.328E-03 3.094E-03 2.759E-03 2.283E-03 1.605E-03 8.871E-04 2.291E-04 

 3.783E-03 3.670E-03 3.343E-03 2.830E-03 2.184E-03 1.478E-03 8.148E-04 3.147E-04 9.644E-05 1.512E-05 

 5.446E-04 5.343E-04 5.034E-04 4.528E-04 3.840E-04 2.996E-04 2.046E-04 1.088E-04 4.434E-05 7.989E-06 

 1.365E-04 1.355E-04 1.326E-04 1.274E-04 1.195E-04 1.080E-04 9.142E-05 6.681E-05 3.911E-05 1.103E-05 

 4.210 = Current altitude in km 

 6.569E-01 6.536E-01 6.433E-01 6.250E-01 5.969E-01 5.550E-01 4.917E-01 3.902E-01 2.588E-01 8.447E-02 

 2.943E-03 2.909E-03 2.807E-03 2.632E-03 2.376E-03 2.029E-03 1.574E-03 1.004E-03 4.925E-04 1.060E-04 

 3.747E-03 3.719E-03 3.631E-03 3.477E-03 3.243E-03 2.906E-03 2.424E-03 1.725E-03 9.679E-04 2.493E-04 

 3.992E-03 3.875E-03 3.534E-03 3.000E-03 2.325E-03 1.585E-03 8.818E-04 3.447E-04 1.060E-04 1.668E-05 

 5.711E-04 5.605E-04 5.289E-04 4.769E-04 4.060E-04 3.186E-04 2.195E-04 1.181E-04 4.859E-05 8.775E-06 

 1.417E-04 1.408E-04 1.379E-04 1.327E-04 1.249E-04 1.135E-04 9.674E-05 7.161E-05 4.262E-05 1.202E-05 

 O3 Column =0.285 Albedo =0.040 Haze O.D. =0.094 

 0.000 = Current altitude in km 

 4.655E-01 4.615E-01 4.493E-01 4.279E-01 3.958E-01 3.499E-01 2.855E-01 1.957E-01 1.048E-01 2.871E-02 

 1.688E-03 1.660E-03 1.576E-03 1.435E-03 1.237E-03 9.833E-04 6.824E-04 3.626E-04 1.414E-04 2.142E-05 

 2.240E-03 2.212E-03 2.129E-03 1.987E-03 1.780E-03 1.498E-03 1.132E-03 6.858E-04 3.159E-04 6.495E-05 

 2.098E-03 2.025E-03 1.815E-03 1.492E-03 1.098E-03 6.883E-04 3.334E-04 1.009E-04 2.101E-05 1.716E-06 

 3.162E-04 3.086E-04 2.863E-04 2.503E-04 2.029E-04 1.473E-04 8.961E-05 3.896E-05 1.193E-05 1.254E-06 

 8.857E-05 8.761E-05 8.467E-05 7.961E-05 7.213E-05 6.180E-05 4.802E-05 3.042E-05 1.483E-05 3.488E-06 

 0.150 = Current altitude in km 

 5.004E-01 4.963E-01 4.839E-01 4.623E-01 4.296E-01 3.828E-01 3.163E-01 2.220E-01 1.237E-01 3.1E-02 

 1.870E-03 1.841E-03 1.752E-03 1.604E-03 1.394E-03 1.123E-03 7.976E-04 4.424E-04 1.847E-04 3.188E-05 

 2.473E-03 2.445E-03 2.359E-03 2.211E-03 1.994E-03 1.697E-03 1.306E-03 8.179E-04 3.956E-04 8.840E-05 

 2.338E-03 2.259E-03 2.030E-03 1.677E-03 1.245E-03 7.929E-04 3.960E-04 1.294E-04 3.180E-05 3.572E-06 

 3.509E-04 3.428E-04 3.189E-04 2.803E-04 2.292E-04 1.690E-04 1.056E-04 4.859E-05 1.651E-05 2.187E-06 

 9.713E-05 9.614E-05 9.312E-05 8.789E-05 8.013E-05 6.934E-05 5.476E-05 3.574E-05 1.823E-05 4.615E-06 

Figure 5-3. Example of the first several panels of lookup data in the photolysis rates input file. 

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-26 

Only one map of codes per grid is present in the ALHZOZ file for the time-invariant fields (UV 

albedo, land/water mask, drought stress, and surface roughness); these fields can be provided in 

any order. For time-varying fields (ozone column, turbidity, and snow cover) multiple maps of 

these codes may be provided for arbitrary time intervals, unique to each field, to span the entire 

simulation period. It is not necessary that the time spans of the ozone, turbidity, and snow cover 

maps match; for example, six maps of ozone column may be supplied for a six day simulation 

along with only one map for turbidity and snow cover covering the same time span. 

The ALHZOZ file is a readable text (ASCII) format and it has the following structure: 

where the variables in the ALHZOZ file have the following definitions: 

 text Text identifying file and any messages 

 alname Text string “ALBEDO” 

 albcl UV albedo (unitless) for each of nalb albedo values 

 hzname Text string “HAZE” 

 hazcl Haze turbidity (unitless) for each of nhaz haze values 

 ozname Text string “OZONE COL” 

 

 text (A) 

 alname,(albcl(n),n=1,nalb) (A10,5F10.0) 

 hzname,(hazcl(n),n=1,nhaz) (A10,3F10.0) 

 ozname,(ozncl(n),n=1,nozn) (A10,5F10.0) 

 rlname,(ruflen(n),n=1,nruf) (A10,9f10.0) -- Optional

 loname (A10) -- Optional

 drname (A10) -- Optional

 swname (A10) -- Optional 

 alname,igrd,nx,ny (A10,3I10) 

 Loop from ny grid rows to 1 

 (jalb(i,j),i=1,nx) (9999I1) 

 alname,igrd,nx,ny (A10,3I10) 

 rlname,igrd,nx,ny (A10,3I10) 

 Loop from ny grid rows to 1 

 (jruf(i,j),i=1,nx) (9999I1) 

 rlname,igrd,nx,ny (A10,3I10) 

 loname,igrd,nx,ny (A10,3I10) 

 Loop from ny grid rows to 1 

 (jocn(i,j),i=1,nx) (999I1) -- Optional

 loname,igrd,nx,ny (A10,3I10) 

 drname,igrd,nx,ny (A10,3I10) 

 Loop from ny grid rows to 1 

 (jdrt(i,j),i=1,nx) (999I1) 

 drname,igrd,nx,ny (A10,3I10) 

 name,idt1,tim1,idt2,tim2 (A10,I10,F10.0,I10,F10.0) 

 Loop from ny master grid rows to 1 

 (jozn(i,j),i=1,nx) or (9999I1) 

 (jhaz(i,j),i=1,nx) or (9999I1) 

 (jsno(i,j),i=1,nx) (9999I1) -- Optional

 (name determines if jozn, jhaz, or jsno is read)
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-27 

 ozncl Ozone column (Dobson units) for each of nozn ozone values 

 rlname Text string “ROUGHNESS” 

 ruflen Roughness length (m) for each of nruf roughness values 

 loname Text string “OCEAN” 

 drname Text string “DROUGHT” 

 swname Text string “SNOW” 

 igrd Grid index (1 = master grid, 2+=nested grid, 0 = end of data) 

 nx Number of grid columns for this grid index 

 ny Number of grid rows for this grid index 

 jalb Grid igrd, row j albedo codes for nx grid columns 

 jruf Grid igrd, row j roughness codes for nx grid columns 

 jocn Grid igrd, row j land/ocean codes for nx grid columns 

 jdrt Grid igrd, row j drought codes for nx grid columns 

 name Text string “OZONE COL”, “HAZE”, or “SNOW” 

 idt1 Beginning date (YYMMDD or YYJJJ) of time span 

 tim1 Beginning hour (HHMM) of time span 

 idt2 Ending date of time span 

 tim2 Ending hour of time span 

 jozn Master grid row j ozone column codes for nx master grid columns 

 jhaz Master grid row j haze codes for nx master grid columns 

 jsno Master grid row j snow codes for nx master grid columns 

An example of a small ALHZOZ file is given in Figure 5-4. 

5.5 FORTRAN BINARY INPUT FILES

 

What is a Fortran Binary File?

Large CAMx input and output data fields are contained within Fortran “unformatted” (binary) 

files. This means that the data are read and written as represented in memory, without translation 

between binary and ASCII character sets as done for “text” files. Binary files reduce file volume 

and improve program read/write speed, but the user cannot directly view or manually edit them. 

There are two ways to represent binary information in memory: “big endian” and “little endian.” 

The difference between these is essentially the order of bits in a word, and which order is used 

depends on the computer chipset. Historically, big endian has been used in many Unix 

workstations (Sun, SGI, HP, and IBM). The x86 processors on personal computer platforms 

(e.g., Intel and AMD) use little endian, while PowerPC chips are big endian. 

CAMx can be compiled and run on machines using their native big or little endian binary 

representations, as long as the model and all of its pre- and post-processors are consistently 

compiled and run on the same type of platform. If any component of the modeling system is 

compiled for a different platform using the opposite binary representation, I/O files will not be 

properly read and will likely lead to a program crash. A typical run-time error message from 

trying to read the wrong binary format is “input record too long,” so if you get this error 

message, check for consistency between your binary files and Fortran compiler options. 

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-28 

Sample AHO file with all optional fields 

ALBEDO 0.0400 0.0500 0.0600 0.0700 0.0800 

HAZE 0.0000 0.0940 0.3950 

OZONE COL 0.2850 0.3150 0.3450 0.3750 0.4050 

ROUGHNESS 0.0010 0.0100 0.0200 0.0500 0.1000 0.2000 0.5000 ... 

OCEAN 

DROUGHT 

SNOW 

ALBEDO 1 64 10 

2222222222222222222211111111122222222222222222233333333333333333 

2222222222222222222222222221111111112222222222222222333333333333 

2222222222222222222222221111111111111222222222222222222233333333 

2222222222222222222222222221111111111112222222222222222222223333 

2222222222222222222222211111111111111122222222222222222222222222 

2222222222222222222222111111111111111112222222222222222222222222 

2222222222222222222222111111111111111111222222222222222222222222 

2222222222222222222221111111222222222111111112222222222222222222 

2222222222222222222211111111122222222211111111122222222222222222 

2222222222222222222222111111111122222222211111111112222222222222 

ALBEDO 2 24 15 

212111211111111111112222 

222122222211111111111112 

222222222222211111111111 

222222222222111111111111 

222222222211111111111111 

222222222111111111111111 

222222222111111111111111 

222222222111111111111111 

222222222112222221111111 

222222211112222221111111 

222222211122222221111111 

222222211122222221111111 

222222211122222221111111 

222222211112222221111111 

222222211112222221111111 

ALBEDO 0 0 0 

ROUGHNESS 1 64 10 

4444444444333333333377777777733333333333333333222222222222222222 

4444444444444333333333333337777777773333333333333333222222222222 

4444444444444433333333337777777777777333333333333333322222222222 

4444444444444444333333333337777777777773333333333333333333332222 

4444444444444433333333377777777777777733333333333333333333333333 

4444444444444443333333777777777777777773333333333333333333333333 

4444444444443333333333777777777777777777333333333333333333333333 

4444444444433333333337777777333333333777777773333333333333333333 

4444444444333333333377777777733333333377777777733333333333333333 

4444444443333333333333777777777733333333377777777773333333332222 

ROUGHNESS 0 0 0 

OCEAN 1 64 10 

0000000000000000000011111111100000000000000000000000000000000000 

0000000000000000000000000001111111110000000000000000000000000000 

0000000000000000000000001111111111111100000000000000000000000000 

0000000000000000000000000001111111111110000000000000000000000000 

0000000000000000000000011111111111111100000000000000000000000000 

0000000000000000000000111111111111111110000000000000000000000000 

0000000000000000000000111111111111111111000000000000000000000000 

0000000000000000000001111111000000000111111110000000000000000000 

0000000000000000000011111111100000000011111111100000000000000000 

0000000000000000000000111111111100000000011111111110000000000000 

OCEAN 0 0 0 

Figure 5-4. Example of the structure of a 2-grid abedo/haze/ozone input file showing panels for 

all mandatory and optional fields. 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-29 

DROUGHT 

2222222222222222222222222222222222222222222221111111111111111111 

2222222222222222222222222222222222222222222222222111111111111111 

2222222222222222222222222222222222222222222222222222211111111111 

2222222222222222222222222222222222222222222222222222222211111111 

2222222222222222222222222222222222222222222222222222222222211111 

2222222222222222222222222222222222222222222222222222222222222111 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

DROUGHT 0 0 0 

HAZE 950707 0.00 950718 2400.00 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

2222222222222222222222222222222222222222222222222222222222222222 

OZONE COL 950707 0.00 950718 2400.00 

3333333333333333333333333333333333333333333333333333333333333333 

3333333333333333333333333333333333333333333333333333333333333333 

2222222222222333333333333333333333333333333333333333333333333333 

2222222222222223333333333333333333333333333333333333333333333333 

2222222222222223333333333333333333333333333333333333333333333333 

2222222222222223333333333333333333333333333333333333333333333333 

2222222222222223333333333333333333333333333333333333333333333333 

2222222222222223333333333333333333333333333333333333333333333333 

2222222222222223333333333333333333333333333333333333333333333333 

2222222222222222222222333333333333333333333333333333333333333333 

SNOW 950707 0.00 950718 2400.00 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

0000000000000000000000000000000000000000000000000000000000000000 

Figure 5-4. (concluded).

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-30 

Compilers for little endian machines provide compile-time switches that allow binary files to be 

read and written as big endian. The “makefile” compiler script that is distributed with CAMx 

supports many platforms and sets compiler flags to consistently use big endian to maximize 

platform portability. Therefore, use of the CAMx Makefile on any of the supported platforms 

will by default result in the model reading and writing big endian binary files. Additional 

information on this topic is provided in Section 11. 

Meteorological Input Files

Landuse File

The Fortran binary landuse input file contains a time-invariant two-dimensional gridded field of 

landuse distribution, and optionally two-dimensional gridded fields of leaf area index (LAI) and 

topographic elevation. This file must be developed for the master grid, and optionally any of the 

nested fine grids, if either dry deposition or the PiG submodel is invoked. The fractional 

distribution of 11 landuse categories must be supplied for each grid cell if the WESELY89 dry 

deposition option is selected in the user control file. Alternatively, the fractional distribution of

26 landuse categories must be supplied for each grid cell if the ZHANG03 dry deposition option 

is selected. These are used to define surface resistances for dry deposition calculations and to set 

default surface roughness lengths, LAI, and UV albedo. The 11 landuse categories for the 

WESELY89 option follow the UAM-IV conventions (EPA, 1990), and are listed in Table 5-5. 

The 26 landuse categories for the ZHANG03 option are listed in Table 5-6. Both tables also 

show the default surface parameters assigned to each category. The topography field is not used 

by CAMx, but is simply passed through to the optional HDF5 output files. 

The landuse file has the following structure, where each data record is preceded by an 8-

character keyword (“LUCAT11 ”, “LUCAT26 ”, “LAI ”, or “TOPO ”) that 

identifies the data on the record. These keyword-data record pairs can be put in any order. 

where the variables in the landuse file have the following definitions: 

 fland Fractional landuse distribution for nx grid columns, ny grid rows, and 11 

landuse categories (WESELY89 dry deposition) or 26 landuse categories 

(ZHANG03 dry deposition) 

 lai Optional leaf area index (LAI) for nx grid columns and ny grid rows (used 

for the ZHANG03 dry deposition option only) 

 topo Optional topographic elevation above sea level (m) for nx grid columns 

and ny grid rows 

CAMx will properly read older (pre-v5.30) landuse files, but since that format only supported 11 

landuse categories, CAMx will only be able to run with the WESELY89 dry deposition option. 

 LUCAT11 (or LUCAT26) 

 (((fland(i,j,k),i=1,nx),j=1,ny),k=1,11) (or k=1,26) 

 LAI (optional) 

 (((lai(i,j,k),i=1,nx),j=1,ny)) (optional) 

 TOPO (optional) 

 (((topo(i,j,k),i=1,nx),j=1,ny)) (optional) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-31 

Table 5-5. The 11 CAMx landuse categories and the default surface roughness values (m) 

assigned to each category by season for the WESELY89 dry deposition option. Winter is 

defined for conditions where there is snow present; winter months with no snow are assigned to 

the Fall category. Roughness for water is taken as the maximum of the baseline value given in 

the table, and the function 6 5.2

z 0 2 10 w

−

= × , where w is surface wind speed (m/s). The UV 

albedos are used in the albedo/haze/ozone (AHO) file. 

Category 

Number Land Cover Category 

Surface Roughness (meters) UV 

Spring Summer Fall Winter Albedo 

1 Urban 1.0 1.0 1.0 1.0 0.08 

2 Agricultural 0.03 0.2 0.05 0.01 0.05 

3 Rangeland 0.05 0.1 0.01 0.001 0.05 

4 Deciduous forest 1.0 1.3 0.8 0.5 0.05 

5 Coniferous forest, wetland 1.3 1.3 1.3 1.3 0.05 

6 Mixed forest* 1.15 1.3 1.05 0.9 0.05 

7 Water 0.0001 0.0001 0.0001 0.0001 0.04 

8 Barren land 0.002 0.002 0.002 0.002 0.08 

9 Non-forested wetlands 0.2 0.2 0.2 0.05 0.05 

10 Mixed agricultural/range* 0.04 0.15 0.03 0.006 0.05 

11 Rocky (with low shrubs) 0.3 0.3 0.3 0.15 0.05 

* Roughness for these categories is taken to be the average of their components. 

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-32 

Table 5-6. The 26 CAMx landuse categories and the default annual minimum and maximum 

LAI and surface roughness (m) ranges assigned to each category for the ZHANG03 dry 

deposition option. Roughness for water is calculated from the function 6 5.2

z 0 2 10 w

−

= × , where 

w is surface wind speed (m/s). The UV albedos are used in the albedo/haze/ozone (AHO) file. 

Category 

Number Land Cover Category 

Roughness (meters) LAI UV 

Min Max Min Max Albedo 

1 Water f(w) f(w) 0.0 0.0 0.04 

2 Ice 0.01 0.01 0.0 0.0 0.5 

3 Inland lake f(w) f(w) 0.0 0.0 0.04 

4 Evergreen needleleaf trees 0.9 0.9 5.0 5.0 0.05

5 Evergreen broadleaf trees 2.0 2.0 6.0 6.0 0.05

6 Deciduous needleleaf trees 0.4 0.9 0.1 5.0 0.05

7 Deciduous broadleaf trees 0.4 1.0 0.1 5.0 0.05

8 Tropical broadleaf trees 2.5 2.5 6.0 6.0 0.05 

9 Drought deciduous trees 0.6 0.6 4.0 4.0 0.05 

10 Evergreen broadleaf shrubs 0.2 0.2 3.0 3.0 0.05 

11 Deciduous shrubs 0.05 0.2 0.5 3.0 0.05 

12 Thorn shrubs 0.2 0.2 3.0 3.0 0.05 

13 Short grass and forbs 0.04 0.04 1.0 1.0 0.05 

14 Long grass 0.02 0.1 0.5 2.0 0.05 

15 Crops 0.02 0.1 0.1 4.0 0.05 

16 Rice 0.02 0.1 0.1 6.0 0.05 

17 Sugar 0.02 0.1 0.1 5.0 0.05 

18 Maize 0.02 0.1 0.1 4.0 0.05 

19 Cotton 0.02 0.2 0.1 5.0 0.05 

20 Irrigated crops 0.05 0.05 1.0 1.0 0.05 

21 Urban 1.0 1.0 0.1 1.0 0.08 

22 Tundra 0.03 0.03 0.1 2.0 0.05 

23 Swamp 0.1 0.1 4.0 4.0 0.05 

24 Desert 0.04 0.04 0.0 0.0 0.08 

25 Mixed wood forest 0.9 0.9 3.0 5.0 0.05

26 Transitional forest 0.9 0.9 3.0 5.0 0.05

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-33 

Height/Pressure File

The Fortran binary height/pressure input file contains three-dimensional gridded fields of layer 

interface heights and layer-average pressure. This file must be developed for the master grid and 

optionally any fine grid nest specified for a given simulation. The layer interface heights define 

the vertical grid structure for each grid, as well as the vertical nesting structure for fine grid 

nests. For this reason, vertical nesting is not allowed when flexi-nesting is used. The layer 

interface heights may be specified to vary in space and/or time (e.g., to follow the layer structure 

of meteorological models), or they may be set to a constant field. The pressure field is used for 

transport, plume rise, PiG, dry deposition, and chemistry calculations. 

The height/pressure file has the following structure, where the following records are repeated for 

each update time: 

The variables in the height/pressure file have the following definitions: 

 hour Simulation time (HHMM: 1300.0 is 1:00 PM) 

 idate Simulation date (YYMMDD or YYJJJ) 

 height Layer k interface height (m AGL) for nx grid columns, and ny grid rows 

 press Layer k pressure (mb) for nx grid columns, and ny grid rows 

CAMx time-interpolates the height and pressure arrays to each model timestep for each grid, and 

so the model requires that data be available on file for an additional update time at the end of the 

simulation. For example, in the case of hourly fields, a 24-hour simulation requires 25 input 

fields on file. 

Wind File

The Fortran binary wind file contains three-dimensional gridded fields of layer average 

horizontal (u and v) wind components. This file must be developed for the master grid and 

optionally any of the fine grid nests. CAMx allows the user to optionally supply these 

components at cell center, in which case the model will interpolate the components to their 

respective positions on cell interfaces, or the user may supply these components directly on the 

Arakawa C configuration (recommended). In any case, the user must supply a full nx×ny×nz

array of wind values for each component (even though for the Arakawa C configuration in 

CAMx, only (nx-1)×(ny-1) values are used in the horizontal). Wind fields are used for transport, 

plume rise, PiG, and dry deposition calculations. 

The wind file has the following structure, where the following records are repeated for each 

update time: 

 

 Loop from 1 to nlay layers: 

 hour,idate,((height(i,j,k),i=1,nx),j=1,ny) 

 hour,idate,((press(i,j,k),i=1,nx),j=1,ny) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-34 

The variables in the wind file have the following definitions: 

 hour Simulation time (HHMM: 1300.0 is 1:00 PM) 

 idate Simulation date (YYMMDD or YYJJJ) 

 lstagger Staggered wind flag (T=input winds staggered to Arakawa-C arrangement, 

F=input winds are cell-centered) 

 uwind Layer k u-component (east-west) wind (m/s) for nx grid columns, and ny

grid rows 

 vwind Layer k v-component (north-south) wind (m/s) for nx grid columns, and ny

grid rows 

 dummy Dummy array 

CAMx time-interpolates the wind components to each model timestep for each grid, and so the 

model requires that data be available on file for an additional update time at the end of the 

simulation. For example, in the case of hourly fields, a 24-hour simulation requires 25 input 

fields on file. 

Temperature File

The Fortran binary temperature file contains three-dimensional gridded fields of layer average 

temperature and two-dimensional gridded fields of surface temperature. This file must be 

developed for the master grid and optionally any of the fine grid nests. The three-dimensional 

temperature fields are used for transport, plume rise, PiG, dry and wet deposition and chemistry 

calculations, while the surface temperatures are used for dry deposition calculations. 

The temperature file has the following structure, where the following records are repeated for 

each update time: 

The variables in the temperature file have the following definitions: 

 hour Simulation time (HHMM: 1300.0 is 1:00 PM) 

 idate Simulation date (YYMMDD or YYJJJ) 

 temps Surface temperature (K) for nx grid columns, and ny grid rows 

 temp Layer k temperature (K) for nx grid columns, and ny grid rows 

 

 hour,idate,lstagger 

 Loop from 1 to nlay layers: 

 ((uwind(i,j,k),i=1,nx),j=1,ny) 

 ((vwind(i,j,k),i=1,nx),j=1,ny) 

 ((dummy,i=1,nx),j=1,ny) 

 

 hour,idate,((temps(i,j),i=1,nx),j=1,ny) 

 Loop from 1 to nlay layers: 

 hour,idate,((temp(i,j,k),i=1,nx),j=1,ny) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-35 

CAMx time-interpolates the temperature to each model timestep for each grid, and so the model 

requires that data be available on file for an additional update time at the end of the simulation. 

For example, in the case of hourly fields, a 24-hour simulation requires 25 input fields on file. 

Water Vapor File

The Fortran binary water vapor file contains three-dimensional gridded fields of layer average 

water vapor concentration. This file must be developed for the master grid, and optionally any 

fine grid nests, if chemistry, dry deposition, and/or wet deposition are invoked. The threedimensional water vapor fields are used for dry and wet deposition and chemistry calculations. 

The water vapor file has the following structure, where the following record is repeated for each 

update time: 

The variables in the water vapor file have the following definitions: 

 hour Simulation time (HHMM: 1300.0 is 1:00 PM) 

 idate Simulation date (YYMMDD or YYJJJ) 

 water Layer k water vapor concentration (ppm) for nx grid columns and ny grid 

rows 

CAMx time-interpolates the water vapor to each model timestep for each grid, and so the model 

requires that data be available on file for an additional update time at the end of the simulation. 

For example, in the case of hourly fields, a 24-hour simulation requires 25 input fields on file. 

Cloud/Rain File

The Fortran binary cloud/rain file contains three-dimensional gridded fields of cloud parameters 

to be used for chemistry and wet/dry deposition calculations. Note that precipitation rate is not 

explicitly provided to the model; instead, it is internally calculated from the three precipitation 

water content forms provided on the cloud/rain file. Cloud optical depth is used to adjust clearsky photolysis rates for the presence of clouds. This file must be developed for the master grid, 

and optionally any fine grid nests, if chemistry, dry, and/or wet deposition are invoked. 

The cloud/rain file contains a header record to define the file: 

 Loop from 1 to nlay layers: 

 hour,idate,((water(i,j,k),i=1,nx),j=1,ny) 

cldhdr,nxcl,nycl,nzcl 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-36 

The remainder of the file has the following structure, where the following records are repeated 

for each update time: 

The variables on the cloud/rain file have the following definitions: 

 cldhdr Text string “CAMX_V5.3 CLOUD_RAIN” (new optical depth definition) 

or “CAMX_V4.3 CLOUD_RAIN” (old optical depth definition) 

 nxcl Number of master grid columns 

 nycl Number of master grid rows 

 nzcl Number of master grid layers 

 hour Simulation time (HHMM: 1300.0 is 1:00 PM) 

 idate Simulation date (YYMMDD or YYJJJ) 

 cldwtr Layer k cloud water content (g/m3) for nx grid columns, and ny grid rows 

 ranwtr Layer k rain water content (g/m3

) for nx grid columns, and ny grid rows 

 snowtr Layer k snow water content (g/m3) for nx grid columns, and ny grid rows 

 gplwtr Layer k graupel water content (g/m3) for nx grid columns, and ny grid 

rows 

 cldod Layer k cloud optical depth (dimensionless) if v5.3 cloud/rain file, or total 

integrated column cloud optical depth (dimensionless) if v4.3 cloud/rain 

file, for nx grid columns, and ny grid rows 

Vertical Diffusivity File

The Fortran binary vertical diffusivity file contains three-dimensional gridded fields of layerinterface vertical diffusivity (i.e., turbulent exchange or diffusion coefficients). This file must be 

developed for the master grid, and optionally any fine grid nests. The three-dimensional 

diffusivity fields are used for vertical diffusion and PiG puff growth calculations. 

The vertical diffusivity file has the following structure, where the following records are repeated 

for each update time: 

 

The variables on the vertical diffusivity file have the following definitions: 

 hour Simulation time (HHMM: 1300.0 is 1:00 PM) 

 idate Simulation date (YYMMDD or YYJJJ) 

 rkv Layer k interface diffusivity (m2

/s) for nx grid columns, and ny grid rows 

hour,idate 

 Loop from 1 to nz layers: 

 ((cldwtr(i,j,k),i=1,nx),j=1,ny) 

 ((ranwtr(i,j,k),i=1,nx),j=1,ny) 

 ((snowtr(i,j,k),i=1,nx),j=1,ny) 

 ((gplwtr(i,j,k),i=1,nx),j=1,ny) 

 ((cldod(i,j,k),i=1,nx),j=1,ny) 

 Loop from 1 to nz layers: 

 hour,idate,((rkv(i,j,k),i=1,nx),j=1,ny) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-37 

CAMx time-interpolates the diffusivity to each model timestep for each grid, and so the model 

requires that data be available on file for an additional update time at the end of the simulation. 

For example, in the case of hourly fields, a 24-hour simulation requires 25 input fields on file. 

Initial Conditions File 

The Fortran binary initial conditions file contains three-dimensional gridded concentration fields 

on the master grid. Initial concentration fields may be specified for a sub-set of the total number 

of modeled species. The format of this file follows that defined for UAM-IV concentration files 

(EPA, 1990) so that pre-existing software may be used to develop these input files. An initial 

condition file must be developed for the master grid, and contain concentration fields for at least 

one species. For those species not on the initial condition file, CAMx sets up uniform fields 

using the “lower bound” values specified in the chemistry parameters file. CAMx then 

interpolates all master grid initial conditions to each fine grid nest at the start of the simulation.

The initial conditions file contains a set of time-invariant header records, followed by a set of 

data records that contain time- and species-specific gridded concentration fields. The time span 

of concentration data must contain the start time/date of the simulation. 

The header portion of the initial conditions file contains four records with the following 

structure: 

The time-variant portion of the initial conditions file has the following structure, where the 

following records are repeated for each update time: 

The variables on the initial conditions file have the following definitions: 

 name Text string “AIRQUALITY” (character*4(10) array)

 note Text string containing file description (character*4(60) array) 

 ione Dummy variable = 1 

 nspec Number of species on file 

 ibdate Beginning date (YYJJJ) 

 btime Beginning hour (HH) 

 iedate Ending date (YYJJJ) 

 etime Ending hour (HH) 

 name,note,ione,nspec,ibdate,btime,iedate,etime 

 rdum,rdum,iutm,xorg,yorg,delx,dely,nx,ny,nz,idum,idum,rdum,rdum,rdum 

 ione,ione,nx,ny 

 (mspec(l),l=1,nspec) 

 ibdate,btime,iedate,etime 

 Loop from 1 to nspec species: 

 Loop from 1 to nz layers: 

 ione,mspec(l),((conc(i,j,k,l),i=1,nx),j=1,ny) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-38 

 rdum Dummy real variable 

 iutm UTM zone (ignored for other projections) 

 xorg Grid x-origin at southwest corner of domain (m or degrees longitude) 

 yorg Grid y-origin at southwest corner of domain (m or degrees latitude) 

 delx Cell size in x-direction (m or degrees longitude) 

 dely Cell size in y-direction (m or degrees longitude) 

 nx Number of grid columns 

 ny Number of grid rows 

 nz Number of layers 

 idum Dummy integer variable 

 mspec Species names for nspec species (character*4(10,nspec) array) 

 conc Species l, layer k initial concentrations (ppm for gases, μg/m3 for aerosols) 

for nx grid columns and ny grid rows 

Lateral Boundary Conditions File

The Fortran binary lateral boundary conditions file contains two-dimensional gridded 

concentration fields on the lateral faces of the master grid boundary. Boundary concentration 

fields may be specified for a sub-set of the total number of modeled species. However, if a 

boundary concentration is specified for a given species, it must be supplied for all four 

boundaries. This file also defines any non-modeled portions of the master grid (i.e., a nonuniform boundary may be specified). The format of this file follows that defined for UAM-IV 

(EPA, 1990) so that pre-existing software may be used to develop these input files. The user 

should refer to the UAM-IV User’s Guide for more information on specifying non-uniform 

boundaries. A boundary concentration file must be developed for the master grid, and contain 

concentration fields for at least one species. For those species not on the boundary conditions 

file, CAMx sets up uniform fields using the “lower bound” values specified in the chemistry 

parameters file. 

The boundary file contains a set of time-invariant header records, followed by a set of data 

records that contain the time- and species-varying gridded boundary concentration fields. The 

time span of each set of boundary data records may be set arbitrarily; e.g., a set of boundary 

conditions may be specified for a six hour span, followed by a set spanning just an hour. 

The header portion of the boundary conditions file contains eight records with the following 

structure: 

The time-variant portion of the boundary conditions file has the following structure, where the 

following records are repeated for each update time: 

 name,note,ione,nspec,ibdate,btime,iedate,etime 

 rdum,rdum,iutm,xorg,yorg,delx,dely,nx,ny,nz,idum,idum,rdum,rdum,rdum 

 ione,ione,nx,ny 

 (mspec(l),l=1,nspec) 

 Loop from 1 to 4 boundaries: 

 ione,iedge,ncell,(icell(n),idum,idum,idum,n=1,ncell) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-39 

The variables that are unique to the boundary conditions file have the following definitions: 

 name Text string “BOUNDARY” (character*4(10) array) 

 note Text string containing file description (character*4(60) array) 

 iedge Boundary edge number (1=west, 2=east, 3=south, 4=north) 

 ncell Number of rows or columns on this edge 

 icell Index of first cell modeled (edges 1,3), or last cell modeled (edges 2,4): 

if=0, this row/column is omitted from the simulation 

 bc Species l, edge iedge boundary concentrations (ppm for gases, μg/m3 for 

aerosols) for ncell grid rows/columns, and nz layers 

See the section describing the initial conditions file for a full list of variable definitions common 

to all UAM-IV type files. 

Elevated Point Source File

The Fortran binary elevated point source emissions file contains stack parameters and emission 

rates for all elevated point sources, and for all emitted species, to be modeled. The format of this 

file follows that defined for UAM-IV (EPA, 1990) so that pre-existing emission pre-processing 

software may be used to develop these input files. If elevated point sources are to be modeled, 

only one point source emissions file must be developed for the entire modeling domain. The 

point source file also flags the individual stacks to be treated by the CAMx PiG sub-model by 

setting the stack diameter as a negative value. The file offers the ability to optionally specify the

effective plume height for each point source and to bypass the internal plume rise calculation. 

The point source emissions file contains a set of time-invariant header records, followed by a set 

of data records that contain the time- and species-varying point source emissions data. The time 

span of each set of emission data records may be set arbitrarily; e.g., a set of point emissions may 

be specified for a six hour span, followed by a set spanning just an hour. 

The header portion of the elevated point source file contain 5+nstk records with the following 

structure: 

 ibdate,btime,iedate,etime 

 Loop from 1 to nspec species: 

 Loop from 1 to 4 boundaries: 

 ione,mspec(l),iedge,((bc(i,k,iedge,l),k=1,nz),i=1,ncell) 

 name,note,ione,nspec,ibdate,btime,iedate,etime 

 rdum,rdum,iutm,xorg,yorg,delx,dely,nx,ny,nz,idum,idum,rdum,rdum,rdum 

 ione,ione,nx,ny 

 (mspec(l),l=1,nspec) 

 ione,nstk 

 (xstk(n),ystk(n),hstk(n),dstk(n),tstk(n),vstk(n),n=1,nstk) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-40 

The time-variant portion of the elevated point source file has the following structure, where the 

following records are repeated for each update time: 

The variables that are unique to the elevated point source file have the following definitions: 

 name Text string “PTSOURCE” (character*4(10) array) 

 note Text string containing file description (character*4(60) array) 

 nstk Number of point sources 

 xstk Stack x-coordinate (m or degrees longitude) for nstk point sources 

 ystk Stack y-coordinate (m or degrees latitude) for nstk point sources 

 hstk Stack height (m) for nstk point sources 

 dstk Stack diameter (m, negative if PiG source) for nstk point sources 

 tstk Stack exit temperature (K) for nstk point sources 

 vstk Stack exit velocity (m/hr) for nstk point sources 

 kcell Ignored, except as flag for OSAT/PSAT point source override (provide a 

negative value for the assigned source region), for nstk point sources 

 flow Stack flow rate (m3/hr) for nstk point sources 

 plmht Effective plume height override (m, a negative value replaces the internal 

plume rise calculation) for nstk point sources 

 ptems Species l point emission rate (mol/time period for gases, g/time period for 

aerosols) for nstk point sources. Note that the emissions time period (the 

denominator for the emissions rate) is normally, but not necessarily, 1 

hour. 

See the section describing the initial conditions file for a full list of variable definitions common 

to all UAM-IV type files. 

Gridded Emissions File

The Fortran binary emissions file contains two-dimensional gridded fields of low-level (i.e., 

surface) emission rates for all emitted species to be modeled. The format of this file follows that 

defined for UAM-IV (EPA, 1990) so that pre-existing emission pre-processing software may be 

used to develop these input files. If gridded emissions are to be modeled, a gridded emissions 

file must be developed for the master grid and optionally any nested fine grids. 

The gridded emissions file contains a set of time-invariant header records, followed by a set of 

data records that contain the time- and species-varying gridded emission fields. The time span of 

each set of emission data records may be set arbitrarily; e.g., a set of emissions may be specified 

for a six hour span, followed by a set spanning just an hour. 

The header portion of the gridded emissions file contain four records with the following 

structure: 

ibdate,btime,iedate,etime 

 ione,nstk 

 (idum,idum,kcell(n),flow(n),plmht(n),n=1,nstk) 

 Loop from 1 to nspec species: 

 ione,mspec(l),(ptems(n,l),n=1,nstk) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-41 

The time-variant portion of the initial conditions file has the following structure, where the 

following records are repeated for each update time: 

The time-span of the emissions record must match the input frequency of the emissions as 

specified in the CAMx.in file. 

The variables that are unique to the gridded emission file have the following definitions: 

 name Text string “EMISSIONS” (character*4(10) array) 

 note Text string containing file description (character*4(60) array) 

 emiss Species l gridded emission rate (mol/time period for gases, g/time period 

for aerosols) for nx grid columns and ny grid rows. Note that the 

emissions time period (the denominator for the emissions rate) is 

normally, but not necessarily, 1 hour. 

See the section describing the initial conditions file for a full list of variable definitions common 

to all UAM-IV type files. 

5.6 FORTRAN BINARY OUTPUT FILES

Master and nested grid instantaneous files contain full three-dimensional fields of all species 

modeled, while the gridded average and deposition files contain only those species specified in 

the run control file. For flexibility, CAMx offers the option to write full three-dimensional 

average concentration fields, or just surface layer two-dimensional fields (see the “3-D average 

file” option in the CAMx control file). It is permissible to change the number of species on the 

average file, or change between 2-D and 3-D average files, from one CAMx simulation period to 

the next (provided the periods are configured as separate CAMx runs). As the instantaneous 

concentration files are used for CAMx restarts, the model only writes instantaneous fields at the 

end of the simulation. PiG output files are unique to CAMx, and are used primarily for model 

restarts. The PiG file contains all information carried by the sub-model for all simulation hours; 

therefore, there is sufficient information in the PiG file for subsequent postprocessing and 

analysis. 

Gridded Output Files in UAM Format

The Fortran binary output average and deposition files for all grids, and the coarse (master) grid 

instantaneous file, are all written in the UAM format, which is identical to the initial 

 name,note,ione,nspec,ibdate,btime,iedate,etime 

 rdum,rdum,iutm,xorg,yorg,delx,dely,nx,ny,nz,idum,idum,rdum,rdum,rdum 

 ione,ione,nx,ny 

 (mspec(l),l=1,nspec) 

 ibdate,btime,iedate,etime 

 Loop from 1 to nspec species: 

 ione,mspec(l),((emiss(i,j,l),i=1,nx),j=1,ny) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-42 

concentration file format described earlier. There are three differences between the output 

concentration files and the input initial concentration files. First, the file name given in the file

description header record is “AVERAGE” for the average output file, “INSTANT” for the 

instantaneous output file, and “AIRQUALITY” for the input initial concentration file. Second, 

the “note” in the file description header record of the output concentration files is the message 

supplied in the first line of the CAMx run control file, whereas the “note” in the air quality file is

set as part of the input file preparation. Third, the species lists can be different among the files:

the output instantaneous file contains all species modeled (as specified in the chemistry 

parameters file), the average output file contains only the species specified in the run control file,

and the input initial concentration file may contain any subset of modeled species as determined 

when that file is prepared. 

Two other differences exist between the average and instantaneous output files. As noted above, 

the average file may contain only surface-level fields or the entire three-dimensional fields, as 

selected by the user. Also, gas concentration fields are output as ppm in average files, but as 

μmol/m3

 in instantaneous files (aerosols are in μg/m3 in both files). Because of these 

differences, and because average files usually do not contain all modeled species, CAMx does 

not allow the average output concentration file to be used for simulation restarts. 

Average output files contain concentrations of user-selected “state” species whose names are 

defined in the chemistry parameters file for the specific chemistry mechanism employed. The 

average files can also contain concentrations of user-selected steady-state “radical” species 

specific to each chemistry mechanism; the list of radicals used in CB4, CB05, and SAPRC99 

mechanisms is shown in Table 5-7. 

Table 5-7. List of steady-state radical species names used in the CB4, CB05, and SAPRC99 

gas-phase chemical mechanisms. 

CB4

(Mechanisms 3/4) 

CB05

(Mechanism 6) 

SAPRC99

(Mechanism 5) 

O1D O1D O1D 

O O O 

OH OH OH 

HO2 HO2 HO2 

C2O3 C2O3 RO2R 

XO2 XO2 R2O2 

XO2N XO2N RO2N 

TO2 CXO3 CCO3 

ROR MEO2 RCO3 

CRO TO2 MC03 

 ROR BZCO 

 HCO3 CXO2 

 CRO HCO3

 TBUO 

 BZO 

 BZNO 

 

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-43 

The output deposition file is identical in format to the two-dimensional surface-level output 

average concentration file. The file name given on the first record of the deposition file is 

“AVERAGE” so that post-processing software will recognize the format for plotting (it will not 

recognize any other name, such as “DEPOSITION”, and therefore will not read the file). 

However, the output deposition file differs from the output average concentration file in one 

important way. The species list is identical to the list on the average concentration output files, 

except that four parameters are output for each species: 

 species_DV Two-dimensional dry deposition velocity field for species (m/s) 

species_DD Two-dimensional dry deposited mass field for species (mol/ha for 

 gases, g/ha for aerosols) 

 species_WD Two-dimensional wet deposited mass field for species (mol/ha for 

 gases, g/ha for aerosols) 

 species_LC Two-dimensional precipitation liquid concentration for species

(mol/l for gases, g/l for aerosols) 

Nested (Fine) Grid Instantaneous Output File

The nested (or “fine”) grid Fortran binary output instantaneous file contains the threedimensional concentration fields for all nested grids together, as opposed to separate files for 

each grid. All grid definition parameters given in these files are referenced relative to the master 

grid, so specific absolute information about grid cell size or projection coordinates for each 

nested grid must be determined from master grid parameters. If the user utilizes the Flexinesting capability of CAMx, then the gridded fields output to the nested fine grid files will 

change according to how nests are altered, added, and/or removed during the course of a 

simulation. 

The header portion of the nested grid output files contain 3+nnest records with the following 

structure: 

The time-variant portion of the nested grid output files have the following structure, where the 

following records are repeated for each output time: 

 message 

 nnest,nspec 

 (mspec(l),l=1,nspec) 

 Loop from 1 to nnest grid nests 

 ibeg,jbeg,iend,jend,mesh,ione,nx,ny,nz,iparnt,ilevel 

 time,idate 

 Loop from 1 to nnest grid nests 

 Loop from 1 to nspec species: 

 Loop from 1 to nz layers: 

 ((conc(i,j,k,l),i=1,nx),j=1,ny) 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-44 

The variables on the nested grid output concentration files have the following definitions: 

 message Text string containing file description (character*60) 

 nnest Number of fine grid nests on file 

 nspec Number of species on file 

 mspec Species names for nspec species 

 ibeg Grid n x-direction starting index of grid (master grid cell) 

 jbeg Grid n y-direction starting index of grid (master grid cell) 

 iend Grid n x-direction ending index of grid (master grid cell) 

 jend Grid n y-direction ending index of grid (master grid cell)

 mesh Grid n meshing factor (number of nested cells per master)

 ione Dummy integer = 1 

 nx Grid n number of grid rows 

 ny Grid n number of grid columns 

 nz Grid n number of layers 

 iparnt Grid n’s parent grid (grid index within which this fine grid is nested; 0 = 

master grid) 

 ilevel Grid n’s grid level (depth at which this grid is nested; 1=master grid is 

parent) 

 time Time of output (HHMM); ending hour for average output 

 idate Date of output (YYJJJ) 

 conc Grid n, species l, layer k concentrations (ppm for average gases, μg/m3 for 

average aerosols, μmol/m3 for instantaneous gas species) for nx grid 

columns, and ny grid rows 

PiG Restart File

When the PiG option is invoked, CAMx outputs all puff parameters each hour for model restart 

capabilities. This file is Fortran binary and is analogous to the instantaneous gridded 

concentration output files in that it represents a “snapshot” of data at the top of each hour. The 

file contains information for each puff, including coordinates, grid location, size specifications, 

age, and mass of each of the chemical species carried. While this file contains PiG information 

for the entire simulation, it would be of limited use for certain analyses such as plotting puff 

trajectories. This is because the instantaneous nature of the data, and the dynamic memory 

allocation utilized in the PiG submodel, leads to insufficient information to identify and track 

individual puffs hour to hour. 

The PiG restart file contains two records with the following structure, and these are repeated for 

each output time: 

 idatpig,timpig,npig,nreactr 

 (ingrd(n),idpig(n),xpigf(n),xpigb(n),ypigf(n),ypigb(n),zpig(n), 

 & axisy(n),axisz(n),sigy(n),sigx(n),sigz(n),pufftop(n),puffbot(n), 

 & htfms(n),htfmb(n),vtfms(n),vtfmb(n),agepigf(n),agepigb(n),fmspig(n), 

 & ipufmap(n),ipufgrp(n), 

 & ((puffrad(i,nr,n),i=1,nrad),nr=1,nreactr), 

 & ((puffmass(i,nr,n),i=1,nspec),nr=1,nreactr),n=1,npig 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-45 

The variables on the GREASD PiG restart file have the following definitions: 

 idatpig Date of output (YYJJJ) 

 timpig Time of output (HHMM) 

 npig Number of PiG puffs active at this output time 

 nreactr Number of chemical reactors in each puff 

 ingrd Grid index for npig puffs 

 idpig Point source index for npig puffs 

 xpigf x-coordinate of puff front (km from master grid origin) for npig puffs 

 xpigb x-coordinate of puff back (km from master grid origin) for npig puffs 

 ypigf y-coordinate of puff front (km from master grid origin) for npig puffs 

 ypigb y-coordinate of puff back (km from master grid origin) for npig puffs 

 zpig Puff height (m AGL) for npig puffs 

 axisy Puff lateral width (m) for npig puffs 

 axisz Puff vertical depth (m) for npig puffs 

 sigy Puff Gaussian lateral dimension (m) for npig puffs 

 sigx Puff Gaussian longitudinal dimension (m) for npig puffs 

 sigz Puff Gaussian vertical dimension (m) for npig puffs 

 pufftop Puff top height (m AGL) for npig puffs 

 puffbot Puff bottom height (m AGL) for npig puffs 

 htfms Puff horizontal turbulent flux moment, shear (m2/s) 

 htfmb Puff horizontal turbulent flux moment, buoyancy (m

2

/s) 

 vtfms Puff vertical turbulent flux moment, shear (m2

/s) 

 vtfmb Puff vertical turbulent flux moment, buoyancy (m2/s) 

 agepigf Puff front age since release (s) for npig puffs 

 agepigb Puff back age since release (s) for npig puffs 

 fmspig Puff volume parameter (unitless) for npig puffs 

 ipufmap Puff OSAT region map pointer (unitless) for npig puffs 

 ipufgrp Puff OSAT group poing (unitless) for npig puffs 

 puffrad Puff radical concentrations (ppm) for nrad species, nreactr reactors, and 

npig puffs 

 puffmass Puff pollutant mass (μmol) for nspec species, nreactr reactors, and npig

puffs 

PiG Sample Grid Files 

The optional PiG sampling grid concentrations are time-averaged in the same manner as the 

output average concentrations provided on the computational grids. The same user-defined set 

of output species are written to the sampling grid files, but only two-dimensional surface layer 

concentrations are reported. The sampling grid file format is identical to the average and 

deposition files (UAM format), with one file generated per sampling grid, so that they may be 

readily viewed and manipulated with CAMx post-processing software. 

 
CAMx v5.30 User’s Guide, December 2010 

Core Model Input/Output Structures 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_05_IO.docx 5-46 

5.7 HDF5 OUTPUT FILES

CAMx provides the option to output two-dimensional or three-dimensional average 

concentrations to HDF5 files in lieu of the standard UAM Fortran binary format. The HDF 

conventions employed in CAMx were taken from the Regional Atmospheric Modeling System 

(RAMS), version 6.0 (http://www.atmet.com/html/docs/documentation.shtml). Standard HDF5 

utilities can be used to view and manipulate the CAMx HDF5 average output files. Deposition 

and instantaneous restart files cannot be output in HDF5 format, and will continue to be written 

in the standard formats as described above if the HDF option is invoked. 

Two basic types of files are generated when this option is invoked: 

• A text “header” file, containing various grid, species and pointer information defining the 

data contained in each HDF concentration file (labeled “...head.txt”); 

• HDF5 format concentration files, one for each output time and for each grid (labeled 

“...gnn.h5”, where nn is grid index). 

Each file is labeled first with a user-supplied root path/filename (root) and then the year, month, 

day, and time (YYYY-MM-DD-HHMMSS). The standard computational grid output fields are 

written to files labeled with the letters “CX”. The optional PiG sampling grid output fields are 

written to files labeled “CS”. 

Both types of files contain core model species, labeled with a prefix of “CH-” to indicate 

standard chemistry species (e.g., NO and O3 are output to HDF files as “CH-NO” and “CHO3”). If the RTRAC Probing Tool is used, then both computational and PiG sampling grid files 

will also contain all the RTRAC species with a prefix of “PT-” to indicate Probing Tool species 

(e.g., the arbitrary RTRAC species TRAC1 is output to HDF files as “PT-TRAC1”). 

See Section 11 for information on how to compile CAMx with HDF5 libraries. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-1 

6. OZONE SOURCE APPORTIONMENT TECHNOLOGY

6.1 INTRODUCTION 

Photochemical grid models are used to develop NOx and/or VOC emission reduction strategies 

to attain ozone air quality objectives. Traditionally, the development of an ozone attainment 

strategy involves iteration through many photochemical grid model scenarios to identify which 

pollutants, source categories and source regions should be controlled. It is impractical to analyze 

every potential control strategy and so there is potential for implementing controls on sources 

that contribute little to the high ozone levels or, conversely, not controlling sources that do 

contribute. 

ENVIRON developed an ozone source attribution approach that has become known as the 

“Ozone Source Apportionment Technology”, or OSAT (Yarwood et al., 1996). This method 

was originally implemented in the Urban Airshed Model (UAM) and was then built into CAMx1

. 

OSAT provides a method for estimating the contributions of multiple source areas, categories, 

and pollutant types to ozone formation in a single model run. OSAT also includes a 

methodology for diagnosing the temporal relationships between ozone and emissions from 

groups of sources. The capabilities of OSAT are summarized below along with an assessment of 

the strengths and limitations of the approach. 

The main challenges in developing and implementing a methodology to track the spatial and 

temporal relationships between separate groups of emission sources and ozone formation are: 

• Accounting not only for the presence of ozone precursors from a given source region at a 

given receptor location, but also accurately estimating the cumulative contribution to 

ozone production of those precursors while they were en-route to the receptor. 

• Insuring compatibility with the underlying air quality model formulation so that derived 

source-receptor relationships will be consistent with model response to emission changes. 

• Providing sufficient spatial and temporal resolution while managing, within practical 

constraints, the computer resources required to run the software tool. 

OSAT uses multiple tracer species to track the fate of ozone precursor emissions (VOC and 

NOX) and the ozone formation caused by these emissions within a simulation. The tracers 

operate as spectators to the normal CAMx calculations so that the underlying CAMx predicted 

relationships between emission groups (sources) and ozone concentrations at specific locations 

(receptors) are not perturbed. Tracers of this type are conventionally referred to as “passive 

tracers,” however it is important to realize that the tracers in the OSAT track the effects of 

chemical reaction, transport, diffusion, emissions and deposition within CAMx. In recognition 

of this, they are described here as “ozone reaction tracers.” The ozone reaction tracers allow 

ozone formation from multiple “source groupings” to be tracked simultaneously within a single 

 

1

 Note that with the release of CAMx v4.20, the formulation of the Ozone Source Apportionment Technology differs 

slightly from earlier versions in that it accounts for the fact that ozone production and destruction occur 

simultaneously as it apportions ozone change among tracers. Previously, OSAT only considered the net change in 

ozone in the apportionment algorithm. The approach is described later in this section. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-2 

simulation. A source grouping can be defined in terms of geographical area and/or emission 

category. Figure 6-1 provides an example of the way that a CAMx domain can be sub-divided 

into multiple source areas – 40 in this example. Also, the emission inventory could be subdivided into several source categories – two emission categories over 40 source regions would 

produce 80 separate source groupings. So that all sources of ozone precursors are accounted, the 

CAMx boundary conditions and initial conditions are always tracked as separate source 

groupings. 

Figure 6-1. Example of the sub-division of a CAMx domain into separate areas for geographic 

source apportionment. 

The methodology is designed so that all ozone and precursor concentrations are attributed among 

the selected source groupings at all times. Thus, for all receptor locations and times, the ozone 

(or ozone precursor concentrations) predicted by CAMx is attributed among the source 

groupings selected for OSAT. The methodology also estimates the fractions of ozone arriving at 

the receptor that were formed en-route under VOC- or NOX-limited conditions. This information 

indicates how ozone concentrations at the receptor will respond to reductions in VOC and NOX

precursor emissions. 

In addition to using ozone reaction tracers to apportion ozone formation, the OSAT uses separate 

families of timing tracers to allow source-receptor transport times to be estimated. Unique 

timing tracers are released from each geographical area selected for ozone source apportionment. 

Thus, if the ozone formation tracers show that emissions from a given source area contributed to 

-95 -90 -85 -80 -75 -70

30

35

40

45

1

2

3

4

6

7

8 9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-3 

ozone at any receptor of interest, the timing tracers can then be used to estimate the time at 

which the emissions were released. This provides a way of investigating temporal features of the 

source-receptor relationships and even developing temporally targeted control strategies. 

An example display of the type of ozone source apportionment information available from 

OSAT is shown in Figure 6-2. The figure shows information for the location of the region wide 

maximum hourly average ozone concentration (the hourly peak) for an example OSAT run (this 

run had 17 geographical source areas and a single emission group). Summary information for 

scenario and receptor is shown in the center. At top left, a bar chart shows how the total amount 

of ozone was attributed between initial conditions, boundary conditions and emissions, with the 

emissions contribution being divided between ozone formed under VOC and NOX limited 

conditions. At top right, a pie chart shows the relative ozone contributions from initial 

conditions, boundary conditions and emissions, with the emissions contributions broken out by 

numbered geographical source areas. Only the source areas with the largest ozone contribution 

are shown, the remaining source areas are lumped together under “All Others.” At bottom, there 

is a tabular summary of ozone contributions underlying the charts at the top. The tabular 

summary also shows the estimated release times for the emissions from different source areas 

impacting the receptor (under the “Time Emitted” column). The release times are estimated 

using the timing tracers. The timing tracers are also used to estimate whether there is more than 

one significant source-receptor pathway between each source area and the receptor, i.e. if timing 

tracers of different ages from the same source area are present at the receptor it is likely that 

recirculation of emissions is occurring. The display shown in Figure 6-2 is only one of many 

ways in which OSAT results can be displayed to gain insight into ozone source-receptor 

relationships predicted by CAMx. Figure 6-2 is shown here to illustrate the types of information 

available. Displays like Figure 6-2 are generated using post-processing software described later 

in this section. 

An important feature of the ozone reaction tracer approach used in OSAT is that the normal 

CAMx calculations are not perturbed; thus, OSAT estimates the same ozone and precursor 

concentrations as CAMx. Further, since the same inputs are used for meteorology, emissions 

etc., and the same numerical methods are employed throughout the model, the source-receptor 

relationships developed by OSAT inherently have a high degree of consistency with those 

present in CAMx. The level of consistency between the source-receptor relationships developed 

by OSAT and CAMx is limited by three factors: 

• The completeness of the conceptual methodology underlying the source apportionments; 

• The limitations of the numerical methods employed by CAMx; and 

• The non-linear nature of the ozone formation process. 

The completeness of the source apportionment methodology was analyzed by performing a 

series of evaluations of OSAT results against UAM sensitivity tests (Yarwood et al., 1996). 

These tests showed that the OSAT performed well in predicting both the spatial impacts of 

emissions from given source regions and the relative contributions of separate emission 

regions/groups to ozone. OSAT cannot overcome numerical limitations inherent to CAMx (as 

well as other grid models). The UAM evaluation tests referred to above suggested that a 

potential serious numerical limitation was the Smolarkeiwicz horizontal advection solver 

(Smolarkeiwicz, 1983). As discussed below, the non-linear numerical limitations of advection 

algorithms were addressed in the OSAT design, and we believe that they probably pose greater 

problems for the use of CAMx in conventional control strategy evaluations than for OSAT 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-4 

Figure 6-2. Example display of ozone source apportionment information provided by OSAT for 

a run with 17 source areas and 1 emission group. 

Contributions By Type Contributions By Source Area

 Receptor = HourlyPeak

Time = 16 To 17

Date = 8/28/87

Scenario = Evaluation Test 

Total Ozone = 183 ppb

Detailed Ozone Apportionment

Source Emission Percent Ozone from Time Recirculation

Area Group NOx VOC Total Emitted Likely

IC 12%

BC 14%

7 1 3% 17% 20% 8/28 5 am No

6 1 4% 13% 16% 8/28 6 am No

10 1 7% 7% 14% 8/28 7 am No

17 1 1% 6% 7% 8/27 1 pm No

16 1 1% 6% 7% 8/27 6 am No

13 1 2% 1% 4% 8/28 2 pm No

All Others 7%

0

20

40

60

80

100

120

140

160

180

200

Ozone (ppb)

NOx limited

VOC limited

Boundary

Initial

IC

12%

BC

14%

7, 1

19%

6, 1

16%

10, 1

14%

17, 1

7%

16, 1

7%

13, 1

4%

All Others, 

7%
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-5 

(Yarwood et al., 1996). This issue was one of the primary reasons for incorporating the Bott 

(1989) and PPM (Colella and Woodward, 1984) advection algorithms into CAMx and 

redesigning the three-dimensional transport scheme to be more mass consistent2

. Further, the 

tracer transport routines were modified to directly use the advective fluxes diagnosed by the 

regular model advection solvers to minimize inconsistencies between tracers and regular model 

species. 

The biggest limitation of this, or any other, ozone source apportionment approach likely results 

from the third factor mentioned above: namely, the non-linear nature of the chemical interactions 

between emissions from different source groupings. This means that as soon as the emission 

inventory is perturbed, the source receptor relationships begin to change. Thus, OSAT can only 

estimate the contribution to ozone from a specific source grouping under the current emissions 

scenario. It cannot directly quantify the ozone reductions that will result from an emission 

control strategy because the CAMx response may well be non-linear with the magnitude of the 

control applied (e.g. 20 percent or 60 percent control) and the presence/absence of other 

simultaneous controls on other source groupings. 

However, this fundamental truth of photochemical modeling does not limit the usefulness of 

OSAT: arguably it increases its usefulness. At any rate, it suggests the following approach to 

control strategy development with OSAT. For the base CAMx scenario, OSAT could be used to 

identify specific source groupings for which ozone reductions from emissions controls would be 

maximized. Just as important, OSAT will identify source groupings for which emissions 

controls are not effective at reducing ozone concentrations. The most effective and feasible 

control measures identified in this way can be applied to the emission inventory, leading to a 

revised CAMx scenario with different (lower) emissions. If additional controls are needed, 

OSAT could be applied again to identify the most effective control measures under the new 

conditions. Development of the control plan will still proceed by an iterative process, but OSAT 

can be used to guide the process to develop (and justify) more refined, better-targeted and more 

cost-effective ozone control strategies. 

6.2 OSAT FORMULATION

CAMx has been extended to accommodate extra tracer species needed to perform ozone source 

apportionment. For each user-specified source grouping (geographical area/emissions category) 

there are two distinct types of tracer species, “timing tracers” and “ozone reaction tracers.” The 

timing tracers are used to track the temporal relationships between precursor emissions and 

ozone formation. The ozone reaction tracers track the fate of ozone precursors (NOX and VOC) 

emissions from each source grouping plus the ozone formation attributed to those emissions. 

The methodology requires that all ozone precursors be tracked so that all contributions to ozone 

can be accounted for, thus ozone and precursors originating from the model boundary and initial 

concentrations are also tracked as separate source groupings (however, no timing tracers are 

allocated to the initial or boundary conditions). The following sub-sections describe the 

methodologies employed for the timing and ozone reaction tracers. 

 

2

 The Smolarkiewicz advection routine is no longer available in CAMx. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-6 

Timing Tracers

There are two types of “timing” tracers called inert and decay-companion tracers. Inert and 

decay-companion tracers are used in tandem to identify the age of emissions from any source 

area. Timing tracers are emitted into every surface grid cell at a constant rate. Timing tracers 

have unique names that identify the source area in which they were released. After release, the 

decay-companion tracers decay exponentially with a constant lifetime. Since the inert and 

decay-companion tracers are affected identically by transport and diffusion, differences in 

predicted concentrations between the two are due only to the first-order decay of the decaycompanion tracer. The presence of inert tracer from a given source area (A) at a receptor (B) 

indicates that a transport pathway exists from A to B. The amount of tracer decay that has 

occurred since release (i.e. the ratio of the decay companion tracer to its matched inert tracer) can 

be used to calculate the transport time from A to B and therefore the time period during which 

emissions at source area A can potentially impact receptor B. 

To resolve ambiguities in timing calculations that could result from wind flow reversals (e.g., 

land/sea breezes) or other recirculation patterns, new sets of inert and decay-companion tracers 

can be released at user specified time periods. When a new set of timing tracers (i.e. one pair 

for each source area) is released, emissions of the previous set cease. Old timing tracers are still 

carried in the model to track emissions from those source areas and time period as they age. 

Thus, as a simulation progresses the number of timing tracers being carried increases as new sets 

are released. The names of timing tracer species identify the species type and source area/time 

period in which the tracer was released: 

 Ii, t = Inert timing tracer for region i and time period t. Emitted at a constant rate during 

that time period. 

 Di, t = Decay companion timing tracer for region i and time period t. Emitted at a 

constant rate during that time period. Decays exponentially with a constant 

lifetime of 12 hours after release. 

This method is more computationally efficient than the simpler alternative of releasing nondecaying tracers many short time periods, since the latter approach would rapidly lead to an 

impossibly large number of tracers. 

Ozone Reaction Tracers 

The second category of tracers is called “ozone-reaction” tracers. There are four ozone-reaction 

tracers per source area to account for the contributions of emissions of separate source areas to 

the complex process of the ozone formation activity. It is important to recall that the mass of 

NOX or VOC from a given source area that may be present at a given receptor at a selected hour 

is often not particularly relevant to the amount of ozone present there at that time. Rather, it is 

the contribution to ozone formation activity of source areas’ NOX and VOC emissions en-route 

to a receptor that must be determined. The ozone-reaction tracers are designed to integrate these 

en-route contributions to ozone production/destruction activity. 

Ozone formation involves both NOX and VOCs, and the NOX and VOCs participating in ozone 

formation in any particular grid cell/time step may have originated from different source 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-7 

groupings. The ozone formation process can be controlled more by the availability of VOCs or 

NOX, depending upon the relative abundance of both precursors, and ozone formation is 

described either as VOC limited or NOX limited, respectively. When ozone production at a

given location and time is NOX limited it makes sense to attribute ozone production to source 

groupings based on their contributions to the local NOX and similarly to allocate based on VOC 

contributions when ozone formation is VOC limited. Consequently, separate tracers are used to 

track ozone formation occurring under NOX and VOC limited conditions. The criterion used to

determine whether ozone formation is occurring under locally NOX or VOC limited conditions is 

described in detail in a separate section below. 

The four types of ozone-reaction tracers that are tracked for each source grouping (i.e., 

geographic area/source category, boundary conditions or initial conditions) are explained below. 

The name of each tracer uniquely identifies the source grouping it represents: 

 Ni = NOX tracer for source grouping i. Emitted with the same spatial and temporal 

distribution as NOX emissions for source grouping i. Decays with local 

dNOX/dt for each grid cell/time step. 

 Vi = VOC tracer for source grouping i. Emitted with the same spatial and temporal 

distribution as VOC emissions for source grouping i. Decays with local 

dVOC/dt for each grid cell/time step. Note that VOC tracers are defined as 

single carbon species, so their concentrations are numerically equal in ppb and 

ppbC units. 

 O3Vi

 = Tracer of ozone formation under VOC limited conditions attributed to source 

grouping i. If ozone formation is determined to be VOC-limited for a given 

grid cell/time step, O3Vi is formed in proportion to local dO3/dt in proportion 

weighted by the distribution of VOC precursors (Vi). 

 O3Ni = Tracer of ozone formation under NOX limited conditions attributed to source 

grouping i. If ozone formation is determined to be NOX-limited for a given 

grid cell/time step, O3Ni

 is formed in proportion to local dO3/dt in proportion 

weighted by the distribution of NOX precursors (Ni). 

Mass Consistency with CAMx

The ozone reaction tracer methodology was designed to be inherently mass consistent with 

CAMx. In other words, the sums of the individual ozone, NOX, and VOC tracers (i) should 

remain consistent with their standard CAMx counterparts as follows: 

3 3 3

2

O V O N O

V VOC C

N NO NO

i i

j

i j

i

+ =

= ×

= +

∑ ∑

∑ ∑

∑
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-8 

Note that VOC tracers are weighted by the carbon number of each VOC species (Cj). The 

validity of these relationships was evaluated and it was found that the chemistry, emissions, 

deposition, horizontal diffusion, and vertical diffusion algorithms maintained mass consistency 

on an overall and cell-by-cell basis. However, it was found that the horizontal and vertical 

advection algorithms inherently maintained mass consistency on an overall basis, but not a cellby-cell basis. Accordingly, the advection algorithms for the ozone reaction tracers were 

modified as described below to maintain mass consistency. 

Emissions

The tracer families, Ni

 and Vi, track NOX and VOC emissions from each source grouping to 

allow attribution of ozone formation as it occurs throughout CAMx. The rates of emission of the 

Ni and Vi tracers are set equal to the total NOX and VOC emissions in the inventory for a source 

grouping, respectively. For the Vi

 tracers, the emissions are set equal on a ppmC basis. For the 

initial condition (IC) source grouping, the NIC and VIC tracers are initialized from the CAMx 

initial concentration fields and receive no more mass input after the start of the simulation. For 

the boundary condition (BC) source grouping, the fluxes of NOX and VOC entering CAMx from 

the boundaries are effectively interpreted as emissions of the NBC and VBC tracers at the model 

boundaries. Unlike emission source groupings, boundary and initial conditions also introduce 

ozone directly into CAMx. Since there is no way of determining whether the ozone in the 

boundary and initial conditions was formed under VOC or NOX limited conditions, this ozone is 

divided equally between O3N and O3V tracers. However, subsequent ozone formation within 

CAMx from boundary and initial condition VOCs and NOX is allocated to O3V and O3N tracers 

on the basis of whether ozone formation occurred under VOC or NOX limited conditions 

(discussed below). 

Deposition

The Ni, Vi, O3Ni and O3Vi tracers are deposited at rates determined by the standard CAMx 

deposition calculation on a surface grid cell by grid cell basis. For NOX, the deposition velocity 

for each tracer Ni

 [Vd( Ni)] is set equal to the concentration weighted average of the deposition 

velocities for NO and NO2: 

Similarly, the deposition velocity for each tracer Vi is set equal to the concentration weighted 

average of the deposition velocities for the VOC species (the concentration weighting is 

performed on a ppmC basis). The deposition velocity for the O3N and O3V tracers is set equal 

to the ozone deposition velocity. Gridded fields of deposited OSAT tracer mass can optionally 

be output to a file for viewing or reporting. 

( ) ( ) ( ))1(

2

2 2

NO NO

NO V NO NO V NO V N

D D

d i

+

× + ×

=
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-9 

Transport and Diffusion

Originally, the Ni

, Vi, O3Ni and O3Vi tracers were advected and diffused by the CAMx 

algorithms. As mentioned above, testing of OSAT showed that the CAMx advection routines 

did not accurately preserve the spatial relationships between ozone reaction tracers and their 

corresponding CAMx species (i.e., between the sum of the O3V and O3N species and CAMx 

O3). The distortion in any single model time-step was small, but the distortion built up over time 

to unacceptable levels. This was caused by non-linear dependences on the gradients of the 

advecting material, which can differ substantially between the standard model species and each 

of the OSAT tracers. This resulted in OSAT predictions that differed from the standard CAMx 

concentrations. 

Such an outcome was inconsistent with the objectives in developing OSAT, so an alternative 

approach was adopted. As the horizontal and vertical transport operations are carried out for all 

CAMx species, the individual advective fluxes for ozone and each NOx and VOC species are 

reported by the advection solvers. The ozone and individual NOx and VOC fluxes are combined 

(and weighted by carbon number for VOC) and normalized by their respective weighted mean 

concentrations prior to advection. The equations below summarize this process, where f i is the 

flux of the core model species into or out of cell i, C is VOC carbon number, and F

i

 is bulk 

normalized flux: 

i

i

i O

O

OLE

i

PAR

i

OLE

i

PAR OLE

i

i PAR

VOC

i i

i

NO

i

i NO

NOx

O

f

F

PAR C OLE C

f C f C

F

NO NO

f f

F

3

...

...

2

3

3

2

=

× + × +

× + × +

=

+

+

=

These bulk normalized fluxes are used to advect each tracer species directly, rather than sending 

the tracers through the advection algorithms. This approach has significantly improved 

consistency between tracer and regular model concentrations. 

The OSAT tracers are sent to the standard CAMx routines for vertical diffusion and horizontal 

diffusion. Since small deviations sometimes occur between the OSAT tracer concentrations and 

the regular CAMx species (due to numerical limitations), the ozone reaction tracer 

concentrations are renormalized after transport to be consistent with the standard CAMx 

concentration fields. The renormalization is applied in the same subroutine as chemical change 

because this is computationally efficient. 

Chemical Change

The Ni

 tracer mass in each grid cell at each time step decays according to the chemical change in 

the CAMx predicted NOX (∆NOX) weighted by the tracer contribution to the total of NOX tracers 

from all source groupings: 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-10 

The Vi tracer mass in each grid cell at each time step decays according to the chemical change in 

the CAMx predicted VOC (∆VOC) weighted by the tracer contribution to the total of VOC 

tracers from all source groupings. However, because the reactivity of VOCs from different 

source groupings can be different, a weighting factor based on the OH-reactivity of each V tracer 

(kOHi) is also introduced. The kOHi for each source grouping is calculated at the start of each 

simulation period (typically one day) by averaging the OH rate constants of the speciated VOC 

emissions for each source grouping. The V tracer mass in each grid cell at each time step decays 

at a rate determined by the following equation: 

The O3N and O3V tracers for each source grouping accumulate a weighted fraction of the ozone 

production activity (PO3) and ozone destruction activity (DO3) that occurs in each grid cell at 

each time step. The process of apportioning PO3 and DO3 across O3N and O3V tracers occurs 

as follows: 

 1. Determine whether the local (grid cell/time step) ozone production process is NOX or 

VOC limited. As described in detail below, the determination is based on the ratio of 

the local HNO3 and H2O2 production rates. If the H2O2/HNO3 production ratio is 

greater than 1/3 during a time step, then ozone formation is NOX limited. If this ratio 

is less than or equal to 1/3, then ozone formation is VOC limited. 

 2. For allocating ozone production under conditions determined to be: 

(a) NOX limited: allocate PO3 across O3N tracers 

(b) VOC limited: allocate PO3 across O3v tracers based on maximum 

incremental reactivity (MIR) factors 

 

 3. For ozone destruction, allocate across all ozone tracers. 

 

 where X = N and V. 

This is the algorithm used for OSAT. The GOAT and APCA methods use different algorithms 

for allocating ozone production, as described below. 

)2(

∑

= + ∆ ×

old

i

old

i

x

old

i

new

i

N

N

N N NO

)3(

∑ ×

×

= + ∆ ×

i

old

i

i

old

old i

i

new

i

V kOH

V kOH V V VOC

3 3 )4( 3

∑

= + ×

old

i

old

old i

i

new

i

N

N

O N O N PO

3 3 )5( 3

∑ ×

×

= + ×

i

old

i

i

old

old i

i

new

i

V MIR

V MIR O V O V PO

3 3 )6( 3

∑

= + ×

old

i

old

old i

i

new

i

X

X

O X O X DO
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-11 

The MIRs used in equation (5) are the weighted average MIRs for the emissions in each source 

group. The MIR approach was developed by Carter (1994) to approximate the ozone forming 

potential of VOCs accounting for both kinetic and mechanistic reactivity effects. The MIR 

represents the ozone formation potential of the VOC mixture accounting for the VOC reactions 

with OH as well as the effects of all of the VOC products that produce ozone formation. The 

VOC + OH reaction is the main VOC destruction mechanism so it is appropriate to weight the 

VOC destruction across the VOC reactive tracers by their composite reaction rate with OH 

(kOH). The MIR factors for the CAMx CB4, SAPRC99, and CB05 mechanisms are shown in 

Tables 3-4, 3-7, and 3-10, respectively. 

Accounting for Ozone Destruction Reactions in OSAT

The original OSAT algorithm (i.e., CAMx v4.11s and earlier) allocated chemical change to 

ozone tracers based on the total change in ozone (∆O3) across a call to the gas-phase chemistry 

solver. A positive ∆O3 was equated to ozone production and ozone tracers were incremented 

according to the OSAT, APCA or GOAT rules for apportioning ozone production. A negative 

∆O3 was equated to ozone destruction and the destruction was distributed equally among all 

ozone tracers. However, ozone production and destruction mechanisms operate simultaneously 

within the chemical mechanism (e.g., CB4) and so the net change in ozone is the balance of 

production and destruction. For example, VOC oxidation can drive photochemical ozone 

production at the same time that O3 + VOC reactions directly consume ozone, and these 

processes may lead to a net increase or decrease in ozone depending mainly upon availability of 

NOx and sunlight. OSAT has been modified to explicitly track several ozone destruction 

mechanisms as follows: 

1. O3 + VOC reactions since these remove ozone; 

2. O(3P) + VOC reactions since these effectively remove ozone; 

3. O(1D) + H2O reaction since this effectively removes ozone; 

4. HOx + O3 reactions that do not re-form ozone. 

Ozone production is then calculated from the difference between ∆O3 and total ozone destruction 

(PO3 = ∆O3 – DO3). The OSAT ozone tracers are adjusted first for ozone destruction (applied 

to all tracers) and second for ozone production (applied using the OSAT, APCA or GOAT rules). 

The amount of ozone destruction is calculated using integrated reaction rates obtained from the 

Process Analysis (PA) Probing Tool; see Section 9. It is easy to account for processes 1-3 using 

PA since the ozone destroyed is simply the integrated rates of the reactions involved. Process 4 

is less easy to identify but is very important as an ozone destruction mechanism in low NOx 

(rural) environments. Therefore, accounting for process 4 is important to understanding longrange ozone transport. 

The main reaction pathways between ozone and HOx (OH and HO2) are shown in Figure 6-3. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-12 

Figure 6-3. Daytime reactions of ozone with HOx (OH and HO2) showing potential for 

reformation of ozone or ozone destruction via peroxide formation. 

Ozone reacts directly with both with OH and HO2: 

 O3 + OH → O2 + HO2 (7) 

 O3 + HO2 → 2 O2 + OH (8) 

Since OH and HO2 radicals inter-convert rapidly during the daytime they can be viewed as a 

radical pool, called HOx. During the daytime, there are two main sinks for HOx: 

(1) propagation by reaction with NO, which reforms ozone: 

NO + HO2 → NO2 + OH 

NO2 + hν → NO + O(3P) 

O(3

P) + O2 → O3

Net: HO2 + O2 + hν → O3 + OH 

(2) termination by reaction with HO2 or RO2 to form peroxides and other organic 

products, which prevents HOx from propagating to reform ozone: 

HO2 + HO2 → H2O2 + O2

HO2 + RO2 → ROOH + O2

RO2 + RO2 → organic products + O2 

In the revised OSAT algorithms, the ozone destruction rate due to O3 + HOx reactions is 

estimated as: 

OH

HO2

O3

OH HO2

hV

NO Peroxides

NO2

HOx 

Radical 

Pool

HO2, 

RO2

( )

( )

( ) ( ) 















+

= ×

+

+

HO NO HO term

HO term

O HOx Rate Rate

Rate

O Destructio n Rate Rate

2 2

2

3

3
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-13 

This equation is the rate of O3 + HOx reaction (i.e., the rates of [7] plus [8]) multiplied by a 

branching ratio that estimates the fraction of O3 + HOx reactions that result in loss of ozone. The 

reaction of O3 with HO2 is the dominant destruction pathway for ozone under low NOx 

conditions at mid-latitudes (Wang et al., 2003). 

Ozone destruction due to the O3 + NO → NO2 + O2 titration reaction is explicitly excluded from 

the accounting of ozone destruction because it is hard to disentangle its role in ozone destruction 

and production. Under high NOx (ozone titration) conditions and at night this reaction becomes 

clearly an ozone destruction pathway, and in these situations ∆O3 becomes negative and ozone 

destruction due to the O3 + NO reaction is accounted for. Under most daytime conditions, this 

reaction is part of the O3, NO, NO2 photo-stationary state and ozone can be reformed again when 

NO2 photolyzes so this reaction is not clearly an ozone destruction pathway. 

Distinguishing VOC-Limited from NOX-Limited Ozone Formation

The classic trajectory model EKMA diagram can be used to distinguish VOC-limited from NOXlimited trajectories and develop a classification based on initial VOC-to-NOX ratio. However, 

this approach classifies VOC- or NOX-limited behavior based on the response of the peak ozone, 

which is the net response from several hours of photochemistry. In reality, many of the 

trajectories start out VOC-limited and become NOX-limited during the course of the day 

essentially because the NOX is depleted more rapidly than the VOC. For OSAT, a more 

fundamental indicator of the instantaneous state of ozone formation with regard to VOC- or 

NOX-limitation is required. 

The sensitivity of ozone formation to VOCs and NOX at any given time is attributable to the fate 

of radicals. The radical pool is often referred to as odd-hydrogen (HOX) and is most usefully 

considered as the sum of OH, HO2 and RO2 radicals. When NOX is plentiful, the main radical 

termination (i.e., HOX removal) pathway is nitric acid formation, i.e.: 

 OH + NO2 (+M) → HNO3 (+M) (9) 

Under these conditions, ozone formation is limited by the rate at which radicals can be formed, 

which is generally described as the VOC-limited condition. Thus nitric acid (HNO3) production 

is indicative of plentiful NOX and VOC-limited ozone formation. 

When NOX is scarce, radical-radical reactions dominate HOX removal, e.g.: 

 HO2 + HO2 (+M) → H2O2 + O2 (+M) (10) 

 HO2 + RO2 → ROOH + O2 (11) 

Under these conditions, ozone formation is limited by the availability of NO to react with HO2

and RO2 radicals, which is described as the NOX-limited condition. HO2 and RO2 radicalsthat 

do not react with NO participate in peroxide formation. Thus, peroxide formation (H2O2 = 

hydrogen peroxide, or ROOH = organic hydroperoxides) is indicative of scarce NOX and NOXlimited ozone formation. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-14 

Sillman (1995) has exploited this situation to develop useful indicators of VOC vs. NOX limited 

ozone formation based on the ratio of peroxide production to nitric acid production. Sillman 

proposed that the transition between these conditions occurs when: 

 (PH2O2 + PROOH) / PHNO3 = 0.5 (12) 

The production rates of nitric acid (PHNO3) and hydrogen peroxide (PH2O2) in each CAMx grid 

cell at each time step are readily accessible, but the production rate of organic peroxides (PROOH) 

is not readily accessible because the CB4 mechanism does not explicitly track these species. The 

balance between PROOH and PH2O2 depends upon the relative production of HO2 and RO2 radicals, 

and Sillman suggests that it is not highly variable within/across simulations. Accordingly, he 

proposes that equation (12) is equivalent to a transition point of: 

 PH2O2 / PHNO3 = 0.35 (13) 

In other words, when this ratio exceeds 0.35 ozone formation is NOX-limited, and when this ratio 

is less than 0.35 ozone formation is VOC-limited. 

Evaluation of Sillman’s PH2O2/PHNO3 Indicator

Equation (13) was evaluated as an indicator of VOC vs. NOX-limited ozone formation for several 

trajectory model scenarios using the CB4 mechanism as implemented in the UAM.3 The ozone 

concentration for a scenario with an initial VOC/NOX ratio of 10 (0.3 ppmC of VOC, 30 ppb of 

NOX) is shown in Figure 6-4. Also plotted, against the right axis, is the ratio PH2O2/PHNO3. 

Sillman’s proposed PH2O2/PHNO3 transition point of 0.35 is shown by the dashed line. Before 

about 12 noon, PH2O2/PHNO3 is less than 0.35 indicating VOC-limited ozone formation, whereas 

from about 12 noon to 7 PM PH2O2/PHNO3 exceeds 0.35 indicating NOX-limited ozone formation. 

After 7 PM, PH2O2/PHNO3 falls below 0.35 again, but this is after the ozone peak when ozone is 

decreasing and the concepts of VOC and NOX-limitation are no longer relevant. 

In summary, the PH2O2/PHNO3 indicator suggested a transition from VOC to NOX-limited ozone 

formation at about noon. To investigate whether this prediction is corroborated by responses to 

emission controls, the trajectory model scenario was re-run with 30 percent reductions in initial 

concentrations and emissions of VOC and NOX (Figure 6-5). Figure 6-5 shows that NOX

controls started to be effective at about noon whereas VOC controls had maximum effect before 

noon. This finding is even clearer in Figure 6-6, which shows the difference in ozone (controlbase) for the reduced VOC and NOX cases. Thus, the response of ozone to reducing VOC and 

NOX was found to be consistent with the prediction of the PH2O2/PHNO3 indicator. 

The evaluation described above and shown in Figures 6-4 and 6-6 was repeated for two more 

scenarios with different base VOC/NOX ratios. The results for a base VOC/NOX ratio of 20 (0.3 

ppmC of VOC, 15 ppb of NOX) are shown in Figure 6-7, and for a base VOC/NOX ratio of 5 

(0.15 ppmC of VOC, 15 ppb of NOX) are shown in Figure 6-8. For a base VOC/NOX ratio of 20, 

 

3

The scenarios begin at sunrise at 6 a.m. with 10 ppb of O3 plus initial VOCs and NOX. There is no dilution, and 5 

percent of the initial VOCs and NOX are added in each hour as emissions. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-15 

Figure 6-4. Box model simulation to evaluate PH202/PHNO3 indicator for VOC vs. NOx limited 

ozone formation (see text). Ozone is plotted against the left axis, PH202/PHNO3 is plotted against 

the right axis. For PH202/PHN03 below 0.35 ozone formation is VOC limited. Thus, the transition 

form VOC to NOx limited ozone formation is predicted to occur about 12 noon. Initial 

VOC/NOx = 10:1. 

Figure 6-5. Effect on ozone of controlling VOC and NOx by 30 percent for the base scenario 

shown in Figure 6-4. The vertical dashed line shows the transition form VOC to NOx limited 

ozone formation for the base case derived in Figure 6-4. Initial base case VOC/NOx = 10:1. 

0

0.05

0.1

0.15

0.2

0.25

6 9 12 15 18 21 24 3

Time (hours)

0.001

0.01

0.1

1

10

100

1000

10000 Ozone

p(H2O2) / p(HNO3)

NOx

limited

VOC

limited

0

0.05

0.1

0.15

0.2

0.25

6 9 12 15 18 21 24 3

Time (hours)

Base

30% VOC control

30% NOx control

NOx

limited

VOC

limited
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-16 

Figure 6-6. Change in ozone (control-base) for the VOC and NOx control scenarios shown in 

Figure 6-5. The vertical dashed line shows the transition from VOC to NOx limited ozone 

formation for the base case derived in Figure 6-4. Initial base case VOC/NOx = 10:1. 

Figure 6-7a. As Figure 6-4, but for an Initial VOC/NOx = 20:1. 

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

6 9 12 15 18 21 24 3

Time (hours)

Ozone (ppm)

0.001

0.01

0.1

1

10

100

1000

10000

ratio p(H2O2) / p(HNO3)

Ozone

p(H2O2) / p(HNO3)

NOx

limited

VOC

limited

-0.07

-0.06

-0.05

-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

69

1215182124

3

Time (hours)

Delta Ozone (Control - Base) 

(ppm)

30% NOx control

30% VOC control

NOx

limited

VOC

limited
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-17 

Figure 6-7b. As in Figure 6-6, but for an Initial VOC/NOx = 20:1. 

Figure 6-8a. As Figure 6-4, but for an Initial VOC/NOx = 5:1.

-0.04

-0.035

-0.03

-0.025

-0.02

-0.015

-0.01

-0.005

0

0.005

0.01

69

1215182124

3

Time (hours)

Delta Ozone (Control - Base) 

(ppm)

30% NOx control

30% VOC control

NOx

limited

VOC

limited

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

6 9 12 15 18 21 24 3

Time (hours)

Ozone (ppm)

0.001

0.01

0.1

1

10

100

1000

10000

ratio p(H2O2) / p(HNO3)

Ozone

p(H2O2) / p(HNO3)
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-18 

Figure 6-8b. As Figure 6-6, but for an Initial VOC/NOx = 5:1

Figure 6-7a shows that the transition from VOC to NOX-limited ozone formation is predicted to 

occur at about 9:30 AM. Figure 6-7b shows that this is confirmed by the response to VOC and 

NOX controls. For a base VOC/NOX ratio of 5, Figure 6-8a shows that ozone formation is 

predicted to remain VOC-limited throughout the day. Figure 6-8b confirms this by showing no 

net benefit from NOX control throughout the day. 

Alternative Chemical Apportionment Techniques

The formulation of OSAT described above was first methodology implemented into CAMx. 

Several variations on OSAT are now available that use different algorithms to attribute ozone 

contributions. One advantage of the coding framework for OSAT is that it allows for easy 

modification of the source attribution algorithm by modifying a single subroutine. The 

alternative methods currently available in CAMx are described below (other options are 

possible). 

Geographic Ozone Assessment Technology (GOAT). GOAT does not attempt to trace 

ozone production back to the source of the precursors, but rather ozone formation is 

tracked based on the geographic location where it occurred. Thus ozone formation in a 

grid cell over “Area A” would be attributed to Area A even if the culpable emissions 

originated upwind in Area B. The disadvantage of GOAT is its simplistic assumption 

regarding the basis for ozone culpability. The advantages of GOAT are: (1) its freedom 

from assumptions about whether ozone formation is NOX or VOC limited; and (2) that its 

results may be more directly comparable to other emerging source attribution 

methodologies (e.g., trajectories, tracers, and possibly the spatial analysis component of 

Process Analysis). 

-0.12

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

69

1215182124

3

Time (hours)

Delta Ozone (Control - Base) 

(ppm)

30% NOx control

30% VOC control
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-19 

Anthropogenic Precursor Culpability Assessment (APCA). APCA differs from OSAT in 

recognizing that certain emission groups are not controllable (e.g., biogenic emissions) 

and that apportioning ozone production to these groups does not provide information that 

is relevant to control strategies. To address this, in situations where OSAT would 

attribute ozone production to non-controllable (i.e., biogenic) emissions, APCA reallocates that ozone production to the controllable portion of precursors that participated 

in ozone formation with the non-controllable precursor. In the case where biogenic 

emissions are the uncontrollable source category, APCA would only attribute ozone 

production to biogenic emissions when ozone formation is due to the interaction of 

biogenic VOC with biogenic NOX. When ozone formation is due to biogenic VOC and 

anthropogenic NOX under VOC-limited conditions (a situation in which OSAT would 

attribute ozone production to biogenic VOC), APCA re-directs that attribution to the 

anthropogenic NOX precursors present. The use of APCA instead of OSAT results in 

more ozone formation attributed to anthropogenic NOX sources and less ozone formation 

attributed to biogenic sources. APCA is not really a “source apportionment” technique 

because it expresses biases as to which sources should be implicated (i.e., those that are 

controllable), hence it is referred to as a “culpability assessment.” The APCA ozone 

allocation scheme is described in more detail below. 

The APCA Technique

OSAT identifies which emission source regions, categories, and species (VOC and NOX) that 

when reduced would have the greatest effect in reducing ozone concentrations. For the OTAG 

database, OSAT correctly identified biogenic VOC emissions as a major contributor to ozone 

formation, and if controlled, would result in efficient ozone reductions. However, biogenic 

emissions cannot be controlled; although scientifically and chemically correct, this information is 

irrelevant for the design of an ozone control strategy. The presence of a source category 

(biogenic emissions) that cannot be controlled requires special considerations when performing 

ozone source apportionment modeling for the purposes of aiding in the design of anthropogenic 

emission control strategies, or when performing an ozone precursor culpability analysis. (Note 

that some biogenic NOX emissions are soil NOX emissions, which are partly from fertilizers and 

thus are not truly “biogenic” in nature). 

Biogenic versus anthropogenic ozone source apportionment, as a function of VOC and NOX

precursor interactions, can be divided up into four ozone formation regimes as follows: 

Biogenic NOx Anthropogenic NOx

Biogenic VOC 1 2 

Anthropogenic VOC 3 4 

Regime 1 involves ozone formation due to the interaction between biogenic VOC and biogenic 

NOX and is truly “biogenic ozone”. Regime 4 is true “anthropogenic ozone” and the OSAT 

attribution scheme will provide control strategy relevant information by allocating ozone formed 

in Regime 4 to the proper anthropogenic ozone precursors (VOC or NOX). Difficulties arise in 

the mixed anthropogenic/biogenic regimes (Regimes 2 and 3) where precursors from both 

biogenic and anthropogenic sources participate in the ozone formation. Much of the ozone in the 

OTAG modeling is formed under Regime 2, although Regime 1 may have some influence on 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-20 

ozone formation in high biogenic NOX regions (e.g., the corn belt). To design effective control 

strategies, an ozone allocation scheme is needed that accounts for the special status of biogenic 

emissions as being uncontrollable. 

In the APCA technique, only the true “biogenic ozone” (i.e., ozone formed under Regime 1) 

would be attributed to biogenic emissions, while ozone formed in the remainder of the regimes 

(2-4) would be allocated to anthropogenic emissions. The standard OSAT approach is used to 

allocate ozone formed to anthropogenic VOC or NOX emissions when anthropogenic VOC and 

NOX emissions interact (i.e., Regime 4), and to allocate to biogenic VOC or NOX when these 

two precursors interact (Regime 1). However, when ozone forms due to the interaction of 

biogenic and anthropogenic emissions (i.e., Regimes 2 and 3), the APCA technique differs from 

OSAT by allocating ozone formed to anthropogenic emissions; the ozone increment is allocated 

to anthropogenic NOX (if VOC-limited) or anthropogenic VOC (if NOX-limited) precursors. 

Assuming that N and V are the NOX and reactivity-weighted VOC tracer concentrations in a grid 

cell from different source categories (e.g., biogenic sources and several anthropogenic emissions 

categories) that participated in the formation of an increment of ozone (O3), the APCA 

allocation scheme can be expressed mathematically as follows. 

First, APCA defines the fraction of ozone formed due to the interaction of biogenic VOC with 

biogenic NOX, which will be attributed to biogenic emissions (Regime 1): 

















=

total

bio

total

bio

bio N

N

V

V

F min ,

under VOC-limited conditions, APCA attributes the fraction of ozone formed to biogenic VOC 

emissions (Regime 1): 

3 O3Vbio = Fbio ×O

It then attributes the fraction of ozone increment to anthropogenic VOC source groupings due to 

the interaction of anthropogenic VOC with anthropogenic and biogenic NOX (Regime 4): 

O i nanthro

V

V

O V

total

anthro i

anthro i

3 , 1,..., × 3 =

















=

Finally, the remainder of the ozone increment (∆O3), which would have been attributed to 

biogenic VOC in OSAT, is attributed to anthropogenic NOX (Regimes 2 and 3): 

∆ = − − ∑

i

anthro

i O3 O3 O3Vbio O3V

O i nanthro

N

N

O N

total

anthro

i

anthro anthro i

3 , 1,..., × ∆ 3 =

















=

Under NOX-limited conditions, similar formulas are used, switching the N with V and O3N with 

O3V. Since it is expected that biogenic VOC precursors will almost always be greater than 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-21 

biogenic NOX precursors (i.e., Fbio = Nbio/Ntotal), then under NOX-limited conditions the APCA 

ozone allocation scheme will produce identical results to OSAT. 

6.3 RUNNING CAMx WITH OSAT

CAMx Control File

OSAT and its derivatives are invoked similarly to the other Probing Tools within the CAMx 

control file. In the &CAMx_Control namelist module, the variable Probing_Tool must be 

set to “OSAT”, “GOAT”, or “APCA”. An additional namelist module called &SA_Control

must then be provided in the control file to configure the OSAT portion of the model. The 

additional namelist module is described below. The order of the variables follows the template 

available with the source code. Several examples of the OSAT portion of the CAMx run control 

file are shown in Figures 6-9(a-d). 

Description of OSAT Control in the CAMx Run Control File 

&SA_Control Label for the Probing Tool namelist module that configures the 

OSAT option; it must begin in column 2 

& Flag ending a namelist module; it must be in column 2 

SA_Summary_Output Logical flag used to limit the species written to the tracer 

concentration file to a subset of the PSAT treated species. If set 

to true, the output will be restricted to the following species: 

O3N, O3V 

SA_File_Root Character root output path/filename 

SA_Master_Sfc_Output Logical flag for master grid surface output (TRUE=OSAT 

concentration file will be output for all tracers, FALSE=OSAT 

concentration file will not be output) 

SA_Nested_Sfc_Output Logical flag for nested grid surface output (TRUE=OSAT 

concentration file will be output for all tracers, FALSE=OSAT 

concentration file will not be output) 

SA_Stratify_Boundary Logical flag to stratify boundary types (TRUE=separate tracer 

types will be used for the N, S, E, W, and Top boundaries, 

FALSE=a single tracer type will be used for all 5 boundaries) 

SA_Deposition_Output Logical flag to output deposited tracer mass to a file 

(TRUE=output deposited tracer mass, FALSE=do not generate a 

tracer deposition output file) 

SA_Number_of_Source_Regions Integer number of source regions for this run. This must 

be the same as the number of source areas defined in the 

SA_Source_Area_Map file. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-22 

SA_Number_of_Source_Groups Integer number of emission groups for this run. Together with 

the Use_Leftover_Group flag, this determines the number 

of paired emission files that must be supplied (additional details 

below). 

Use_Leftover_Group Logical flag to define a “leftover” emissions group (TRUE= 

calculate a “leftover” emissions group from the difference 

between the sum of the emission group files and the regular 

CAMx emission files, FALSE=do not calculate a “leftover” 

emissions group) 

Number_of_Timing_Releases Integer number of timing tracer releases per 24 hour period (set 

to zero to turn off timing releases) 

 

SA_Receptor_Definitions Character input OSAT receptor definition path/filename. (This is 

an optional file). 

SA_Source_Area_Map Character array (by CAMx grid) input OSAT source area 

definition path/filename (required for master grid, optional for 

nested grids) 

SA_Master_Restart Character input master grid OSAT restart path/filename (ignored 

if Restart=FALSE) 

SA_Nested_Restart Character input nested grid OSAT restart path/filename (ignored 

if Restart=FALSE or Number_of_Grids=1) 

SA_Points_Group Character array (by source group) input OSAT elevated point 

source emissions path/filename (optional, ignored if 

Point_Emissions=FALSE) 

SA_Emiss_Group_Grid Character array (by source group, by CAMx grid) input OSAT 

gridded emissions path/filename (optional, ignored if 

Gridded_Emissions=FALSE) 

Specifying Emission Groups

OSAT can apportion ozone and ozone precursor concentrations among several emission 

categories. To achieve this, the emissions for the separate groups must be supplied as sets of 

separate emissions files for each source group; a low level (gridded) file for each fine grid nest, 

and one elevated point source file. The additional emission files must be in the standard UAM 

emission file format (EPA, 1990), as described in Section 5. If the group being separated has no 

elevated emissions (e.g. biogenics), the point source file name for the group can be left blank. If 

the emission group being separated has no surface emissions (e.g. a utility), the surface file name 

for the group can be left blank for all grids. APCA requires two or more emissions categories, 

with the first category being biogenic emissions. 

Imagine a case where the emission inventory is split into three groups. Three sets of emission 

files could be supplied that together have the same total emissions as the regular CAMx 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-23 

emissions files. Alternatively, two sets of files could be supplied and the third calculated from 

the “leftover” emissions (i.e., the regular CAMx emissions minus the two groups specified). 

Both approaches could be useful, depending upon the emissions files available to the user. 

Accordingly, OSAT reads an input flag “Use_Leftover_Group” that can be set true or false. 

If a leftover group is selected, the model verifies that the group is not too small to calculate 

within the numerical precision of the computer (this also traps cases where the flag was set true 

in error). If no leftover group is selected, the model verifies that the total emissions for the 

groups supplied are equal to the regular model emissions, i.e., that a leftover group is not needed. 

In both cases, if appropriate conditions are not met, the model stops with a descriptive error 

message. 

The number of emission file sets that need to be supplied for different model configurations is 

summarized in Table 6-1. Table 6-1 also shows how the emissions groups are numbered, which 

is reflected in the tracer species names (defined below). 

Table 6-1. Numbers of emission file sets (i.e., low level files and point source file) needed for 

different model configurations. 

Number of 

Emission 

Groups

Use 

Leftover Group

Number of Emission 

File Sets Needed

Numbering of Emission 

Groups and Tracer Species

1 Not Applicable 0 0 

n>1 False n 1,2,3,...n 

 True n-1 1,2,3,...n 

When specifying additional point source files to resolve source category groupings, the list of 

point sources on each file must be identical (i.e., same number of sources, same order) to the 

regular model point source file. This formal restriction is necessary to ensure that point sources 

are correctly cross-referenced within CAMx. Thus, a point source file for a specific source 

group may need to contain records for sources that are not in the group: these records should 

have zero emissions. 

Geographic resolution is superimposed on emission group resolution using the source area map 

described below. The source area map is defined using master grid cells, which may not 

adequately resolve point source locations. To provide finer control of point source assignments 

to geographic areas, the source area can be specified for any source by putting the source area 

index in the (unused) kcell value on the point source file (see file description in section 5). This 

feature is referred to as “point source override.” 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-24 

&SA_Control 

 SA_File_Root = '$TRACOUT/CAMx.OSAT.9507$today', 

 SA_Master_Sfc_Output = .true., 

 SA_Nested_Sfc_Output = .true., 

 SA_Summary_Output = .true., 

 SA_Stratify_Boundary = .false., 

 SA_Deposition_Output = .false., 

 SA_Number_of_Source_Regions = 19, 

 SA_Number_of_Source_Groups = 1, 

 Use_Leftover_Group = .false., 

 Number_of_Timing_Releases = 2, 

 SA_Receptor_Definitions = '$TRACIN/receptor.cities ', 

 SA_Source_Area_Map(1) = '$TRACIN/APCA.source.area.map', 

 SA_Source_Area_Map(2) = ' ', 

 

 SA_Master_Restart = ' ', 

 SA_Nested_Restart = ' ', 

 SA_Points_Group(1) = ' ', 

 SA_Emiss_Group_Grid(1,1) = ' ', 

 SA_Emiss_Group_Grid(1,2) = ' ', 

 & 

Figure 6-9a. An example of OSAT input records in the CAMx run control file. The options for 

this run are as follows: this is a two-grid run, master and nested grid surface concentrations are 

written to file, a single tracer type is to be used for all boundaries, 19 source regions, one 

emission group (i.e., zero additional emission files and no leftover group), and two timing tracer 

releases per day. This is the first day of the simulation (i.e., restart is false), so no OSAT restart 

files are supplied. 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-25 

 &SA_Control 

 SA_File_Root = '$TRACOUT/CAMx.OSAT.9507$today', 

 SA_Master_Sfc_Output = .true., 

 SA_Nested_Sfc_Output = .true., 

 SA_Summary_Output = .true., 

 SA_Stratify_Boundary = .false., 

 SA_Deposition_Output = .false., 

 SA_Number_of_Source_Regions = 19, 

 SA_Number_of_Source_Groups = 1, 

 Use_Leftover_Group = .false., 

 Number_of_Timing_Releases = 2, 

 SA_Receptor_Definitions = '$TRACIN/receptor.cities ', 

 SA_Source_Area_Map(1) = '$TRACIN/APCA.source.area.map', 

 SA_Source_Area_Map(2) = ' ', 

 

 SA_Master_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.inst', 

 SA_Nested_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.finst', 

 SA_Points_Group(1) = ' ', 

 SA_Emiss_Group_Grid(1,1) = ' ', 

 SA_Emiss_Group_Grid(1,2) = ' ', 

 & 

Figure 6-9b. As in Figure 6-9(a), but in this case the run is a continuation, and so the restart 

flag is set to TRUE and a “Tracer Restart” files are supplied. 

 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-26 

&SA_Control 

 SA_File_Root = '$TRACOUT/CAMx.OSAT.9507$today', 

 SA_Master_Sfc_Output = .true., 

 SA_Nested_Sfc_Output = .true., 

 SA_Summary_Output = .true., 

 SA_Stratify_Boundary = .false., 

 SA_Deposition_Output = .false., 

 SA_Number_of_Source_Regions = 19, 

 SA_Number_of_Source_Groups = 3, 

 Use_Leftover_Group = .true., 

 Number_of_Timing_Releases = 0, 

 SA_Receptor_Definitions = '$TRACIN/receptor.cities ', 

 SA_Source_Area_Map(1) = '$TRACIN/APCA.source.area.map', 

 SA_Source_Area_Map(2) = ' ', 

 

 SA_Master_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.inst', 

 SA_Nested_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.finst', 

 SA_Points_Group(1) = ' ', 

 SA_Points_Group(2) = '$PTSRCE/utilpt.ng.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(1,1) = '$TRACEMS/bio2.cc.$todate-95', 

 SA_Emiss_Group_Grid(1,2) = '$TRACEMS/bio2.ff.$todate-95.ne', 

 SA_Emiss_Group_Grid(2,1) = '$TRACEMS/util.cc.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(2,2) = '$TRACEMS/util.ff.$todate-07.ag.07cem1A-run11', 

 & 

Figure 6-9c. As in Figure 6-9(a), but in this case the run is a continuation day of a run with 

three emission groups. The three emission groups are defined by supplying two pairs of extra 

emission files for each grid (AREA group 1, AREA group 2, and POINT group 2), and setting the 

“Use_Leftover_Group” flag to TRUE for the model to calculate the third group internally. The 

POINT group 1 filename is blank because group 1 is a category with no point source emissions 

(e.g., biogenics). 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-27 

&SA_Control 

 SA_Master_Sfc_Output = .true., 

 SA_Nested_Sfc_Output = .true., 

 SA_Summary_Output = .true., 

 SA_Stratify_Boundary = .false., 

 SA_Deposition_Output = .false., 

 SA_Number_of_Source_Regions = 19, 

 SA_Number_of_Source_Groups = 3, 

 Use_Leftover_Group = .false., 

 Number_of_Timing_Releases = 0, 

 SA_Receptor_Definitions = '$TRACIN/receptor.cities ', 

 SA_Source_Area_Map(1) = '$TRACIN/APCA.source.area.map', 

 SA_Source_Area_Map(2) = ' ', 

 

 SA_Master_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.inst', 

 SA_Nested_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.finst', 

 SA_Points_Group(1) = ' ', 

 SA_Points_Group(2) = '$PTSRCE/utilpt.ng.$todate-07.ag.07cem1A-run11', 

 SA_Points_Group(3) = '$PTSRCE/remain.ng.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(1,1) = '$TRACEMS/bio2.cc.$todate-95', 

 SA_Emiss_Group_Grid(1,2) = '$TRACEMS/bio2.ff.$todate-95.ne', 

 SA_Emiss_Group_Grid(2,1) = '$TRACEMS/util.cc.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(2,2) = '$TRACEMS/util.ff.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(3,1) = '$TRACEMS/remain.cc.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(3,2) = '$TRACEMS/remain.ff.$todate-07.ag.07cem1A-run11', 

 & 

Figure 6-9d. As in Figure 6-9(c) (i.e. a continuation day of a run with three emission groups), 

but in this case all three emission groups are defined explicitly by supplying extra emission files 

(AREA group 1, AREA group 2, POINT group 2, AREA group 3, and POINT group 3). 

Therefore, the “Use_Leftover_Group” flag is set to FALSE. The POINT group 1 filename is 

blank because group 1 is a category with no point source emissions (e.g., biogenics). 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-28 

Running With Timing Tracers 

Timing tracers will be released at hourly intervals according to the 

“Number_of_Timing_Releases” parameter. For example, 4 means a new release is 

started every six hours (hours 0, 6, 12 and 18). If the simulation is started in the middle of the 

day (e.g. at hour 15), the first tracer release is time stamped with the model start time, subsequent 

releases occur on a schedule as if the start time were at hour zero. 

OSAT can be run without timing tracers if the “Number_of_Timing_Releases” parameter 

is set to zero. Source apportionment of ozone and precursors is unaffected by this since these 

two functions of the model are independent. If timing tracers are omitted, the postprocessing 

software (“browser”) described below will not report estimated release times for precursor 

emissions, nor will it estimate whether recirculation is likely to have occurred. Users may 

choose to run without timing tracers in situations where temporal resolution is not required. 

Omitting timing tracers reduces the number of tracer species employed and therefore may permit 

users to select relatively more geographic/emissions category resolution within the same 

computer memory limitations.

6.4 INPUT FILE FORMATS

Source Area Mapping

OSAT can apportion ozone and ozone precursor concentrations among several geographic 

regions within the modeling domain, as shown in Figure 6-1. The “source area mapping” file 

assigns each grid cell to a specific geographic source region. The format of the file is an array of 

integer numbers (i3) corresponding to the CAMx domain. Figure 6-10 shows the source area 

mapping file corresponding to Figure 6-1. Since the CAMx domain in Figure 6-1 has 63 rows 

and 64 columns of cells, the file shown in Figure 6-10 has 63 lines with 64 numbers on each line. 

The first number (top left) always corresponds to the Northwest corner of the domain. Note that 

the source area map is defined in terms of the master grid. 

If desired, a source area map may be created for each nest. This provides for more finely 

resolved source areas within the nested domain. The source area map for a nest is in the same 

format as the master grid source area map described above, but contains a number of rows and 

columns corresponding to the nested grid, including the boundary (“buffer”) rows and 

columns. Within a nest for which a nested grid source area map is supplied, the source areas as 

defined by this map will take precedence over the source areas defined by the master grid source 

area map. If a source area map is not provided for a specific nest the source area definition will 

be taken from the source area map of the parent grid. 

Receptor Definition

Tracer concentrations for selected receptor locations are output to an ASCII file every hour. The 

receptors for each model run are defined in the “Receptor definition” input file. Three types of 

receptors are supported: 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-29 

POINT a point specified in the coordinate system of the CAMx grid. 

Concentrations at the point are determined by bi-linear 

interpolation of the surrounding four master grid surface cells. 

SINGLE CELL a single surface grid cell identified by number. 

CELL AVERAGE a group of grid cells identified by number that are averaged 

together to provide multi-cell average tracer concentrations. 

WALL OF CELLS a group of grid cells defining a wall (i.e., a flux plane). 

For the receptor types that are defined by grid cell it is necessary to specify the grid containing 

the receptor. This is done by including the grid number on the receptor definition record. Grid 

numbers are defined using the internal CAMx grid ordering. The grid numbering as defined by 

CAMx is shown in a table in the .diag file. Each receptor can be identified by a 10 character 

name. The formats for specifying each receptor type are given in Table 6-2. An example 

receptor file is shown below: 

POINT City 1 461.520 3762.040 

 SINGLE CELL Cell 1 1 45 18 

 CELL AVERAGE Region 10 2 8 

 31 19 

 32 19 

 33 19 

 34 19 

 31 18 

 32 18 

 33 18 

34 18 

 WALL OF CELLS Boundary1 2 10 20 

 18 18 

 1 5
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-30 

31 31 31 31 18 18 18 18 18 18 18 18 18 18 37 37 37 37 17 17 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 14 14 14 14 14 40 

31 31 31 31 31 18 18 18 18 18 18 18 18 37 37 37 37 37 17 17 17 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 14 14 14 14 14 40 

31 31 31 31 31 18 18 18 18 18 18 18 18 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 14 14 14 14 14 14 40 

31 31 31 31 31 18 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 14 14 14 14 14 14 40 

31 31 31 31 31 18 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 14 14 14 14 14 14 14 40 

31 31 31 31 31 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 22 14 14 14 14 14 14 14 14 

31 31 31 31 31 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 40 24 24 24 24 34 34 34 34 22 14 14 14 14 14 14 14 14 

31 31 31 31 31 18 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 40 24 24 24 24 24 34 34 34 34 22 14 14 14 14 14 14 14 14 

31 31 31 31 31 18 18 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 24 24 24 24 24 24 34 34 34 22 22 14 14 14 14 14 14 38 38 

31 31 31 31 31 18 18 18 18 18 18 18 18 18 18 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 40 40 40 40 40 24 24 24 24 24 24 34 34 34 22 22 14 14 14 14 14 38 38 38 

31 31 31 31 31 10 10 10 10 10 10 10 10 10 10 37 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 24 24 24 24 24 24 24 24 24 24 24 34 34 22 22 22 14 14 38 38 38 38 38 38 

31 31 31 31 31 10 10 10 10 10 10 10 10 10 10 10 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 24 24 24 24 24 24 24 24 24 24 24 34 34 22 22 22 14 14 38 38 38 38 38 38 

21 21 21 31 31 10 10 10 10 10 10 10 10 10 10 10 37 37 37 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 40 40 24 24 24 24 24 24 24 24 24 24 24 24 34 22 22 22 16 16 38 38 38 38 38 38 

21 21 21 21 21 10 10 10 10 10 10 10 10 10 10 10 10 8 8 37 37 37 37 37 17 17 17 17 17 17 17 17 17 40 40 40 40 40 24 24 24 24 24 24 24 24 24 24 24 24 24 16 16 16 16 16 16 16 38 38 38 38 38 38 

21 21 21 21 21 10 10 10 10 10 10 10 10 10 10 10 10 8 8 8 8 8 8 8 17 17 17 17 17 17 17 17 17 40 26 26 26 28 24 24 24 24 24 24 24 24 24 24 24 24 24 16 16 16 16 16 16 16 38 38 38 38 38 38 

21 21 21 21 21 21 10 10 10 10 10 10 10 10 10 10 10 10 8 8 8 8 8 9 9 17 17 17 17 17 17 17 26 26 26 26 26 28 28 28 28 28 28 28 28 28 28 28 24 24 24 3 3 3 29 29 16 16 16 38 38 38 38 38 

21 21 21 21 21 21 10 10 10 10 10 10 10 10 10 10 10 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 26 28 28 28 28 28 28 28 28 28 28 28 24 24 24 3 3 3 29 29 16 16 16 38 38 38 38 38 

21 21 21 21 21 21 10 10 10 10 10 10 10 10 10 10 8 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 26 28 28 28 28 28 28 28 28 28 28 28 23 24 24 3 3 24 24 29 16 16 16 38 38 38 38 38 

21 21 21 21 21 21 10 10 10 10 10 10 10 10 10 10 8 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 26 28 28 28 28 28 28 28 28 28 28 28 23 23 24 24 24 24 24 38 38 38 38 38 38 38 38 38 

21 21 21 21 21 21 21 20 20 20 20 20 20 20 20 8 8 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 26 28 28 28 28 28 28 28 28 28 28 28 23 23 24 24 38 38 38 38 38 38 38 38 38 38 38 38 

21 21 21 21 21 21 21 20 20 20 20 20 20 20 20 8 8 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 26 28 28 28 28 28 28 28 28 28 28 28 23 23 23 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 8 8 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 36 28 28 28 28 28 28 28 28 28 4 28 23 23 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 8 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 26 36 36 36 15 36 36 15 15 15 15 4 23 23 23 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 8 8 8 8 8 8 9 9 9 9 9 26 26 26 26 26 26 26 36 36 36 36 36 36 35 35 15 15 15 4 23 23 23 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 20 8 8 8 8 8 9 9 9 9 9 12 12 26 26 26 26 36 36 36 36 36 36 35 35 35 15 15 15 15 4 23 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 20 8 8 8 8 8 9 9 9 9 12 12 12 12 12 12 36 36 36 36 36 36 35 35 35 35 15 15 15 15 4 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 20 8 8 8 8 9 9 9 9 12 12 12 12 12 12 12 36 36 36 36 36 35 35 35 35 35 35 15 15 15 15 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 20 8 8 8 8 12 12 12 12 12 12 12 12 12 12 12 36 36 36 36 36 35 35 35 35 35 35 35 35 35 35 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 20 20 8 8 8 12 12 12 12 12 12 12 12 12 12 12 12 36 36 36 35 35 35 35 35 35 35 35 35 35 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

11 11 11 11 11 11 11 11 11 20 20 20 20 20 20 20 20 20 20 8 8 12 12 12 12 12 12 12 12 12 12 12 12 35 35 35 35 35 35 35 35 35 35 35 35 35 35 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 20 20 20 20 20 20 20 20 20 20 20 12 12 12 12 12 12 12 12 12 12 12 12 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 20 20 20 20 20 20 20 20 20 20 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 25 25 25 25 25 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 2 2 20 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 25 25 25 25 25 25 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 2 2 32 32 32 32 32 32 32 32 32 32 32 32 32 32 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 2 2 32 32 32 32 32 32 32 32 32 32 32 32 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 2 32 32 32 32 32 32 32 32 32 32 32 32 32 25 25 25 30 30 25 25 25 25 25 25 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 2 19 19 19 19 19 1 1 1 1 1 7 7 7 7 30 30 30 30 30 30 25 25 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 2 19 19 19 19 19 1 1 1 1 1 7 7 7 7 7 30 30 30 30 30 30 30 25 25 25 25 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

27 27 27 27 27 27 27 27 27 2 2 2 2 2 2 2 19 19 19 19 19 19 1 1 1 1 1 7 7 7 7 7 7 30 30 30 30 30 30 30 25 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 27 33 33 27 2 2 2 2 2 2 2 19 19 19 19 19 19 1 1 1 1 1 7 7 7 7 7 7 30 30 30 30 30 30 30 30 25 25 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 2 2 2 2 2 2 19 19 19 19 19 1 1 1 1 1 1 7 7 7 7 7 7 7 30 30 30 30 30 30 30 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 2 2 2 2 2 2 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 30 30 30 30 30 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 30 30 30 30 30 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 30 30 30 30 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 30 30 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 19 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 19 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 33 13 13 13 13 19 19 19 19 19 19 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 13 19 19 19 1 1 6 6 6 6 6 7 7 7 7 7 7 7 7 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 13 13 19 19 1 1 6 6 6 6 6 6 6 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 13 13 19 19 1 1 6 39 6 6 6 6 6 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 13 13 13 13 13 13 13 13 13 39 39 39 39 39 39 6 6 6 6 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 33 13 39 13 13 13 13 13 13 13 13 39 39 39 39 39 39 39 6 6 39 39 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 33 39 39 39 39 39 39 13 13 13 13 13 13 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 13 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

33 33 33 33 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 6 6 6 6 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 

Figure 6-10. Example source area mapping file for the domain and source areas shown in Figure 6-1.
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-31 

Table 6-2. Format for the receptor definition file. 

Receptor Type Line Columns Data

POINT 1 1-15 The word “POINT” 

 1 21-30 Receptor name 

 1 31-40 X co-ordinate 

 1 41-50 Y co-ordinate 

SINGLE CELL 1 1-15 The word “SINGLE CELL” 

 1 21-30 Receptor name 

 1 31-40 Grid Number 

 1 41-50 X cell number 

 1 51-60 Y cell number 

CELL AVERAGE 1 1-15 The words “CELL AVERAGE” 

 1 21-30 Receptor name 

 1 31-40 Grid number 

 1 41-50 

The number of cells to average 

(M) 

 2-M 1-10 X cell number 

 2-M 11-20 Y cell number 

WALL OF CELLS 1 1-15 The words “WALL OF CELLS” 

 1 21-30 Receptor name 

 1 31-40 Grid number 

 1 41-50 X-cell begin 

 1 51-60 X-cell end 

 2 41-50 Y-cell begin 

 2 51-60 Y-cell end 

 3 41-50 Z-cell begin 

 3 51-60 Z-cell end 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-32 

6.5 OUTPUT FILE FORMATS 

OSAT writes several output files that are in Fortran binary format, as described in Section 5. 

These include the master and nested grid tracer instantaneous concentration files (.sa.inst

and .sa.finst), the grid-specific surface tracer average concentration file 

(.sa.surf.grdnn), and the grid-specific surface deposited mass file (.sa.depn.grdnn). 

These files are written in the same format as for the regular model species described in Section 5. 

In addition, OSAT writes out tracer concentrations for selected receptor locations to an ASCII 

file (.sa.receptor). The naming conventions for tracer species and the format of the 

receptor concentration file are discussed below. 

Tracer Species Names

The names of tracer species uniquely identify the information carried by each species and, taken 

as a group, identify the model configuration in any run. Species names have less than ten 

characters, consistent with the UAM convention. The naming conventions are as follows: 

Timing Tracers

 Inert Tracer Idddhhrrr

 Decay Companion Tracer Ddddhhrrr

 where: 

 ddd Julian day, e.g., 240 

 hh Hour tracer release started at, e.g., 12 

 rrr Region tracer released from, i.e., 001, 002, 003, etc

Examples: I24012001, D24100012

Ozone Reaction Tracers

 Emission Sources SSSeeerrr

where: 

 SSS Species type, i.e., NOX, VOC, O3V or O3N 

 eee Emissions group: 

 Single group, always 000 

 Multiple groups, 001, 002, etc. 

 rrr Region tracer released from, 001, 002, 003, etc. 

 Initial/Boundary SSSeeerrr

 

 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-33 

where: 

 SSS Species type, i.e., NOX, VOC, O3V or O3N 

 eee Initial Concentrations: always 000 

 Boundary Concentrations not stratified by boundary: always 000 

 Boundary Concentrations stratified by boundary: WST, EST, STH, NTH, 

TOP indicating boundary of origin 

 rrr IC for Initial Concentrations, BC for Boundary Concentrations 

Examples: NOX000015, VOC002015, O3V000IC, O3NTOPBC

Receptor Concentration File

Hourly average tracer concentrations at user specific receptor locations are output to the 

“receptor concentration” file. The file is in comma delimited ASCII format suitable for 

importing into a spreadsheet (a spreadsheet postprocessing tool is available to visualize the data 

in this file, as described below). An example output file is shown in Figure 6-11. Two header 

lines at the top of the file identify the model version and the date the run was performed. Next, 

two lines identify the time period covered by the file and the averaging interval (generally one 

hour, determined by the CAMx simulation control file). Next, three lines define the model 

configuration and seven lines specify the numbers of tracer species that result from this 

configuration. The names of each tracer species are given on six lines ordered by tracer species 

type: the order in which species are listed here is the same as the order in which tracer 

concentrations are given later in the file. 

The tracer species names are followed by the number of receptors and receptor names. Note that 

the first receptor (receptor 1) is always the location of the hourly peak ozone. Since the location 

of the hourly peak varies from hour to hour, the X and Y locations are left blank. Receptors 2 

and higher are those specified in the “Receptor definition” file. The tracer concentrations are 

reported in blocks with a date and time stamp at the head of each block. Within each block, 

receptors are reported in numerical order. For each receptor, there are six lines of data for the 

tracer species identified at the heading “Tracer Names”. All values are in CAMx units of ppm. 

At the bottom of the data block for each receptor are two lines with three numbers: these are the 

total tracer NOX, VOC, and ozone (first line) and regular CAMx NOX, VOC and ozone (second 

line). 

6.6 POSTPROCESSING

The tracer concentrations in the gridded surface concentration files can be displayed using any 

post-processing software normally used for displaying CAMx average file output formats. 

The receptor concentration file contains information for all receptors and all hours within the 

model run that created the file. A post-processing tool is available to allow the user to “browse” 

through the information contained in this file and prepare displays like Figure 6-2. The 

“browser” is a Microsoft Excel Spreadsheet macro that is controlled by a graphical user interface 

(GUI) allowing you to rapidly visualize results for any receptor. To use this software, the user 

must have Microsoft Excel (Office 2003). The browser is provided at www.camx.com. 

 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-34 

CAMx, SOURCE APPORTIONMENT, VERSION -- 960315 , 

Mon Oct 26 10:37:34 1998 , 

 File Duration , 87238, 15.00, 87238, 24.00, 

Average Interval , 1.0000 

Number of timing periods , 2 

Number of source areas , 17 

Number of emission groupings , 1 

Number of tracer species , 144 

Number of NOx species , 19 

Number of VOC species , 19 

Number of O3N species , 19 

Number of O3V species , 19 

Number of INERT TIME species , 34 

Number of DECAY TIME species , 34 

Tracer Names, 

NOX000IC ,NOX000BC ,NOX001001,NOX001002,NOX001003,NOX001004,NOX001005 .. 

VOC000IC ,VOC000BC ,VOC001001,VOC001002,VOC001003,VOC001004,VOC001005 .. 

O3N000IC ,O3N000BC ,O3N001001,O3N001002,O3N001003,O3N001004,O3N001005 .. 

O3V000IC ,O3V000BC ,O3V001001,O3V001002,O3V001003,O3V001004,O3V001005 .. 

I23815001,I23815002,I23815003,I23815004,I23815005,I23815006,I23815007 .. 

D23815001,D23815002,D23815003,D23815004,D23815005,D23815006,D23815007 .. 

Number of receptors , 6 

 No, Name, Type, Xloc, Yloc, 

 1, HourlyPeak, 1, , , 

 2, Rubidoux , 0, 461.5, 3762.0, 

 3, Pasadena , 0, 396.4, 3778.5, 

 4, Lennox , 0, 373.0, 3755.0, 

 5, Peak , 1, 45, 18, 

 6, Region 10 , 8, 31, 19, 

 32, 19 

 33, 19 

 34, 19, 

 31, 18, 

 32, 18, 

 33, 18, 

 34, 18, 

Time Varying Tracer Data, 

 Data for Period, 87238, 15.00, 87238, 16.00, 

 Receptor, 1, 

1.3265E-02, 1.3544E-09, 1.0000E-16, 1.0974E-15, 1.0000E-16, 1.0000E-16 .. 

1.2237E-01, 3.3869E-08, 1.0000E-16, 1.6165E-14, 1.0000E-16, 1.0000E-16 .. 

8.7304E-02, 1.1926E-08, 1.0000E-16, 1.0000E-16, 1.0000E-16, 1.0000E-16 .. 

9.0300E-02, 1.5269E-08, 1.0188E-16, 2.6997E-15, 1.0213E-16, 1.0162E-16 .. 

1.0036E-16, 4.0640E-15, 1.0036E-16, 1.0036E-16, 1.0036E-16, 1.0029E-16 .. 

1.0000E-16, 3.7563E-15, 1.0000E-16, 1.0000E-16, 1.0000E-16, 1.0000E-16 .. 

1.4500E-02, 1.2663E-01, 1.7770E-01, 

1.4500E-02, 1.2663E-01, 1.7770E-01, 

 Receptor, 2, 

(File continues with data for remaining receptors and hours)

Figure 6-11. Example Receptor Concentration File. Lines ending with “..” are truncated to fit 

the page, and the file would continue with data for additional receptors and hours in the same 

format.

 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-35 

6.7 STEPS IN DEVELOPING INPUTS AND RUNNING OSAT 

Below is a simple methodological list of steps to follow in setting up and running OSAT. The 

process is similar among the OSAT, PSAT, and DDM Probing Tools. 

1) Define the source groups and regions that you wish to track. Keep in mind that memory 

resources increase dramatically as the number of tracers grows. Probing Tool 

applications with large numbers of tracers, tracer classes, nested grids or grid cells may 

exceed available memory. 

2) Build a source region map (Figure 6-10) that defines the spatial allocation of tracer 

emissions. For small domains or small number of regions, this can be done by hand. We 

suggest using GIS software to develop complex source region maps on large grids. 

3) Process the emissions inventory into the separate source group files that you want to track 

(e.g., mobile, area, point, biogenic, etc.). 

a) Consideration of potential source apportionment or sensitivity applications prior to 

any emissions processing can be very beneficial so that files by group are available 

for later use. 

b) Elevated point sources will automatically be assigned to the source region in which 

they reside. However, you may override the region to which each individual point 

source is assigned (see the definition of kcell in Section 5, Elevated Point Source 

File). A point source region does not need to be defined in the source region map, 

e.g., you could have a map with two regions that split the domain in half, with a third 

region assigned arbitrarily to represent elevated point sources only. 

4) Edit the CAMx control namelist file (Section 5). 

a) Set the Probing_Tool variable to the technology you wish to use (OSAT, APCA, 

GOAT). This will activate the &SA_Control namelist module. 

b) Edit or add the &SA_Control namelist module (described earlier). Provide the 

required information, including: 

• output paths 

• whether to stratify boundary conditions 

• number of source regions 

• number of source groups 

• whether to use the leftover group option 

• whether to use timing tracers 

• receptor definitions 

• list of input emission files by group. 

c) Note that APCA requires that the biogenic emission files for each grid are listed first. 

Several examples are shown in Figure 6-9. 

5) Configure the CAMx source code to define the number of tracers, and build an 

executable. This will ensure that you have sufficient memory for the Probing Tool 

application. 

a) Edit the file Includes/camx.prm

b) Change the parameter MXTRSP, following the instructions provided in the file. 

CAMx is distributed with MXTRSP = 1 to minimize memory requirements for 

standard applications of the model. If you run OSAT with an insufficient value, the 

model will stop and tell you the required value of MXTRSP for your application. 

c) Execute the CAMx Makefile to build an executable program (Section 11). 
CAMx v5.30 User’s Guide, December 2010 

Ozone Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_06_OSAT.docx 6-36 

6) Run CAMx and review the diagnostic output files to ensure that the model is correctly 

interpreting and running the Probing Tool configuration that you have specified. Ensure 

that CAMx is generating the proper output files that you are expecting. Review the table 

of emissions by source group and region. 

7) Review gridded tracer fields using commonly available plotting programs. Utilities such 

as PAVE or Verdi will read Probing Tool files directly. Use of any other software may 

require specialized re-formatting procedures. 

8) You may post-process OSAT receptor files using an Excel macro (OSAT_browser) that 

ENVIRON distributes at www.camx.com. 

9) Probing Tool gridded tracer output files are written in the same Fortran binary format as 

the regular CAMx concentration output files. You can post-process gridded output fields 

using any software that reads CAMx files, or you can adapt those programs or build your 

own software to generate specialized analysis and graphical products. 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-1 

7. PARTICULATE SOURCE APPORTIONMENT TECHNOLOGY

Airborne particulate matter (PM) is widely recognized as an important pollution issue because it 

causes health problems and environmental degradation. In recent years the emphasis on 

controlling PM has shifted toward fine PM (or PM2.5, with particle diameter less than 2.5 μm) 

because it is more strongly associated with serious health effects than coarse PM. Knowing 

which sources contribute to PM2.5 is essential for developing effective control strategies. Many 

components of PM2.5 are secondary pollutants and so photochemical models are important tools 

for PM air quality planning. The Particulate Source Apportioning Technology (PSAT) has been 

developed for CAMx to provide PM source apportionment among specific geographic regions 

and source categories. PM source apportionment information from PSAT is useful for: 

1) Understanding model performance and thereby improving model inputs/formulation; 

2) Performing culpability assessments to identify sources that contribute significantly to PM 

pollution; 

3) Designing the most effective and cost-effective PM control strategies. 

Source apportionment for primary PM is relatively simple to obtain from any air pollution model 

because their source-receptor relationships are essentially linear. Gaussian steady-state models 

and Lagrangian puff models have been used extensively to model primary PM pollution from 

specific sources, which is a direct form of source apportionment. The Gaussian and Lagrangian 

approaches work for primary PM because the models can assume that emissions from separate 

sources do not interact. This assumption breaks down for secondary PM pollutants (e.g., sulfate, 

nitrate, ammonium, secondary organic aerosol) and so puff models may dramatically simplify 

the chemistry (to eliminate interactions between sources) so that they can be applied to 

secondary PM. Eulerian photochemical grid models are better suited to modeling secondary 

pollutants because they account for chemical interactions between sources. Grid models do not 

naturally provide source apportionment because the impact of all sources has been combined in 

the total pollutant concentration. PSAT has been developed to retain the advantage of using a 

grid model to describe the chemistry of secondary PM formation and also to provide source 

apportionment. 

This section starts by reviewing several approaches to PM source attribution in grid models that 

were considered when PSAT was designed. Next, the PSAT algorithms are explained, and then 

example PSAT results are presented and compared to results from some other methods. 

7.1 APPROACHES TO PM SOURCE ATTRIBUTION IN GRID MODELS 

Several potential approaches were considered at the PSAT design stage and these are discussed 

below. The approaches considered fall into two general categories, which we have called 

sensitivity analysis and reactive tracers. The reactive tracer approaches also could be called 

tagged species approaches. This section concludes with a discussion of an important 

fundamental difference between sensitivity analysis and source apportionment that explains why 

these two concepts should not be confused for secondary pollutants. 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-2 

Sensitivity Analysis Methods 

Sensitivity analysis methods measure the model output response to an input change, e.g., the 

change in sulfate concentration due to a change in SOx emissions. In general, sensitivity 

methods will not provide source apportionment if the relationship between model input and 

output is non-linear. For example, if sulfate formation is non-linearly related to SOx emissions, 

the sum of sulfate (SO4) sensitivities over all SOx sources will not equal the model total sulfate 

concentration. This concept is discussed in more depth later in this section. 

Brute Force or Direct Method. The brute force method estimates first-order sensitivity 

coefficients (e.g., ∆SO4/∆SOx) by making a small input change (∆SOx) and measuring the 

change in model output (∆SO4). This method is simple and can be applied to any model, but is 

inefficient because a complete model run is required for each sensitivity coefficient to be 

determined. Accuracy also may be an issue for the brute force method because ideally the input 

change (∆SOx) should be vanishingly small but for small input changes the output change may 

be contaminated by numerical precision or model “noise.” For larger input changes, first-order 

sensitivities estimated by the brute force method may be distorted by non-linear chemical effects, 

e.g., a brute force coefficient (∆SO4/∆SOx) may be a mixture of first-order (dSO4/dSOx) and 

second-order (d2SO4/dSOx2) derivatives. Higher-order sensitivity coefficients also can be 

estimated by the brute force method. 

Zero-Out Modeling. The zero-out method differs from the brute force method in that a specific 

emissions input is set to zero and the change in output measured. Zero-out modeling can be used 

with any model but is inefficient because a complete model simulation is required for each 

source. Accuracy also may be an issue if the zero-out method is applied to a small emissions 

source. This method has been used extensively for source attribution because it seems intuitively 

obvious that removing a source should reveal the source’s impact. However, because zero-out 

modeling is a sensitivity method it does not provide source apportionment for non-linear systems 

because the sum of zero-out impacts over all sources will not equal the total concentration, as 

discussed in more depth later in this section. 

Decoupled Direct Method (DDM). The DDM provides the same type of sensitivity information 

as the brute force method but using a computational method that is directly implemented in the 

host model (Dunker, 1981). The DDM has potential advantages of greater efficiency and 

accuracy relative to the brute force method (Dunker at al., 2002a) and the DDM implementation 

in CAMx (Dunker at al., 2002a,b) is currently being extended to PM species. Drawbacks of 

DDM are that the implementation is technically challenging, that using DDM for many 

sensitivities simultaneously requires large computer memory, and because DDM is a sensitivity 

method, it does not provide source apportionment for non-linear systems unless higher-order 

sensitivities are calculated. 

Other Sensitivity Methods. There are other sensitivity methods that provide similar information 

to DDM such as adjoint methods (e.g., Menut at al., 2000; Elbern and Schmidt, 1999) and 

automatic differentiation in FORTRAN (ADIFOR). They have similar advantages and 

disadvantages as DDM but may be less computationally efficient (Dunker et al., 2002a). 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-3 

Reactive Tracer Methods 

Reactive tracers (or tagged species) are extra species added to a grid model to track pollutants 

from specific sources. For example, a standard grid model calculates concentrations for a 

species X that has many sources and so the concentration of X is the total concentration due to all 

sources. A reactive tracer (xi) is assigned to for each source (i) with the intention that the sum of 

the reactive tracers will equal total concentration (X = Σxi). The challenge is to develop 

numerical algorithms for solving the reactive tracer concentrations that ensure that this equality 

is maintained. Depending upon the formulation of the tracer algorithms, it may be possible to 

model tracers for a single source of interest and omit tracers for all other sources, or it may be 

necessary to include tracers for all sources (as is the case for PSAT). Reactive tracers can 

potentially provide true source apportionment (X = Σxi), however the numerical value of the 

source apportionment will depend upon assumptions within the reactive tracer formulation. In 

particular, for any process that is non-linear in species concentrations (e.g., chemistry) there is no

unique way to assign the total concentration change to the reactive tracers. This issue is 

discussed in more depth later in this section. 

Source Oriented External Mixture (SOEM). Kleeman and Cass (2001) developed an approach 

called SOEM that tracks primary PM from different source categories/regions using tagged 

species that are considered to represent seed particles. Reactive tracers are added to track 

secondary PM and related gases from different source categories/regions, and source apportioned 

secondary PM condenses onto the seed particles. Chemical change for secondary PM and 

related gases is accounted for by expanding the chemical mechanism to treat different source 

regions/categories as separate precursor and product species. This requires thousands of 

chemical reactions and hundreds to thousands of chemical species, depending upon the number 

of source regions/categories. The main advantage of the SOEM method is that it is potentially 

accurate, and the main disadvantage is computational demand. 

PSAT and TSSA. The PM Source Apportionment Technology (PSAT) uses reactive tracers to 

apportion primary PM, secondary PM and gaseous precursors to secondary PM among different 

source categories and source regions. The PSAT methodology is described below. PSAT was 

developed from the related ozone source apportionment method (OSAT) already implemented in 

CAMx (Dunker at al., 2002b). Tonnesen and Wang (2004) are independently developing a 

method very similar to PSAT called Tagged Species Source Apportionment (TSSA) in the 

Community Multiscale Air Quality (CMAQ) modeling system. Advantages of PSAT and TSSA 

are expected to be high efficiency and flexibility to study different source categories/regions. 

The accuracy of the PSAT (and TSSA) source apportionment results must be evaluated, as for 

any other method. 

Source Apportionment and Source Sensitivity 

Consider a chemical species X that has two sources A and B (so X = xA + xB) and which 

undergoes a second order self-reaction with rate constant k. The rate of chemical change is: 

 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-4 

The homogeneous rate terms kxA

2

 and kxB

2

 clearly describe chemical change for pollutants from 

sources A and B (xA and xB), but the inhomogeneous rate term 2kxAxB is not uniquely associated 

with either source A or B. A reactive tracer (or tagged species) source apportionment method 

must deal with this inhomogeneous rate term either by developing rules to apportion the 

inhomogeneous term to sources A and B or by modifying the chemistry to eliminate the 

inhomogeneous term. For a sensitivity method, the homogeneous quadratic rate terms generate 

second-order homogeneous sensitivity coefficients (sAA and sBB) and the inhomogeneous rate 

term generates a second-order inhomogeneous sensitivity coefficient (sAB). Consequently, the 

total concentration of X is incompletely described by the first-order sensitivity coefficients (sA

and sB) that resemble source apportionments. 

The example presented above is a simple case of a non-linear chemical system that illustrates 

why source apportionment and source sensitivity are not the same thing for nonlinear systems. 

The implications are: 

1) There is no unique source apportionment for chemical species that depend upon nonlinear 

reactions, such as secondary PM species and ozone. Nonetheless, reasonable source 

apportionment schemes can be developed and are useful tools for achieving the 

objectives listed in the introduction. 

2) Sensitivity coefficients are not source apportionments for chemical species that depend 

upon nonlinear reactions, such as secondary PM species and ozone. Sensitivity 

coefficients are most applicable for predicting the model response to an input change 

(e.g., control strategy) and are very useful for this purpose (within the range of linear 

model response), but sensitivity coefficients should be used with care for source 

apportionment or culpability assessment. Likewise, source apportionments should be 

used with care for predicting model response to input changes. 

7.2 PSAT METHODOLOGY 

PSAT is designed to source apportion the following PM species modeled in CAMx: 

• Sulfate (SO4) 

• Particulate nitrate (NO3) 

• Ammonium (NH4) 

• Particulate mercury (Hg(p)) 

• Secondary organic aerosol (SOA) 

• Six categories of primary PM: 

( )

A B A B

A B

kx kx kx x

dt

dX

k x x

dt

dX

kX

dt

dX

2

2 2

2

2

= − − −

= − +

= −
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-5 

o Elemental carbon (EC) 

o Primary organic aerosol (POA) 

o Crustal fine 

o Other fine 

o Crustal coarse 

o Other coarse 

The PSAT “reactive tracers” that are added for each source category/region (i) are described 

below. In general, a single tracer can track primary PM species whereas secondary PM species 

require several tracers to track the relationship between gaseous precursors and the resulting PM. 

Particulate nitrate and secondary organics are the most complex species to apportion because the 

emitted precursor gases (NO, VOCs) are several steps removed from the resulting PM species 

(NO3, SOA). The PSAT tracers for each type of PM are listed below. There is a PSAT 

convention that tracer names for particulate species begin with the letter “P.” 

Sulfur

SO2i

 Primary SO2 emissions 

PS4i Particulate sulfate ion from primary emissions plus secondarily formed sulfate 

Nitrogen

RGNi Reactive gaseous nitrogen including primary NOx (NO + NO2) emissions plus 

nitrate radical (NO3), nitrous acid (HONO) and dinitrogen pentoxide (N2O5). 

TPNi Gaseous peroxyl acetyl nitrate (PAN) plus peroxy nitric acid (PNA) 

NTRi

 Organic nitrates (RNO3) 

HN3i Gaseous nitric acid (HNO3) 

PN3i Particulate nitrate ion from primary emissions plus secondarily formed nitrate 

NH3i

 Gaseous ammonia (NH3) 

PN4i Particulate ammonium (NH4) 

Secondary Organic

AROi Aromatic (toluene and xylene) secondary organic aerosol precursors 

ISPi

 Isoprene secondary organic aerosol precursors 

TRPi Terpene secondary organic aerosol precursors 

SQT Sesquiterpene secondary organic aerosol precursors 

CG1i

 Condensable gases from aromatics (low volatility products) 

CG2i Condensable gases from aromatics (high volatility products) 

CG3i Condensable gases from isoprene (low volatility products) 

CG4i

 Condensable gases from isoprene (high volatility products) 

CG5i Condensable gases from terpenes (low volatility products) 

CG6i Condensable gases from terpenes (high volatility products) 

CG7i Condensable gases from sesqiterpenes 

PO1i Particulate organic aerosol associated with CG1 

PO2i Particulate organic aerosol associated with CG2 

PO3i

 Particulate organic aerosol associated with CG3 

PO4i Particulate organic aerosol associated with CG4 

PO5i Particulate organic aerosol associated with CG5 

PO6i

 Particulate organic aerosol associated with CG6 

PO7i Particulate organic aerosol associated with CG7 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-6 

Mercury

HG0i Elemental Mercury vapor 

HG2i

 Reactive gaseous Mercury vapor 

PHGi Particulate Mercury 

Primary Particulate

PECi Primary Elemental Carbon 

POAi

 Primary Organic Aerosol 

PFCi Fine Crustal PM 

PFNi Other Fine Particulate 

PCCi Coarse Crustal PM 

PCSi Other Coarse Particulate 

PSAT includes a total of 32 tracers for each source group (i) if source apportionment is applied 

to all types of PM. Since source apportionment may not always be needed for all species, the 

PSAT implementation is flexible and allows source apportionment for any or all of the chemical 

classes in each CAMx simulation (i.e. the SO4, NO3, NH4, SOA, Hg and primary PM classes 

listed above). For example, source apportionment for sulfate/nitrate/ammonium requires just 9 

tracers per source group. 

One fundamental assumption in PSAT is that PM should be apportioned to the primary precursor 

for each type of PM. For example, SO4 is apportioned to SOx emissions, NO3 is apportioned to 

NOx emissions, NH4 is apportioned to NH3 emissions, etc. As a source apportionment method, 

PSAT must account for all modeled sources of a PM species. Consider two model species A 

and B that are apportioned by reactive tracers ai

 and bi, respectively. Reactive tracers must be 

included for all sources of A and B including emissions, initial conditions and boundary 

conditions so that complete source apportionment is obtained, i.e., A = Σai and B = Σbi. 

In PSAT, the general approach to modeling change over a model time step ∆t is illustrated for a 

chemical reaction A→B. The general equation for species destruction is:

 

Here, the relative apportionment of A is preserved as the total amount changes. This equation 

applies to chemical removal of A and also to physical removal of A by processes such as 

deposition or transport out of a specific grid cell. 

The general equation for species production (e.g, chemical production by the chemical reaction 

A→B) is: 

 

Here, production of B inherits the apportionment of the precursor A. The same equation applies 

for “production” of B in a specific grid cell due to emissions or transport. For the case where B

increases due to emissions, ai is the apportionment of the emissions inventory. For the case 

where B increases due to transport, ai

 is the apportionment of the upwind grid cell. 

( ) ( )

i

i

i i

a

a

a t t a t A

∑

+ ∆ = + ∆

( ) ( )

i

i

i i

a

a

b t t b t B

∑

+ ∆ = + ∆
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-7 

In some cases, source category specific weighting factors (wi) must be added to the equation for 

species destruction: 

An example is chemical decay of the aromatic VOC tracers (ARO), which must be weighted by 

the average OH rate constant of each AROi. ARO tracers for different source groups have 

different average VOC reactivities because the relative amounts of toluenes and xylenes differ 

between source categories. 

In some cases, source category specific weighting factors (wi) must be added to the equation for 

species production: 

An example is chemical production of condensable gases (CG1 or CG2) from aromatic VOC 

tracers, which must be weighted by aerosol yield weighting factors. The aerosol yield weighting 

factors depend upon the relative amounts of toluenes and xylenes in each source group. 

Several aerosol reactions are treated as equilibria, A↔B. If A and B reach equilibrium at each 

time step, it follows that their source apportionments also reach equilibrium: 

 

Examples are the equilibrium between gas phase nitric acid and aerosol nitrate, gas phase 

ammonium and aerosol ammonium, and condensable organic gases (CG) and secondary organic 

aerosols (SOA). 

7.3 TESTING PSAT 

Initial PSAT testing was conducted for primary PM species (e.g., fine crustal material) because 

these species are the most straightforward to implement and test (i.e., no chemistry). The results 

for primary PM species are not shown here but the tests were successful in that the sum of PSAT 

tracers over all source groups remained identical to the total model concentration (A = Σai) for 

all grid cells and hours. The primary PM tests confirmed the proper implementation of PSAT for 

all CAMx algorithms except chemistry. 

The next stage of PSAT testing included the chemistry algorithms and results are shown here for 

two different types of testing for sulfate and nitrate. Sulfate was tested by comparing PSAT to 

zero out results in full 3-D CAMx simulations. As discussed above, zero out results are not 

expected to agree perfectly with PSAT because zero out does not give true source apportionment 

in non-linear systems. However, non-linearity in sulfate formation chemistry is expected to be 

less important than for other secondary PM species making sulfate the best candidate for zero out 

testing. 

( ) ( )

i i

i i

i i

w a

w a

a t t a t A

∑

+ ∆ = + ∆

( ) ( )

i i

i i

i i

w a

w a

b t t b t B

∑

+ ∆ = + ∆

( ) ( ) ( ) [ ]

( ) ( ) ( ) [ ] 











+

+ ∆ = +













+

+ ∆ = +

A B

B

b t t a t b t

A B

A

a t t a t b t

i i i

i i i
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-8 

The most complex PSAT chemistry algorithm is for nitrate. Zero out tests were not used for 

nitrate because the relationship between NO emissions and nitric acid may be highly non-linear. 

Therefore, 1-D (box model) tests were used to evaluate PSAT results for nitrate by comparing 

against the method used by Kleeman and Cass (2001) to track nitrate apportionment in the 

Source-Oriented External Mixture (SOEM) method, discussed above. 

PSAT Sulfate Testing 

The PSAT performance for sulfate was tested using a CAMx database developed by the Midwest 

RPO (MPRO) for PM and visibility modeling of the Eastern US. The modeling was conducted 

from June 18 to July 21, 2001 and used a 36-km modeling grid with meteorology developed 

using the mesoscale model version 5 (MM5). The modeling domain was sub-divided to 

geographic areas according to regional planning organizations (RPOs) responsible for 

developing regional visibility and PM control strategies in the U.S. The sub division of the 

modeling domain to RPOs is shown in Figure 7-1 and the RPOs are labeled by their respective 

acronyms (MRPO, MANE-VU, VISTAS, CERAP and WRAP). The state of Illinois (IL) was 

split out from the Midwest RPO (MPRO) to test the ability of PSAT to apportion the 

contribution from a single state. Four hypothetical point sources were added near the middle of 

the MRPO, MANE-VU, VISTAS and CENRAP areas (shown by the + symbols in Figure 1) to 

test the ability of PSAT to track contributions from singe sources. The hypothetical point 

sources were chosen to be generally representative of a large coal-fired electricity generating unit 

but do not represent actual sources at these locations. In total, sulfate was apportioned to 11 

source regions, including a remainder area for Canada, Mexico and over water, plus initial and 

boundary conditions. 

The sulfate impacts from the hypothetical MRPO point source are compared in Figure 7-2 at a 

single hour (hour 15) on 28 June 2001. The spatial distribution of sulfate impacts is very similar 

in the PSAT and zero out results as shown by the edge of the plume impacts (0.1 μg/m3

 level). 

There are differences in the areas of larger impacts (e.g. the 1 and 2 μg/m3 levels) and these are 

due to the effects of non-linear chemistry in the zero out test. As discussed above, sensitivity 

methods such as zero out do not provide accurate source apportionments for non-linear 

processes. Sulfate formation can be limited by the availability of oxidants, especially hydrogen 

peroxide in aqueous-phase chemistry, which will tend to depress the maximum impact levels in 

zero out runs as well as shift impacts further downwind (to where oxidant availability is no 

longer limiting). The oxidant limiting effect on zero out sulfate impacts is most easily seen from 

the 2 μg/m3

 level extending further downwind over Lake Michigan in the zero out result than the 

PSAT source apportionment result. 

The episode average sulfate impacts from the hypothetical MRPO point source are compared in 

Figure 7-3 for the entire 28 June to July 21, 2001 modeling period. The spatial distribution of 

sulfate impacts is very similar in the PSAT and zero out results. The maximum impact occurs 

very close to the source and is higher in the PSAT result (2.2 μg/m3

) than the zero out result (1.8 

μg/m3

) due to the effect of oxidant limitation on sulfate impacts determined by the zero out 

method. 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-9 

Figure 7-1. The CAMx modeling domain for PSAT testing showing sub-division to geographic 

areas and locations of four hypothetical point sources (+ symbols). 

(a) PSAT (b) Zero-out 

Figure 7-2. Comparison of sulfate contributions (μg/m3

) from the hypothetical MRPO point 

source on 28 June 2001 at hour 15: (a) PSAT result; (b) Zero-out result. 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-10 

The PSAT sulfate tests provided a comparison of the efficiency of the PSAT method compared 

to zero out modeling. Zero out modeling requires a new model run for each source contribution 

determined, so the incremental time for each “apportionment” is the same as for the model base 

case. In contrast, the marginal cost for each PSAT source apportionment was about 2% of the 

time required for the base case. 

PSAT Nitrate Testing 

The PSAT nitrate algorithms were tested using CAMx for a 1-D (box model) problem in order to 

focus upon the ability of the PSAT chemical algorithms to track nitrate apportionment. The box 

model problem was for summer conditions and PSAT was used to apportion nitrate between 20 

ppb of initial NOx and 100 ppb of NOx emission injected continuously through the 24 hour run. 

The PSAT results were compared to the SOEM algorithm of Kleeman and Cass (2001) where 

the reactive nitrogen (NOy) reactions in the chemical mechanism are duplicated to provide two 

different types of NOy (think of them as “red” NOy and “blue” NOy). There was no ammonia in 

the box model so that nitric acid remained in the gas phase rather than forming PM nitrate. 

The PSAT apportionment of NOy to initial conditions (ICs) and emissions during the 24 hour 

box model simulation is shown in Figure 7-4. The total NOy apportioned to ICs remains 

constant at 20 ppb throughout the simulation but the apportionment changes over time from NOx 

(RGN-IC) at the start to PAN (TPN-IC), organic nitrates (NTR-IC) and nitric acid (HN3-IC). 

The NOy apportioned to emissions increased linearly throughout the simulation and the 

apportionment also evolved as the NOx emissions (RGN-E) reacted. At the start of the 

simulation RGN (NOx) is dominated by ICs whereas late in the day (hour 18) RGN is dominated 

by emissions. The source apportionments shown in Figure 7-4 are reasonable and show 

necessary attributes (such as conserving the total 20 ppb of ICs). 

The SOEM apportionment of NOy to ICs and emissions during the 24-hour box model 

simulation is shown in Figure 7-5. The time evolution of the source apportionments for the ICs 

and emissions is very similar for SOEM (Figure 7-5) and PSAT (Figure 7-4). It is not clear that 

either method is more “correct,” or indeed that a correct source apportionment result exists for 

this test, but the consistency between the PSAT and SOME results is encouraging. 

 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-11 

(a) PSAT (b) Zero-out 

Figure 7-3. Comparison of episode average (June 18 to July 21, 2001) sulfate 

contributions (μg/m3

) from the hypothetical MRPO point source: (a) PSAT result; (b) Zeroout result. 

 

Figure 7-4. PSAT apportionment of reactive nitrogen (NOy) to initial conditions and 

emissions during a 24-hour box model simulation. 

 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-12 

Figure 7-5. Source-Oriented External Mixture (SOEM) apportionment of reactive 

nitrogen (NOy) to initial conditions and emissions during a 24-hour box model 

simulation. 

7.4 RUNNING CAMx WITH PSAT 

CAMx Control File

PSAT is invoked similarly to the OSAT Probing Tool within the CAMx control file. In the 

&CAMx_Control namelist module, the variable Probing_Tool must be set to “PSAT”. An 

additional namelist module called &SA_Control must then be provided in the control file to 

configure the PSAT portion of the model – note that this is identically the same module as used 

for OSAT. The PSAT/OSAT namelist module is described in Section 6; the additional variables 

needed for PSAT are described below. The order of the variables follow the template available 

with the source code. An example of the PSAT portion of the CAMx run control file is shown in 

Figure 7-6. All other capabilities and I/O requirements for PSAT mirror those of OSAT. 

 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-13 

Description of PSAT Control in the CAMx Run Control File 

&SA_Control Label for the Probing Tool namelist module that configures the 

PSAT and OSAT options; it must begin in column 2 

& Flag ending a namelist module; it must be in column 2 

SA_Summary_Output Logical flag used to limit the species written to the tracer 

concentration file to a subset of the PSAT treated species. If set 

to true, the output will be restricted to the following species: 

O3N, O3V, PS4, PN3, PN4, PO1, PO2, PO3, PO4, PO5, PEC, 

POC, FCR, FPR, CCR, CPR, HG0, HG2, PHG

PSAT_Treat_SULFATE_Class Logical flag to turn on the sulfate class of tracer species. 

PSAT_Treat_NITRATE_Class Logical flag to turn on the nitrate class of tracer species. 

PSAT_Treat_SOA_Class Logical flag to turn on the SOA class of tracer species. 

PSAT_Treat_PRIMARY_Class Logical flag to turn on the primary PM class of tracer species. 

PSAT_Treat_MERCURY_Class Logical flag to turn on the mercury class of tracer species. 

PSAT_Treat_OZONE_Class Logical flag to turn on the ozone class of tracer species. 

 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-14 

&SA_Control 

 SA_File_Root = '$TRACOUT/CAMx.OSAT.9507$today', 

 SA_Summary_Output = .true., 

 SA_Master_Sfc_Output = .true., 

 SA_Nested_Sfc_Output = .true., 

 SA_Stratify_Boundary = .false., 

 SA_Deposition_Output = .false., 

 SA_Number_of_Source_Regions = 19, 

 SA_Number_of_Source_Groups = 3, 

 Use_Leftover_Group = .false., 

 Number_of_Timing_Releases = 0, 

 PSAT_Treat_SULFATE_Class = .true., 

 PSAT_Treat_NITRATE_Class = .true., 

 SA_Receptor_Definitions = '$TRACIN/receptor.cities ', 

 SA_Source_Area_Map(1) = '$TRACIN/APCA.source.area.map', 

 SA_Source_Area_Map(2) = ' ', 

 

 SA_Master_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.inst', 

 SA_Nested_Restart = '$TRACOUT/CAMx.OSAT.9507$yesterday.sa.finst', 

 SA_Points_Group(1) = ' ', 

 SA_Points_Group(2) = '$PTSRCE/utilpt.ng.$todate-07.ag.07cem1A-run11', 

 SA_Points_Group(3) = '$PTSRCE/remain.ng.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(1,1) = '$TRACEMS/bio2.cc.$todate-95', 

 SA_Emiss_Group_Grid(1,2) = '$TRACEMS/bio2.ff.$todate-95.ne', 

 SA_Emiss_Group_Grid(2,1) = '$TRACEMS/util.cc.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(2,2) = '$TRACEMS/util.ff.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(3,1) = '$TRACEMS/remain.cc.$todate-07.ag.07cem1A-run11', 

 SA_Emiss_Group_Grid(3,2) = '$TRACEMS/remain.ff.$todate-07.ag.07cem1A-run11', 

 & 

Figure 7-6. This figure follows from Figure 6-8(d): it is a continuation day of a 2-grid run with 

three emission groups, and all three emission groups are defined explicitly by supplying extra 

emission files (AREA group 1, AREA group 2, POINT group 2, AREA group 3, and POINT 

group 3). Therefore, the “Use_Leftover_Group” flag is set to FALSE. The POINT group 1 

filename is blank because group 1 is a category with no point source emissions (e.g., 

biogenics). PSAT will trace PM sulfate and nitrate species only. 

 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-15 

7.5 STEPS IN DEVELOPING INPUTS AND RUNNING PSAT 

Below is a simple methodological list of steps to follow in setting up and running PSAT. The 

process is similar among the OSAT, PSAT, and DDM Probing Tools. 

1) Define the source groups and regions that you wish to track. Keep in mind that memory 

resources increase dramatically as the number of tracers grows. Probing Tool 

applications with large numbers of tracers, tracer classes, nested grids or grid cells may 

exceed available memory. 

2) Build a source region map (Figure 6-10) that defines the spatial allocation of tracer 

emissions. For small domains or small number of regions, this can be done by hand. We 

suggest using GIS software to develop complex source region maps on large grids. 

3) Process the emissions inventory into the separate source group files that you want to track 

(e.g., mobile, area, point, biogenic, etc.). 

a) Consideration of potential source apportionment or sensitivity applications prior to 

any emissions processing can be very beneficial so that files by group are available 

for later use. 

b) Elevated point sources will automatically be assigned to the source region in which 

they reside. However, you may override the region to which each individual point 

source is assigned (see the definition of kcell in Section 5, Elevated Point Source 

File). A point source region does not need to be defined in the source region map, 

e.g., you could have a map with two regions that split the domain in half, with a third 

region assigned arbitrarily to represent elevated point sources only. 

4) Edit the CAMx control namelist file (Section 5). 

a) Set the Probing_Tool variable to the technology you wish to use (PSAT). This 

will activate the &SA_Control namelist module. 

b) Edit or add the &SA_Control namelist module (described earlier). Provide the 

required information, including: 

• output paths 

• whether to stratify boundary conditions 

• number of source regions 

• number of source groups 

• whether to use the leftover group option 

• whether to use timing tracers 

• receptor definitions 

• flags to turn on specific PM classes 

• list of input emission files by group. 

5) Configure the CAMx source code to define the number of tracers, and build an 

executable. This will ensure that you have sufficient memory for the Probing Tool 

application. 

a) Edit the file Includes/camx.prm

b) Change the parameter MXTRSP, following the instructions provided in the file. 

CAMx is distributed with MXTRSP = 1 to minimize memory requirements for 

standard applications of the model. If you run PSAT with an insufficient value, the 

model will stop and tell you the required value of MXTRSP for your application. 

c) Execute the CAMx Makefile to build an executable program (Section 11). 

6) Run CAMx and review the diagnostic output files to ensure that the model is correctly 

interpreting and running the Probing Tool configuration that you have specified. Ensure 
CAMx v5.30 User’s Guide, December 2010 

Particulate Source Apportionment Technology 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_07_PSAT.docx 7-16 

that CAMx is generating the proper output files that you are expecting. Review the table 

of emissions by source group and region. 

7) Review gridded tracer fields using commonly available plotting programs. Utilities such 

as PAVE or Verdi will read Probing Tool files directly. Use of any other software may 

require specialized re-formatting procedures. 

8) You may post-process PSAT receptor files using an Excel macro (OSAT_browser) that 

ENVIRON distributes at www.camx.com. 

9) Probing Tool gridded tracer output files are written in the same Fortran binary format as 

the regular CAMx concentration output files. You can post-process gridded output fields 

using any software that reads CAMx files, or you can adapt those programs or build your 

own software to generate specialized analysis and graphical products. 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-1

8. DECOUPLED DIRECT METHOD FOR SENSITIVITY ANALYSIS

Photochemical modelers have traditionally used sensitivity analysis both for model performance 

evaluation and emission control strategy design. The simplest approach to sensitivity analysis, 

often referred to as the “brute-force” approach, involves changing a model input parameter, 

rerunning the model, and then evaluating the change in model output. The change in output is 

quantified from the difference between the sensitivity case and base case. This approach 

requires a separate simulation for each parameter investigated. For example, a model 

performance evaluation may use sensitivity simulations to evaluate the impact of changing the 

initial conditions (ICs), boundary conditions (BCs), biogenic emissions, anthropogenic 

emissions, etc. Sensitivity analysis is also used to aid control strategy design. For example, 

across-the-board VOC and NOx emission reductions are used to determine whether VOC and/or 

NOx reduction strategies are the most effective path to reduce ozone. 

The advantages of the “brute force” method for sensitivity analysis are: 

• Applicable to any model input parameter; 

• Results are conceptually easy to explain and interpret. 

The limitations of the “brute force” method are: 

• Computationally inefficient; 

• Sensitivity depends upon the magnitude of the perturbation if the model response is nonlinear; 

• Sensitivity derived from small perturbations may contain significant levels of uncertainty 

(numerical noise). 

The last two points bear further explanation. If the model response to an input parameter 

depends upon non-linear components within the model (e.g., chemistry), then the relative 

magnitude or even sign of the output response may change for perturbations of different sizes. 

An example is the response of ozone to NOx reductions in a VOC-limited environment: smaller 

reductions in NOx emissions increase ozone levels whereas larger NOx reductions decrease 

ozone. 

This situation can be illustrated mathematically. We define a “sensitivity coefficient” (s) which 

represents the change in concentration (c) with respect to some input parameter (λ), evaluated 

relative to the base state (λ=λ0), 

In general, λ can be a vector (denoted as λ), which contains multiple parameters related to 

processes in the model (e.g., rate constants) or inputs to the model (e.g., emissions). The 

response of concentration to a change in λ can be represented by a Taylor series of sensitivity 

coefficients: 

 

o

c

s

∂λ λ

∂

=
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-2

where n is the number of λ vector elements, x is the spatial dimension vector, and t is time. In 

the example above, the non-linear response of ozone to large NOx emission reductions indicates 

that higher-order sensitivity coefficients are significant relative to the first order sensitivity. As 

the magnitude of the input perturbation tends to zero, the output response will become dominated 

by the first-order sensitivity. Therefore, very small changes in the input parameter may be 

required to use the “brute force” method to estimate the first-order (local) sensitivity. The 

practical limitation to this approach is that since the change in output must be determined from 

the difference between two simulations, small levels of numerical uncertainty (noise) in two very 

similar outputs will contaminate the sensitivity calculation. 

An alternative methodology for evaluating model sensitivity was developed by Dunker (1980 

and 1981) called the decoupled direct method (DDM). The DDM can be used to calculate the 

same type of sensitivity coefficient as is available from the “brute force” method. The difference 

is that with DDM, sensitivity coefficients are calculated explicitly by specialized algorithms 

implemented in the host model. Thus, the DDM offers several advantages over the brute force 

method: 

• Improved computational efficiency; 

• Improved accuracy since sensitivities need not be contaminated by numerical noise; 

• Multiple sensitivities can be calculated simultaneously 

The degree to which these advantages are realized depends upon how the method is 

implemented, i.e., the algorithms employed and their coding. Fortunately, the performance of 

the DDM can be evaluated quantitatively by careful comparison of DDM sensitivities against 

“brute-force” sensitivities. 

The first implementation of the DDM into a three-dimensional air quality model used version II 

of the Urban Airshed Model (Dunker, 1981). This project demonstrated the accuracy and 

capabilities of the method, but application was restricted by the computing power available to the 

air quality modeling community at that time. Recently, Yang et al. (1997) described the 

implementation of the DDM into the California/Carnegie Institute of Technology airshed model, 

an application termed DDM-3D. The implementation of the DDM into CAMx was performed in 

a joint project between Dr. Alan Dunker and ENVIRON with sponsorship from the Coordinating 

Research Council (http://www.crcao.com). A rigorous analysis of the CAMx implementation of 

the DDM was performed as part of this project, and excellent agreement was demonstrated 

(Dunker et al., 2002a). 

( ) ( ) ( )

( )( )

...

2

1

;, ;,

1

0

1

0

2

1

0 0

+

− −

∂ ∂

∂

+

−

∂

∂

= +

∑∑

∑

= =

=

n

i

j j

n

j

i i

i j

n

i

i i

i

o

o

c

c

c x t c x t

λ λ λ λ

λ λ

λ λ

λ

λ λ

λ

λ
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-3

The original DDM implementation considered only first-order sensitivity. Recently, High-order 

DDM (HDDM; Hakami et al., 2003; Cohan et al., 2005) was implemented in CAMx in 

collaboration with Dr. Daniel Cohan (Rice University) with sponsorship from the Texas 

Commission on Environmental Quality (TCEQ), enabling CAMx to calculate second-order 

sensitivities along with first-order values. 

8.1 IMPLEMENTATION

The implementation of DDM into CAMx has focused on the evaluation of first-order sensitivity 

coefficients that relate predicted concentrations to pollutant sources (i.e., emissions, initial 

conditions [ICs] and boundary conditions [BCs]). The HDDM implementation in CAMx has 

recently been extended to calculate first- and second-order sensitivities to chemical rate 

constants. The DDM has also been applied in the past to the calculation of sensitivities to other 

model input parameters (e.g., meteorological parameters), but this was not attempted for the 

CAMx implementation because these sensitivities generally are less useful and because 

resources were limited. The CAMx implementation could be extended to other sensitivity 

parameters in the future. 

The CAMx DDM permits the evaluation of sensitivity coefficients with respect to parameters 

related to emissions, BCs, ICs, or rate constants. The sensitivity to be evaluated may bear a 

simple relationship to the regular model input, such as scaling the ozone boundary concentration 

by a factor (BCnew = λ × BC0), or additively increasing the ozone boundary concentration by a 

constant amount everywhere (BCnew = λ + BC0). To allow complete flexibility, the perturbations 

are specified by providing additional IC, BC, and/or emission input files with the same format as 

the regular model input files. 

In mathematical terms, a regular model input file, for example the BC input file, represents some 

set of functions of space and time fi(x,t), where each chemical species can be defined by a unique 

function. An additional input file provided for the DDM represents another set of functions of 

space, time, and chemical species gi(x,t) that can be different from the regular input file. The 

scalar parameter λi

 is then defined by 

Here, λi×gi(x,t) is the perturbation, and the user desires information on how the model would 

respond if the input fi(x,t) is replaced by the input Fi(x,t). The HDDM calculates the first-order 

sensitivity si

(1)(x,t) and second-order sensitivity si(2)(x,t) with respect to the scalar parameter λi

. 

The Taylor series to second order then gives the estimate: 

where cl(x;t;λi) is the estimated model result for species l when Fi(x,t) is used as input, and 

cl(x,t;λi=0) is the base case model result when fi(x,t) is used as input. 

For example, to calculate the sensitivity of the predicted ozone concentration to scaling boundary 

ozone by a factor, CAMx would be provided with a DDM BC file that has the same ozone values 

as the regular model BC file. The sensitivity coefficient fields output by CAMx could then be 

used to estimate the resulting ozone concentration if the ozone BCs were increased by 20%, as 

F (x,t) f (x,t) g (x,t).

i = i + λi× i

c ( ) x t c ( ) x t s ( ) x t s ( ) x t

l i l i i i i i

,

2

1

;, ;, 0 ,

)1( 2 )2(

λ = λ = + λ × + λ ×
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-4

follows: 

(For simplicity hereafter, the dependence on space, time, and chemical species will be omitted). 

To calculate the sensitivity of the predicted ozone concentration to increasing boundary ozone by 

10 ppb, CAMx would be provided with a DDM BC file that has a constant ozone value of 10 

ppb. The sensitivity coefficient fields could be used to estimate the ozone concentration if the 

ozone BCs were increased by 10 ppb as follows: 

An alternative approach here would be to provide CAMx with a DDM BC file that has a constant 

ozone value of 1 ppb. This perturbation would be associated with a new parameter λ′ and a new 

sensitivity coefficient s′. To estimate the ozone concentration if the ozone BC were increased by 

10 ppb, one would use 

This would give exactly the same estimate as the preceding approach in which CAMx is supplied 

with a DDM BC file that has an ozone value of 10 ppb everywhere because the two sensitivities 

are related by s′ = s×0.1 (from the first to second approach, there has been only a change of the 

scalar variable from λ to λ′). 

These are examples of relatively simple sensitivities. A more complex example would be to 

calculate the sensitivity to morning (6-9 AM) NOx emissions in specific group of grid cells. In 

this case you would provide CAMx with a DDM emissions file where all values are zero except 

for the NOx emissions in the selected grid cells between 6 AM and 9 AM, which would have the 

same value as the regular emissions file. In this case the sensitivity coefficient for ozone might 

be interpreted as the increase (or decrease) in ozone concentration due to the selected emissions 

(however, caution is warranted because sensitivity coefficients are not directly equivalent to a 

source apportionment). More accurately, the sensitivity coefficient could be used to predict the 

concentration after a scalar change (λ) in the morning NOx emissions using the equation: 

Any type of sensitivity perturbation can be described via an input file. However, the CAMx user 

interface also provides easy ways to define some sensitivities that are likely to be used 

frequently. For example, in the first example above the DDM BC file was described as having 

the “same ozone values as the regular model BC file.” To make such a file you could copy the 

BC file and then remove (or zero out) all species but ozone. To avoid the effort of preparing an 

input file that is trivially different from the regular model file, the user interface allows you to 

select specific species from an input file to track - in this case ozone. It is possible to separately 

track the sensitivity to more than one species from the same file (e.g. ozone, and NO). It is also 

possible to track the combined sensitivity to a group of species, such as NOx, VOC, HRVOC, or 

ALL. The user interface also provides a simple way to track sensitivities to emissions from 

specific grid cells or groups of cells (sub-regions). 

)1( 2 )2(

2.0 0

c = c + 2.0 × s + 5.0 × 2.0 × s λ= λ =

)1( )2(

c 0.1 = c 0 + 0.1 × s + 5.0 × s λ = λ =

)1( 2 )2(

0.1 0

c = c + 10.0× s′ + 5.0 ×10 0. × s′

λ′= λ′=

)1( 2 )2(

0

c = c + λ × s + 5.0 × s λ λ = λ
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-5

Tracking Sensitivity Coefficients Within CAMx

The conceptual approach in tracking DDM sensitivity coefficients is directly parallel to the way 

in which CAMx calculates three-dimensional concentration fields. The concentration fields are 

calculated by a series of code modules that operate sequentially to represent the impact of 

different physical processes (emissions, advection, diffusion, chemistry, deposition, etc.) on the 

gridded concentrations. Sensitivity coefficients are calculated by a parallel set of modules which 

operate in step with the CAMx modules to calculate gridded sensitivity coefficients. For some 

processes (e.g., chemistry and horizontal advection), the sensitivity coefficient modules make 

use of information saved from the corresponding CAMx modules. The need to employ this 

approach arises in cases where the CAMx algorithm depends non-linearly upon species 

concentrations. In other cases, the sensitivity algorithm turns out to be identical to the CAMx 

algorithm (e.g., horizontal diffusion) and both concentrations and sensitivity coefficients can be 

processed by the single module. Finally, there are cases where the sensitivity algorithm turns out 

to be identical to the CAMx algorithm, but a specialized module has been written for the 

sensitivity coefficients to improve the computational efficiency (e.g., vertical advection). 

Priorities in the DDM coding implementation were: 

• Ensuring accuracy by using consistent numerical methods for the concentrations and 

sensitivities; 

• Ensuring accuracy by calculating the concentrations and sensitivities using the same time 

steps (for original DDM); 

• Optimizing the efficiency of the sensitivity coefficient calculations without 

compromising accuracy; 

• Providing a flexible User Interface that allows calculation of sensitivities to all sources 

and precursors; 

• Ensuring that the DDM algorithms have minimal impact on computer resource 

requirements (memory and CPU time) when the DDM is not being used. 

Further details of the implementation of the DDM in CAMx will be published in the near future. 

Horizontal Advection and Chemistry

Specialized modules were developed to calculate the effects of chemistry and horizontal 

advection upon DDM sensitivity coefficients. These DDM modules are exactly matched to the 

numerical methods employed in the corresponding CAMx modules. CAMx has two separate 

options for the horizontal advection solver (Bott and PPM) and three options for the gas phase 

chemistry solver (the EBI solver, IEH solver, and LSODE [Gear] solver). With the resources 

available at the time, it was only possible to develop the DDM implementation for one advection 

solver (Bott) and one chemistry solver (EBI). The DDM option in CAMx cannot be used with 

other solver options at the present time. However, HDDM can be used with any advection solver 

and chemistry solver. 

The implementation of DDM algorithms into the EBI chemistry solver was performed using the 

chemical mechanism compiler (CMC). Therefore, the DDM option is available for the CB4, 

SAPRC, and CB05 chemical mechanisms, and will be available for additional mechanisms 

implemented in CAMx in the future. The HDDM is also available for all the chemistry mechanisms. 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-6

Plume-in-Grid and Aerosol Processes

Resource constraints did not permit implementation of DDM algorithms for the Plume-in-Grid 

(PiG) and aerosol chemistry options currently available in CAMx. 

Source Code

The coding of DDM algorithms involved the creation of several new subroutines for CAMx. 

These subroutines are all grouped in a separate directory (called DDM) under the main CAMx 

source code directory. It was necessary to add additional code for DDM in several existing 

CAMx subroutines, and the new code is clearly marked by comments. 

Flexi-DDM 

Although DDM is computationally much more efficient than the BFM, it does require much 

more additional CPU time and memory space over and above a standard CAMx run, which can 

be significant especially when multiple grids are used in two-way nesting. The increased 

computational cost may not always be worthwhile if only part of the modeling domain is of 

interest. One way to enhance computational efficiency in such cases is to use one-way nesting, 

where boundary conditions (BCs) for a nested grid are extracted from the parent grid, and so 

subsequent runs with sensitivities are performed without outer grids. However, differences 

between the two nesting schemes (i.e. 1-way vs. 2-way) sometimes cause discrepancies in the 

model results. An alternative approach is to run the full 2-way nested model while “turning off” 

sensitivity calculations outside nested grids of interest. 

CAMx provides a feature called “Flexi-DDM”, which allows user to turn off sensitivity 

calculations for selected grids (normally grids far outside the area of interest) to improve 

computational efficiency of DDM runs. This reduces CPU times but will not reduce memory 

requirements. Also, note that turning off sensitivity calculations for outer grids is only 

appropriate for certain types of sensitivity calculations: e.g., sensitivity to BCs cannot be 

calculated with Flexi-DDM. 

8.2 RUNNING CAMx WITH DDM and HDDM

This section describes how to specify the sensitivity coefficients to be calculated and the 

additional input files that must be supplied. Since CAMx already contained a methodology for 

probing source-receptor relationships called OSAT (ozone source apportionment technology, see 

Section 6), the DDM user interface was designed along similar lines to the existing OSAT user 

interface. This makes it easier to learn how to use both options and promotes consistency in 

analyses performed using OSAT and DDM. 

 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-7

Inputs in the CAMx Control File

DDM is invoked similarly to the other Probing Tools within the CAMx control file. In the 

&CAMx_Control namelist module, the variable Probing_Tool must be set to either 

“DDM” or “HDDM”. An additional namelist module called &DDM_Control must then be 

provided in the control file to configure the DDM portion of the model. The additional namelist 

module is described below. The order of the variables follow the template available with the 

source code. An example of the DDM portion of the CAMx run control file is shown in Figure 

8-1. 

Description of DDM Control in the CAMx Run Control File 

&DDM_Control Label for the Probing Tool namelist module that configures the 

DDM option; it must begin in column 2 

& Flag ending a namelist; it must be in column 2

DDM_File_Root Character root output path/filename

DDM_Master_Sfc_Output Logical flag for master grid surface output (TRUE=DDM file 

will be output for all sensitivities, FALSE=DDM file will not be 

output) 

DDM_Nested_Sfc_Output Logical flag for nested grid surface output (TRUE=DDM file 

will be output for all sensitivities, FALSE=DDM file will not be 

output) 

DDM_Stratify_Boundary Logical flag to stratify boundary types (TRUE=separate 

sensitivity types will be used for the N, S, E, W, and Top 

boundaries, FALSE=a single sensitivity type will be used for all 

5 boundaries) 

DDM_Number_of_Source_Regions Integer number of source regions to be tracked. This 

must be the same as the number of source areas defined in the 

DDM_Source_Area_Map file. This value may be zero. 

DDM_Number_of_Source_Groups Integer number of emission groups to be tracked. This 

determines the number of emission files that must be supplied 

(additional details below). This value may be zero. 

Number_of_IC_Species_Groups Integer number of species or species groups in the initial 

conditions to be tracked. This number may be between zero and 

the number of species being simulated plus four (allowing for 

the four species groups VOC, HRVOC, NOX, ALL). 

IC_Species_Groups Character array (by IC group) names of the species or species 

groups in the initial conditions to be tracked. Allowed names 

are any species being simulated by the mechanism in use (e.g., 

O3, PAR, NO, etc.) plus the species groups NOX, VOC, 

HRVOC, and ALL. It is permissible to specify both a species 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-8

and a group containing that species, e.g., both NO and NOX. 

Each name may have up to 10 characters. Note that if you select 

a species that is not present on the IC file provided, the initial 

sensitivities for that species will be set to zero. This variable 

may be left blank if the number of initial condition species 

groups is zero. 

 

Number_of_BC_Species_Groups Integer number of species or species groups in the 

boundary conditions to be tracked. This number may be 

between zero and the number of species being simulated plus 

four (allowing for the four species groups VOC, HRVOC, NOX, 

ALL). 

BC_species_Groups Character array (by BC group) names of the species or species 

groups in the boundary conditions to be tracked. See description 

for IC_Species_Group above. 

Number_of_EM_Species_Groups Integer number of species or species groups in the 

emissions to be tracked. This number may be between zero and 

the number of species being simulated plus four (allowing for 

the four species groups VOC, HRVOC, NOX, ALL). 

Emis_Species_Groups Character array (by emissions group) names of the species or 

species groups in the emissions to be tracked. See description 

for IC_Species_Group above. 

Number_of_Rate_Const_Groups Integer number of reaction rate sensitivity groups to be 

tracked. This number may be zero. 

Rate_Const_Groups Character string containing each reaction rate sensitivity group 

name and reaction numbers that belong to the group. Group 

name and reaction numbers are separated by colon (:) and each 

reaction number is separated by comma (,). 

Number_of_HDDM_Sens_Groups Integer number of HDDM sensitivity groups to be tracked. This 

number may be zero. 

HDDM_parameters Character array names of the first-order sensitivity parameters to 

which second-order sensitivity is computed. The naming of the 

first-order parameters is the same as the long name of 

sensitivities with the first 4 characters omitted. For each of 

HDDM sensitivity group, two first-order parameters are required 

(the same can be used twice). All the first-order parameters 

must be included in the modeling. 

DDM_Receptor_Definitions Character input DDM receptor definition path/filename 

DDM_Source_Area_Map Character array (by CAMx grid) input DDM source area 

definition path/filename (required for master grid, optional for 

nested grids). Source regions are defined using a map in the 

same format as an OSAT source area map (Section 6); however, 

DDM does not require that all parts of the modeling domain be 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-9

tracked, therefore it is permissible to define an area numbered 

zero in the source area map (emissions from those areas will not 

be tracked). The non-zero source region numbers must be 

between 1 and the number of regions. 

DDM_Calc_Grid Logical array containing Flexi-DDM flag for each grid (.TRUE. 

= calculate sensitivities in the grid; .FALSE. = do not calculate 

sensitivities in the grid). 

DDM_Initial_Conditions The name of the sensitivity initial condition file. Leave the file 

name blank for restart days or if sensitivity to initial conditions 

is not being calculated. 

DDM_Boundary_Conditions The name of the sensitivity lateral boundary condition file. 

Leave the file name blank if sensitivity to boundary conditions is 

not being calculated. 

DDM_Master_Restart Character input master grid DDM restart path/filename (ignored 

if Restart=FALSE) 

DDM_Nested_Restart Character input nested grid DDM restart path/filename (ignored 

if Restart=FALSE or Number_of_Grids=1) 

DDM_Points_Group Character array (by source group) input DDM elevated point 

source emissions path/filename (optional, ignored if 

Point_Emissions=FALSE) 

DDM_Emiss_Group_Grid Character array (by source group, by CAMx grid) input DDM 

gridded emissions path/filename (optional, ignored if 

Gridded_Emissions=FALSE) 

 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-10

&DDM_Control 

 DDM_File_Root = '$DDM_OUT/CAMx.08jul95.runA’, 

 DDM_Master_Sfc_Output = .true., 

 DDM_Nested_Sfc_Output = .true., 

 DDM_Stratify_Boundary = .false., 

 DDM_Number_of_Source_Regions = 4, 

 DDM_Number_of_Source_Groups = 2, 

 Number_of_IC_Species_Groups = 1, 

 IC_Species_Groups(1) = 'ALL', 

 Number_of_BC_Species_Groups = 1, 

 BC_species_Groups(1) = 'ALL', 

 Number_of_EM_Species_Groups = 2, 

 Emis_Species_Groups(1) = 'NOX', 

 Emis_Species_Groups(2) = 'VOC', 

 Number_of_Rate_Const_Groups = 1, 

 Rate_Const_Groups(1) = 'RXN1: 120,121,122',

 Number_of_HDDM_Sens_Groups = 1, 

 HDDM_parameters(1,1) = 'EM0101NOX_', 

 HDDM_parameters(1,2) = 'EM0101VOC_', 

 DDM_Receptor_Definitions = '$DDM_IN/receptor.cities', 

 DDM_Source_Area_Map(1) = '$DDM_IN/source_map.DDM.4areas', 

 DDM_Source_Area_Map(2) = ' ', 

 DDM_Calc_Grid(1) = .true., 

 DDM_Calc_Grid(2) = .true., 

 DDM_Initial_Conditions = ' ', 

 DDM_Boundary_Conditions = '$DDM_IN/BC.08jul95', 

 DDM_Master_Restart = '$DDM_OUT/CAMx.07jul95.runA.sa.inst', 

 DDM_Nested_Restart = '$DDM_OUT/CAMx.07jul95.runA.sa.finst', 

 DDM_Points_Group(1) = ' ', 

 DDM_Points_Group(2) = '$DDM_PT/ptsr.ng.08jul95', 

 DDM_Emiss_Group_Grid(1,1) = '$DDM_EMIS/bio.cc.08jul95', 

 DDM_Emiss_Group_Grid(1,2) = '$DDM_EMIS/bio.ff.08jul95', 

 DDM_Emiss_Group_Grid(2,1) = '$DDM_EMIS/anthro.cc.08jul95', 

 DDM_Emiss_Group_Grid(2,2) = '$DDM_EMIS/anthro.ff.08jul95', 

 

 & 

Figure 8-1. Example input of DDM options and filenames via the CAMx control file. In this 

case, CAMx is run with two grids, and DDM is configure to track emissions from four source 

regions and two source groups (biogenic and anthropogenic). Initial and boundary conditions 

are tracked as a single sensitivity called “ALL”, while emissions are tracked with three 

sensitivities called “NOx”, “VOC”, and “ALL”. Additionally, second-order sensitivities to biogenic 

VOC emissions from the first source region will be computed. No source region map is 

provided for the nested grid (the region assignments on the nest are defined by the master grid). 

Initial condition sensitivity is not being tracked (no file provided), and only the group 2 point 

sources are tracked (no biogenic point sources are available).
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-11

8.3 APPROACHES TO DEFINE IC, BC AND EMISSIONS SENSITIVITIES

The description above shows how to specify the IC, BC and emissions files for DDM sensitivity 

calculations. The formats for each of these files are identical to the CAMx input files of these 

types. In many cases, users may choose to specify exactly the same file for a CAMx input file 

and a DDM input file. (Be aware that some computer systems do not allow a file to be opened 

twice by the same application. A work around for this problem is to copy or link the file 

“filename” to another file of different name, such as “filename.copy”). 

The user can perform many different sensitivity calculations in a single run according to the 

content of the DDM input files. Take initial conditions (ICs) as an example. If the same IC file 

is specified for both CAMx and DDM, the output sensitivity fields represent the sensitivity of the 

predicted concentrations to the ICs. Therefore, simply scaling the output sensitivity coefficients 

fields provides the incremental concentrations resulting from scaling the ICs. 

As another example, if a DDM emissions file is supplied to CAMx that has a constant VOC 

emission rate everywhere, the sensitivity will correspond to a uniform absolute increase in the 

VOC emission rate rather than a percentage increase as described above. Another possibility 

would be a DDM emission file with a different spatial pattern than the CAMx input file. The 

sensitivity coefficient would then correspond to changing both the geographic distribution and 

magnitude of emissions. Still another possibility would be a DDM file that has zero emissions 

for all hours except midnight to 5 AM on the third simulated day. The program would then 

calculate the sensitivity to early morning emissions on the third day. In this case, just the 

concentrations could be simulated for the first two days and the DDM calculation begun on the 

third day, because sensitivities on the first two days are identically zero. 

In short, the DDM input file can be arbitrary – different from the CAMx input file in the overall 

magnitude of concentrations or emissions, different in the geographic and temporal distribution, 

and different in the relative proportions of the chemical species. However, the user must 

understand what perturbations are being considered in order to properly interpret the resulting 

output sensitivity coefficient fields. Also, the user should recognize that as the size of 

perturbations increase, the second- and higher-order terms eventually become important, usually 

when the emissions are altered by more than 20-30%.

8.4 DDM OUTPUT FILES

The output file types for a DDM simulation are described in Table 8-1. These files have the 

same format as corresponding concentration output files, described in Section 5. 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-12

Table 8-1. DDM output file suffix names. 

File Name Suffix DDM File Type

.ddm.inst Binary master grid instantaneous sensitivity file at end of simulation (used 

for restart), 3-D, all sensitivities, μmol m-3 parameter-1 units. 

.ddm.finst Binary nested grid instantaneous sensitivity file at end of simulation (used 

for restart), 3-D, all sensitivities, μmol m-3 parameter-1 units. 

.ddm.grdnn

Binary average sensitivity file for grid nn, 2-D, surface layer sensitivities 

only for affected species requested in the CAMx average file, ppm 

parameter-1 units. 

.ddm.receptor 

Text hourly average sensitivities at user specific receptor locations. This 

file is in comma delimited ASCII format suitable for importing into a 

spreadsheet. 

8.5 DDM SENSITIVITY COEFFICIENT NAMES 

Each DDM sensitivity coefficient tracks the influence of a species from a specific source (the 

influencing species) on a predicted concentration (the affected species). The sensitivity 

coefficient names are constructed to show this relationship, as follows: 

{Affected Species}{Pollutant Source}{Influencing Species} 

This is a lot of information to encode in a name that must conform to the ten character limit 

imposed by the binary I/O file formats. Because of this, two naming systems are used in CAMx: 

• Long Names - these names are easy to read, but since they are more than ten characters in 

length they cannot be used in sensitivity coefficient binary output files. If an alternate 

I/O format is implemented in the future it may be possible to use the long names on 

sensitivity output files. 

• Short Names - these convey the same information as the long names but require more 

practice to learn. They are used in the sensitivity coefficient binary output files. 

At the start of each CAMx run a concordance of Long and Short sensitivity coefficient names is 

written to the diagnostic output file (.diag file). An example concordance is shown in Figure 8-2, 

and a detailed explanation of the naming convention follows. 

 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-13

 Affected Influencing Source Long Short 

 Species Species Type Group Region Name Name 

 ------------------------------------------------------------------------------- 

 NO NO EM 1 2 NO__EM0102NO__ 01E0102001 

 NO2 NO EM 1 2 NO2_EM0102NO__ 02E0102001 

 O3 NO EM 1 2 O3__EM0102NO__ 03E0102001 

 PAN NO EM 1 2 PAN_EM0102NO__ 04E0102001 

 NXOY NO EM 1 2 NXOYEM0102NO__ 05E0102001 

 OLE NO EM 1 2 OLE_EM0102NO__ 06E0102001 

 PAR NO EM 1 2 PAR_EM0102NO__ 07E0102001 

 TOL NO EM 1 2 TOL_EM0102NO__ 08E0102001 

 XYL NO EM 1 2 XYL_EM0102NO__ 09E0102001 

 FORM NO EM 1 2 FORMEM0102NO__ 10E0102001 

 ALD2 NO EM 1 2 ALD2EM0102NO__ 11E0102001 

 ETH NO EM 1 2 ETH_EM0102NO__ 12E0102001 

 CRES NO EM 1 2 CRESEM0102NO__ 13E0102001 

 MGLY NO EM 1 2 MGLYEM0102NO__ 14E0102001 

 OPEN NO EM 1 2 OPENEM0102NO__ 15E0102001 

 PNA NO EM 1 2 PNA_EM0102NO__ 16E0102001 

 CO NO EM 1 2 CO__EM0102NO__ 17E0102001 

 HONO NO EM 1 2 HONOEM0102NO__ 18E0102001 

 H2O2 NO EM 1 2 H2O2EM0102NO__ 19E0102001 

 HNO3 NO EM 1 2 HNO3EM0102NO__ 20E0102001 

 ISOP NO EM 1 2 ISOPEM0102NO__ 21E0102001 

 MEOH NO EM 1 2 MEOHEM0102NO__ 22E0102001 

 ETOH NO EM 1 2 ETOHEM0102NO__ 23E0102001 

 ISPD NO EM 1 2 ISPDEM0102NO__ 24E0102001 

 NTR NO EM 1 2 NTR_EM0102NO__ 25E0102001

Figure 8-2. Example concordance of long and short sensitivity coefficient names from the 

CAMx diagnostic output file. 

Initial Condition Sensitivity Names

 Long Name NNNNIC____MMMM

 where: 

 NNNN Affected species name with trailing underscore to pad blanks 

 IC Indicates the sensitivity coefficient is for initial conditions 

 ____ Four underscores to pad the name to 14 characters

 MMMM Influencing species name with trailing underscore to pad blanks 

 Examples: FORMIC____VOC_

 O3__IC____O3__

 Short Name nnI____mmm

 where: 

 nn Affected species number 

 I Indicates the sensitivity coefficient is for initial conditions 

 ____ Four underscores to pad the name to 10 characters

 mmm Influencing species number or name of a species group (NOX, 

VOC, HRVOC or ALL). 

 Examples: 10I____VOC (where FORM is species number 10) 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-14

 03I____003 (where O3 is species number 3) 

Boundary Condition Sensitivity Names

 Long Name NNNNBCRRR_MMMM

 where: 

 NNNN Affected species name with trailing underscore to pad blanks 

 BC Indicates the sensitivity coefficient is for boundary conditions 

 RRR NTH, STH, EST, WST or TOP if stratified by boundary; ALL if 

not stratified by boundary 

 _ Underscore to pad the name to 14 characters 

 MMMM Influencing species name with trailing underscore to pad blanks 

 

 Examples: FORMBCALL_VOC_

 O3__BCTOP_O3__

 Short Name nnBRRR_mmm

 where: 

 nn Affected species number 

 B Indicates the sensitivity coefficient is for initial conditions 

 RRR NTH, STH, EST, WST or TOP if stratified by boundary; ALL if 

not stratified by boundary 

 _ Underscore to pad the name to 10 characters 

 mmm Influencing species number or name of a species group (NOX, 

VOC, HRVOC or ALL) 

 Examples: 10BALL_VOC (where FORM is species number 10) 

 03BTOP_003 (where O3 is species number 3) 

Emissions Sensitivity Names

 Long Name NNNNEMGGRRMMMM

 where: 

 NNNN Affected species name with trailing underscore to pad blanks 

 EM Indicates the sensitivity coefficient is for emissions 

 GG Emissions group number 

 RR Emissions region number 

 MMMM Influencing species name with trailing underscore to pad blanks 

 Examples: FORMEM0103VOC_

 O3__EM0201O3__
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-15

 Short Name nnEGGRRmmm

 where: 

 nn Affected species number 

 E Indicates the sensitivity coefficient is for emissions 

 GG Emissions group number 

 RR Emissions region number 

 mmm Influencing species number or name of a species group (NOX, 

VOC, HRVOC or ALL) 

 Examples: 10E0103VOC (where FORM is species number 10) 

 03E0201003 (where O3 is species number 3) 

Reaction Rate Sensitivity Names

 Long Name NNNNRATE__MMMM

 where: 

 NNNN Affected species name with trailing underscore to pad blanks 

 RATE Indicates the sensitivity coefficient is for rate constants 

 __ Two underscores to pad the name to 14 characters 

 MMMM Reaction rate sensitivity group name with trailing underscore to 

pad blanks 

 Examples: NO__RATE__RXN1 

 O3__RATE__R28_ 

 Short Name nnRATE_mmm

 where: 

 nn Affected species number 

 RATE Indicates the sensitivity coefficient is for rate constants 

 _ Underscore to pad the name to 10 characters 

 mmm Reaction rate sensitivity group number 

 Examples: 01RATE_001 (where NO is species number 1) 

 03RATE_002 (where O3 is species number 3) 

HDDM Sensitivity Names

 Long Name NNNNHDDMLLLMMM

 where: 

 NNNN Affected species name with trailing underscore to pad blanks 

 HDDM Indicates the sensitivity coefficient is second-order 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-16

 LLL The index of the first 1st-order sensitivity parameter in the internal 

list of the 1st-order parameters 

 MMM The index of the second 1st-order sensitivity parameter in the 

internal list of the 1st-order parameters 

 Examples: NO__HDDM001001 

 O3__HDDM001002 

 Short Name nnEGGRRmmm

 where: 

 nn Affected species number 

 HDDM Indicates the sensitivity coefficient is second-order 

 ll The index of the first 1st-order sensitivity parameter in the internal 

list of the 1st-order parameters 

 mm The index of the second 1st-order sensitivity parameter in the 

internal list of the 1st-order parameters 

 Examples: 01HDDM0101 (where NO is species number 1) 

 03HDDM0102 (where O3 is species number 3) 

8.6 STEPS IN DEVELOPING INPUTS AND RUNNING DDM 

Below is a simple methodological list of steps to follow in setting up and running DDM. The 

process is similar among the OSAT, PSAT, and DDM Probing Tools. 

1) Define the source groups and regions that you wish to track. Keep in mind that memory 

resources increase dramatically as the number of sensitivities grows. Probing Tool 

applications with large numbers of sensitivities, nested grids or grid cells may exceed 

available memory. 

2) Build a source region map (Figure 6-10) that defines the spatial allocation of emission 

sensitivities. For small domains or small number of regions, this can be done by hand. 

We suggest using GIS software to develop complex source region maps on large grids. 

3) Process the emissions inventory into the separate source group files that you want to track 

(e.g., mobile, area, point, biogenic, etc.). 

a) Consideration of potential source apportionment or sensitivity applications prior to 

any emissions processing can be very beneficial so that files by group are available 

for later use. 

b) Elevated point sources will automatically be assigned to the source region in which 

they reside. However, you may override the region to which each individual point 

source is assigned (see the definition of kcell in Section 5, Elevated Point Source 

File). A point source region does not need to be defined in the source region map, 

e.g., you could have a map with two regions that split the domain in half, with a third 

region assigned arbitrarily to represent elevated point sources only. 

4) Edit the CAMx control namelist file (Section 5). 

a) Set the Probing_Tool variable to the technology you wish to use (DDM, HDDM). 

This will activate the &DDM_Control namelist module. 
CAMx v5.30 User’s Guide, December 2010 

Decoupled Direct Method 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_08_DDM.docx 8-17

b) Edit or add the &DDM_Control namelist module (described earlier). Provide the 

required information, including: 

• output paths 

• whether to stratify boundary conditions 

• number of source regions 

• number of source groups 

• numbers and names of IC, BC, emissions, rate constant, and HDDM groups 

• receptor definitions 

• IC/BC input files 

• list of input emission files by group. 

5) Configure the CAMx source code to define the number of tracers, and build an 

executable. This will ensure that you have sufficient memory for the Probing Tool 

application. 

a) Edit the file Includes/camx.prm

b) Change the parameter MXTRSP, following the instructions provided in the file. 

CAMx is distributed with MXTRSP = 1 to minimize memory requirements for 

standard applications of the model. If you run DDM with an insufficient value, the 

model will stop and tell you the required value of MXTRSP for your application. 

c) Execute the CAMx Makefile to build an executable program (Section 11). 

6) Run CAMx and review the diagnostic output files to ensure that the model is correctly 

interpreting and running the Probing Tool configuration that you have specified. Ensure 

that CAMx is generating the proper output files that you are expecting. Review the table 

of emissions by source group and region. 

7) Review gridded tracer fields using commonly available plotting programs. Utilities such 

as PAVE or Verdi will read Probing Tool files directly. Use of any other software may 

require specialized re-formatting procedures. 

8) Probing Tool gridded tracer output files are written in the same Fortran binary format as 

the regular CAMx concentration output files. You can post-process gridded output fields 

using any software that reads CAMx files, or you can adapt those programs or build your 

own software to generate specialized analysis and graphical products. 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-1 

9. PROCESS ANALYSIS

Process Analysis (PA) allows for in-depth analysis of photochemical model performance by 

revealing the contributions from individual physical and chemical processes operating within the 

model (Jeffries and Tonnesen, 1994). Using PA, one can more fully understand the complex 

interactions between the different processes, explain simulation results within the context of the 

model formulation, and improve the design of control strategies. 

A conventional model performance evaluation employs statistical and graphical methods to 

analyze predicted concentrations against observed concentrations. This answers the basic 

question: “How well is the model replicating measurements?” While such comparisons are 

necessary to summarize performance, they are far from sufficient to determine whether the 

model is adequately representing the real situation. This is because compensating errors among 

various model processes can result in predictions that serendipitously agree with limited 

observations but for the wrong reasons. In contrast PA provides information on how the specific 

model predictions were obtained, which can be interpreted to improve model performance and/or 

inform control strategy decisions. 

9.1 PROCESS ANALYSIS IN CAMx 

Three components of PA are implemented in CAMx: 

1. Integrated Processes Rate (IPR) analysis. The IPR method provides detailed process 

rate information for each physical process in CAMx (i.e., advection, diffusion, 

deposition, emissions, and chemistry) for selected grid cells and selected species (Wang, 

Langstaff, and Jeffries, 1995). The IPR outputs can be analyzed to determine what 

processes governed the model-predicted concentrations at any time and place. IPR 

information has often been plotted as a time series of process contributions for specific 

cells or groups of cells. IPR outputs have also been used to check the mass balance in the 

host model, i.e., to determine whether model concentrations are fully explained by the 

diagnosed process information or whether unexpected artifacts are occurring. The IPR 

data are relatively easy to interpret and can be analyzed using simple tools such as 

spreadsheets. Currently, only the IPR analysis has been extended to the PM modules in 

CAMx. 

2. Integrated Reaction Rate (IRR) analysis. The IRR method provides detailed reaction 

rate information for all reactions in the chemical mechanism for selected grid cells 

(Jeffries and Tonnesen, 1994). The IRR data can be analyzed to determine how the 

chemical changes occurring in the model are related to the chemical mechanism. For 

example, by analyzing rate information over groups of reactions it is possible to quantify 

chemically meaningful attributes such as radical initiation rates, radical propagation 

efficiencies, chain lengths, etc. Since these analyses tend to be complex, IRR data 

generally require post-processing to be useful. IRR is implemented for the CB4, CB05, 

and SAPRC99 chemical mechanisms (mechanism numbers 3 through 6: see Chapter 3, 

Table 3-1). 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-2 

3. Chemical Process Analysis (CPA). CPA is closely related to the IRR method but is 

designed to be more user friendly and accessible. As mentioned above, IRR data are 

generally only useful after the data have been post-processed into chemically meaningful 

parameters. With CPA, a selection of useful parameters is calculated within CAMx and 

then output to gridded files (Tonnesen and Dennis, 2000). The gridded CPA files use the 

same format as the gridded concentration outputs and can be visualized and processed 

using standard post-processing tools. CPA is implemented for the CB4, CB05, and 

SAPRC99 chemical mechanisms (mechanism numbers 3 through 6: see Chapter 3, Table 

3-1). 

Integrated Process Rate Analysis

The specific processes that are reported by IPR are listed in Table 9-1. This information is 

output for each chemical species selected for inclusion in the average concentration output file, 

and for each grid cell selected for analysis. The process rates are integrated across each model 

output time interval (normally hourly). Taken together, this information provides a complete 

description of how the species concentration changed across the output time interval and the 

magnitude of all of the processes that caused this change. Information is output in the 

concentration units used internally within CAMx (μmole/m3

 for gases, μg/m3 for PM species). 

A gas conversion factor (ppm/μmole/m3) specific to the grid cell/time period is also output to 

allow conversion to mixing ratio (ppm) for comparison of gas species with CAMx average 

concentration outputs. For PM species, the conversion factor is always 1. Grid cell volume is 

also output to allow aggregation across grid cells.

For most of the process rates listed in Table 9-1 the interpretation is straightforward, the rate is 

simply the concentration change caused by the named process across the output time interval. 

The sign convention is such that a positive flux always tends to increase the cell concentration. 

Further explanation is provided for several processes below: 

Plume-in-Grid change: The grid cell concentration change caused by Plume-in-Grid 

puffs that transferred mass to the grid cell during the output time interval. 

 

Point source emissions: Does not include point sources selected for PiG treatment as 

these are reported in Plume-in-Grid Change. 

Dilution in the vertical: CAMx allows for layer interface heights to change over time 

which can lead to a “dilution” term for affected grid cells. 

Boundary diffusion: In some cases this term will be zero by definition, namely: the 

bottom boundary of surface layer grid cells; the top boundary of top layer grid cells; any 

lateral boundary that coincides with a nest boundary. 

Dry deposition: This term is zero by definition for all grid cells above the surface layer.
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-3 

Table 9-1. Process information reported by the IPR option. 

IPR 

Parameter Process Information Unitsa

1 Initial concentration μmole/m3 (μg/m3) 

2 Gas phase chemistry μmole/m3 (μg/m3)

3 Gridded emissions μmole/m3 (μg/m3)

4 Point source emissions μmole/m3 (μg/m3)

5 Plume-in-Grid change μmole/m3 (μg/m3)

6 West boundary advection μmole/m3 (μg/m3)

7 East boundary advection μmole/m3 (μg/m3)

8 South boundary advection μmole/m3 (μg/m3)

9 North boundary advection μmole/m3 (μg/m3)

10 Bottom boundary advection μmole/m3 (μg/m3)

11 Top boundary advection μmole/m3 (μg/m3)

12 Dilution in the vertical μmole/m3 (μg/m3)

13 West boundary diffusion μmole/m3 (μg/m3)

14 East boundary diffusion μmole/m3 (μg/m3)

15 South boundary diffusion μmole/m3 (μg/m3)

16 North boundary diffusion μmole/m3 (μg/m3)

17 Bottom boundary diffusion μmole/m3 (μg/m3)

18 Top boundary diffusion μmole/m3 (μg/m3)

19 Dry deposition μmole/m3 (μg/m3)

20 Wet deposition μmole/m3 (μg/m3)

21 Inorganic aerosol chemistry μmole/m3 (μg/m3)

22 Oganic aerosol chemistry μmole/m3 (μg/m3)

23 Aqueous aerosol chemistry μmole/m3 (μg/m3)

24 Final concentration μmole/m3 (μg/m3)

25 Units conversion ppm/(μmole/m3) (N/A)b

26 Average cell volume m3

a

 Units in the parentheses are for PM species. 

b

 Unit conversion factor for PM species is always 1.

Integrated Reaction Rate Analysis

IRR provides the integrated rate of each gas-phase chemical reaction in units of ppm hr-1 for each 

grid cell selected for process analysis. Reaction rates are accumulated (integrated) within the 

chemistry solver at the time steps being used to solve the chemical equations, and output at the 

CAMx output time interval (usually 1 hour). 

Chemical Process Analysis 

The CPA method calculates a pre-determined set of parameters as listed in Table 9-2. The CPA 

parameters are calculated for all grid cells in either the surface layer or all layers. The selection

between surface layer or all layer CPA outputs is determined by the “3-D average file” flag 

specified in the CAMx Control File (see Section 5). This is based on the premise that 3-D CPA 

information will be interpreted in conjunction with 3-D concentration fields. 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-4 

Table 9-2. Chemical Process Analysis (CPA) variables calculated in CAMx for the CB4, CB05 

and SAPRC99 mechanisms. 

CB4 CB05 SAPRC99 Description 

Ozone and Oxidant Production and Loss 

OxProd OxProd OxProd Production of Ox = Ozone + NOy-NO 

OxLoss OxLoss OxLoss Destruction of Ox 

PO3_net PO3_net PO3_net Net ozone produced 

PO3_VOCsns PO3_VOCsns PO3_VOCsns Net ozone produced under VOC sensitive conditions 

PO3_NOxsns PO3_NOxsns PO3_NOxsns Net ozone produced under NOx sensitive conditions 

PH2O2_PHN3 PH2O2_PHN3 PH2O2_PHN3 Ratio of H2O2 produced / HNO3 produced. Greater 

than 0.35 means NOx sensitive ozone production 

O3_dest O3_dest O3_dest Ozone destruction by chemical reactions 

Radical Initiation 

OH_new OH_new OH_new New OH produced (initiated) 

HO2_new HO2_new HO2_new New HO2 produced 

HOx_new HOx_new HOx_new New HOx (HOx = OH+HO2) produced 

newOH_O1D newOH_O1D newOH_O1D Production of OH from ozone photolysis 

newOH_HONO newOH_HONO newOH_HONO Production of OH from HONO photolysis 

nOH_O3_OLE nOH_O3_OLE nOH_O3_OLE Production of OH from ozone-alkene reactions 

nwHO2_HCHO nwHO2_HCHO nwHO2_HCHO Production of HO2 from formaldehyde photolysis 

RO2_new RO2_new RO2_new New RO2 produced 

Radical Propagation 

OHw_CO OHw_CO OHw_CO OH reacted with carbon monoxide 

OHw_CH4 OHw_CH4 OHw_CH4 OH reacted with methane 

OHw_PAR OHw_ETHA OHw_ALK1 

OH reacted with alkanes 

 OHw_PAR OHw_ALK2 

 OHw_ALK3 

 OHw_ALK4 

 OHw_ALK5 

OHw_TOL OHw_TOL OHw_ARO1 OH reacted with toluene and mono-substituted 

aromatics 

OHw_XYL OHw_XYL OHw_ARO2 OH reacted with xylenes and poly-substituted 

aromatics 

OHw_ETH OHw_ETH OHw_ETHE OH reacted with ethane 

OHw_OLE OHw_OLE OHw_OLE1 OH reacted with terminal alkenes (R–HC=CH2, e.g. 

propene) 

 OHw_IOLE OHw_OLE2 OH reacted with internal alkenes (R–HC=CH–R, e.g. 

2-butene) 

OHw_ISOP OHw_ISOP OHw_ISOP OH reacted with isoprene

 OHw_TERP OHw_TERP OH reacted with terpenes 

OHw_all_HC OHw_all_HC OHw_all_HC OH reacted with all organic compounds (including 

CO) 

ISOPwOx ISOPwOx ISOPwOx Isoprene reacted with O3, NO3 and O(3P) 

 TERPwOx TERPwOx Terpenes reacted with O3, NO3 and O(3P) 

OH_rctd OH_rctd OH_rctd Total OH reacted 

HO2_rctd HO2_rctd HO2_rctd Total HO2 reacted 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-5 

CB4 CB05 SAPRC99 Description 

Ozone and Oxidant Production and Loss 

HOx_rctd HOx_rctd HOx_rctd Total HOx reacted 

RO2_rctd RO2_rctd RO2_rctd Total RO2 reacted 

OHfromHO2 OHfromHO2 OHfromHO2 OH produced from reactions of HO2 

Y_OHperHO2 Y_OHperHO2 Y_OHperHO2 Yield of OH per HO2 reacted (= OHfromHO2 / 

HO2_rctd) 

Radical Termination and HOx Chain Length 

OH_term OH_term OH_term OH terminated 

HO2_term HO2_term HO2_term HO2 terminated 

HOx_term HOx_term HOx_term HOx terminated 

RO2_term RO2_term RO2_term RO2 terminated 

HOx_CL HOx_CL HOx_CL HOx chain length ( = HOx_rctd / {2 x HOx_new} ) 

Formaldehyde Production 

HCHOp_eth HCHOp_eth HCHOp_ethe Formaldehyde produced from ethene 

HCHO_ole HCHO_ole HCHO_ole1 Formaldehyde from terminal alkenes (R–HC=CH2, 

e.g. propene) in the first generation of products 

 HCHO_iole HCHO_ole2 Formaldehyde from internal alkenes (R–HC=CH–R, 

e.g. 2-butene) in the first generation of products 

 HCHO_terp HCHO_terp Formaldehyde from terpenes in the first generation of 

products 

HCHOp_isop HCHOp_isop HCHOp_isop Formaldehyde from isoprene in the first generation of 

products 

HCHOp_ispd HCHOp_ispd HCHOp_ispd Formaldehyde from isoprene daughter products 

(isoprod, methacrolein and methylvinylketone) 

HCHOp_Tot HCHOp_Tot HCHOp_Tot Total formaldehyde produced 

NOy Reactions 

HNO3_OHNO2 HNO3_OHNO2 HNO3_OHNO2 Nitric acid produced from OH reacting with NO2

HNO3_NO3HC HNO3_NO3HC HNO3_NO3HC Nitric acid produced from NO3 reacting with organics 

HNO3_N2O5 HNO3_N2O5 HNO3_N2O5 Nitric acid produced from N2O5 reacting with water 

PANprodNet PANprodNet PANSprdNet Net PAN produced (sum of several for SAPRC99) 

PANlossNet PANlossNet PANSlosNet Net PAN destroyed (sum of several for SAPRC99) 

RNO3_prod RNO3_prod RNO3prod Organic nitrates (RNO3) produced 

NOxrecycl NOxrecycl NOxrecycl Nitrates (HNO3 and RNO3) recycled to NOx 

NOw_HO2 NOw_HO2 NOw_HO2 NO reacted with HO2 (forming NO2) 

NOw_RO2s NOw_RO2s NOw_RO2s NO reacted with RO2 (forming NO2) 

NOw_RCO3s NOw_RCO3s NOw_RCO3s NO reacted with RCO3 (forming NO2) 

Photolysis 

J_NO2 J_NO2 J_NO2 NO2 photolysis rate 

J_O3O1D J_O3O1D J_O3O1D O3 photolysis rate to O(1D) atoms 

J_Cld_Adj J_Cld_Adj J_Cld_Adj Adjustment factor 

Radical Concentrations 

OH OH OH OH radical concentration 

HO2 HO2 HO2 HO2 radical concentration 

NO3 NO3 NO3 NO3 radical concentration 

N2O5 N2O5 N2O5 N2O5 concentration 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-6 

9.2 RUNNING PROCESS ANALYSIS

PA can be used with most of the physical options available for the “core” CAMx model, e.g., the 

various advection and chemistry mechanisms/solvers. However, PA cannot be used at the same 

time as the other CAMx “Probing Tool” options (e.g., OSAT, PSAT, DDM, or RTRAC) because 

the Probing Tools share internal data structures to minimize the total memory resources required 

by CAMx. 

PA is invoked similarly to the other Probing Tools within the CAMx control file. In the 

&CAMx_Control namelist module, the variable Probing_Tool must be set to either “PA” 

(generates all PA output), “IPR”, or “IRR”. Table 9-3 summarizes the types of process analysis 

performed for each keyword and the output files that are produced. 

Table 9-3. Process analysis keywords and associated CAMx output files. 

Process Analysis Key Word Output

Filename

File

IPR IRR PA Contains

Yes No Yes *.ipr Integrated process rate (IPR) 

information for all selected cells 

No Yes Yes *.irr Integrated reaction rate (IRR) 

information for all selected cells 

No Yes Yes *.cpa.grdnn

Chemical process analysis 

(CPA) parameters for grid nn

An additional namelist module called &PA_Control must then be provided in the control file to 

configure the PA portion of the model. The additional namelist module is described below. The 

order of the variables follow the template available with the source code. An example of the PA 

portion of the CAMx run control file is shown in Figure 9-1. 

Description of PA Control in the CAMx Run Control File

&PA_Control Label for the Probing Tool namelist module that configures the 

PA option; it must begin in column 2 

& Flag ending a namelist; it must be in column 2

PA_File_Root Character root output path/filename

Number_of_PA_Domains Integer number of PA analysis domains to be evaluated during 

the simulation. 

Within_CAMx_Grid Integer array (by PA domain) pointer into the CAMx grid within 

which the PA domain exists (1=master grid, etc.). Use the 

CAMx internal grid number reported in the *.diag file. Note that 

this may differ from the nest order provided by the user in the 

CAMx control file. 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-7 

PA_Beg_I_Index Integer array (by PA domain) grid column containing western 

edge of PA domain. 

PA_End_I_Index Integer array (by PA domain) grid column containing eastern 

edge of PA domain. 

PA_Beg_J_Index Integer array (by PA domain) grid row containing southern edge 

of PA domain. 

PA_End_J_Index Integer array (by PA domain) grid row containing northern edge 

of PA domain. 

PA_Beg_K_Index Integer array (by PA domain) grid layer containing bottom of 

PA domain. 

PA_End_K_Index Integer array (by PA domain) grid layer containing top of PA 

domain. 

Figure 9-1. Example section of a CAMx control file specifying options for Process Analysis.

&PA_Control 

 PA_File_Root = 'CAMx.OTAG.950707.PA', 

 Number_of_PA_Domains = 2, 

 Within_CAMx_Grid(1) = 1, 

 PA_Beg_I_Index(1) = 8, 

 PA_End_I_Index(1) = 12, 

 PA_Beg_J_Index(1) = 9, 

 PA_End_J_Index(1) = 13, 

 PA_Beg_K_Index(1) = 1, 

 PA_End_K_Index(1) = 5, 

 Within_CAMx_Grid(2) = 2, 

 PA_Beg_I_Index(2) = 107, 

 PA_End_I_Index(2) = 110, 

 PA_Beg_J_Index(2) = 78, 

 PA_End_J_Index(2) = 82, 

 PA_Beg_K_Index(2) = 1, 

 PA_End_K_Index(2) = 7, 

 & 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-8 

The rules for defining PA domains are as follows: 

1. They must be contained within a single CAMx grid; 

2. They may not include cells that contain a nested grid; 

3. They may contain as few as 1 grid cells; 

4. They may contain up to all of the grid cells in a CAMx grid provided that this does not 

violate the second rule; 

5. They may intersect or overlap – the same grid cell may be in several process analysis 

domains. 

Setting CAMx Parameters 

PA stores information in data structures that are dimensioned using FORTRAN parameter 

statements. These parameters must be large enough to accommodate the PA configuration 

specified in the CAMx control file. If one of these parameters is exceeded CAMx will stop with 

an error message stating that a parameter must be changed and the model recompiled. It is 

always a good idea to do a complete rebuild (use the Unix command “make clean”) when a 

parameter is changed. The parameters that may need to be changed are in two include files, 

“procan.inc” and “camx.prm”. 

procan.inc 

MXPADOM – The maximum number of Process Analysis domains. 

MXPACEL – The maximum number of Process Analysis cells over all domains 

camx.prm 

MXTRSP – This parameter defines gridded data structures that are used by several 

probing tools. For PA the data structures store chemical process analysis (CPA) 

variables, so MXTRSP must be set to at least the value of MXCPA (set in procan.inc) 

which is 99. 

Output File Formats

CAMx may output up to four files containing PA information according to the PA option 

selected (see Table 9-3). All of these files are in FORTRAN binary format to conserve disk 

space. Two files (the *.ipr and *.irr files) contain information for just the grid cells

selected for PA. The formats for these files are not described here since two FORTRAN postprocessor programs are provided to extract data from these files in a comma-delimited ASCII 

format. The files containing CPA information (the *.cpa.grdnn) are gridded files covering 

the same area as the regular model average files (*.avrg.grdnn). The gridded CPA files 

have the same format as a regular model average file as described in Section 5. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-9 

9.3 POSTPROCESSING 

Two post-processors are provided to read the binary *.ipr and *.irr output files and extract 

PA data for further analysis. The CPA output files can be visualized directly. 

IPR Output Files 

The FORTRAN77 program “ext_ipr” extracts IPR data from one or more CAMx *.ipr

binary files and reformats the data to comma delimited ASCII format (.csv) suitable for 

subsequent analysis (e.g., using spreadsheets). The “ext_ipr” program performs the following 

tasks: 

• Reads and outputs the descriptive header of the *.ipr file; 

• Optionally combines data from several consecutive *.ipr files to provide multi-day output; 

• Selects data for an individual cell within a PA sub-domain or aggregates data over multiple 

cells within a PA sub-domain; 

• Outputs the selected IPR data in .csv format in either ppb or molar units for gas species; 

PM species are in either μg/m3

 or mass units.. 

A sample script to run the “ext_ipr” program is provided with its source code, and the script 

includes a description of how to use the program. Also included is a spreadsheet macro that can 

read the .csv format and prepare several plots. This macro is described below. 

Aggregating Cells

The “ext_ipr” program can combine IPR information across several cells. This is useful for 

analyzing the contributions of model processes to a geographic area that spans multiple cells 

(e.g., an urban area). For simplicity, the multi-cell area must be defined as a rectangular box. 

The capability of aggregating IPR information across vertical layers is particularly important 

during the day because vertical columns of cells within the mixed layer become strongly coupled 

on time scales shorter than one hour. Thus, if the process contributions for a surface grid cell are 

analyzed during the day vertical diffusion will often completely dominate all other processes. In 

this situation, it is more informative to analyze a column of cells extending from the surface to 

the approximate height of the mixed layer. 

When the “ext_ipr” program aggregates information across grid cells it accounts for 

differences in cell volume. If the output for aggregate cells is requested in ppb units, the output 

from CAMx in molar units is converted to ppb using the volume-weighted average units 

conversion factor for the cells being aggregated. 

IPR Time Series Analysis

One useful approach to analyzing IPR data is to plot the contributions of several processes as a 

time series. Figures 9-2 through 9-4 present examples of this approach from the CAMx test case 

that is distributed with the model. The figures show process contributions to the PM2.5 sulfate 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-10 

and nitrate concentrations in a multi-cell area around Chicago on June 13 and 14, 2002, and are 

intended solely as an illustration of how PA can be used. The figures were prepared using the 

“ext_ipr” program described above and the spreadsheet macro

“process_analysis_macro.xls.” The macro reads an output file from “ext_ipr” and 

prepares three charts: 

1. Bar chart of the contribution from each process averaged over the duration of the PA 

data. This is useful to see which processes were important (Figure 9-2). 

2. Bar chart showing the time series of contributions from all major processes. To reduce 

the number of processes being displayed, advection and diffusion information for each 

boundary is combined into a single transport term, and any series with zero contribution 

is excluded from the chart. Also, the three PM chemistry processes (organic, inorganic 

and aqueous-phase aerosol chemistry) are aggregated to a single net term (Heterogeneous 

Chemistry). An example of this chart is shown in Figure 9-3. 

3. Bar chart showing the time series of contributions from major processes with lateral 

boundary transport and all chemistry processes shown as a single net term. An example 

of this chart is shown in Figure 9-4. For a small region lateral boundary transport often 

leads to large positive and negative terms that approximately cancel (e.g., inflow from the 

east and outflow to the west). This chart provides a comparison of the net effect of lateral 

boundary transport relative to other processes, whereas the second chart resolves the 

transport by boundary. Comparing Figures 9-3 and 9-4, based on the same data, shows 

the difference between these two analysis approaches. 

IRR Output Files

The FORTRAN77 program “ext_irr” extracts IRR data from one or more CAMx *.irr

binary files and reformats the data for subsequent analysis. The “ext_irr” program performs 

the following tasks: 

• Reads and outputs the descriptive header of the *.irr file; 

• Optionally combines data from several consecutive *.irr files to provide multi-day 

output; 

• Selects data for an individual cell or multiple cells within a PA sub-domain; 

• Optionally, outputs the selected IRR data to a .csv format ASCII file; 

• Optionally, outputs the selected IRR data to a UAM average format binary file. 

The ASCII IRR data are suitable for subsequent analysis (e.g., using spreadsheets) but at this 

time there is no “pre-packaged” analysis available comparable to the macro for analyzing IPR 

data. The binary IRR output from “ext_irr” can be displayed using any post-processing software 

that can display CAMx average concentration outputs. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-11 

Figure 9-2. Time-averaged IPR analysis for PSO4 and PNO3 on June 13 and 14, 2002; all of 

the processes are plotted individually.

Time-Averaged PSO4 Change from the Different Processes in Chicago Area.

Run = postproc_test

Grid cells used from grid number 1: (43, 47) to (52, 56) using layers 1 to 5

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

Gas-phase chemistry

Area emissions

Point source emissions

Plume-in-Grid change

West boundary advection

East boundary advection

South boundary advection

North boundary advection

Bottom boundary advection

Top boundary advection

Dilution in the vertical

West boundary diffusion

East boundary diffusion

South boundary diffusion

North boundary diffusion

Bottom boundary diffusion

Top boundary diffusion

Dry deposition

Wet deposition

Inorganic aerosol chem

Organic aerosol chem

Aqueous chemistry

Change in PSO4 (ug/m3)

Time-Averaged PNO3 Change from the Different Processes in Chicago Area.

Run = postproc_test

Grid cells used from grid number 1: (43, 47) to (52, 56) using layers 1 to 5

-0.25

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

Gas-phase chemistry

Area emissions

Point source emissions

Plume-in-Grid change

West boundary advection

East boundary advection

South boundary advection

North boundary advection

Bottom boundary advection

Top boundary advection

Dilution in the vertical

West boundary diffusion

East boundary diffusion

South boundary diffusion

North boundary diffusion

Bottom boundary diffusion

Top boundary diffusion

Dry deposition

Wet deposition

Inorganic aerosol chem

Organic aerosol chem

Aqueous chemistry

Change in PNO3 (ug/m3)
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-12 

Figure 9-3. IPR time series analysis for PSO4 and PNO3; Lateral boundary/Chemistry terms 

are not aggregated. 

Hourly PSO4 Change from Different Processes in Chicago Area.

Run = postproc_test

Grid cells used from grid number 1: (43, 47) to (52, 56) using layers 1 to 5

-1.5

-1

-0.5

0

0.5

1

 Jun 13, 2002 Jun 14, 2002 Change in PSO4 (ug/m3)

Top Boundary Deposition Emissions

Gas-Phase Chemistry Heterogeneous Chemistry West Boundary

East Boundary South Boundary North Boundary

Hourly PNO3 Change from Different Processes in Chicago Area.

Run = postproc_test

Grid cells used from grid number 1: (43, 47) to (52, 56) using layers 1 to 5

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

 Jun 13, 2002 Jun 14, 2002 Change in PNO3 (ug/m3)

Top Boundary Deposition Emissions

Gas-Phase Chemistry Heterogeneous Chemistry West Boundary

East Boundary South Boundary North Boundary
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-13 

Figure 9-4. IPR time series analysis for PSO4 and PNO3; Lateral boundary/Chemistry terms 

are aggregated to a single net term, in contrast to Figure 9-3. 

 

Hourly PSO4 Change from Different Processes in Chicago Area.

Run = postproc_test

Grid cells used from grid number 1: (43, 47) to (52, 56) using layers 1 to 5

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

 Jun 13, 2002 Jun 14, 2002 Change in PSO4 (ug/m3)

Top Boundary Deposition Emissions Chemistry Lateral Boundaries

Hourly PNO3 Change from Different Processes in Chicago Area.

Run = postproc_test

Grid cells used from grid number 1: (43, 47) to (52, 56) using layers 1 to 5

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

 Jun 13, 2002 Jun 14, 2002 Change in PNO3 (ug/m3)

Top Boundary Deposition Emissions Chemistry Lateral Boundaries
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-14 

CPA Output Files

CPA results are output from CAMx as gridded files in the same format as the average 

concentration files, and therefore can be visualized using any post-processing software that can 

display CAMx concentration outputs. These files may optionally include just the surface layer 

or all layers according to how the “3-D output” flag is set in the CAMx control file. Surface 

layer species concentrations reflect the balance between several model processes including 

surface emissions/deposition, vertical mixing, and chemical reactions in surface (and possibly 

aloft) grid cells. In contrast, the CPA output data are grid cell specific and reflect chemical 

change in single grid cells. The fact that vertical mixing tends to average species concentrations 

over multiple layers whereas CPA variables are layer specific may complicate and bias the 

interpretation of CPA results. A solution is to place both the concentrations and CPA variables 

on a comparable basis by averaging them over all layers within the planetary boundary layer. 

A post-processor (VERTAVG) was developed to average CPA variables and concentrations over 

multiple layers contained within the depth of the planetary boundary layer (PBL). The PBL 

depth varies in space and time according to the strength and vertical extent of turbulent mixing. 

Vertical turbulent mixing is specified for CAMx by the input diffusivity (Kv) fields. The 

VERTAVG processor reads CAMx Kv, height, temperature, and pressure input files, and then 

calculates the PBL depth for each grid column at each hour. VERTAVG also reads a CAMx 3-D 

output file of CPA variables (or species concentrations) and calculates air-mass weighted PBL 

values for each grid column at each hour. The output from VERTAVG is a 2-D file in average 

file format where the single layer represents the PBL average values rather than surface layer 

values. 

VERTAVG appends two extra variables to the file being processed to aid with interpretation and 

to make clear that the data have been vertically averaged. The added variables are: 

• PBL_Z is the diagnosed height of the PBL for each grid column. 

• PBL_I is the layer index of the top layer within the diagnosed PBL for each grid column. 

CAMx must be run using the option to create 3-D species concentration (and therefore CPA) 

output files in order to use VERTAVG. 

An example of how CPA can be used to evaluate a particular CAMx modeling application is 

provided later in Section 9.5. 

9.4 CHEMICAL PROCESS ANALYSIS AND GRID NESTING 

CAMx user’s should already be aware that the horizontal and vertical resolution of CAMx grids 

can impact model results such as predicted concentrations. Such impacts may be considered 

modeling artifacts since they result from choices in modeling system design. These artifacts are 

rarely apparent in the course of a typical CAMx application because modeling grid design 

conventions have evolved that reduce grid resolution artifacts to acceptable levels (e.g., EPA 

guidance for 8-hour ozone modeling), and because grid resolution is usually held fixed 

throughout a modeling project. However, there are technical reasons why grid resolution 

artifacts are more likely to be apparent for process analysis (CPA and IRR) outputs than the 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-15 

normal CAMx concentration (average file) outputs. The purpose of this discussion is to alert 

users’s to this situation and provide some technical background. An example is given below. 

The sensitivity of grid model concentrations to grid resolution depends upon competition 

between processes that tend to smooth out concentration gradients (i.e., horizontal and vertical 

mixing) and processes that tend to create concentration gradients (i.e., emissions, chemical 

reactions, deposition). Hence, long lived species with slow production and removal rates will 

tend to show little spatial variation in mixing ratio provided that some atmospheric mixing is 

occurring. For example, carbon monoxide mixing ratios tend to be spatially uniform in grid 

model simulations, except where there are large differences in emission strength between 

neighboring cells. 

Many of the chemical process analysis (CPA) terms involve or describe radical concentrations. 

Radicals are distinguished from the state species in CAMx (i.e., the species that are listed in the 

chemistry parameters file and are available for output to average concentration file) by having 

very short lifetimes (sub-second). Short lifetime means that the radicals cannot be “transported” 

in the atmosphere since they react before they can travel farther than fractions of a centimeter. 

Consequently, CAMx does not transport radicals and there is no direct physical coupling 

between radical concentrations in neighboring grid cells. This suggests a greater potential for 

spatial variability in radical concentrations than exists for state species. However, the radical 

concentrations are determined by the state species concentrations in each grid cell, and since the 

concentrations of state species in neighboring cells are coupled by transport, the radical species 

concentrations in neighboring cells are indirectly coupled. Therefore, differences in radical 

concentrations between neighboring cells must reflect differences in the state species 

concentrations or differences in the steady state relationships between the radicals and the state 

species. The example below shows that these steady state relationships can show systematic 

dependencies on grid resolution that are directly visible in model outputs. 

Vertical Nesting in the OTAG Modeling 

The grid system developed for the OTAG modeling in the mid-1990’s used vertical nesting to 

economize on model resources in the master grid area. This means that the nested grid had seven 

layers but the master grid had only five layers. Vertical nesting was achieved by aligning the 

first two nested grid layers with the first master grid layer, and the third and fourth nested grid 

layers with the second master grid layer. The surface layer in the master grid was 100 m deep 

whereas in the nested grid the surface layer was 50 m deep. 

The surface OH concentration is shown in Figure 9-5(a) for noon on July 8. This output was 

prepared from the master grid CPA output file, and so the hourly OH is the time weighted 

average of the mixing ratio at each sub-hourly time step. In the area occupied by the nested grid, 

the OH concentrations from 18 nested grid cells (i.e., a block of 3 by 3 by 2 cells) have been 

aggregated to the corresponding master grid cell using a volume weighted average. The area of 

the nested grid is clearly visible with a box shaped outline in Figure 9-5(a). The OH 

concentrations are systematically lower in the nested grid than the master grid. The area of the 

nested grid is also visible in other CPA outputs related to radical concentrations. Figure 9-6(a) 

shows the corresponding ozone distribution, and the area of the master grid cannot be 

distinguished. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-16 

Figure 9-5. Surface OH concentrations for the OTAG master grid area with (a) and without (b) 

vertical nesting in the nested grid area. 

 

Figure 9-6. Surface ozone concentrations for the OTAG master grid area with (a) and without 

(b) vertical nesting in the nested grid area. 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-17 

A simple experiment shows that the difference in OH concentrations between the master and 

nested grids results from the vertical nesting. CAMx was run using a 5 layer nested grid (no 

vertical nesting) using the nested grid emissions but interpolating the meteorology from the 

master grid using the CAMx “flexi-nesting” capability. The surface OH concentration without 

vertical nesting is shown in Figure 9-5(b). Without vertical nesting, the area of the nested grid 

cannot be distinguished in the OH concentration field. This shows that the surface OH 

concentration is very sensitive to the thickness of the surface layer, much more so than ozone 

(Figure 9-6). 

While results such as Figure 9-5(a) may appear “wrong” at first sight, a more considered 

response is a realization that CPA is simply providing new insight into relationships between 

modeling system design and function. Such information can be used to improve the design of a 

modeling system or to assist in the interpretation of model results. A modeler might conclude 

from these results that vertical nesting is undesirable in the surface layer because it provides 

relatively little saving in CPU and memory requirements at the cost of artifacts that are difficult 

to explain. 

9.5 CPA DEMONSTRATION

SAPRC99 and CB4 simulations were performed with CPA for an existing Los Angeles modeling 

database (Yarwood et al., 2003). The analysis focused on chemical explanations for differences 

in ozone predictions with the CB4 and SAPRC99 mechanisms. CPA was used to investigate 

several aspects of atmospheric chemistry that are important to understanding model performance 

and control strategy development: 

• Determining geographic areas of high ozone productivity; 

• Classifying geographic areas as being “VOC-sensitive” or “NOx- sensitive” with respect 

to ozone production; 

• Quantifying the initiation, propagation and termination of radical species such as 

hydroxyl (OH) radical that drive ozone formation chemistry; 

• Investigating the efficiency of radical utilization in ozone production as measured by the 

“HOx chain length”; 

• Determining the contribution of biogenic (isoprene) emissions to VOC reactivity and 

ozone production; 

• Determining geographic areas of photochemical ozone destruction; 

• Investigating how NOx emissions are converted to NOz; 

• Quantifying recycling of NOy from chemically inactive (NOz) to active (NOx) forms. 

The Los Angeles (LA) modeling episode was August 3–7, 1997 during the Southern California 

Ozone Study (SCOS). The modeling domain covered 65 by 40, 5-km grid cells as shown in 

Figure 9-7. CAMx was run with 10 layers extending between a surface layer of 60 m and a 

model top at 4 km. The photochemistry of ozone formation was simulated in CAMx using two 

different condensed chemical mechanisms: 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-18 

300 350 400 450 500 550 600

UTM Easting (km)

3700

3750

3800

3850

UTM Northing (km)

-200 m

0 m

200 m

400 m

600 m

800 m

1000 m

1200 m

1400 m

1600 m

1800 m

2000 m

2200 m

2400 m

2600 m

Pacific

Ocean

Los Angeles County

Kern County

Orange

 County

Riverside County

San Diego County

San Bernardino County

Ventura

 County

Crestline

LAX

Hawthorn

Long Beach

Van Nuys

Diamond Bar

Anaheim Lake Perris

Figure 9-7. The CAMx Los Angeles modeling domain (Yarwood et al., 2003).

• The Carbon Bond 4 (CB4) mechanism (Gery et al., 1989) with updates for low-NOx

conditions and isoprene reactions. This is implemented in CAMx as “Mechanism 

number 3” and has 37 species and 96 reactions. 

• The fixed stoichiometry version of the SAPRC99 mechanism (Carter, 2000). This is 

implemented in CAMx as “Mechanism 5” and has 74 species and 211 reactions. 

The analysis of CPA results for Los Angeles is shown for 2 PM on August 5, 1997. This was the 

day with the highest observed ozone during the episode period and 2 PM is the time when 

modeled ozone production rates were high in many areas just before the peak concentration 

levels were modeled. The CPA results were averaged over all layers within the PBL using the 

VRTAVG post-processor described above. Figure 9-8 shows the diagnosed PBL depth for the 

modeling domain at this time. 

Ozone Production 

The PBL average ozone levels with CB4 and SAPRC99 are compared in Figure 9-9. SAPRC99 

(right) produces up to about 30 ppb more ozone throughout the Los Angeles basin. The 

chemical process analysis sought to explain how SAPRC99 makes more ozone than CB4 and the 

potential consequences. One consequence is response to emission changes. The NOx emission 

inventory was reduced by 50% and the ozone response measured as a relative reduction factor 

(RRF = Control Case ozone / Base Case ozone) is shown in Figure 9-10. CB4 showed both 

greater ozone increases (yellow/red) and decreases (green/blue) than SAPRC99 in response to 

the 50% NOx emissions cut. 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-19 

Figure 9-8. PBL depth (m) diagnosed by VRTAVG for 14:00 on August 5, 1997.

CB4 SAPRC99

Figure 9-9. PBL average ozone (ppb) at 14:00 on August 5, 1997.

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-20 

CB4 SAPRC99

Figure 9-10. Relative response of ozone to a 50% NOx emission reduction at 14:00 on August 

5, 1997.

The ozone production rate (ppb/hr) during this same time is compared in Figure 9-11. As 

expected from the ozone concentrations (Figure 9-9), SAPRC99 has higher peak ozone 

production rates than CB4 by about 5 to 10 ppb/hr. Comparing the ozone production rates 

(Figure 9-12) reveals that SAPRC99 produces ozone faster especially in the central area of the 

Los Angeles basin and directs the chemical process analysis toward understanding this 

phenomenon. 

Ozone Sensitivity to NOx and VOC 

Understanding the sensitivity of ozone to NOx and VOC precursors is important to control 

strategy design. Several methods have been proposed for differentiating ozone sensitivity to 

precursors based on chemical indicators, such as the ratio of the production rates of hydrogen 

peroxide and nitric acid (PH2O2/PHNO3). This method is implemented in CPA and used to 

designate grid cells as VOC-sensitive or NOx-sensitive at each model time step (i.e., every few 

minutes) by defining PH2O2/PHNO3 of 0.35 and higher as the NOx-sensitive regime. The 

PH2O2/PHNO3 indicator ratio is reported as the CPA variable (PH2O2_PHN3; Figure 9-13) and the 

NOx-sensitive and VOC-sensitive ozone production rates are accumulated as the CPA variables 

PO3_NOxsns (Figure 9-14) and PO3_VOCsns (Figure 9-15), respectively. 

The PH2O2/PHNO3 indicator ratio at 14:00 on August 5, 1997 (Figure 9-13) shows a sharp 

transition from VOC-sensitive in high NOx emission urban/suburban areas to NOx-sensitive in 

lower NOx emission rural areas. The transition in indicator ratio occurs at almost the same 

location with the CB4 and SAPRC99 mechanisms even though the ozone production rates differ 

between the mechanisms. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-21 

CB4 SAPRC99

Figure 9-11. Ozone production rate (ppb/hr) at 14:00 on August 5, 1997.

Figure 9-12. Difference (CB4-SAPRC99) in ozone production rate (ppb/hr) at 14:00 on August 

5, 1997.

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-22 

CB4 SAPRC99

Figure 9-13. Ratio of instantaneous production rates for hydrogen peroxide to nitric acid (H2O2

produced / HNO3 produced) at 14:00 on August 5, 1997. 

CB4 SAPRC99

Figure 9-14. Ozone production rate in areas defined as NOx-sensitive by the PH2O2/PHNO3

indicator ratio at 14:00 on August 5, 1997.

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-23 

CB4 SAPRC99

Figure 9-15. Ozone production rate in areas defined as VOC-sensitive by the PH2O2/PHNO3

indicator ratio at 14:00 on August 5, 1997.

Ozone production rates are much lower in the NOx-sensitive areas than VOC-sensitive areas 

(Figures 9-14 and 9-15). SAPRC99 predicts much higher ozone production rates than CB4 in 

VOC-sensitive areas, and this is where the major difference between the mechanisms is found. 

The important question is: “how is SAPRC99 more reactive than CB4 under VOC-sensitive 

conditions?” Potential explanations include: 

• SAPRC99 has greater radical production for VOC-sensitive conditions and therefore 

converts NO more rapidly to NO2. 

• SAPRC99 has stronger NOx removal mechanisms (NOx sinks) than CB4 for VOCsensitive conditions and therefore more rapidly achieves NOx concentrations that 

maximize ozone production. 

CPA can be used to evaluate these (and other) potential hypotheses for how SAPRC99 and CB4 

are different. 

Radical Production 

Radicals are molecular fragments with an unpaired electron and they generally are highly 

reactive in the atmosphere. The hydroxyl radical (OH) initiates many VOC degradation 

reactions whereas peroxy radicals (HO2 and RO2) convert NO to NO2 thereby triggering ozone 

production. 

The CAMx implementation of CPA calculates initiation rates of OH, HO2 and RO2 radicals. 

Initiation means the creation of “new” radicals from reactions of stable molecules such as 

photolysis or ozonolysis. Figure 9-16 compares the production of new HOx (the sum of OH and 

HO2) by CB4 and SAPRC99 (HOx_new). SAPRC99 has stronger HOx initiation than CB4 in 

the VOC-sensitive area where the mechanisms differ. However, HOx radicals can be formed in 

propagation reactions as well as initiation reactions. The total production of HO2 can be 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-24 

CB4 SAPRC99

Figure 9-16. HOx radical initiation rate (ppb/hour) at 14:00 on August 5, 1997.

determined from the amount of HOx reacting because these quantities will always be in balance 

(because HOx radicals have lifetimes much shorter than a second). 

The HOx radical reaction rate (HOx_rctd) is compared in Figure 9-17. Once again, SAPRC99 

has more HOx radical reaction (and therefore HOx radical production) than CB4 in VOCsensitive areas. 

The amount of HOx radicals reacting (Figure 9-17) is greater than the amount of new HOx 

radicals initiated (Figure 9-16) because of chain reactions that propagate radicals, such as: 

1. OH and HO2 inter-conversion, e.g. 

OH + O3 → HO2 + O2

HO2 + O3 → OH + O2

2. OH and HO2 propagation through RO2 radicals, e.g. 

OH + VOC → RO2 + products 

RO2 + NO → HO2 + products 

HO2 + NO → OH + NO2

Every time that an OH radical propagates via a chain of reactions and reforms OH (or HO2

propagates back to HO2) may be considered as one cycle of HOx propagation. The HOx chain 

length is the number of cycles completed by the average HOx radical and depends upon 

atmospheric conditions. HOx propagation could be relatively more efficient for OH than HO2, 

or vice-versa, but this distinction disappears as the HOx chain length becomes large (> 2) and 

HOx can cycle between OH and HO2 many times. Therefore, CAMx CPA just calculates a

combined HOx chain length that averages OH and HO2 together. 

The HOx chain length can be calculated simply as HOx_rctd/(2 x HOx_new). The number 2 

appears here because one chain is considered to require two HOx reactions to return the HOx 

radical back to its initial form (e.g., OH → HO2 → OH). Using this approach enables consistent 

HOx chain length calculations for the CB4 and SAPRC99 mechanisms. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-25 

CB4 SAPRC99

Figure 9-17. HOx radical reaction rate (ppb/hour) at 14:00 on August 5, 1997.

The CB4 and SAPRC99 chain lengths (HOx_CL) for 14:00 on August 5, 1997 are compared in 

Figures 9-18 and 9-19. The HOx chain length for SAPRC99 is longer than for CB4 in the VOCsensitive areas (Figure 9-18) and this combines with the greater HOx initiation for SAPRC99 

than CB4 (Figure 9-16) to give SAPRC99 more overall HOx production in the VOC-sensitive 

area. 

The HOx chain length values calculated by CPA may be interpreted using the following 

guidelines: 

• HOx_CL should never be less than 0.5 because of the way chain length is being defined. 

o Chain length of 0.5 means that all newly produced HOx “terminates” at the first 

reaction. 

• HOx_CL is low (1-2) in areas where NO is scarce (radicals can not propagate) or NO2 is 

very high (radicals are scavenged). 

o OH or HO2 terminating immediately is likely to result in ozone destruction. 

• HOx_CL is high (>2) in areas where NO levels favor efficient radical propagation and 

rapid ozone production. 

o The area of HOx_CL of ~2.5 and higher corresponds to the VOC-sensitive area. 

Organic peroxy (RO2) radicals also are important because they convert NO to NO2 and because 

they are potential sources of HOx radicals. RO2 is comprised of many different organic radicals 

produced from different VOCs and the CB4 and SAPRC99 mechanisms classify RO2 radicals 

using different lumping schemes and names. Accordingly, the CAMx CPA just compares the 

total amount of RO2 radicals reacting (RO2_rctd) as a measure of the influence of RO2 on ozone 

production chemistry. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-26 

CB4 SAPRC99

Figure 9-18. HOx chain length at 14:00 on August 5, 1997.

Figure 9-19. Ratio of the HOx chain length for CB4 to SAPRC99 at 14:00 on August 5, 1997.

The RO2 reaction rates for CB4 and SAPRC99 are compared in Figure 9-20. SAPRC99 has a 

much higher RO2 reaction rate, and therefore RO2 production rate, than CB4 in the VOCsensitive area. The area where SAPRC99 has higher RO2 production closely corresponds with 

the area where SAPRC99 has higher ozone production (Figure 9-15). The RO2 radical 

production rate is the most pronounced difference between the SAPRC99 and CB4 mechanisms 

related to ozone production and should be further investigated. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-27 

CB4 SAPRC99

Figure 9-20. RO2 organic peroxy radical reaction rate (ppb/hour) at 14:00 on August 5, 1997.

NOy Reactions 

Reactive nitrogen (NOy) comprises NOx and its reaction products (NOz): 

• NOx = NO + NO2

• NOz = HONO + PAN + HNO3 organic nitrates + other minor N-species 

• NOy = NOx + NOz 

CAMx CPA reports several parameters that track the conversion of oxidized nitrogen between 

active (NOx) and inactive forms (NOz). Here, active means able to participate directly in ozone 

producing reactions, i.e., NO and NO2. 

OH + NO2 Reaction

The most important atmospheric reaction converting NOx to NOz is the reaction of OH with 

NO2 to for nitric acid (HNO3). Converting NO2 to HNO3 promotes ozone formation in high 

NOx environments by overcoming the NOx inhibition effect. The rate constant for the OH + 

NO2 reaction has changed in recent years and CB4 has a slightly higer (~10%) value than 

SAPRC99. However, the rate at which OH radicals convert NO2 to HNO3 depends upon both 

the reaction rate constant and the OH concentration. Figure 9-21 compares the CB4 and 

SAPRC99 conversion rate for NO2 to HNO3 by reaction with OH (HNO3_OHNO2). The 

conversion rate is higher in SAPRC99 than CB4 because the higher OH concentration in 

SAPRC99 more than offsets the lower OH + NO2 reaction rate in SAPRC99 than CB4. This 

shows that the OH + NO2 reaction rate alone does not explain differences in reactivity between 

SAPRC99 and CB4. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-28 

CB4 SAPRC99

Figure 9-21. Conversion rate (ppb/hr) for NO2 to HNO3 by reaction with OH at 14:00 on August 

5, 1997.

NOx Recycling

Both the CB4 and SAPRC99 mechanisms include reactions that slowly convert reactive nitrogen 

from inactive (NOz) back to active (NOx) forms. Potentially important “NOx recycling” 

reactions are: 

• OH reaction with nitric acid 

• Nitric acid photolysis 

• Organic nitrate photolysis 

• OH reaction with organic nitrates 

The original CB4 mechanism (Gery et al., 1989) includes only the first of these reactions, 

whereas SAPRC99 includes the first three reactions. The CB05 mechanism and CB4xi 

mechanism (CAMx Mechanism number 4) include all four of these reactions. 

The amount of NOz recycled back to NOx (NOxrecycl) for the CB4 and SAPRC99 mechanisms 

is compared in Figure 9-22. As expected, NOx recycling is greater for SAPRC99 than CB4 

because SAPRC99 includes more reaction pathways. The NOx recycling rate is slow (tenths of 

ppb/hour of NOx produced) and these reactions will only influence ozone chemistry in regions 

where NOx emissions are low. The NOx recycling reactions play little role in ozone production 

for large urban areas. NOx recycling will be more important in rural areas between urban areas 

and may influence ozone transport. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-29 

CB4 SAPRC99

Figure 9-22. Rate of NOx recycling (ppb/hr) from NOz at 14:00 on August 5, 1997.

Ozone Destruction 

The CB4 and SAPRC99 mechanisms include reactions that can destroy ozone as well as produce 

ozone. Some ozone destruction pathways are well-known, e.g., ozone titration by NO and ozone 

reaction with alkenes: 

NO + O3 → NO2 + O2

alkene + O3 → products 

Reactions with radicals such as the HOx cycle discussed above also can destroy ozone: 

OH + O3 → HO2 + O2

HO2 + O3 → OH + O2

Whether or not the HOx cycle results in net ozone destruction or production depends upon the 

availability of NOx. 

The CAMx CPA calculates the ozone destruction rate (O3_dest) due to these processes. Figure 

9-23 compares the ozone destruction rate for CB4 and SAPRC99. There is rapid ozone 

destruction by NO-titration in high NOx emission areas for both CB4 and SAPRC99. Outside of 

high NOx emission areas, ozone destruction occurs at moderate rates of about 1-4 ppb/hr even as 

net ozone production is occurring at the same time (Figure 9-11). The net ozone production 

shown in Figure 9-11 is the sum of ozone production and destruction reactions. Simultaneous 

ozone destruction and production represents a replacement of “old ozone” by “new ozone.” 

Since “old ozone” is effectively transported ozone, the rate of ozone destruction has implications 

for ozone transport analyses and evaluating the balance between ozone transport and local ozone 

production in causing ozone pollution. The ozone destruction rates seen here outside high NOx 

emission areas of a few ppb/hour are small compared to the ozone production rates of many 

ppb/hour, but would be significant if combined with multi-hour, or multi-day, transport times. 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-30 

 

CB4 SAPRC99

Figure 9-23. Ozone destruction rate by chemical reactions (ppb/hr) at 14:00 on August 5, 

1997.

Role of Biogenic VOC 

The CAMx CPA reports the amount of OH reacting with VOCs included in the reaction 

mechanism. The VOCs in the CB4 and SAPRC99 mechanism are different because of 

differences in the lumping approach. Direct comparisons are possible for explicit species (e.g., 

isoprene, ethylene), for species that are effectively the same (TOL and ALK1; XYL and ALK2) 

and for groups of lumped compounds (PAR and the sum of ALK1 to ALK5). 

One way to use the CPA variables for OH + VOC reactions is to evaluate the role of biogenic 

isoprene. Figure 9-24 shows the fractional contribution of isoprene to all OH + VOC reactions. 

The contribution of isoprene to OH + VOC reactions is very similar for the CB4 and SAPRC99 

mechanisms. Isoprene is much less important as an OH reaction partner for the Los Angeles 

area than in the Eastern US because the area is dry and has relatively low biomass, and also has 

relatively high anthropogenic VOC emissions. Note that the analysis shown in Figure 9-24 

indicates where isoprene reactions are occurring, but not where ozone is produced as a 

consequence of isoprene reactions. 

 
CAMx v5.30 User’s Guide, December 2010 

Process Analysis 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_09_PA.docx 9-31 

CB4 SAPRC99

Figure 9-24. OH + isoprene as a fraction of OH + VOC reactions at 14:00 on August 5, 1997.
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-1

10. REACTIVE TRACERS 

The CAMx reactive tracer algorithm provides a flexible approach for simulating the emission, 

dispersion, chemistry, and deposition of multiple trace gas and particulate tracers on the 

computational grid(s) and within the IRON PiG treatment. Originally developed to model air 

toxics, it was extended and generalized to be able to track a variety of user-defined organic and 

inorganic species. 

Reactive tracers are carried separately from the core model photochemical/PM chemistry 

mechanisms, and thus can be used to address a variety of issues, separately or in combination: 

• Reactive and inert gaseous and particle air toxic compounds; 

• Chemical decay of individual VOC compounds into multiple generations of daughter 

products; 

• Source tagging of primary emitted inert and reactive compounds from specific source 

types/classes, or from individual stacks, facilities and/or complexes. 

The reactive tracer algorithm is implemented as a CAMx “Probing Tool” and thus shares model 

data structures with other Probing Tools such as the Ozone/Particulate Source Apportionment 

Technology (OSAT/PSAT) and the Decoupled Direct Method (DDM/HDDM). This streamlines 

the CAMx code, improves efficiency, and maximizes consistency with the core model since it 

allows reactive tracer calculations for emissions, transport, and deposition to use the existing 

CAMx algorithms. However, this means that reactive tracers cannot be used simultaneously 

with other Probing Tools. 

The reactive tracer implementation employs two approaches to define tracer chemistry. The 

original approach, referred to as RTRAC, allows tracers to decay and form multiple generations 

of daughter products through photolysis and user-specified thermal reactions with ozone and 

radicals (OH, NO3) that are extracted from the core gas-phase chemistry (CB4, CB05, or 

SAPRC99). The newer approach, referred to as the RTRAC Chemical Mechanism Compiler 

(RTCMC), allows the user to externally define a full chemistry mechanism with no limits on 

complexity (within available computer resources). RTCMC can also access any gas-phase 

concentrations from the core gas-phase mechanism as well. Neither option allows chemistry for 

particulate tracers. 

10.1 DESCRIPTION OF RTRAC 

Reactive tracers are defined for each CAMx run by providing an RTRAC chemistry parameters 

file similar to that used for the core model. The examples in Figure 10-1 and 10-2 illustrate an 

RTRAC air toxics application using the CB4 and SAPRC99 chemical mechanisms, respectively 

(ENVIRON, 2002; Morris et al., 2003). The number and names of the tracers are arbitrary; i.e. 

information on the tracer species’ chemical identities, structure, reaction pathways, and kinetics 

are kept separate from the core model. Consistent with the chemistry parameters files used for 

CB4 and SAPRC99, the physical characteristics for each reactive tracer must be specified for 

deposition calculations, and their reaction pathways and rates must be defined. The structure of 

the RTRAC tracer definition provides complete flexibility in the selection of the compounds and 

 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-2

Figure 10-1. Example RTRAC chemistry input file for modeling the MATES toxic species using 

CB4 as the host chemical mechanism. 

 

CAMx Version |VERSION5.2 

Description |MATES Toxics for CRC project A-42 

No of gas tracers |6 

No of aero tracers |8 

No photolysis rxns |4 

No thermal rxns |12 

Gas Tracers 

No. Name P/S SNAM lower bnd H-law T-fact Diffrat Reactvty Rscale 

 1 PACET PRIM 1.00E-12 6.30e+03 -6492. 1.56 0.0 1.0 

 2 HCHO PRIM 1.00E-12 6.30e+03 -6492. 1.29 0.0 1.0 

 3 BENZ PRIM 1.00E-12 1.80e-01 0. 2.08 0.0 1.0 

 4 BUTA PRIM 1.00E-12 1.00e-02 0. 1.73 0.0 1.0 

 5 SACET SEC ALD2 1.00E-12 6.30e+03 -6492. 1.56 0.0 1.0 

 6 SFORM SEC FORM 1.00E-12 6.30e+03 -6492. 1.29 0.0 1.0 

Aero Tracers 

No. Name lower bnd Density Low cut Upper cut 

 7 DSLF 1.00E-09 1.5 0.10 2.50 

 8 ECF 1.00E-09 1.5 0.10 2.50 

 9 CRF 1.00E-09 1.5 0.10 2.50 

 10 CR6F 1.00E-09 1.5 0.10 2.50 

 11 DSLC 1.00E-09 1.5 2.50 10.00 

 12 ECC 1.00E-09 1.5 2.50 10.00 

 13 CRC 1.00E-09 1.5 2.50 10.00 

 14 CR6C 1.00E-09 1.5 2.50 10.00 

Photolysis reactions 

Toxic Rxn # Factor 

PACET 45 1.0 

SACET 45 1.0 

HCHO 39 1.6 

SFORM 39 1.6 

Thermal reactions and rates 

Toxic React A(ppm-1min-1) Ea(K) B Tref 

PACET OH 8.2015E+03 -3.1099E+02 0.0 300.0 

PACET NO3 2.0689E+03 1.8599E+03 0.0 300.0 

HCHO OH 1.6699E+03 -6.4815E+02 2.0 300.0 

HCHO NO3 4.1377E+03 2.5161E+03 0.0 300.0 

BENZ OH 3.6944E+03 1.9978E+02 0.0 300.0 

BUTA OH 2.1871E+04 -4.4787E+02 0.0 300.0 

BUTA O3 4.8766E+01 2.5000E+03 0.0 300.0 

BUTA NO3 2.1871E+04 1.4890E+03 0.0 300.0 

SACET OH 8.2015E+03 -3.1099E+02 0.0 300.0 

SACET NO3 2.0689E+03 1.8599E+03 0.0 300.0 

SFORM OH 1.6699E+03 -6.4815E+02 2.0 300.0 

SFORM NO3 4.1377E+03 2.5161E+03 0.0 300.0 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-3

Figure 10-2. Example RTRAC chemistry input file for modeling toxic species with SAPRC99 as 

the host chemical mechanism. 

CAMx Version |VERSION5.0 

Description |Toxics for CRC project A-42 with SAPRC99 host mechanism 

No of gas tracers |14 

No of aero tracers |0 

No photolysis rxns |8 

No thermal rxns |28 

Gas Tracers 

No. Name P/S SNAM lower bnd H-law T-fact Diffrat Reactvty Rscale 

 1 mPACET PRIM 1.00E-12 6.30e+03 -6492. 1.56 0.0 1.0 

 2 mPFORM PRIM 1.00E-12 6.30e+03 -6492. 1.29 0.0 1.0 

 3 mBENZ PRIM 1.00E-12 1.80e-01 0. 2.08 0.0 1.0 

 4 mBUTA PRIM 1.00E-12 1.00e-02 0. 1.73 0.0 1.0 

 5 SACET SEC CCHO 1.00E-12 6.30e+03 -6492. 1.56 0.0 1.0 

 6 SFORM SEC HCHO 1.00E-12 6.30e+03 -6492. 1.29 0.0 1.0 

 7 oPACET PRIM 1.00E-12 6.30e+03 -6492. 1.56 0.0 1.0 

 8 oPFORM PRIM 1.00E-12 6.30e+03 -6492. 1.29 0.0 1.0 

 9 oBENZ PRIM 1.00E-12 1.80e-01 0. 2.08 0.0 1.0 

 10 oBUTA PRIM 1.00E-12 1.00e-02 0. 1.73 0.0 1.0 

 11 pPACET PRIM 1.00E-12 6.30e+03 -6492. 1.56 0.0 1.0 

 12 pPFORM PRIM 1.00E-12 6.30e+03 -6492. 1.29 0.0 1.0 

 13 pBENZ PRIM 1.00E-12 1.80e-01 0. 2.08 0.0 1.0 

 14 pBUTA PRIM 1.00E-12 1.00e-02 0. 1.73 0.0 1.0 

Photolysis reactions 

Toxic Rxn # Factor 

mPACET 131 1.0 

oPACET 131 1.0 

pPACET 131 1.0 

SACET 131 1.0 

mPFORM 123 1.6 

oPFORM 123 1.6 

pPFORM 123 1.6 

SFORM 123 1.6 

Thermal reactions and rates 

Toxic React A(ppm-1min-1) Ea(K) B Tref 

mPACET OH 8.2015E+03 -3.1099E+02 0.0 300.0 

mPACET NO3 2.0689E+03 1.8599E+03 0.0 300.0 

oPACET OH 8.2015E+03 -3.1099E+02 0.0 300.0 

oPACET NO3 2.0689E+03 1.8599E+03 0.0 300.0 

pPACET OH 8.2015E+03 -3.1099E+02 0.0 300.0 

pPACET NO3 2.0689E+03 1.8599E+03 0.0 300.0 

mPFORM OH 1.6699E+03 -6.4815E+02 2.0 300.0 

mPFORM NO3 4.1377E+03 2.5161E+03 0.0 300.0 

oPFORM OH 1.6699E+03 -6.4815E+02 2.0 300.0 

oPFORM NO3 4.1377E+03 2.5161E+03 0.0 300.0 

pPFORM OH 1.6699E+03 -6.4815E+02 2.0 300.0 

pPFORM NO3 4.1377E+03 2.5161E+03 0.0 300.0 

mBENZ OH 3.6944E+03 1.9978E+02 0.0 300.0 

oBENZ OH 3.6944E+03 1.9978E+02 0.0 300.0 

pBENZ OH 3.6944E+03 1.9978E+02 0.0 300.0 

mBUTA OH 2.1871E+04 -4.4787E+02 0.0 300.0 

mBUTA O3 4.8766E+01 2.5000E+03 0.0 300.0 

mBUTA NO3 2.1871E+04 1.4890E+03 0.0 300.0 

oBUTA OH 2.1871E+04 -4.4787E+02 0.0 300.0 

oBUTA O3 4.8766E+01 2.5000E+03 0.0 300.0 

oBUTA NO3 2.1871E+04 1.4890E+03 0.0 300.0 

pBUTA OH 2.1871E+04 -4.4787E+02 0.0 300.0 

pBUTA O3 4.8766E+01 2.5000E+03 0.0 300.0 

pBUTA NO3 2.1871E+04 1.4890E+03 0.0 300.0 

SACET OH 8.2015E+03 -3.1099E+02 0.0 300.0 

SACET NO3 2.0689E+03 1.8599E+03 0.0 300.0 

SFORM OH 1.6699E+03 -6.4815E+02 2.0 300.0 

SFORM NO3 4.1377E+03 2.5161E+03 0.0 300.0 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-4

tracers to be included in each analysis. The user is able to easily alter or expand the compounds 

as needed. 

For gas species, the required deposition parameters are the Henry’s Law constant and a 

diffusivity parameter (“Diffrat”), which is defined by the ratio their molecular weights to that of 

water, M g M H2O

/ . The deposition calculation for gases that react in plant tissue also needs a 

reactivity parameter that describes whether a species reacts when dissolved inside leaf tissues 

(Wesely, 1989). This parameter is intended for modeling the deposition of reactive species, such 

as ozone, and should be set to zero for air toxics. The deposition calculation for gasses also uses 

an “Rscale” factor to adjust the surface resistance. This is used to set the surface resistance to 

zero for strong acids (e.g., HNO3) and should be set to 1.0 for modeling air toxics.

The deposition calculation for particles requires the particle density and size associated with each 

species. The particle size is calculated as the geometric mean of the lower and upper cut points 

(see Figure 10-1). If possible, the particle size and density should be based on the measured size 

of particles associated with each RTRAC species (e.g., for a compound associated with soot 

particles, use a density and size representing the soot). 

The emission rates for the RTRAC species are provided by an extra set of emission files (surface 

and/or point source). Emissions of gases are in moles per time period (normally moles/hour), 

whereas particles are in micro-grams per time period. The emissions file format is the same as 

for a regular CAMx emissions file (i.e., the UAM-IV format), as described in Section 5. 

RTRAC Gas-Phase Chemistry 

The RTRAC chemistry calculations use a special chemistry module. Chemistry may be modeled 

for primary and secondary gas species, meaning that tracers can be formed from the decay of 

primary tracers or from the decay of host model species (e.g., secondary formaldehyde). The 

chemical decay of gaseous tracers can account for thermal reactions with ozone (O3), hydroxyl 

radical (OH) and nitrate radical (NO3), as well as photolysis. The algorithms are coded so that 

all chemical decay pathways are zero by default and only become non-zero if decay rates are 

explicitly specified in the input file (see Figure 10-1). The example RTRAC chemistry input file 

in Figure 10-1 shows how thermal reactions are specified by naming the tracer and oxidant, and 

providing reaction rate parameters. Note that the RTRAC chemical reaction rates depend on the 

rates and parameters provided in the RTRAC input file, and not the rates in the host model 

chemical mechanism; however the host model does provide the oxidizing species concentrations 

(i.e., O3, OH, and NO3). 

Thermal Reactions

Thermal reactions with oxidants are modeled as second order reactions: 

where R is the decay rate and the rate constant k is defined using the generalized temperature 

dependent rate expression: 

R = k [tracer][oxidant]
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-5

The Arrhenius factor (A) must be in units (ppm-1min-1), the activation energy (Ea) must be Kelvin 

and B is dimensionless. This is the same as expression 3 in Table 5-4a. Oxidant concentrations 

for the decay calculation are obtained from the CAMx photochemical simulation for each grid 

cell at each time step. RTRAC can be used with either the CB4, CB05, or SAPRC99 chemical 

mechanisms that are available in the current version of CAMx (see Section 3). Choosing 

between the core mechanisms will influence the RTRAC chemical decay rates by changing the 

oxidant concentrations in the host model. 

Photolysis

Photolysis reactions are specified by naming the tracer undergoing photolysis and providing a 

ratio of the tracer photolysis rate to one of the photolysis reactions in the host photochemical 

mechanism (i.e., CB4, CB05 or SAPRC99). For example, Figure 10-1 shows that there are both 

primary and secondary acetaldehyde reactive tracers (PACET and SACET) and the photolysis 

rate for both species is set equal to reaction 45. Reaction 45 in the CB4 mechanism is photolysis 

of ALD2, which is based on acetaldehyde. Figure 10-1 also shows that there are two types of 

formaldehyde in the MATES toxics modeling (PFORM and SFORM). Modeling the photolysis 

of formaldehyde with RTRAC is complicated by the fact that the CB4 mechanism includes two 

photolysis reactions for formaldehyde (reactions 38 and 39). The solution shown in Figure 10-1 

is to model formaldehyde photolysis as 1.6 times the rate of CB4 reaction 39. The CAMx host 

mechanisms are discussed in Section 3 and are defined by the ASCII chemistry parameters files 

and mechanism listings distributed with CAMx and available from the CAMx web page 

(www.camx.com). 

Secondary Species

RTRAC allows for formation of secondary/daughter products related to the chemical decay of 

one of the primary tracers. Secondary species can also be subject to chemical decay, just like 

primary species, if the user desires. Therefore, the RTRAC chemistry module allows decay 

reactions (thermal and photolysis) to be specified for secondary species using the same method 

as for primary species. In this manner, concentrations of secondary species are determined by 

the balance between chemical production and destruction. RTRAC requires that any secondary 

daughter tracers must be specified after their parent tracer in the chemistry parameters input file. 

RTRAC also allows tracers that track the secondary formation of any species that is included in 

the host chemical mechanism (CB4, CB05, or SAPRC99). For example, in Figure 10-1 the 

species SFORM is used to track secondary formaldehyde, and so SFORM is defined as a 

secondary species and identified with the host species FORM. This means that the RTRAC 

chemistry module will identify the chemical production of FORM in each grid cell at each time 

step, and add this chemical production to the SFORM tracer. Since SFORM is intended to track 

only secondary formaldehyde, no primary emissions should be included for SFORM. 











 −













=

T

T E

k A

a

B

exp

300
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-6

Example for Defining Chemical Rate Data

Reaction rate data for many gases can be found in rate constant compilations such as IUPAC 

(2001), JPL (2001) and Calvert et al. (2000, 2002). For the examples shown in Figures 10-1 and 

10-2, rate constants were obtained from a study by Harley and Cass (1995) that modeled detailed 

VOCs for Los Angeles. Photolysis rates were calculated using the Tropospheric Ultra-violet 

Visible (TUV) model (Madronich, 2002), which is available as a CAMx pre-processor. TUV 

includes photolysis data (cross-sections and quantum yields) for many species, and data for other 

species are included in IUPAC (2001), JPL (2001) and Calvert et al. (2002). 

Chemical Decay Rates for Near-Source Modeling

The RTRAC algorithm can output hourly chemical decay rates at user-specified locations for 

input to an external point-source dispersion model (e.g., a Gaussian plume/puff model) for 

subsequent sub-grid scale “fenceline” modeling. The objective is to allow the grid model 

(CAMx) to provide local decay rate information to any plume-scale model of the user’s choice. 

If subgrid-scale near-source modeling is to be conducted using an external model, then the user 

provides the locations of each of the target emission complexes using the CAMx Probing Tools 

receptor file input format. Figure 10-3 displays an example RTRAC receptor input file for the 

five point source complexes modeled by ENVIRON (2002) and Morris et al. (2003). At each 

grid cell, hourly decay rates for each RTRAC compound and every vertical layer are output and 

can then be interfaced with the user-selected plume model. 

Figure 10-3. Example RTRAC receptor input file identifying the grid cells with locations of point 

source complexes where hourly decay rates will be output for subgrid-scale point source 

modeling (see format for OSAT receptor file in Table 6-2). 

RTRAC Source-Receptor Relationships and Double Counting 

Separate families of reactive tracer compounds can be simulated by providing separate emission 

inputs similarly to OSAT/PSAT (see Section 6). Tracking separate families of RTRAC tracers 

allows for source apportionment and can be used to avoid double counting when an external 

plume model is used to obtain near-source impacts. For example, in the RTRAC air toxics 

example application discussed previously (ENVIRON, 2002; Morris et al., 2003), separate air 

toxic emission inputs were provided to source apportion on-road mobile sources, area plus nonroad sources, point sources, and secondarily formed species. Furthermore, separate families of 

air toxic tracers were also specified for each point source complex to be modeled by the external 

SINGLE CELL Test Cell 1 42 44 

SINGLE CELL Test Cell 1 41 36 

SINGLE CELL Test Cell 1 39 36 

SINGLE CELL Test Cell 1 50 43 

SINGLE CELL Test Cell 1 34 48
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-7

plume model, so that total concentrations could include the local point source impacts (plume 

model) plus the regional contributions from all other sources (CAMx RTRAC). 

10.2 DESCRIPTION OF RTCMC 

Like RTRAC, the purpose of RTCMC is to add tracer species to a CAMx “core model” 

simulation and have the tracers undergo chemical changes that depend, in part, upon the 

evolution of CAMx core model species. The RTCMC approach differs from the original 

RTRAC approach by allowing arbitrarily complex chemical reaction schemes, but it is exactly 

like RTRAC in every other respect. The current implementation of RTCMC is for gas-phase 

reactions, i.e., gas-phase tracers reacting with each other and/or gas-phase host model species. 

The core model’s photochemical mechanisms (CB4, CB05, and SAPRC99) remain intact and 

separate from the reactive tracer chemistry. 

RTCMC Gas-Phase Chemistry 

The RTCMC allows users to input, in a text-based (ASCII) format, a set of chemical reactions 

(mechanism) for certain target species to be treated by the CAMx Reactive Tracer Probing Tool. 

RTCMC is an extension of the original RTRAC algorithm that reads (and solves) a completely 

independent, user-defined chemical mechanism for reactive tracers that can utilize 

concentrations of any photochemical species from the core model mechanism. Upon startup, 

RTCMC compiles information on the chemical mechanism and configures the reactive tracer 

chemistry solver. During the model simulation, the RTCMC chemistry solver receives ambient 

pollutant information from the core photochemical mechanism and uses this to calculate the 

evolution of RTRAC species. 

The format of the RTCMC input file is essentially the same as the “IMC” input file format of the 

SCICHEM Lagrangian puff model (EPRI, 2000). An example IMC format file is shown in 

Figure 10-4. There are four sections in an IMC file that are identified by a keyword at the start 

of each section, as follows: 

#Control Configuration information identified by keywords 

#Species Names of chemical species and associated data 

#Table Photolysis rate data for any photolytic reactions

#Equations Chemical reactions and thermal rate constants 

The IMC file uses space-delimited ASCII format. Leading white space at the start of any line 

will be ignored. CAMx reads the IMC file as case insensitive. 

The hash symbol (#) before each section keyword marks the start of a section and should be 

reserved for this purpose. The four sections should appear in the order shown above. The only 

section that may be unnecessary in some cases (i.e., if there are no photolytic reactions) is the 

#Table section and guidance on handling this case is provided below. 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-8

Figure 10-4. Example RTCMC chemistry input file. 

 

The Control Section

According to the SCICHEM documentation, the #Control section of the IMC file must always 

have at least three lines, as follows: 

#CONTROL 

 &CONTROL 

 &END 

The first line is the keyword identifying the control section. The second and third lines are 

additional keywords denoting the start and end of the control section. Note, however, that 

CAMx ignores the &CONTROL and &END lines. 

One or more control options may be specified using keywords, inserted one per line, ahead of the 

closing &END line, like this: 

#CONTROL 

 &CONTROL 

 Keyword = ‘option’ 

 Keyword = ‘option’ 

 &END

The keywords used by CAMx and SCICHEM are listed in Table 10-1 and are case insensitive. 

Not all keywords are used by both models, and CAMx will ignore any non-recognized keyword. 

A “=” symbol must separate each keyword and option. The option must be enclosed within 

single quotes. In practice, only the first six letters of each keyword and the first three letters of

each option are considered and you may abbreviate accordingly (i.e., keywor = ‘opt’). 

#Control 

 rate_species_units = 'ppm' 

 rate_time_units = 'min' 

 solver = 'dlsode' 

 Jacobian = 'numeric' 

#Species, Type, Ambient, Tolerance, deposition vel, wet scav 

O3 A 1.0 1.0E-12 0.0 0.0 

OH A 1.0 1.0E-12 0.0 0.0 

ATRAC F 1.0 1.0E-12 0.010 0.0 

BTRAC F 1.0 1.0E-12 0.001 0.0 

CTRAC F 1.0 1.0E-12 0.020 0.0 

DTRAC F 1.0 1.0E-12 0.001 0.0 

ETRAC F 1.0 1.0E-12 0.030 0.0 

FTRAC F 1.0 1.0E-12 0.001 0.0 

#Table 

 0 0. 15. 30. 45. 60. 75. 

 80. 86. 87. 88. 

 1 4.1590E-04 4.0600E-04 3.7540E-04 3.27E-04 2.6040E-04 9.4990E-05 

2.9930E-05 4.8590E-06 8.3030E-08 1.0000E-09 

#Equations 

 1 [ATRAC] -> (2.0)[BTRAC] ; 0 0.000E-00 

 2 (1.5)[CTRAC] + [OH] -> (0.5)[DTRAC] ; 1 4.2000E+04 

 3 [ETRAC] + [O3] -> [FTRAC] ; 1 1.8000E-02 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-9

 

Table 10-1. Keywords, options and default values for the Control section of the IMC file. 

Keyword 

Used by 

SCICHEM 

Used by 

CAMx Options Allowed by CAMx 

Ambient file ● n/a 

Species_units ● n/a 

Emission_units ● n/a 

Rate_species_units ● ● 

molecules/cm3 (default) 

ppm 

Rate_time_units ● ● 

seconds (default) 

minutes 

hours 

Solver ● 

DLSODE (default) 

SLSODE 

Rosenbrock 

Rtol ● ● Real number (default = 1.0E-5) 

Atol ● Real number (default = 1.0E-18) 

Jacobian ● 

Numeric (default) 

Algebraic 

All CAMx recognized keywords have a default option that will be used if the keyword is 

omitted, meaning that the CAMx RTCMC may be run without specifying any keywords 

provided that that all other input data (e.g., rate constants) are consistent with the defaults. The 

allowed keyword options in Table 10-1 are discussed below: 

Rate_species_units 

The concentration units for thermal rate constant expressions. 

Rate_time_units 

The time units for photolysis and thermal rate constant expressions. 

Solver 

The name of the numerical integrator to be used as the chemistry solver. SLSODE and 

DLSODE are, respectively, the single and double precision versions of the Livermore 

Solver for Ordinary Differential Equations (Hindmarsh 1980). The Rosenbrock solver is 

the double precision RODAS solver (Hairer and Wanner, 1991). 

Rtol 

The relative error tolerance (convergence criterion) employed for all chemical species by 

the chemistry solver. 

Atol 

The absolute error tolerance (convergence criterion) employed for all chemical species by 

the chemistry solver. CAMx does not use species-specific Atol values that may appear 

in the species section, as discussed below. 

Jacobian 

The chemistry solvers employ a Jacobian matrix of first-order derivatives of each 

chemical species with respect to all species. The Jacobian matrix is constructed 

automatically by the RTCMC. This option controls whether the Jacobian is constructed 

algebraically or numerically. Both options may be used with the double precision solvers 

and numeric may be more efficient. The algebraic option is strongly recommended for 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-10

the single precision SLSODE solver (because single precision may be inadequate for 

constructing a numeric Jacobian by finite difference). 

Concentration Units 

CAMx does not use the Species_units or Emission_units keywords and will ignore 

them if they are present. CAMx will output RTCMC species average concentrations in ppm 

units. Emissions of RTCMC species must be provided in moles/hour. 

Setting Error Tolerances 

All three RTCMC chemistry solvers use the Rtol and Atol parameters specified in the control 

section to manage errors in predicted concentrations. CAMx does not use the species-specific 

Atol values that may appear in the species section because it is difficult to select reliable Atol

values for each species. The error (err) in the predicted concentration (con) for species i should 

be roughly less than: 

err(i) = rtol × con(i) + atol 

The combined Rtol and Atol determine accuracy. Setting Atol to zero will result in pure 

relative error control. Relative error control has the advantage of being easily understood (the 

errors should be smaller than X percent) but suffers the disadvantage of excessive computational 

resources that may be expended to manage errors in species concentrations that are essentially 

zero. Note that RTCMC sets a concentration floor of 1.0E-16 ppm. 

The default settings for Rtol and Atol listed in Table 10-1 should be generally applicable 

because they are conservative and effectively result in pure relative error control. We 

recommend against setting Rtol greater than 0.001. Appropriate settings for Atol depend 

upon the magnitude of concentration predictions and the need for accurate predictions in high vs. 

low concentration areas (e.g., plume centerline vs. out of plume). 

Do not request infeasible accuracy from single precision SLSODE by setting Rtol and Atol

smaller than about 1.0E-7. 

The Species Section

The species section of the IMC file lists chemical species and associated data. All chemical 

species referred to in the equation section must appear in the species section. Extra species may 

appear in the species section, but including numerous extra species may cause a run-time error 

by exceeding the memory available for storing species information (if this happens, delete some 

of the unused species from the species section). 

The first line is the keyword identifying the species section. The following information must be 

provided for each listed species: 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-11

Name 

Species names may be up to 8 characters and must start with a letter. They are case 

insensitive. Accurate names are important because other CAMx input data (e.g., 

emissions, boundary conditions) will be matched to RTRAC species by name. 

Type 

There are four permissible species types identified by first letter: Ambient (A), Fast (F), 

Slow (S), and Equilibrium (E). Setting the species type is discussed in more detail 

below. 

Ambient 

The ambient value is not used by CAMx, but is used by SCICHEM. Provide a real 

number (e.g., 0.0). 

Atol 

Species specific error tolerances are not used by CAMx, but are used by SCICHEM. 

Provide a real number (e.g., 0.0). 

Dep 

The species deposition velocity in m/s. This deposition velocity will be used for all land 

surface types, which is a simplification compared to the CAMx dry deposition scheme. 

Provide a real number (e.g., 0.0). 

Wet Scav 

The wet scavenging coefficient is not used by CAMx. For SCICHEM, this is a washout 

ratio. CAMx does not use the washout ratio because this approach is incompatible with 

the CAMx wet deposition algorithms. Provide a real number (e.g., 0.0). 

MW 

The molecular weight is not needed by CAMx. Provide a real number (e.g., 1.0). 

Choosing the Species Type 

The Type for each RTCMC species should be set according to: (a) whether the species 

concentration should be obtained from the core model or modeled using the RTCMC; and (b) the 

most accurate and efficient numerical method for performing chemistry within RTCMC. 

All species to be obtained from the core model (e.g., O3, OH, NO, NO2, H2O, M, O2) must be set 

to type Ambient. This rule will be enforced by CAMx and, for example, the species O3 must 

be set to type A, because it is part of all the core chemical mechanisms (CB4, CB05, SAPRC99). 

Species that are solved by the RTCMC may be type F, S or E. The recommended default type 

is F (fast) in which case chemistry will be performed using the selected chemistry solver (e.g., 

DLSODE). Species that undergo slow chemical change (lifetime of hours or longer) may be set 

to type S (slow) with potential gain in efficiency but some loss in accuracy. Species that 

undergo extremely rapid chemical change (lifetime smaller than a second) may be set to type E

(equilibrium) and solved using a steady-state approximation with some gain in efficiency but 

some loss in accuracy. The Rosenbrock solver does not work well with species types S or E. 

Equilibrium species may be used effectively with the single precision SLSODE solver to avoid 

the need for double precision. You should use types S or E with caution and evaluate both 

computational speed and concentration accuracy by comparing against results with using type F. 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-12

The Table Section

The table section of the IMC file provides photolysis rates for any photolytic reactions in the 

RTCMC mechanism. It must contain at least two lines: 

#Table 

0 zenith1, zenith2, zenith3, ... 

The first line is the keyword identifying the table section. The second line must begin with 0 

(zero) followed by a list of space-delimited zenith angles (in degrees) starting with zero degrees 

and ascending to the largest angle. If the largest zenith angle specified is less than 90 degrees a 

value of 90 degrees is implicitly added to the list. By default, up to 15 zenith angles are allowed 

(this may be changed as described under adjustable parameters, below). If the final zenith angle 

is not 90 degrees, no more than 14 angles should be listed to allow the 15th angle to be implicitly 

set to 90 degrees. 

If the reaction mechanism has no photolytic reactions, include just the first two lines (keyword 

followed by zenith angles) in the table section. If the reaction mechanism includes photolytic 

reactions, list them one reaction per space-delimited line after the zenith angles: 

reaction_ID, rate1, rate2, rate3, ... 

The reaction_ID must be the integer identification number of the photolytic reaction 

followed by the photolysis rate at each zenith angle, from zero to the largest angle. Photolysis 

reactions are first order and have rate units of reciprocal time to be provided in the 

Rate_time_units specified in the control section of the IMC file. A photolysis rate of zero 

is implicitly assumed at 90 degrees unless you specify otherwise. 

The Equations Section

The equations section of the IMC file lists the chemical reactions and rate constants for the 

RTCMC reaction mechanism and must contain at least two lines: 

#Equations 

reaction_ID [Reactants] > (Stoichiometry) [Products] ; Rate_Constant 

The first line is the keyword identifying the equations section and must be followed by at least 

one reaction line. Reaction lines list reactions and rate constants and are delimited by white 

space and separators. The reaction_ID and the Reactants must be separated by white 

space. The Reactants and Products must be separated by a right arrow symbol (the right 

arrow may be preceded by characters, e.g., => or −>). The Products and the 

Rate_Constant must be separated by a semi-colon. 

The reaction_ID must be an integer value that uniquely identifies each reaction. Reactions 

identifiers need not be in order or continuous. 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-13

The name of Reactants and Products must be enclosed within square brackets, begin with 

a letter, and not exceed 8 characters in length. All species names used in the equations section 

must also appear in the species section. Zero to three reactants are allowed. Zero to 20 products 

are allowed (the maximum is a user adjustable parameter). Reactant and product names may be 

preceded by a stoichiometric coefficient enclosed within round brackets. If the stoichiometric 

coefficient is omitted it is assumed to be unity. 

Rate constants are specified using SCICHEM conventions and must be in the units specified by 

the keywords Rate_species_units and Rate_time_units in the control section (the 

defaults are molecules cm-3 and seconds, respectively). SCICHEM supports numerous rate 

constant expression types and CAMx should interpret all of them correctly, although not all have 

been thoroughly tested. Table 10-2 defines a sub-set of the SCICHEM rate constant expression 

types that are recommended for use with CAMx. The format for specifying rate expressions is 

the integer expression type followed by a list of the numerical values required by that expression 

type. It is important that rate expressions are defined in units that are consistent with the reaction 

order, and Table 10-3 defines how the reaction order and rate constant unit dimensions may be 

determined. 

The CAMx output “diag” file lists diagnostic information on the mechanism and rate constant 

expressions read by from the IMC file. You should review this diagnostic output to ensure that 

CAMx correctly read and configured the RTCMC chemistry mechanism. 

10.3 REACTIVE TRACERS IN IRON PiG 

RTRAC/RTCMC calculations for emissions and chemistry have been integrated into the IRON 

PiG algorithms. There are two ways in which RTRAC tracers may enter a PiG plume: as 

primary emissions from specifically flagged sources within the RTRAC point source file, or by 

formation of secondary species from decay of primary plume emissions. There is no entrainment 

of tracers from the grid to the plume as this is likely to result in negative tracer concentrations, 

especially if the entrained tracer is a secondary product of a host model species (e.g., secondary 

formaldehyde). Tracers are assumed to have negligible impact on PiG puff chemistry or oxidant 

levels. If the tracer concentration in the plume is high enough to enhance or suppress the plume 

oxidant levels, then the photochemical impacts of the tracer can be accounted for by separately 

adding the tracer emissions into the host model lumped emissions; e.g., for tracing high 

concentrations of propene and butene in a plume, one would track the propene/butene 

concentrations using RTRAC tracers but also add CB4-OLE or SAPRC99-OLE1 emissions to 

the plume to account for the oxidant impacts. 

RTRAC checks to ensure that it is reading its own input point source file. RTRAC and host 

model point source files must have the same number of sources in the same order; however, the 

list of species on each file may be different, and the sources flagged to receive the PiG treatment 

may vary. A pre-processor program was coded to help prepare consistent RTRAC and host 

model point source files. 

 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-14

Table 10-2a. Recommended SCICHEM rate constant expression types for use in CAMx. 

Expression 

Type Description Expression 

0 Photolysis k = 0 

1 Constant 0

k = k

2 General temperature 

dependence 

c (B T )

k AT e

− /

=

3 Troe-type temperature and 

pressure dependence 

GF

k M k

k M k

















+

=

∞ 1 [ /]

[ ]

0

0

B

k = AT

0

D k = CT∞

F = 6.0

[ ( )]

1

2

0

1 log [ /]

−

∞













G = + k M k

8 Equilibrium with a previously 

defined reaction (kref) 

(B T )

ref k k Ae

/

=

13 Lindemann - Hinshelwood 

as used for OH + HNO3 

3 2

3

0

1 [ /}

[ ]

k M k

k M k k

+

= +

(B T )

k Ae

/

0 =

(D T )

k Ce

/

2 =

(F T )

k E e

/

3 =

7 

Simple pressure 

dependence used for OH + 

CO 

k k (1 6.0 P) = 0 +

 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-15

Table 10-2b. Parameters required by SCICHEM rate constant expression types. 

Expression

Type Parameters 

1 2 3 4 5 6 

0 0 

1 ko 

2 A B C 

3 A B C D 

8 kref A B 

13 A B C D E F 

7 ko 

Table 10-3. Determining the reaction order and consequent unit dimensions for rate constants. 

Number of 

Reactants 

Reaction Order Concentration Unit

Dimension 

Time Unit

Dimension 

0 Zero None Time-1

1 First None Time-1

2 Second Concentration-1 Time-1

3 Third Concentration-2 Time-1

Tracers released from PiG sources decay according to the oxidant and photolytic environment of 

the plume using user-supplied chemical rate parameters (as described earlier). Oxidant 

concentrations for the decay calculation are obtained from the CAMx PiG incremental 

photochemical simulation for each puff at each time step. RTRAC tracers in each puff reactor 

are updated based on the total oxidant concentrations for the reactor, i.e., puff increment plus 

puff ambient/background. RTRAC enforces a rule that no secondary tracer formation from the 

decay of host model species are allowed if IRON PiG is active (e.g., no secondary formaldehyde 

tracer formation is allowed with IRON PiG). Secondary tracer production from primary tracer 

decay is allowed. 

Tracers are transferred from the PiG to the grid using the same approach as for any other host 

model species (see Section 4). Tracer concentrations at any point are the superposition of the 

grid concentration plus any collocated PiG puffs. 

Integration of RTRAC Puff Sampling 

RTRAC optionally employs surface-layer IRON puff sampling of tracers on a user-defined 

sampling grid (see Section 4). Sampling grids are entirely passive, and intended to provide a 

display of the reactive tracer plume concentrations at scales much smaller than typically used for 

the finest computational grids (i.e., <1 km). 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-16

Figure 10-5. Example RTRAC tracer plume emanating from a large point source and displayed 

on a surface sampling grid with 1-km grid spacing. The figure illustrates the entire extent of the 

sampling grid. 

Figure 10-5 shows an example plume of hypothetical tracer “TRAC1” emitted from a point 

source in the center of the image as displayed on a 1-km sampling grid. The finest core model 

computational mesh contains 4-km grid spacing and covers a much broader area than shown in 

the figure. 

10.4 RUNNING CAMX WITH REACTIVE TRACERS 

CAMx Control File 

RTRAC is invoked similarly to the other Probing Tools within the CAMx control file. In the 

&CAMx_Control namelist module, the variable Probing_Tool must be set to “RTRAC” or 

“RTCMC”. An additional namelist module called &RT_Control must then be provided in the 

control file to configure the RTRAC portion of the model. The additional namelist module is 

described below. The order of the variables follows the template available with the source code. 

Figure 10-6 provides an example of the RTRAC control module. 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-17

Description of RTRAC Control in the CAMx Run Control File 

&RT_Control Label for the Probing Tool namelist module that configures the 

RTRAC option; it must begin in column 2 

& Flag ending a namelist; it must be in column 2

RT_File_Root Character root output path/filename 

RT_Initial_Conditions Character input master grid RTRAC initial conditions 

path/filename (optional, ignored if Restart=TRUE) 

RT_Boundary_Conditions Character input master grid RTRAC boundary conditions 

path/filename (optional) 

RT_Master_Restart Character input master grid RTRAC restart path/filename 

(ignored if Restart=FALSE) 

RT_Nested_Restart Character input nested grid RTRAC restart path/filename 

(ignored if Restart=FALSE or Number_of_Grids=1) 

 

RT_Chemistry_Parameters Character input RTRAC chemistry parameters path/filename, or 

RTCMC IMC chemistry definition path/filename 

RT_Receptor_Definitions Character input RTRAC receptor definition path/filename 

(optional) 

RT_Point_Sources Character input RTRAC elevated point source emissions 

path/filename (optional, ignored if 

Point_Emissions=FALSE) 

RT_Emiss_Grid Character array (by CAMx grid) input RTRAC gridded

emissions path/filename (optional, ignored if 

Gridded_Emissions=FALSE) 

RT_PiG_Sample Logical sampling grid flag for RTRAC IRON PiG output; 

sampling grids are defined in the main &CAMx_Control

namelist (TRUE=sampling grid output will be generated, 

FALSE=sampling grid output will not be generated) 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-18

Figure 10-6. Example input of RTRAC options and filenames within the CAMx control file. 

As with the output for the host model and other Probing Tools, a “root” file name is specified 

and suffixes are added depending upon the type of output produced. A separate root name for 

RTRAC (and other Probing Tools) allows the user to direct the output to a completely different 

path. RTRAC writes several output files that are in Fortran binary format, as described in 

Section 5. These include the master and nested grid tracer instantaneous concentration files 

(.rt.inst and .rt.finst), the grid-specific surface tracer average concentration file 

(.rt.surf.grdnn). These files are written in the same format as for the regular model 

species described in Section 5. 

The “RT_Chemistry_Parameter” namelist variable specifies the path/filename of either 

the RTRAC chemistry parameters file or the RTCMC IMC chemistry definition file. The choice 

of which type of file format is read is set according the main “Probing_Tool” variable (i.e., 

RTRAC or RTCMC). 

RTRAC/IRON PiG sampling grids are invoked in the RTRAC namelist by setting a logical flag. 

If set to TRUE, the user must provide the number of sampling grids and the grid parameters of 

each in the main &CAMx_Control namelist. Sampling grids are set identically to the way 

nested grids are specified for the host model, with one exception: there are no vertical levels to 

define (sampling grids are currently only 2-D surface fields). The same rules that apply for the 

specification of nested grids holds for the specification of all sampling grids (see Sections 2, 4, 

and 5 of the User’s Guide). The “mesh factor” sets the resolution or cell size of the sampling 

grid relative to the master grid. The CAMx diagnostic output file provides information on the 

location and size of each sampling grid to help ensure proper setup. 

&RT_Control 

 RT_File_Root = 'CAMx4.test.020614', 

 RT_Initial_Conditions = ' ', 

 RT_Boundary_Conditions = ' ', 

 RT_Master_Restart = 'CAMx4.test.020613.rt.inst', 

 RT_Nested_Restart = 'CAMx4.test.020613.rt.finst', 

 RT_Chemistry_Parameters = 'CAMx4.chemparam.rtrac_test', 

 RT_Receptor_Definitions = 'receptor.rtrac.test', 

 RT_Point_Sources = 'pt.rtrac.test', 

 RT_Emiss_Grid(1) = 'emiss.rtrac.36km', 

 RT_Emiss_Grid(2) = 'emiss.rtrac.12km', 

 RT_Emiss_Grid(3) = 'emiss.rtrac.04km', 

 RT_PiG_Sample = .true., 

 

 & 
CAMx v5.30 User’s Guide, December 2010 

Reactive Tracers 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_10_RTRAC.docx 10-19

User Adjustable Parameters 

Once the RTRAC/RTCMC chemistry parameters/definition file is established, the user should be 

sure that a sufficient allocation of memory is provided for this Probing Tool. This is done by 

examining the main Probing Tool parameter and common block file in 

/Includes/camx.prm. The parameter MXTRSP should be set to the total number of species 

defined in the chemistry parameters file. If sampling grids are to be used, the user should ensure 

that sufficient memory is available to define the size of sampling grid arrays. This is set in 

/Includes/camx.prm. 

User adjustable parameters for RTCMC are set in the CAMx include file 

/Includes/rtcmcchm.inc. If an error is encountered at model start up because one of 

these RTCMC parameter has been exceeded, consult the list of parameters in Table 10-4 and 

then change the parameter appropriately in the rtcmcchm.inc include file. Rebuild the 

CAMx executable (we recommend performing a “make clean” before making a new CAMx 

executable) after changing any RTCMC parameter. 

Table 10-4. RTCMC parameters default settings in the Includes/rtcmcchm.inc include 

file. 

Name Description Default

MXRX maximum number of RTCMC reactions 20 

MXPHOT maximum number of photolysis reactions 10 

MXZEN maximum number of photolysis reaction zenith angles 15 

MXRCT Maximum number of reactants in each reaction 3 

MXPRD maximum number of products in each reaction 20 

MXEQM maximum number of equilibrium species 5 

MXSLO maximum number of slow species 25 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-1

11. THE CAMx MODELING SYSTEM

CAMx comprises the core component of an overall air quality modeling system, as illustrated in 

Figure 11-1. CAMx inputs are developed using independent third-party models and processing 

tools that characterize meteorology, emissions, and various other environmental conditions (land 

cover, radiative/photolysis properties, and initial/boundary conditions). Interface programs are 

needed to translate the products of each of these models/processors into the specific input fields 

and formats required by CAMx. After the air quality simulation is completed, additional 

programs are used to post-process the concentration fields, develop model performance statistics 

and measures, manipulate Probing Tool output into various reportable formats, and further 

translate raw results into forms necessary for regulatory purposes. While third-party 

visualization software, meteorological models, and emission processors are not distributed with 

CAMx, ENVIRON does provide many of the necessary interface programs and post-processors 

on the CAMx web site (www.camx.com). A brief description of each of these is provided at the 

end of this section. 

Figure 11-1. Schematic diagram of the CAMx modeling system. See Table 5-1 for a detailed 

list of specific model input requirements for the five major data classes shown at the top of the 

figure. Certain pre- and post-processor programs shown in the figure are described in this 

section. Third-party models, processors, and visualization software are not described in this 

User’s Guide and are not distributed with CAMx. 

Data

Models &

Pre-processors

Interface

Programs

Core Model

Post-processors

File Formatting Performance Regulatory Probing Tools

Emissions Meteorology Photolysis Geographic Air Quality

SMOKE MM5

TUV

CAMx

EPS3

CONCEPT

EMS-95

RAMS

WRF

PiGSET,

WINDOW,

PREPBIOE

MM5CAMx,

RAMSCAMx,

WRFCAMx

Ozone Column,

Haze Opacity

Landcover maps

Emission Inventory Analyses, Measurements

Measurements,

Topographic Data

ICBCPREP

BNDEXT

AHOMAP

CAMxTRCT

CAMx2IOAPI

AVGDIF

CAMxPOST

EPASTAT

MATS PA Tools

OSAT Browser

Drought Index maps,

Snow Cover maps

GEOSCHEM,

MOZART

Global Model 

Interface Programs
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-2

11.1 CAMx PROGRAM STRUCTURE

The core CAMx model is written in Fortran 90, but includes some utilities written in C to 

interface with MPI and HDF5. The program is highly modular to allow for easy substitution of 

alternate routines for specific processes. Subroutines are well documented to include such 

information as the tasks performed, the input/output arguments, a history of modifications, etc. 

The source code is arranged in several directories, grouped according to function. The main 

source directory contains release notes, the license, the “Makefile” compile utility, and a control 

file namelist template, while sub-directories contain core model and ancillary routines according 

to the following: 

CAMx/ Source code for the main driver routine CAMx.f and core model routines. 

CF_AERO/ Source code for inorganic aerosol chemistry (aqueous and thermodynamic 

partitioning) for the 2-mode CF scheme. 

 

 CMC/ Source code for the gas-phase chemical mechanism routines. 

CMU_AERO/ Source code for inorganic aerosol chemistry (aqueous and thermodynamic 

partitioning) for the multiple size CMU scheme. 

 DDM/ Source code for the DDM Probing Tool, consisting of I/O and core 

routines that are unique to DDM/HDDM. 

HG/ Source code for the mercury chemistry routines. 

Includes/ F90 “include” files, consisting of program parameters and memory 

common blocks. 

IO_bin/ Source code for Fortran binary (unformatted) I/O. 

IO_hdf/ Source code for HDF5 output format. 

Mod_src/ Source code for core model F90 modules. 

MPI/ Source code for routines specific to the MPI implementation. 

 OSAT/ Source code for the OSAT/PSAT Probing Tools, consisting of I/O and 

core routines that are unique to OSAT and PSAT. 

PA/ Source code for the Process Analysis Probing Tool, consisting of I/O and 

core routines that are unique to PA. 

PiG/ Source code for the Plume-in-Grid sub-model, consisting of I/O and core 

routines that are unique to PiG. 

RTRAC/ Source code for the Reactive Tracer Probing Tool, consisting of I/O and 

core routines that are unique to RTRAC/RTCMC. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-3

SOAP/ Source code for secondary organic aerosol thermodynamic partitioning. 

Memory Management

All of the model’s global data structures are dynamically allocated during the model setup. This 

alleviates the need to customize the CAMx parameters file (Includes/camx.prm) for a 

particular application as required in previous versions of CAMx. The data necessary to allocate 

memory space for a given grid configuration are read from the CAMx control file (see Section 

5.1). However, we discovered in our performance comparisons that certain fortran compilers 

exhibit a significant speed/performance slowdown when local data array structures within 

subroutines are dynamically allocated, which is as a result of considerable overhead in allocating 

and de-allocating these local arrays each time the subroutine is called. To alleviate this compiler 

dependence on speed performance, CAMx continues to utilize some basic parameters to 

statically allocate local arrays in low-level subroutines. All of these parameters are defined in 

the camx.prm file. The distribution version of this “include” file sets key array parameters to 

default values that should be sufficiently large to accommodate most applications (see Table 11-

1 for a description of parameters and their default values). However, you may want to customize 

these values to ensure that they are large enough to accommodate all of your model 

configurations, or to exactly match your specific application, thus preventing wasted memory. 

If any parameter is set to a value that is too small to support your application the model will stop, 

displaying an informative error message. 

Table 11-1. Parameters and their defaults in camx.prm used to statically dimension local 

arrays in low-level subroutines. 

Parameter Name Description 

Default 

Value 

MXCELLS Number of cells in X/Y direction for any grid 200 

MXLAYER Number of layers 28 

MXSPEC 

Number of species (could be number of radicals, number of 

input species, or number of model species) 125 

MXREACT 

Number of reactions (depends on the mechanism; see the 

user's guide for the value for each mechanism) 217 

MXGRID Number of grids 10 

MXPTSRC Number of point sources 100000 

MXTRSP Number of Probing Tool tracer species 1 

MXPIG Number of PiG puffs 50000 

MXSAMPLE Number of PiG sampling grids 1 

MXCOLSMP Number of PiG sampling grid columns 1 

MXROWSMP Number of PiG sampling grid rows 1 

To conserve memory, default values of 1 are set for Probing Tool tracers, PiG sampling grids, 

and sampling grid dimensions. These must be increased accordingly if Probing Tools or 

sampling grids are to be used. All of the parameters in the table above can be determined before 

starting a simulation except for MXPIG. A value of 10,000 is usually sufficient for most

applications in which PiG is used; set this parameter to 1 if PiG is not used to conserve memory. 

If this parameter is exceeded during a simulation, the model will halt. If this happens, simply 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-4

increase MXPIG, recompile the model executable, and restart the simulation. The other 

parameters in camx.prm will not normally need to be changed and are not discussed further. 

11.2 COMPILING CAMx 

A single “Makefile” script is provided in the main source directory. The Makefile will compile 

the CAMx source code into an executable program for a number of computer platforms, 

including: Compaq/DEC, Sun, SGI, HP, IBM, Linux PC (Portland Group and Intel compilers) 

and Macintosh OSX (Absoft compiler). All gas-phase chemistry mechanisms and solvers are 

compiled together into the model executable from the /CMC sub-directory. The choice of which 

chemistry mechanism and solver to use is selected at model run-time as defined in the chemistry 

parameters and run control files, respectively. Similarly, all OSAT, PSAT, DDM, Process 

Analysis, and RTRAC source code is compiled into the model executable from their respective 

sub-directories. The choice of which (or none) of these “Probing Tools” to use is selected at 

model run-time in the run control file. 

CAMx is compiled by issuing the following command at a shell prompt within the main source 

directory: 

make platform <DOMAIN=domain_name> <MPI=true> <HDF=true> 

where the text within the brackets “<>” is optional, and platform is one of the following: 

dec 

 sun 

 hp 

 ibm 

 sgi or sgiomp 

 pg_linux or pg_linuxomp (Portland Group compiler for Linux) 

i_linux or i_linuxomp (Intel compiler for Linux) 

ab_linux (Absoft compiler for Macintosh OSX) 

These keywords inform the Makefile of the type of machine being used to compile and run the 

model, so that the Makefile can invoke the proper compiler-specific commands and flags. The 

“omp” platform options are available for only three compilers: SGI, Portland Group, and 

Intel. If an OMP platform is not specified then CAMx will not be able to run with OMP 

parallelization. 

The optional domain_name allows the CAMx executable program to be labeled for a specific 

memory configuration as defined within the CAMx parameters file (camx.prm) described 

above. The Makefile will search for a CAMx parameters file in the /Includes sub-directory 

called 

camx.prm.domain_name.

If the variable “DOMAIN” is not defined on the Makefile command line, the Makefile will 

compile CAMx using the default parameters file, camx.prm.v5.20. This feature is retained 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-5

for legacy purposes. Since it is no longer necessary to configure the grid parameters specifically 

for your modeling domain, the default parameters file distributed with the source code should be 

sufficient for your application. However, you may want to customize some applications, for 

example to configure Probing Tools, and it is convenient to be able to distinguish between these 

executables. 

The optional MPI=true flag will compile CAMx to utilize MPI parallel processing. This 

requires that the MPICH package has been installed and built on the machine that is running this 

Makefile script and compiling CAMx. You should check that the MPI_INST variable is 

correctly set to your system's MPICH installation path in the standard CAMx Makefile, as well 

as the Makefile in the MPI/util directory. CAMx supports both MPICH1 and MPICH2. If the 

MPI flag is not set on the command line, the Makefile script will ignore the MPICH library and 

CAMx will not be able to run with MPI parallelization. Currently, the Makefile only supports 

building an MPI version of CAMx using the Portland Group and Intel Fortran90 compilers.

The optional HDF=true flag will compile CAMx to include HDF5 I/O libraries. This requires 

that HDF5 libraries have been installed and built on the machine that is running this Makefile 

script and compiling CAMx. You should check that the variables HDF_LIB and HDF_INC in 

the Makefile are set correctly. If the HDF flag is not set on the command line, the Makefile script 

will ignore the HDF libraries and CAMx will not be able to write HDF5 files. 

The Makefile will generate a CAMx executable program named 

CAMx.<domain_name>.MPI_configuration.platform

which will reside in the main source directory. The variable MPI_configuration will be set 

to either MPI or noMPI, depending on how the MPI flag was set on the Makefile command line. 

For example, a default compilation using the Portland Group compiler wil result in an executable 

named CAMx.v5.20.noMPI.pg_linux. If you need to rebuild CAMx using different 

Makefile arguments we recommend typing “make clean” between builds. Make clean will 

delete all existing object files forcing a complete re-build. 

Notes on Compiling for MPI 

Currently, the Makefile provided with the CAMx source code only supports building an MPI 

version of CAMx using the Portland Group compiler or the Intel compiler. The steps needed to 

compile CAMx are as follows: 

1. Modify the Makefile and set the variable MPI_INST to the path of the installation of 

the mpich package. This is necessary so that the compiler can find the needed header 

files and libraries for MPI. 

2. If the model is compiled using the Portland Group PGF90 compiler and will be run on a 

64-bit operating system, you will probably need to remove the “-Bstatic” option from 

the compiler flags of the “pg_linux” and “pg_linuxomp” sections of the 

Makefile. We have found that an executable built with MPI on a 32-bit compiler will 

fail to run on a 64-bit OS if the -Bstatic option is included. This option will build the 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-6

compiler libraries into the executable, rather than use the default mode of relying on the 

dynamic libraries installed on the operating system. The -Bstatic option generates a 

portable executable program. The inconvenience is that excluding the -Bstatic option 

will create the necessity of having the Portland Group dynamic libraries installed on each 

computer that will serve as a master or compute node in the model application. To 

remove the static option just delete the -Bstatic from the following lines: 

FLGS="-I$(CAMx_INC) –I$(MPI_INC) ... –Bstatic" 

3. CAMx supports the use of both OMP and MPI in a single run. To utilize OMP in your 

MPI application, run the command “make pg_linuxomp MPI=true” or “make 

i_linuxomp MPI=true”. In this case, the executable will have the OMP directives 

for shared-memory parallelization built in. 

A Note on Binary Input/Output Files

Large CAMx input and output data fields are contained within Fortran “unformatted” (binary) 

files. This means that the data are read and written as represented in memory, without translation 

between binary and ASCII character sets as done for “text” files. Binary files reduce file volume 

and improve program read/write speed, but the user cannot directly view or manually edit them. 

There are two ways to represent binary information in memory: “big endian” and “little endian.” 

The difference between these is essentially the order of bits in a word, and which order is used 

depends on the computer chipset. Historically, big endian has been used in many Unix 

workstations (Sun, SGI, HP, and IBM). The x86 processors on personal computer platforms 

(e.g., Intel and AMD) use little endian, while PowerPC chips are big endian. 

CAMx can be compiled and run on machines that use either big or little endian binary 

representations, as long as the model and all of its pre- and post-processors are consistently 

compiled and run on the same type of platform. If any component of the modeling system is 

compiled on a different platform using the opposite binary representation, I/O files will not be 

properly read and will likely lead to a program crash. A typical run-time error message from 

trying to read the wrong binary format is “input record too long,” so if you get this error 

message, check for consistency between your binary files and Fortran compiler options. 

In practice, users should use the default binary format (big endian) that is built into the CAMx 

Makefile and that is used for the CAMx distribution test case. Compilers for little endian 

machines (e.g., x86 PC chipsets) provide compile-time switches that allow binary files to be read 

and written as big endian. The Portland Group compiler option is “-byteswapio”, whereas 

the Intel compiler option is “-convert big_endian.” The CAMx Makefile supports many 

platforms and sets compiler flags to consistently use big endian to maximize platform portability. 

Therefore, use of the CAMx Makefile on any of the supported platforms will by default result in 

the model reading and writing big endian binary files. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-7

11.3 RUNNING CAMx 

Control File Namelist Input 

CAMx reads a text (ASCII) run control file named “CAMx.in” that must exist locally in the 

directory from which the model is run. This file is in the Fortran “namelist” format, and contains 

all user-specified control parameters for a given simulation, including model configuration, 

option-specific inputs, and I/O filenames. The run control file must contain the primary namelist 

module labeled “&CAMx_Control”, which provides all of the information to configure and run 

the core model. Additional namelist modules may be provided in the run control file to 

configure and run the various CAMx Probing Tools. These optional namelist modules are 

ignored if none of the Probing Tools are selected in the primary namelist. A detailed description 

of the format and contents of this file is provided in Section 5 (core model) and Sections 6 

through 10 (Probing Tools). 

Each record in the CAMx control file contains a variable name that is explicitly set to a 

numerical, logical, or character value. The variable names are used by the program directly, and 

therefore cannot be changed without source code modifications. Character strings must be 

enclosed by single quotes, and all variable assignments must be delimited with commas. The 

order of the records may be arranged in any fashion that the user prefers. Any number of 

comment statements may be included anywhere within the namelists, provided that they do not 

interrupt “variable_name = value,” assignments. The “!” character is the Fortran 

namelist comment delimiter. 

Certain variables are multi-dimension arrays; the user may provide a comma-delimited list of 

values to fill the array or assign values to specific array elements. Certain other variables are 

optional or associated with option flags; these do not need to appear in the namelist if their 

associated options are not invoked, and they will be ignored if they remain in the file. If the user 

does not provide necessary inputs, the model will stop with a descriptive error message. 

We suggest that users start with the CAMx.in template that is provided with the source code. 

On computer platforms running Unix or Linux the generation of the run control file is most 

easily accomplished in the job script that actually runs the model (see Figure 5-1 as an example 

using the Unix/Linux c-shell syntax). Alternatively, the run control file could be written 

separately with a name specific to a given simulation, then linked or copied to the standard 

“CAMx.in” filename before the model is executed at a command line or in a job script. 

Common Errors When Creating a Namelist

Fortran programs ingest the entire contents of namelist modules using a single READ statement. 

If the program experiences an error reading the namelist, it echoes a simple error message like 

“error reading namelist” and stops. It is therefore difficult to determine why the read of the 

namelist has caused an error, especially if the namelist is lengthy and contains a variety of data 

types. When experiencing an error reading the CAMx control file namelist, you must carefully 

inspect the file for any syntax errors. These errors can be subtle and difficult to spot. Here are a

few of the common reasons an error occurs when reading a namelist: 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-8

• Mistyped variable name: 

All variables to be assigned within a namelist must be recognized as a declared namelist 

variable within the reading program. If a variable is misspelled or an unknown variable 

is assigned a value, a read error will occur. 

• Incorrect data type for the assigned variable: 

If the data type of the value assigned to a namelist variable does not match the variable’s 

declared data type within the reading program, an error will occur. Some compilers will 

allow real type variables to be assigned to integer values, but not the converse. 

• Missing period around a logical value: 

The logical values .true. and .false. must be surrounded by a period. 

• Missing quotes around a character variable: 

Any character data type must be surrounded by quotes. 

• Overflow when assigning values to an array: 

The values in an array can be assigned using array index notation. If the index used to 

assign an array value exceeds the declared dimension of the array, a read error occurs. 

Check the “MXNAM” parameter in the ./Includes/namelist.inc include file to 

see if this value needs to be increased. Alternatively, check your namelist file to be sure 

all of your array indices are correct. 

• Wrong number of dimensions when assigning values to a multi-dimensional array: 

When assigning values to an array using array index notation, the number of subscripts in 

the assignment must match the declared dimensions of the array (e.g., assignments to an 

array dimensioned var(i,j) must be referenced using two indices). 

• Missing comma following a variable definition: 

A comma must be the last character in a “variable = value,” assignment. A 

comment may be placed after the comma (delimited using the “!” symbol, see below) on 

the same file record. This restriction on the use of commas is ignored on some compilers. 

• Too many commas following a scalar variable definition: 

More than one comma following a scalar variable assignment will result in a read error. 

• Too many commas following the variable assignment list for an array: 

The entire contents of an array can be assigned using a single statement by listing the 

values of each element separated by commas. The read will fail if there are more 

commas than the dimension of the array. 

• Comment does not begin with !:

The character that delimits a comment in a namelist is the exclamation point. Comments 

can appear anywhere within the namelist. However, all text in the namelist must either 

be part of a namelist variable assignment or part of an identified comment. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-9

Parallel Processing

Parallel-processing refers to distributing a model application to multiple processors (CPUs) that 

share the computational load in integrating the model solution forward. Previous versions of 

CAMx only supported parallelization across multiple CPUs on a single server using the Open 

Multi-Processing (OpenMP or OMP) protocol for shared-memory machines (e.g., a multi-core 

PC). OMP distributes calculations for single grid cells (chemistry) or rows/columns of cells 

(advection/diffusion) to each CPU within the server. PC platforms are available with multiple (2 

to 8) cores that access common memory; we find that OMP works well for this number of CPUs. 

A computer cluster (i.e., multiple networked servers that work together virtually as a single 

computer) can provide many more CPUs but requires a different multi-processing management 

system called the Message Passing Interface (MPI). With MPI, the CAMx modeling grid is 

divided into sub-regions that are processed on separate servers on a network and integrated by 

passing large data messages among the servers. MPICH is an open source implementation of 

MPI widely used in the atmospheric modeling community. 

MPI Parallelization

The MPI version of CAMx was designed using a “master/slave” parallel processing approach. 

The CPU on which the program is launched (process ID 0 under MPI) serves as the master node 

and will not make any actual model integration computations for any part of the modeling 

domain. This process will perform all of the model setup, the vast majority of I/O, and manage 

the communication between the compute nodes. Since the master node handles the important 

I/O it is the only CPU that needs access to the disk volume containing the input files and the 

location of the output directory. This approach allows for minimal amount of network traffic to 

the nodes on the cluster by eliminating the need for the compute nodes to manage NFS mounts. 

The master node may need access to the LAN for data access, but the compute nodes only need 

access to the internal cluster network. However, the compute nodes will need access to a copy of 

the executable program. This can be accomplished in a number of ways: (1) have an NFS mount 

on the master node accessible to the internal cluster network and launch the model from that 

location; or (2) port a copy of the executable program, using rcp or scp, to the user’s home 

directory on each compute node and launch the model from the user’s home directory on the 

master node. 

During each model time step, when computations are performed by the compute nodes, some 

information is written to the diagnostic (*.diag) and message output (*.out) files. Rather 

than just eliminate this information altogether, we decided to create node-specific versions of 

each of these two files and have each compute node write the information to its own version. 

However, in order to prevent the need to have the output directory available to the compute node 

across the network, we have designed the model so that the node-specific files are created in the 

current working directory. This means that if the model is launched from an NFS-mounted 

directory, all of the node-specific files will all be created in that location. On the other hand, if

the model is launched from a user's home directory on the compute nodes, you will have to log in 

to the specific compute node to view the files. 

Using CAMx with MPI requires the same job script as the standard version, with a few 

modifications to support multi-processing. Here, we explain the approach we have taken. We 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-10

provide this as guidance; it is not necessary to follow these steps to run CAMx with MPI. Others 

may have a different way of handling the MPI portion of the execution. 

1. Put the CAMx input files somewhere on the network that is accessible by the computer 

that will serve as the master node. Also, identify a location where the output will be 

written. 

2. Create a directory on the local disk of the master node that will serve as the launching 

point for the CAMx execution. Copy the standard CAMx job script, and any scripting 

support programs to this location. 

3. Modify the job script so that the variable identifying the executable program points to the 

local directory. 

4. Modify the job script so that the pathnames for input and output files are correct. 

5. Add a section, similar to the one shown below, to the top of the job script: 

For MPICH1 use the following: 

cat << ieof > nodes 

10.1.4.2 

10.1.4.3 

10.1.4.4 

10.1.4.5 

10.1.4.6 

10.1.4.2 

10.1.4.3 

10.1.4.4 

ieof 

set NUMPROCS = `wc -l nodes | awk '{print $1+1}'` 

This will create a file containing the IP addresses of the computers that will get a 

computational slice of the domain on which to work. NOTE: THE MASTER NODE 

SHOULD NOT BE LISTED and will not get a computational slice. The computer on 

which the program is launched is included in the MPI simulation by default and is given a 

process ID of 0. Notice that some computers are listed twice. This example is utilizing a 

cluster containing dual processor computers. The computer must be listed once for each 

CPU that is to be used in the simulation. Notice that the NUMPROCS variable is assigned 

to a value equal to one more than the number of computers listed. This is because the 

master node is included in the count of processors. This example will utilize 9 

processors: one to serve as the master node and 8 that will receive a computational slice. 

If the names of the computers are known to the master node, hostnames can be used in 

place of IP addresses. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-11

For MPICH2 use the following: 

cat << ieof > nodes 

10.1.4.2:3 

10.1.4.3:2 

10.1.4.4:2 

10.1.4.5:2 

ieof 

set NUMPROCS = 9 

set RING = `wc -l nodes | awk '{print $1}' 

Notice that the syntax for each entry differs from the MPICH1 version in that the 

addresses are followed by a colon and a numeric value. This is the convention adopted in 

MPICH2 for utilizing several processors on a single host. Do not list a machine multiple 

times in the nodes file. Unlike MPICH1 the NUMPROCS variable is set to the number 

the total nodes listed after the colon. In this example, the nodes file will also be used to 

launch a node “ring” using the MPICH2 utilities. For this reason you must include the 

master node in the list – the master node must be part of the MPICH ring. 

6. Change the line that launches the executable program, at the bottom of the script. 

For MPICH1 use the following: 

mpirun -v -machinefile nodes -np $NUMPROCS $EXEC 

This will use the mpirun utility to launch the CAMx model using the file called 

“nodes” to identify the computers to be included. Of course, this assumes that the 

mpirun utility is in the current user's path. In fact, the mpich package must be 

installed on each compute node and the mpirun utility must be available in the user's 

path on each system. A complete path to mpirun, such as 

/usr/local/bin/mpirun, could be used instead. 

For MPICH2 use the following: 

mpdboot -n $RING -f nodes --verbose 

mpiexec -machinefile nodes -np $NUMPROCS $EXEC 

mpdallexit 

The mpdboot command will initialize the MPD environment, establishing a ring using 

all of the machines listed in the nodes file. The mpiexec command will launch the 

model using the specified number of processors, utilizing the machines in the established 

ring. The mpdallexit command will terminate the ring. If your script is looping 

over several days, which is typical, you should put the mpdboot command before the 

start of the loop, the mpiexec command inside the loop, and the mpdallexit 

command after the point where the loop is terminated. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-12

OMP Parallelization

You may implement OMP parallel processing alone or in combination with MPI. In either case, 

it is necessary to add environment variables to the CAMx job script that define the number of 

OMP threads (the examples below use the c-shell syntax): 

setenv OMP_NUM_THREADS 4 

There have been problems with some parallel programs on Linux systems when the per-thread 

stack size is set to the default (2 MB). If you have unexplained failures such as segmentation 

faults/violations, try setting the MPSTKZ environment variable to a larger value, for example: 

 

setenv MPSTKZ 32M 

For large applications, you will probably also need to increase the stack size available to the shell 

executing the model by using the limit command as shown below: 

limit stacksize unlimited 

To use a hybrid MPI/OMP approach, follow all of the steps for running an MPI application and 

include the OMP_NUM_THREADS environment variable (and others if needed). The domain 

will be divided into slices in the usual way as part of MPI, but when operating on a particular 

slice, the host will spawn multiple OMP threads to parallelize the portions of the code where 

OMP directives have been included. 

Benchmarking Model Run Times 

Table 11-2 provides some example non-MPI CAMx configurations and associated system 

requirements when run on a dual-processor Linux PC (with and without OMP). All of these tests 

utilized the original CMC fast solver (since replaced by the EBI solver) with the CB4 gas-phase 

mechanism. 

Two cases with very different model configurations were used to test the CAMx/MPI code. The 

first consists of the standard CAMx test case available for download from www.camx.com: it 

employs two relatively small grids at 36 and 12 km resolution, centered over St Louis, Missouri: 

• Grids: 68×68 and 92×115 

• 16 layers 

• No PiG 

• Mechanism 6 (CB05, no PM) 

The second was provided by the EPA/OAQPS, and employs two larger grids, the 36-km RPO 

domain covering most of North America and a 12-km grid covering the entire eastern U.S.:

• Grids: 148×112 and 281×242 

• 14 layers 

• No PiG 

• Mechanism 4 CF (CB4, with PM) 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-13

Results from both test cases are shown in tables 11-3 and 11-4. These results consistently show 

that MPI is most advantageous for larger applications in which overhead processes (e.g., model 

setup, I/O, etc.) are a much smaller fraction of total model run time. In other words, CAMx 

applications on expansive multiple grids, employing extensive chemistry (PM and RTRAC), 

and/or including Probing Tools (OSAT, PSAT, DDM) would benefit most from MPI 

parallelization.

Table 11-2. Example of computer requirements for several non-MPI CAMx configurations on a 

dual-processor Athlon 2800+ (2.1Ghz) PC; compiled using the Portland Group compiler. 

Configuration Memory Disk Usage CPUs 

Execution 

Time 

1 grid MRPO domain 

(97 x 90 x 14) 

~123,000 grid cells 

Mechanism 3 (25 species) 

112 mB 564 mB/episode 

day 1 

24 min/ 

episode day 

1 grid MRPO domain 

(97 x 90 x 14) 

~123,000 grid cells 

Mechanism 3 (25 species) 

112 mB 564 mB/episode 

day 2 

16 min/ 

episode day 

2 grids MRPO domain 

(97 x 90 x 14 ) and (119 x 134 x 14) 

~ 346,000 grid cells 

Mechanism 3 (25 species) 

248mB 960 mB/epidode 

day 2 

1 hr/ 

epsiode day 

2 grids MRPO domain 

(97 x 90 x 14 ) and (119 x 134 x 14) 

~ 346,000 grid cells 

Mechanism 4 CF (50 species) 

306 mB 1.2 gB/epidode day 1 

2.5 hrs/ 

epsiode day 

2 grids MRPO domain with OSAT 

(97 x 90 x 14 ) and (119 x 134 x 14) 

~ 346,000 grid cells 

Mechanism 3 (25 species) 

16 OSAT source regions 

2 OSAT source groups 

Total OSAT tracers = 136 

506 mB 1.6 gB/episode day 2 4 hrs/ 

episode day 

2 grids VISTAS domain 

(148 x 112 x 19 ) and (170 x 179 x 

19) 

~ 608,000 grid cells 

Mechanism 4 CMU (4 sections, 86 

total species) 

1 gB 2.3 gB/episode day 1 8 hrs/ 

episode day 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-14

Table 11-3. CAMx speed performance with MPI and OMP for the distribution test case 

available at www.camx.com (processed on 2.83 Ghz Intel Xeon chipsets). 

MPI Slices 

OMP threads / 

Slice Total CPU Minutes /Sim Day 

Equivalent 

Processors 

1 1 1 106 

2 1 2 57 1.9 

4 1 4 32 3.3 

8 1 8 21 5.0 

16 1 16 18 5.9 

1 4 4 43 2.5 

2 4 8 25 4.3 

4 4 16 17 6.2 

Table 11-4. CAMx speed performance with MPI and OMP for the EPA/OAQPS test case 

(processed on 2.83 Ghz Intel Xeon chipsets).

MPI Slices 

OMP threads / 

Slice Total CPU Minutes / Sim Day 

Equivalent 

Processors* 

1 1 1 503 

2 1 2 266 1.9 

4 1 4 138 3.6 

8 1 8 81 6.2 

12 1 12 76 7.0 

16 1 16 61 8.2 

24 1 24 49 10.3 

1 8 8 111 4.5 

2 8 16 79 6.4 

4 4 16 71 7.1 

3 8 24 52 9.7 

*Equvalent Processors is defined as the ratio of runtime for multiple processors to the runtime for a 

single processor.

11.4 CAMx PRE- AND POST-PROCESSORS 

This section describes a variety of CAMx pre- and post-processors that we have made available 

to the user community. Since they support CAMx I/O, these programs are written in Fortran 77 

and 90 and distributed by ENVIRON as free software. As such, they contain notices like this in 

the source code: 

 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 

 c Copyright (C) 2003 ENVIRON 

 c 

 c This program is free software; you can redistribute it and/or 

 c modify it under the terms of the GNU General Public License 

 c as published by the Free Software Foundation; either version 2 

 c of the License, or (at your option) any later version. 

 c 

 c This program is distributed in the hope that it will be useful, 

 c but WITHOUT ANY WARRANTY; without even the implied warranty of 

 c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

 c GNU General Public License for more details. 

 c 

 c To obtain a copy of the GNU General Public License 

 c write to the Free Software Foundation, Inc., 

 c 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 

 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-15

ENVIRON occasionally posts updates for certain widely-used programs when necessary, but 

does not actively support or maintain every one. Users can e-mail questions, comments, 

suggestions or improvements to ask-camx@environ.org. A few of the more important pre- and 

post-processors are briefly described below. Each come with README files, makefiles, and 

sample job scripts that document their use. 

Emissions 

Most emission models (those shown in Figure 11-1) can provide speciated, temporally-allocated, 

gridded and point source emission input files in the CAMx-ready format. Further processing 

may be required, however, to select point sources for the PiG treatment, translate the point 

source files from a common ASCII text format to CAMx-ready binary files, or to refine the 

domain size/resolution for gridded emissions. There are three interface programs that perform 

these operations. 

PIGSET: This program allows the user to select and set certain point sources for the Plume-inGrid (PiG) treatment in a CAMx simulation. It also converts ASCII point source files 

commonly generated by emission models to CAMx-ready binary format. See the source 

code for more information, and the sample job for usage. Also see Section 4 for 

guidance in selecting PiG point sources and manipulating day-specific point source files. 

WINDOW: This program is used to “window” out a sub-section of the surface emissions grid 

for use on a smaller CAMx grid. It can also be used to aggregate or interpolate surface 

emissions to coarser or finer resolution, respectively. See the sample job for usage. 

PREPBIOE: This is a converter to generate emissions for additional species needed by the 

updated CAMx SOA module (v4.50 and later). It reads in an existing biogenic 

emissions file and generates emissions for new species by scaling from existing species. 

Meteorology 

The recommended approach to develop meteorological inputs for CAMx is through the use of 

prognostic meteorological models. Currently, the most common of these is MM5, RAMS, and 

WRF; ENVIRON provides interface programs for these specific models. This does not 

necessarily preclude other meteorological models to be used, but users will need to develop 

interface programs on their own. 

MM5CAMx: This program generates CAMx v4 and v5 meteorological input files from MM5 v3 

output files. See the README in the archive for a description of the program and how 

it is applied. 

RAMSCAMx: This program generates CAMx v4 and v5 meteorological input files from RAMS 

v4 through v6 output files. See the README in the archive for a description of the 

program and how it is applied. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-16

WRFCAMx: This program generates CAMx v4 and v5 meteorological input files from WRF 

(ARW core) v2 and v3 output files. See the README in the archive for a description of 

the program and how it is applied. 

KVPATCH: This program applies minimum Kv values to layers below 100 m based on an input 

landuse grid. Minimum Kv's are determined from a weighted average of landuse for 

each cell, where each landuse is assigned a Kv value. See the source code for more 

information. Use of this program to adjust Kv inputs is entirely optional. 

Photolysis Rates 

The development of photolysis rate inputs for CAMx is crucial for the photochemical 

mechanisms, but is not needed for inert or simple chemistry (e.g., Mechanism 10) applications. 

Two programs are available to assist the user in developing photolysis and albedo/haze/ozone 

input files. 

AHOMAP: This program prepares albedo/haze/ozone column input files for CAMx, and must 

be run prior to running the TUV model as it defines the albedo, haze, and ozone column 

intervals based on input data. A CAMx-ready landuse file and ozone column data files 

(http://toms.gsfc.nasa.gov/ozone/ozone.html) must be supplied as input. The program 

assumes a constant haze turbidity value for the entire grid. NOTE: gaps in day-specific 

ozone column data at low latitudes, and high latitudes during winter, may result in zero 

ozone column values over portions of the modeling grid (see Figure 11-2). This results 

from the inability of polar-orbiting satellite platforms to cover the entire globe on a daily 

basis. The user may instead use seasonal-average ozone column input files (no data 

gaps); alternatively, AHOMAP provides an option to fill these day-specific gaps with an 

average determined from valid data processed for the extraction domain. See the 

Readme file and job script in the archive for usage. 

TUV: This program develops photolysis rate inputs for all CAMx CB4, CB05, and SAPRC99 

photochemical mechanisms via the TUV radiative transfer model (Madronich, 2002). 

TUV originates from NCAR (http://cprm.acd.ucar.edu/Models/TUV/). The program 

uses the albedo, ozone column, and haze turbidity intervals defined in AHOMAP. See 

the sample.job in the archive for usage. 

Air Quality 

There are numerous approaches for defining initial and boundary concentration inputs for 

CAMx. The level of possible detail ranges from time- and space-constant values for all 

pollutants, to specific time and space profiles for each. The level of detail depends on available 

measurements or modeling datasets, focus and detail of the modeling exercise, and scale 

considerations (e.g., local vs. continental domains). ENVIRON provides one simple program, as 

described below. Another approach gaining popularity is to extract initial and boundary 

conditions for large regional applications from global-scale chemical transport models, such as 

Harvard’s GEOS-CHEM or NCAR’s MOZART. Interface programs have been developed for 

this purpose, but are not distributed by ENVIRON. Users will need to develop their own 

programs if they choose an alternative methodology to generate initial/boundary conditions. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-17

Figure 11-2. An example of global ozone column from the Ozone Monitoring Instrument (OMI) 

platform. White areas denote missing data. From http://jwocky.gsfc.nasa.gov/. 

ICBCPREP: This program prepares CAMx initial condition (IC) and boundary condition (BC) 

files. Values are constant in space and time, but unique values may be specified for each 

chemical species to be modeled; they are defined in a simple text file. See the file 

sample.job in the archive for usage. 

Landuse 

Approaches for developing landuse/landcover inputs for CAMx (and for AHOMAP) are about as 

varied as they are for initial/boundary conditions. Popular approaches have included: (1) 

translating gridded spatial allocation surrogates developed during emissions processing into the 

CAMx categories described in Section 5; (2) translating the gridded landuse/landcover fields 

from the meteorogical model; or (3) separately developing landuse input fields from raw data 

(such as from the USGS or NLCD) using GIS or other programs. The advantages of (1) are 

consistency with input emissions estimation methodologies, and the fact that land cover 

processing is done just once. The advantages of (2) are similar consistency with the 

meteorological modeling and one-time processing, but most models assign a single dominant 

landuse to each grid cell, which may not be representative for coarse-resolution grids (CAMx 

allows a distribution of multiple land cover types per cell). ENVIRON provides meteorological 

interface programs (described above) that translate the meteorological model landuse/landcover 

fields to the CAMx definitions and grid configuration. 
CAMx v5.30 User’s Guide, December 2010 

CAMx Modeling System 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_11_system.docx 11-18

Post-processors 

Most of the CAMx post-processors provided by ENVIRON provide some manner of 

concentration file manipulation, either to extract certain information from the raw output files, to 

re-format for use in other programs and applications, to concatenate files, etc. A few others are 

provided to assist in evaluating Probing Tool output. As stated above, ENVIRON does not 

provide any visualization or graphics software other than a few Excel® spreadsheet macros. 

AVGDIF: This program is used to compare two UAM-IV format files and print a table of 

differences. This is useful for checking differences between CAMx runs on different 

machines or different compile options for the test case. Note that the CAMx master grid 

output file is in UAM-IV format, but the nested grid output file needs to first be 

translated into that format before AVGDIF can be used (see FINE2UAM below). See 

the file sample.job in the archive for usage. 

BNDEXTR: Use this program to extract boundary conditions for a nested grid when you apply 

CAMx in one-way nesting mode. One-way nesting means that CAMx is run 

successively for each grid, with BNDEXTR as the interface between each run. This 

program is not needed when CAMx is run in the more standard two-way nesting mode, 

where all grids are run in a single simulations. See the example job for usage. 

CAMxPOST: This is a suite of post-processing utilities designed to facilitate the evaluation of 

model performance. It is used to combine observations and predictions, calculate 

statistics, and plot time series. See the README file in the archive for usage. 

CAMxTRCT: This program extracts specified chemical species for specified grids from the 

output average concentration and deposition files, and from input emission files. Output 

from this program can be written in the standard UAM-IV format (master grid output 

format), or alternatively to a text (ASCII) format in Surfer “GRD” format for subsequent 

plotting. It also has the capability to convert units. See the file sample.job in the archive 

for usage. 

CAMx2IOAPI: This program converts CAMx output average concentration and deposition files 

to I/O-API format. You will need I/O-API and NetCDF libraries to compile and run this 

program. This program allows you to use various Models-3 post-processors and 

visualization programs that only handle I/O-API format. 

PA_Tools: This is a suite of post-processing utilities designed to extract IPR, IRR, and CPA 

data from one CAMx Process Analysis output files and reformats the data suitable for 

subsequent analysis (e.g. using spreadsheets). 

OSAT/PSAT_Browser: These are separate suites of Fortran and Excel macro tools that support 

the evaluation of the source apportionment output at receptor locations. The macro plots 

ranked source contributions at receptor locations using Excel (compatible with MS 

Office 2003). Note that the macro is untested for the latest version of MS Office. See 

the README file for usage. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-1 

12. REFERENCES 

Anthes, R.A. and T.T. Warner. 1978. Development of Hydrodynamic Models Suitable for Air 

Pollution and Other Mesometeorological Studies. Mon. Wea. Rev., 106, 1045-1078. 

Ariya, P.A., A. Khalizov and A. Gidas. 2002. Reactions of gaseous mercury with atomic and 

molecular halogens: kinetics, product studies, and atmospheric implications. J. Phys. 

Chem., 106, 7310-7320. 

Bott, A. 1989. A Positive Definite Advection Scheme Obtained by Nonlinear Renormalization 

of the Advective Fluxes. Mon. Wea. Rev., 117, 1006-1015. 

Calvert, J.G., R. Atkinson, J.A. Kerr, S. Madronich, G.K. Moortgat, T.H. Wallington and G. 

Yarwood. 2000. The Mechanisms of Atmospheric Oxidation of the Alkenes. Oxford 

University Press, New York, New York. 

Calvert, J.G., R. Atkinson, K.H. Becker, R.M. Kamens, J.H. Seinfeld, T.H. Wallington and G. 

Yarwood. 2002. The Mechanisms of Atmospheric Oxidation of the Aromatic 

Hydrocarbons. Oxford University Press, New York, New York. 

Carter, W.P.L. 1994. Development of ozone reactivity scales for volatile organic compounds. 

J. Air & Waste Manage. Assoc., 44, 881-899. 

Carter, W.P.L. 1996. Condensed Atmospheric Photooxidation Mechanisms for Isoprene. 

Atmos. Environ., 30, 4275-4290. 

Carter, W.P.L. 2000. Programs and Files Implementing the SAPRC-99 Mechanism and its 

Associates Emissions Processing Procedures for Models-3 and Other Regional Models. 

January 31, 2000. http://pah.cert.ucr.edu/~carter/SAPRC99.htm. 

Carter, W.P.L, G.S. Tonnesen, and G. Yarwood. 2002. Investigation of VOC Reactivity Effects 

in Existing Regional Air Quality Models. Draft Report to American Chemistry Council 

for the NARSTO Reactivity Research Working Group. September. 

Chang, J.S., R.A. Brost, I.S.A. Isaksen, S. Madronich, P. Middleton, W.R. Stockwell, and C.J, 

Walcek. 1987. A Three-dimensional Eulerian Acid Deposition Model: Physical 

Concepts and Formulation. J. Geophys. Res., 92, 14,681-14,700. 

Chock, D.P., S.L. Winkler, and P. Sun. 1994. Comparison of stiff chemistry solvers for air 

quality models. Environ. Sci. Technol., 28, 1882-1892. 

Clever, H., S.A. Johnson and E.M. Derrick. 1985. The solubility of mercury and some sparingly 

soluble mercury salts in water and aqueous solutions. J. Phys. Chem. Ref. Data, 14, 631-

680. 

Cohan, D. S., A. Hakami, Y. Hu, and A. G. Russell. 2005. Nonlinear Response of Ozone to 

Emissions: Source Apportionment and Sensitivity Analysis. Environ. Sci. Technol., 39, 

6739-6748. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-2 

Colella, P., and P.R. Woodward. 1984. The Piecewise Parabolic Method (PPM) for Gasdynamical Simulations. J. Comp. Phys., 54, 174-201. 

Del Genio, A.D., M.S. Yao, W. Kovari, K.K.W. Lo. 1996. A prognostic cloud water 

parameterization for global climate models. J. Climate, 9, 270-304. 

Dunker, A. M. 1980. The response of an atmospheric reaction-transport model to changes in 

input functions. Atmos. Environ., 14, 671-679. 

Dunker, A.M. 1981. Efficient calculations of sensitivity coefficients for complex atmospheric 

models. Atmos. Environ. 15, 1155-1161. 

Dunker A.M., G. Yarwood, J.P. Ortmann, G.M. Wilson. 2002a. The decoupled direct method 

for sensitivity analysis in a three-dimensional air quality model – implementation, 

accuracy and efficiency. Environ. Sci. Technol., 36, 2965-2976. 

Dunker A.M., G. Yarwood, J.P. Ortmann, G.M. Wilson. 2002b. Comparison of source 

apportionment and source sensitivity of ozone in a three-dimensional air quality model. 

Environ. Sci. Technol., 36, 2953-2964. 

Edgerton, E.S., B.E. Hartsell and J.J. Jansen. 2001. Atmospheric mercury measurements at a 

rural and urban site near Atlanta, GA, USA. 6

th International Conference on Mercury as 

a Global Pollutant, 15-19 October 2001, Minamata, Japan. 

Elbern, H. and H. Schmidt. 1999. A four-dimensional variational chemistry data assimilation 

scheme for Eulerian chemistry transport modeling. J. Geophys. Res., 104, 18583-18598. 

Emery, C., J. Jung, J. Johnson, G. Yarwood, S. Madronich, G.Grell. 2010. Improving the 

Characterization of Clouds and their Impact on Photolysis Rates within the CAMx 

Photochemical Grid Model. Prepared for the Texas Commission on Environmental 

Quality, Austin, TX. Prepared by ENVIRON International Corporation, Novato, CA 

(August 27, 2010). 

ENVIRON. 2002. Development, Application, and Evaluation of an Advanced Photochemical 

Air Toxics Modeling System. Prepared for the Coordinating Research Council, 

Alpharetta, GA, and the U.S. Department of Energy, Office of Heavy Vehicle 

Technologies (September 27, 2002). Available from www.crcao.com. 

EPA. 1990. User’s Guide for the Urban Airshed Model-Volume I; User’s Manual for 

UAM(CB-IV). U.S. Environmental Protection Agency, Research Triangle Park, NC, 

EPA-450/4-90-007a. 

EPA. 1998. User’s Guide for the AERMOD Meteorological Preprocessor (Revised Draft). 

Prepared by the U.S. Environmental Protection Agency, Research Triangle Park, NC 

(November, 1998). 

EPRI. 2000. SCICHEM Version 1.2: Technical Documentation. Final Report prepared by 

ARAP/Titan Corporation, Princeton, NJ, for EPRI, Palo Alto, CA. December 2000 

(1000713). 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-3 

Fahey, K.M. and S.N. Pandis. 2001. Optimizing model performance: variable size resolution in 

cloud chemistry modeling. Atmos. Environ. 35, 4471-4478. 

Gallagher, W.M., K.M. Beswick, J. Duyzer, H. Westrate, T.W. Choularton, J.P. Hummelsho. 

1997. Measurements of aerosol fluxes to Speulder forest using a micrometeorological 

technique. Atmos. Environ., 31, 359 – 373. 

Gardfeldt, K. and M. Johnson. 2003. Is bimolecular reduction of Hg(II) complexes possible in 

aqueous systems of environmental importance? J. Phys. Chem., 107, 4478-4482. 

Gear, C.W. 1971. Numerical Initial Value Problems in Ordinary Differential Equations. 

Prentice-Hall, Englewood Cliffs, NJ. 

Gery, M.W., G.Z. Whitten, J.P. Killus, and M.C. Dodge. 1989. A Photochemical Kinetics 

Mechanism for Urban and Regional Scale Computer Modeling. J. Geophys. Res., 94, 

925-956. 

Gillani, N. V. and J. E. Pleim. 1996. Sub-grid-scale Features of Anthropogenic Emissions of 

NOX and VOC in the Context of Regional Eulerian Models. Atmos. Environ., 30, 2043-

2059. 

Hairer, E., and G. Wanner. 1991. “Solving ordinary differential equations II Stiff and 

differential-algebraic problems.” Springer-Verlag, Berlin. 

Hakami, A., M. T. Odman, and A. G. Russell. 2003. High-order, direct sensitivity analysis of 

multidimensional air quality models. Environ. Sci. Technol., 37, 2442-2452. 

 

Hall, B. 1995. The gas-phase oxidation of elemental mercury by ozone. Water Air Soil Pollut., 

80, 301-315. 

Hall, B. and N. Bloom. 1993. Report to EPRI, Palo Alto, CA. 

Harley R. A., and G. R. Cass. 1995. Modeling the Atmospheric Concentrations of Individual 

Volatile Organic Compounds. Atmos. Environ. 29, No. 8, 905-922. 

Herman, J.R. and E. A. Celarier. 1997. Earth surface reflectivity climatology at 340-380 nm 

from TOMS data. J. Geophys. Res., 102, No. 23. 

Hertel O., R. Berkowics, J. Christensen and O. Hov. 1993. Test of two numerical schemes for 

use in atmospheric transport-chemistry models. Atmos. Env., 27, 2591-2611. 

Hesstvedt, E., Hov, O., and Isaksen, I. S. A. 1978. Quasi-steady state approximation in air 

pollution modeling: comparison of two numerical schemes for oxidant prediction. Int. J. 

Chem. Kin., 10, 4148-4156. 

Hindmarsh, A.C. 1980. “LSODE and LSODI, two new initial value ordinary differential 

equation solvers.” ACM SIGNUM Newsletter, Volume 15 , Issue 4 (December). 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-4 

Hindmarsh, A.C. 1983. ODEPACK, a Systematized Collection of ODE Solvers. In Numerical 

Methods for Scientific Computation, 55, R.S. Stepleman, Ed., North-Holland, New York. 

Holtslag, A.A.M, and B.A. Boville. 1993. Local versus non-local boundary layer diffusion in a 

global climate model. J. Climate, 6, 1825-1842. 

Huebert, B.J., and C.H. Robert. 1985. The Dry Deposition of Nitric Acid to Grass. J. Geophys. 

Res., 90(D1), 2085-2090 (doi:10.1029/JD090iD01p02085). 

IUPAC. 1992. Evaluated Kinetic and Photochemical Data for Atmospheric Chemistry. 

Supplement IV. IUPAC Subcommittee on Gas Kinetic Data Evaluation for Atmospheric 

Chemistry (R. Atkinson, D.L. Baulch, R. A. Cox, R. F. Hampson, Jr., J. A. Kerr, and J. 

Troe). Journal of Physical and Chemical Reference Data, 21, No. 6, 1125-1568. 

IUPAC. 2001. Evaluated kinetic and photochemical data for atmospheric chemistry. IUPAC 

Subcommittee for Gas Kinetic Data Evaluation. Available at http://www.iupackinetic.ch.cam.ac.uk/index.html. December, 2001. 

Jacob, D.J. 2000. Heterogeneous chemistry and tropospheric ozone. Atmos. Environ., 34, 2131-

2159. 

Jaegle, L., D.J. Jacob, W.H. Brune and P.O. Wennberg. 2001. Chemistry of HOx radicals in the 

upper troposphere. Atmos. Environ., 35, 469-489. 

Jeffries, H. E., and G.S. Tonnesen. 1994. Comparison of two photochemical reaction 

mechanisms using a mass balance and process analysis. Atmos. Environ., 28, 2991-3003. 

JPL. 2001. Chemical Kinetics and Photochemical Data for Stratospheric Modeling --Evaluation 

13. NASA Jet Propulsion Laboratory publication 00-3. Available at 

http://jpldataeval.jpl.nasa.gov. February, 2001. 

Kalberer, M., D. Paulson, M. Sax, M. Steinbacher, J. Dommen, A. S. H. Prevot, R. Fisseha, E. 

Weingartner, V. Franhevich, R. Zenob, and U. Balternsperger. 2004. Identification of 

polymers as major components of atmospheric organic aerosols, Science, 303, 1659-

1662. 

Kleeman, M.J. and G.R. Cass. 2001. A 3D Eulerian source-oriented model for an externally 

mixed aerosol. Environ. Sci. and Technol., 35, 4834-4848. 

Koo, B., A.S. Ansari, and S.N. Pandis. 2003. Integrated Approaches to Modeling the Organic 

and Inorganic Atmospheric Aerosol Components. Atmos. Environ., 37, 4757-4768. 

Kumar, N., F.W. Lurmann, A.S. Wexler, S. Pandis, and J.H. Seinfeld. 1996. Development and 

Application of a Three Dimensional Aerosol Model. Presented at the A&WMA 

Specialty Conference on Computing in Environmental Resource Management, Research 

Triangle Park, NC, December 2-4, 1996. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-5 

Kumar, N. and A. G. Russell. 1996. Development of a Computationally efficient, Reactive SubGrid-Scale Plume Model and the Impact in the Northeastern United States Using 

Increasing Levels of Chemical Detail. J. Geophys. Res., 101, 16,737-16,744. 

Landis, M.S. and G. Keeler. 2002. Atmospheric mercury deposition to Lake Michigan during 

the Lake Michigan Mass Balance Study. Environ. Sci. Technol., 36, 4518-4524. 

Lambert, J. D. 1973. Computational Methods in Ordinary Differential Equations. John Wiley 

and Sons Ltd. New York. 

Lin, C.J. and S.O. Pehkonen. 1997. Aqueous-free radical chemistry of mercury in the presence 

of iron oxides and ambient aerosol. Atmos. Environ., 31, 4125-4137. 

 

Lin, C.J. and S.O. Pehkonen. 1998. Oxidation of elemental mercury by aqueous chlorine 

(HOCl/OCl-): Implications for tropospheric mercury chemistry. J. Geophys. Res., 103, 

28093-28102. 

Lindqvist, O. and H. Rodhe. 1985. Atmospheric mercury - a review. Tellus, 37B, 136-159. 

Liu, M. and J. Carroll. 1996. A high resolution air pollution model suitable for dispersion 

studies in complex terrain. Mon. Wea. Rev., 124, 10, 2396-2409. 

Louis, J.F. 1979. A Parametric Model of Vertical Eddy Fluxes in the Atmosphere. Bound. Lay. 

Meteor. 17, 187-202. 

Madronich, S. 1993. UV radiation in the natural and perturbed atmosphere, in Environmental 

Effects of UV (Ultraviolet) Radiation (M. Tevini, ed.), Lewis Publisher, Boca Raton, pp.

17-69. 

Madronich, S. 2002. The Tropospheric Visible Ultra-violet (TUV) model web page. National 

Center for Atmospheric Research, Boulder, CO. http://www.acd.ucar.edu/TUV/. 

Mentel, Th.F., D. Bleilebens and A. Wahner. 1996. A Study of Nighttime Nitrogen Oxide 

Oxidation in a Large Reaction Chamber -- The Fate of NO2, N2O5, and O3 at Different 

Humidities. Atmos. Environ., 30, 4007–4020. 

Menut L., R. Vautard, M. Beekmann, C. Honoré. 2000. Sensitivity of Photochemical Pollution 

using the Adjoint of a Simplified Chemistry-Transport Model. Journal of Geophysical 

Research – Atmospheres, 105, (D12) 15,379-15,402. 

Morris, R.E., S. Lau, and G. Yarwood. 2003. “Development and Application of an Advanced 

Air Toxics Hybrid Photochemical Grid Modeling System.” Presented at 96th Annual 

Conference and Exhibition of the A&WMA, San Diego, California (June 2003). 

Munthe, J. 1992. The aqueous oxidation of elemental mercury by ozone. Atmos. Environ., Part 

A, 26, 1461-1468. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-6 

NASA. 1997. Chemical Kinetics and Photochemical Data for Use in Stratospheric Modeling, 

JPL Publication 97-4. Jet Propulsion Laboratory, California Institute of Technology, 

Pasadena, California. January 15. 

Nenes, A, C. Pilinis, and S.N. Pandis. 1998. ISORROPIA: A New Thermodynamic Model for 

Multiphase Multicomponent Inorganic Aerosols. Aquatic Geochemistry, 4, 123-152. 

Nenes, A, C. Pilinis, and S.N. Pandis. 1999. Continued Development and Testing of a New 

Thermodynamic Aerosol Module for Urban and Regional Air Quality Models. Atmos. 

Environ. 33, 1553-1560. 

Novelli, P.C., P.M. Lang, K.A. Masarie, D.F. Hurst, R. Myers, and J.W. Elkins. 1999. 

Molecular hydrogen in the troposphere: global distribution and budget. J. Geophys. Res., 

104, 30: 427-30,444. 

Odman, M. T. and Ingram, C. L. 1993. Multiscale Air Quality Simulation Platform (MAQSIP): 

Source Code Documentation and Validation. Technical report, 83 pp., ENV-96TR002, 

MCNC–North Carolina Supercomputing Center, Research Triangle Park, North Carolina, 

1996. 

Pandis, S.N., A.S. Wexler, and J.H. Seinfeld. 1993. Secondary organic aerosol formation and 

transport, II, Predicting the ambient secondary organic aerosol size distribution. Atmos. 

Environ., 27A, 2403-2416. 

Pehkonen, S.O. and C.J. Lin. 1998. Aqueous photochemistry of divalent mercury with organic 

acids. J. Air Waste Manage. Assoc., 48, 144-150. 

Pleim, J. 2007. “A combined local and nonlocal closure model for the atmospheric boundary 

layer. Part I: Model description and testing.” J. Appl. Met. and Clim., 46, 1383-1395. 

Radhakrishnan, K. and A.C. Hindmarsh. 1993. Description and Use of LSODE, the Livermore 

Solver for Ordinary Differential Equations. NASA reference Publication 1327. 

Lawrence Livermore National Laboratory, Livermore, CA. 

Raymond, W. and R. Stull. 1990. Application of Transilient Turbulence Theory to Mesoscale 

Numerical Weather Forecasting. Mon. Wea. Rev., 118, 2471-2499. 

Ruijgrok, W., C.I. Davidson, K.W. Nicholson. 1995. Dry deposition of particles – implications 

and recommendations for mapping of deposition over Europe. Tellus, 47B, 587 – 601. 

Russell, L.M., S.N. Pandis, and J.H. Seinfeld. 1994. Aerosol production and growth in the 

marine boundary layer. J. Geophys. Res., 99, 20989-21003. 

Ryaboshapko, A., R. Bullock, R. Ebinghaus, I. Ilyin, K. Lohman, J. Munthe, G. Petersen, C. 

Seigneur and I. Wängberg. 2002. Comparison of mercury chemistry models. Atmos. 

Environ., 36, 3881-3898. 

Sanemasa, I. 1975. The solubility of elemental mercury vapor in water. Bull. Chem. Soc. Jpn., 

48, 1795-1798. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-7 

 

Schroeder, W.H. and J. Munthe. 1998. Atmospheric mercury – An overview. Atmos. Environ., 

32, 809-822. 

Scott, B.C. 1978. Parameterization of sulfate removal by precipitation. J. Appl. Meteor., 17, 

1375-1389 

Sehmel, G.A. 1980. Particle and Gas Deposition, a Review. Atmos. Environ., 14, 983-1011. 

Seigneur, C., H. Abeck, G. Chia, M. Reinhard, N.S. Bloom, E. Prestbo and P. Saxena. 1998. 

Mercury adsorption to elemental carbon (soot) particles and atmospheric particulate 

matter. Atmos. Environ., 32, 2649-2657. 

Seigneur, C., P. Karamchandani, K. Lohman, K. Vijayaraghavan and R.-L. Shia. 2001a. 

Multiscale modeling of the atmospheric fate and transport of mercury. J. Geophys. Res., 

106, 27795-27809. 

Seigneur, C., P. Karamchandani, K. Lohman and J. Jansen. 2001b. Modeling of mercury in 

power plant plumes. 6

th International Conference on Mercury as a Global Pollutant, 15-

19 October 2001, Minamata, Japan. 

Seigneur, C., K. Vijayaraghavan, K. Lohman and P. Karamchandani. 2003a. Modeling the 

atmospheric fate and transport of mercury over North America. Fuel Processing 

Technol., in press. 

Seigneur, C., P. Karamchandani, K. Vijayaraghavan, K. Lohman and G. Yelluru. 2003d. 

Scoping Study for Mercury Deposition in the Upper Midwest. AER Report CP149-03-

01a, prepared for the Midwest Regional Planning Organization, Des Plaines, IL. 

Seinfeld, J.H., and S.N. Pandis. 1998. Atmospheric Chemistry and Physics, From Air Pollution 

to Climate Change. John Wiley and Sons, Inc., NY. 

Sillen, G.L. and A.E. Martell, (Eds.). 1964. Stability constants of metal ion complexes, Spec. 

Publ. Chem. Soc., 17, 754. 

Sillman, S. 1995. The Use of NOy, H2O2, and HNO3 as Indicators for Ozone - NOXHydrocarbon Sensitivity in Urban Locations. J. Geophys. Res., 100, 14,175-14,188. 

Slinn, S.A. and W.G.N. Slinn. 1980. Predictions for particle deposition on natural waters. 

Atmos. Environ., 24, 1013-1016. 

Slinn, W.G.N. 1982. Predictions for particle deposition to vegetative surfaces. Atmos. Environ., 

16, 1785-1794. 

Smagorinsky, J. 1963. General Circulation Experiments with the Primitive Equations: I. The 

Basic Experiment. Mon. Wea. Rev., 91, 99-164. 

Smolarkiewicz, P.K. 1983. A Simple Positive Definite Advection Scheme with Small Implicit 

Diffusion. Mon. Wea. Rev., 111, 479-486. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-8 

Sommar, J., K. Gårdfeldt, D. Strömberg and X. Feng. 2001. A kinetic study of the gas-phase 

reaction between the hydroxyl radical and atomic mercury. Atmos. Environ., 35, 3049-

3054. 

Strader, R., C. Gurciullo, S.N. Pandis, N. Kumar, and F.W. Lurmann. 1998. Development of 

gas-phase chemistry, secondary organic aerosol, and aqueous-phase chemistry modules 

for PM modeling. Final report for CRC Project A21-1 prepared for the Coordinating 

Research Council, Atlanta, GA by Sonoma Technology, Inc., Petaluma, CA, STI-97510-

1822-FR, October. 

Strader, R., F. Lurmann, and S.N. Pandis. 1999. Evaluation of secondary organic aerosol 

formation in winter. Atmos. Environ., 33, 4849-4863. 

Sun, P., D.P. Chock, and S.L. Winkler. 1994. An Implicit-Explicit Hybrid Solver for a System 

of Stiff Kinetic Equations. J. Comp. Phys., 115. 

Tanaka, P.L., D.T. Allen, E.C. McDonald-Buller, S. Chang, Y. Kimura, C.B. Mullins, G. 

Yarwood, J.D. Neece. 2000. Development of a chlorine mechanism for use in the 

carbon bond IV chemistry model. Journal of Geophysical Research. Vol. 108(D4), 4145. 

Tokos, J.J.S., B. Hall, J.A. Calhoun, and E.M. Prestbo. 1998. Homogeneous gas-phase reaction 

of Hg0

 with H2O2, O3, CH3I, and (CH3)2S: Implications for atmospheric Hg cycling. 

Atmos. Environ., 32, 823-827. 

Tonnesen, G.S. and R.L. Dennis. 2000. Analysis of radical propagation efficiency to assess 

ozone sensitivity to hydrocarbons and NOx. Part 1: Local indicators of odd oxygen 

production sensitivity. J. Geophys. Res., 105, 9213-9225. 

Tonnesen G. and B. Wang. 2004. CMAQ Tagged Species Source Apportionment, July 22, 

2004; http://www.wrapair.org/forums/aoh/meetings/040722/UCR_tssa_tracer_v2.ppt. 

Turner, D.B., T. Chico, and A. Catalano. 1986. TUPOS: A Multiple Source Gaussian 

Dispersion Algorithm Using On-Site Turbulence Data. U.S Environmental Protection 

Agency, Research Triangle Park, North Carolina (EPA-600/8-86/010). 

Turner, D.B. and R.H. Schulze. 2007. Practical Guide to Atmospheric Dispersion Modeling. 

Air and Waste Management Association. 

van Loon, L., E. Mader, and S.L. Scott. 2000. Reduction of the aqueous mercuric ion by sulfite: 

UV spectrum of HgSO3 and its intramolecular redox reactions. J. Phys. Chem., 104, 

1621-1626. 

van Loon, L.L., E.A. Mader, and S.L. Scott. 2001. Sulfite stabilization and reduction of the 

aqueous mercuric ion: kinetic determination of sequential formation constants. J. Phys. 

Chem., 105, 3190-3195. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-9 

Voulgarakis, A., N.H. Savage, O. Wild, G.D. Carver, K.C. Clemitshaw, J.A. Pyle. 2009. 

Upgrading photolysis in the p-TOMCAT CTM: model evaluation and assessment of the 

role of clouds. Geoscientific Model Development, 2, 59-72. 

Wang, Y., et al. 2003. Springtime photochemistry at northern mid and high latitudes. J. 

Geophys. Res., 108(D4), 8358. 

Wang, Z., J. E. Langstaff, and H.E. Jeffries. 1995. The Application of the Integrated Process 

Rate Analysis Method for Investigation of Urban Airshed Model (UAM) Sensitivity to 

Speciation in VOC Emissions Data. Air & Waste Management Association annual 

meeting, San Antonio, TX. 

Warneck, P. 1989. The Chemistry of the Natural Atmosphere. Academic Press, New York, NY. 

Wesely, M.L. 1989. Parameterization of Surface Resistances to Gaseous Dry Deposition in 

Regional-Scale Numerical Models. Atmos. Environ., 23, 1293-1304. 

Wesely, M.L., and B.B. Hicks. 2000. A review of the current status of knowledge on dry 

deposition. Atmos. Environ., 34, 2261. 

Whitten, G., H.P. Deuel, C.S. Burton, and J.L. Haney. 1996. Memorandum to OTAG 

Participants “Overview of the Implementation of an Updated Isoprene Chemistry 

Mechanism in CB4/UAM-V.” (Revised Memorandum, July 22). 

Yamartino, R. 2000. Refinement of Horizontal Diffusion in Photochemical Grid Models. 

Presented at the American Meteorological Society 11th Joint Conference on the 

Applications of Air Pollution Meteorology with the Air and Waste Management 

Association, Long Beach, CA, January 9-13. 

Yang, Y.J., J.G. Wilkinson, and A.G. Russell, 1997: Fast direct sensitivity analysis of 

multidimensional photochemical models, Environ. Sci. Technol., 31, 2859-2868. 

Yarwood. G., G.Z. Whitten, and S. Rao. 2005a. “Updates to the Carbon Bond 4 Photochemical 

Mechanism.” Prepared for the Lake Michigan Air Directors Consortium, Des Plains, 

Illinois. 

Yarwood. G., S. Rao, M. Yocke, and G.Z. Whitten. 2005b. Updates to the Carbon Bond 

chemical mechanism: CB05. Final Report prepared for US EPA. Available at 

http://www.camx.com/publ/pdfs/CB05_Final_Report_120805.pdf. 

Yarwood, G., R.E. Morris, M.A. Yocke, H. Hogo and T. Chico. 1996. Development of a 

Methodology for Source Apportionment of Ozone Concentration Estimates from a 

Photochemical Grid Model. Presented at the 89th AWMA Annual Meeting, Nashville 

TN, June 23-28. 

Yarwood, G., T.E. Stoeckenius, G. Wilson, R.E. Morris, and M.A. Yocke. 1996. Development 

of a Methodology to Assess Geographic and Temporal Ozone Control Strategies for the 

South Coast Air Basin. Prepared for South Coast Air Quality Management District, 

Diamond Bar, CA. 
CAMx v5.30 User’s Guide, December 2010 

References 

Y:\CAMx\UsersGuide\v5.30\New Folder\Sec_12_references.docx 12-10 

Yarwood, G., T.E. Stoeckenius, J.G. Heiken, A.M. Dunker. 2003. Modeling Weekday/Weekend 

Ozone Differences in the Los Angeles Region for 1997. J. Air & Waste Manage. Assoc., 

53, 864. 

Zaveri, R.A. and L.K. Peters. 1999. A new lumped structure photochemical mechanism for 

large-scale applications. J. Geophys. Res., 104, 30387-30416. 

Zhang, L., S. Gong, J. Padro, L. Barrie. 2001. A size-segregated particle dry deposition scheme 

for an atmospheric aerosol module. Atmos. Environ., 35, 549-560. 

Zhang, L., J. R. Brook, and R. Vet. 2003. A revised parameterization for gaseous dry deposition 

in air-quality models. Atmos. Chem. Phys., 3, 2067–2082. 

Zhang, X., S. Kondragunta, C. Schmidt, and F. Kogan. 2008. Near real time monitoring of 

biomass burning particulate emissions (PM2.5) across contiguous United States using 

multiple satellite instruments. Atmospheric Environment, 42, 6959-6972.