1 

## CALPUFF Chemistry Updates:

User’s Instructions for API Chemistry Options

October 25, 2010

Prepared by

TRC Environmental Corporation 650 Suffolk Street Lowell, MA 01854

Prepared for

WEST Associates2 

### 1.0 Introduction

Two chemical transformation module options were introduced into Version 5.8 of the CALPUFF modeling system (Scire et al., 2000a,b) by Karamchandani et al . (2008) in a study sponsored by the American Petroleum Institute (API). These modules include:

Modules 1 and 2

• Modification of the existing RIVAD chemical mechanism for the transformation of SO 2 to SO 4 and NO/NO 2 to HNO 3 and NO 3

• Replacement of the MESOPUFF-II CHEMEQ model with the ISORROPIA (Version 1.7) model for inorganic ga s-particle equilibrium

• Addition of a new option for aqueous-phase transformation adapted from the RADM cloud implementation in CMAQ/SCICHEM Module 2

• Addition of a new option for anthropoge nic secondary organic aerosol (SOA) formation based on the CalTech SOA r outines implemented in CMAQ-MADRID

TRC has implemented these modules as options in to a new version of CALPUFF (Version 6.4). Module Option 1 is implemented as the 6 th CALPUFF chemical tran sformation option (MCHEM = 6), and Module Option 2 is implemented as the 7 th CALPUFF chemical transformation option (MCHEM = 7). However, one difference is that TRC has updated the gas-particle equilibrium model for nitrates from ISORROPIA v1.7 to ISORROPIA v2.1 (Nenes et al., 1998; Fountoukis and Nenes, 2007). ISORROPIA v2.1 is the only ve rsion of the model curre ntly supported by the developers.

Both new module options use the ISORROPIA v2.1 model instead of the CHEMEQ gas-particle equilibrium model for nitrates used with the MCHEM=1, 3 options. Since total nitrate (TNO 3 ) is partitioned into the gas (HNO 3 ) and particulate (NO 3 ) phases based in part on the ammonia available after preferential scav enging by sulfate, the equilibrium should be determined using the total amount of sulfate and nitrat e (due to all sources, background, etc.) present at a particular location and time. This is accomplished using the ammonia-limiting method (ALM) of the POSTUTIL postprocessor in the CALPUFF modeling system. Because POSTUTIL also employs the CHEMEQ model in the ALM, Ka ramchandani et al. (2009) replaced CHEMEQ with ISORROPIA v1.7 in POSTUTIL Version 1.56 in a hardwired way which prevented backward compatibility. TRC has implemented the current ISORROPIA v2.1 module into a new POSTUTIL Version 1.64 as an option which reta ins backward compatibility of the POSTUTIL code.

