Processing categories: area, mobile, point
The Cntlmat program uses control packets to create a growth matrix, and/or a multiplicative control matrix, and/or a reactivity control
matrix. Cntlmat allows seven different control packet types: /MACT/, /CONTROL/, /EMS_CONTROL/, /CTG/, /ALLOWABLE/, /REACTIVITY/, and /PROJECTION/.
The format of each packet type is given in Section 6.6.1, “GCNTL
: Files for controls and/or past- and future-year growth”.
Growth matrix - This contains past- or future-year growth factors for all sources.
Multiplicative control matrix - This matrix contains the combination of various types ofcontrols typically used in emissions processing: CTG, MACT, RACT, control efficiency, rule effectiveness, rule penetration, allowable emissions, and caps. The logic used when applying this matrix is described below this bulleted list.
Reactivity matrix - This matrix contains the information needed for applying reactivity controls.
The multiplicative matrix is built from entries in four packets: /MACT/, /CONTROL/ or /EMS_CONTROL/, /CTG/, and /ALLOWABLE/. The packets are applied in the following order:
/MACT/
/CONTROL/ or /EMS_CONTROL/ (cannot use both at same time)
/CTG/
/ALLOWABLE/
With the exception of the /CONTROL/ packet, all controls are always applied in addition to one another.
The /MACT/ packet is designed to support the primary MACT controls needed for toxics processing. It is applied first, and uses the following logic. When a source is found that matches a /MACT/ packet entry (source matching is addressed in Section 4.2.1.2, “Source Matching Hierarchy”), Cntlmat first calculates a inventory efficiency value (Effinv) for that source based on the control efficiency (Ceff), rule effectiveness (Reff), and rule penetration (Rpen) provided in the inventory:
Effinv = Ceff [inventory] x Reff [inventory] x Rpen [inventory]
Next, a control factor is calculated for existing sources (Facexist) using the control efficiency of existing sources (Effexist) and fraction of new sources (Fracnew) provided in the /MACT/ packet entry. If Effexist > Effinv, then Facexist is calculated as:
Facexist = (1 - Fracnew) x ((1 - Effexist) / (1 - Effinv))
Otherwise,
Facexist = (1 - Fracnew)
Cntlmat then calculates a control factor for new sources (Facnew) using the control efficiency of new sources (Effnew) provided in the /MACT/ packet. If Effnew > Effinv, then
Facnew = Fracnew x ((1 - Effnew) / (1 - Effinv))
Otherwise,
Facnew = Fracnew
Finally, the new and existing source factors are summed to compute the final /MACT/ packet control factor (FacMACT).
FacMACT = Facexist + Facnew
The /MACT/ packet is designed to be used only for sources with MACT codes, currently nonpoint and point toxic sources.
After processing the /MACT/ packet, the /CONTROL/ packet is applied using the following logic. Each entry in the /CONTROL/
packet can be identified as “replacement” or “additive”. If set to “replace”, the /CONTROL/ entry will be used to replace the controls from the /MACT/ packet or the base-year inventory controls; otherwise,
the control will be applied in addition to the controls from the /MACT/ packet or the base-year inventory controls. When
the controls are replaced, the default behaviour of Cntlmat is to back out the existing controls and apply the replacement controls. Usually, users want to do this only when the replacement
controls are more stringent (i.e., a greater reduction) than the /MACT/ packet or base-year controls - so this is the default
behaviour of Cntlmat. This default behaviour can be changed by setting the value of COMPARE_REPLACE_CONTROL
to "N" in your run script. In this case, the replacement controls will be applied regardless of the existing controls from
the base invetory or the /MACT/ packet, which could result in increased emissions.
When an “additive” entry is matched to a source, the /CONTROL/ packet factor (FacCONTROL) the control packet information is applied in addition to the exitsing controls, which further reduce the remaining emissions.
For “additive” control packet entries, the control factors are calculated from the control efficiency, rule effectiveness, and rule penetration values provided in the /CONTROL/ packet entry as follows:
FacCONTROL = (1 - Ceff [packet] x Reff [packet] x Rpen [packet])
A cumulative control factor Facresult is then calculated by multiplying FacExisting x FacCONTROL.
In the case of “additive” controls only, The overall reduction factor is then used to calculate an overall new control efficiency to be put in any resulting inventory files as: Ceff [result] = 1 - Facresult . The final Rule Penetration and Rule Effectiveness values are then set to 100%.
For “replacement” entries, Cntlmat first “backs out” the existing controls provided in the inventory from the control values provided in the /CONTROL/ packet entry as follows:
D = (1 - Ceff [inventory] x Reff [inventory] x Rpen [inventory])
If D = 0.0, then the backout value, B, is equal to 0; otherwise, B = 1/D. Using this backout value, the /CONTROL/ factor is calculated as
FacCONTROL = B x (1 - Ceff [packet] x Reff [packet] x Rpen [packet])
Unlike “additive” entries, the FacCONTROL value for “replacement” entries replaces the factor calculated from the /MACT/ packet or base year inventory (if any). The /CONTROL/ packet can be applied to stationary area/nonpoint, nonroad, on-road mobile, and point sources. On-road mobile source inventories do not include control efficiency, rule effectiveness, or rule penetration fields. However, the /CONTROL/ packet can still be used to apply adjustment factors to mobile sources. In this case, B in the above formula will be 1 when computing factor FacCONTROL that is applied to the emissions.
The /CTG/ packet is processed next, as follows. The emission value (after application of /MACT/, /CONTROL/, and/or /EMS CONTROL/) is compared to the cutoff value specified as part of the /CTG/ packet record. If the emission value exceeds the cutoff value, then the control technology factor is applied to the emissions. If the resulting emissions value still exceeds the cutoff value, then either the MACT or the RACT factor is used. The MACT factor is used if it is defined (i.e., greater than zero); if it is not defined (less than or equal to zero), then the RACT factor is used. If neither the MACT nor RACT are defined, but the emissions are still greater than the cutoff, then the emissions are set to the cutoff value.
Finally, the /ALLOWABLE/ packet is processed. The entries in this packet override the /MACT/, /CONTROL/, /EMS CONTROL/, and /CTG/ packets. The way this packet is applied depends on whether or not the Cap and Replace values in the packet are defined (greater than zero).
If the Cap value is defined, Cntlmat compares the inventory emissions value to the Cap value, and sets a control factor, using the following procedure: If both the Cap and Replace values are defined, this control factor is the Replace value divided by the original emissions value. If only the Cap value is defined, the factor is the Cap value divided by the original emissions value.
If the Cap value is not defined, then the factor is the Replace value divided by the original emissions value.
If neither the Cap nor Replace values are defined, the packet entry is invalid and is ignored.
To match each sources with the appropriate control packet entry, Cntlmat uses a hierarchy of source characteristics, trying to match each source to the most specific control packet entry. Note that not all combinations are applicable to all control packets (for example, there is no MACT code associated with the /PROJECTION/ packet). “Left x of SCC” refers to an 8- or 10-digit SCC with all digits except the first x set to 0. “Left 2 of SIC code” refers to a 4-digit SIC code with the third and fourth digits set to 0. The maximum field width in SMOKE and its input files for SCC is 20 characters as of SMOKE v4.0. The 8 or 10 digit SCC are still supported, but if the SCC is greater than 10 digits the SCC hierarchial approach will not be supported. The SIC may also be up to 20 characters in length, but if the SIC is larger than 4 characters then the hierarchial approach will not be used.
For point sources, the following hierarchy is used, in order of most specific to least specific. (NOTE: only for SCC less than or equal to 10 characters and SIC less than or equal to 4 characters)
Country/State/County code, plant ID, point ID, stack ID, segment ID, 8-digit SCC code, pollutant
Country/State/County code, plant ID, point ID, stack ID, segment ID, pollutant
Country/State/County code, plant ID, point ID, stack ID, pollutant
Country/State/County code, plant ID, point ID, pollutant
Country/State/County code, plant ID, 8-digit SCC code, pollutant
Country/State/County code, plant ID, MACT code, pollutant
Country/State/County code, plant ID, pollutant
Country/State/County code, plant ID, point ID, stack ID, segment ID, 8-digit SCC code
Country/State/County code, plant ID, point ID, stack ID, segment ID
Country/State/County code, plant ID, point ID, stack ID
Country/State/County code, plant ID, point ID
Country/State/County code, plant ID, 8-digit SCC code
Country/State/County code, plant ID, MACT code
Country/State/County code, plant ID
Country/State/County code, MACT code, 8-digit SCC code, pollutant
Country/State/County code, MACT code, pollutant
Country/State code, MACT code, 8-digit SCC code, pollutant
Country/State code, MACT code, pollutant
MACT, 8-digit SCC code, pollutant
MACT, pollutant
Country/State/County code, MACT code, 8-digit SCC code
Country/State/County code, MACT code
Country/State code, MACT code, 8-digit SCC code
Country/State code, MACT code
MACT code, 8-digit SCC code
MACT code
Country/State/County code, 4-digit SIC code, pollutant
Country/State/County code, left 2 of SIC code, pollutant
Country/State code, 4-digit SIC code, pollutant
Country/State code, left 2 of SIC code, pollutant
4-digit SIC code, pollutant
Left 2 of SIC code, pollutant
Country/State/County code, 4-digit SIC code
Country/State/County code, left 2 of SIC code
Country/State code, 4-digit SIC code
Country/State code, left 2 of SIC code
4-digit SIC code
Left 2 of SIC code
Country/State/County code, 8-digit SCC code, pollutant
Country/State/County code, left 6 of SCC code, pollutant
Country/State/County code, left 3 of SCC code, pollutant
Country/State/County code, left 1 of SCC code, pollutant
Country/State code, 8-digit SCC code, pollutant
Country/State code, left 6 of SCC code, pollutant
Country/State code, left 3 of SCC code, pollutant
Country/State code, left 1 of SCC code, pollutant
8-digit SCC code, pollutant
Left 6 of SCC code, pollutant
Left 3 of SCC code, pollutant
Left 1 of SCC code, pollutant
Country/State/County code, 8-digit SCC code
Country/State/County code, left 6 of SCC code
Country/State/County code, left 3 of SCC code
Country/State/County code, left 1 of SCC code
Country/State code, 8-digit SCC code
Country/State code, left 6 of SCC code
Country/State code, left 3 of SCC code
Country/State code, left 1 of SCC code
8-digit SCC code
Left 6 of SCC code
Left 3 of SCC code
Left 1 of SCC code
Country/State/County code, pollutant
Country/State/County code
Country/State code, pollutant
Country/State code
Pollutant
For nonpoint/stationary area sources, the following hierarchy is used. The maximum field width in SMOKE and its input files for SCC is 20 characters as of SMOKE v4.0. The 8 or 10 digit SCC are still supported, but if the SCC is greater than 10 digits the SCC hierarchial approach will not be supported. The SIC may also be up to 20 characters in length, but if the SIC is larger than 4 characters then the hierarchial approach will not be used. Nonpoint SCCs can have either 8 or 10 digits, which is why there are two separate SCC levels mentioned for each of the SCC-based assignments.(NOTE: hierarchial approach is only for SCC less than or equal to 10 characters and SIC less than or equal to 4 characters)
Country/State/County code, MACT code, 8- or 10-digit SCC code, pollutant
Country/State/County code, MACT code, pollutant
Country/State code, MACT code, 8- or 10-digit SCC code, pollutant
Country/State code, MACT code, pollutant
MACT code, 8- or 10-digit SCC code, pollutant
MACT code, pollutant
Country/State/County code, MACT code, 8- or 10-digit SCC code
Country/State/County code, MACT code
Country/State code, MACT code, 8- or 10-digit SCC code
Country/State code, MACT code
MACT code, 8- or 10-digit SCC code
MACT code
Country/State/County code, 4-digit SIC code, pollutant
Country/State/County code, left 2 of SIC code, pollutant
Country/State code, 4-digit SIC code, pollutant
Country/State code, left 2 of SIC code, pollutant
4-digit SIC code, pollutant
Left 2 of SIC code, pollutant
Country/State/County code, 4-digit SIC code
Country/State/County code, left 2 of SIC code
Country/State code, 4-digit SIC code
Country/State code, left 2 of SIC code
4-digit SIC code
Left 2 of SIC code
Country/State/County code, 8- or 10-digit SCC code, pollutant
Country/State/County code, left 6 or left 7 of SCC code, pollutant
Country/State/County code, left 3 or left 4 of SCC code, pollutant
Country/State/County code, left 1 or left 2 of SCC code, pollutant
Country/State code, 8- or 10-digit SCC code, pollutant
Country/State code, left 6 or left 7 of SCC code, pollutant
Country/State code, left 3 or left 4 of SCC code, pollutant
Country/State code, left 1 or left 2 of SCC code, pollutant
8- or 10-digit SCC code, pollutant
Left 6 or left 7 of SCC code, pollutant
Left 3 or left 4 of SCC code, pollutant
Left 1 or left 2 of SCC code, pollutant
Country/State/County code, 8- or 10-digit SCC code
Country/State/County code, left 6 or left 7 of SCC code
Country/State/County code, left 3 or left 4 of SCC code
Country/State/County code, left 1 or left 2 of SCC code
Country/State code, 8- or 10-digit SCC code
Country/State code, left 6 or left 7 of SCC code
Country/State code, left 3 or left 4 of SCC code
Country/State code, left 1 or left 2 of SCC code
8- or 10-digit SCC code
Left 6 or left 7 of SCC code
Left 3 or left 4 of SCC code
Left 1 or left 2 of SCC code
Country/State/County code, pollutant
Country/State/County code
Country/State code, pollutant
Country/State code
Pollutant
On-road mobile and nonroad sources are matched to the control packet entries using the following hierarchy if the SCC length is less than 10 characters. As of SMOKE v4.0 the SCC character length may be up to 20 characters in length:(NOTE: this hierarchial approach is only for SCC less than or equal to 10 characters and SIC less than or equal to 4 characters)
Country/State/County code, 10-digit SCC code, pollutant
Country/State/County code, left 7 of SCC code, pollutant
Country/State/County code, left 4 of SCC code, pollutant
Country/State/County code, left 2 of SCC code, pollutant
Country/State code, 10-digit SCC code, pollutant
Country/State code, left 7 of SCC code, pollutant
Country/State code, left 4 of SCC code, pollutant
Country/State code, left 2 of SCC code, pollutant
10-digit SCC code, pollutant
Left 7 of SCC code, pollutant
Left 4 of SCC code, pollutant
Left 2 of SCC code, pollutant
Country/State/County code, 10-digit SCC code
Country/State/County code, left 7 of SCC code
Country/State/County code, left 4 of SCC code
Country/State/County code, left 2 of SCC code
Country/State code, 10-digit SCC code
Country/State code, left 7 of SCC code
Country/State code, left 4 of SCC code
Country/State code, left 2 of SCC code
10-digit SCC code
Left 7 of SCC code
Left 4 of SCC code
Left 2 of SCC code
Country/State/County code, pollutant
Country/State/County code
Country/State code, pollutant
Country/State code
Pollutant