The ISORROPIA v2.1 model is docum ented and maintained by its developers, as described at the ISORROPIA home page ( http://nenes.eas.gatech.edu/ISORROPIA ). It is incorporated in this version of CALPUFF and POSTUTIL without m odification, with permission from the model developers following the te rms-of-use requirements.3 

### 2.0 Model Implementation

The FORTRAN codes introduced in the API-spon sored update to CALPUFF are made up of a number of subroutines and supportin g include-files for declarations of parameters and variables stored in common. To f acilitate future maintenance new subr outines other than those that are part of ISORROPIA are bundled in a single FORT RAN file (API_CHEM.FOR) that is separate from the CALPUFF file (CALPU FF.FOR), the code for ISORROPIA remains a separate file (ISORROPIA.FOR), and the included commons -files are retained without modification (aqueous.puf, newsoa.puf, soadat.puf, and isrpia.i nc). Should any of these submodels be updated, CALPUFF can be immediately updated as well.

The file API_CHEM.FOR includes:

AER routines based on existing CALPUFF routines Subroutine CHEMRIV6 Subroutine CHEMRIV7 Subroutine CHMRIV6 Subroutine CHMRIV7 Subroutine SETBCKOC

ISORROPIA interface routine Subroutine ISODRIVER

CALTECH SOA routines Subroutine SOADRIVER Subroutine CALTECH_SOA Subroutine SOASUB

AQUEOUS-CHEMISTRY ROUTINES BASED ON RADM/CMAQ Subroutine AQRADM Function HLCONST Function INDEX1

Several modifications were made to these new m odules. Options have been assigned either new user-selected modeling option vari ables (changed via the control fi le) or local logical operators that may be switched in an individual subroutine to restore the original logic. CALPUFF will need to be recompiled if a loca l logical variable is changed.

The following variable settings will restore the features and logic of the original API implementation (for testing):

Control File

• MLWC = 0 Do not read gri dded cloud water from file

• MNH3 = 1 Read monthly ammonia vertical profiles

• MAVGNH3 = 0 Do not average NH 3 profiles within a puff4 • RNITE1 = 0.0 Do not include heterogeneous SO 2 transformation

Local Logical in Subroutine

• L_KGPCM = .FALSE. CHEMRIV6, CHEMRIV7

• L_TNO3FLOOR = .FALSE. CHEMRIV6, CHEMRIV7

• L_RAINCLOUD = .FALSE. CHEMRIV6, CHEMRIV7

• L_SCAV6 = .FALSE. WET

More documentation about the local logical configuration is pr ovided in the code.5 

### 3.0 CALPUFF

The new chemistry options in CALPUFF are acc essed through control-file selections. Depending on the configuration, one or two new files may also be required. Most of the controlfile selections are simple to characterize as few new settings are involved. These are detailed in Section 3.1.

When CALPUFF is used to calculate seconda ry aerosol (SOA) formation from the source emissions using the new mechanism (MCHEM = 7) , species in addition to those used in the RIVAD mechanism are associated with the SOA treatment. These species include

• primary organic carbon

• precursor (emitted) volatile organic compounds ( VOCs): toluene, xylene, long-chain alkanes, and polycycli c aromatic hydrocarbons

• condensable products from these species and their particle-phase counterparts

As with the other chemical tr ansformation mechanisms, the species must use particular names and must be assigned in a partic ular order. Both must confor m to the list in Table 3-1.

These species have been added to the species li brary of the CALPUFF GUI, and a "Quick-Start" option is available to select thes e species in the correct order. This feature should be used to construct the control file for this chemical transformation option.

Source emission rates for the SOA option will ty pically include emissions of the four VOC species and primary organic car bon emissions when available, although some sources may have zero emissions of some of these species. For ex ample, if a given source only emits the aromatic VOCs TOL and XYL then all the other species can be designated as non-emitted species in the control file. Furthermore, fewer than 25 species may be used in a simulation if the omitted species are at the end of the list. For exampl e, if PAH emissions are zero, then the first 20 species may be used. If both ALKH and PAH em issions are zero, then the first 17 species may be used.

Background organic carbon concentrations are also needed, and these are provided in the same way they are provided for MCHEM = 4, as monthl y values of fine par ticulate concentration (BCKPMF) and the corresponding m onthly fractions for the orga nic portion (O FRAC) of the fine particulate. See the contro l file Input Group 11 in Section 3.1.6 Table 3-1 Species Names and Sequence

SPECIES NUMBER SPECIES NAME DESCRIPTION PHASE

1 SO2 Sulfur Dioxide Gas 2 SO4 Sulfate Particle 3 NO Nitrogen Oxide Gas 4 NO2 Nitrogen Dioxide Gas 5 HNO3 Nitrate Gas 6 NO3 Nitrate Particle 7 POC Primary Organic Carbon Particle 8 TOL Toluene Gas 9 TOLAER1 Condensable product from TOL Gas 10 TOLAER2 Condensable product from TOL Gas 11 ATOLA1 Condensable pr oduct from TOL Particle 12 ATOLA2 Condensable pr oduct from TOL Particle 13 XYL Xylene Gas 14 XYLAER1 Condensable product from XYL Gas 15 XYLAER2 Condensable product from XYL Gas 16 AXYLA1 Condensable product from XYL Particle 17 AXYLA2 Condensable product from XYL Particle 18 ALKH Long-Chain Alkanes Gas 19 ALKHAER Condensable product from ALKH Gas 20 AALKHA Condensable produc t from ALKH Particle 21 PAH Polycyclic Aromatic Hydrocarbons Gas 22 PAHAER1 Condensable product from PAH Gas 23 PAHAER2 Condensable product from PAH Gas 24 APAHA1 Condensable pr oduct from PAH Particle 25 APAHA2 Condensable pr oduct from PAH Particle Notes: Species emitted from sources (primary) are in BOLD typeface7 3.1 CALPUFF Control File

Changes for selecting and configuring the new chemistry options are found in Input Groups 0, 2, and 11.

Input Group 0 provides the file-name information for the simulation. The new names are listed in the Other Files section, and are assigned to AUXEXT and NH3ZDAT:

INPUT GROUP: 0 -- Input and Output File Names

-------------------------------------------------------------------------------- Other Files

----------- OZONE.DAT input * OZDAT = * VD.DAT input * VDDAT = * CHEM.DAT input * CHEMDAT= * **AUX input ! AUXEXT = AUX ! (Extension added to METDAT filename(s) for files**  **with auxilliary 2D and 3D data)** H2O2.DAT input * H2O2DAT= * **NH3Z.DAT input ! NH3ZDAT=NH3Z_07.DAT !** HILL.DAT input * HILDAT= * HILLRCT.DAT input * RCTDAT= * COASTLN.DAT input * CSTDAT= * FLUXBDY.DAT input * BDYDAT= * BCON.DAT input * BCNDAT= * DEBUG.DAT output * DEBUG = * MASSFLX.DAT output * FLXDAT= * MASSBAL.DAT output ! BALDAT=CALPUFF.BAL ! FOG.DAT output * FOGDAT= * RISE.DAT output * RISDAT= *

--------------------------------------------------------------------------------

AUXEXT identifies auxiliary data files from a CALMET application. For the new chemistry options with aqueous-phase reactions , the auxiliary file may be used to provide a gridded field of liquid cloud water content. Data for this are processed within CALMET from the 3D.DAT mesoscale model fields to the CALMET modeling grid. Each auxiliary file retains the file name of the standard CALMET output file associated with it, but adds th e extension assigned by AUXEXT. In the example above, the extension a dded to all output CALMET data files in the simulation is ".AUX".

NH3ZDAT identifies the name of a file of monthly average amm onia concentrations for each layer in the CALMET/CALPUFF simu lation grid. This is used only if the new control variable MNH3 in Input Group 2 is set to 1.

Input Group 2 is used to configure the major t echnical options. New or augmented options are MCHEM, MAQCHEM, and MLWC:8 INPUT GROUP: 2 -- Technical options

--------------
Chemical mechanism flag (MCHEM) Default: 1 ! MCHEM = 6 ! 0 = chemical transformation not modeled 1 = transformation rates computed internally (MESOPUFF II scheme) 2 = user-specified transformation rates used 3 = transformation rates computed internally (RIVAD/ARM3 scheme) 4 = secondary organic aerosol formation computed (MESOPUFF II scheme for OH) 5 = user-specified half-life with or without transfer to child species **6 = transformation rates computed internally (Updated RIVAD scheme with**  **ISORROPIA equilibrium) 7 = transformation rates computed**  **internally (Updated RIVAD scheme with ISORROPIA equilibrium and CalTech SOA)** 

Aqueous phase transformation flag (MAQCHEM) **(Used only if MCHEM = 6, or 7)** Default: 0 ! MAQCHEM = 0 ! 0 = aqueous phase transformation not modeled 1 = transformation rates and wet scavenging coefficients adjusted for in-cloud aqueous phase reactions **(adapted from RADM cloud model implementation in CMAQ/SCICHEM)** 

**Liquid Water Content flag (MLWC) (Used only if MAQCHEM = 1) Default: 1 ! MLWC = 0 !**  **0 = water content estimated from cloud cover and presence of precipitation**  **1 = Gridded cloud water data read from CALMET water content output files (filenames are**  **the CALMET.DAT names PLUS the extension AUXEXT provided in Input Group 0)** 

MCHEM selects the chemical transformation mechanis m. The API modules appear as Options 6 and 7. They differ only in the addition of the SOA chemistry module in the latter.

MAQCHEM selects the RADM aqueous-phase transf ormation module, and is active only in combination with MCHEM Options 6 or 7. When selected, it requires information on the cloud liquid water content and the background H 2 O 2 concentrations.

MLWC selects the method used to obtain cloud liqui d water content. The cloud water originally used in the aqueous chemistry was set to 0.5 g/m 3 for precipitating (rain, not snow or ice) clouds and 0.1 g/m 3 for non-precipitating clouds in lieu of providing a pathway for obtaining more specific information. This method is used if MLWC = 0, and it requires cloud cover, temperature, and precipitation ra te fields. Procedures have been implemented in CALMET to pass gridded cloud liquid water content from MM 5/WRF to a new auxiliary output file which may be read by CALPUFF. These data curren tly allow CALPUFF to obtain a mean cloud water9 mixing ratio (g/kg) that is vertic ally-averaged over the depth of th e cloud layer, when present, at the current puff location. This method is used if MLWC = 1.

Input Group 11 provides parameters used in th e chemical transformation mechanisms. New parameters or existing parameters that are used with the API modules are MOZ, BCKO3, MNH3, MAVGNH3, BCKNH3, RNITE1, MH 2O2, BCKH2O2, BCKPMF, and OFRAC:

INPUT GROUP: 11a, 11b -- Chemistry Parameters

---------------------

--------------- Subgroup (11a)

---------------
Several parameters are needed for one or more of the chemical transformation mechanisms. Those used for each mechanism are:
M B A B R R R C B N B V C N N N M K C O D C M G K I I I H H K F V E M K N N N T T T 2 2 P R C C O O H H H E E E O O M A N A Mechanism (MCHEM) Z 3 3 3 3 1 2 3 2 2 F C X Y

-------------------- -------------------------------------------- 0 None . . . . . . . . . . . . . . 1 MESOPUFF II X X . . X X X X . . . . . . 2 User Rates . . . . . . . . . . . . . . 3 RIVAD X X . . X . . . . . . . . . 4 SOA X X . . . . . . . . X X X . 5 Radioactive Decay . . . . . . . . . . . . . X 6 RIVAD/ISORRPIA X X X X X X . . X X . . . . 7 RIVAD/ISORRPIA/SOA X X X X X X . . X X X X . .

Ozone data input option (MOZ) Default: 1 ! MOZ = 0 ! (Used only if MCHEM = 1,3,4 **,6, or 7** ) 0 = use a monthly background ozone value 1 = read hourly ozone concentrations from the OZONE.DAT data file

Monthly ozone concentrations in ppb (BCKO3) (Used only if MCHEM = 1,3,4 **,6, or 7** and either MOZ = 0, or MOZ = 1 and all hourly O3 data missing) Default: 12*80. ! BCKO3 = 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00 !

**Ammonia data option (MNH3) Default: 1 ! MNH3 = 0 ! (Used only if MCHEM = 6 or 7)**  **0 = use a single monthly background ammonia value for all layers 1 = read monthly background ammonia values for each layer from**  **the NH3Z.DAT data file**

**Ammonia vertical averaging option (MAVGNH3) (Used only if MCHEM = 6 or 7, and MNH3 = 1)**  **0 = use NH3 at puff center height (no averaging is done) 1 = average NH3 values over vertical extent of puff**  **Default: 1 ! MAVGNH3 = 0 !**10 Monthly ammonia concentrations in ppb (BCKNH3) (Used only if MCHEM = 1 or 3, or **if MCHEM = 6 or 7, and MNH3 = 0)** Default: 12*10. ! BCKNH3 = 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 !

Nighttime SO2 loss rate in %/hour (RNITE1) (Used only if MCHEM = 1, **6 or 7** ) **This rate is used only at night for MCHEM=1 and is added to the computed rate both day**  **and night for MCHEM=6,7 (heterogeneous reactions)** Default: 0.2 ! RNITE1 = .2 !

Nighttime NOx loss rate in %/hour (RNITE2) (Used only if MCHEM = 1) Default: 2.0 ! RNITE2 = 2.0 !

Nighttime HNO3 formation rate in %/hour (RNITE3) (Used only if MCHEM = 1) Default: 2.0 ! RNITE3 = 2.0 !

H2O2 data input option (MH2O2) Default: 1 ! MH2O2 = 1 ! **(Used only if MCHEM = 6 or 7, and MAQCHEM = 1)** 0 = use a monthly background H2O2 value 1 = read hourly H2O2 concentrations from the H2O2.DAT data file

Monthly H2O2 concentrations in ppb (BCKH2O2) (Used only if MQACHEM = 1 and either MH2O2 = 0 or MH2O2 = 1 and all hourly H2O2 data missing) Default: 12*1. ! BCKH2O2 = 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 !

--- Data for SECONDARY ORGANIC AEROSOL (SOA) Options (used only if MCHEM = 4 **or 7** )

The MCHEM = 4 SOA module uses monthly values of: Fine particulate concentration in ug/m^3 (BCKPMF) Organic fraction of fine particulate (OFRAC) VOC / NOX ratio (after reaction) (VCNX)

**The MCHEM = 7 SOA module uses monthly values of: Fine particulate concentration in ug/m^3 (BCKPMF)**  **Organic fraction of fine particulate (OFRAC)**

These characterize the air mass when computing the formation of SOA from VOC emissions.

MOZ selects the source of the background oz one data, and functions as before.

BCKO3 provides monthly ozone concentrations to be used as indicated by MOZ.

MNH3 selects the source of the monthly b ackground ammonia data when chemical transformation mechanism MCHEM = 6 or 7 is selected. It provi des the option to use either monthly concentrations entered in this control file or to read monthly ammonia profiles (a concentration for each layer for each m onth) from the NH3Z.DAT input file.11 MAVGNH3 selects the way vertical ammonia pr ofiles are used. The background ammonia concentration for a particular puff and time step ma y be either taken from the layer that contains the puff-center, or averaged from values in the layers that the puff overlaps.

BCKNH3 provides monthly ammonia concentrations to be used as indicated by MNH3 for chemical transformation mechanisms MCHEM = 6 and 7. These values are always used for chemical transformation mechanisms MCHEM = 1 and 3.

RNITE1 assigns the nighttime SO 2 loss rate for the MESOPUFF-II (MCHEM = 1) chemical mechanism, and it assigns the SO 2 loss rate due to heterogeneous reactions (day and night) for the API modules (MCHEM = 6, 7). Its default value is 0.2%/hr.

Both the MESOPUFF-II and the RIVAD (MCHEM = 3) transformation options in CALPUFF include an SO 2 -to-SO 4 transformation rate due to hetero geneous reactions. These are not important during the day when gas reactions dominate, but remain active at night. The default transformation rate is 0.2%/hour for this pathway. RIVAD adds this rate to all other SO 2 transformation rates calculated both day a nd night. MESOPUFF-II uses 0.2%/hour as a minimum for heterogeneous reactions during the day and it uses RN ITE1 at night. Karamchandani et al. (2008) do not explicitly include heterogeneous SO 2 -to-SO 4 reactions in their implementation for API, so the SO 2 -to-SO 4 transformation rate at night in the absence of aqueous-phase reactions is identically zero, whic h is equivalent to setting RNITE1 = 0.0.

3.2 Monthly Ammonia Concentration File

The control-file variable MNH3 selects the so urce of the monthly background ammonia data when chemical transformation mechanism MCHEM = 6 or 7 is selected. It provides the option to use monthly vertical profiles of ammonia (a concentration for each layer for each month) from the NH3Z.DAT input file.

The header of the NH3Z.DAT file provides the concentration units, the number of layers, and the row-order of the data. The row-order currently accepted places data for one month on a single line in which the data progress from Layer 1 to the top-most CALPUFF layer. Therefore there are 12 data records, one for each month. The first entry of each line is the name of the month so there is no ambiguity. An example file is liste d in Table 3-2, and the variables are defined in Table 3-3 and Table 3-4. Note that Record 2 of the file identifies the number of comment records that follow. These comment records shou ld provide important information on the source of the ammonia data and the methods and assumpti ons used to prepare the file. There is no limit on the number of these records.12 Table 3-2 Example NH3Z.DAT Input Data File

NH3Z.DAT 1.0 Monthly NH3 for each model layer 2 Example file for illustration only. Application-specific ammonia concentration profiles must be developed.
PPB MONTH_LAYER 10 JANUARY : 0.2186 0.2186 0.2125 0.2054 0.1918 0.1645 0.1460 0.1228 0.0993 0.0903 FEBRUARY : 0.2186 0.2186 0.2125 0.2054 0.1918 0.1645 0.1460 0.1228 0.0993 0.0903 MARCH : 0.5416 0.5416 0.5394 0.5394 0.5348 0.4955 0.4431 0.3636 0.2412 0.1847 APRIL : 0.5416 0.5416 0.5394 0.5394 0.5348 0.4955 0.4431 0.3636 0.2412 0.1847 MAY : 0.5416 0.5416 0.5394 0.5394 0.5348 0.4955 0.4431 0.3636 0.2412 0.1847 JUNE : 0.6458 0.6458 0.6378 0.6339 0.6139 0.5699 0.5287 0.4508 0.3354 0.2660 JULY : 0.6458 0.6458 0.6378 0.6339 0.6139 0.5699 0.5287 0.4508 0.3354 0.2660 AUGUST : 0.6458 0.6458 0.6378 0.6339 0.6139 0.5699 0.5287 0.4508 0.3354 0.2660 SEPTEMBER : 0.5107 0.5107 0.4986 0.4869 0.4691 0.4334 0.3763 0.2981 0.1921 0.1400 OCTOBER : 0.5107 0.5107 0.4986 0.4869 0.4691 0.4334 0.3763 0.2981 0.1921 0.1400 NOVEMBER : 0.5107 0.5107 0.4986 0.4869 0.4691 0.4334 0.3763 0.2981 0.1921 0.1400 DECEMBER : 0.2186 0.2186 0.2125 0.2054 0.1918 0.1645 0.1460 0.1228 0.0993 0.090313 Table 3-3 NH3Z.DAT - Header Records - General Data

Record Variable Type Description

1 DATASET character*16 Dataset name (NH3Z.DAT) 1 DATAVER character*16 Dataset version (1.0) 1 DATAMOD character*64 Dataset message field 2 NCOM integer Number of comment records to follow

NEXT NCOM Lines COMMENT1 character *132 Documentation for QA (up to 132 characters/line)

NCOM+3 CUNITS character*16 Concentration units (must be PPB) NCOM+4 CFORMAT character*16 Format of data records (must be MONTH_LAYER) NCOM+5 NZFILE integer Number of layers (must match modeling grid)

Table 3-4 NH3Z.DAT - Data Records (Repeated for each month for MONTH-LAYER format)

Data Record No. Variable No. Variable Type Description

1 1 CMONTH C*10 Month name (upper case, left-justified) 1 2 (Delimiter) C*1 ':' delimiter separates month name from data

1 3 BCKNH3ZM (imo,1) real Background ammonia concentration for month in model Layer 1

1 4 BCKNH3ZM (imo,2) real Background ammonia concentration for month in model Layer 2

1 5 BCKNH3ZM (imo,3) real Background ammonia concentration for month in model Layer 3

1 2+iz BCKNH3ZM (imo,iz) real Background ammonia concentration for month in model Layer iz

1 2+ NZFILE BCKNH3ZM (imo,nzfile) real Background ammonia concentration for month in model Layer nzfile (top layer in grid)

NOTES: 1. Record length is limited to 264 characters

2. BCKNH3ZM values are read free-format an d must be separated by 1 or more spaces.14 3.3 CALMET Auxiliary Data File (CALMET.AUX)

Gridded cloud liquid water data from MM5/W RF can be passed through CALMET via the 3D.DAT input file and then output as one of the variables writ ten to a CALMET auxiliary data file (CALMET.AUX). The content of this file is flexible in that any number of 2-dimensional (2-D) and 3-dimensional (3-D) variables can be accommodated. All 2-D and 3-D data arrays are defined on the CALMET modeling grid.

The CALMET.AUX file header record s contain file identification labels, descriptive titles of the CALMET run (including a complete image of th e CALMET control file) as comment records, and information about the horizon tal and vertical grid systems of the meteorological grid. A description of each variable in the head er records is provided in Table 3-5.

Sample FORTRAN write statements for the CALMET.AUX header records are:

c --- Record #1 - File Declaration -- 24 words write(ioaux) dataset,dataver,datamod

c --- Record #2 - Number of comment lines -- 1 word write(ioaux) ncom

c --- Record #3 to NCOM+2 (Comment record section) -- 33 words each c --- Loop over records do i=1,ncom write(ioaux) comment enddo

c --- record #NCOM+3 - run control parameters -- 36 words write(ioaux) ibyrn,ibmon,ibdyn,ibhrn,ibsecn, 1 ieyrn,iemon,iedyn,iehrn,iesecn,axtz,irlg, 2 nx, ny, nz, dgrid, xorigr, yorigr, 3 pmap,datum,daten,feast,fnorth,utmhem,iutmzn, 4 rnlat0,relon0,xlat1,xlat2,naux2d,naux3d

c --- record #NCOM+4 - cell face heights (NZ + 1 words) clabel='ZFACE' write(ioaux)clabel,idum,idum,idum,idum,zface

c --- record #NCOM+5 - Names, units and types of 2D variables c --- (2+naux2d*5 words) clabel='2D_VARS' write(ioaux) clabel,(auxnam2d(k),k=1,naux2d), & (auxunit2d(k),k=1,naux2d), & (auxtyp2d(k),k=1,naux2d)

c --- record #NCOM+6 - Names, units and types of 3D variables c --- (2+naux3d*5 words) clabel='3D_VARS' write(ioaux) clabel,(auxnam3d(k),k=1,naux3d), & (auxunit3d(k),k=1,naux3d), & (auxtyp3d(k),k=1,naux3d)

The following declarations apply:

real ZFACEM(nz+1) character*132 COMMENT(ncom) character*64 DATAMOD15 character*16 DATASET,DATAVER character*12 DATEN character*8 PMAP,DATUM character*8 CLABEL character*4 UTMHEM character*8 AUXNAM2D(naux2d), auxnam3d(naux3d) character*8 AUXUNIT2D(naux2d), auxunit3d(naux3d) character*4 AUXTYP2D(naux2d), auxtyp3d(naux3d)

The CALMET.AUX file data records contain time-varying fields of the gridded meteorological variables named in the header. For each time period, data for the 2-D variables are written first, followed by data for the 3-D variables. A description of each variable in the data records is provided in Table 3-6.

Sample FORTRAN write statements fo r the CALMET.AUX data records are:

c --- Write the 2D variables Loop over NAUX2D 2D variables, k (for integer*4 variables ...) write(ioaux)AUXNAME2D(k),NDATHRB,IBSEC,NDATHRE,IESEC,I2DVAR (OR, for real*4 variables ...) write(ioaux)AUXNAME2D(k),NDATHRB,IBSEC,NDATHRE,IESEC,R2DVAR End loop over 2D variables

c --- Write the 3D variables Loop over NAUX3D 3D variables, k Loop over NZFILE layers, n clabel=AUXNAME3D(k) write(clabel(6:8),'(i3.3)') n (for integer*4 variables ...) write(ioaux)clabel,NDATHRB,IBSEC,NDATHRE,IESEC,((I3DVAR(i,j,k),i=1,nx),j=1,ny) (OR, for real*4 variables ...) write(ioaux)clabel,NDATHRB,IBSEC,NDATHRE,IESEC,((R3DVAR(i,j,k),i=1,nx),j=1,ny) End loop over layers End loop over 3D variables
The following declarations apply:

real R2DVAR(nx,ny), R3DVAR(nx,ny,nzfile) integer I2DVAR(nx,ny), I3DVAR(nx,ny,nzfile) character*8 CLABEL16 Table 3-5 CALMET.AUX - Header Records

Header Record No. Variable No. Variable Type a Description

1 1 DATASET char*16 Dataset name (CALMET.AUX)

1 2 DATAVER char*16 Dataset version 1 3 DATAMOD char*64 Dataset message field 2 1 NCOM integer Number of comment records to follow

3 to NCOM+2 1 COMMENT char*132 Comment record (repeated NCOM times), each containing an image of one line of the CALMET control file, or other information NCOM+3 1 IBYR integer Starting year of CALMET run NCOM+3 2 IBMO integer Starting month NCOM+3 3 IBDY integer Starting day NCOM+3 4 IBHR integer Starting time (hour at start) NCOM+3 5 IBSEC integer Starting time (seconds at start, 0-3600) NCOM+3 6 IEYR integer Ending year of CALMET run NCOM+3 7 IEMO integer Ending month NCOM+3 8 IEDY integer Ending day NCOM+3 9 IEHR integer Ending time (hour at end) NCOM+3 10 IESEC integer Ending time (seconds at end, 0-3600) NCOM+3 11 ABTZ char*8 Base time zone (e.g., UTC-0500 = EST in USA) NCOM+3 12 IRLG integer Run length NCOM+3 13 NX integer Number of grid cells in the X direction NCOM+3 14 NY integer Number of grid cells in the Y direction NCOM+3 15 NZ integer Number of vertical layers NCOM+3 16 DGRID real Grid spacing (m) NCOM+3 17 XORIGR real X coordinate (m) of southwest corner of grid cell (1,1) NCOM+3 18 YORIGR real Y coordinate (m) of southwest corner of grid cell (1,1)

a char*N = Character*N17 Table 3-5 (Continued) CALMET.AUX - Header Records

Header Record

No. Variable No. Variable Type a Description

NCOM+3 19 PMAP b char*8 Map projection b UTM : Universal Transverse Mercator TTM : Tangential Transverse Mercator LCC : Lambert Conformal Conic PS : Polar Stereographic EM : Equatorial Mercator LAZA : Lambert Azimuthal Equal Area NCOM+3 20 DATUM char*8 DATUM Code for grid coordinates NCOM+3 21 DATEN char*12 NIMA date (MM-DD-YYYY) for datum definitions

NCOM+3 22 FEAST real False Easting (km) for PMAP = TTM, LCC, or LAZA

NCOM+3 23 FNORTH real False Northing (km) for PMAP = TTM, LCC, or LAZA NCOM+3 24 UTMHEM char*4 Hemisphere for UTM projection (N or S) NCOM+3 25 IUTMZN integer UTM zone for PMAP = UTM NCOM+3 26 RNLAT0 real North latitude (degrees) for projection origin (for PMAP= TTM, LCC, PS, EM, or LAZA) NCOM+3 27 RELON0 real East longitude (degrees) for projection origin (for PMAP= TTM, LCC, PS, EM, or LAZA) NCOM+3 28 XLAT1 real North latitude (degrees) of matching parallel #1 for map projection PMAP= LCC or PS NCOM+3 29 XLAT2 real North latitude (degrees) of matching parallel #2 for map projection PMAP= LCC NCOM+3 30 NAUX2D integer Number of 2D variables NCOM+3 31 NAUX3D integer Number of 3D variables

a char*N = Character*N b PMAP = EM, PS, and LAZA are not currently available in CALMET18 Table 3-5 (Concluded) CALMET.AUX - Header Records

Header Record

No. Variable No. Variable Type a Description

NCOM+4 1 CLABEL char*8 Variable label ('ZFACE') NCOM+4 2-5 IDUM integer Variable not used NCOM+4 6 ZFACE real array Heights (m) of cell faces (NZ + 1 values)

NCOM+5 1-NAUX2D AUXNAM2D char*8 array Names of 2D variables in file

NCOM+5 NAUX2D +1 to 2*NAUX2D AUXUNIT2D char*8 array Units for 2D variables in file (e.g. M, KG/M3, G/KG, etc.)

NCOM+5 2*NAUX2D +1 to 3*NAUX2D AUXTYP2D char*4 array Data type for 2D variables in file (R_4 for real*4, I_4 for integer*4, etc.)

NCOM+6 1-NAUX3D AUXNAM3D char*8 array Names of 3D variables in file

NCOM+6 NAUX3D +1 to 2*NAUX3D AUXUNIT3D char*8 array Units for 3D variables in file (e.g. M, KG/M3, G/KG, etc.)

NCOM+6 2*NAUX3D +1 to 3*NAUX3D AUXTYP3D char*4 array Data type for 3D variables in file (R_4 for real*4, I_4 for integer*4, etc.)

a char*N = Character*N19 Table 3-6 CALMET.AUX - Data Records

Record

Type Variable No. Variable Name Type a Description

2D integer 1 CLABEL char*8 Variable label equal to corresponding AUXNAM2D in header

2D integer 2,3 NDATHRB, IBSEC integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS) -- begin

2D integer 4,5 NDATHRE, IESEC integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS) -- end

2D integer 6 I2DVAR integer array Value of integer variable at each grid point

2D real 1 CLABEL char*8 Variable label equal to corresponding AUXNAM2D in header
2D real 2,3 NDATHRB, IBSEC integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS) -- begin
2D real 4,5 NDATHRE, IESEC integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS) -- end

2D real 6 R2DVAR real array Value of real variable at each grid point

3D integer 1 CLABEL char*8 Variable label AUXNAM3D in header with characters 6,7,8 replaced with the layer number (001, 002, etc.)

3D integer 2,3 NDATHRB, NSECB integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS)

3D integer 4,5 NDATHRE, NSECB integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS)

3D integer 6 I3DVAR integer array Value of integer variable at each grid point in the current layer

3D real 1 CLABEL char*8 Variable label AUXNAM3D in header with characters 6,7,8 replaced with the layer number (001, 002, etc.)
3D real 2,3 NDATHRB, NSECB integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS)
3D real 4,5 NDATHRE, NSECB integer Year, Julian day and hour (YYYYJJJHH) and seconds (SSSS)

3D real 6 R3DVAR real array Value of real variable at each grid point in the current layer (3D record type is repeated NZFILE times (once per layer))

a char*8 = Character*820 

### 4.0 POSTUTIL

Since total nitrate (TNO 3 ) is partitioned into the gas (HNO 3 ) and particulate (NO 3 ) phases based in part on the ammonia available after preferentia l scavenging by sulfate, the equilibrium should be determined using the total amount of sulfate and nitrate (due to all sources, background, etc.) present at a particular location and time. This is accomplished using the ammonia-limiting method (ALM) in POSTUTIL. TRC has implem ented the ISORROPIA (V ersion 2.1) model as an option which retains backward compa tibility of the POSTUTIL code.

The option to use the ISORROPIA model for inorga nic gas-particle equilibrium in place of the MESOPUFF-II CHEMEQ model is controlled by one new POSTUTIL control-file variable, MEQPHASE. This is located in Input Group 1:

Recompute the HNO3/NO3 partition for concentrations? (MNITRATE) Default: 0 ! MNITRATE = 1 ! 0 = no 1 = yes, for all sources combined 2 = yes, for a source group 3 = yes, ALM application in one step

**Gas-Particulate Phase Equilibrium Model used? (MEQPHASE) Default: 1 ! MEQPHASE = 1 !**  **1 = MESOPUFF-II CHEMEQ 2 = ISORROPIA** 
No other changes are required.21 

### 5.0 References

Karamchandani, P., S.-Y. Chen and C. Seigneur, 2008. CALPUFF Chemistry Upgrade , AER Final Report CP277-07-01 prepared for API

, Washington, DC, February 2008.

Karamchandani, P., S.-Y. Chen and R. Balmori, 2009. Evaluation of Original and Improved Versions of CALPUFF using the 1995 SWWYTAF Data Base , AER Report CP281-09-01 prepared for API

, Washington, DC, October 2009.

Fountoukis, C. and Nenes, A., 2007: ISORROPI A II: A Computationall y Efficient Aerosol Thermodynamic Equilibrium Model for K+, Ca2+, Mg2+, NH4+, Na+, SO42-, NO3-, Cl-, H2O Aerosols, Atmos.Chem.Phys., 7 , 4639–4659.

Nenes A, Pandis SN, Pilinis C. ISORROPIA, 1998: A new thermodynami c equilibrium model for multiphase multicomponent inorganic aerosols, Aquat.Geoch.
, 4 , 123-152.

Scire, J.S., F.R. Robe, M.E. Fernau and R.J. Yamartino, 2000a: A User's Guide for the CALMET Meteorological Model. (Version 5.0). Earth Tech., Inc. Concord, MA. (Available from http://www.src.com ).

Scire, J.S., D.G. Strimaitis and R.J. Yama rtino, 2000b: A User's Guide for the CALPUFF Dispersion Model. (Version 5.0). Earth T ech, Inc., Concord, MA. (Available from http://www.src.com ).