An official website of the United States government.

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

MOVES and Related Models

MOVES Algorithms

MOVES Algorithms Reference, October 5, 2015

This HTML document was generated by MOVES2014a code. It provides a hyperlinked reference to detailed technical information on MOVES code modules and database tables. For more information on MOVES, see Latest Version of MOtor Vehicle Emission Simulator (MOVES)

Table of Contents

Database Tables


Activity Calculator

Activity Calculator is a CALCULATOR that executes at the YEAR level.

Activity Calculator uses the following tables:


Activity Calculator is expressed in these source code files:

  • /database/ActivityCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/ActivityCalculator.java

Steps

The Activity Calculator algorithm is as follows.

Step: sourceHours = sourceHours[sourceTypeID,hourDayID,monthID,yearID,ageID,linkID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, link, regclasssourcetypefraction, sourcehours, sourcetypefuelfraction
Outputs: ##activitytable##

Step: extendedIdleHours = extendedIdleHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: extendedidlehours, hourday, regclasssourcetypefraction, sourcetypefuelfraction
Outputs: ##activitytable##

Step: sho = sho[sourceTypeID,hourDayID,monthID,yearID,ageID,linkID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, link, regclasssourcetypefraction, sho, sourcetypefuelfraction
Outputs: ##activitytable##

Step: shp = shp[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, regclasssourcetypefraction, shp, sourcetypefuelfraction
Outputs: ##activitytable##

Step: sutFraction[sourceTypeID] = sum(roadTypeVMTFraction * shoAllocFactor)/sum(roadTypeVMTFraction)
Conditions: Non-Project domain
Inputs: roadtypedistribution, sourceusetype, zoneroadtype
Outputs: fractionbysourcetypetemp

Step: tempPopulation = sourceTypeAgePopulation[yearID,sourceTypeID,ageID] * sutFraction[sourceTypeID]
Conditions: Non-Project domain
Inputs: fractionbysourcetypetemp, link, runspecsourcetype, sourcetypeagepopulation
Outputs: sourcetypetemppopulation

Step: population = tempPopulation*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Conditions: Non-Project domain
Inputs: regclasssourcetypefraction, sourcetypefuelfraction, sourcetypetemppopulation
Outputs: ##activitytable##

Step: population on off-network link = vehiclePopulation*ageFraction[yearID,sourceTypeID,ageID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Conditions: Project domain, Offnetwork link
Inputs: link, offnetworklink, regclasssourcetypefraction, sourcetypeagedistribution, sourcetypefuelfraction
Outputs: ##activitytable##

Step: population on roadways = linkVolume[linkID]*sourceTypeHourFraction[linkID,sourceTypeID]*ageFraction[yearID,sourceTypeID,ageID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Conditions: Project domain, On roadways
Inputs: link, linksourcetypehour, regclasssourcetypefraction, sourcetypeagedistribution, sourcetypefuelfraction
Outputs: ##activitytable##

Step: starts = starts[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]
Inputs: hourday, regclasssourcetypefraction, sourcetypefuelfraction, starts
Outputs: ##activitytable##

Step: hotellingAux hours = hotellingHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*opModeFraction[opModeID=201,modelYearID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]. hotellingElectric hours = hotellingHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*opModeFraction[opModeID=203,modelYearID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID]. hotellingOff hours = hotellingHours[sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID]*opModeFraction[opModeID=204,modelYearID]*fuelFraction[sourceTypeID,modelYearID,fuelTypeID]*regClassFraction[fuelTypeID,modelYearID,sourceTypeID,regClassID].
Inputs: hotellingactivitydistribution, hotellinghours, hourday, regclasssourcetypefraction, sourcetypefuelfraction
Outputs: ##activitytable##

Top of Page


Air toxics Calculator

Air toxics Calculator is a CHAINED CALCULATOR.

The Air toxics Calculator is responsible for:

  • Running Exhaust (1) Benzene (20)
  • Start Exhaust (2) Benzene (20)
  • Evap Permeation (11) Benzene (20)
  • Evap Fuel Vapor Venting (12) Benzene (20)
  • Evap Fuel Leaks (13) Benzene (20)
  • Refueling Displacement Vapor Loss (18) Benzene (20)
  • Refueling Spillage Loss (19) Benzene (20)
  • Extended Idle Exhaust (90) Benzene (20)
  • Auxiliary Power Exhaust (91) Benzene (20)
  • Running Exhaust (1) Ethanol (21)
  • Start Exhaust (2) Ethanol (21)
  • Evap Permeation (11) Ethanol (21)
  • Evap Fuel Vapor Venting (12) Ethanol (21)
  • Evap Fuel Leaks (13) Ethanol (21)
  • Refueling Displacement Vapor Loss (18) Ethanol (21)
  • Refueling Spillage Loss (19) Ethanol (21)
  • Running Exhaust (1) MTBE (22)
  • Start Exhaust (2) MTBE (22)
  • Evap Permeation (11) MTBE (22)
  • Evap Fuel Vapor Venting (12) MTBE (22)
  • Evap Fuel Leaks (13) MTBE (22)
  • Refueling Displacement Vapor Loss (18) MTBE (22)
  • Refueling Spillage Loss (19) MTBE (22)
  • Running Exhaust (1) Naphthalene particle (23)
  • Start Exhaust (2) Naphthalene particle (23)
  • Extended Idle Exhaust (90) Naphthalene particle (23)
  • Auxiliary Power Exhaust (91) Naphthalene particle (23)
  • Running Exhaust (1) 1,3-Butadiene (24)
  • Start Exhaust (2) 1,3-Butadiene (24)
  • Extended Idle Exhaust (90) 1,3-Butadiene (24)
  • Auxiliary Power Exhaust (91) 1,3-Butadiene (24)
  • Running Exhaust (1) Formaldehyde (25)
  • Start Exhaust (2) Formaldehyde (25)
  • Extended Idle Exhaust (90) Formaldehyde (25)
  • Auxiliary Power Exhaust (91) Formaldehyde (25)
  • Running Exhaust (1) Acetaldehyde (26)
  • Start Exhaust (2) Acetaldehyde (26)
  • Extended Idle Exhaust (90) Acetaldehyde (26)
  • Auxiliary Power Exhaust (91) Acetaldehyde (26)
  • Running Exhaust (1) Acrolein (27)
  • Start Exhaust (2) Acrolein (27)
  • Extended Idle Exhaust (90) Acrolein (27)
  • Auxiliary Power Exhaust (91) Acrolein (27)
  • Running Exhaust (1) 2,2,4-Trimethylpentane (40)
  • Start Exhaust (2) 2,2,4-Trimethylpentane (40)
  • Evap Permeation (11) 2,2,4-Trimethylpentane (40)
  • Evap Fuel Vapor Venting (12) 2,2,4-Trimethylpentane (40)
  • Evap Fuel Leaks (13) 2,2,4-Trimethylpentane (40)
  • Refueling Displacement Vapor Loss (18) 2,2,4-Trimethylpentane (40)
  • Refueling Spillage Loss (19) 2,2,4-Trimethylpentane (40)
  • Extended Idle Exhaust (90) 2,2,4-Trimethylpentane (40)
  • Auxiliary Power Exhaust (91) 2,2,4-Trimethylpentane (40)
  • Running Exhaust (1) Ethyl Benzene (41)
  • Start Exhaust (2) Ethyl Benzene (41)
  • Evap Permeation (11) Ethyl Benzene (41)
  • Evap Fuel Vapor Venting (12) Ethyl Benzene (41)
  • Evap Fuel Leaks (13) Ethyl Benzene (41)
  • Refueling Displacement Vapor Loss (18) Ethyl Benzene (41)
  • Refueling Spillage Loss (19) Ethyl Benzene (41)
  • Extended Idle Exhaust (90) Ethyl Benzene (41)
  • Auxiliary Power Exhaust (91) Ethyl Benzene (41)
  • Running Exhaust (1) Hexane (42)
  • Start Exhaust (2) Hexane (42)
  • Evap Permeation (11) Hexane (42)
  • Evap Fuel Vapor Venting (12) Hexane (42)
  • Evap Fuel Leaks (13) Hexane (42)
  • Refueling Displacement Vapor Loss (18) Hexane (42)
  • Refueling Spillage Loss (19) Hexane (42)
  • Extended Idle Exhaust (90) Hexane (42)
  • Auxiliary Power Exhaust (91) Hexane (42)
  • Running Exhaust (1) Propionaldehyde (43)
  • Start Exhaust (2) Propionaldehyde (43)
  • Extended Idle Exhaust (90) Propionaldehyde (43)
  • Auxiliary Power Exhaust (91) Propionaldehyde (43)
  • Running Exhaust (1) Styrene (44)
  • Start Exhaust (2) Styrene (44)
  • Extended Idle Exhaust (90) Styrene (44)
  • Auxiliary Power Exhaust (91) Styrene (44)
  • Running Exhaust (1) Toluene (45)
  • Start Exhaust (2) Toluene (45)
  • Evap Permeation (11) Toluene (45)
  • Evap Fuel Vapor Venting (12) Toluene (45)
  • Evap Fuel Leaks (13) Toluene (45)
  • Refueling Displacement Vapor Loss (18) Toluene (45)
  • Refueling Spillage Loss (19) Toluene (45)
  • Extended Idle Exhaust (90) Toluene (45)
  • Auxiliary Power Exhaust (91) Toluene (45)
  • Running Exhaust (1) Xylene (46)
  • Start Exhaust (2) Xylene (46)
  • Evap Permeation (11) Xylene (46)
  • Evap Fuel Vapor Venting (12) Xylene (46)
  • Evap Fuel Leaks (13) Xylene (46)
  • Refueling Displacement Vapor Loss (18) Xylene (46)
  • Refueling Spillage Loss (19) Xylene (46)
  • Extended Idle Exhaust (90) Xylene (46)
  • Auxiliary Power Exhaust (91) Xylene (46)
  • Running Exhaust (1) Dibenzo(a,h)anthracene particle (68)
  • Start Exhaust (2) Dibenzo(a,h)anthracene particle (68)
  • Running Exhaust (1) Fluoranthene particle (69)
  • Start Exhaust (2) Fluoranthene particle (69)
  • Running Exhaust (1) Acenaphthene particle (70)
  • Start Exhaust (2) Acenaphthene particle (70)
  • Running Exhaust (1) Acenaphthylene particle (71)
  • Start Exhaust (2) Acenaphthylene particle (71)
  • Running Exhaust (1) Anthracene particle (72)
  • Start Exhaust (2) Anthracene particle (72)
  • Running Exhaust (1) Benz(a)anthracene particle (73)
  • Start Exhaust (2) Benz(a)anthracene particle (73)
  • Running Exhaust (1) Benzo(a)pyrene particle (74)
  • Start Exhaust (2) Benzo(a)pyrene particle (74)
  • Running Exhaust (1) Benzo(b)fluoranthene particle (75)
  • Start Exhaust (2) Benzo(b)fluoranthene particle (75)
  • Running Exhaust (1) Benzo(g,h,i)perylene particle (76)
  • Start Exhaust (2) Benzo(g,h,i)perylene particle (76)
  • Running Exhaust (1) Benzo(k)fluoranthene particle (77)
  • Start Exhaust (2) Benzo(k)fluoranthene particle (77)
  • Running Exhaust (1) Chrysene particle (78)
  • Start Exhaust (2) Chrysene particle (78)
  • Running Exhaust (1) Fluorene particle (81)
  • Start Exhaust (2) Fluorene particle (81)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene particle (82)
  • Start Exhaust (2) Indeno(1,2,3,c,d)pyrene particle (82)
  • Running Exhaust (1) Phenanthrene particle (83)
  • Start Exhaust (2) Phenanthrene particle (83)
  • Running Exhaust (1) Pyrene particle (84)
  • Start Exhaust (2) Pyrene particle (84)
  • Running Exhaust (1) Dibenzo(a,h)anthracene gas (168)
  • Start Exhaust (2) Dibenzo(a,h)anthracene gas (168)
  • Extended Idle Exhaust (90) Dibenzo(a,h)anthracene gas (168)
  • Auxiliary Power Exhaust (91) Dibenzo(a,h)anthracene gas (168)
  • Running Exhaust (1) Fluoranthene gas (169)
  • Start Exhaust (2) Fluoranthene gas (169)
  • Extended Idle Exhaust (90) Fluoranthene gas (169)
  • Auxiliary Power Exhaust (91) Fluoranthene gas (169)
  • Running Exhaust (1) Acenaphthene gas (170)
  • Start Exhaust (2) Acenaphthene gas (170)
  • Extended Idle Exhaust (90) Acenaphthene gas (170)
  • Auxiliary Power Exhaust (91) Acenaphthene gas (170)
  • Running Exhaust (1) Acenaphthylene gas (171)
  • Start Exhaust (2) Acenaphthylene gas (171)
  • Extended Idle Exhaust (90) Acenaphthylene gas (171)
  • Auxiliary Power Exhaust (91) Acenaphthylene gas (171)
  • Running Exhaust (1) Anthracene gas (172)
  • Start Exhaust (2) Anthracene gas (172)
  • Extended Idle Exhaust (90) Anthracene gas (172)
  • Auxiliary Power Exhaust (91) Anthracene gas (172)
  • Running Exhaust (1) Benz(a)anthracene gas (173)
  • Start Exhaust (2) Benz(a)anthracene gas (173)
  • Extended Idle Exhaust (90) Benz(a)anthracene gas (173)
  • Auxiliary Power Exhaust (91) Benz(a)anthracene gas (173)
  • Running Exhaust (1) Benzo(a)pyrene gas (174)
  • Start Exhaust (2) Benzo(a)pyrene gas (174)
  • Extended Idle Exhaust (90) Benzo(a)pyrene gas (174)
  • Auxiliary Power Exhaust (91) Benzo(a)pyrene gas (174)
  • Running Exhaust (1) Benzo(b)fluoranthene gas (175)
  • Start Exhaust (2) Benzo(b)fluoranthene gas (175)
  • Extended Idle Exhaust (90) Benzo(b)fluoranthene gas (175)
  • Auxiliary Power Exhaust (91) Benzo(b)fluoranthene gas (175)
  • Running Exhaust (1) Benzo(g,h,i)perylene gas (176)
  • Start Exhaust (2) Benzo(g,h,i)perylene gas (176)
  • Extended Idle Exhaust (90) Benzo(g,h,i)perylene gas (176)
  • Auxiliary Power Exhaust (91) Benzo(g,h,i)perylene gas (176)
  • Running Exhaust (1) Benzo(k)fluoranthene gas (177)
  • Start Exhaust (2) Benzo(k)fluoranthene gas (177)
  • Extended Idle Exhaust (90) Benzo(k)fluoranthene gas (177)
  • Auxiliary Power Exhaust (91) Benzo(k)fluoranthene gas (177)
  • Running Exhaust (1) Chrysene gas (178)
  • Start Exhaust (2) Chrysene gas (178)
  • Extended Idle Exhaust (90) Chrysene gas (178)
  • Auxiliary Power Exhaust (91) Chrysene gas (178)
  • Running Exhaust (1) Fluorene gas (181)
  • Start Exhaust (2) Fluorene gas (181)
  • Extended Idle Exhaust (90) Fluorene gas (181)
  • Auxiliary Power Exhaust (91) Fluorene gas (181)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene gas (182)
  • Start Exhaust (2) Indeno(1,2,3,c,d)pyrene gas (182)
  • Extended Idle Exhaust (90) Indeno(1,2,3,c,d)pyrene gas (182)
  • Auxiliary Power Exhaust (91) Indeno(1,2,3,c,d)pyrene gas (182)
  • Running Exhaust (1) Phenanthrene gas (183)
  • Start Exhaust (2) Phenanthrene gas (183)
  • Extended Idle Exhaust (90) Phenanthrene gas (183)
  • Auxiliary Power Exhaust (91) Phenanthrene gas (183)
  • Running Exhaust (1) Pyrene gas (184)
  • Start Exhaust (2) Pyrene gas (184)
  • Extended Idle Exhaust (90) Pyrene gas (184)
  • Auxiliary Power Exhaust (91) Pyrene gas (184)
  • Running Exhaust (1) Naphthalene gas (185)
  • Start Exhaust (2) Naphthalene gas (185)
  • Evap Permeation (11) Naphthalene gas (185)
  • Evap Fuel Vapor Venting (12) Naphthalene gas (185)
  • Evap Fuel Leaks (13) Naphthalene gas (185)
  • Refueling Displacement Vapor Loss (18) Naphthalene gas (185)
  • Refueling Spillage Loss (19) Naphthalene gas (185)
  • Extended Idle Exhaust (90) Naphthalene gas (185)
  • Auxiliary Power Exhaust (91) Naphthalene gas (185)


The Air toxics Calculator input comes from:


The Air toxics Calculator output is used by:


Air toxics Calculator uses the following tables:


Air toxics Calculator is expressed in these source code files:

  • /database/AirToxicsCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/AirToxicsCalculator.java

Steps

The Air toxics Calculator algorithm is as follows.

Step: create AirToxicsMOVESWorkerOutputTemp table
Outputs: airtoxicsmovesworkeroutputtemp

Step: minor HAP emissions[outputPollutantID] = VOC (87) * ATRatio
Inputs: minorhapratio, movesworkeroutput
Outputs: airtoxicsmovesworkeroutputtemp

Step: PAH gas emissions[outputPollutantID] = VOC (87) * ATRatio
Inputs: movesworkeroutput, pahgasratio
Outputs: airtoxicsmovesworkeroutputtemp

Step: PAH particle emissions[outputPollutantID] = VOC (87) * ATRatio
Inputs: movesworkeroutput, pahparticleratio
Outputs: airtoxicsmovesworkeroutputtemp

Step: emissions[outputPollutantID] = emissions[inputPollutantID] * marketShare * ATRatio
Inputs: at1fuelsupply, atratio, atratiogas1chainedto, FuelSupply, movesworkeroutput, PollutantProcessAssoc
Outputs: airtoxicsmovesworkeroutputtemp

Step: marketShareATRatio[outputPollutantID] = marketShare * ATRatio
Inputs: at2fuelsupply, atratiogas2, atratiogas2chainedto, FuelSupply, PollutantProcessAssoc
Outputs: at2fuelsupplyratiogas2

Step: emissions[outputPollutantID] = emissions[inputPollutantID] * marketShareATRatio[outputPollutantID]
Inputs: at2fuelsupplyratiogas2, movesworkeroutput
Outputs: airtoxicsmovesworkeroutputtemp

Step: emissions[outputPollutantID] = emissions[inputPollutantID] * marketShare * ATRatio
Inputs: atnongasfuelsupply, atrationongas, atrationongaschainedto, FuelSupply, movesworkeroutput, PollutantProcessAssoc
Outputs: airtoxicsmovesworkeroutputtemp

Step: Add emisions in AirToxicsMOVESWorkerOutputTemp to MOVESWorkerOutput
Inputs: airtoxicsmovesworkeroutputtemp
Outputs: movesworkeroutput

Top of Page


Average Speed Operating Mode Distribution Generator

Average Speed Operating Mode Distribution Generator is a GENERATOR that executes at the LINK level.

Average Speed Operating Mode Distribution Generator uses the following tables:


Average Speed Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/AverageSpeedOperatingModeDistributionGenerator.java

Steps

The Average Speed Operating Mode Distribution Generator algorithm is as follows.

Step: Remove all tirewear pollutant/processes on any link from the operating mode distribution.
Conditions: Project domain, Tirewear process
Outputs: RatesOpModeDistribution

Step: Assign operating mode based upon a single link's linkAvgSpeed, one operating mode entry per link with opModeFraction=1.0.
Conditions: Project domain, Tirewear process
Inputs: link, operatingMode
Outputs: RatesOpModeDistribution

Step: Create a single operating mode entry, with opModeFraction=1.0, for every combination of speed bin, source type, road type, hour day, and tirewear pollutant in the runspec. Each speed bin has an associated tirewear operating mode in its opModeIDTirewear column.
Conditions: Non-Project domain, Tirewear process
Inputs: avgSpeedBin
Outputs: RatesOpModeDistribution

Top of Page


Base Rate Generator

Base Rate Generator is a GENERATOR that executes at the YEAR level.

Base Rate Generator uses the following tables:


Base Rate Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/BaseRateGenerator.java

Steps

The Base Rate Generator algorithm is as follows.

Step: normalizationFactor = sum(sourceBinActivityFraction).
Conditions: Rates creation

Step: normalizationFactor = 1.
Conditions: Inventory creation

Step: Weight age-based rates by sourcebin distribution. MeanBaseRate=sum(SourceBinActivityFraction * MeanBaseRate)/normalizationFactor. MeanBaseRateIM=sum(SourceBinActivityFraction * MeanBaseRateIM)/normalizationFactor. MeanBaseRateACAdj=sum(SourceBinActivityFraction * MeanBaseRate * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. MeanBaseRateIMACAdj=sum(SourceBinActivityFraction * MeanBaseRateIM * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. sumSBD=sum(SourceBinActivityFraction)/normalizationFactor. sumSBDRaw=sum(SourceBinActivityFraction).
Inputs: EmissionRateByAge, fullACAdjustment, PollutantProcessAssoc, PollutantProcessModelYear, RunspecModelYearAgeGroup, SourceBin, SourceBinDistribution, SourceTypeModelYear
Outputs: SBWeightedEmissionRateByAge

Step: Weight non-age-based rates by sourcebin distribution. MeanBaseRate=sum(SourceBinActivityFraction * MeanBaseRate)/normalizationFactor. MeanBaseRateIM=sum(SourceBinActivityFraction * MeanBaseRateIM)/normalizationFactor. MeanBaseRateACAdj=sum(SourceBinActivityFraction * MeanBaseRate * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. MeanBaseRateIMACAdj=sum(SourceBinActivityFraction * MeanBaseRateIM * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. sumSBD=sum(SourceBinActivityFraction)/normalizationFactor. sumSBDRaw=sum(SourceBinActivityFraction).
Inputs: EmissionRate, fullACAdjustment, PollutantProcessAssoc, PollutantProcessModelYear, RunspecModelYear, SourceBin, SourceBinDistribution, SourceTypeModelYear
Outputs: SBWeightedEmissionRate

Step: Make distance emission rates for metals. ratePerMile=meanBaseRate * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km). ratePerSHO=meanBaseRate * avgBinSpeed * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km).
Inputs: averageSpeedBin, metalEmissionRate
Outputs: distanceEmissionRate

Step: Make distance emission rates for dioxins. ratePerMile=meanBaseRate * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km). ratePerSHO=meanBaseRate * avgBinSpeed * (1.0 when units of g/mile, 1.609344 when g/km, 1.0 when TEQ/mile, 1.609344 when TEQ/km).
Inputs: averageSpeedBin, dioxinEmissionRate
Outputs: distanceEmissionRate

Step: Weight distance-based rates by sourcebin distribution. Use fullACAdjustment for opModeID=300 (All Running). Use the SourceBinDistribution for Running Exhaust Total Gaseous Hydrocarbons (pol/proc 101). MeanBaseRate=sum(SourceBinActivityFraction * ratePerSHO)/normalizationFactor. MeanBaseRateIM=sum(SourceBinActivityFraction * ratePerSHO)/normalizationFactor. MeanBaseRateACAdj=sum(SourceBinActivityFraction * ratePerSHO * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. MeanBaseRateIMACAdj=sum(SourceBinActivityFraction * ratePerSHO * (coalesce(fullACAdjustment,1.0)-1.0))/normalizationFactor. sumSBD=sum(SourceBinActivityFraction)/normalizationFactor. sumSBDRaw=sum(SourceBinActivityFraction).
Conditions: Running Exhaust
Inputs: distanceEmissionRate, fullACAdjustment, modelYearGroup, PollutantProcessAssoc, PollutantProcessModelYear, SourceBin, SourceBinDistribution, SourceTypeModelYear
Outputs: SBWeightedDistanceRate

Step: Apply hotelling activity distribution to age-weighted rates. MeanBaseRate = MeanBaseRate * opModeFraction, for MeanBaseRate, MeanBaseRateIM, MeanBaseRateACAdj, and MeanBaseRateIMACAdj.
Conditions: Auxiliary Power Exhaust
Inputs: hotellingActivityDistribution
Outputs: SBWeightedEmissionRateByAge

Step: Apply hotelling activity distribution to non-age-weighted rates. MeanBaseRate = MeanBaseRate * opModeFraction, for MeanBaseRate, MeanBaseRateIM, MeanBaseRateACAdj, and MeanBaseRateIMACAdj.
Conditions: Auxiliary Power Exhaust
Inputs: hotellingActivityDistribution
Outputs: SBWeightedEmissionRate

Step: avgSpeedFractionClause=coalesce(avgSpeedFraction,0) when conditions are met, 1 otherwise.
Conditions: Non-Project domain; Inventory; Running exhaust, Brakewear, or Tirewear.

Step: sumSBDClause=sumSBD when conditions are met, 1 otherwise.
Conditions: Inventory or Starts or Extended Idling or Auxiliary Power.

Step: quantAdjustClause=sumSBDRaw when conditions are met, 1 otherwise.
Conditions: Rates for Starts, Extended Idle, or Auxiliary Power.

Step: Calculate BaseRateByAge without operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Not Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRateByAge without operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Not Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRate without operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Not Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRate

Step: Calculate BaseRate without operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Not Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRateByAge

Step: Calculate BaseRate without operating mode, retaining average speed bin. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Not Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRate

Step: Calculate BaseRate without operating mode, aggregating average speed bins. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause).
Conditions: Not Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRateByAge

Step: Calculate BaseRateByAge with operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRateByAge with operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRateByAge
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode, retaining average speed bin. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode, aggregating average speed bins. opModeFraction=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(opModeFraction * avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * opModeFraction * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * opModeFraction * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * opModeFraction * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * opModeFraction * avgSpeedFractionClause).
Conditions: Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedEmissionRate
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode 300, retaining average speed bin. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=case when avgBinSpeed>0 then sum(MeanBaseRate * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIM=case when avgBinSpeed>0 then sum(MeanBaseRateIM * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateACAdj * avgSpeedFractionClause) / avgBinSpeed else null end. emissionRateIMACAdj=case when avgBinSpeed>0 then sum(MeanBaseRateIMACAdj * avgSpeedFractionClause) / avgBinSpeed else null end.
Conditions: Start Exhaust, Retaining average speed bin (Non-Project domain; Rates; Running Exhaust, Brakewear, or Tirewear)
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRateByAge

Step: Calculate BaseRate with operating mode 300, aggregating average speed bins. opModeFraction=sum(avgSpeedFractionClause * sumSBDClause * quantAdjustClause). opModeFractionRate=sum(avgSpeedFractionClause * sumSBDClause). MeanBaseRate=sum(MeanBaseRate * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause * quantAdjustClause). MeanBaseRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause * quantAdjustClause). emissionRate=sum(MeanBaseRate * avgSpeedFractionClause). emissionRateIM=sum(MeanBaseRateIM * avgSpeedFractionClause). emissionRateACAdj=sum(MeanBaseRateACAdj * avgSpeedFractionClause). emissionRateIMACAdj=sum(MeanBaseRateIMACAdj * avgSpeedFractionClause).
Conditions: Start Exhaust, Aggregate average speed bins (Project domain or Inventory or Rates for Non-(Running, Brakewear, or Tirewear))
Inputs: RatesOpModeDistribution, SBWeightedDistanceRate
Outputs: BaseRateByAge

Top of Page


BaseRateCalculator

BaseRateCalculator is a CALCULATOR that executes at the MONTH level.

The BaseRateCalculator is responsible for:

  • Running Exhaust (1) Total Gaseous Hydrocarbons (1)
  • Start Exhaust (2) Total Gaseous Hydrocarbons (1)
  • Brakewear (9) Total Gaseous Hydrocarbons (1)
  • Tirewear (10) Total Gaseous Hydrocarbons (1)
  • Extended Idle Exhaust (90) Total Gaseous Hydrocarbons (1)
  • Auxiliary Power Exhaust (91) Total Gaseous Hydrocarbons (1)
  • Running Exhaust (1) Carbon Monoxide (CO) (2)
  • Start Exhaust (2) Carbon Monoxide (CO) (2)
  • Brakewear (9) Carbon Monoxide (CO) (2)
  • Tirewear (10) Carbon Monoxide (CO) (2)
  • Extended Idle Exhaust (90) Carbon Monoxide (CO) (2)
  • Auxiliary Power Exhaust (91) Carbon Monoxide (CO) (2)
  • Running Exhaust (1) Oxides of Nitrogen (NOx) (3)
  • Start Exhaust (2) Oxides of Nitrogen (NOx) (3)
  • Brakewear (9) Oxides of Nitrogen (NOx) (3)
  • Tirewear (10) Oxides of Nitrogen (NOx) (3)
  • Extended Idle Exhaust (90) Oxides of Nitrogen (NOx) (3)
  • Auxiliary Power Exhaust (91) Oxides of Nitrogen (NOx) (3)
  • Running Exhaust (1) Nitrous Oxide (N2O) (6)
  • Start Exhaust (2) Nitrous Oxide (N2O) (6)
  • Brakewear (9) Nitrous Oxide (N2O) (6)
  • Tirewear (10) Nitrous Oxide (N2O) (6)
  • Extended Idle Exhaust (90) Nitrous Oxide (N2O) (6)
  • Auxiliary Power Exhaust (91) Nitrous Oxide (N2O) (6)
  • Running Exhaust (1) Ammonia (NH3) (30)
  • Start Exhaust (2) Ammonia (NH3) (30)
  • Brakewear (9) Ammonia (NH3) (30)
  • Tirewear (10) Ammonia (NH3) (30)
  • Extended Idle Exhaust (90) Ammonia (NH3) (30)
  • Auxiliary Power Exhaust (91) Ammonia (NH3) (30)
  • Running Exhaust (1) Total Energy Consumption (91)
  • Start Exhaust (2) Total Energy Consumption (91)
  • Brakewear (9) Total Energy Consumption (91)
  • Tirewear (10) Total Energy Consumption (91)
  • Extended Idle Exhaust (90) Total Energy Consumption (91)
  • Auxiliary Power Exhaust (91) Total Energy Consumption (91)
  • Running Exhaust (1) Composite - NonECPM (118)
  • Start Exhaust (2) Composite - NonECPM (118)
  • Brakewear (9) Composite - NonECPM (118)
  • Tirewear (10) Composite - NonECPM (118)
  • Extended Idle Exhaust (90) Composite - NonECPM (118)
  • Auxiliary Power Exhaust (91) Composite - NonECPM (118)
  • Running Exhaust (1) Elemental Carbon (112)
  • Start Exhaust (2) Elemental Carbon (112)
  • Brakewear (9) Elemental Carbon (112)
  • Tirewear (10) Elemental Carbon (112)
  • Extended Idle Exhaust (90) Elemental Carbon (112)
  • Auxiliary Power Exhaust (91) Elemental Carbon (112)
  • Running Exhaust (1) Primary PM2.5 - Brakewear Particulate (116)
  • Start Exhaust (2) Primary PM2.5 - Brakewear Particulate (116)
  • Brakewear (9) Primary PM2.5 - Brakewear Particulate (116)
  • Tirewear (10) Primary PM2.5 - Brakewear Particulate (116)
  • Extended Idle Exhaust (90) Primary PM2.5 - Brakewear Particulate (116)
  • Auxiliary Power Exhaust (91) Primary PM2.5 - Brakewear Particulate (116)
  • Running Exhaust (1) Primary PM2.5 - Tirewear Particulate (117)
  • Start Exhaust (2) Primary PM2.5 - Tirewear Particulate (117)
  • Brakewear (9) Primary PM2.5 - Tirewear Particulate (117)
  • Tirewear (10) Primary PM2.5 - Tirewear Particulate (117)
  • Extended Idle Exhaust (90) Primary PM2.5 - Tirewear Particulate (117)
  • Auxiliary Power Exhaust (91) Primary PM2.5 - Tirewear Particulate (117)
  • Running Exhaust (1) Mercury Elemental Gaseous (60)
  • Running Exhaust (1) Mercury Divalent Gaseous (61)
  • Running Exhaust (1) Mercury Particulate (62)
  • Running Exhaust (1) Arsenic Compounds (63)
  • Running Exhaust (1) Chromium 6+ (65)
  • Running Exhaust (1) Manganese Compounds (66)
  • Running Exhaust (1) Nickel Compounds (67)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzo-p-Dioxin (130)
  • Running Exhaust (1) Octachlorodibenzo-p-dioxin (131)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzo-p-Dioxin (132)
  • Running Exhaust (1) Octachlorodibenzofuran (133)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzo-p-Dioxin (134)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzo-p-Dioxin (135)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzofuran (136)
  • Running Exhaust (1) 1,2,3,4,7,8,9-Heptachlorodibenzofuran (137)
  • Running Exhaust (1) 2,3,4,7,8-Pentachlorodibenzofuran (138)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzofuran (139)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzofuran (140)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzo-p-Dioxin (141)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzo-p-Dioxin (142)
  • Running Exhaust (1) 2,3,4,6,7,8-Hexachlorodibenzofuran (143)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzofuran (144)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzofuran (145)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzofuran (146)
  • Running Exhaust (1) Petroleum Energy Consumption (92)
  • Start Exhaust (2) Petroleum Energy Consumption (92)
  • Brakewear (9) Petroleum Energy Consumption (92)
  • Tirewear (10) Petroleum Energy Consumption (92)
  • Extended Idle Exhaust (90) Petroleum Energy Consumption (92)
  • Auxiliary Power Exhaust (91) Petroleum Energy Consumption (92)
  • Running Exhaust (1) Fossil Fuel Energy Consumption (93)
  • Start Exhaust (2) Fossil Fuel Energy Consumption (93)
  • Brakewear (9) Fossil Fuel Energy Consumption (93)
  • Tirewear (10) Fossil Fuel Energy Consumption (93)
  • Extended Idle Exhaust (90) Fossil Fuel Energy Consumption (93)
  • Auxiliary Power Exhaust (91) Fossil Fuel Energy Consumption (93)


The BaseRateCalculator output is used by:


BaseRateCalculator uses the following tables:


BaseRateCalculator is expressed in these source code files:

  • /database/BaseRateCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/BaseRateCalculator.java

Steps

The BaseRateCalculator algorithm is as follows.

Step: Create EmissionRateAdjustment by modelyear.
Inputs: emissionrateadjustment, modelyear, pollutantprocessassoc
Outputs: EmissionRateAdjustmentWorker

Step: ACFactor[hourID,sourceTypeID,modelYearID]=LEAST(GREATEST(ACActivityTermA+heatIndex*(ACActivityTermB+ACActivityTermC*heatIndex),0),1.0)*ACPenetrationFraction*functioningACFraction.
Inputs: monthgrouphour, monthofanyyear, SourceTypeAge, sourcetypemodelyear, ZoneMonthHour
Outputs: zoneACFactor

Step: activity=SHO
Conditions: Running Exhaust, Brakewear, Tirewear
Inputs: runspechourday, sho
Outputs: universalactivity

Step: activity=starts
Conditions: Starts
Inputs: runspechourday, starts
Outputs: universalactivity

Step: activity=extendedIdleHours
Conditions: Extended Idle Exhaust
Inputs: extendedidlehours, runspechourday
Outputs: universalactivity

Step: activity=hotellingHours
Conditions: Auxiliary Power Exhaust
Inputs: hotellinghours, runspechourday
Outputs: universalactivity

Step: hourFractionAdjust=1.0/opModeFraction[opModeID=201].
Conditions: Auxiliary Power Exhaust
Inputs: hotellingActivityDistribution, runspecmodelyearage
Outputs: apuEmissionRateFraction

Step: Disaggregate IMCoverage records, expanding model year ranges into individual model years. IMAdjustFract[processID,pollutantID,modelYearID,fuelTypeID,sourceTypeID]=IMFactor*complianceFactor*0.01.
Inputs: agecategory, imcoverage, imfactor, pollutantprocessassoc, pollutantprocessmappedmodelyear
Outputs: imcoveragemergedungrouped

Step: Add age-based rates
Inputs: agecategory, baseratebyage, runspecmodelyearage
Outputs: tempbaserateoutput

Step: Add rates that don't depend upon age
Inputs: baserate
Outputs: tempbaserateoutput

Step: APU hourly rates have already been scaled by the APU operating mode (201) fraction. This works well for inventory, but not so for rate by APU operating hour. To compensate, emission rates must be divided by the opModeFraction for opMode 201. hourFractionAdjust is 1/opModeFraction with a safeguard for a fraction of 0.
Conditions: APU process hourly rates
Outputs: apuemissionratefraction, tempbaserateoutput

Step: Obtain fuel market share.
Inputs: localfuelsupply, tempbaserateoutput
Outputs: baserateoutputwithfuel

Step: Calculate humidity adjustment factor K. K = 1.0 - ((greatest(21.0, least(specificHumidity, 124.0))) - 75.0) * humidityCorrectionCoeff
Conditions: Start Exhaust (2).
Outputs: baserateoutputwithfuel, fueltype, zonemonthhour

Step: Do Start Temperature adjustments by opModeID. PM uses multiplicative factors. Everything else uses additive factors. The additive part needs to be weighted by opModeFraction (stored in generalFraction). Being a rate, sourceBinActivityFraction is not required for the weighting since activity would have been weighted similarly. For polProcessIDs (11202,11802): rate = rate*tempAdjustTermB*exp(tempAdjustTermA*(72.0-least(temperature,72)))+tempAdjustTermC. For all other polProcessIDs with startTempEquationType of 'LOG': rate = rate + generalFraction * (tempAdjustTermB*exp(tempAdjustTermA*(LEAST(temperature,75)-75))+ tempAdjustTermC). For all other polProcessIDs with startTempEquationType of 'POLY': rate = rate + generalFraction * ((LEAST(temperature,75)-75) * (tempAdjustTermA+(LEAST(temperature,75)-75) * (tempAdjustTermB+(LEAST(temperature,75)-75) * tempAdjustTermC))).
Conditions: Start Exhaust (2) process.
Outputs: baserateoutputwithfuel, pollutantprocessmappedmodelyear, starttempadjustment

Step: Apply the County's GPAFract to the general fuel adjustment. fuelEffectRatio=ifnull(fuelEffectRatio,1)+GPAFract*(ifnull(fuelEffectRatioGPA,1)-ifnull(fuelEffectRatio,1))
Outputs: county, generalfuelratio

Step: Apply GeneralFuelRatio to BaseRateOutputWithFuel. rate = rate * fuelEffectRatio. fuelEffectRatio is the GPA-weighted GeneralFuelRatio.
Outputs: baserateoutputwithfuel, generalfuelratio

Step: Apply the County's GPAFract to the criteriaRatio fuel adjustment. criteria ratio = ifnull(ratio,1)+GPAFract*(ifnull(ratioGPA,1)-ifnull(ratio,1))
Conditions: Running Exhaust (1) and Start Exhaust (2).
Outputs: county, criteriaratio

Step: Apply CriteriaRatio to BaseRateOutputWithFuel. rate = rate * criteria ratio[fuelTypeID,fuelFormulationID,polProcessID,sourceTypeID,modelYearID,ageID]
Conditions: Running Exhaust (1) and Start Exhaust (2).
Outputs: baserateoutputwithfuel, criteriaratio

Step: Calculate humidity adjustment factor K. K = 1.0 - ((greatest(21.0, least(specificHumidity, 124.0))) - 75.0) * humidityCorrectionCoeff
Conditions: Not Start Exhaust (2).
Outputs: baserateoutputwithfuel, fueltype, zonemonthhour

Step: Apply temperature adjustment. For processes (1,2) and pollutants (118,112): rate=rate*exp((case when temperature <= 72.0 then tempAdjustTermA*(72.0-temperature) else 0 end)). For all others: rate=rate*((1.0 + (temperature-75)*(tempAdjustTermA + (temperature-75)*tempAdjustTermB))*if(BaseRateOutputWithFuel.processID in (1,90,91),if(BaseRateOutputWithFuel.pollutantID=3,K,1.0),1.0)).
Conditions: Testing
Inputs: TemperatureAdjustment
Outputs: BaseRateOutputWithFuel, temperatureadjustment

Step: generalFraction = ACFactor[hourID,sourceTypeID,modelYearID].
Conditions: Not Start Exhaust (2).
Inputs: zoneACFactor
Outputs: BaseRateOutputWithFuel, zoneacfactor

Step: meanBaseRate = meanBaseRate + (meanBaseRateACAdj * generalFraction[hourID,sourceTypeID,modelYearID]). meanBaseRateIM = meanBaseRateIM + (meanBaseRateIMACAdj * generalFraction[hourID,sourceTypeID,modelYearID]). emissionRate = emissionRate + (emissionRateACAdj * generalFraction[hourID,sourceTypeID,modelYearID]). emissionRateIM = emissionRateIM + (emissionRateIMACAdj * generalFraction[hourID,sourceTypeID,modelYearID]).
Conditions: Not Start Exhaust (2).
Outputs: baserateoutputwithfuel

Step: Apply I/M programs to BaseRateOutputWithFuel. meanBaseRate=meanBaseRateIM*IMAdjustFract + meanBaseRate*(1-IMAdjustFract). emissionRate=emissionRateIM*IMAdjustFract + emissionRate*(1-IMAdjustFract).
Inputs: IMCoverageMergedUngrouped
Outputs: BaseRateOutputWithFuel, imcoveragemergedungrouped

Step: Handle E85 THC that is created from E10's RVP instead of E85's RVP. Weight the fuel effect ratio by the county's GPA fraction alt criteria ratio=ifnull(ratio,1)+GPAFract*(ifnull(ratioGPA,1)-ifnull(ratio,1))
Conditions: Running Exhaust (1) and Start Exhaust (2).
Inputs: County
Outputs: altCriteriaRatio, county

Step: Determine the scaling effect of E10-RVP-based fuel effects to E85-RVP-based fuel effects. alt criteria ratio = alt criteria ratio / criteria ratio.
Conditions: Running Exhaust (1) and Start Exhaust (2).
Inputs: criteriaRatio
Outputs: altCriteriaRatio, criteriaratio

Step: Make THC records from the E10 RVP by using the E85-based THC. The output pollutant is 10001. rate for pollutant 10001 = rate * alt criteria ratio.
Conditions: Running Exhaust (1) and Start Exhaust (2).
Inputs: altcriteriaratio
Outputs: baserateoutputwithfuel

Step: emissionRate=emissionRate*EmissionRateAdjustment, meanbaserate=meanbaserate*EmissionRateAdjustment
Outputs: baserateoutputwithfuel, emissionrateadjustmentworker

Step: Petroleum Energy (92) = Total Energy Consumption (91) * fuelSubtypePetroleumFraction.
Inputs: localfuelsupply
Outputs: baserateoutputwithfuel

Step: Fossil Energy (93) = Total Energy Consumption (91) * fuelSubtypeFossilFraction.
Inputs: localfuelsupply
Outputs: baserateoutputwithfuel

Step: Remove fuel formulation and opModeID from BaseRateOutputWithFuel, filling BaseRateOutput. Note: This top-level calculator executes at the Month level. That means there will be exactly one distinct value in each of these columns: processID, stateID, countyID, zoneID, linkID, roadtypeID, yearID, monthID. As such, these columns do not need to be indexed or included in a GROUP BY.
Inputs: baserateoutputwithfuel
Outputs: baserateoutput

Step: Ensure all activity slots have data. Use a default value of 0 when not provided by the input table.
Inputs: runspechourday, runspecmodelyearage, runspecsourcetype
Outputs: universalactivity

Step: When aggregating APU emission rates to remove source type, model year, fuel type, or regclass, the activity used to weight the rates must be adjusted. The input activity includes extended idling and instead must be restricted to just hours spent using a diesel APU. This is a model year-based effect.
Outputs: activitydetail, apuemissionratefraction

Step: When aggregating rates to remove source type, model year, fuel type, or regclass, calculate an activity distribution. smfrFraction[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID] = activity[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID] / activityTotal[aggregated]
Inputs: activitydetail, activitytotal
Outputs: activityweight

Step: When aggregating rates to remove source type, model year, fuel type, or regclass, weight emissions by the activity distribution. BaseRateOutput = BaseRateOutput * smfrFraction[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID]
Outputs: activityweight, baserateoutput

Step: When aggregating rates to remove source type, model year, fuel type, or regclass, weight emissions by the activity distribution. BaseRateOutput = BaseRateOutput * smfrFraction[sourceTypeID,modelYearID,hourDayID,fuelTypeID,regClassID]
Outputs: activityweight, baserateoutput

Step: When creating an inventory or certain rates, convert BaseRateOutput to an inventory. BaseRateOutput.meanBaseRate = BaseRateOutput.meanBaseRate * activity[processID,hourDayID,modelYearID,sourceTypeID(,month,year,location)]
Outputs: baserateoutput, universalactivity

Step: Populate MOVESWorkerOutput from BaseRateOutput.
Inputs: baserateoutput
Outputs: movesworkeroutput

Step: When chained calculators are used, data must be moved back from MOVESWorkerOutput. avgSpeedBinID must be recovered in this process.
Conditions: Chained calculators are present.

Step: Remove entries from BaseRateOutput. These will be reinserted later along with the results from chained calculators.
Conditions: Chained calculators are present.
Outputs: baserateoutput

Step: Populate BaseRateOutput from MOVESWorkerOutput.
Conditions: Non-Project domain rates chained calculators are present.
Inputs: movesworkeroutput
Outputs: baserateoutput

Step: Populate BaseRateOutput from MOVESWorkerOutput. avgSpeedBinID is always 0 in project mode.
Conditions: Project domain rates chained calculators are present.
Inputs: movesworkeroutput
Outputs: baserateoutput

Step: Populate BaseRateOutput from MOVESWorkerOutput. avgSpeedBinID is always 0 in inventory mode.
Conditions: Inventory chained calculators are present.
Inputs: movesworkeroutput
Outputs: baserateoutput

Top of Page


CO2AERunningStartExtendedIdleCalculator

CO2AERunningStartExtendedIdleCalculator is a that executes at the level.

The CO2AERunningStartExtendedIdleCalculator is responsible for:

  • Running Exhaust (1) Atmospheric CO2 (90)
  • Running Exhaust (1) CO2 Equivalent (98)
  • Start Exhaust (2) Atmospheric CO2 (90)
  • Start Exhaust (2) CO2 Equivalent (98)
  • Extended Idle Exhaust (90) Atmospheric CO2 (90)
  • Extended Idle Exhaust (90) CO2 Equivalent (98)
  • Auxiliary Power Exhaust (91) Atmospheric CO2 (90)
  • Auxiliary Power Exhaust (91) CO2 Equivalent (98)


The CO2AERunningStartExtendedIdleCalculator input comes from:


CO2AERunningStartExtendedIdleCalculator uses the following tables:


CO2AERunningStartExtendedIdleCalculator is expressed in these source code files:

  • /database/CO2AERunningStartExtendedIdleCalculator.sql

Steps

The CO2AERunningStartExtendedIdleCalculator algorithm is as follows.

Step: sumCarbonContent[countyID,yearID,monthGroupID,pollutantID,fuelTypeID]=sum(marketShare * carbonContent). sumOxidationFraction[countyID,yearID,monthGroupID,pollutantID,fuelTypeID]=sum(marketShare * oxidationFraction).
Inputs: fuelformulation, fuelsubtype, fuelsupply, year
Outputs: carbonoxidationbyfueltype

Step: Atmospheric CO2 = sum(Total Energy Consumption * sumCarbonContent * sumOxidationFraction * (44/12)).
Inputs: carbonoxidationbyfueltype, co2monthofanyyear, movesworkeroutput
Outputs: movesoutputco2temp1a

Step: Equivalent CO2 = sum(emissions[polutant=CO2 or Methane or N2O] * globalWarmingPotential).
Inputs: co2eqpollutant, movesworkeroutput
Outputs: movesoutputco2temp2

Top of Page


Crankcase Emission Calculator

Crankcase Emission Calculator is a CHAINED CALCULATOR.

The Crankcase Emission Calculator is responsible for:

  • Crankcase Running Exhaust (15) Total Gaseous Hydrocarbons (1)
  • Crankcase Running Exhaust (15) Carbon Monoxide (CO) (2)
  • Crankcase Running Exhaust (15) Oxides of Nitrogen (NOx) (3)
  • Crankcase Running Exhaust (15) Methane (CH4) (5)
  • Crankcase Running Exhaust (15) Nitrous Oxide (N2O) (6)
  • Crankcase Running Exhaust (15) Benzene (20)
  • Crankcase Running Exhaust (15) Ethanol (21)
  • Crankcase Running Exhaust (15) MTBE (22)
  • Crankcase Running Exhaust (15) Naphthalene particle (23)
  • Crankcase Running Exhaust (15) 1,3-Butadiene (24)
  • Crankcase Running Exhaust (15) Formaldehyde (25)
  • Crankcase Running Exhaust (15) Acetaldehyde (26)
  • Crankcase Running Exhaust (15) Acrolein (27)
  • Crankcase Running Exhaust (15) Ammonia (NH3) (30)
  • Crankcase Running Exhaust (15) Sulfur Dioxide (SO2) (31)
  • Crankcase Running Exhaust (15) Nitrogen Oxide (NO) (32)
  • Crankcase Running Exhaust (15) Nitrogen Dioxide (NO2) (33)
  • Crankcase Running Exhaust (15) Nitrous Acid (HONO) (34)
  • Crankcase Running Exhaust (15) Non-Methane Hydrocarbons (79)
  • Crankcase Running Exhaust (15) Non-Methane Organic Gases (80)
  • Crankcase Running Exhaust (15) Total Organic Gases (86)
  • Crankcase Running Exhaust (15) Volatile Organic Compounds (87)
  • Crankcase Running Exhaust (15) 2,2,4-Trimethylpentane (40)
  • Crankcase Running Exhaust (15) Ethyl Benzene (41)
  • Crankcase Running Exhaust (15) Hexane (42)
  • Crankcase Running Exhaust (15) Propionaldehyde (43)
  • Crankcase Running Exhaust (15) Styrene (44)
  • Crankcase Running Exhaust (15) Toluene (45)
  • Crankcase Running Exhaust (15) Xylene (46)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Running Exhaust (15) Fluoranthene particle (69)
  • Crankcase Running Exhaust (15) Acenaphthene particle (70)
  • Crankcase Running Exhaust (15) Acenaphthylene particle (71)
  • Crankcase Running Exhaust (15) Anthracene particle (72)
  • Crankcase Running Exhaust (15) Benz(a)anthracene particle (73)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene particle (74)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene particle (75)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene particle (76)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene particle (77)
  • Crankcase Running Exhaust (15) Chrysene particle (78)
  • Crankcase Running Exhaust (15) Fluorene particle (81)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Running Exhaust (15) Phenanthrene particle (83)
  • Crankcase Running Exhaust (15) Pyrene particle (84)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Running Exhaust (15) Fluoranthene gas (169)
  • Crankcase Running Exhaust (15) Acenaphthene gas (170)
  • Crankcase Running Exhaust (15) Acenaphthylene gas (171)
  • Crankcase Running Exhaust (15) Anthracene gas (172)
  • Crankcase Running Exhaust (15) Benz(a)anthracene gas (173)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene gas (174)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene gas (175)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene gas (176)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene gas (177)
  • Crankcase Running Exhaust (15) Chrysene gas (178)
  • Crankcase Running Exhaust (15) Fluorene gas (181)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Running Exhaust (15) Phenanthrene gas (183)
  • Crankcase Running Exhaust (15) Pyrene gas (184)
  • Crankcase Running Exhaust (15) Naphthalene gas (185)
  • Crankcase Start Exhaust (16) Total Gaseous Hydrocarbons (1)
  • Crankcase Start Exhaust (16) Carbon Monoxide (CO) (2)
  • Crankcase Start Exhaust (16) Oxides of Nitrogen (NOx) (3)
  • Crankcase Start Exhaust (16) Methane (CH4) (5)
  • Crankcase Start Exhaust (16) Nitrous Oxide (N2O) (6)
  • Crankcase Start Exhaust (16) Benzene (20)
  • Crankcase Start Exhaust (16) Ethanol (21)
  • Crankcase Start Exhaust (16) MTBE (22)
  • Crankcase Start Exhaust (16) Naphthalene particle (23)
  • Crankcase Start Exhaust (16) 1,3-Butadiene (24)
  • Crankcase Start Exhaust (16) Formaldehyde (25)
  • Crankcase Start Exhaust (16) Acetaldehyde (26)
  • Crankcase Start Exhaust (16) Acrolein (27)
  • Crankcase Start Exhaust (16) Ammonia (NH3) (30)
  • Crankcase Start Exhaust (16) Sulfur Dioxide (SO2) (31)
  • Crankcase Start Exhaust (16) Nitrogen Oxide (NO) (32)
  • Crankcase Start Exhaust (16) Nitrogen Dioxide (NO2) (33)
  • Crankcase Start Exhaust (16) Nitrous Acid (HONO) (34)
  • Crankcase Start Exhaust (16) Non-Methane Hydrocarbons (79)
  • Crankcase Start Exhaust (16) Non-Methane Organic Gases (80)
  • Crankcase Start Exhaust (16) Total Organic Gases (86)
  • Crankcase Start Exhaust (16) Volatile Organic Compounds (87)
  • Crankcase Start Exhaust (16) 2,2,4-Trimethylpentane (40)
  • Crankcase Start Exhaust (16) Ethyl Benzene (41)
  • Crankcase Start Exhaust (16) Hexane (42)
  • Crankcase Start Exhaust (16) Propionaldehyde (43)
  • Crankcase Start Exhaust (16) Styrene (44)
  • Crankcase Start Exhaust (16) Toluene (45)
  • Crankcase Start Exhaust (16) Xylene (46)
  • Crankcase Start Exhaust (16) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Start Exhaust (16) Fluoranthene particle (69)
  • Crankcase Start Exhaust (16) Acenaphthene particle (70)
  • Crankcase Start Exhaust (16) Acenaphthylene particle (71)
  • Crankcase Start Exhaust (16) Anthracene particle (72)
  • Crankcase Start Exhaust (16) Benz(a)anthracene particle (73)
  • Crankcase Start Exhaust (16) Benzo(a)pyrene particle (74)
  • Crankcase Start Exhaust (16) Benzo(b)fluoranthene particle (75)
  • Crankcase Start Exhaust (16) Benzo(g,h,i)perylene particle (76)
  • Crankcase Start Exhaust (16) Benzo(k)fluoranthene particle (77)
  • Crankcase Start Exhaust (16) Chrysene particle (78)
  • Crankcase Start Exhaust (16) Fluorene particle (81)
  • Crankcase Start Exhaust (16) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Start Exhaust (16) Phenanthrene particle (83)
  • Crankcase Start Exhaust (16) Pyrene particle (84)
  • Crankcase Start Exhaust (16) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Start Exhaust (16) Fluoranthene gas (169)
  • Crankcase Start Exhaust (16) Acenaphthene gas (170)
  • Crankcase Start Exhaust (16) Acenaphthylene gas (171)
  • Crankcase Start Exhaust (16) Anthracene gas (172)
  • Crankcase Start Exhaust (16) Benz(a)anthracene gas (173)
  • Crankcase Start Exhaust (16) Benzo(a)pyrene gas (174)
  • Crankcase Start Exhaust (16) Benzo(b)fluoranthene gas (175)
  • Crankcase Start Exhaust (16) Benzo(g,h,i)perylene gas (176)
  • Crankcase Start Exhaust (16) Benzo(k)fluoranthene gas (177)
  • Crankcase Start Exhaust (16) Chrysene gas (178)
  • Crankcase Start Exhaust (16) Fluorene gas (181)
  • Crankcase Start Exhaust (16) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Start Exhaust (16) Phenanthrene gas (183)
  • Crankcase Start Exhaust (16) Pyrene gas (184)
  • Crankcase Start Exhaust (16) Naphthalene gas (185)
  • Crankcase Extended Idle Exhaust (17) Total Gaseous Hydrocarbons (1)
  • Crankcase Extended Idle Exhaust (17) Carbon Monoxide (CO) (2)
  • Crankcase Extended Idle Exhaust (17) Oxides of Nitrogen (NOx) (3)
  • Crankcase Extended Idle Exhaust (17) Methane (CH4) (5)
  • Crankcase Extended Idle Exhaust (17) Nitrous Oxide (N2O) (6)
  • Crankcase Extended Idle Exhaust (17) Benzene (20)
  • Crankcase Extended Idle Exhaust (17) Ethanol (21)
  • Crankcase Extended Idle Exhaust (17) MTBE (22)
  • Crankcase Extended Idle Exhaust (17) Naphthalene particle (23)
  • Crankcase Extended Idle Exhaust (17) 1,3-Butadiene (24)
  • Crankcase Extended Idle Exhaust (17) Formaldehyde (25)
  • Crankcase Extended Idle Exhaust (17) Acetaldehyde (26)
  • Crankcase Extended Idle Exhaust (17) Acrolein (27)
  • Crankcase Extended Idle Exhaust (17) Ammonia (NH3) (30)
  • Crankcase Extended Idle Exhaust (17) Sulfur Dioxide (SO2) (31)
  • Crankcase Extended Idle Exhaust (17) Nitrogen Oxide (NO) (32)
  • Crankcase Extended Idle Exhaust (17) Nitrogen Dioxide (NO2) (33)
  • Crankcase Extended Idle Exhaust (17) Nitrous Acid (HONO) (34)
  • Crankcase Extended Idle Exhaust (17) Non-Methane Hydrocarbons (79)
  • Crankcase Extended Idle Exhaust (17) Non-Methane Organic Gases (80)
  • Crankcase Extended Idle Exhaust (17) Total Organic Gases (86)
  • Crankcase Extended Idle Exhaust (17) Volatile Organic Compounds (87)
  • Crankcase Extended Idle Exhaust (17) 2,2,4-Trimethylpentane (40)
  • Crankcase Extended Idle Exhaust (17) Ethyl Benzene (41)
  • Crankcase Extended Idle Exhaust (17) Hexane (42)
  • Crankcase Extended Idle Exhaust (17) Propionaldehyde (43)
  • Crankcase Extended Idle Exhaust (17) Styrene (44)
  • Crankcase Extended Idle Exhaust (17) Toluene (45)
  • Crankcase Extended Idle Exhaust (17) Xylene (46)
  • Crankcase Extended Idle Exhaust (17) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Extended Idle Exhaust (17) Fluoranthene particle (69)
  • Crankcase Extended Idle Exhaust (17) Acenaphthene particle (70)
  • Crankcase Extended Idle Exhaust (17) Acenaphthylene particle (71)
  • Crankcase Extended Idle Exhaust (17) Anthracene particle (72)
  • Crankcase Extended Idle Exhaust (17) Benz(a)anthracene particle (73)
  • Crankcase Extended Idle Exhaust (17) Benzo(a)pyrene particle (74)
  • Crankcase Extended Idle Exhaust (17) Benzo(b)fluoranthene particle (75)
  • Crankcase Extended Idle Exhaust (17) Benzo(g,h,i)perylene particle (76)
  • Crankcase Extended Idle Exhaust (17) Benzo(k)fluoranthene particle (77)
  • Crankcase Extended Idle Exhaust (17) Chrysene particle (78)
  • Crankcase Extended Idle Exhaust (17) Fluorene particle (81)
  • Crankcase Extended Idle Exhaust (17) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Extended Idle Exhaust (17) Phenanthrene particle (83)
  • Crankcase Extended Idle Exhaust (17) Pyrene particle (84)
  • Crankcase Extended Idle Exhaust (17) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Extended Idle Exhaust (17) Fluoranthene gas (169)
  • Crankcase Extended Idle Exhaust (17) Acenaphthene gas (170)
  • Crankcase Extended Idle Exhaust (17) Acenaphthylene gas (171)
  • Crankcase Extended Idle Exhaust (17) Anthracene gas (172)
  • Crankcase Extended Idle Exhaust (17) Benz(a)anthracene gas (173)
  • Crankcase Extended Idle Exhaust (17) Benzo(a)pyrene gas (174)
  • Crankcase Extended Idle Exhaust (17) Benzo(b)fluoranthene gas (175)
  • Crankcase Extended Idle Exhaust (17) Benzo(g,h,i)perylene gas (176)
  • Crankcase Extended Idle Exhaust (17) Benzo(k)fluoranthene gas (177)
  • Crankcase Extended Idle Exhaust (17) Chrysene gas (178)
  • Crankcase Extended Idle Exhaust (17) Fluorene gas (181)
  • Crankcase Extended Idle Exhaust (17) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Extended Idle Exhaust (17) Phenanthrene gas (183)
  • Crankcase Extended Idle Exhaust (17) Pyrene gas (184)
  • Crankcase Extended Idle Exhaust (17) Naphthalene gas (185)


The Crankcase Emission Calculator input comes from:


The Crankcase Emission Calculator output is used by:


Crankcase Emission Calculator uses the following tables:


Crankcase Emission Calculator is expressed in these source code files:

  • /database/CrankcaseEmissionCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/CrankcaseEmissionCalculatorNonPM.java

Steps

The Crankcase Emission Calculator algorithm is as follows.

Step: crankcase emissions[output pollutantID,processID,modelYearID,sourceTypeID,fuelTypeID] = emissions[input pollutantID,processID,modelYearID,sourceTypeID,fuelTypeID] * crankcaseRatio[output pollutantID,input polluantID,processID,modelYearID,sourceTypeID,fuelTypeID]
Inputs: ##prefix##crankcaseemissionratio, ##prefix##crankcasepollutantprocessassoc, movesworkeroutput
Outputs: ##prefix##crankcasemovesworkeroutputtemp

Top of Page


Distance Calculator

Distance Calculator is a that executes at the YEAR level.

Distance Calculator uses the following tables:


Distance Calculator is expressed in these source code files:

  • /database/DistanceCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/DistanceCalculator.java

Steps

The Distance Calculator algorithm is as follows.

Step: fuelTypeActivityFraction[sourceTypeID,modelYearID,regClassID,fuelTypeID] = sum(sourceBinActivityFraction[processID=1,pollutantID=any,sourceBinID[fuelTypeID,engTechID,regClassID,modelYearGroupID,engSizeID]]).
Inputs: sourcebin, sourcebindistribution
Outputs: sbd2

Step: Add sourceTypeModelYearID to fuelTypeActivityFraction's dimensions.
Inputs: sbd2, sourcetypemodelyear
Outputs: distfracts

Step: Add modelYearID to SHO's dimensions.
Inputs: hourday, sho
Outputs: sho2

Step: distance = distance[sourceTypeID,yearID,monthID,hourDayID,ageID,linkID]*fuelTypeActivityFraction.
Inputs: distfracts, sho3
Outputs: movesworkeractivityoutput

Top of Page


Evaporative Emissions Operating Mode Distribution Generator

Evaporative Emissions Operating Mode Distribution Generator is a GENERATOR that executes at the MONTH level.

Evaporative Emissions Operating Mode Distribution Generator uses the following tables:


Evaporative Emissions Operating Mode Distribution Generator populates the following tables:


Evaporative Emissions Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/EvaporativeEmissionsOperatingModeDistributionGenerator.java

Steps

The Evaporative Emissions Operating Mode Distribution Generator algorithm is as follows.

Step: Delete data for a link that was calculated for a previous year or month than the current context.
Outputs: OpModeDistribution

Step: fractionOfOperating=least(1,COALESCE(SUM(SHO),0)/SUM(sourceHours)).
Inputs: SHO, sourceHours
Outputs: FractionOfOperating

Step: opModeFraction=soakActivityFraction*(1-fractionOfOperating).
Inputs: FractionOfOperating, OpModePolProcAssoc, PollutantProcessAssoc, SoakActivityFraction
Outputs: OpModeDistributionTemp

Step: At this point, all non-operating modes (modes != 300) are in the database along with the relevant pollutant/processes. Add 100%-sum(non-operating) as operating (mode 300). opModeFraction[opModeID=300]=greatest(0,1-sum(opModeFraction)).
Outputs: OpModeDistributionTemp

Step: Copy OpModeDistributionTemp into OpModeDistribution.
Inputs: OpModeDistributionTemp
Outputs: OpModeDistribution

Top of Page


Evaporative Permeation Calculator

Evaporative Permeation Calculator is a CALCULATOR that executes at the MONTH level.

The Evaporative Permeation Calculator is responsible for:

  • Evap Permeation (11) Total Gaseous Hydrocarbons (1)


The Evaporative Permeation Calculator output is used by:


Evaporative Permeation Calculator uses the following tables:


Evaporative Permeation Calculator is expressed in these source code files:

  • /database/EvaporativePermeationCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/EvaporativePermeationCalculator.java

Steps

The Evaporative Permeation Calculator algorithm is as follows.

Step: Add ageGroupID to SourceBinDistribution.sourceBinActivityFraction using model year and the calendar year.
Inputs: agecategory, sourcebindistribution, sourcetypemodelyear
Outputs: sourcebindistributionbyage

Step: SBWeightedPermeationRate.meanBaseRate = sourceBinActivityFraction * EmissionRateByAge.meanBaseRate * regClassFraction
Inputs: emissionratebyage, regclasssourcetypefraction, sourcebin, sourcebindistributionbyage
Outputs: sbweightedpermeationrate

Step: temperatureAdjustByOpMode = tempAdjustTermA*EXP(tempAdjustTermB*averageTankTemperature)
Inputs: averagetanktemperature, modelyear, temperatureadjustment
Outputs: temperatureadjustbyopmode

Step: weightedTemperatureAdjust = sum(temperatureAdjustByOpMode * opModeFraction) across all operating modes.
Inputs: link, opmodedistribution, temperatureadjustbyopmode
Outputs: weightedtemperatureadjust

Step: weightedFuelAdjustment = sum(marketShare*(fuelAdjustment+GPAFract*(fuelAdjustmentGPA-fuelAdjustment))) across fuel formulations in the fuel supply.
Inputs: county, etohbin, fuelformulation, fuelsubtype, fuelsupply, hcpermeationcoeff, pollutantprocessmappedmodelyear, year
Outputs: weightedfueladjustment

Step: fuelAdjustedEmissionRate = SBWeightedPermeationRate.meanBaseRate * weightedFuelAdjustment
Inputs: sbweightedpermeationrate, weightedfueladjustment, year
Outputs: fueladjustedemissionrate

Step: fuelAdjustedEmissionQuant = fuelAdjustedEmissionRate * sourceHours
Inputs: fueladjustedemissionrate, link, sourcehours
Outputs: fueladjustedemissionquant

Step: emissionQuant = weightedTemperatureAdjust * fuelAdjustedEmissionQuant
Inputs: county, fueladjustedemissionquant, hourday, link, pollutantprocessassoc, pollutantprocessmodelyear, sourcetypemodelyeargroup, weightedtemperatureadjust
Outputs: movesworkeroutput

Top of Page


Fuel Effects Generator

Fuel Effects Generator is a GENERATOR that executes at the PROCESS level.

Fuel Effects Generator uses the following tables:


Fuel Effects Generator populates the following tables:


Fuel Effects Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/FuelEffectsGenerator.java

Steps

The Fuel Effects Generator algorithm is as follows.

Step: Find fuel formulation and supply information that should be duplicated for use with high ethanol fuel effects.
Conditions: fuelSubtypeID 51 and 52, the high ethanol fuel subtypes.
Inputs: fuelFormulation, fuelSupply

Step: Every occurrence of a high ethanol fuel within the fuel supply needs to reference a different fuel formulation. This allows region-based and month-based ethanol adjustments to be applied to a fuel formulation with assurance that it is only used in one region and month. For each fuel supply reference of a high ethanol fuel formulation, create a new fuel formulation with a new fuelFormulationID and containing all the properties of the original fuel formulation.
Inputs: fuelSupply
Outputs: fuelFormulation

Step: Provide a defualt altRVP value. altRVP=RVP.
Outputs: fuelFormulation

Step: Update fuel formulation properties of each high ethanol fuel: sulfurLevel, ETOHVolume, MTBEVolume, ETBEVolume, TAMEVolume, aromaticContent, olefinContent, benzeneContent, e200, e300, BioDieselEsterVolume, CetaneIndex, PAHContent, T50, and T90. altRVP = RVP. When there is a matching e10FuelProperties entry for the fuel region (e1) and it's property column is not null, use its value. Otherwise, where there is a matching e10FuelProperties entry for the nation (e0) and it's property column is not null, use its value. Otherwise, continue to use the value of the fuel formulation. In general, fuelFormulation.[property]=coalesce(e1.[property],e0.[property],fuelFormulation.[property]).
Inputs: e10FuelProperties as e0 where e0.fuelRegionID=0., e10FuelProperties as e1 where e1.fuelRegionID= fuelSupply.fuelRegionID., fuelSupply
Outputs: fuelFormulation

Step: volToWtPercentOxy = (ETOHVolume*0.3653 + MTBEVolume*0.1792 + ETBEVolume*0.1537 + TAMEVolume*0.1651) / (ETOHVolume+MTBEVolume+ETBEVolume+TAMEVolume) , when conditions are met, 0 otherwise.
Conditions: (ETOHVolume+MTBEVolume+ETBEVolume+TAMEVolume) > 0.
Outputs: fuelFormulation

Step: Read all expressions into memory.
Inputs: GeneralFuelRatioExpression
Outputs: list of expressions

Step: Copy and alter expressions that affect some E85 fuels (see conditions). The new expression affects pollutant 10001 known as "Pseudo-THC", only fuel subtypes 51 and 52, and only model years >= 2001. The new expression references fuelFormulation.altRVP anywhere the old expression referenced RVP. Fuel formulation's have altRVP derived from the e10FuelProperties table in a previous step.
Conditions: Ethanol fuel type (5), THC (1) pollutant, model years >= 2001, and Running or Starts.
Outputs: list of expressions

Step: Evaluate each expression against the list of fuel formulations that match its conditions for fuel type and fuel subtype. Each expression can use any column name in the fuelFormulation table. fuelEffectRatio = [expression]. fuelEffectRatioGPA = [expression].
Inputs: fuelFormulation, list of expressions
Outputs: GeneralFuelRatio

Step: Get the set of dioxin pollutant/processes known to MOVES.
Inputs: dioxinEmissionRate
Outputs: list of dioxin polProcessIDs

Step: Create a temporary table for dioxin emissions.
Inputs: dioxinEmissionRate
Outputs: tempDioxinEmissionRate

Step: Get dioxin emission rates that are given by expressions. dioxin meanBaseRate = fuelEffectRatio.
Inputs: generalFuelRatio, list of dioxin polProcessIDs
Outputs: tempDioxinEmissionRate

Step: Delete dioxin emission rates that are given by expressions, deleting all entries from dioxinEmissionRate that have a corresponding tempDioxinEmissionRate entry.
Inputs: tempDioxinEmissionRate
Outputs: dioxinEmissionRate

Step: Store dioxin emission rates given by expressions. dioxinEmissionRate.meanBaseRate = tempDioxinEmissionRate.meanBaseRate.
Inputs: tempDioxinEmissionRate
Outputs: dioxinEmissionRate

Step: Remove all dioxin polProcessIDs from generalFuelRatio.
Inputs: list of dioxin polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of metal pollutant/processes known to MOVES.
Inputs: metalEmissionRate
Outputs: list of metal polProcessIDs

Step: Create a temporary table for metal emissions.
Inputs: metalEmissionRate
Outputs: tempMetalEmissionRate

Step: Get metal emission rates that are given by expressions. dioxin meanBaseRate = fuelEffectRatio.
Inputs: generalFuelRatio, list of metal polProcessIDs
Outputs: tempMetalEmissionRate

Step: Delete metal emission rates that are given by expressions, deleting all entries from metalEmissionRate that have a corresponding tempMetalEmissionRate entry.
Inputs: tempMetalEmissionRate
Outputs: metalEmissionRate

Step: Store metal emission rates given by expressions. metalEmissionRate.meanBaseRate = tempMetalEmissionRate.meanBaseRate.
Inputs: tempMetalEmissionRate
Outputs: metalEmissionRate

Step: Remove all metal polProcessIDs from generalFuelRatio.
Inputs: list of metal polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of minor HAP pollutant/processes known to MOVES.
Inputs: minorHapRatio
Outputs: list of minor HAP polProcessIDs

Step: Create a temporary table for minor HAP rates.
Inputs: minorHapRatio
Outputs: tempMinorHapRatio

Step: Get minor HAP emission rates that are given by expressions. dioxin atRatio = fuelEffectRatio.
Inputs: generalFuelRatio, list of minor HAP polProcessIDs
Outputs: tempMinorHapRatio

Step: Delete minor HAP emission rates that are given by expressions, deleting all entries from minorHapRatio that have a corresponding tempMinorHapRatio entry.
Inputs: tempMinorHapRatio
Outputs: minorHapRatio

Step: Store minor HAP emission rates given by expressions. minorHapRatio.atRatio = tempMinorHapRatio.atRatio.
Inputs: tempMinorHapRatio
Outputs: minorHapRatio

Step: Remove all min HAP polProcessIDs from generalFuelRatio.
Inputs: list of minor HAP polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of gaseous PAH pollutant/processes known to MOVES.
Inputs: pahGasRatio
Outputs: list of gaseous PAH polProcessIDs

Step: Create a temporary table for gaseous PAH rates.
Inputs: pahGasRatio
Outputs: tempPahGasRatio

Step: Get gaseous PAH emission rates that are given by expressions. dioxin atRatio = fuelEffectRatio.
Inputs: generalFuelRatio, list of gaseous PAH polProcessIDs
Outputs: tempPahGasRatio

Step: Delete gaseous PAH emission rates that are given by expressions, deleting all entries from pahGasRatio that have a corresponding tempPahGasRatio entry.
Inputs: tempPahGasRatio
Outputs: pahGasRatio

Step: Store gaseous PAH emission rates given by expressions. pahGasRatio.atRatio = tempPahGasRatio.atRatio.
Inputs: tempPahGasRatio
Outputs: pahGasRatio

Step: Remove all gaseous PAH polProcessIDs from generalFuelRatio.
Inputs: list of gaseous PAH polProcessIDs
Outputs: generalFuelRatio

Step: Get the set of particulate PAH pollutant/processes known to MOVES.
Inputs: pahParticleRatio
Outputs: list of particulate PAH polProcessIDs

Step: Create a temporary table for particulate PAH rates.
Inputs: pahParticleRatio
Outputs: tempPahParticleRatio

Step: Get particulate PAH emission rates that are given by expressions. dioxin atRatio = fuelEffectRatio.
Inputs: generalFuelRatio, list of particulate PAH polProcessIDs
Outputs: tempPahParticleRatio

Step: Delete particulate PAH emission rates that are given by expressions, deleting all entries from pahParticleRatio that have a corresponding tempPahParticleRatio entry.
Inputs: tempPahParticleRatio
Outputs: pahParticleRatio

Step: Store particulate PAH emission rates given by expressions. pahParticleRatio.atRatio = tempPahParticleRatio.atRatio.
Inputs: tempPahParticleRatio
Outputs: pahParticleRatio

Step: Remove all particulate PAH polProcessIDs from generalFuelRatio.
Inputs: list of particulate PAH polProcessIDs
Outputs: generalFuelRatio

Step: Copy atRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to atRatio. The atRatio table has fewer dimension than generalFuelRatio, so average the fuelEffectRatio. atRatio[fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID]=average(fuelEffectRatio).
Conditions: Any of these polProcessIDs: 2001,2002,2011,2012,2013,2018,2019,2090,2101,2102,2111, 2112,2113,2118,2119,2201,2202,2211,2212,2213,2218,2219,2301,2302,2311,2312,2313,2318,2319,2390,2401,2402,2490, 2501,2502,2590,2601,2602,2690,2701,2702,2790
Inputs: generalFuelRatio
Outputs: atRatio, generalFuelRatio

Step: Lookup all Complex Model expression fragments from the database and combine them into large symbolic statements in memory. Variables within will be populated with actual values and the algebra simplified in later steps. The Complex Model uses a collection of fuel models, each referencing any fuel formulation properties and summing the subexpressions into a single number. Each fuel model is applied to a fuel formulation and to a base fuel formulation, creating intermediate varibles called target_sum and base_sum respectively. Each fuel model calculates a ratio as: ratio = (if(target_sum=0,0,exp(target_sum))/if(base_sum=0,0,exp(base_sum))) - 1. The Complex Model atDifferenceFraction = sum(fuel model ratio * fuel model weight) summed for each fuel model. Base emission rates, atBaseEmissions, are used to calculate the final atRatio which is the ratio of a pollutant's emissions to VOC emissions for a fuel formulation. atRatio = (atBaseEmissions of nonVOC *(1.0+atDifferenceFraction of nonVOC)) / (atBaseEmissions of VOC *(1.0+atDifferenceFraction of VOC)).
Conditions: Air Toxics pollutants
Inputs: complexModelParameterName, fuelModelName, fuelParameterName
Outputs: Complex Model expressions

Step: Restrict the Complex Model in the next steps to these polProcessIDs: 2001,2002,2090,2401,2402,2490,2501,2502,2590,2601,2602,2690,8701,8702,8790

Step: Lookup and apply Complex Model parameter values.
Inputs: complexModelParameters
Outputs: Complex Model expressions

Step: Lookup fuel properties of the base fuel and apply them to the Complex Model expressions.
Inputs: baseFuel, fuelFormulation
Outputs: Complex Model expressions

Step: Lookup mean fuel parameters and apply them to the Complex Model expressions.
Inputs: meanFuelParameters
Outputs: Complex Model expressions

Step: Lookup fuel model weight factors and apply them to the Complex Model expressions.
Inputs: fuelModelWtFactor
Outputs: Complex Model expressions

Step: Mathematically simplify the Complex Model expressions in memory. Perform all possible arithmatic in memory, reducing the size and complexity of the resulting expression text.
Outputs: Complex Model expressions

Step: atDifferenceFraction = Complex Model expressions
Inputs: Complex Model expressions, fuelFormulation
Outputs: tempAirToxicsA

Step: Provide default atDifference entries. atDifference = 0 when null.
Outputs: tempAirToxicsA

Step: relATEmissionsVOC = atBaseEmissions*(1.0+atDifferenceFraction)).
Conditions: VOC
Inputs: atBaseEmissions, tempAirToxicsA
Outputs: tempAirToxicsANonVOC

Step: relATEmissions = atBaseEmissions*(1.0+atDifferenceFraction)).
Conditions: Non-VOC pollutants
Inputs: atBaseEmissions, tempAirToxicsA
Outputs: tempAirToxicsANonVOC

Step: Ratio non-VOC to VOC relative air toxics complex model emissions. atRatio = relATEmissions / relATEmissionsVOC, where relATEmissionsVOC <> 0, 0 otherwise.
Inputs: tempAirToxicsANonVOC, tempAirToxicsAVOC
Outputs: ATRatio

Step: Lookup all Complex Model expression fragments from the database and combine them into large symbolic statements in memory. Variables within will be populated with actual values and the algebra simplified in later steps. The Complex Model uses a collection of fuel models, each referencing any fuel formulation properties and summing the subexpressions into a single number. Each fuel model is applied to a fuel formulation and to a base fuel formulation, creating intermediate varibles called target_sum and base_sum respectively. Each fuel model calculates a ratio as: ratio = (if(target_sum=0,0,exp(target_sum))/if(base_sum=0,0,exp(base_sum))) - 1. The Complex Model atDifferenceFraction = sum(fuel model ratio * fuel model weight) summed for each fuel model. CO ratioNoSulfur = 1 + atDifferenceFraction. CO criteriaRatio.ratio = Sulfur Model of CO ratioNoSulfer.
Conditions: CO pollutant
Inputs: complexModelParameterName, fuelModelName, fuelParameterName
Outputs: Complex Model expressions

Step: Restrict the Complex Model in the next steps to these polProcessIDs: 201,202

Step: Copy criteriaRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to criteriaRatio. ratio=fuelEffectRatio. ratioNoSulfer=1.
Conditions: Any of these polProcessIDs: 201,202
Inputs: generalFuelRatio
Outputs: criteriaRatio, generalFuelRatio

Step: Lookup and apply Complex Model parameter values.
Inputs: complexModelParameters
Outputs: Complex Model expressions

Step: Lookup fuel properties of the base fuel and apply them to the Complex Model expressions.
Inputs: baseFuel, fuelFormulation
Outputs: Complex Model expressions

Step: Lookup mean fuel parameters and apply them to the Complex Model expressions.
Inputs: meanFuelParameters
Outputs: Complex Model expressions

Step: Lookup fuel model weight factors and apply them to the Complex Model expressions.
Inputs: fuelModelWtFactor
Outputs: Complex Model expressions

Step: Mathematically simplify the Complex Model expressions in memory. Perform all possible arithmatic in memory, reducing the size and complexity of the resulting expression text.
Outputs: Complex Model expressions

Step: ratioNoSulfur = 1 + (Complex Model expressions).
Inputs: Complex Model expressions, fuelFormulation
Outputs: tempCOA

Step: Provide default ratioNoSulfur entries. ratioNoSulfur = 1 when null.
Outputs: tempCOA

Step: Run the sulfur model with tempCOA as the input and the criteriaRatio table as the output.
Inputs: tempCOA
Outputs: criteriaRatio

Step: Do Predictive Calculation steps for Total Gaseous Hydrocarbons. Use the "predictHC" calculation engine parameters, polProcessIDs 101 and 102, and ethanol alternate polProcessIDs 1000101 and 1000102.

Step: Do Predictive Calculation steps for NOx. Use the "predictNOx" calculation engine parameters, polProcessIDs 301 and 302, and no ethanol alternate polProcessIDs.

Step: Beginning of Predictive Calculations steps.
Conditions: Predictive Calculations

Step: Copy criteriaRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to criteriaRatio. ratio=fuelEffectRatio. ratioNoSulfer=1.
Conditions: Predictive Calculations, Any of the predictive calculation polProcessIDs
Inputs: generalFuelRatio
Outputs: criteriaRatio, generalFuelRatio

Step: Copy criteriaRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to criteriaRatio. ratio=fuelEffectRatio. ratioNoSulfer=1.
Conditions: Predictive Calculations, Any of the predictive calculation ethanol alternate polProcessIDs, model years >= 2001
Inputs: generalFuelRatio
Outputs: altCriteriaRatio, generalFuelRatio

Step: Lookup all Complex Model expression fragments from the database and combine them into large symbolic statements in memory. Variables within will be populated with actual values and the algebra simplified in later steps. The Complex Model uses a collection of fuel models, each referencing any fuel formulation properties and summing the subexpressions into a single number. Each fuel model is applied to a fuel formulation and to a base fuel formulation, creating intermediate varibles called target_sum and base_sum respectively. Each fuel model calculates a ratio as: ratio = (if(target_sum=0,0,exp(target_sum))/if(base_sum=0,0,exp(base_sum))) - 1. The Complex Model atDifferenceFraction = sum(fuel model ratio * fuel model weight) summed for each fuel model. atDifferenceFraction is not used by the Predictive Calculations. weightedTargetExp = sum(fuel model weight * exp(target_sum)) across all fuel models. weightedBaseExp = sum(fuel model weight * exp(base_sum)) across all fuel models. ratioNoSulfur = weightedTargetExp / weightedBaseExp. CriteriaRatio.ratio = Sulfur model of ratioNoSulfur.
Conditions: Predictive Calculations
Inputs: complexModelParameterName, fuelModelName, fuelParameterName
Outputs: Complex Model expressions

Step: Lookup and apply Complex Model parameter values.
Conditions: Predictive Calculations
Inputs: complexModelParameters
Outputs: Complex Model expressions

Step: Lookup fuel properties of the base fuel and apply them to the Complex Model expressions.
Conditions: Predictive Calculations
Inputs: baseFuel, fuelFormulation
Outputs: Complex Model expressions

Step: Lookup mean fuel parameters and apply them to the Complex Model expressions.
Conditions: Predictive Calculations
Inputs: meanFuelParameters
Outputs: Complex Model expressions

Step: Lookup fuel model weight factors and apply them to the Complex Model expressions.
Conditions: Predictive Calculations
Inputs: fuelModelWtFactor
Outputs: Complex Model expressions

Step: Mathematically simplify the Complex Model expressions in memory. Perform all possible arithmatic in memory, reducing the size and complexity of the resulting expression text.
Conditions: Predictive Calculations
Outputs: Complex Model expressions

Step: ratioNoSulfur = Complex Model expressions
Conditions: Predictive Calculations
Inputs: Complex Model expressions, fuelFormulation
Outputs: temporary table

Step: Provide default ratioNoSulfur entries. ratioNoSulfur = 1 when null.
Conditions: Predictive Calculations
Outputs: temporary table

Step: Run the sulfur model with the temporary table as the input and the criteriaRatio table as the output.
Conditions: Predictive Calculations
Inputs: temporary table
Outputs: criteriaRatio

Step: End of Predictive Calculations steps.
Conditions: Predictive Calculations

Step: Copy MTBE atRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to atRatio. The atRatio table has fewer dimension than generalFuelRatio, so average the fuelEffectRatio. atRatio[fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID]=average(fuelEffectRatio).
Conditions: Any of these polProcessIDs: 2211,2212,2213,2218,2219
Inputs: generalFuelRatio
Outputs: atRatio, generalFuelRatio

Step: Copy Benzene atRatio entries given by expressions, deleting the entries from generalFuelRatio after the copy to atRatio. The atRatio table has fewer dimension than generalFuelRatio, so average the fuelEffectRatio. atRatio[fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID]=average(fuelEffectRatio).
Conditions: Any of these polProcessIDs: 2011,2012,2013,2018,2019
Inputs: generalFuelRatio
Outputs: atRatio, generalFuelRatio

Step: To keep the table size small and knowing that LEFT JOINs will be used, remove any remaining generalFuelRatio entries that have the default ratio of 1.0.
Outputs: generalFuelRatio

Step: For international use, adjust model years for generalFuelRatio (but not generalFuelRatioExpression).
Inputs: modelYearMapping
Outputs: generalFuelRatio

Step: Remove overlaps in ATRatio and ATRatioNonGas, deleting any ATRatioNonGas entries that match ATRatio entries.
Inputs: ATRatio
Outputs: ATRatioNonGas

Top of Page


HC Speciation Calculator

HC Speciation Calculator is a CHAINED CALCULATOR.

The HC Speciation Calculator is responsible for:

  • Running Exhaust (1) Methane (CH4) (5)
  • Running Exhaust (1) Non-Methane Hydrocarbons (79)
  • Running Exhaust (1) Non-Methane Organic Gases (80)
  • Running Exhaust (1) Total Organic Gases (86)
  • Running Exhaust (1) Volatile Organic Compounds (87)
  • Start Exhaust (2) Methane (CH4) (5)
  • Start Exhaust (2) Non-Methane Hydrocarbons (79)
  • Start Exhaust (2) Non-Methane Organic Gases (80)
  • Start Exhaust (2) Total Organic Gases (86)
  • Start Exhaust (2) Volatile Organic Compounds (87)
  • Evap Permeation (11) Non-Methane Hydrocarbons (79)
  • Evap Permeation (11) Non-Methane Organic Gases (80)
  • Evap Permeation (11) Total Organic Gases (86)
  • Evap Permeation (11) Volatile Organic Compounds (87)
  • Evap Fuel Vapor Venting (12) Non-Methane Hydrocarbons (79)
  • Evap Fuel Vapor Venting (12) Non-Methane Organic Gases (80)
  • Evap Fuel Vapor Venting (12) Total Organic Gases (86)
  • Evap Fuel Vapor Venting (12) Volatile Organic Compounds (87)
  • Evap Fuel Leaks (13) Non-Methane Hydrocarbons (79)
  • Evap Fuel Leaks (13) Non-Methane Organic Gases (80)
  • Evap Fuel Leaks (13) Total Organic Gases (86)
  • Evap Fuel Leaks (13) Volatile Organic Compounds (87)
  • Refueling Displacement Vapor Loss (18) Non-Methane Hydrocarbons (79)
  • Refueling Displacement Vapor Loss (18) Non-Methane Organic Gases (80)
  • Refueling Displacement Vapor Loss (18) Total Organic Gases (86)
  • Refueling Displacement Vapor Loss (18) Volatile Organic Compounds (87)
  • Refueling Spillage Loss (19) Non-Methane Hydrocarbons (79)
  • Refueling Spillage Loss (19) Non-Methane Organic Gases (80)
  • Refueling Spillage Loss (19) Total Organic Gases (86)
  • Refueling Spillage Loss (19) Volatile Organic Compounds (87)
  • Extended Idle Exhaust (90) Methane (CH4) (5)
  • Extended Idle Exhaust (90) Non-Methane Hydrocarbons (79)
  • Extended Idle Exhaust (90) Non-Methane Organic Gases (80)
  • Extended Idle Exhaust (90) Total Organic Gases (86)
  • Extended Idle Exhaust (90) Volatile Organic Compounds (87)
  • Auxiliary Power Exhaust (91) Methane (CH4) (5)
  • Auxiliary Power Exhaust (91) Non-Methane Hydrocarbons (79)
  • Auxiliary Power Exhaust (91) Non-Methane Organic Gases (80)
  • Auxiliary Power Exhaust (91) Total Organic Gases (86)
  • Auxiliary Power Exhaust (91) Volatile Organic Compounds (87)


The HC Speciation Calculator input comes from:


The HC Speciation Calculator output is used by:


HC Speciation Calculator uses the following tables:


HC Speciation Calculator is expressed in these source code files:

  • /calc/go/src/hcspeciation/hcspeciation.go
  • /gov/epa/otaq/moves/master/implementation/ghg/HCSpeciationCalculator.java

Steps

The HC Speciation Calculator algorithm is as follows.

Step: Assign etohThreshID to each fuel formulation.

Step: methane (5) = THC * CH4THCRatio
Inputs: methaneTHCRatio, PollutantProcessModelYear

Step: NMHC (79) = THC * (1-CH4THCRatio)
Inputs: methaneTHCRatio, PollutantProcessModelYear

Step: NMOG (80) = NMHC*(speciationConstant + oxySpeciation* volToWtPercentOxy*(MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume)).
Conditions: When (MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume) >= 0. Otherwise, NMOG = 0., NOT (Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001).
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: VOC (87) = NMHC*(speciationConstant + oxySpeciation* volToWtPercentOxy*(MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume)).
Conditions: When (MTBEVolume+ETBEVolume+TAMEVolume+ETOHVolume) >= 0. Otherwise, VOC = 0., NOT (Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001).
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: Calculate altNMHC (10079) from altTHC (10001) using E10's ratios.
Conditions: Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001.
Inputs: methaneTHCRatio, PollutantProcessModelYear

Step: Calculate NMOG from altNMHC (10079) that originates from altTHC (10001). Use E10's factors even though the fuel is Ethanol.
Conditions: Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001.
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: Calculate VOC from altNMHC (10079) that originates from altTHC (10001). Use E10's factors even though the fuel is Ethanol.
Conditions: Running Exhaust, Start Exhaust, Ethanol fuel type, E70 and E85 fuel subtypes, Model years >= 2001.
Inputs: FuelFormulation, HCSpeciation, PollutantProcessModelYear

Step: TOG (86) = NMOG (80) + Methane (5)

Top of Page


Link Operating Mode Distribution Generator

Link Operating Mode Distribution Generator is a GENERATOR that executes at the LINK level.

Link Operating Mode Distribution Generator uses the following tables:


Link Operating Mode Distribution Generator populates the following tables:


Link Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/LinkOperatingModeDistributionGenerator.java

Steps

The Link Operating Mode Distribution Generator algorithm is as follows.

Step: Setup for Model Year Physics effects.

Step: Set rampFraction=0 for all road types as there is no automatic ramp contribution in Project mode.
Conditions: Project domain

Step: Lookup linkAvgSpeed for the current link.
Inputs: link

Step: For links with zero average speed, provide a default drive schedule of 30 seconds of idling. Use 0 grade because with 0 speed, brakes are likely applied rather than using the engine to counteract any grade. This removes the grade's effect on VSP.
Conditions: linkAvgSpeed <= 0
Outputs: driveScheduleSecondLink

Step: Lookup the road type and average grade for the current link.
Conditions: The current link has no drive schedule
Inputs: link

Step: Find the drive schedule with the greatest average speed that is still <= the link's average speed. Use this as the lower bracketing schedule. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracket

Step: Find the drive schedule with the lowest average speed that is still > the link's average speed. Use this as the lower bracketing schedule if one was not previously found. Flag the bracket as out of bounds on the low side. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracket

Step: Find the drive schedule with the lowest average speed that is still >= the link's average speed. Use this as the upper bracketing schedule. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracketHigh

Step: Find the drive schedule with the highest average speed that is still < the link's average speed. Use this as the upper bracketing schedule if one was not previously found. Flag the bracket as out of bounds on the high side. Such a drive schedule may not exist.
Conditions: The current link has no drive schedule
Inputs: driveSchedule, driveScheduleAssoc
Outputs: tempLinkBracketHigh

Step: Note the upper bracket link and its out of bounds flag, if any.
Conditions: The current link has no drive schedule
Inputs: tempLinkBracketHigh
Outputs: tempLinkBracket

Step: Get the set of distinct driveScheduleID and sourceTypeID combinations that require operating mode calculations.
Conditions: The current link has no drive schedule
Inputs: tempLinkBracket
Outputs: list of bracketing drive schedules that need operating mode distributions

Step: Copy each second of each bracketing drive schedule into driveScheduleSecondLink. Use the link's average grade as each entry's grade. Use -driveScheduleID as the linkID field in driveScheduleSecondLink, denoting it as a bracketing link.
Conditions: The current link has no drive schedule
Inputs: driveScheduleSecond
Outputs: driveScheduleSecondLink

Step: Perform the steps to calculate a link's operating mode distribution from its drive schedule. Use -driveScheduleID as the linkID to calculate.
Conditions: The current link has a drive schedule not just an average speed.

Step: Create expanded operating mode tables for Model Year physics effects.
Conditions: The current link has a drive schedule not just an average speed.

Step: interpolationFactor = (link average speed - low bracket schedule average speed) / (high bracket schedule average speed - low bracket schedule average speed).
Conditions: The current link has a drive schedule not just an average speed.

Step: Interpolate the operating mode distribution from the low and high bracket's operating mode distribution. opModeFraction = opModeFraction[low]+(opModeFraction[high]-opModeFraction[low])*interpolationFactor.
Conditions: The current link has a drive schedule not just an average speed.
Outputs: opModeDistribution

Step: Remove bracketing schedules from driveScheduleSecondLink.
Conditions: The current link has a drive schedule not just an average speed.
Inputs: tempLinkBracket
Outputs: driveScheduleSecondLink

Step: Perform the steps to calculate a link's operating mode distribution from its drive schedule.
Conditions: The current link has a drive schedule not just an average speed.

Step: linkAvgSpeed=average(speed). linkAvgGrade=average(grade).
Conditions: Calculate a link's operating mode distribution from its drive schedule., A real linkID is provided (linkID > 0)
Inputs: driveScheduleSecondLink
Outputs: link

Step: Calculate accelerations in units of miles/(hour*second). Speeds are given in miles/hour. VSP is kW/tonne. There are 0.44704 (meter*hours)/(miles*second). at0 = coalesce( (speed[t]-speed[t-1])+(9.81/0.44704*sin(atan(grade[t]/100.0))), (speed[t+1]-speed[t])+(9.81/0.44704*sin(atan(grade[t]/100.0))), 0.0). at1 = coalesce((speed[t-1]-speed[t-2])+(9.81/0.44704*sin(atan(grade[t-1]/100.0))),0.0). at2 = coalesce((speed[t-2]-speed[t-3])+(9.81/0.44704*sin(atan(grade[t-2]/100.0))),0.0). VSP = (((speed[t]*0.44704)*(rollingTermA+(speed[t]*0.44704)*(rotatingTermB+dragTermC*(speed[t]*0.44704))) +sourceMass*(speed[t]*0.44704)*coalesce(speed[t]-speed[t-1],speed[t+1]-speed[t],0.0)*0.44704 +sourceMass*9.81*sin(atan(grade[t]/100.0))*(speed[t]*0.44704)))/fixedMassFactor.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: driveScheduleSecondLink at time t, driveScheduleSecondLink at time t+1 seconds, driveScheduleSecondLink at time t-1 seconds, driveScheduleSecondLink at time t-2 seconds, driveScheduleSecondLink at time t-3 seconds
Outputs: tempDriveScheduleSecondLink

Step: Assign operating modes. Assign a stopped mode 501 when speed = 0, assign mode 501. This mode will be converted to 1 based on polProcessID later. Otherwise, assign the idle mode 1 when speed < 1. Otherwise, assign the braking mode 0 when At0 <= -2 or (At0 < -1 and At1 < -1 and At2 < -1). Otherwise, assign operating modes by their data-drive speed and VSP ranges.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Outputs: tempDriveScheduleSecondLink

Step: secondTotal = Count of the number of entries in the drive schedule. This is the number of seconds of driving, even if there are gaps within the data.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: tempDriveScheduleSecondLink
Outputs: tempDriveScheduleSecondLinkTotal

Step: secondCount = Count of the number of entries in the drive schedule for each operating mode.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: tempDriveScheduleSecondLink
Outputs: tempDriveScheduleSecondLinkCount

Step: opModeFraction = secondCount/secondTotal.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: tempDriveScheduleSecondLinkCount, tempDriveScheduleSecondLinkTotal
Outputs: tempDriveScheduleSecondLinkFraction

Step: Copy the operating mode distribution to all polProcessIDs that share it. For polProcessID 11609, retain opMode 501 and convert opMode 501 to opMode 1 for all other polProcessIDs.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Inputs: opModePolProcAssoc, tempDriveScheduleSecondLinkFraction
Outputs: opModeDistributionTemp

Step: opModeFraction=sum(temporary opModeFraction). other polProcessIDs.
Conditions: Calculate a link's operating mode distribution from its drive schedule.
Outputs: opModeDistribution, opModeDistributionTemp

Step: Remove data for bracketing links first, just in case they were left from a prior link's settings.
Conditions: Calculate a link's operating mode distribution from its drive schedule., A bracketing link is provided (linkID < 0)
Outputs: opModeDistribution

Step: Delete the previous road type's data from ratesOpModeDistribution.
Conditions: A previous road type has been used in the run.
Outputs: ratesOpModeDistribution

Step: Delete the current road type's data from ratesOpModeDistribution.
Outputs: ratesOpModeDistribution

Step: Lookup the current link's linkAvgSpeed.
Inputs: linkAvgSpeed

Step: Copy the current link's opModeDistribution entries to ratesOpModeDistribution, providing the current link's road type and average speed. Do not copy any generic polProcessID entries (polProcessID <= 0) as these are just to speedup internal opModeDistribution calculations.
Inputs: opModeDistribution
Outputs: ratesOpModeDistribution

Step: Update emission rate tables for Model Year Physics effects.

Top of Page


Liquid Leaking Calculator

Liquid Leaking Calculator is a CALCULATOR that executes at the MONTH level.

The Liquid Leaking Calculator is responsible for:

  • Evap Fuel Leaks (13) Total Gaseous Hydrocarbons (1)


The Liquid Leaking Calculator output is used by:


Liquid Leaking Calculator uses the following tables:


Liquid Leaking Calculator is expressed in these source code files:

  • /database/LiquidLeakingCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/LiquidLeakingCalculator.java

Steps

The Liquid Leaking Calculator algorithm is as follows.

Step: Filter emissionRateByAge to only operating modes 150, 151, and 300.
Inputs: runspecsourcefueltype, sourcebin, sourcebindistribution, sourcetypemodelyear
Outputs: emissionratebyage

Step: Filter OpModeDistribution to only operating modes 150, 151, and 300.
Inputs: runspecsourcetype
Outputs: opmodedistribution

Step: Disaggregate IMCoverage records, expanding model year ranges into individual model years. IMAdjustFract[processID,pollutantID,modelYearID,fuelTypeID,sourceTypeID]=IMFactor*complianceFactor*0.01.
Inputs: agecategory, imcoverage, imfactor, pollutantprocessassoc, pollutantprocessmappedmodelyear
Outputs: imcoveragemergedungrouped

Step: weightedMeanBaseRate = sourceBinActivityFraction * meanBaseRate. weightedMeanBaseRateIM = sourceBinActivityFraction * meanBaseRateIM.
Inputs: agecategory, emissionratebyage, fueltype, pollutantprocessmodelyear, runspechourday, runspecmonth, runspecsourcetype, sourcebin, sourcebindistribution, sourcetypemodelyear
Outputs: weightedmeanbaserate

Step: emissionQuant = weightedMeanBaseRate * sourceHours * opModeFraction. emissionQuantIM = weightedMeanBaseRateIM * sourceHours * opModeFraction.
Inputs: hourday, link, opmodedistribution, pollutantprocessassoc, sourcehours, weightedmeanbaserate
Outputs: movesworkeroutput

Step: Apply I/M programs. emissionQuant=emissionQuantIM*IMAdjustFract + emissionQuant*(1-IMAdjustFract).
Outputs: imcoveragemergedungrouped, movesworkeroutput

Top of Page


Meteorology Generator

Meteorology Generator is a GENERATOR that executes at the PROCESS level.

Meteorology Generator uses the following tables:


Meteorology Generator populates the following tables:


Meteorology Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/general/MeteorologyGenerator.java

Steps

The Meteorology Generator algorithm is as follows.

Step: Provide default barometric pressures for counties that don't list them. Counties with 'H' (High) altitude are assigned 24.69 inHg. Others are assigned 28.94.
Conditions: Counties with barometricPressure of null or <= 0.
Outputs: County

Step: Provide default altitude setting for counties that do not provide an altitude. Counties with barometricPressure >= 25.8403 inHg are 'L' (Low) altitude, all others are 'H' (High).
Conditions: Counties where altitude is null or altitude is neither H nor L.
Outputs: County

Step: heatIndex = temperature.
Conditions: temperature < 78F.
Outputs: ZoneMonthHour

Step: heatIndex = least( -42.379 + 2.04901523*temperature + 10.14333127*relHumidity + - 0.22475541*temperature*relHumidity + -0.00683783*temperature*temperature + -0.05481717 * relHumidity * relHumidity + 0.00122874*temperature*temperature*relHumidity + 0.00085282*temperature*relHumidity*relHumidity + -0.00000199*temperature*temperature*relHumidity*relHumidity, 120).
Conditions: temperature >= 78F.
Outputs: ZoneMonthHour

Step: TK = 0.56*(temperature-32)+273 AS TK. T0 = 374.27-0.56*(temperature-32).
Inputs: ZoneMonthHour
Outputs: TKT0

Step: PB = barometricPressure. PV = (relHumidity/100)*6527.557*POW(10,(-T0/TK)*((3.2437+0.00588*T0+0.000000011702*POW(T0,3))/(1+0.00219*T0))).
Inputs: County, TKT0, Zone
Outputs: PV

Step: specificHumidity=4347.8*PV/(PB-PV).
Inputs: PV
Outputs: ZoneMonthHour

Top of Page


NO Calculator

NO Calculator is a CHAINED CALCULATOR.

The NO Calculator is responsible for:

  • Running Exhaust (1) Nitrogen Oxide (NO) (32)
  • Start Exhaust (2) Nitrogen Oxide (NO) (32)
  • Extended Idle Exhaust (90) Nitrogen Oxide (NO) (32)
  • Auxiliary Power Exhaust (91) Nitrogen Oxide (NO) (32)
  • Running Exhaust (1) Nitrous Acid (HONO) (34)
  • Start Exhaust (2) Nitrous Acid (HONO) (34)
  • Extended Idle Exhaust (90) Nitrous Acid (HONO) (34)
  • Auxiliary Power Exhaust (91) Nitrous Acid (HONO) (34)


The NO Calculator input comes from:


The NO Calculator output is used by:


NO Calculator uses the following tables:


NO Calculator is expressed in these source code files:

  • /database/NOCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NOCalculator.java

Steps

The NO Calculator algorithm is as follows.

Step: To simplify future table joins, add dimensions to NOxRatio.
Inputs: nocopyofnono2ratio, nocopyofppa, nocopyofppmy, nocopyofsourceusetype
Outputs: nocalculation1

Step: emissionQuant = NOxRatio * Oxides of Nitrogen (3).
Inputs: movesworkeroutput, nocalculation1
Outputs: nomovesoutputtemp1

Top of Page


NO2 Calculator

NO2 Calculator is a CHAINED CALCULATOR.

The NO2 Calculator is responsible for:

  • Running Exhaust (1) Nitrogen Dioxide (NO2) (33)
  • Start Exhaust (2) Nitrogen Dioxide (NO2) (33)
  • Extended Idle Exhaust (90) Nitrogen Dioxide (NO2) (33)
  • Auxiliary Power Exhaust (91) Nitrogen Dioxide (NO2) (33)


The NO2 Calculator input comes from:


The NO2 Calculator output is used by:


NO2 Calculator uses the following tables:


NO2 Calculator is expressed in these source code files:

  • /database/NO2Calculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NO2Calculator.java

Steps

The NO2 Calculator algorithm is as follows.

Step: To simplify future table joins, add dimensions to NOxRatio.
Inputs: no2copyofnono2ratio, no2copyofppa, no2copyofppmy, no2copyofsourceusetype
Outputs: no2calculation1

Step: emissionQuant = NOxRatio * Oxides of Nitrogen (3).
Inputs: movesworkeroutput, no2calculation1
Outputs: no2movesoutputtemp1

Top of Page


Nonroad Air toxics Calculator

Nonroad Air toxics Calculator is a CHAINED CALCULATOR.

The Nonroad Air toxics Calculator is responsible for:

  • Running Exhaust (1) Benzene (20)
  • Crankcase Running Exhaust (15) Benzene (20)
  • Refueling Displacement Vapor Loss (18) Benzene (20)
  • Refueling Spillage Loss (19) Benzene (20)
  • Evap Tank Permeation (20) Benzene (20)
  • Evap Hose Permeation (21) Benzene (20)
  • Evap RecMar Neck Hose Permeation (22) Benzene (20)
  • Evap RecMar Supply/Ret Hose Permeation (23) Benzene (20)
  • Evap RecMar Vent Hose Permeation (24) Benzene (20)
  • Diurnal Fuel Vapor Venting (30) Benzene (20)
  • HotSoak Fuel Vapor Venting (31) Benzene (20)
  • RunningLoss Fuel Vapor Venting (32) Benzene (20)
  • Running Exhaust (1) Ethanol (21)
  • Crankcase Running Exhaust (15) Ethanol (21)
  • Refueling Displacement Vapor Loss (18) Ethanol (21)
  • Refueling Spillage Loss (19) Ethanol (21)
  • Evap Tank Permeation (20) Ethanol (21)
  • Evap Hose Permeation (21) Ethanol (21)
  • Evap RecMar Neck Hose Permeation (22) Ethanol (21)
  • Evap RecMar Supply/Ret Hose Permeation (23) Ethanol (21)
  • Evap RecMar Vent Hose Permeation (24) Ethanol (21)
  • Diurnal Fuel Vapor Venting (30) Ethanol (21)
  • HotSoak Fuel Vapor Venting (31) Ethanol (21)
  • RunningLoss Fuel Vapor Venting (32) Ethanol (21)
  • Running Exhaust (1) MTBE (22)
  • Crankcase Running Exhaust (15) MTBE (22)
  • Refueling Displacement Vapor Loss (18) MTBE (22)
  • Refueling Spillage Loss (19) MTBE (22)
  • Evap Tank Permeation (20) MTBE (22)
  • Evap Hose Permeation (21) MTBE (22)
  • Evap RecMar Neck Hose Permeation (22) MTBE (22)
  • Evap RecMar Supply/Ret Hose Permeation (23) MTBE (22)
  • Evap RecMar Vent Hose Permeation (24) MTBE (22)
  • Diurnal Fuel Vapor Venting (30) MTBE (22)
  • HotSoak Fuel Vapor Venting (31) MTBE (22)
  • RunningLoss Fuel Vapor Venting (32) MTBE (22)
  • Running Exhaust (1) Naphthalene particle (23)
  • Crankcase Running Exhaust (15) Naphthalene particle (23)
  • Running Exhaust (1) 1,3-Butadiene (24)
  • Crankcase Running Exhaust (15) 1,3-Butadiene (24)
  • Running Exhaust (1) Formaldehyde (25)
  • Crankcase Running Exhaust (15) Formaldehyde (25)
  • Running Exhaust (1) Acetaldehyde (26)
  • Crankcase Running Exhaust (15) Acetaldehyde (26)
  • Running Exhaust (1) Acrolein (27)
  • Crankcase Running Exhaust (15) Acrolein (27)
  • Running Exhaust (1) 2,2,4-Trimethylpentane (40)
  • Crankcase Running Exhaust (15) 2,2,4-Trimethylpentane (40)
  • Refueling Displacement Vapor Loss (18) 2,2,4-Trimethylpentane (40)
  • Refueling Spillage Loss (19) 2,2,4-Trimethylpentane (40)
  • Evap Tank Permeation (20) 2,2,4-Trimethylpentane (40)
  • Evap Hose Permeation (21) 2,2,4-Trimethylpentane (40)
  • Evap RecMar Neck Hose Permeation (22) 2,2,4-Trimethylpentane (40)
  • Evap RecMar Supply/Ret Hose Permeation (23) 2,2,4-Trimethylpentane (40)
  • Evap RecMar Vent Hose Permeation (24) 2,2,4-Trimethylpentane (40)
  • Diurnal Fuel Vapor Venting (30) 2,2,4-Trimethylpentane (40)
  • HotSoak Fuel Vapor Venting (31) 2,2,4-Trimethylpentane (40)
  • RunningLoss Fuel Vapor Venting (32) 2,2,4-Trimethylpentane (40)
  • Running Exhaust (1) Ethyl Benzene (41)
  • Crankcase Running Exhaust (15) Ethyl Benzene (41)
  • Refueling Displacement Vapor Loss (18) Ethyl Benzene (41)
  • Refueling Spillage Loss (19) Ethyl Benzene (41)
  • Evap Tank Permeation (20) Ethyl Benzene (41)
  • Evap Hose Permeation (21) Ethyl Benzene (41)
  • Evap RecMar Neck Hose Permeation (22) Ethyl Benzene (41)
  • Evap RecMar Supply/Ret Hose Permeation (23) Ethyl Benzene (41)
  • Evap RecMar Vent Hose Permeation (24) Ethyl Benzene (41)
  • Diurnal Fuel Vapor Venting (30) Ethyl Benzene (41)
  • HotSoak Fuel Vapor Venting (31) Ethyl Benzene (41)
  • RunningLoss Fuel Vapor Venting (32) Ethyl Benzene (41)
  • Running Exhaust (1) Hexane (42)
  • Crankcase Running Exhaust (15) Hexane (42)
  • Refueling Displacement Vapor Loss (18) Hexane (42)
  • Refueling Spillage Loss (19) Hexane (42)
  • Evap Tank Permeation (20) Hexane (42)
  • Evap Hose Permeation (21) Hexane (42)
  • Evap RecMar Neck Hose Permeation (22) Hexane (42)
  • Evap RecMar Supply/Ret Hose Permeation (23) Hexane (42)
  • Evap RecMar Vent Hose Permeation (24) Hexane (42)
  • Diurnal Fuel Vapor Venting (30) Hexane (42)
  • HotSoak Fuel Vapor Venting (31) Hexane (42)
  • RunningLoss Fuel Vapor Venting (32) Hexane (42)
  • Running Exhaust (1) Propionaldehyde (43)
  • Crankcase Running Exhaust (15) Propionaldehyde (43)
  • Running Exhaust (1) Styrene (44)
  • Crankcase Running Exhaust (15) Styrene (44)
  • Running Exhaust (1) Toluene (45)
  • Crankcase Running Exhaust (15) Toluene (45)
  • Refueling Displacement Vapor Loss (18) Toluene (45)
  • Refueling Spillage Loss (19) Toluene (45)
  • Evap Tank Permeation (20) Toluene (45)
  • Evap Hose Permeation (21) Toluene (45)
  • Evap RecMar Neck Hose Permeation (22) Toluene (45)
  • Evap RecMar Supply/Ret Hose Permeation (23) Toluene (45)
  • Evap RecMar Vent Hose Permeation (24) Toluene (45)
  • Diurnal Fuel Vapor Venting (30) Toluene (45)
  • HotSoak Fuel Vapor Venting (31) Toluene (45)
  • RunningLoss Fuel Vapor Venting (32) Toluene (45)
  • Running Exhaust (1) Xylene (46)
  • Crankcase Running Exhaust (15) Xylene (46)
  • Refueling Displacement Vapor Loss (18) Xylene (46)
  • Refueling Spillage Loss (19) Xylene (46)
  • Evap Tank Permeation (20) Xylene (46)
  • Evap Hose Permeation (21) Xylene (46)
  • Evap RecMar Neck Hose Permeation (22) Xylene (46)
  • Evap RecMar Supply/Ret Hose Permeation (23) Xylene (46)
  • Evap RecMar Vent Hose Permeation (24) Xylene (46)
  • Diurnal Fuel Vapor Venting (30) Xylene (46)
  • HotSoak Fuel Vapor Venting (31) Xylene (46)
  • RunningLoss Fuel Vapor Venting (32) Xylene (46)
  • Running Exhaust (1) Mercury Elemental Gaseous (60)
  • Running Exhaust (1) Mercury Divalent Gaseous (61)
  • Running Exhaust (1) Mercury Particulate (62)
  • Running Exhaust (1) Arsenic Compounds (63)
  • Running Exhaust (1) Chromium 6+ (65)
  • Running Exhaust (1) Manganese Compounds (66)
  • Running Exhaust (1) Nickel Compounds (67)
  • Running Exhaust (1) Dibenzo(a,h)anthracene particle (68)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene particle (68)
  • Running Exhaust (1) Fluoranthene particle (69)
  • Crankcase Running Exhaust (15) Fluoranthene particle (69)
  • Running Exhaust (1) Acenaphthene particle (70)
  • Crankcase Running Exhaust (15) Acenaphthene particle (70)
  • Running Exhaust (1) Acenaphthylene particle (71)
  • Crankcase Running Exhaust (15) Acenaphthylene particle (71)
  • Running Exhaust (1) Anthracene particle (72)
  • Crankcase Running Exhaust (15) Anthracene particle (72)
  • Running Exhaust (1) Benz(a)anthracene particle (73)
  • Crankcase Running Exhaust (15) Benz(a)anthracene particle (73)
  • Running Exhaust (1) Benzo(a)pyrene particle (74)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene particle (74)
  • Running Exhaust (1) Benzo(b)fluoranthene particle (75)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene particle (75)
  • Running Exhaust (1) Benzo(g,h,i)perylene particle (76)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene particle (76)
  • Running Exhaust (1) Benzo(k)fluoranthene particle (77)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene particle (77)
  • Running Exhaust (1) Chrysene particle (78)
  • Crankcase Running Exhaust (15) Chrysene particle (78)
  • Running Exhaust (1) Fluorene particle (81)
  • Crankcase Running Exhaust (15) Fluorene particle (81)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene particle (82)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene particle (82)
  • Running Exhaust (1) Phenanthrene particle (83)
  • Crankcase Running Exhaust (15) Phenanthrene particle (83)
  • Running Exhaust (1) Pyrene particle (84)
  • Crankcase Running Exhaust (15) Pyrene particle (84)
  • Running Exhaust (1) NonHAPTOG (88)
  • Crankcase Running Exhaust (15) NonHAPTOG (88)
  • Refueling Displacement Vapor Loss (18) NonHAPTOG (88)
  • Refueling Spillage Loss (19) NonHAPTOG (88)
  • Evap Tank Permeation (20) NonHAPTOG (88)
  • Evap Hose Permeation (21) NonHAPTOG (88)
  • Diurnal Fuel Vapor Venting (30) NonHAPTOG (88)
  • HotSoak Fuel Vapor Venting (31) NonHAPTOG (88)
  • RunningLoss Fuel Vapor Venting (32) NonHAPTOG (88)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzo-p-Dioxin (130)
  • Running Exhaust (1) Octachlorodibenzo-p-dioxin (131)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzo-p-Dioxin (132)
  • Running Exhaust (1) Octachlorodibenzofuran (133)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzo-p-Dioxin (134)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzo-p-Dioxin (135)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzofuran (136)
  • Running Exhaust (1) 1,2,3,4,7,8,9-Heptachlorodibenzofuran (137)
  • Running Exhaust (1) 2,3,4,7,8-Pentachlorodibenzofuran (138)
  • Running Exhaust (1) 1,2,3,7,8-Pentachlorodibenzofuran (139)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzofuran (140)
  • Running Exhaust (1) 1,2,3,6,7,8-Hexachlorodibenzo-p-Dioxin (141)
  • Running Exhaust (1) 2,3,7,8-Tetrachlorodibenzo-p-Dioxin (142)
  • Running Exhaust (1) 2,3,4,6,7,8-Hexachlorodibenzofuran (143)
  • Running Exhaust (1) 1,2,3,4,6,7,8-Heptachlorodibenzofuran (144)
  • Running Exhaust (1) 1,2,3,4,7,8-Hexachlorodibenzofuran (145)
  • Running Exhaust (1) 1,2,3,7,8,9-Hexachlorodibenzofuran (146)
  • Running Exhaust (1) Dibenzo(a,h)anthracene gas (168)
  • Crankcase Running Exhaust (15) Dibenzo(a,h)anthracene gas (168)
  • Running Exhaust (1) Fluoranthene gas (169)
  • Crankcase Running Exhaust (15) Fluoranthene gas (169)
  • Running Exhaust (1) Acenaphthene gas (170)
  • Crankcase Running Exhaust (15) Acenaphthene gas (170)
  • Running Exhaust (1) Acenaphthylene gas (171)
  • Crankcase Running Exhaust (15) Acenaphthylene gas (171)
  • Running Exhaust (1) Anthracene gas (172)
  • Crankcase Running Exhaust (15) Anthracene gas (172)
  • Running Exhaust (1) Benz(a)anthracene gas (173)
  • Crankcase Running Exhaust (15) Benz(a)anthracene gas (173)
  • Running Exhaust (1) Benzo(a)pyrene gas (174)
  • Crankcase Running Exhaust (15) Benzo(a)pyrene gas (174)
  • Running Exhaust (1) Benzo(b)fluoranthene gas (175)
  • Crankcase Running Exhaust (15) Benzo(b)fluoranthene gas (175)
  • Running Exhaust (1) Benzo(g,h,i)perylene gas (176)
  • Crankcase Running Exhaust (15) Benzo(g,h,i)perylene gas (176)
  • Running Exhaust (1) Benzo(k)fluoranthene gas (177)
  • Crankcase Running Exhaust (15) Benzo(k)fluoranthene gas (177)
  • Running Exhaust (1) Chrysene gas (178)
  • Crankcase Running Exhaust (15) Chrysene gas (178)
  • Running Exhaust (1) Fluorene gas (181)
  • Crankcase Running Exhaust (15) Fluorene gas (181)
  • Running Exhaust (1) Indeno(1,2,3,c,d)pyrene gas (182)
  • Crankcase Running Exhaust (15) Indeno(1,2,3,c,d)pyrene gas (182)
  • Running Exhaust (1) Phenanthrene gas (183)
  • Crankcase Running Exhaust (15) Phenanthrene gas (183)
  • Running Exhaust (1) Pyrene gas (184)
  • Crankcase Running Exhaust (15) Pyrene gas (184)
  • Running Exhaust (1) Naphthalene gas (185)
  • Crankcase Running Exhaust (15) Naphthalene gas (185)


The Nonroad Air toxics Calculator input comes from:


Nonroad Air toxics Calculator uses the following tables:


Nonroad Air toxics Calculator is expressed in these source code files:

  • /calc/go/src/nrairtoxics/nrairtoxics.go
  • /database/NRAirToxicsCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NRAirToxicsCalculator.java

Steps

The Nonroad Air toxics Calculator algorithm is as follows.

Step: output[pollutantID] = VOC (87) * ATRatio
Inputs: nrATRatio, nrHPCategory

Step: output[pollutantID] = VOC (87) * ATRatio
Inputs: nrHPCategory, nrPAHGasRatio

Step: output[pollutantID] = PM2.5 (110) * ATRatio
Inputs: nrHPCategory, nrPAHParticleRatio

Step: gallons[gasoline] = grams gasoline fuel / (453.592*6.17)

Step: gallons[diesel(all)] = grams diesel fuel / (453.592*7.1)

Step: gallons[CNG] = grams gasoline / (453.592*0.0061)

Step: gallons[LPG] = grams gasoline / (453.592*4.507)

Step: dioxin output[pollutantID] = gallons[fuel type] * meanBaseRate
Inputs: nrDioxinEmissionRate, nrHPCategory

Step: metal output[pollutantID] = gallons[fuel type] * meanBaseRate
Inputs: nrHPCategory, nrMetalEmissionRate

Step: NonHAPTOG(88)(partial) = NMOG (80)

Step: NonHAPTOG(88)(partial) = -emissions[integratedSpeciesPollutantID]
Inputs: nrIntegratedSpecies

Top of Page


Nonroad Calculator

Nonroad Calculator is a CALCULATOR that executes at the DAY level.

The Nonroad Calculator is responsible for:

  • HotSoak Fuel Vapor Venting (31) Total Gaseous Hydrocarbons (1)
  • Diurnal Fuel Vapor Venting (30) Total Gaseous Hydrocarbons (1)
  • Refueling Displacement Vapor Loss (18) Total Gaseous Hydrocarbons (1)
  • Refueling Spillage Loss (19) Total Gaseous Hydrocarbons (1)
  • RunningLoss Fuel Vapor Venting (32) Total Gaseous Hydrocarbons (1)
  • Evap Tank Permeation (20) Total Gaseous Hydrocarbons (1)
  • Evap Hose Permeation (21) Total Gaseous Hydrocarbons (1)
  • Running Exhaust (1) Atmospheric CO2 (90)
  • Running Exhaust (1) Total Energy Consumption (91)
  • Running Exhaust (1) Brake Specific Fuel Consumption (BSFC) (99)
  • Running Exhaust (1) Total Gaseous Hydrocarbons (1)
  • Running Exhaust (1) Carbon Monoxide (CO) (2)
  • Running Exhaust (1) Oxides of Nitrogen (NOx) (3)
  • Running Exhaust (1) Ammonia (NH3) (30)
  • Running Exhaust (1) Sulfur Dioxide (SO2) (31)
  • Running Exhaust (1) Primary Exhaust PM10 - Total (100)
  • Running Exhaust (1) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Running Exhaust (15) Total Gaseous Hydrocarbons (1)


The Nonroad Calculator output is used by:


Nonroad Calculator is expressed in these source code files:

  • /database/NonroadCalculator.sql
  • /gov/epa/otaq/moves/master/nonroad/NonroadEmissionCalculator.java

Top of Page


Nonroad HC Speciation Calculator

Nonroad HC Speciation Calculator is a CHAINED CALCULATOR.

The Nonroad HC Speciation Calculator is responsible for:

  • Running Exhaust (1) Methane (CH4) (5)
  • Crankcase Running Exhaust (15) Methane (CH4) (5)
  • Refueling Displacement Vapor Loss (18) Methane (CH4) (5)
  • Refueling Spillage Loss (19) Methane (CH4) (5)
  • Evap Tank Permeation (20) Methane (CH4) (5)
  • Evap Hose Permeation (21) Methane (CH4) (5)
  • Diurnal Fuel Vapor Venting (30) Methane (CH4) (5)
  • HotSoak Fuel Vapor Venting (31) Methane (CH4) (5)
  • RunningLoss Fuel Vapor Venting (32) Methane (CH4) (5)
  • Running Exhaust (1) Non-Methane Hydrocarbons (79)
  • Crankcase Running Exhaust (15) Non-Methane Hydrocarbons (79)
  • Refueling Displacement Vapor Loss (18) Non-Methane Hydrocarbons (79)
  • Refueling Spillage Loss (19) Non-Methane Hydrocarbons (79)
  • Evap Tank Permeation (20) Non-Methane Hydrocarbons (79)
  • Evap Hose Permeation (21) Non-Methane Hydrocarbons (79)
  • Diurnal Fuel Vapor Venting (30) Non-Methane Hydrocarbons (79)
  • HotSoak Fuel Vapor Venting (31) Non-Methane Hydrocarbons (79)
  • RunningLoss Fuel Vapor Venting (32) Non-Methane Hydrocarbons (79)
  • Running Exhaust (1) Non-Methane Organic Gases (80)
  • Crankcase Running Exhaust (15) Non-Methane Organic Gases (80)
  • Refueling Displacement Vapor Loss (18) Non-Methane Organic Gases (80)
  • Refueling Spillage Loss (19) Non-Methane Organic Gases (80)
  • Evap Tank Permeation (20) Non-Methane Organic Gases (80)
  • Evap Hose Permeation (21) Non-Methane Organic Gases (80)
  • Diurnal Fuel Vapor Venting (30) Non-Methane Organic Gases (80)
  • HotSoak Fuel Vapor Venting (31) Non-Methane Organic Gases (80)
  • RunningLoss Fuel Vapor Venting (32) Non-Methane Organic Gases (80)
  • Running Exhaust (1) Total Organic Gases (86)
  • Crankcase Running Exhaust (15) Total Organic Gases (86)
  • Refueling Displacement Vapor Loss (18) Total Organic Gases (86)
  • Refueling Spillage Loss (19) Total Organic Gases (86)
  • Evap Tank Permeation (20) Total Organic Gases (86)
  • Evap Hose Permeation (21) Total Organic Gases (86)
  • Diurnal Fuel Vapor Venting (30) Total Organic Gases (86)
  • HotSoak Fuel Vapor Venting (31) Total Organic Gases (86)
  • RunningLoss Fuel Vapor Venting (32) Total Organic Gases (86)
  • Running Exhaust (1) Volatile Organic Compounds (87)
  • Crankcase Running Exhaust (15) Volatile Organic Compounds (87)
  • Refueling Displacement Vapor Loss (18) Volatile Organic Compounds (87)
  • Refueling Spillage Loss (19) Volatile Organic Compounds (87)
  • Evap Tank Permeation (20) Volatile Organic Compounds (87)
  • Evap Hose Permeation (21) Volatile Organic Compounds (87)
  • Diurnal Fuel Vapor Venting (30) Volatile Organic Compounds (87)
  • HotSoak Fuel Vapor Venting (31) Volatile Organic Compounds (87)
  • RunningLoss Fuel Vapor Venting (32) Volatile Organic Compounds (87)


The Nonroad HC Speciation Calculator input comes from:


The Nonroad HC Speciation Calculator output is used by:


Nonroad HC Speciation Calculator uses the following tables:


Nonroad HC Speciation Calculator is expressed in these source code files:

  • /calc/go/src/nrhcspeciation/nrhcspeciation.go
  • /database/NRHCSpeciationCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/NRHCSpeciationCalculator.java

Steps

The Nonroad HC Speciation Calculator algorithm is as follows.

Step: methane (5) = THC * CH4THCRatio
Inputs: nrMethaneTHCRatio

Step: NMHC (79) = THC * (1-CH4THCRatio)
Inputs: nrMethaneTHCRatio

Step: NMOG (80) = NMHC*speciationConstant.
Inputs: nrHCSpeciation, nrHPCategory

Step: VOC (87) = NMHC*speciationConstant.
Inputs: nrHCSpeciation, nrHPCategory

Step: TOG (86) = NMOG (80) + Methane (5)

Top of Page


PM10 Brake Tire Calculator

PM10 Brake Tire Calculator is a CHAINED CALCULATOR.

The PM10 Brake Tire Calculator is responsible for:

  • Brakewear (9) Primary PM10 - Brakewear Particulate (106)
  • Tirewear (10) Primary PM10 - Tirewear Particulate (107)


The PM10 Brake Tire Calculator input comes from:


PM10 Brake Tire Calculator uses the following tables:


PM10 Brake Tire Calculator is expressed in these source code files:

  • /database/PM10BrakeTireCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/PM10BrakeTireCalculator.java

Steps

The PM10 Brake Tire Calculator algorithm is as follows.

Step: PM10 Brakewear (106) = PM2.5 Brakewear (116) * PM10PM25Ratio. PM10 Tirewear (107) = PM2.5 Tirewear (117) * PM10PM25Ratio.
Inputs: movesworkeroutput, pm10emissionratio, pm10pollutantprocessassoc
Outputs: pm10braketiremovesworkeroutputtemp

Top of Page


PM10 Emission Calculator

PM10 Emission Calculator is a CHAINED CALCULATOR.

The PM10 Emission Calculator is responsible for:

  • Running Exhaust (1) Primary Exhaust PM10 - Total (100)
  • Start Exhaust (2) Primary Exhaust PM10 - Total (100)
  • Extended Idle Exhaust (90) Primary Exhaust PM10 - Total (100)
  • Auxiliary Power Exhaust (91) Primary Exhaust PM10 - Total (100)
  • Crankcase Running Exhaust (15) Primary Exhaust PM10 - Total (100)
  • Crankcase Start Exhaust (16) Primary Exhaust PM10 - Total (100)
  • Crankcase Extended Idle Exhaust (17) Primary Exhaust PM10 - Total (100)


The PM10 Emission Calculator input comes from:


PM10 Emission Calculator uses the following tables:


PM10 Emission Calculator is expressed in these source code files:

  • /database/PM10EmissionCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/PM10EmissionCalculator.java

Steps

The PM10 Emission Calculator algorithm is as follows.

Step: PM10 Total = PM2.5 Total * PM10PM25Ratio.
Inputs: movesworkeroutput, pm10emissionratio, pm10pollutantprocessassoc
Outputs: pm10movesworkeroutputtemp

Top of Page


Rates Operating Mode Distribution Generator

Rates Operating Mode Distribution Generator is a GENERATOR that executes at the YEAR level.

Rates Operating Mode Distribution Generator uses the following tables:


Rates Operating Mode Distribution Generator populates the following tables:


Rates Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/RatesOperatingModeDistributionGenerator.java

Steps

The Rates Operating Mode Distribution Generator algorithm is as follows.

Step: Setup for Model Year Physics effects.

Step: Remove DriveScheduleAssoc records with isRamp='Y' but associated with RoadTypes with rampFraction <= 0 since these are nonsensical conditions.
Conditions: Non-Project domain
Inputs: roadType
Outputs: driveScheduleAssoc

Step: Speed bins with values below and above the lowest and highest drive schedule values are bound to those values. scheduleBoundLo = min(averageSpeed). scheduleBoundHi = max(averageSpeed).
Inputs: DriveSchedule, DriveScheduleAssoc, RunSpecRoadType, RunSpecSourceType
Outputs: DriveScheduleBounds

Step: loScheduleSpeed = max(averageSpeed). isOutOfBounds = 0.
Conditions: Non-ramps, Drive schedules with averageSpeed <= avgBinSpeed
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleLo2

Step: loScheduleSpeed = scheduleBoundLo. isOutOfBounds = 1.
Conditions: Non-ramps, avgBinSpeed < scheduleBoundLo.
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, DriveScheduleBounds, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleLo2

Step: Find the drive cycle with an averageSpeed = loScheduleSpeed.
Inputs: BracketScheduleLo2, DriveSchedule, DriveScheduleAssoc
Outputs: BracketScheduleLo

Step: hiScheduleSpeed = min(averageSpeed). isOutOfBounds = 0.
Conditions: Non-ramps, Drive schedules with averageSpeed > avgBinSpeed
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleHi2

Step: hiScheduleSpeed = scheduleBoundHi. isOutOfBounds = 1.
Conditions: Non-ramps, avgBinSpeed > scheduleBoundHi.
Inputs: AvgSpeedBin, DriveSchedule, DriveScheduleAssoc, DriveScheduleBounds, RunSpecRoadType, RunSpecSourceType
Outputs: BracketScheduleHi2

Step: Find the drive cycle with an averageSpeed = hiScheduleSpeed.
Inputs: BracketScheduleHi2, DriveSchedule, DriveScheduleAssoc
Outputs: BracketScheduleHi

Step: loScheduleFraction=(hiScheduleSpeed - avgBinSpeed) / (hiScheduleSpeed - loScheduleSpeed).
Conditions: hiScheduleSpeed <> loScheduleSpeed
Inputs: AvgSpeedBin, BracketScheduleHi, BracketScheduleLo
Outputs: LoScheduleFraction

Step: loScheduleFraction=1.
Conditions: hiScheduleSpeed = loScheduleSpeed
Inputs: BracketScheduleHi, BracketScheduleLo
Outputs: LoScheduleFraction

Step: hiScheduleFraction = 1-loScheduleFraction.
Inputs: BracketScheduleHi, loScheduleFraction
Outputs: HiScheduleFraction

Step: Verify each road and source type combination has at least one associated non-ramp drive schedule. Issue an error message for any combination that does not have one.
Inputs: DriveScheduleAssoc, RunSpecRoadType

Step: rampFractionTerm = 1 - rampFraction, when conditions are met, 1 otherwise.
Conditions: Combining ramps with real road types
Inputs: RoadType

Step: driveScheduleFraction=sum(loScheduleFraction).
Inputs: BracketScheduleLo, LoScheduleFraction
Outputs: DriveScheduleFractionLo

Step: driveScheduleFraction=sum(hiScheduleFraction).
Inputs: BracketScheduleHi, HiScheduleFraction
Outputs: DriveScheduleFractionHi

Step: driveScheduleFraction = rampFractionTerm * (DriveScheduleFractionLo.driveScheduleFraction + DriveScheduleFractionHi.driveScheduleFraction).
Inputs: BracketScheduleHi, DriveScheduleAssoc, DriveScheduleFractionHi, DriveScheduleFractionLo, RoadType
Outputs: DriveScheduleFraction

Step: Get unique combinations of sourceTypeID and driveScheduleID. Only these combinations require VSP and operating mode computations.
Conditions: driveScheduleFraction <> 0
Inputs: DriveScheduleFraction
Outputs: SourceTypeDriveSchedule

Step: Find the first recorded second in each drive schedule. second=min(second).
Inputs: DriveScheduleSecond
Outputs: DriveScheduleFirstSecond

Step: Calculate speed and acceleration during the first second. The acceleration of the 1st second = the acceleration of the 2nd second. speed[t] = speed[t] * 0.44704. acceleration[t] = (speed[t+1]-speed[t]) * 0.44704.
Inputs: DriveScheduleFirstSecond, DriveScheduleSecond at time t, DriveScheduleSecond at time t+1
Outputs: DriveScheduleSecond2

Step: Calculate speed and acceleration during the remaining seconds. speed[t] = speed[t] * 0.44704. acceleration[t] = (speed[t]-speed[t-1]) * 0.44704.
Inputs: DriveScheduleSecond at time t, DriveScheduleSecond at time t-1
Outputs: DriveScheduleSecond2

Step: Calculate VSP for each second of each drive schedule, using sourceTypeID-specific terms. VSP=(rollingTermA * speed + sut.rotatingTermB * POW(dss2.speed,2) + dragTermC * POW(speed,3) + sourceMass * speed * acceleration) / fixedMassFactor.
Inputs: DriveScheduleSecond2, SourceTypeDriveSchedule, sourceUseTypePhysicsMapping
Outputs: VSP

Step: Get the acceleration of every second beyond the first. acceleration[t] = speed[t] - speed[t-1].
Inputs: DriveScheduleSecond for time t, DriveScheduleSecond for time t-1
Outputs: DriveScheduleSecond3

Step: Get the acceleration of the first second. Use INSERT IGNORE so only the 1st second entries will be altered. All other seconds already exist and will be ignored. acceleration[t] = speed[t+1] - speed[t].
Inputs: DriveScheduleSecond for time t, DriveScheduleSecond for time t+1
Outputs: DriveScheduleSecond3

Step: Get the distinct polProcessIDs that require operating modes.
Inputs: OpModePolProcAssoc
Outputs: OMDGPollutantProcess

Step: Remove anything from OMDGPollutantProcess that has a representing pollutant/process. Only its representing item should be calculated.
Inputs: OMDGPolProcessRepresented
Outputs: OMDGPollutantProcess

Step: Get the set of polProcessID and opModeID combinations that must be calculated.
Inputs: OMDGPollutantProcess, OpModePolProcAssoc
Outputs: OpModePolProcAssocTrimmed

Step: Associate each second of each drive schedule with a polProcessID. Obtain the speed, acceleration, and VSP at each point. This facilitates easy opModeID assignment.
Inputs: DriveScheduleSecond3, OMDGPollutantProcess, VSP
Outputs: OpModeIDBySecond

Step: Find braking events, copying information from time t that meet braking conditions and setting opModeID=0.
Conditions: acceleration[t] <= -2 or (acceleration[t] < -1 and acceleration[t-1] < -1 and acceleration[t-2] < -1)
Inputs: OpModeIDBySecond for time t, OpModeIDBySecond for time t-1, OpModeIDBySecond for time t-2
Outputs: OpModeIDBySecond_Temp

Step: Copy braking events back into OpModeIDBySecond.
Inputs: OpModeIDBySecond_Temp
Outputs: OpModeIDBySecond

Step: opModeID=0, braking.
Conditions: Any second in which the acceleration <= -2.
Outputs: OpModeIDBySecond

Step: Assign an opModeID to each second based upon operating mode VSP and speed information.
Conditions: 1 < opModeID < 100, opModeID not previously assigned
Inputs: OperatingMode, OpModePolProcAssocTrimmed
Outputs: OpModeIDBySecond

Step: Assign the Idle operating mode to speed=0. OpModeID=IF(speed=0 and polProcessID=11609,501,if(speed<1.0,1,opModeID)).
Outputs: OpModeIDBySecond

Step: secondSum=count(seconds in each drive schedule).
Inputs: OpModeIDBySecond
Outputs: OpModeFractionBySchedule2

Step: modeFraction = count(seconds in each opModeID)/secondSum.
Inputs: OpModeFractionBySchedule2, OpModeIDBySecond
Outputs: OpModeFractionBySchedule

Step: Add ramp data. opModeFraction = opModeFraction * rampFraction.
Conditions: Not separating ramps, Not polProcessID 11710, 0 < rampFraction < 1
Inputs: OpModePolProcAssocTrimmed, roadOpModeDistribution, roadType
Outputs: OpModeFraction2a

Step: Add data from roads that are 100% ramps. opModeFraction = opModeFraction * rampFraction.
Conditions: Separating ramps, Not polProcessID 11710, rampFraction = 1
Inputs: OpModePolProcAssocTrimmed, roadOpModeDistribution, roadType
Outputs: OpModeFraction2a

Step: Add non-ramp-based information. opModeFraction = sum(modeFraction * driveScheduleFraction).
Conditions: Separating ramps, Not polProcessID 11710
Inputs: DriveScheduleFraction, OpModeFractionBySchedule, OpModePolProcAssocTrimmed
Outputs: OpModeFraction2a

Step: Aggregate ramp and non-ramp data. opModeFraction = sum(opModeFraction).
Inputs: OpModeFraction2a
Outputs: OpModeFraction2

Step: Add all running operating mode 300. opModeFraction[opModeID=300]=1.
Inputs: OpModeFraction2a
Outputs: OpModeFraction2

Step: opModeFraction=1.
Conditions: Extended Idle, sourceTypeID=62 only
Inputs: opModePolProcessAssoc, pollutantProcessAssoc, runSpecHourDay, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: Add data for all extended idling (opModeID 200). opModeFraction[opModeID=200]=1.
Conditions: Extended Idle, sourceTypeID=62 only, opModeFraction[opModeID=200] not already specified
Inputs: opModePolProcessAssoc, pollutantProcessAssoc, runSpecHourDay, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: opModeFraction=1.
Conditions: Auxiliary Power Exhaust, sourceTypeID=62 only, Not opModeID 200 (Extended Idle)
Inputs: opModePolProcessAssoc, pollutantProcessAssoc, runSpecHourDay, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: Add data for all hotelling except extended idling (opModeID 200). opModeFraction=1.
Conditions: Auxiliary Power Exhaust, sourceTypeID=62 only, Not opModeID 200 (Extended Idle)
Inputs: hotellingActivityDistribution, pollutantProcessAssoc, runSpecHourDay, runSpecSourceType
Outputs: RatesOpModeDistribution

Step: Find [sourceTypeID, roadTypeID, avgSpeedBinID, polProcessID] combinations that already exist within RatesOpModeDistribution.
Conditions: Non-Project domain Running Exhaust
Inputs: PollutantProcessAssoc, RatesOpModeDistribution
Outputs: OMDGOMDKeys

Step: Add to RatesOpModeDistribution those entries that don't already have records. Add records that do not appear within OMDGOMDKeys.
Conditions: Non-Project domain Running Exhaust
Inputs: OMDGOMDKeys, OpModeFraction2, runSpecHourDay
Outputs: RatesOpModeDistribution

Step: Clear all entries from OMDGOMDKeys.
Conditions: Non-Project domain Running Exhaust
Outputs: OMDGOMDKeys

Step: Find [sourceTypeID, roadTypeID, avgSpeedBinID, polProcessID] combinations that already exist within RatesOpModeDistribution.
Conditions: Non-Project domain Running Exhaust
Inputs: PollutantProcessAssoc, RatesOpModeDistribution
Outputs: OMDGOMDKeys

Step: Copy representing entries to those being represented, but only if those being represented are not already present. Add to RatesOpModeDistribution those entries that don't already have records. Add records that do not appear within OMDGOMDKeys.
Conditions: Non-Project domain Running Exhaust
Inputs: OMDGOMDKeys, OpModeFraction2, runSpecHourDay
Outputs: RatesOpModeDistribution

Step: Update emission rate tables for Model Year Physics effects. In Project domain, only Extended Idle and APU are used in this generator. Since neither is affected by aerodynamics, only do this for Non-Project domain.
Conditions: Non-Project domain

Top of Page


Refueling Loss Calculator

Refueling Loss Calculator is a CHAINED CALCULATOR.

The Refueling Loss Calculator is responsible for:

  • Refueling Displacement Vapor Loss (18) Total Gaseous Hydrocarbons (1)
  • Refueling Spillage Loss (19) Total Gaseous Hydrocarbons (1)


The Refueling Loss Calculator input comes from:


The Refueling Loss Calculator output is used by:


Refueling Loss Calculator uses the following tables:


Refueling Loss Calculator is expressed in these source code files:

  • /database/RefuelingLossCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/RefuelingLossCalculator.java

Steps

The Refueling Loss Calculator algorithm is as follows.

Step: energyContent = sum(marketShare * energyContent) across all the fuel supply.
Inputs: fuelformulation, fuelsubtype, fuelsupply, fueltype, monthofanyyear, runspecmonth, year
Outputs: refuelingfueltype

Step: Determine the refueling temperatures
Outputs: refuelingtemp

Step: refuelingTemperature = temperature subject to lower bound of vaporLowLimit and upper bound of vaporHighLimit.
Inputs: refuelingfactors, refuelingzonemonthhour
Outputs: refuelingtemp

Step: tankTemperatureDif = ((vaporTermE*refuelingTemperature) + vaporTermF) subject to lower bound of 0 and upper bound of tankDiffLimit.
Outputs: refuelingfactors, refuelingtemp

Step: Determine the unadjusted refueling displacement vapor loss rate
Outputs: refuelingaveragervp

Step: averageRVP = sum(RVP * marketShare) across fuel formulations.
Inputs: refuelingfuelformulation, refuelingfuelsubtype, refuelingfuelsupply, refuelingmonthofanyyear
Outputs: refuelingaveragervp

Step: Provide default averageRVP of 0.
Inputs: refuelingfactors, refuelingmonthofanyyear
Outputs: refuelingaveragervp

Step: displacedVaporRate = exp(vaporTermA + vaporTermB * tankTemperatureDif + vaporTermC * refuelingTemperature + vaporTermD * averageRVP)
Outputs: refuelingaveragervp, refuelingfactors, refuelingtemp

Step: Limit displacedVaporRate to no less than minimumRefuelingVaporLoss.
Outputs: refuelingfactors, refuelingtemp

Step: Technology and Program adjustment of the refueling displacement vapor loss rate. adjustedVaporRate = (1.0-refuelingVaporProgramAdjust)*((1.0-refuelingTechAdjustment)*displacedVaporRate).
Conditions: Refueling Displacement Vapor Loss (18).
Inputs: refuelingcountyyear, refuelingtemp, sourcetypetechadjustment
Outputs: refuelingdisplacement

Step: Technology and Program adjustment of the refueling spillage rate. adjustedSpillRate = (1.0-refuelingSpillProgramAdjust)*((1.0-refuelingTechAdjustment)*refuelingSpillRate).
Conditions: Refueling Spillage Loss (19).
Inputs: refuelingcountyyear, refuelingfactors, sourcetypetechadjustment
Outputs: refuelingspillage

Step: emissions = (adjustedVaporRate * Total Energy Consumption (91)) / (energyContent * fuelDensity).
Conditions: Refueling Displacement Vapor Loss (18).
Inputs: movesworkeroutput, refuelingdisplacement, refuelingfueltype
Outputs: refuelingworkeroutputtemp

Step: emissions = (adjustedSpillRate * Total Energy Consumption (91)) / (energyContent * fuelDensity).
Conditions: Refueling Spillage Loss (19).
Inputs: movesworkeroutput, refuelingfueltype, refuelingspillage
Outputs: refuelingworkeroutputtemp

Top of Page


SO2 Calculator

SO2 Calculator is a CHAINED CALCULATOR.

The SO2 Calculator is responsible for:

  • Running Exhaust (1) Sulfur Dioxide (SO2) (31)
  • Start Exhaust (2) Sulfur Dioxide (SO2) (31)
  • Extended Idle Exhaust (90) Sulfur Dioxide (SO2) (31)
  • Auxiliary Power Exhaust (91) Sulfur Dioxide (SO2) (31)


The SO2 Calculator input comes from:


The SO2 Calculator output is used by:


SO2 Calculator uses the following tables:


SO2 Calculator is expressed in these source code files:

  • /database/SO2Calculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/SO2Calculator.java

Steps

The SO2 Calculator algorithm is as follows.

Step: energyContent = sum(marketShare * energyContent) across the fuel supply. WsulfurLevel = sum(marketShare * sulfurLevel) across the fuel supply.
Inputs: so2copyoffuelformulation, so2copyoffuelsubtype, so2copyoffuelsupply, so2copyoffueltype, so2copyofyear
Outputs: so2fuelcalculation1

Step: SO2 (31) = (meanBaseRate * WsulfurLevel * Total Energy Consumption (91)) / energyContent.
Inputs: movesworkeroutput, so2copyofmonthofanyyear, so2fuelcalculation1, so2fuelcalculation2
Outputs: so2movesoutputtemp1

Step: Apply general fuel effects. emissionQuant = emissionQuant * fuelEffectRatio.
Outputs: so2movesoutputtemp1, so2pmonecountyyeargeneralfuelratio

Top of Page


SourceBin Distribution Generator

SourceBin Distribution Generator is a GENERATOR that executes at the YEAR level.

SourceBin Distribution Generator uses the following tables:


SourceBin Distribution Generator populates the following tables:


SourceBin Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/SourceBinDistributionGenerator.java

Steps

The SourceBin Distribution Generator algorithm is as follows.

Step: Determine the set of SourceTypes which should be blocked because they already have output data for the current polProcessID.
Inputs: current polProcessID, SourceBinDistribution, SourceTypeModelYear
Outputs: BlockSourceType

Step: Determine the set of SourceTypes which should be used, namely those that exist in SourceTypePolProcess for the current polProcessID and which are not listed in BlockSourceType.
Inputs: BlockSourceType, current polProcessID, SourceTypePolProcess
Outputs: list of sourceTypeIDs

Step: Perform the following steps for each source type is the list of sourceTypeIDs and for the current polProcessID.
Inputs: current polProcessID, list of sourceTypeIDs

Step: Lookup isRegClassRequired and isMYGroupRequired.
Inputs: current polProcessID, current sourceTypeID, SourceTypePolProcess

Step: Aggregate sampleVehiclePopulation.stmyFraction based upon the need for regulatory class and model year group in the source bin. stmyFraction[sourceTypeModelYearID,fuelTypeID,engTechID,optionally regClassID,optionally shortModYrGroupID] = sum(SampleVehiclePopulation.stmyFraction).
Inputs: isMYGroupRequired, isRegClassRequired, modelYearGroup, pollutantProcessModelYear, sampleVehiclePopulation
Outputs: SBDGSVP

Step: Assign sourceBinID by combining other columns. sourceBinID= 1000000000000000000+ fuelTypeID*10000000000000000 + engTechID*100000000000000 + regClassID*1000000000000 + shortModYrGroupID*10000000000.
Outputs: SBDGSVP

Step: Find sourceBinIDs that do not already exist within SourceBin.
Inputs: SBDGSVP, SourceBin
Outputs: NewSourceBin2

Step: Add sourceBinIDs that did not previously exist within SourceBin.
Inputs: NewSourceBin2
Outputs: SourceBin

Step: sourceBinActivityFraction[sourceTypeModelYearID,sourceBinID] = sum(stmyFraction) of SampleVehiclePopulation records that have been aggregated according to sourcebin needs.
Inputs: SBDGSVP
Outputs: SourceBinDistribution

Step: Done iterating over the list of sourceTypeIDs for the current polProcessID.
Inputs: list of sourceTypeIDs

Step: equippedSourceBinID=sourceBin[fuelTypeID=sourceBinFuelTypeID]. usedSourceBinID=sourceBin[fuelTypeID=fuelSupplyFuelTypeID].
Inputs: fuelUsageFraction, sourceBin
Outputs: sourceBinFuelUsage

Step: Convert sourceBinDistribution from equipped fuels to used fuels basis. Use a new output table with a name that includes the process, county, and calendar year. sourceBinActivityFraction[sourceBinID=usedSourceBinID]=sum(usageFraction * sourceBinActivityFraction).
Inputs: pollutantProcessAssoc, sourceBinDistribution, sourceBinFuelUsage
Outputs: sourceBinDistributionFuelUsage_[processID]_[countyID]_[year]

Top of Page


Start Operating Mode Distribution Generator

Start Operating Mode Distribution Generator is a GENERATOR that executes at the PROCESS level.

Start Operating Mode Distribution Generator uses the following tables:


Start Operating Mode Distribution Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/StartOperatingModeDistributionGenerator.java

Steps

The Start Operating Mode Distribution Generator algorithm is as follows.

Step: Determine the soak time for each sample vehicle trip by subtracking the keyontime of the trip from the keyofftime of the previous trip. soakTime = keyOnTime[trip t] - keyOffTime[trip t-1].
Inputs: SampleVehicleTrip
Outputs: SoakTime

Step: Find the operating mode for each soaking vehicle.
Conditions: (minSoakTime <= soakTime OR (minSoakTime IS NULL AND maxSoakTime IS NOT NULL)) AND (maxSoakTime > soakTime OR (maxSoakTime IS NULL AND minSoakTime IS NOT NULL)).
Inputs: OperatingMode, SoakTime
Outputs: StartOpMode

Step: Find the number of vehicle starts per day. starts = count(keyOnTime).
Inputs: HourDay, RunSpecHourDay, SampleVehicleDay, SampleVehicleTrip, StartOpMode
Outputs: StartsPerVehicleDay

Step: Calculate the operating mode fraction. opModeFraction = count(opModeID)/starts.
Inputs: SampleVehicleDay, SampleVehicleTrip, StartOpMode, StartsPerVehicleDay
Outputs: StartOpModeDistribution

Step: Find the set of unique opModeID values within StartOpModeDistribution.
Inputs: StartOpModeDistribution
Outputs: SOMDGOpModes

Step: Find the set of operating mode distribution entries that already exist.
Inputs: opModeDistribution, SOMDGOpModes
Outputs: existingStartOMD

Step: Populate RatesOpModeDistribution.
Conditions: Project domain
Inputs: OpModeDistribution, opModePolProcAssoc, sourceTypePolProcess
Outputs: RatesOpModeDistribution

Step: Populate RatesOpModeDistribution.
Conditions: Non-Project domain
Inputs: opModePolProcAssoc, sourceTypePolProcess, StartOpModeDistribution
Outputs: RatesOpModeDistribution

Step: Add information for All Starts using operating mode 100 and polProcessID 602. opModeFraction[opModeID=100,polProcessID=602]=1.0.
Inputs: runSpecHourDay, runSpecSourceType
Outputs: RatesOpModeDistribution

Top of Page


Sulfate PM Calculator

Sulfate PM Calculator is a CALCULATOR that executes at the YEAR level.

The Sulfate PM Calculator is responsible for:

  • Running Exhaust (1) Nitrate (NO3) (35)
  • Start Exhaust (2) Nitrate (NO3) (35)
  • Extended Idle Exhaust (90) Nitrate (NO3) (35)
  • Auxiliary Power Exhaust (91) Nitrate (NO3) (35)
  • Crankcase Running Exhaust (15) Nitrate (NO3) (35)
  • Crankcase Start Exhaust (16) Nitrate (NO3) (35)
  • Crankcase Extended Idle Exhaust (17) Nitrate (NO3) (35)
  • Running Exhaust (1) Ammonium (NH4) (36)
  • Start Exhaust (2) Ammonium (NH4) (36)
  • Extended Idle Exhaust (90) Ammonium (NH4) (36)
  • Auxiliary Power Exhaust (91) Ammonium (NH4) (36)
  • Crankcase Running Exhaust (15) Ammonium (NH4) (36)
  • Crankcase Start Exhaust (16) Ammonium (NH4) (36)
  • Crankcase Extended Idle Exhaust (17) Ammonium (NH4) (36)
  • Running Exhaust (1) Chloride (51)
  • Start Exhaust (2) Chloride (51)
  • Extended Idle Exhaust (90) Chloride (51)
  • Auxiliary Power Exhaust (91) Chloride (51)
  • Crankcase Running Exhaust (15) Chloride (51)
  • Crankcase Start Exhaust (16) Chloride (51)
  • Crankcase Extended Idle Exhaust (17) Chloride (51)
  • Running Exhaust (1) Sodium (52)
  • Start Exhaust (2) Sodium (52)
  • Extended Idle Exhaust (90) Sodium (52)
  • Auxiliary Power Exhaust (91) Sodium (52)
  • Crankcase Running Exhaust (15) Sodium (52)
  • Crankcase Start Exhaust (16) Sodium (52)
  • Crankcase Extended Idle Exhaust (17) Sodium (52)
  • Running Exhaust (1) Potassium (53)
  • Start Exhaust (2) Potassium (53)
  • Extended Idle Exhaust (90) Potassium (53)
  • Auxiliary Power Exhaust (91) Potassium (53)
  • Crankcase Running Exhaust (15) Potassium (53)
  • Crankcase Start Exhaust (16) Potassium (53)
  • Crankcase Extended Idle Exhaust (17) Potassium (53)
  • Running Exhaust (1) Magnesium (54)
  • Start Exhaust (2) Magnesium (54)
  • Extended Idle Exhaust (90) Magnesium (54)
  • Auxiliary Power Exhaust (91) Magnesium (54)
  • Crankcase Running Exhaust (15) Magnesium (54)
  • Crankcase Start Exhaust (16) Magnesium (54)
  • Crankcase Extended Idle Exhaust (17) Magnesium (54)
  • Running Exhaust (1) Calcium (55)
  • Start Exhaust (2) Calcium (55)
  • Extended Idle Exhaust (90) Calcium (55)
  • Auxiliary Power Exhaust (91) Calcium (55)
  • Crankcase Running Exhaust (15) Calcium (55)
  • Crankcase Start Exhaust (16) Calcium (55)
  • Crankcase Extended Idle Exhaust (17) Calcium (55)
  • Running Exhaust (1) Titanium (56)
  • Start Exhaust (2) Titanium (56)
  • Extended Idle Exhaust (90) Titanium (56)
  • Auxiliary Power Exhaust (91) Titanium (56)
  • Crankcase Running Exhaust (15) Titanium (56)
  • Crankcase Start Exhaust (16) Titanium (56)
  • Crankcase Extended Idle Exhaust (17) Titanium (56)
  • Running Exhaust (1) Silicon (57)
  • Start Exhaust (2) Silicon (57)
  • Extended Idle Exhaust (90) Silicon (57)
  • Auxiliary Power Exhaust (91) Silicon (57)
  • Crankcase Running Exhaust (15) Silicon (57)
  • Crankcase Start Exhaust (16) Silicon (57)
  • Crankcase Extended Idle Exhaust (17) Silicon (57)
  • Running Exhaust (1) Aluminum (58)
  • Start Exhaust (2) Aluminum (58)
  • Extended Idle Exhaust (90) Aluminum (58)
  • Auxiliary Power Exhaust (91) Aluminum (58)
  • Crankcase Running Exhaust (15) Aluminum (58)
  • Crankcase Start Exhaust (16) Aluminum (58)
  • Crankcase Extended Idle Exhaust (17) Aluminum (58)
  • Running Exhaust (1) Iron (59)
  • Start Exhaust (2) Iron (59)
  • Extended Idle Exhaust (90) Iron (59)
  • Auxiliary Power Exhaust (91) Iron (59)
  • Crankcase Running Exhaust (15) Iron (59)
  • Crankcase Start Exhaust (16) Iron (59)
  • Crankcase Extended Idle Exhaust (17) Iron (59)
  • Running Exhaust (1) Primary Exhaust PM2.5 - Total (110)
  • Start Exhaust (2) Primary Exhaust PM2.5 - Total (110)
  • Extended Idle Exhaust (90) Primary Exhaust PM2.5 - Total (110)
  • Auxiliary Power Exhaust (91) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Running Exhaust (15) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Start Exhaust (16) Primary Exhaust PM2.5 - Total (110)
  • Crankcase Extended Idle Exhaust (17) Primary Exhaust PM2.5 - Total (110)
  • Running Exhaust (1) Organic Carbon (111)
  • Start Exhaust (2) Organic Carbon (111)
  • Extended Idle Exhaust (90) Organic Carbon (111)
  • Auxiliary Power Exhaust (91) Organic Carbon (111)
  • Crankcase Running Exhaust (15) Organic Carbon (111)
  • Crankcase Start Exhaust (16) Organic Carbon (111)
  • Crankcase Extended Idle Exhaust (17) Organic Carbon (111)
  • Running Exhaust (1) Elemental Carbon (112)
  • Start Exhaust (2) Elemental Carbon (112)
  • Extended Idle Exhaust (90) Elemental Carbon (112)
  • Auxiliary Power Exhaust (91) Elemental Carbon (112)
  • Crankcase Running Exhaust (15) Elemental Carbon (112)
  • Crankcase Start Exhaust (16) Elemental Carbon (112)
  • Crankcase Extended Idle Exhaust (17) Elemental Carbon (112)
  • Running Exhaust (1) Sulfate Particulate (115)
  • Start Exhaust (2) Sulfate Particulate (115)
  • Extended Idle Exhaust (90) Sulfate Particulate (115)
  • Auxiliary Power Exhaust (91) Sulfate Particulate (115)
  • Crankcase Running Exhaust (15) Sulfate Particulate (115)
  • Crankcase Start Exhaust (16) Sulfate Particulate (115)
  • Crankcase Extended Idle Exhaust (17) Sulfate Particulate (115)
  • Running Exhaust (1) Composite - NonECPM (118)
  • Start Exhaust (2) Composite - NonECPM (118)
  • Extended Idle Exhaust (90) Composite - NonECPM (118)
  • Auxiliary Power Exhaust (91) Composite - NonECPM (118)
  • Crankcase Running Exhaust (15) Composite - NonECPM (118)
  • Crankcase Start Exhaust (16) Composite - NonECPM (118)
  • Crankcase Extended Idle Exhaust (17) Composite - NonECPM (118)
  • Running Exhaust (1) H2O (aerosol) (119)
  • Start Exhaust (2) H2O (aerosol) (119)
  • Extended Idle Exhaust (90) H2O (aerosol) (119)
  • Auxiliary Power Exhaust (91) H2O (aerosol) (119)
  • Crankcase Running Exhaust (15) H2O (aerosol) (119)
  • Crankcase Start Exhaust (16) H2O (aerosol) (119)
  • Crankcase Extended Idle Exhaust (17) H2O (aerosol) (119)
  • Running Exhaust (1) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Start Exhaust (2) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Extended Idle Exhaust (90) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Auxiliary Power Exhaust (91) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Crankcase Running Exhaust (15) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Crankcase Start Exhaust (16) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Crankcase Extended Idle Exhaust (17) CMAQ5.0 Unspeciated (PMOTHR) (121)
  • Running Exhaust (1) Non-carbon Organic Matter (NCOM) (122)
  • Start Exhaust (2) Non-carbon Organic Matter (NCOM) (122)
  • Extended Idle Exhaust (90) Non-carbon Organic Matter (NCOM) (122)
  • Auxiliary Power Exhaust (91) Non-carbon Organic Matter (NCOM) (122)
  • Crankcase Running Exhaust (15) Non-carbon Organic Matter (NCOM) (122)
  • Crankcase Start Exhaust (16) Non-carbon Organic Matter (NCOM) (122)
  • Crankcase Extended Idle Exhaust (17) Non-carbon Organic Matter (NCOM) (122)


The Sulfate PM Calculator input comes from:


The Sulfate PM Calculator output is used by:


Sulfate PM Calculator uses the following tables:


Sulfate PM Calculator is expressed in these source code files:

  • /database/SulfatePMCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/SulfatePMCalculator.java

Steps

The Sulfate PM Calculator algorithm is as follows.

Step: Get fuel effects for NonECNonSO4PM (120).
Inputs: county, fuelsupply, generalfuelratio, monthofanyyear, runspecmodelyearage, runspecmonthgroup, runspecsourcefueltype, year
Outputs: spmonecountyyeargeneralfuelratio

Step: Calculate adjusted SulfateNonECPMFraction and H2ONonECPMFraction using the sulfurLevel of available fuel formulations. Weight each adjusted fraction by formulation market share.
Inputs: county, fuelformulation, fuelsubtype, fuelsupply, monthofanyyear, runspecmodelyearage, runspecmonthgroup, runspecsourcefueltype, sulfatefractions, year
Outputs: onecountyyearsulfatefractions

Step: Collect speciation data.
Outputs: pmspeciation

Step: Create temperature effects for Sulfate (115), H2O (aersol) (119), and NonECNonSO4PM (120).
Inputs: temperaturefactorexpression, zonemonthhour
Outputs: onezoneyeartemperaturefactor

Step: Create crankcase split fractions for EC (112), Sulfate (115), H2O (aersol) (119), and NonECNonSO4PM (120). The query must account for the lack of NonECNonSO4PM in the Pollutant table.
Inputs: crankcaseemissionratio, emissionprocess
Outputs: crankcasesplit

Step: Copy unadjusted EC (112) so it can be adjusted.
Inputs: movesworkeroutput
Outputs: spmoutput

Step: Remove unadjusted EC. The adjusted EC will be added later.
Outputs: from

Step: Specify the split to make sulfate (115) from NonECPM (118). Sulfate = NonECPM * SulfateNonECPMFraction.
Inputs: onecountyyearsulfatefractions
Outputs: spmsplit1

Step: Specify the split to make H2O (aerosol) (119) from NonECPM (118). H2O = NonECPM * H2ONonECPMFraction.
Inputs: onecountyyearsulfatefractions
Outputs: spmsplit1

Step: Specify the split to make NonECNonSO4PM (120) from NonECPM (118). NonECNonSO4PM = NonECPM * (1 - UnadjustedH2ONonECPMFraction - UnadjustedSulfateNonECPMFraction).
Inputs: onecountyyearsulfatefractions
Outputs: spmsplit1

Step: Apply the splits, making Sulfate (115), H2O (aerosol) (119), and NonECNonSO4PM (120) from NonECPM (118).
Inputs: movesworkeroutput, spmsplit1
Outputs: spmoutput

Step: Apply fuel effects. Only NonECNonSO4PM (120) is affected.
Outputs: spmonecountyyeargeneralfuelratio, spmoutput

Step: Apply temperature effects to Sulfate, H2O (aersol), and NonECNonSO4PM.
Outputs: onezoneyeartemperaturefactor, spmoutput

Step: Split EC, Sulfate, H2O (aersol), and NonECNonSO4PM by crankcase effects.
Inputs: crankcasesplit, spmoutput
Outputs: spmoutput2

Step: Sum EC, NonECNonSO4PM, Sulfate, and H2O (aerosol) to make Total PM 2.5 (110)
Inputs: spmoutput2
Outputs: movesworkeroutput

Step: Copy EC, Sulfate, H2O to the output.
Inputs: spmoutput2
Outputs: movesworkeroutput

Step: Remove unadjusted NonECPM (118).
Outputs: from

Step: Sum the adjusted NonECNonSO4PM, Sulfate, and H2O (aerosol) to make the adjusted NonECPM (118).
Inputs: spmoutput2
Outputs: movesworkeroutput

Step: Speciate the remaining pollutants. species output = pmSpeciationFraction * species input
Inputs: pmspeciation, spmoutput2
Outputs: movesworkeroutput

Top of Page


TOG Speciation Calculator

TOG Speciation Calculator is a that executes at the level.

The TOG Speciation Calculator is responsible for:

  • Running Exhaust (1) CB05 Mechanism (1000)
  • Running Exhaust (1) NonHAPTOG (88)
  • Running Exhaust (1) CB05_ALD2 (1001)
  • Running Exhaust (1) CB05_ALDX (1002)
  • Running Exhaust (1) CB05_ETH (1005)
  • Running Exhaust (1) CB05_ETHA (1006)
  • Running Exhaust (1) CB05_FORM (1008)
  • Running Exhaust (1) CB05_IOLE (1009)
  • Running Exhaust (1) CB05_OLE (1012)
  • Running Exhaust (1) CB05_PAR (1013)
  • Running Exhaust (1) CB05_TOL (1015)
  • Running Exhaust (1) CB05_UNR (1017)
  • Running Exhaust (1) CB05_XYL (1018)
  • Running Exhaust (1) CB05_ISOP (1010)
  • Running Exhaust (1) CB05_MEOH (1011)
  • Running Exhaust (1) CB05_TERP (1014)
  • Running Exhaust (1) CB05_UNK (1016)
  • Start Exhaust (2) CB05 Mechanism (1000)
  • Start Exhaust (2) NonHAPTOG (88)
  • Start Exhaust (2) CB05_ALD2 (1001)
  • Start Exhaust (2) CB05_ALDX (1002)
  • Start Exhaust (2) CB05_ETH (1005)
  • Start Exhaust (2) CB05_ETHA (1006)
  • Start Exhaust (2) CB05_FORM (1008)
  • Start Exhaust (2) CB05_IOLE (1009)
  • Start Exhaust (2) CB05_OLE (1012)
  • Start Exhaust (2) CB05_PAR (1013)
  • Start Exhaust (2) CB05_TOL (1015)
  • Start Exhaust (2) CB05_UNR (1017)
  • Start Exhaust (2) CB05_XYL (1018)
  • Start Exhaust (2) CB05_ISOP (1010)
  • Start Exhaust (2) CB05_MEOH (1011)
  • Start Exhaust (2) CB05_TERP (1014)
  • Start Exhaust (2) CB05_UNK (1016)
  • Evap Permeation (11) CB05 Mechanism (1000)
  • Evap Permeation (11) NonHAPTOG (88)
  • Evap Permeation (11) CB05_ALD2 (1001)
  • Evap Permeation (11) CB05_ALDX (1002)
  • Evap Permeation (11) CB05_ETH (1005)
  • Evap Permeation (11) CB05_FORM (1008)
  • Evap Permeation (11) CB05_IOLE (1009)
  • Evap Permeation (11) CB05_ISOP (1010)
  • Evap Permeation (11) CB05_MEOH (1011)
  • Evap Permeation (11) CB05_OLE (1012)
  • Evap Permeation (11) CB05_PAR (1013)
  • Evap Permeation (11) CB05_TERP (1014)
  • Evap Permeation (11) CB05_TOL (1015)
  • Evap Permeation (11) CB05_UNR (1017)
  • Evap Permeation (11) CB05_XYL (1018)
  • Evap Permeation (11) CB05_ETHA (1006)
  • Evap Fuel Vapor Venting (12) CB05 Mechanism (1000)
  • Evap Fuel Vapor Venting (12) NonHAPTOG (88)
  • Evap Fuel Vapor Venting (12) CB05_ALD2 (1001)
  • Evap Fuel Vapor Venting (12) CB05_ALDX (1002)
  • Evap Fuel Vapor Venting (12) CB05_FORM (1008)
  • Evap Fuel Vapor Venting (12) CB05_IOLE (1009)
  • Evap Fuel Vapor Venting (12) CB05_ISOP (1010)
  • Evap Fuel Vapor Venting (12) CB05_OLE (1012)
  • Evap Fuel Vapor Venting (12) CB05_PAR (1013)
  • Evap Fuel Vapor Venting (12) CB05_TOL (1015)
  • Evap Fuel Vapor Venting (12) CB05_UNR (1017)
  • Evap Fuel Vapor Venting (12) CB05_XYL (1018)
  • Evap Fuel Vapor Venting (12) CB05_TERP (1014)
  • Evap Fuel Leaks (13) CB05 Mechanism (1000)
  • Evap Fuel Leaks (13) NonHAPTOG (88)
  • Evap Fuel Leaks (13) CB05_ALD2 (1001)
  • Evap Fuel Leaks (13) CB05_ALDX (1002)
  • Evap Fuel Leaks (13) CB05_FORM (1008)
  • Evap Fuel Leaks (13) CB05_IOLE (1009)
  • Evap Fuel Leaks (13) CB05_ISOP (1010)
  • Evap Fuel Leaks (13) CB05_OLE (1012)
  • Evap Fuel Leaks (13) CB05_PAR (1013)
  • Evap Fuel Leaks (13) CB05_TOL (1015)
  • Evap Fuel Leaks (13) CB05_UNR (1017)
  • Evap Fuel Leaks (13) CB05_XYL (1018)
  • Evap Fuel Leaks (13) CB05_TERP (1014)
  • Crankcase Running Exhaust (15) CB05 Mechanism (1000)
  • Crankcase Running Exhaust (15) NonHAPTOG (88)
  • Crankcase Running Exhaust (15) CB05_ALD2 (1001)
  • Crankcase Running Exhaust (15) CB05_ALDX (1002)
  • Crankcase Running Exhaust (15) CB05_ETH (1005)
  • Crankcase Running Exhaust (15) CB05_ETHA (1006)
  • Crankcase Running Exhaust (15) CB05_FORM (1008)
  • Crankcase Running Exhaust (15) CB05_IOLE (1009)
  • Crankcase Running Exhaust (15) CB05_OLE (1012)
  • Crankcase Running Exhaust (15) CB05_PAR (1013)
  • Crankcase Running Exhaust (15) CB05_TOL (1015)
  • Crankcase Running Exhaust (15) CB05_UNR (1017)
  • Crankcase Running Exhaust (15) CB05_XYL (1018)
  • Crankcase Running Exhaust (15) CB05_ISOP (1010)
  • Crankcase Running Exhaust (15) CB05_MEOH (1011)
  • Crankcase Running Exhaust (15) CB05_TERP (1014)
  • Crankcase Running Exhaust (15) CB05_UNK (1016)
  • Crankcase Start Exhaust (16) CB05 Mechanism (1000)
  • Crankcase Start Exhaust (16) NonHAPTOG (88)
  • Crankcase Start Exhaust (16) CB05_ALD2 (1001)
  • Crankcase Start Exhaust (16) CB05_ALDX (1002)
  • Crankcase Start Exhaust (16) CB05_ETH (1005)
  • Crankcase Start Exhaust (16) CB05_ETHA (1006)
  • Crankcase Start Exhaust (16) CB05_FORM (1008)
  • Crankcase Start Exhaust (16) CB05_IOLE (1009)
  • Crankcase Start Exhaust (16) CB05_OLE (1012)
  • Crankcase Start Exhaust (16) CB05_PAR (1013)
  • Crankcase Start Exhaust (16) CB05_TOL (1015)
  • Crankcase Start Exhaust (16) CB05_UNR (1017)
  • Crankcase Start Exhaust (16) CB05_XYL (1018)
  • Crankcase Start Exhaust (16) CB05_ISOP (1010)
  • Crankcase Start Exhaust (16) CB05_MEOH (1011)
  • Crankcase Start Exhaust (16) CB05_TERP (1014)
  • Crankcase Start Exhaust (16) CB05_UNK (1016)
  • Crankcase Extended Idle Exhaust (17) CB05 Mechanism (1000)
  • Crankcase Extended Idle Exhaust (17) NonHAPTOG (88)
  • Crankcase Extended Idle Exhaust (17) CB05_ALD2 (1001)
  • Crankcase Extended Idle Exhaust (17) CB05_ALDX (1002)
  • Crankcase Extended Idle Exhaust (17) CB05_ETH (1005)
  • Crankcase Extended Idle Exhaust (17) CB05_ETHA (1006)
  • Crankcase Extended Idle Exhaust (17) CB05_FORM (1008)
  • Crankcase Extended Idle Exhaust (17) CB05_IOLE (1009)
  • Crankcase Extended Idle Exhaust (17) CB05_ISOP (1010)
  • Crankcase Extended Idle Exhaust (17) CB05_OLE (1012)
  • Crankcase Extended Idle Exhaust (17) CB05_PAR (1013)
  • Crankcase Extended Idle Exhaust (17) CB05_TERP (1014)
  • Crankcase Extended Idle Exhaust (17) CB05_TOL (1015)
  • Crankcase Extended Idle Exhaust (17) CB05_UNK (1016)
  • Crankcase Extended Idle Exhaust (17) CB05_UNR (1017)
  • Crankcase Extended Idle Exhaust (17) CB05_XYL (1018)
  • Refueling Displacement Vapor Loss (18) CB05 Mechanism (1000)
  • Refueling Displacement Vapor Loss (18) NonHAPTOG (88)
  • Refueling Displacement Vapor Loss (18) CB05_ALD2 (1001)
  • Refueling Displacement Vapor Loss (18) CB05_ALDX (1002)
  • Refueling Displacement Vapor Loss (18) CB05_FORM (1008)
  • Refueling Displacement Vapor Loss (18) CB05_IOLE (1009)
  • Refueling Displacement Vapor Loss (18) CB05_ISOP (1010)
  • Refueling Displacement Vapor Loss (18) CB05_OLE (1012)
  • Refueling Displacement Vapor Loss (18) CB05_PAR (1013)
  • Refueling Displacement Vapor Loss (18) CB05_TERP (1014)
  • Refueling Displacement Vapor Loss (18) CB05_TOL (1015)
  • Refueling Displacement Vapor Loss (18) CB05_UNR (1017)
  • Refueling Displacement Vapor Loss (18) CB05_XYL (1018)
  • Refueling Spillage Loss (19) CB05 Mechanism (1000)
  • Refueling Spillage Loss (19) NonHAPTOG (88)
  • Refueling Spillage Loss (19) CB05_ALD2 (1001)
  • Refueling Spillage Loss (19) CB05_ALDX (1002)
  • Refueling Spillage Loss (19) CB05_FORM (1008)
  • Refueling Spillage Loss (19) CB05_IOLE (1009)
  • Refueling Spillage Loss (19) CB05_ISOP (1010)
  • Refueling Spillage Loss (19) CB05_OLE (1012)
  • Refueling Spillage Loss (19) CB05_PAR (1013)
  • Refueling Spillage Loss (19) CB05_TOL (1015)
  • Refueling Spillage Loss (19) CB05_UNR (1017)
  • Refueling Spillage Loss (19) CB05_XYL (1018)
  • Refueling Spillage Loss (19) CB05_TERP (1014)
  • Extended Idle Exhaust (90) CB05 Mechanism (1000)
  • Extended Idle Exhaust (90) NonHAPTOG (88)
  • Extended Idle Exhaust (90) CB05_ALD2 (1001)
  • Extended Idle Exhaust (90) CB05_ALDX (1002)
  • Extended Idle Exhaust (90) CB05_ETH (1005)
  • Extended Idle Exhaust (90) CB05_ETHA (1006)
  • Extended Idle Exhaust (90) CB05_FORM (1008)
  • Extended Idle Exhaust (90) CB05_IOLE (1009)
  • Extended Idle Exhaust (90) CB05_ISOP (1010)
  • Extended Idle Exhaust (90) CB05_OLE (1012)
  • Extended Idle Exhaust (90) CB05_PAR (1013)
  • Extended Idle Exhaust (90) CB05_TERP (1014)
  • Extended Idle Exhaust (90) CB05_TOL (1015)
  • Extended Idle Exhaust (90) CB05_UNK (1016)
  • Extended Idle Exhaust (90) CB05_UNR (1017)
  • Extended Idle Exhaust (90) CB05_XYL (1018)
  • Auxiliary Power Exhaust (91) CB05 Mechanism (1000)
  • Auxiliary Power Exhaust (91) NonHAPTOG (88)
  • Auxiliary Power Exhaust (91) CB05_ALD2 (1001)
  • Auxiliary Power Exhaust (91) CB05_ALDX (1002)
  • Auxiliary Power Exhaust (91) CB05_ETH (1005)
  • Auxiliary Power Exhaust (91) CB05_ETHA (1006)
  • Auxiliary Power Exhaust (91) CB05_FORM (1008)
  • Auxiliary Power Exhaust (91) CB05_IOLE (1009)
  • Auxiliary Power Exhaust (91) CB05_ISOP (1010)
  • Auxiliary Power Exhaust (91) CB05_OLE (1012)
  • Auxiliary Power Exhaust (91) CB05_PAR (1013)
  • Auxiliary Power Exhaust (91) CB05_TERP (1014)
  • Auxiliary Power Exhaust (91) CB05_TOL (1015)
  • Auxiliary Power Exhaust (91) CB05_UNK (1016)
  • Auxiliary Power Exhaust (91) CB05_UNR (1017)
  • Auxiliary Power Exhaust (91) CB05_XYL (1018)


The TOG Speciation Calculator input comes from:


TOG Speciation Calculator uses the following tables:


TOG Speciation Calculator is expressed in these source code files:

  • /database/TOGSpeciationCalculator.sql

Steps

The TOG Speciation Calculator algorithm is as follows.

Step: Add NMOG (80) to the set of chained input pollutants.
Outputs: integratedspeciesset

Step: Index integratedSpeciesSet by pollutantID to increase speed.
Outputs: integratedspeciesset

Step: Find the subset of records that are actually needed. These include NMOG (80) and anything listed in integratedSpeciesSet.
Inputs: movesworkeroutput
Outputs: togworkeroutput

Step: Convert integrated species to negative NonHapTOG (88) entries and NMOG (80) values to positive NonHAPTOG (88) entries. When summed, this will complete the integration.
Inputs: integratedspeciesset
Outputs: togworkeroutput

Step: Sum the NonHAPTOG (88) records, reducing record count and completing the species integration.
Inputs: togworkeroutput
Outputs: togworkeroutputintegrated

Step: Copy NonHAPTOG (88) entries into MOVESWorkerOutput.
Inputs: togworkeroutputintegrated
Outputs: movesworkeroutput

Step: Index togSpeciationProfile by pollutantID to increase speed.
Outputs: togspeciationprofile

Step: Get the set of distinct pollutants that are needed for speciation input.
Inputs: togspeciationprofile
Outputs: togspeciationpollutants

Step: Find the subset of records that are needed for speciation input. These are the pollutants listed in the togSpeciationProfile table.
Inputs: movesworkeroutput, togspeciationpollutants
Outputs: togworkeroutputintegrated

Step: Speciate NonHAPTOG (88) and anything else listed as an input in togSpeciationProfile.

Top of Page


Tank Fuel Generator

Tank Fuel Generator is a GENERATOR that executes at the YEAR level.

Tank Fuel Generator uses the following tables:


Tank Fuel Generator populates the following tables:


Tank Fuel Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/TankFuelGenerator.java

Steps

The Tank Fuel Generator algorithm is as follows.

Step: ethanolRVP = 2.3. weatheringConstant = 0.049.

Step: Find fuel formulations used by the fuel supply.
Inputs: FuelFormulation, FuelSubtype, FuelSupply, FuelType, RunSpecMonthGroup, RunSpecYear, Year
Outputs: TFGUsedFuelFormulation

Step: kGasoline=((-7e-7)*pow(ETOHVolume,3))+(0.0002*pow(ETOHVolume,2))+(0.0024*ETOHVolume)+1.0. kEthanol=(case when ETOHVolume>0 then (46.321*pow(ETOHVolume,-0.8422)) else 1000.0 end).
Inputs: FuelFormulation
Outputs: TFGUsedFuelFormulation

Step: gasPortionRVP=(RVP-kEthanol*ETOHVolume/100.0* ethanolRVP )/(kGasoline*(100.0-ETOHVolume)/100.0).
Inputs: FuelFormulation
Outputs: TFGUsedFuelFormulation

Step: linearAverageRVP=sum(RVP*marketShare)/sum(marketShare). tankAverageETOHVolume=sum(ETOHVolume*marketShare)/sum(marketShare). averageGasPortionRVP=sum(gasPortionRVP*marketShare)/sum(marketShare).
Inputs: FuelFormulation, FuelSupply, RunSpecYear, TFGUsedFuelFormulation, Year
Outputs: TFGFuelSupplyAverage

Step: gasoholMarketShare=sum(marketShare).
Conditions: 4 <= ETOHVolume <= 20
Inputs: FuelFormulation, FuelSupply, RunSpecYear, TFGUsedFuelFormulation, Year
Outputs: TFGTemp

Step: Copy gasoholMarketShare to TFGFuelSupplyAverage.
Inputs: TFGTemp
Outputs: TFGFuelSupplyAverage

Step: averageKGasoline=((-7e-7)*pow(tankAverageETOHVolume,3))+(0.0002*pow(tankAverageETOHVolume,2))+(0.0024*tankAverageETOHVolume)+1. averageKEthanol=(case when tankAverageETOHVolume > 0 then (46.321*pow(tankAverageETOHVolume,-0.8422)).
Outputs: TFGFuelSupplyAverage

Step: noWeatheringReddyRVP= averageKGasoline* (100.0- tankAverageETOHVolume)/100.0 * averageGasPortionRVP + averageKEthanol * tankAverageETOHVolume/100.0 * ethanolRVP.
Outputs: TFGFuelSupplyAverage

Step: Find zone temperature extremes. zoneMin=min(temperature). zoneMax=max(temperature).
Inputs: MonthOfAnyYear, RunSpecMonth, Zone, ZoneMonthHour
Outputs: TFGZone

Step: zoneEvapTemp = (case when ((zoneMax < 40) or (zoneMax-zoneMin <= 0)) then (zoneMin+zoneMax)/2.0 else -1.7474+1.029*zoneMin+0.99202*(zoneMax-zoneMin)-0.0025173*zoneMin*(zoneMax-zoneMin) end).
Outputs: TFGZone

Step: ratioGasolineRVPLoss=greatest(0, (-2.4908+0.026196*zoneEvapTemp+0.00076898*zoneEvapTemp*averageGasPortionRVP) / (-0.0860+0.070592*averageGasPortionRVP) ).
Inputs: TFGFuelSupplyAverage, TFGZone
Outputs: TFGZoneFuel

Step: weatheredGasPortionRVP=averageGasPortionRVP*(1.0-ratioGasolineRVPLoss*weatheringConstant).
Inputs: TFGFuelSupplyAverage
Outputs: TFGZoneFuel

Step: weatheredReddyRVP= averageKGasoline*(100.0-tankAverageETOHVolume)/100.0*weatheredGasPortionRVP + averageKEthanol*tankAverageETOHVolume/100.0*ethanolRVP.
Inputs: TFGFuelSupplyAverage
Outputs: TFGZoneFuel

Step: commingledRVP=linearAverageRVP*(case when gasoholMarketShare >= 1.0 then 1.000 when gasoholMarketShare >= 0.9 then 1.018 when gasoholMarketShare >= 0.8 then 1.027 when gasoholMarketShare >= 0.7 then 1.034 when gasoholMarketShare >= 0.6 then 1.038 when gasoholMarketShare >= 0.5 then 1.040 when gasoholMarketShare >= 0.4 then 1.039 when gasoholMarketShare >= 0.3 then 1.035 when gasoholMarketShare >= 0.2 then 1.028 when gasoholMarketShare >= 0.1 then 1.016 else 1.000" end).
Outputs: TFGFuelSupplyAverage

Step: ETOHVolume=tankAverageETOHVolume. RVP=(weatheredReddyRVP*commingledRVP)/noWeatheringReddyRVP.
Inputs: TFGFuelSupplyAverage, TFGZoneFuel
Outputs: AverageTankGasoline

Top of Page


Tank Temperature Generator

Tank Temperature Generator is a GENERATOR that executes at the ZONE level.

Tank Temperature Generator uses the following tables:


Tank Temperature Generator populates the following tables:


Tank Temperature Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/TankTemperatureGenerator.java

Steps

The Tank Temperature Generator algorithm is as follows.

Step: Obtain the required set of vehID and tankTemperatureGroupID combinations.
Inputs: SampleVehicleDay, SourceTypeModelYearGroup
Outputs: TempVehAndTTG

Step: Calculate temperatures in quarter hour increments using linear interpolation. quarterHourTemperature[hourID,timeStep] = temperature[hourID=h-1] + ((timeStep-1) * 0.25 * (temperature[hourID=h] - temperature[hourID=h-1])) for timeSteps 1-4.
Inputs: ZoneMonthHour for hour h, ZoneMonthHour for hour h-1 (or hour 24 if h is the hour 1)
Outputs: QuarterHourTemperature

Step: firstQuarterHourTankTemperature[monthID]=quarterHourTemperature[hourID=1,monthID,timeStep=1].
Inputs: QuarterHourTemperature

Step: sumTempDelta=0
Conditions: Resets to 0 for each monthID.

Step: Calculate quarter hour tank temperature from the quarter hour ambient temperature. quarterHourTankTemperature = 1.4*sumTempDelta + firstQuarterHourTankTemperature. tempDelta = quarterHourTemperature - quarterHourTankTemperature. sumTempDelta = sumTempDelta + tempDelta.
Conditions: for each hour and quarter hour time step of the current month, in temporal sequence
Inputs: QuarterHourTemperature
Outputs: QuarterHourTankTemperature

Step: coldSoakTankTemperature[zoneID,monthID,hourID]=quarterHourTankTemperature[zoneID,monthID,hourID,timeStep=1].
Inputs: QuarterHourTankTemperature
Outputs: ColdSoakTankTemperature

Step: coldSoakTankTemperature[zoneID,monthID,hourID]=quarterHourTankTemperature[zoneID,monthID,hourID,timeStep=1].
Conditions: QuarterHourTankTemperature has been populated
Inputs: QuarterHourTankTemperature
Outputs: TempColdSoakTankTemperature

Step: Copy ColdSoakTankTemperature to TempColdSoakTankTemperature.
Conditions: QuarterHourTankTemperature has not been populated
Inputs: ColdSoakTankTemperature
Outputs: TempColdSoakTankTemperature

Step: Flag all trips by default as Normal (tripType=N). Subsequent steps may alter this designation.
Outputs: SampleVehicleTrip

Step: Flag marker trips. tripType=M.
Conditions: keyOnTime is null and priorTripID is null
Outputs: SampleVehicleTrip

Step: Copy marker trips from SampleVehicleTrip to MarkerTrip.
Inputs: SampleVehicleTrip
Outputs: MarkerTrip

Step: Identify trips as the first trip of a day. tripType = F. priorTripID = NULL.
Conditions: Trips having a prior trip that is a marker trip.
Inputs: MarkerTrip
Outputs: SampleVehicleTrip

Step: Identify more trips as the first trip of a day. tripType = F.
Conditions: priorTripID is null and keyOnTime is not null (i.e. there is no prior trip and the vehicle was started during this trip) and the trip is still considered a Normal trip (tripType=N)
Outputs: SampleVehicleTrip

Step: vehicleCount = count(*) for each source type and day.
Inputs: sampleVehicleDay
Outputs: TTGeTemp

Step: eMinutes = 60*vehicleCount.
Inputs: HourDay, runSpecHourDay, runSpecMonth, TTGeTemp
Outputs: TTGeMinutes

Step: EndOfHour = (FLOOR(keyOnTime/60)+1)*60.
Conditions: tripType <> M (i.e. don't include marker trips)
Inputs: HourDay, SampleVehicleDay, SampleVehicleTrip
Outputs: list of trip data in memory

Step: Split trips into individual hours. startOfTrip = 1 for the first hour of the trip, 0 otherwise. endOfTrip = 1 when keyOffTime <= endOfHour, 0 otherwise.
Inputs: list of trip data in memory
Outputs: SampleVehicleTripByHour

Step: Find all hours in which a trip ends.
Conditions: endOfTrip=1
Inputs: SampleVehicleTripByHour
Outputs: list of trip end hours in memory

Step: hotSoakBegin = keyOffTime of each trip end.
Inputs: list of trip end hours in memory

Step: Get keyOnTime for the first hour of each trip's subsequent trip.
Inputs: SampleVehcileTripByHour
Outputs: keyOnTime for the current trip's first hour

Step: hotSoakEnd = min(endOfHour, nextKeyOnTime) when there is a next trip, endOfHour otherwise.

Step: Record each hot soaking event from hotSoakBegin to hotSoakEnd.
Outputs: HotSoakEventByHour

Step: Collect the list of tank temperature data sets to be iterated.
Inputs: SampleVehicleTripByHour, TankTemperatureRise, TempColdSoakTankTemperature, TempVehAndTTG
Outputs: list of tank temperature data sets to be iterated

Step: Calculate operating temperatures. keyOnTemp = coldSoakTankTemperature when starting a trip and a prior trip exists and it known that hot soaking has already ended. keyOnTemp = tank temperature when the the trip started when starting a trip and a prior trip exists and hot soaking is not already ended. keyOnTemp = coldSoakTankTemperature when starting a trip and no prior trip exists. keyOnTemp = keyOffTemp when a trip is continued into a new hour. keyOffTemp = keyOnTemp + ((tankTemperatureRiseTermA+tankTemperatureRiseTermB*(95.0-keyOnTemp))/1.2)*((keyOffTime-keyOnTime)/60.0). keyOffTemp = 140 when keyOffTemp > 140, limiting keyOffTemp to 140 degrees Fahrenheit.
Inputs: current item from the list of tank temperature data sets to be iterated
Outputs: OperatingTemperature

Step: Get the hot soak events beginning at the end of the current trip.
Inputs: HotSoakEventByHour, HourDay
Outputs: list of hot soak events

Step: Setup hot soak variables for the current vehicle, day, and trip. tempDeltaSum = 0. initialTankTemperature = keyOffTemp.

Step: Get the ambient temperature and coldSoakTankTemperature for the current month, zone, hour, and day.
Inputs: HourDay, TempColdSoakTankTemperature, ZoneMonthHour

Step: Generate the minute-by-minute hot soak temperatures. soakTankTemperature = 1.4*tempDeltaSum/60 + initialTankTemperature. tempDelta = temperature - soakTankTemperature. tempDeltaSum = tempDeltaSum + tempDelta. opModeID = 150 (hot soaking) when soakTankTemperature > coldSoakTankTemperature + 3, 151 (cold soaking) otherwise. When opModeID=151 (cold soaking), set soakTankTemperature=-1000 and do not record the hot soak minute or any others.
Conditions: each minute from hotSoakBegin, inclusive, to hotSoakEnd, exclusive.
Outputs: HotSoakTemperature

Step: Find AverageTankTemperature entries provided by the user as these should not be replaced with calculated values.
Inputs: AverageTankTemperature
Outputs: AverageTankTemperatureKeys

Step: Find all unique combinations of monthID, hourDayID, tankTemperatureGroupID in the operating temperature table.
Inputs: OperatingTemperature
Outputs: TempOperatingTemperatureSummary

Step: averageTankTemperature[opModeID=151 cold soaking]=coldSoakTankTemperature.
Conditions: No matching entries in AverageTankTemperatureKeys
Inputs: AverageTankTemperatureKeys, HourDay, TempColdSoakTankTemperature, TempOperatingTemperatureSummary
Outputs: AverageTankTemperature

Step: averageTankTemperature[opModeID=300 all running]=SUM((keyOffTime-keyOnTime)*(keyOnTemp+keyOffTemp)/2.0)/SUM(keyOffTime-keyOnTime).
Conditions: No matching entries in AverageTankTemperatureKeys
Inputs: AverageTankTemperatureKeys, OperatingTemperature
Outputs: AverageTankTemperature

Step: averageTankTemperature[opModeID=150 hot soaking]=average(soakTankTemp).
Conditions: No matching entries in AverageTankTemperatureKeys
Inputs: AverageTankTemperatureKeys, HotSoakTemperature
Outputs: AverageTankTemperature

Step: soakActivityFraction[opModeID=150 hot soaking]=hotSoakOpModeCount / (eMinutes - oMinutes).
Inputs: HotSoakOpModeCount, SoakActivityFractionKeys, TTGeMinutes, TTGoMinutes
Outputs: SoakActivityFraction

Step: soakActivityFraction[opModeID=151 cold soaking]=(eMinutes-oMinutes-hotSoakOpModeCount) / (eMinutes - oMinutes).
Inputs: HotSoakOpModeCount, SoakActivityFractionKeys, TTGeMinutes, TTGoMinutes
Outputs: SoakActivityFraction

Step: Read TempVehAndTTG into memory.
Inputs: TempVehAndTTG
Outputs: list of vehID, tankTemperatureGroupID in memory

Step: Read SampleVehicleTripByHour into memory.
Inputs: SampleVehicleTripByHour
Outputs: list of vehID, hourDayID, keyOnTime, keyOffTime in memory

Step: Read hot soak vehID, hourDayID, hotSoakTime, tankTemperatureGroupID, monthID combinations into memory.
Inputs: HotSoakTemperature
Outputs: list of objects in memory

Step: minutesColdSoakStartingFromInitialHour = modulus(keyOnTime,60). minutesColdSoakStartingInCurrentHour = 60 - minutesColdSoakStartingFromInitialHour - sum(KeyOffTime - KeyOnTime). minutesColdSoakStartingInCurrentHour -= hotSoakCount[monthID][tankTemperatureGroupID].
Conditions: Vehicle trip record

Step: minutesColdSoakStartingFromInitialHour = 0. minutesColdSoakStartingInCurrentHour = 60. minutesColdSoakStartingInCurrentHour -= hotSoakCount[monthID][tankTemperatureGroupID]. minutesColdSoakStartingInCurrentHour -= sum(KeyOffTime - KeyOnTime).
Conditions: Hot soak minute

Step: coldSoakMinutes[sourceTypeID][monthID][hourID][initialHourID] += minutesColdSoakStartingFromInitialHour. coldSoakMinutes[sourceTypeID][monthID][hourID][hourID] += minutesColdSoakStartingInCurrentHour. coldSoakMinutesSum[sourceTypeID][monthID][hourID] += minutesColdSoakStartingFromInitialHour + minutesColdSoakStartingInCurrentHour.

Step: coldSoakInitialHourFraction = coldSoakMinutes / coldSoakMinutesSum.
Outputs: ColdSoakInitialHourFraction

Top of Page


Tank Vapor Venting Calculator

Tank Vapor Venting Calculator is a CALCULATOR that executes at the MONTH level.

The Tank Vapor Venting Calculator is responsible for:

  • Evap Fuel Vapor Venting (12) Total Gaseous Hydrocarbons (1)


The Tank Vapor Venting Calculator output is used by:


Tank Vapor Venting Calculator uses the following tables:


Tank Vapor Venting Calculator is expressed in these source code files:

  • /database/MultidayTankVaporVentingCalculator.sql
  • /gov/epa/otaq/moves/master/implementation/ghg/TankVaporVentingCalculator.java

Steps

The Tank Vapor Venting Calculator algorithm is as follows.

Step: totalVehicles = count(dayID, sourceTypeID) from sampleVehicleDay.
Conditions: First bundle only.
Inputs: samplevehicleday
Outputs: samplevehiclecount

Step: vehiclesNeverStarted = count(dayID, sourceTypeID) from sampleVehicleDay without any corresponding entry in sampleVehicleTrip.
Conditions: First bundle only.
Inputs: samplevehicleday, samplevehicletrip
Outputs: samplevehicleneverstarted

Step: fractionNeverStarted[dayID,sourceTypeID] = vehiclesNeverStarted/totalVehicles.
Conditions: First bundle only.
Outputs: samplevehiclecount, samplevehicleneverstarted

Step: hour of first start[vehID,dayID,sourceTypeID] = min(SampleVehicleTrip.hourID).
Conditions: First bundle only.
Inputs: samplevehicleday, samplevehicletrip
Outputs: samplevehiclefirststart

Step: In each day and hour, count the number of vehicles that start for the first time. vehiclesFirstStarted[dayID,sourceTypeID,hourID] = count(dayID,sourceTypeID,hourID) by hour of first start.
Conditions: First bundle only.
Inputs: samplevehiclefirststart
Outputs: samplevehiclesoaktemp

Step: In each day and hour, sum the number of vehicles that have started up to then. totalVehiclesStarted[dayID,sourceTypeID,hourID]=sum(vehiclesFirstStarted) for all hours up to hourID.
Conditions: First bundle only.
Inputs: hourofanyday, samplevehiclesoaktemp
Outputs: samplevehiclesoaktemp2

Step: Obtain the fraction of vehicles soaking, awaiting their first start, for each day and hour. soakFraction[soakDayID=0,sourceTypeID,dayID,hourID]=(totalVehicles-totalVehiclesStarted)/totalVehicles.
Conditions: First bundle only.
Inputs: samplevehiclecount, samplevehiclesoaktemp2
Outputs: samplevehiclesoaking

Step: Assume a default soakFraction of 1 for any day and hour that has no vehicles started previously.
Conditions: First bundle only.
Inputs: hourofanyday, samplevehiclesoaktemp
Outputs: samplevehiclesoaking

Step: dayF[soakDayID=1,sourceTypeID,dayID]=soakFraction[soakDayID=0,sourceTypeID,dayID,hourID=24]
Conditions: First bundle only.
Inputs: samplevehiclesoaking
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=1,sourceTypeID,dayID]=dayF[soakDayID=1,sourceTypeID,dayID]. GammaFn1[soakDayID=1,sourceTypeID,dayID]=dayF[soakDayID=1,sourceTypeID,dayID]. GammaFn[soakDayID=1,sourceTypeID,dayID]=dayF[soakDayID=1,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=2,sourceTypeID,dayID]=greatest(dayF[soakDayID=1,sourceTypeID,dayID], basisF[soakDayID=2,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=2,sourceTypeID,dayID]=dayF[soakDayID=2,sourceTypeID,dayID]. GammaFn1[soakDayID=2,sourceTypeID,dayID]=GammaFn[soakDayID=1,sourceTypeID,dayID]. GammaFn[soakDayID=2,sourceTypeID,dayID]=dayF[soakDayID=2,sourceTypeID,dayID] * GammaFn[soakDayID=1,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=3,sourceTypeID,dayID]=greatest(dayF[soakDayID=2,sourceTypeID,dayID], basisF[soakDayID=3,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=3,sourceTypeID,dayID]=dayF[soakDayID=3,sourceTypeID,dayID]. GammaFn1[soakDayID=3,sourceTypeID,dayID]=GammaFn[soakDayID=2,sourceTypeID,dayID]. GammaFn[soakDayID=3,sourceTypeID,dayID]=dayF[soakDayID=3,sourceTypeID,dayID] * GammaFn[soakDayID=2,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=4,sourceTypeID,dayID]=greatest(dayF[soakDayID=3,sourceTypeID,dayID], basisF[soakDayID=4,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=4,sourceTypeID,dayID]=dayF[soakDayID=4,sourceTypeID,dayID]. GammaFn1[soakDayID=4,sourceTypeID,dayID]=GammaFn[soakDayID=3,sourceTypeID,dayID]. GammaFn[soakDayID=4,sourceTypeID,dayID]=dayF[soakDayID=4,sourceTypeID,dayID] * GammaFn[soakDayID=3,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: dayF[soakDayID=5,sourceTypeID,dayID]=greatest(dayF[soakDayID=4,sourceTypeID,dayID], basisF[soakDayID=5,dayID]).
Conditions: First bundle only.
Inputs: samplevehiclesoakingdaybasis
Outputs: samplevehiclesoakingday

Step: soakF[soakDayID=5,sourceTypeID,dayID]=dayF[soakDayID=5,sourceTypeID,dayID]. GammaFn1[soakDayID=5,sourceTypeID,dayID]=GammaFn[soakDayID=4,sourceTypeID,dayID]. GammaFn[soakDayID=5,sourceTypeID,dayID]=dayF[soakDayID=5,sourceTypeID,dayID] * GammaFn[soakDayID=4,sourceTypeID,dayID].
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingf

Step: nextF[soakDayID,sourceTypeID,dayID]=soakF[soakDayID+1,sourceTypeID,dayID].
Conditions: First bundle only.
Outputs: samplevehiclesoakingf, samplevehiclesoakingf2

Step: P[n,1] = 1 for each soaking day
Conditions: First bundle only.
Inputs: samplevehiclesoakingday
Outputs: samplevehiclesoakingproportion

Step: D[5,1] = Gamma[F4]
Conditions: First bundle only.
Inputs: samplevehiclesoakingf
Outputs: samplevehiclesoaking

Step: D[5,24] = Gamma[F5], for soakday 5
Conditions: First bundle only.
Inputs: samplevehiclesoakingf
Outputs: samplevehiclesoaking

Step: D[n,24] = Gamma[Fn] * (1-F[n+1]), for soakdays 1-4
Conditions: First bundle only.
Inputs: samplevehiclesoakingf
Outputs: samplevehiclesoaking

Step: D[1,1] = D1-D24 for soakday 1
Conditions: First bundle only.
Outputs: samplevehiclesoaking

Step: D[n,1] = D[n-1,24] for soakday 2,3,4
Conditions: First bundle only.
Outputs: samplevehiclesoaking

Step: P[n,24]=D[n,24]/D[n,1]
Conditions: First bundle only.
Inputs: samplevehiclesoaking
Outputs: samplevehiclesoakingproportion

Step: Precalc[h] = (D[0,h]-D[0,24]) / (D[0,1]-D[0,24]) because it is used in P[n,1 < h < 24]
Conditions: First bundle only.
Inputs: samplevehiclesoaking
Outputs: samplevehiclesoakingdh

Step: Store P[n,1] for each day alongside P[n,24] since they are used together
Conditions: First bundle only.
Outputs: samplevehiclesoakingf, samplevehiclesoakingproportion

Step: P[n,h]=Precalc[h]*(P[n,1]-P[n,24]) + P[n,24] for 1 <= n <= 5, 1 < h < 24
Conditions: First bundle only.
Inputs: samplevehiclesoakingdh
Outputs: samplevehiclesoakingproportion

Step: D[n,h] = D[n,1]*P[n,h] for 1 <= n <= 5, 1 < h < 24
Conditions: First bundle only.
Inputs: samplevehiclesoakingproportion
Outputs: samplevehiclesoaking

Step: Index by hourID to speedup later joins.
Inputs: ColdSoakTankTemperature
Outputs: coldsoaktanktemperature

Step: Include soakDayID in ColdSoakInitialHourFraction.
Inputs: ColdSoakInitialHourFraction
Outputs: coldsoakinitialhourfraction

Step: Disaggregate IMCoverage records, expanding model year ranges into individual model years. IMAdjustFract[processID,pollutantID,modelYearID,fuelTypeID,sourceTypeID]=IMFactor*complianceFactor*0.01.
Inputs: agecategory, imcoverage, imfactor, pollutantprocessassoc, pollutantprocessmappedmodelyear
Outputs: imcoveragemergedungrouped

Step: Compute peakHourID by monthID. The maximum value of the expression is found. This finds the maximum temperature and the earliest time of day in which the temperature occurs, storing both as a single number.
Inputs: coldsoaktanktemperature
Outputs: peakhourofcoldsoak

Step: Calculate tankVaporGenerated for high and low altitudes. The time spans t1 (based upon ColdSoakInitialHourFraction.initialHourDayID) to t2 (based upon ColdSoakInitialHourFraction.hourDayID). tankVaporGenerated[high and low altitudes] = (tankSize*(1-tankFillFraction))*(tvgTermA*exp(tvgTermB*RVP)*(exp(tvgTermC*t2.coldSoakTankTemperature)-exp(tvgTermC*t1.coldSoakTankTemperature)))
Conditions: t1.coldSoakTankTemperature < t2.coldSoakTankTemperature, 0 otherwise.
Inputs: averagetankgasoline, coldsoakinitialhourfraction, coldsoaktanktemperature, hourday, monthofanyyear, peakhourofcoldsoak, stmytvvcoeffs, tankvaporgencoeffs
Outputs: tankvaporgeneratedhighandlow

Step: Interpolate tankVaporGenerated based upon the county's barometric pressure. Don't allow negative values. Low altitude is based upon Wayne County, Michigan (26163) with a barometric pressure of 29.069. High altitude is based upon Denver County, Colorado (8031) with a barometric pressure of 24.087. tankVaporGenerated = greatest(((barometricPressure - 29.069) / (24.087 - 29.069)) * (high.tankVaporGenerated - low.tankVaporGenerated) + low.tankVaporGenerated,0).
Inputs: county, tankvaporgeneratedhighandlow
Outputs: tankvaporgenerated

Step: Calculated the ethanol weighted TVG using tankVaporGenerated for E10 fuel (t10) and that of E0 fuel (t0). ethanolWeightedTVG=(t10.tankVaporGenerated*(least(10.0,ETOHVolume)/10.0)+t0.tankVaporGenerated*(1.0-least(10.0,ETOHVolume)/10.0)).
Inputs: averagetankgasoline, monthofanyyear, tankvaporgenerated
Outputs: ethanolweightedtvgtemp

Step: Until now, ethanolWeightedTVG has been a cumulative total. Convert it to an hourly increment by subtracting the total of the previous hour. ethanolWeightedTVG[hourID]=ethanolWeightedTVG[hourID]-ethanolWeightedTVG[hourID-1].
Inputs: ethanolweightedtvgtemp
Outputs: ethanolweightedtvg

Step: tvgSumIH = Sum of TVG hourly from initial hour I to hour H
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsumih

Step: tvgSumI24 = Sum of TVG hourly from initial hour I to the last hour of the day
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsumi24

Step: tvgSum1H = Sum of TVG hourly from the first hour of the day to hour H
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsum1h

Step: tvgSumH24 = Sum of TVG hourly from after hour H to the last hour of the day
Inputs: ethanolweightedtvg, hourday
Outputs: tvgsumh24

Step: TVGdaily[soakDayID=1] = tvgSumIH. Xn[soakDayID=1] = tvgSumIH.
Inputs: ethanolweightedtvg, tvgsum1h, tvgsumh24, tvgsumih
Outputs: tvg

Step: TVGdaily[soakDayID=2] = TVGdaily[soakDayID=1]. Xn[soakDayID=2] = ((1-backPurgeFactor)*least(tvgSumI24,averageCanisterCapacity))+tvgSum1H.
Inputs: tvgsumi24
Outputs: tvg

Step: TVGdaily[soakDayID>2] = TVGdaily[soakDayID-1]. Xn[soakDayID>2] = ((1-backPurgeFactor)*least(Xn[soakDayID-1] + tvgSumH24,averageCanisterCapacity))+tvgSum1H.
Outputs: tvg

Step: Include leaking using database-driven TVV and Leak equations. tankVaporVented = (1-leakFraction)*(TVV equation) + leakFraction*(Leak equation). tankVaporVentedIM = (1-leakFractionIM)*(TVV equation) + leakFractionIM*(Leak equation).
Inputs: agecategory, hourday, stmytvvequations, tvg
Outputs: cummulativetankvaporvented

Step: unweightedHourlyTVV = tankVaporVented[hourID] - tankVaporVented[hourID-1]. unweightedHourlyTVVIM = tankVaporVentedIM[hourID] - tankVaporVentedIM[hourID-1].
Conditions: only when coldSoakTankTemperature[hourID] > coldSoakTankTemperature[hourID-1], 0 otherwise.
Inputs: coldsoaktanktemperature, cummulativetankvaporvented
Outputs: unweightedhourlytvv

Step: Add coldSoakInitialHourFraction entries for soaking days beyond the first day
Inputs: hourday, samplevehiclesoaking
Outputs: coldsoakinitialhourfraction

Step: hourlyTVV = unweightedHourlyTVV * coldSoakInitialHourFraction. hourlyTVVIM = unweightedHourlyTVVIM * coldSoakInitialHourFraction.
Inputs: coldsoakinitialhourfraction, unweightedhourlytvv
Outputs: hourlytvvtemp

Step: hourlyTVV = sum(hourlyTVV). hourlyTVVIM = sum(hourlyTVVIM).
Inputs: hourlytvvtemp
Outputs: hourlytvv

Step: Reduce TVV emissions for hours past the hour with the peak temperature. hourlyTVV(with and without I/M) = hourlyTVV(with and without I/M) * (0 when >= 5 hours past the peak, 0.0005 when >= 4 hours, 0.0040 when >= 3 hours, 0.0100 when >= 2 hours, 0.0200 when >= 1 hour, 1.0 otherwise).
Inputs: copyofhourlytvv, hourday, peakhourofcoldsoak
Outputs: hourlytvv

Step: THC rate[opModeID=151 cold soak]=sum(sourceBinActivityFraction * hourlyTVV). THC I/M rate[opModeID=151 cold soak]=sum(sourceBinActivityFraction * hourlyTVVIM).
Inputs: fueltype, hourlytvv, pollutantprocessmodelyear, sourcebin, sourcebindistribution, sourcetypemodelyear
Outputs: weightedmeanbaserate

Step: Find bounds on RVP-based operating and hot soak adjustments (opModeIDs 300 and 150).
Inputs: evaprvptemperatureadjustment
Outputs: evaprvptemperatureadjustmentsummary

Step: Linearly interpolate RVP adjustment terms for each entry in averageTankGasoline, where lowAdj is the evapRVPTemperatureAdjustment record such that lowAdj.RVP <= averageTankGasoline.RVP and highAdj is similar with highAdj.RVP > averageTankGasoline.RVP. adjustTerm3 = lowAdj.adjustTerm3 + (highAdj.adjustTerm3 - lowAdj.adjustTerm3)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP)). adjustTerm2 = lowAdj.adjustTerm2 + (highAdj.adjustTerm2 - lowAdj.adjustTerm2)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP). adjustTerm1 = lowAdj.adjustTerm1 + (highAdj.adjustTerm1 - lowAdj.adjustTerm1)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP). adjustConstant = lowAdj.adjustConstant + (highAdj.adjustConstant - lowAdj.adjustConstant)/(highAdj.RVP - lowAdj.RVP) * (atg.RVP - lowAdj.RVP).
Inputs: evaprvptemperatureadjustment, tempatg
Outputs: averagetankgasoline

Step: Adjust hot soak (opModeID 150) and running (opModeID 300) by temperature and RVP effects. tempAdjustment[opModeID=300]= (tempAdjustTerm3*power(greatest(temperature,40.0),3) + tempAdjustTerm2*power(greatest(temperature,40.0),2) + tempAdjustTerm1*greatest(temperature,40.0) + tempAdjustConstant). tempAdjustment[opModeID=150]=1. rvpAdjustment[opModeID=300]=1 for temperature < 40F, otherwise for temperature >= 40F: (adjustTerm3*power(temperature,3) + adjustTerm2*power(temperature,2) + adjustTerm1*temperature + adjustConstant). rvpAdjustment[opModeID=150]=1. weightedMeanBaseRate=sum(sourceBinActivityFraction*meanBaseRate)*rvpAdjustment*tempAdjustment. weightedMeanBaseRateIM=sum(sourceBinActivityFraction*meanBaseRateIM)*rvpAdjustment*tempAdjustment.
Conditions: Only Gasoline (1) and Ethanol (5) fuel types, all others have no adjustments in this step.
Inputs: agecategory, averagetankgasoline, emissionratebyage, evaptemperatureadjustment, fueltype, hourday, pollutantprocessmodelyear, runspechourday, runspecsourcetype, sourcebin, sourcebindistribution, sourcetypemodelyear, zonemonthhour
Outputs: weightedmeanbaserate

Step: Combine cold soaking (opModeID=151), hot soaking (150), and running (300) evaporative emissions. THC=weightedMeanBaseRate*sourceHours*opModeFraction. THC I/M=weightedMeanBaseRateIM*sourceHours*opModeFraction.
Inputs: hourday, opmodedistribution, pollutantprocessassoc, sourcehours, weightedmeanbaserate
Outputs: movesworkeroutput

Step: Apply I/M programs to the aggregat combination of cold soak, hot soaking, and running evap. THC=THC I/M*IMAdjustFract + THC*(1-IMAdjustFract).
Outputs: imcoveragemergedungrouped, movesworkeroutput
 

Top of Page


Total Activity Generator

Total Activity Generator is a GENERATOR that executes at the YEAR level.

Total Activity Generator uses the following tables:


Total Activity Generator populates the following tables:


Total Activity Generator is expressed in these source code files:

  • /gov/epa/otaq/moves/master/implementation/ghg/TotalActivityGenerator.java

Steps

The Total Activity Generator algorithm is as follows.

Step: baseYear = max(year) where year <= analysisYear and year is a base year.
Inputs: year

Step: population = sourceTypePopulation * ageFraction.
Inputs: SourceTypeAgeDistribution, SourceTypeYear
Outputs: SourceTypeAgePopulation

Step: Grow the age 0 population. population[ageID=0,y] = (population[y-1]/migrationRate[y-1])*salesGrowthFactor[y]*migrationRate[y].
Inputs: SourceTypeAgePopulation for year y-1, SourceTypeYear for year y, SourceTypeYear for year y-1
Outputs: SourceTypeAgePopulation2

Step: Move the newly grown population to the main population table.
Inputs: SourceTypeAgePopulation2
Outputs: SourceTypeAgePopulation

Step: Grow the population for 1 <= ageID < 30. population[ageID,y] = population[y-1,ageID-1]*survivalRate[ageID]*migrationRate[y].
Inputs: SourceTypeAge, SourceTypeAgePopulation for year y-1, SourceTypeYear for year y
Outputs: SourceTypeAgePopulation2

Step: Grow the population ageID >= 30. population[ageID,y] = population[ageID=29,y-1]*survivalRate[ageID=29]*migrationRate[y] + population[ageID=30,y]*survivalRate[ageID=30]*migrationRate[y].
Inputs: sta SourceTypeAge for ageID=29, sta2 SourceTypeAge for ageID=30, stap SourceTypeAgePopulation for year y-1 and ageID=29, stap2 SourceTypeAgePopulation for year y and ageID=30, sty SourceTypeYear for year y
Outputs: SourceTypeAgePopulation2

Step: totalPopulation = sum(population).
Inputs: sourceTypeagePopulation
Outputs: sourceTypeAgePopulationTotal

Step: ageFraction = population/totalPopulation.
Inputs: sourceTypeAgePopulation, sourceTypeAgePopulationTotal
Outputs: sourceTypeAgeDistribution

Step: population[HPMSVTypeID] = sum(population[sourceTypeID]).
Inputs: SourceTypeAgePopulation, SourceUseType
Outputs: HPMSVTypePopulation

Step: FractionWithinHPMSVType = population[sourceTypeID]/population[HPMSVTypeID].
Inputs: HPMSVTypePopulation, SourceTypeAgePopulation, SourceUseType
Outputs: FractionWithinHPMSVType

Step: HPMSTravelFraction = sum(relativeMAR * FractionWithinHPMSVType).
Inputs: FractionWithinHPMSVType, SourceTypeAge, SourceUseType
Outputs: HPMSTravelFraction

Step: TravelFraction = (FractionWithinHPMSVType * relativeMAR) / HPMSTravelFraction.
Inputs: FractionWithinHPMSVType, HPMSTravelFraction, SourceTypeAge, SourceUseType
Outputs: TravelFraction

Step: totalTravelFraction(yearID,sourceTypeID) = Sum(TravelFraction).
Conditions: VMT provided by sourcetype not HPMSVType
Inputs: TravelFraction
Outputs: TravelFractionSourceTypeSum

Step: When VMT by source type has been provided, normalize TravelFraction by year and source type. normalized TravelFraction = TravelFraction / totalTravelFraction.
Conditions: VMT provided by sourcetype not HPMSVType
Inputs: TravelFractionSourceTypeSum
Outputs: TravelFraction

Step: VMT = HPMSBaseYearVMT.
Inputs: HPMSVTypeYear, RunSpecSourceType, SourceUseType
Outputs: AnalysisYearVMT

Step: Grow VMT one year. VMT[y] = VMT[y-1] * VMTGrowthFactor[y].
Inputs: AnalysisYearVMT for year y-1, HPMSVTypeYear for year y
Outputs: AnalysisYearVMT2

Step: Copy AnalysisYearVMT2 data into AnalysisYearVMT.
Inputs: AnalysisYearVMT2
Outputs: AnalysisYearVMT

Step: VMT = VMT * roadTypeVMTFraction * TravelFraction.
Conditions: VMT provided by HPMSVType
Inputs: AnalysisYearVMT, RoadType, RoadTypeDistribution, SourceUseType, TravelFraction
Outputs: AnnualVMTByAgeRoadway

Step: VMT = VMT * roadTypeVMTFraction * TravelFraction.
Conditions: VMT provided by source type
Inputs: RoadType, RoadTypeDistribution, SourceTypeYearVMT, TravelFraction
Outputs: AnnualVMTByAgeRoadway

Step: Append monthVMTFraction to AnnualVMTByAgeRoadway.
Inputs: AnnualVMTByAgeRoadway, MonthVMTFraction
Outputs: AvarMonth

Step: Append dayVMTFraction to AvarMonth.
Inputs: AvarMonth, DayVMTFraction
Outputs: AvarMonthDay

Step: Hourly VMT = Annual VMT * monthVMTFraction * dayVMTFraction * hourVMTFraction / weeksPerMonth.
Conditions: Annual VMT provided, either by HPMSVType or sourceTypeID
Inputs: AvarMonthDay, HourDay, HourVMTFraction
Outputs: VMTByAgeRoadwayHour

Step: Hourly VMT = Daily VMT * hourVMTFraction * roadTypeVMTFraction * TravelFraction * NumberOfRealDays.
Conditions: Daily VMT provided by sourceTypeID
Inputs: DayOfAnyWeek, HourDay, HourVMTFraction, RoadTypeDistribution, SourceTypeDayVMT, TravelFraction
Outputs: VMTByAgeRoadwayHour

Step: Hourly VMT = Daily VMT * hourVMTFraction * roadTypeVMTFraction * TravelFraction * NumberOfRealDays.
Conditions: Daily VMT provided by HPMSVType
Inputs: DayOfAnyWeek, HourDay, HourVMTFraction, HPMSVTypeDay, RoadTypeDistribution, SourceUseType, TravelFraction
Outputs: VMTByAgeRoadwayHour

Step: totalVMT = sum(VMT).
Inputs: vmtByAgeRoadwayHour
Outputs: vmtByMYRoadHourSummary

Step: Find VMT fraction by model year. vmtFraction = VMT/totalVMT.
Inputs: vmtByAgeRoadwayHour, vmtByMYRoadHourSummary
Outputs: vmtByMYRoadHourFraction

Step: Append dayID and hourID to SourceTypeHour.
Inputs: HourDay, SourceTypeHour
Outputs: SourceTypeHour2

Step: averageSpeed = sum(avgBinSpeed * avgSpeedFraction).
Inputs: AvgSpeedBin, AvgSpeedDistribution, HourDay, HourOfAnyDay, RoadType, RunSpecDay, RunSpecSourceType
Outputs: AverageSpeed

Step: SHO = VMT/averageSpeed where averageSpeed > 0, 0 otherwise.
Inputs: AverageSpeed, VMTByAgeRoadwayHour
Outputs: SHOByAgeRoadwayHour

Step: Find total VMT by day on Rural Restricted Access roads (roadTypeID=2) for Combination Long Haul Trucks (sourceTypeID=62). Daily VMT = sum(hourly VMT). hotellingHours = 0.
Inputs: VMTByAgeRoadwayHour
Outputs: VMTByAgeRoadwayDay

Step: hotellingHours = Daily VMT * hotellingRate.
Inputs: hotellingCalendarYear
Outputs: VMTByAgeRoadwayDay

Step: idleHours = hotellingHours * hotellingDist.
Inputs: SourceTypeHour2, VMTByAgeRoadwayDay
Outputs: IdleHoursByAgeHour

Step: Find the number of starts for each sample vehicle. starts = count(trips) * noOfRealDays.
Conditions: Ignore marker trips
Inputs: DayOfAnyWeek, HourDay, SampleVehicleDay, SampleVehicleTrip
Outputs: StartsPerSampleVehicle

Step: startsPerVehicle = starts / count(sample vehicles).
Inputs: SampleVehicleDay, StartsPerSampleVehicle
Outputs: StartsPerVehicle

Step: starts = population * startsPerVehicle.
Inputs: SourceTypeAgePopulation, StartsPerVehicle
Outputs: StartsByAgeHour

Step: SHP = (population*noOfRealDays) - SUM(sho).
Inputs: DayOfAnyWeek, ShoByAgeRoadwayHour, SourceTypeAgePopulation
Outputs: SHPByAgeHour

Step: Copy SHO for blended road types to corresponding ramp road types. No scaling is done here.
Outputs: SHOByAgeRoadwayHour

Step: Append SHOAllocFactor to link information.
Inputs: Link, ZoneRoadType
Outputs: ZoneRoadTypeLinkTemp

Step: SHO = SHO * averageSpeed * SHOAllocFactor.
Conditions: Rates
Inputs: AverageSpeed, LinkAverageSpeed, RunSpecHourDay, SHOByAgeRoadwayHour, ZoneRoadTypeLinkTemp
Outputs: SHO

Step: SHO = SHO * SHOAllocFactor.
Conditions: Inventory
Inputs: RunSpecHourDay, SHOByAgeRoadwayHour, ZoneRoadTypeLinkTemp
Outputs: SHO

Step: starts = starts * startAllocFactor.
Conditions: Inventory
Inputs: RunSpecMonth, StartsByAgeHour
Outputs: Starts

Step: extendedIdleHours = hotellingHours * opModeFraction[opModeID=200 extended idling].
Conditions: HotellingHours contains user-supplied hotelling information
Inputs: hotellingActivityDistribution, hotellingHours
Outputs: extendedIdleHours

Step: extendedIdleHours = idleHours * SHOAllocFactor * opModeFraction[opModeID=200 extended idling].
Inputs: hotellingActivityDistribution, HourDay, IdleHoursByAgeHour, runSpecHourDay, ZoneRoadType
Outputs: extendedIdleHours

Step: SHP = SHP * SHPAllocFactor.
Inputs: RunSpecHourDay, SHPByAgeHour, Zone
Outputs: SHP

Step: sourceHours = SHP.
Inputs: Link, SHP
Outputs: SourceHours

Step: sourceHours = SHO.
Inputs: SHO
Outputs: SourceHours

Step: distance = SHO * averageSpeed.
Conditions: Rates
Inputs: LinkAverageSpeed
Outputs: SHO

Step: Append link and SHO information.
Conditions: Inventory
Inputs: Link, SHO
Outputs: SHOTemp

Step: Append AverageSpeed and HourDay information.
Conditions: Inventory
Inputs: AverageSpeed, HourDay
Outputs: AverageSpeedTemp

Step: distance = SHO * averageSpeed.
Conditions: Inventory
Inputs: AverageSpeedTemp, SHOTemp
Outputs: SHO2

Step: Remove all items from the SHO table.
Conditions: Inventory
Outputs: SHO

Step: Copy the SHO2 information, which now includes distance, to the SHO table.
Conditions: Inventory
Inputs: SHO2
Outputs: SHO
 

Top of Page


AgeCategory table

CREATE TABLE agecategory (
  ageID smallint(6) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  ageCategoryName char(50) DEFAULT NULL,
  PRIMARY KEY (ageID),
  KEY ageGroupID (ageGroupID,ageID),
  KEY ageID (ageID,ageGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AgeCategory is used by these modules:

Top of Page


AgeGroup table

CREATE TABLE agegroup (
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  ageGroupName char(50) DEFAULT NULL,
  PRIMARY KEY (ageGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


ATBaseEmissions table

CREATE TABLE atbaseemissions (
  polProcessID int(11) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  atBaseEmissions float NOT NULL DEFAULT '0',
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATBaseEmissions is used by these modules:

Top of Page


ATRatio table

CREATE TABLE atratio (
  fuelTypeID smallint(6) NOT NULL,
  fuelFormulationID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  ageID smallint(6) NOT NULL,
  monthGroupID smallint(6) NOT NULL,
  atRatio double DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,fuelFormulationID,polProcessID,minModelYearID,maxModelYearID,ageID,monthGroupID),
  KEY atratio_key1 (fuelFormulationID,polProcessID,minModelYearID),
  KEY atratio_key2 (polProcessID,fuelTypeID,monthGroupID,minModelYearID,ageID,maxModelYearID,fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATRatio is used by these modules:

Top of Page


ATRatioGas2 table

CREATE TABLE atratiogas2 (
  polProcessID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  ATRatio float DEFAULT NULL,
  ATRatioCV float DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATRatioGas2 is used by these modules:

Top of Page


ATRatioNonGas table

CREATE TABLE atrationongas (
  polProcessID int(11) NOT NULL DEFAULT '0',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ATRatio double DEFAULT NULL,
  ATRatioCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelSubtypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ATRatioNonGas is used by these modules:

Top of Page


AverageTankGasoline table

CREATE TABLE averagetankgasoline (
  zoneID int(11) NOT NULL DEFAULT '0',
  fuelYearID int(11) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  ETOHVolume float DEFAULT NULL,
  RVP float DEFAULT NULL,
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (zoneID,fuelTypeID,fuelYearID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AverageTankGasoline is used by these modules:

Top of Page


AverageTankTemperature table

CREATE TABLE averagetanktemperature (
  tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  averageTankTemperature float DEFAULT NULL,
  averageTankTemperatureCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (tankTemperatureGroupID,zoneID,monthID,hourDayID,opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AverageTankTemperature is used by these modules:

Top of Page


avft table

CREATE TABLE avft (
  sourceTypeID smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  engTechID smallint(6) NOT NULL,
  fuelEngFraction double NOT NULL,
  PRIMARY KEY (sourceTypeID,modelYearID,fuelTypeID,engTechID),
  KEY sourceTypeID (sourceTypeID),
  KEY modelYearID (modelYearID),
  KEY fuelTypeID (fuelTypeID),
  KEY engTechID (engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


AvgSpeedBin table

CREATE TABLE avgspeedbin (
  avgSpeedBinID smallint(6) NOT NULL DEFAULT '0',
  avgBinSpeed float DEFAULT NULL,
  avgSpeedBinDesc char(50) DEFAULT NULL,
  opModeIDTirewear smallint(6) DEFAULT NULL,
  opModeIDRunning smallint(6) DEFAULT NULL,
  PRIMARY KEY (avgSpeedBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AvgSpeedBin is used by these modules:

Top of Page


AvgSpeedDistribution table

CREATE TABLE avgspeeddistribution (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  avgSpeedBinID smallint(6) NOT NULL DEFAULT '0',
  avgSpeedFraction float DEFAULT NULL,
  PRIMARY KEY (avgSpeedBinID,hourDayID,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY hourDayID (hourDayID),
  KEY avgSpeedBinID (avgSpeedBinID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The AvgSpeedDistribution is used by these modules:

Top of Page


BaseFuel table

CREATE TABLE basefuel (
  calculationEngine varchar(100) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  fuelFormulationID smallint(6) NOT NULL,
  description varchar(255) NOT NULL DEFAULT '',
  dataSourceID smallint(6) NOT NULL,
  PRIMARY KEY (calculationEngine,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The BaseFuel is used by these modules:

Top of Page


ColdSoakInitialHourFraction table

CREATE TABLE coldsoakinitialhourfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  initialHourDayID smallint(6) NOT NULL DEFAULT '0',
  coldSoakInitialHourFraction float NOT NULL DEFAULT '0',
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (sourceTypeID,zoneID,monthID,hourDayID,initialHourDayID),
  KEY isUserInput (isUserInput)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ColdSoakInitialHourFraction is used by these modules:

Top of Page


ColdSoakTankTemperature table

CREATE TABLE coldsoaktanktemperature (
  zoneID int(11) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  hourID smallint(6) NOT NULL DEFAULT '0',
  coldSoakTankTemperature float NOT NULL DEFAULT '0',
  PRIMARY KEY (zoneID,monthID,hourID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ColdSoakTankTemperature is used by these modules:

Top of Page


ComplexModelParameterName table

CREATE TABLE complexmodelparametername (
  cmpID smallint(6) NOT NULL DEFAULT '0',
  cmpName char(25) NOT NULL,
  cmpExpression varchar(500) NOT NULL,
  PRIMARY KEY (cmpID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ComplexModelParameterName is used by these modules:

Top of Page


ComplexModelParameters table

CREATE TABLE complexmodelparameters (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelModelID smallint(6) NOT NULL DEFAULT '0',
  cmpID smallint(6) NOT NULL DEFAULT '0',
  coeff1 float DEFAULT NULL,
  coeff2 float DEFAULT NULL,
  coeff3 float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelModelID,cmpID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ComplexModelParameters is used by these modules:

Top of Page


County table

CREATE TABLE county (
  countyID int(11) NOT NULL DEFAULT '0',
  stateID smallint(6) NOT NULL DEFAULT '0',
  countyName char(50) DEFAULT NULL,
  altitude char(1) DEFAULT NULL,
  GPAFract float DEFAULT NULL,
  barometricPressure float DEFAULT NULL,
  barometricPressureCV float DEFAULT NULL,
  PRIMARY KEY (countyID),
  KEY countyID (countyID,stateID),
  KEY stateID (stateID,countyID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The County is used by these modules:

Top of Page


CountyYear table

CREATE TABLE countyyear (
  countyID int(11) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  refuelingVaporProgramAdjust float NOT NULL DEFAULT '0',
  refuelingSpillProgramAdjust float NOT NULL DEFAULT '0',
  PRIMARY KEY (countyID,yearID),
  KEY countyID (countyID),
  KEY yearID (yearID),
  KEY yearID_2 (yearID,countyID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The CountyYear is used by these modules:

Top of Page


CrankcaseEmissionRatio table

CREATE TABLE crankcaseemissionratio (
  polProcessID int(11) NOT NULL,
  minModelYearID smallint(6) NOT NULL,
  maxModelYearID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  crankcaseRatio float NOT NULL,
  crankcaseRatioCV float DEFAULT NULL,
  PRIMARY KEY (polProcessID,minModelYearID,maxModelYearID,sourceTypeID,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The CrankcaseEmissionRatio is used by these modules:

Top of Page


criteriaRatio table

CREATE TABLE criteriaratio (
  fuelTypeID smallint(6) NOT NULL,
  fuelFormulationID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  modelYearID smallint(6) NOT NULL,
  ageID smallint(6) NOT NULL,
  ratio double DEFAULT NULL,
  ratioGPA double DEFAULT NULL,
  ratioNoSulfur double DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,fuelFormulationID,polProcessID,pollutantID,processID,sourceTypeID,modelYearID,ageID),
  KEY crFuelFormulation (polProcessID,fuelFormulationID),
  KEY crCommon (polProcessID,modelYearID,ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The criteriaRatio is used by these modules:

Top of Page


CumTVVCoeffs table

CREATE TABLE cumtvvcoeffs (
  regClassID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  tvvTermA float DEFAULT NULL,
  tvvTermB float DEFAULT NULL,
  tvvTermC float DEFAULT NULL,
  tvvTermACV float DEFAULT NULL,
  tvvTermBCV float DEFAULT NULL,
  tvvTermCCV float DEFAULT NULL,
  tvvTermAIM float DEFAULT NULL,
  tvvTermBIM float DEFAULT NULL,
  tvvTermCIM float DEFAULT NULL,
  tvvTermAIMCV float DEFAULT NULL,
  tvvTermBIMCV float DEFAULT NULL,
  tvvTermCIMCV float DEFAULT NULL,
  backPurgeFactor double DEFAULT NULL,
  averageCanisterCapacity double DEFAULT NULL,
  tvvEquation varchar(4096) NOT NULL DEFAULT '',
  leakEquation varchar(4096) NOT NULL DEFAULT '',
  leakFraction double DEFAULT NULL,
  tankSize double DEFAULT NULL,
  tankFillFraction double DEFAULT NULL,
  leakFractionIM double DEFAULT NULL,
  PRIMARY KEY (regClassID,modelYearGroupID,ageGroupID,polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The CumTVVCoeffs is used by these modules:

Top of Page


DataSource table

CREATE TABLE datasource (
  DataSourceId smallint(6) NOT NULL DEFAULT '0',
  Author char(25) DEFAULT NULL,
  Date date DEFAULT NULL,
  Sponsor char(30) DEFAULT NULL,
  DocumentID char(150) DEFAULT NULL,
  QualityLevel char(1) DEFAULT NULL,
  PRIMARY KEY (DataSourceId)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


DayOfAnyWeek table

CREATE TABLE dayofanyweek (
  dayID smallint(6) NOT NULL DEFAULT '0',
  dayName char(10) DEFAULT NULL,
  noOfRealDays float NOT NULL DEFAULT '1',
  PRIMARY KEY (dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DayOfAnyWeek is used by these modules:

Top of Page


DayVMTFraction table

CREATE TABLE dayvmtfraction (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  dayID smallint(6) NOT NULL DEFAULT '0',
  dayVMTFraction float DEFAULT NULL,
  PRIMARY KEY (dayID,monthID,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY monthID (monthID),
  KEY roadTypeID (roadTypeID),
  KEY dayID (dayID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DayVMTFraction is used by these modules:

Top of Page


dioxinemissionrate table

CREATE TABLE dioxinemissionrate (
  polProcessID int(11) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  units char(30) DEFAULT NULL,
  meanBaseRate double DEFAULT NULL,
  meanBaseRateCV double DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID),
  UNIQUE KEY XPKDioxinEmissionRate (polProcessID,fuelTypeID,modelYearGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The dioxinemissionrate is used by these modules:

Top of Page


DriveSchedule table

CREATE TABLE driveschedule (
  driveScheduleID smallint(6) NOT NULL DEFAULT '0',
  averageSpeed float NOT NULL DEFAULT '0',
  driveScheduleName char(50) DEFAULT NULL,
  PRIMARY KEY (driveScheduleID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DriveSchedule is used by these modules:

Top of Page


DriveScheduleAssoc table

CREATE TABLE drivescheduleassoc (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  roadTypeID smallint(6) NOT NULL DEFAULT '0',
  isRamp char(1) NOT NULL DEFAULT '',
  driveScheduleID smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (driveScheduleID,isRamp,roadTypeID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY roadTypeID (roadTypeID),
  KEY isRamp (isRamp),
  KEY driveScheduleID (driveScheduleID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DriveScheduleAssoc is used by these modules:

Top of Page


DriveScheduleSecond table

CREATE TABLE driveschedulesecond (
  driveScheduleID smallint(6) NOT NULL DEFAULT '0',
  second smallint(6) NOT NULL DEFAULT '0',
  speed float DEFAULT NULL,
  PRIMARY KEY (driveScheduleID,second),
  KEY driveScheduleID (driveScheduleID),
  KEY second (second)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The DriveScheduleSecond is used by these modules:

Top of Page


driveScheduleSecondLink table

CREATE TABLE driveschedulesecondlink (
  linkID int(11) NOT NULL,
  secondID smallint(6) NOT NULL,
  speed float DEFAULT NULL,
  grade float NOT NULL DEFAULT '0',
  PRIMARY KEY (linkID,secondID),
  KEY secondID (secondID,linkID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The driveScheduleSecondLink is used by these modules:

Top of Page


e10FuelProperties table

CREATE TABLE e10fuelproperties (
  fuelRegionID int(11) NOT NULL,
  fuelYearID int(11) NOT NULL,
  monthGroupID smallint(6) NOT NULL,
  RVP double DEFAULT NULL,
  sulfurLevel double DEFAULT NULL,
  ETOHVolume double DEFAULT NULL,
  MTBEVolume double DEFAULT NULL,
  ETBEVolume double DEFAULT NULL,
  TAMEVolume double DEFAULT NULL,
  aromaticContent double DEFAULT NULL,
  olefinContent double DEFAULT NULL,
  benzeneContent double DEFAULT NULL,
  e200 double DEFAULT NULL,
  e300 double DEFAULT NULL,
  BioDieselEsterVolume double DEFAULT NULL,
  CetaneIndex double DEFAULT NULL,
  PAHContent double DEFAULT NULL,
  T50 double DEFAULT NULL,
  T90 double DEFAULT NULL,
  PRIMARY KEY (fuelRegionID,fuelYearID,monthGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


EmissionProcess table

CREATE TABLE emissionprocess (
  processID smallint(6) NOT NULL DEFAULT '0',
  processName char(50) DEFAULT NULL,
  SCCProcID char(1) DEFAULT NULL,
  occursOnRealRoads char(1) NOT NULL DEFAULT 'Y',
  shortName varchar(50) DEFAULT NULL,
  processDisplayGroupID smallint(6) unsigned DEFAULT NULL,
  isAffectedByOnroad tinyint(1) DEFAULT '1',
  isAffectedByNonroad tinyint(1) DEFAULT '0',
  PRIMARY KEY (processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionProcess is used by these modules:

Top of Page


EmissionRate table

CREATE TABLE emissionrate (
  sourceBinID bigint(20) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  meanBaseRate float DEFAULT NULL,
  meanBaseRateCV float DEFAULT NULL,
  meanBaseRateIM float DEFAULT NULL,
  meanBaseRateIMCV float DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (opModeID,polProcessID,sourceBinID),
  KEY sourceBinID (sourceBinID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionRate is used by these modules:

Top of Page


EmissionRateAdjustment table

CREATE TABLE emissionrateadjustment (
  polProcessID int(11) NOT NULL,
  sourceTypeID smallint(6) NOT NULL,
  regClassID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  beginModelYearID smallint(6) NOT NULL,
  endModelYearID smallint(6) NOT NULL,
  emissionRateAdjustment double DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (polProcessID,sourceTypeID,fuelTypeID,regClassID,beginModelYearID,endModelYearID),
  KEY polProcessID (polProcessID,beginModelYearID,endModelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionRateAdjustment is used by these modules:

Top of Page


EmissionRateByAge table

CREATE TABLE emissionratebyage (
  sourceBinID bigint(20) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  ageGroupID smallint(6) NOT NULL DEFAULT '0',
  meanBaseRate float DEFAULT NULL,
  meanBaseRateCV float DEFAULT NULL,
  meanBaseRateIM float DEFAULT NULL,
  meanBaseRateIMCV float DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (ageGroupID,opModeID,polProcessID,sourceBinID),
  UNIQUE KEY XPKEmissionRateByAge (sourceBinID,polProcessID,opModeID,ageGroupID),
  KEY polProcessID (polProcessID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The EmissionRateByAge is used by these modules:

Top of Page


EngineSize table

CREATE TABLE enginesize (
  engSizeID int(11) NOT NULL,
  engSizeName char(50) DEFAULT NULL,
  PRIMARY KEY (engSizeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

enginetech table

CREATE TABLE enginetech (
  engTechID smallint(6) NOT NULL DEFAULT '0',
  tierID smallint(6) DEFAULT '99',
  strokes smallint(6) DEFAULT '99',
  engTechName char(50) DEFAULT NULL,
  engTechDesc char(80) DEFAULT NULL,
  PRIMARY KEY (engTechID)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

Top of Page


ETOHBin table

CREATE TABLE etohbin (
  etohThreshID smallint(6) NOT NULL DEFAULT '0',
  etohThreshLow float DEFAULT NULL,
  etohThreshHigh float DEFAULT NULL,
  etohNominalValue float DEFAULT NULL,
  PRIMARY KEY (etohThreshID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ETOHBin is used by these modules:

Top of Page


evapRVPTemperatureAdjustment table

CREATE TABLE evaprvptemperatureadjustment (
  processID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  RVP double NOT NULL,
  adjustTerm3 double NOT NULL DEFAULT '0',
  adjustTerm2 double NOT NULL DEFAULT '0',
  adjustTerm1 double NOT NULL DEFAULT '0',
  adjustConstant double NOT NULL DEFAULT '0',
  PRIMARY KEY (processID,fuelTypeID,RVP),
  KEY RVP (RVP,processID,fuelTypeID),
  KEY RVP_2 (RVP,fuelTypeID,processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The evapRVPTemperatureAdjustment is used by these modules:

Top of Page


evapTemperatureAdjustment table

CREATE TABLE evaptemperatureadjustment (
  processID smallint(6) NOT NULL,
  tempAdjustTerm3 double NOT NULL DEFAULT '0',
  tempAdjustTerm2 double NOT NULL DEFAULT '0',
  tempAdjustTerm1 double NOT NULL DEFAULT '0',
  tempAdjustConstant double NOT NULL DEFAULT '0',
  PRIMARY KEY (processID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The evapTemperatureAdjustment is used by these modules:

Top of Page


ExtendedIdleHours table

CREATE TABLE extendedidlehours (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  hourDayID smallint(6) NOT NULL DEFAULT '0',
  monthID smallint(6) NOT NULL DEFAULT '0',
  yearID smallint(6) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  zoneID int(11) NOT NULL DEFAULT '0',
  extendedIdleHours float DEFAULT NULL,
  extendedIdleHoursCV float DEFAULT NULL,
  isUserInput char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (ageID,hourDayID,monthID,sourceTypeID,yearID,zoneID),
  KEY sourceTypeID (sourceTypeID),
  KEY hourDayID (hourDayID),
  KEY monthID (monthID),
  KEY yearID (yearID),
  KEY ageID (ageID),
  KEY zoneID (zoneID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The ExtendedIdleHours is used by these modules:

Top of Page


FuelEngTechAssoc table

CREATE TABLE fuelengtechassoc (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  engTechID smallint(6) NOT NULL DEFAULT '0',
  category char(50) NOT NULL DEFAULT '',
  categoryDisplayOrder smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (engTechID,fuelTypeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


FuelFormulation table

CREATE TABLE fuelformulation (
  fuelFormulationID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  RVP float DEFAULT NULL,
  sulfurLevel float NOT NULL DEFAULT '30',
  ETOHVolume float DEFAULT NULL,
  MTBEVolume float DEFAULT NULL,
  ETBEVolume float DEFAULT NULL,
  TAMEVolume float DEFAULT NULL,
  aromaticContent float DEFAULT NULL,
  olefinContent float DEFAULT NULL,
  benzeneContent float DEFAULT NULL,
  e200 float DEFAULT NULL,
  e300 float DEFAULT NULL,
  volToWtPercentOxy float DEFAULT NULL,
  BioDieselEsterVolume float DEFAULT NULL,
  CetaneIndex float DEFAULT NULL,
  PAHContent float DEFAULT NULL,
  T50 float DEFAULT NULL,
  T90 float DEFAULT NULL,
  PRIMARY KEY (fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelFormulation is used by these modules:

Top of Page


FuelModelName table

CREATE TABLE fuelmodelname (
  fuelModelID smallint(6) NOT NULL DEFAULT '0',
  fuelModelName varchar(50) NOT NULL DEFAULT '',
  fuelModelAbbreviation varchar(10) NOT NULL DEFAULT '',
  calculationEngines varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (fuelModelID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelModelName is used by these modules:

Top of Page


FuelModelWtFactor table

CREATE TABLE fuelmodelwtfactor (
  fuelModelID smallint(6) NOT NULL DEFAULT '0',
  modelYearGroupID int(11) NOT NULL DEFAULT '0',
  ageID smallint(6) NOT NULL DEFAULT '0',
  fuelModelWtFactor float DEFAULT NULL,
  dataSourceID smallint(6) DEFAULT NULL,
  PRIMARY KEY (fuelModelID,modelYearGroupID,ageID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelModelWtFactor is used by these modules:

Top of Page


FuelModelYearGroup table

CREATE TABLE fuelmodelyeargroup (
  fuelMYGroupID int(11) NOT NULL DEFAULT '0',
  fuelMYGroupName char(100) DEFAULT NULL,
  fuelMYGroupFunction char(200) DEFAULT NULL,
  maxSulfurLevel float DEFAULT NULL,
  maxSulfurLevelCV float DEFAULT NULL,
  maxSulfurLevelGPA float DEFAULT NULL,
  maxSulfurLevelGPACV float DEFAULT NULL,
  PRIMARY KEY (fuelMYGroupID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


FuelParameterName table

CREATE TABLE fuelparametername (
  fuelParameterID smallint(6) NOT NULL DEFAULT '0',
  fuelParameterName varchar(25) NOT NULL DEFAULT '',
  fuelParameterUnits varchar(20) NOT NULL DEFAULT '',
  fuelParameterExpression varchar(500) NOT NULL DEFAULT '',
  PRIMARY KEY (fuelParameterID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelParameterName is used by these modules:

Top of Page


FuelSubtype table

CREATE TABLE fuelsubtype (
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeDesc char(50) DEFAULT NULL,
  fuelSubtypePetroleumFraction float DEFAULT NULL,
  fuelSubtypePetroleumFractionCV float DEFAULT NULL,
  fuelSubtypeFossilFraction float DEFAULT NULL,
  fuelSubtypeFossilFractionCV float DEFAULT NULL,
  carbonContent float DEFAULT NULL,
  oxidationFraction float DEFAULT NULL,
  carbonContentCV float DEFAULT NULL,
  oxidationFractionCV float DEFAULT NULL,
  energyContent float DEFAULT NULL,
  PRIMARY KEY (fuelSubtypeID),
  KEY fuelTypeID (fuelTypeID,fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelSubtype is used by these modules:

Top of Page


FuelSupply table

CREATE TABLE fuelsupply (
  fuelRegionID int(11) NOT NULL DEFAULT '0',
  fuelYearID smallint(6) NOT NULL DEFAULT '0',
  monthGroupID smallint(6) NOT NULL DEFAULT '0',
  fuelFormulationID smallint(6) NOT NULL DEFAULT '0',
  marketShare float DEFAULT NULL,
  marketShareCV float DEFAULT NULL,
  PRIMARY KEY (fuelRegionID,fuelFormulationID,monthGroupID,fuelYearID),
  KEY fuelRegionID (fuelRegionID),
  KEY yearID (fuelYearID),
  KEY monthGroupID (monthGroupID),
  KEY fuelSubtypeID (fuelFormulationID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelSupply is used by these modules:

Top of Page


FuelSupplyYear table

CREATE TABLE fuelsupplyyear (
  fuelYearID int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (fuelYearID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

FuelType table

CREATE TABLE fueltype (
  fuelTypeID smallint(6) NOT NULL DEFAULT '0',
  defaultFormulationID smallint(6) NOT NULL DEFAULT '0',
  fuelTypeDesc char(50) DEFAULT NULL,
  humidityCorrectionCoeff float DEFAULT NULL,
  humidityCorrectionCoeffCV float DEFAULT NULL,
  fuelDensity float DEFAULT NULL,
  subjectToEvapCalculations char(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (fuelTypeID),
  KEY subjectToEvapCalculations (subjectToEvapCalculations,fuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FuelType is used by these modules:

Top of Page


fuelUsageFraction table

CREATE TABLE fuelusagefraction (
  countyID int(11) NOT NULL,
  fuelYearID int(11) NOT NULL,
  modelYearGroupID int(11) NOT NULL,
  sourceBinFuelTypeID smallint(6) NOT NULL,
  fuelSupplyFuelTypeID smallint(6) NOT NULL,
  usageFraction double DEFAULT NULL,
  PRIMARY KEY (countyID,fuelYearID,modelYearGroupID,sourceBinFuelTypeID,fuelSupplyFuelTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The fuelUsageFraction is used by these modules:

Top of Page


fuelWizardFactors table

CREATE TABLE fuelwizardfactors (
  adjustedParameter varchar(4) NOT NULL,
  minLevel double NOT NULL,
  maxLevel double NOT NULL,
  functionType varchar(4) NOT NULL,
  monthGroupID smallint(6) NOT NULL,
  fuelTypeID smallint(6) NOT NULL,
  RVP_factor double DEFAULT NULL,
  sulf_factor double DEFAULT NULL,
  ETOH_factor double DEFAULT NULL,
  arom_factor double DEFAULT NULL,
  olef_factor double DEFAULT NULL,
  benz_factor double DEFAULT NULL,
  e200_factor double DEFAULT NULL,
  e300_factor double DEFAULT NULL,
  T50_factor double DEFAULT NULL,
  T90_factor double DEFAULT NULL,
  units varchar(6) DEFAULT NULL,
  dataSourceId smallint(6) DEFAULT NULL,
  PRIMARY KEY (fuelTypeID,monthGroupID,adjustedParameter,minLevel,maxLevel,functionType)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


FullACAdjustment table

CREATE TABLE fullacadjustment (
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  polProcessID int(11) NOT NULL DEFAULT '0',
  opModeID smallint(6) NOT NULL DEFAULT '0',
  fullACAdjustment float DEFAULT NULL,
  fullACAdjustmentCV float DEFAULT NULL,
  PRIMARY KEY (opModeID,polProcessID,sourceTypeID),
  KEY sourceTypeID (sourceTypeID),
  KEY polProcessID (polProcessID),
  KEY opModeID (opModeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The FullACAdjustment is used by these modules:

Top of Page


generalFuelRatio table

CREATE TABLE generalfuelratio (
  fuelTypeID smallint(6) NOT NULL,
  fuelFormulationID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  pollutantID smallint(6) NOT NULL,
  processID smallint(6) NOT NULL,
  minModelYearID smallint(6) NOT NULL DEFAULT '1960',
  maxModelYearID smallint(6) NOT NULL DEFAULT '2050',
  minAgeID smallint(6) NOT NULL DEFAULT '0',
  maxAgeID smallint(6) NOT NULL DEFAULT '30',
  sourceTypeID smallint(6) unsigned NOT NULL,
  fuelEffectRatio double NOT NULL DEFAULT '0',
  fuelEffectRatioGPA double NOT NULL DEFAULT '0',
  PRIMARY KEY (fuelTypeID,fuelFormulationID,polProcessID,pollutantID,processID,minModelYearID,maxModelYearID,minAgeID,maxAgeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The generalFuelRatio is used by these modules:

Top of Page


generalFuelRatioExpression table

CREATE TABLE generalfuelratioexpression (
  fuelTypeID smallint(6) NOT NULL,
  polProcessID int(11) NOT NULL,
  minModelYearID int(11) NOT NULL DEFAULT '1960',
  maxModelYearID int(11) NOT NULL DEFAULT '2050',
  minAgeID int(11) NOT NULL DEFAULT '0',
  maxAgeID int(11) NOT NULL DEFAULT '30',
  sourceTypeID smallint(6) NOT NULL DEFAULT '0',
  fuelEffectRatioExpression varchar(32000) NOT NULL DEFAULT '',
  fuelEffectRatioGPAExpression varchar(32000) NOT NULL DEFAULT '',
  PRIMARY KEY (fuelTypeID,polProcessID,minModelYearID,maxModelYearID,minAgeID,maxAgeID,sourceTypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The generalFuelRatioExpression is used by these modules:

Top of Page


GREETManfAndDisposal table

CREATE TABLE greetmanfanddisposal (
  GREETVehicleType smallint(6) NOT NULL DEFAULT '0',
  modelYearID smallint(6) NOT NULL DEFAULT '0',
  pollutantID smallint(6) NOT NULL DEFAULT '0',
  EmissionStage char(4) NOT NULL DEFAULT '',
  emissionPerVehicle float DEFAULT NULL,
  PRIMARY KEY (EmissionStage,GREETVehicleType,modelYearID,pollutantID),
  UNIQUE KEY XPKGREETManfAndDisposal (GREETVehicleType,modelYearID,pollutantID,EmissionStage),
  KEY GREETVehicleType (GREETVehicleType),
  KEY modelYearID (modelYearID),
  KEY pollutantID (pollutantID),
  KEY EmissionStage (EmissionStage)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Top of Page


GREETWellToPump table

CREATE TABLE greetwelltopump (
  yearID smallint(6) NOT NULL DEFAULT '0',
  pollutantID smallint(6) NOT NULL DEFAULT '0',
  fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
  emissionRate float DEFAULT NULL,
  emissionRateUncertainty float DEFAULT NULL,
  PRIMARY KEY (fuelSubtypeID,pollutantID,yearID),
  KEY yearID (yearID),
  KEY pollutantID (pollutantID),
  KEY fuelSubtypeID (fuelSubtypeID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


The GREETWellToPump is used by these modules:

Top of Page


    Grid table

    CREATE TABLE grid (
      gridID int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (gridID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    GridZoneAssoc table

    CREATE TABLE gridzoneassoc (
      zoneID int(11) NOT NULL DEFAULT '0',
      gridID int(11) NOT NULL DEFAULT '0',
      gridAllocFactor float DEFAULT NULL,
      PRIMARY KEY (gridID,zoneID),
      KEY zoneID (zoneID),
      KEY gridID (gridID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    HCPermeationCoeff table

    CREATE TABLE hcpermeationcoeff (
      polProcessID int(11) NOT NULL DEFAULT '0',
      etohThreshID smallint(6) NOT NULL DEFAULT '0',
      fuelMYGroupID int(11) NOT NULL DEFAULT '0',
      fuelAdjustment float DEFAULT NULL,
      fuelAdjustmentGPA float DEFAULT NULL,
      dataSourceID smallint(6) DEFAULT NULL,
      PRIMARY KEY (polProcessID,etohThreshID,fuelMYGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HCPermeationCoeff is used by these modules:


    HCSpeciation table

    CREATE TABLE hcspeciation (
      polProcessID int(11) NOT NULL DEFAULT '0',
      fuelMYGroupID int(11) NOT NULL DEFAULT '0',
      fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
      etohThreshID smallint(6) NOT NULL DEFAULT '0',
      oxyThreshID smallint(6) NOT NULL DEFAULT '0',
      speciationConstant float DEFAULT NULL,
      oxySpeciation float DEFAULT NULL,
      PRIMARY KEY (polProcessID,fuelMYGroupID,fuelSubtypeID,etohThreshID,oxyThreshID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HCSpeciation is used by these modules:

    Top of Page


    hotellingActivityDistribution table

    CREATE TABLE hotellingactivitydistribution (
      beginModelYearID smallint(6) NOT NULL,
      endModelYearID smallint(6) NOT NULL,
      opModeID smallint(6) NOT NULL,
      opModeFraction float NOT NULL,
      PRIMARY KEY (beginModelYearID,endModelYearID,opModeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The hotellingActivityDistribution is used by these modules:


    hotellingCalendarYear table

    CREATE TABLE hotellingcalendaryear (
      yearID smallint(6) NOT NULL,
      hotellingRate double NOT NULL,
      PRIMARY KEY (yearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The hotellingCalendarYear is used by these modules:


    hotellingHours table

    CREATE TABLE hotellinghours (
      sourceTypeID smallint(6) NOT NULL,
      hourDayID smallint(6) NOT NULL,
      monthID smallint(6) NOT NULL,
      yearID smallint(6) NOT NULL,
      ageID smallint(6) NOT NULL,
      zoneID int(11) NOT NULL,
      hotellingHours double DEFAULT NULL,
      isUserInput char(1) NOT NULL DEFAULT 'N',
      PRIMARY KEY (sourceTypeID,hourDayID,monthID,yearID,ageID,zoneID),
      KEY sourceTypeID (sourceTypeID),
      KEY hourDayID (hourDayID),
      KEY monthID (monthID),
      KEY yearID (yearID),
      KEY ageID (ageID),
      KEY zoneID (zoneID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The hotellingHours is used by these modules:

    Top of Page


    HourDay table

    CREATE TABLE hourday (
      hourDayID smallint(6) NOT NULL DEFAULT '0',
      dayID smallint(6) NOT NULL DEFAULT '0',
      hourID smallint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (hourDayID),
      KEY dayID (dayID),
      KEY hourID (hourID),
      KEY dayID_2 (dayID,hourID,hourDayID),
      KEY hourID_2 (hourID,dayID,hourDayID),
      KEY hourDayID (hourDayID,dayID,hourID),
      KEY hourDayID_2 (hourDayID,hourID,dayID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HourDay is used by these modules:

    Top of Page


    HourOfAnyDay table

    CREATE TABLE hourofanyday (
      hourID smallint(6) NOT NULL DEFAULT '0',
      hourname char(50) DEFAULT NULL,
      PRIMARY KEY (hourID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HourOfAnyDay is used by these modules:


    HourVMTFraction table

    CREATE TABLE hourvmtfraction (
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      roadTypeID smallint(6) NOT NULL DEFAULT '0',
      dayID smallint(6) NOT NULL DEFAULT '0',
      hourID smallint(6) NOT NULL DEFAULT '0',
      hourVMTFraction float DEFAULT NULL,
      PRIMARY KEY (dayID,hourID,roadTypeID,sourceTypeID),
      KEY sourceTypeID (sourceTypeID),
      KEY roadTypeID (roadTypeID),
      KEY dayID (dayID),
      KEY hourID (hourID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HourVMTFraction is used by these modules:

    Top of Page


    HPMSVtype table

    CREATE TABLE hpmsvtype (
      HPMSVtypeID smallint(6) NOT NULL DEFAULT '0',
      HPMSVtypeName char(50) DEFAULT NULL,
      PRIMARY KEY (HPMSVtypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    HPMSVtypeDay table

    CREATE TABLE hpmsvtypeday (
      yearID smallint(6) NOT NULL,
      monthID smallint(6) NOT NULL,
      dayID smallint(6) NOT NULL,
      HPMSVtypeID smallint(6) NOT NULL,
      VMT double NOT NULL,
      PRIMARY KEY (yearID,monthID,dayID,HPMSVtypeID),
      KEY HPMSVtypeID (HPMSVtypeID,yearID,monthID,dayID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HPMSVtypeDay is used by these modules:

    Top of Page


    HPMSVtypeYear table

    CREATE TABLE hpmsvtypeyear (
      HPMSVtypeID smallint(6) NOT NULL DEFAULT '0',
      yearID smallint(6) NOT NULL DEFAULT '0',
      VMTGrowthFactor double DEFAULT NULL,
      HPMSBaseYearVMT double DEFAULT NULL,
      PRIMARY KEY (HPMSVtypeID,yearID),
      KEY HPMSVtypeID (HPMSVtypeID),
      KEY yearID (yearID),
      KEY yearID_2 (yearID,HPMSVtypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The HPMSVtypeYear is used by these modules:


    IMCoverage table

    CREATE TABLE imcoverage (
      polProcessID int(11) NOT NULL DEFAULT '0',
      stateID smallint(6) NOT NULL DEFAULT '0',
      countyID int(11) NOT NULL DEFAULT '0',
      yearID smallint(6) NOT NULL DEFAULT '0',
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      IMProgramID smallint(6) NOT NULL DEFAULT '0',
      begModelYearID smallint(6) NOT NULL DEFAULT '0',
      endModelYearID smallint(6) NOT NULL DEFAULT '0',
      inspectFreq smallint(6) DEFAULT NULL,
      testStandardsID smallint(6) NOT NULL DEFAULT '0',
      useIMyn char(1) NOT NULL DEFAULT 'Y',
      complianceFactor float DEFAULT NULL,
      PRIMARY KEY (polProcessID,stateID,countyID,yearID,sourceTypeID,fuelTypeID,IMProgramID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The IMCoverage is used by these modules:

    Top of Page


    IMFactor table

    CREATE TABLE imfactor (
      polProcessID int(11) NOT NULL,
      inspectFreq smallint(6) NOT NULL,
      testStandardsID smallint(6) NOT NULL,
      sourceTypeID smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      IMModelYearGroupID int(8) NOT NULL,
      ageGroupID smallint(6) NOT NULL,
      IMFactor float DEFAULT NULL,
      PRIMARY KEY (polProcessID,inspectFreq,testStandardsID,sourceTypeID,fuelTypeID,IMModelYearGroupID,ageGroupID),
      UNIQUE KEY XPKIMFactor (polProcessID,inspectFreq,testStandardsID,sourceTypeID,fuelTypeID,IMModelYearGroupID,ageGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The IMFactor is used by these modules:

    Top of Page


    imInspectFreq table

    CREATE TABLE iminspectfreq (
      inspectFreq smallint(6) NOT NULL,
      inspectFreqDesc char(50) DEFAULT NULL,
      PRIMARY KEY (inspectFreq),
      UNIQUE KEY XPKIMInspectFreq (inspectFreq)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    IMModelYearGroup table

    CREATE TABLE immodelyeargroup (
      IMModelYearGroupID int(8) NOT NULL,
      IMModelYearGroupDesc char(40) NOT NULL,
      PRIMARY KEY (IMModelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    importStartsOpModeDistribution table

    CREATE TABLE importstartsopmodedistribution (
      sourceTypeID smallint(6) NOT NULL,
      hourDayID smallint(6) NOT NULL,
      linkID int(11) NOT NULL,
      polProcessID int(11) NOT NULL,
      opModeID smallint(6) NOT NULL,
      opModeFraction float DEFAULT NULL,
      opModeFractionCV float DEFAULT NULL,
      isUserInput char(1) NOT NULL DEFAULT 'N',
      PRIMARY KEY (sourceTypeID,hourDayID,linkID,polProcessID,opModeID),
      KEY sourceTypeID (sourceTypeID),
      KEY hourDayID (hourDayID),
      KEY linkID (linkID),
      KEY polProcessID (polProcessID),
      KEY opModeID (opModeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    IMTestStandards table

    CREATE TABLE imteststandards (
      testStandardsID smallint(6) NOT NULL,
      testStandardsDesc char(50) NOT NULL,
      shortName varchar(50) DEFAULT NULL,
      PRIMARY KEY (testStandardsID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    integratedSpeciesSet table

    CREATE TABLE integratedspeciesset (
      mechanismID smallint(6) NOT NULL,
      integratedSpeciesSetID smallint(6) NOT NULL,
      pollutantID smallint(6) NOT NULL,
      useISSyn varchar(2) DEFAULT NULL,
      PRIMARY KEY (mechanismID,integratedSpeciesSetID,pollutantID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The integratedSpeciesSet is used by these modules:

    Top of Page


    integratedSpeciesSetName table

    CREATE TABLE integratedspeciessetname (
      integratedSpeciesSetID smallint(6) NOT NULL,
      integratedSpeciesSetName varchar(40) DEFAULT NULL,
      PRIMARY KEY (integratedSpeciesSetID),
      KEY integratedSpeciesSetName (integratedSpeciesSetName)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Link table

    CREATE TABLE link (
      linkID int(11) NOT NULL DEFAULT '0',
      countyID int(11) NOT NULL DEFAULT '0',
      zoneID int(11) DEFAULT NULL,
      roadTypeID smallint(6) NOT NULL DEFAULT '0',
      linkLength float DEFAULT NULL,
      linkVolume float DEFAULT NULL,
      linkAvgSpeed float DEFAULT NULL,
      linkDescription varchar(50) DEFAULT NULL,
      linkAvgGrade float DEFAULT NULL,
      PRIMARY KEY (linkID),
      KEY countyID (countyID),
      KEY zoneID (zoneID),
      KEY roadTypeID (roadTypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The Link is used by these modules:

    Top of Page


    LinkAverageSpeed table

    CREATE TABLE linkaveragespeed (
      linkID int(11) NOT NULL DEFAULT '0',
      averageSpeed float DEFAULT NULL,
      PRIMARY KEY (linkID),
      KEY linkID (linkID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The LinkAverageSpeed is used by these modules:


    LinkHourVMTFraction table

    CREATE TABLE linkhourvmtfraction (
      linkID int(11) NOT NULL DEFAULT '0',
      monthID smallint(6) NOT NULL DEFAULT '0',
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      dayID smallint(6) NOT NULL DEFAULT '0',
      hourID smallint(6) NOT NULL DEFAULT '0',
      VMTFraction float DEFAULT NULL,
      PRIMARY KEY (dayID,hourID,linkID,monthID,sourceTypeID),
      KEY linkID (linkID),
      KEY monthID (monthID),
      KEY sourceTypeID (sourceTypeID),
      KEY dayID (dayID),
      KEY hourID (hourID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    linkSourceTypeHour table

    CREATE TABLE linksourcetypehour (
      linkID int(11) NOT NULL,
      sourceTypeID smallint(6) NOT NULL,
      sourceTypeHourFraction float DEFAULT NULL,
      PRIMARY KEY (linkID,sourceTypeID),
      KEY sourceTypeID (sourceTypeID,linkID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The linkSourceTypeHour is used by these modules:


    lumpedSpeciesName table

    CREATE TABLE lumpedspeciesname (
      lumpedSpeciesID smallint(6) NOT NULL,
      lumpedSpeciesName varchar(20) DEFAULT NULL,
      PRIMARY KEY (lumpedSpeciesID),
      KEY lumpedSpeciesName (lumpedSpeciesName)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The lumpedSpeciesName is used by these modules:

    Top of Page


    M6SulfurCoeff table

    CREATE TABLE m6sulfurcoeff (
      pollutantID smallint(6) NOT NULL,
      minModelYearID smallint(6) NOT NULL,
      maxModelYearID smallint(6) NOT NULL,
      minSulfur double NOT NULL,
      sulfurLongCoeff double DEFAULT NULL,
      sulfurIRFactor double DEFAULT NULL,
      maxIRFactorSulfur double DEFAULT NULL,
      PRIMARY KEY (pollutantID,minModelYearID,maxModelYearID),
      KEY pollutantID (pollutantID,minModelYearID,maxModelYearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    MeanFuelParameters table

    CREATE TABLE meanfuelparameters (
      polProcessID int(11) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      fuelParameterID smallint(6) NOT NULL DEFAULT '0',
      baseValue float DEFAULT NULL,
      centeringValue float DEFAULT NULL,
      stdDevValue float DEFAULT NULL,
      dataSourceID smallint(6) DEFAULT NULL,
      PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID,fuelParameterID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The MeanFuelParameters is used by these modules:

    Top of Page


    mechanismName table

    CREATE TABLE mechanismname (
      mechanismID smallint(6) NOT NULL,
      mechanismName varchar(40) DEFAULT NULL,
      PRIMARY KEY (mechanismID),
      KEY mechanismName (mechanismName)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    metalemissionrate table

    CREATE TABLE metalemissionrate (
      polProcessID int(11) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      units char(20) DEFAULT NULL,
      meanBaseRate double DEFAULT NULL,
      meanBaseRateCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (polProcessID,fuelTypeID,sourceTypeID,modelYearGroupID),
      UNIQUE KEY XPKMetalEmissionRate (polProcessID,fuelTypeID,sourceTypeID,modelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The metalemissionrate is used by these modules:

    Top of Page


    methaneTHCRatio table

    CREATE TABLE methanethcratio (
      processID smallint(6) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      ageGroupID smallint(6) NOT NULL DEFAULT '0',
      CH4THCRatio double DEFAULT NULL,
      CH4THCRatioCV double DEFAULT NULL,
      PRIMARY KEY (processID,fuelTypeID,sourceTypeID,modelYearGroupID,ageGroupID),
      UNIQUE KEY XPKMethaneTHCRatio (processID,fuelTypeID,sourceTypeID,modelYearGroupID,ageGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The methaneTHCRatio is used by these modules:

    Top of Page


    minorhapratio table

    CREATE TABLE minorhapratio (
      polProcessID int(11) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      atRatio double DEFAULT NULL,
      atRatioCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (fuelTypeID,fuelSubtypeID,polProcessID,modelYearGroupID),
      UNIQUE KEY XPKMinorHAPRatio (fuelTypeID,fuelSubtypeID,polProcessID,modelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The minorhapratio is used by these modules:


    ModelYear table

    CREATE TABLE modelyear (
      modelYearID smallint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (modelYearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The ModelYear is used by these modules:

    Top of Page


    modelYearCutPoints table

    CREATE TABLE modelyearcutpoints (
      cutPointName varchar(100) NOT NULL,
      modelYearID smallint(6) NOT NULL,
      PRIMARY KEY (cutPointName)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The modelYearCutPoints is used by these modules:


    ModelYearGroup table

    CREATE TABLE modelyeargroup (
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      shortModYrGroupID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupName char(50) DEFAULT NULL,
      modelYearGroupStartYear smallint(6) DEFAULT NULL,
      modelYearGroupEndYear smallint(6) DEFAULT NULL,
      PRIMARY KEY (modelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The ModelYearGroup is used by these modules:

    Top of Page


    modelYearMapping table

    CREATE TABLE modelyearmapping (
      startUserModelYear smallint(6) NOT NULL,
      endUserModelYear smallint(6) NOT NULL,
      startStandardModelYear smallint(6) NOT NULL,
      endStandardModelYear smallint(6) NOT NULL,
      PRIMARY KEY (startUserModelYear,endUserModelYear)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The modelYearMapping is used by these modules:


    MonthGroupHour table

    CREATE TABLE monthgrouphour (
      monthGroupID smallint(6) NOT NULL DEFAULT '0',
      hourID smallint(6) NOT NULL DEFAULT '0',
      ACActivityTermA float DEFAULT NULL,
      ACActivityTermACV float DEFAULT NULL,
      ACActivityTermB float DEFAULT NULL,
      ACActivityTermBCV float DEFAULT NULL,
      ACActivityTermC float DEFAULT NULL,
      ACActivityTermCCV float DEFAULT NULL,
      PRIMARY KEY (hourID,monthGroupID),
      KEY monthGroupID (monthGroupID),
      KEY hourID (hourID),
      KEY hourID_2 (hourID,monthGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The MonthGroupHour is used by these modules:

    Top of Page


    MonthGroupOfAnyYear table

    CREATE TABLE monthgroupofanyyear (
      monthGroupID smallint(6) NOT NULL DEFAULT '0',
      monthGroupName char(50) DEFAULT NULL,
      PRIMARY KEY (monthGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    MonthofAnyYear table

    CREATE TABLE monthofanyyear (
      monthID smallint(6) NOT NULL DEFAULT '0',
      monthName char(10) DEFAULT NULL,
      noOfDays smallint(6) DEFAULT NULL,
      monthGroupID smallint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (monthID),
      KEY monthGroupID (monthGroupID),
      KEY monthGroupID_2 (monthGroupID,monthID),
      KEY monthID (monthID,monthGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The MonthofAnyYear is used by these modules:

    Top of Page


    MonthVMTFraction table

    CREATE TABLE monthvmtfraction (
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      monthID smallint(6) NOT NULL DEFAULT '0',
      monthVMTFraction float DEFAULT NULL,
      PRIMARY KEY (monthID,sourceTypeID),
      KEY sourceTypeID (sourceTypeID),
      KEY monthID (monthID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The MonthVMTFraction is used by these modules:


    NONO2Ratio table

    CREATE TABLE nono2ratio (
      polProcessID int(11) NOT NULL DEFAULT '0',
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      NOxRatio float DEFAULT NULL,
      NOxRatioCV float DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (polProcessID,sourceTypeID,fuelTypeID,modelYearGroupID),
      UNIQUE KEY XPKNONO2Ratio (polProcessID,sourceTypeID,fuelTypeID,modelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The NONO2Ratio is used by these modules:

    Top of Page


    nrAgeCategory table

    CREATE TABLE nragecategory (
      ageID smallint(6) NOT NULL,
      ageCategoryName char(50) DEFAULT NULL,
      PRIMARY KEY (ageID),
      UNIQUE KEY XPKNRAgeCategory (ageID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nratratio table

    CREATE TABLE nratratio (
      pollutantID smallint(6) NOT NULL,
      processID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      fuelSubtypeID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      atRatio double DEFAULT NULL,
      atRatioCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (pollutantID,processID,engTechID,fuelSubtypeID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nratratio is used by these modules:

    Top of Page


    nrBaseYearEquipPopulation table

    CREATE TABLE nrbaseyearequippopulation (
      sourceTypeID smallint(6) NOT NULL,
      stateID smallint(6) NOT NULL,
      population double NOT NULL,
      NRBaseYearID smallint(6) NOT NULL,
      PRIMARY KEY (sourceTypeID,stateID),
      UNIQUE KEY XPKNRBaseYearEquipPopulation (sourceTypeID,stateID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrCrankcaseEmissionRate table

    CREATE TABLE nrcrankcaseemissionrate (
      polProcessID int(11) NOT NULL,
      SCC char(10) NOT NULL,
      hpMin smallint(6) NOT NULL,
      hpMax smallint(6) NOT NULL,
      modelYearID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      meanBaseRate float DEFAULT NULL,
      units varchar(12) DEFAULT NULL,
      dataSourceID smallint(6) NOT NULL,
      PRIMARY KEY (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID),
      UNIQUE KEY XPKnrCrankCaseEmissionRatio (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID),
      KEY INDEX1 (polProcessID),
      KEY XPFnrCrankCaseEmissionRatio (polProcessID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrDayAllocation table

    CREATE TABLE nrdayallocation (
      scc char(10) NOT NULL,
      dayID smallint(6) NOT NULL,
      dayFraction float NOT NULL,
      PRIMARY KEY (scc,dayID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrDeterioration table

    CREATE TABLE nrdeterioration (
      polProcessID int(11) NOT NULL,
      engTechID smallint(6) NOT NULL,
      DFCoefficient float DEFAULT NULL,
      DFAgeExponent float DEFAULT NULL,
      emissionCap smallint(6) NOT NULL,
      PRIMARY KEY (polProcessID,engTechID),
      UNIQUE KEY XPKNRDeterioration (polProcessID,engTechID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrdioxinemissionrate table

    CREATE TABLE nrdioxinemissionrate (
      pollutantID smallint(6) NOT NULL,
      processID smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      engtechID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      units char(30) DEFAULT NULL,
      meanBaseRate double DEFAULT NULL,
      meanBaseRateCV double DEFAULT NULL,
      dataSourceID smallint(6) DEFAULT NULL,
      PRIMARY KEY (pollutantID,processID,fuelTypeID,engtechID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrdioxinemissionrate is used by these modules:

    Top of Page


    nrEmissionRate table

    CREATE TABLE nremissionrate (
      polProcessID int(11) NOT NULL,
      SCC char(10) NOT NULL,
      hpMin smallint(6) NOT NULL,
      hpMax smallint(6) NOT NULL,
      modelYearID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      meanBaseRate float DEFAULT NULL,
      units varchar(12) DEFAULT NULL,
      dataSourceID smallint(6) NOT NULL,
      PRIMARY KEY (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrEngtechFraction table

    CREATE TABLE nrengtechfraction (
      SCC char(10) NOT NULL,
      hpMin smallint(6) NOT NULL,
      hpMax smallint(6) NOT NULL,
      modelYearID smallint(6) NOT NULL,
      processGroupID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      NREngTechFraction float DEFAULT NULL,
      PRIMARY KEY (SCC,hpMin,hpMax,modelYearID,processGroupID,engTechID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrEquipmentType table

    CREATE TABLE nrequipmenttype (
      NREquipTypeID smallint(6) NOT NULL,
      description char(40) DEFAULT NULL,
      sectorID smallint(6) NOT NULL,
      useDefaultScrappage char(1) DEFAULT NULL,
      surrogateID smallint(6) DEFAULT NULL,
      PRIMARY KEY (NREquipTypeID),
      UNIQUE KEY XPKNREquipmentType (NREquipTypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrEvapEmissionRate table

    CREATE TABLE nrevapemissionrate (
      polProcessID int(11) NOT NULL,
      SCC char(10) NOT NULL,
      hpMin smallint(6) NOT NULL,
      hpMax smallint(6) NOT NULL,
      modelYearID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      meanBaseRate float DEFAULT NULL,
      units varchar(12) DEFAULT NULL,
      dataSourceID smallint(6) NOT NULL,
      PRIMARY KEY (polProcessID,SCC,hpMin,hpMax,modelYearID,engTechID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrFuelSubtype table

    CREATE TABLE nrfuelsubtype (
      fuelSubtypeID smallint(6) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      fuelSubtypeDesc char(50) DEFAULT NULL,
      fuelSubtypePetroleumFraction float DEFAULT NULL,
      fuelSubtypePetroleumFractionCV float DEFAULT NULL,
      fuelSubtypeFossilFraction float DEFAULT NULL,
      fuelSubtypeFossilFractionCV float DEFAULT NULL,
      carbonContent float DEFAULT NULL,
      oxidationFraction float DEFAULT NULL,
      carbonContentCV float DEFAULT NULL,
      oxidationFractionCV float DEFAULT NULL,
      energyContent float DEFAULT NULL,
      PRIMARY KEY (fuelSubtypeID),
      KEY fuelTypeID (fuelTypeID,fuelSubtypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrFuelSupply table

    CREATE TABLE nrfuelsupply (
      fuelRegionID int(11) NOT NULL DEFAULT '0',
      fuelYearID int(11) NOT NULL DEFAULT '0',
      monthGroupID smallint(6) NOT NULL DEFAULT '0',
      fuelFormulationID smallint(6) NOT NULL DEFAULT '0',
      marketShare float DEFAULT NULL,
      marketShareCV float DEFAULT NULL,
      PRIMARY KEY (fuelRegionID,fuelFormulationID,monthGroupID,fuelYearID),
      KEY countyID (fuelRegionID),
      KEY yearID (fuelYearID),
      KEY monthGroupID (monthGroupID),
      KEY fuelSubtypeID (fuelFormulationID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrFuelType table

    CREATE TABLE nrfueltype (
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      defaultFormulationID smallint(6) NOT NULL DEFAULT '0',
      fuelTypeDesc char(50) DEFAULT NULL,
      humidityCorrectionCoeff float DEFAULT NULL,
      humidityCorrectionCoeffCV float DEFAULT NULL,
      fuelDensity float DEFAULT NULL,
      subjectToEvapCalculations char(1) NOT NULL DEFAULT 'N',
      PRIMARY KEY (fuelTypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrGrowthIndex table

    CREATE TABLE nrgrowthindex (
      growthPatternID smallint(6) NOT NULL,
      yearID smallint(6) NOT NULL,
      growthIndex smallint(6) DEFAULT NULL,
      PRIMARY KEY (growthPatternID,yearID),
      UNIQUE KEY XPKNRGrowthIndex (growthPatternID,yearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrGrowthPattern table

    CREATE TABLE nrgrowthpattern (
      growthPatternID smallint(6) NOT NULL,
      description char(80) DEFAULT NULL,
      PRIMARY KEY (growthPatternID),
      UNIQUE KEY XPKNRGrowthPattern (growthPatternID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrGrowthPatternFinder table

    CREATE TABLE nrgrowthpatternfinder (
      SCC char(10) NOT NULL,
      stateID smallint(6) NOT NULL,
      growthPatternID smallint(6) NOT NULL,
      PRIMARY KEY (SCC,stateID),
      UNIQUE KEY XPKNRGrowthPatternFinder (SCC,stateID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrhcspeciation table

    CREATE TABLE nrhcspeciation (
      pollutantID smallint(6) NOT NULL,
      processID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      fuelSubtypeID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      speciationConstant double DEFAULT NULL,
      speciationConstantCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (pollutantID,processID,engTechID,fuelSubtypeID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrhcspeciation is used by these modules:


    nrHourAllocation table

    CREATE TABLE nrhourallocation (
      NRHourAllocPatternID smallint(6) NOT NULL,
      hourID smallint(6) NOT NULL,
      hourFraction float NOT NULL,
      PRIMARY KEY (NRHourAllocPatternID,hourID),
      UNIQUE KEY XPKNRHourAllocation (NRHourAllocPatternID,hourID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrHourAllocPattern table

    CREATE TABLE nrhourallocpattern (
      NRHourAllocPatternID smallint(6) NOT NULL,
      description char(255) NOT NULL,
      PRIMARY KEY (NRHourAllocPatternID),
      UNIQUE KEY XPKNRHourAllocPattern (NRHourAllocPatternID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrHourPatternFinder table

    CREATE TABLE nrhourpatternfinder (
      NREquipTypeID smallint(6) NOT NULL,
      NRHourAllocPatternID smallint(6) DEFAULT NULL,
      PRIMARY KEY (NREquipTypeID),
      UNIQUE KEY XPKNRHourPatternFinder (NREquipTypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrhpcategory table

    CREATE TABLE nrhpcategory (
      nrhprangebinid smallint(6) NOT NULL,
      engtechid smallint(6) NOT NULL,
      nrhpcategory char(1) DEFAULT NULL,
      PRIMARY KEY (nrhprangebinid,engtechid)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrhpcategory is used by these modules:


    nrHPRangeBin table

    CREATE TABLE nrhprangebin (
      NRHPRangeBinID smallint(6) NOT NULL,
      binName char(20) DEFAULT NULL,
      hpMin smallint(6) DEFAULT NULL,
      hpMax smallint(6) DEFAULT NULL,
      engSizeID smallint(6) NOT NULL,
      PRIMARY KEY (NRHPRangeBinID),
      UNIQUE KEY XPKNRHPRangeBin (NRHPRangeBinID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrintegratedspecies table

    CREATE TABLE nrintegratedspecies (
      pollutantID smallint(6) NOT NULL,
      PRIMARY KEY (pollutantID)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrintegratedspecies is used by these modules:


    nrmetalemissionrate table

    CREATE TABLE nrmetalemissionrate (
      pollutantID smallint(6) NOT NULL,
      processID smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      units char(12) DEFAULT NULL,
      meanBaseRate double DEFAULT NULL,
      meanBaseRateCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (pollutantID,processID,fuelTypeID,engTechID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrmetalemissionrate is used by these modules:

    Top of Page


    nrmethanethcratio table

    CREATE TABLE nrmethanethcratio (
      processID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      fuelSubtypeID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      CH4THCRatio double DEFAULT NULL,
      CH4THCRatioCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (processID,fuelSubtypeID,engTechID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrmethanethcratio is used by these modules:


    nrMonthAllocation table

    CREATE TABLE nrmonthallocation (
      SCC char(10) NOT NULL,
      stateID smallint(6) NOT NULL,
      monthID smallint(6) NOT NULL,
      monthFraction float NOT NULL,
      PRIMARY KEY (SCC,stateID,monthID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrpahgasratio table

    CREATE TABLE nrpahgasratio (
      pollutantID smallint(6) NOT NULL,
      processid smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      atratio double DEFAULT NULL,
      atratioCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (pollutantID,processid,fuelTypeID,engTechID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrpahgasratio is used by these modules:


    nrpahparticleratio table

    CREATE TABLE nrpahparticleratio (
      pollutantID smallint(6) NOT NULL,
      processid smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      nrHPCategory char(1) NOT NULL,
      atratio double DEFAULT NULL,
      atratioCV double DEFAULT NULL,
      datasourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (pollutantID,processid,fuelTypeID,engTechID,nrHPCategory)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    


    The nrpahparticleratio is used by these modules:

    Top of Page


    nrRetrofitFactors table

    CREATE TABLE nrretrofitfactors (
      retrofitStartYear smallint(6) NOT NULL,
      retrofitEndYear smallint(6) NOT NULL,
      StartModelYear smallint(6) NOT NULL,
      EndModelYear smallint(6) NOT NULL,
      SCC char(10) NOT NULL,
      engTechID smallint(6) NOT NULL,
      hpMin smallint(6) NOT NULL,
      hpMax smallint(6) NOT NULL,
      pollutantID smallint(6) NOT NULL,
      retrofitID smallint(6) NOT NULL,
      annualFractionRetrofit float DEFAULT NULL,
      retrofitEffectiveFraction float DEFAULT NULL,
      PRIMARY KEY (SCC,engTechID,hpMin,hpMax,pollutantID,retrofitID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrSCC table

    CREATE TABLE nrscc (
      SCC char(10) NOT NULL,
      NREquipTypeID smallint(6) NOT NULL,
      description char(40) DEFAULT NULL,
      fuelTypeID smallint(6) NOT NULL,
      PRIMARY KEY (SCC),
      UNIQUE KEY XPKNRSCC (SCC)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrScrappageCurve table

    CREATE TABLE nrscrappagecurve (
      NREquipTypeID smallint(6) NOT NULL,
      fractionLifeused float NOT NULL,
      percentageScrapped float DEFAULT NULL,
      PRIMARY KEY (NREquipTypeID,fractionLifeused),
      UNIQUE KEY XPKNRScrappageCurve (NREquipTypeID,fractionLifeused)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrSourceUseType table

    CREATE TABLE nrsourceusetype (
      sourceTypeID smallint(6) NOT NULL,
      SCC char(10) NOT NULL,
      NRHPRangeBinID smallint(6) NOT NULL,
      medianLifeFullLoad float DEFAULT NULL,
      hoursUsedPerYear float DEFAULT NULL,
      loadFactor float DEFAULT NULL,
      hpAvg float DEFAULT NULL,
      isPumpFilled char(1) DEFAULT NULL,
      tankUnits char(7) DEFAULT NULL,
      tankSize float DEFAULT NULL,
      tankFillFrac float DEFAULT NULL,
      tankMetalFrac float DEFAULT NULL,
      hoseLength float DEFAULT NULL,
      hoseDiameter float DEFAULT NULL,
      hoseMetalFrac float DEFAULT NULL,
      marineFillNeckHoseLength float DEFAULT NULL,
      marineFillNeckHoseDiameter float DEFAULT NULL,
      marineSupplyHoseLength float DEFAULT NULL,
      marineSupplyHoseDiameter float DEFAULT NULL,
      marineVentHoseLength float DEFAULT NULL,
      marineVentHoseDiameter float DEFAULT NULL,
      hotSoaksPerSHO float DEFAULT NULL,
      nonInstMarineTankFrac float DEFAULT NULL,
      marineInstPlasticTankTrailFrac float NOT NULL,
      marineInstPlasticTankWaterFrac float DEFAULT NULL,
      marineInstMetalTankTrailerFrac float DEFAULT NULL,
      marineInstMetalTankWaterFrac float DEFAULT NULL,
      e10TankPermeationAdjFac float DEFAULT NULL,
      e10HosePermeationAdjFac float DEFAULT NULL,
      e10MarineFillNeckPermAdjFac float DEFAULT NULL,
      e10MarineSupplyHosePermAdjFac float DEFAULT NULL,
      e10MarineVentHosePermAdjFac float DEFAULT NULL,
      PRIMARY KEY (sourceTypeID),
      UNIQUE KEY XPKNRSourceUseType (sourceTypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrStateSurrogate table

    CREATE TABLE nrstatesurrogate (
      surrogateID smallint(6) NOT NULL DEFAULT '0',
      stateID smallint(6) NOT NULL DEFAULT '0',
      countyID int(11) NOT NULL DEFAULT '0',
      surrogatequant double NOT NULL,
      surrogateYearID smallint(6) NOT NULL DEFAULT '2002',
      PRIMARY KEY (surrogateID,stateID,countyID,surrogateYearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrSulfurAdjustment table

    CREATE TABLE nrsulfuradjustment (
      fuelTypeID smallint(6) NOT NULL,
      engTechID smallint(6) NOT NULL,
      PMBaseSulfur float NOT NULL,
      sulfatePMConversionFactor float NOT NULL,
      PRIMARY KEY (fuelTypeID,engTechID),
      UNIQUE KEY XPKNRSulfurAdjustment (fuelTypeID,engTechID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    nrSurrogate table

    CREATE TABLE nrsurrogate (
      surrogateID smallint(6) NOT NULL,
      description char(255) DEFAULT NULL,
      surrogateAbbr char(3) DEFAULT NULL,
      PRIMARY KEY (surrogateID),
      UNIQUE KEY XPKNRSurrogate (surrogateID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    nrUSMonthAllocation table

    CREATE TABLE nrusmonthallocation (
      SCC char(10) NOT NULL,
      stateID smallint(6) NOT NULL,
      monthID smallint(6) NOT NULL,
      monthFraction float NOT NULL,
      PRIMARY KEY (SCC,stateID,monthID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    offNetworkLink table

    CREATE TABLE offnetworklink (
      sourceTypeID smallint(6) NOT NULL,
      zoneID int(11) NOT NULL DEFAULT '0',
      vehiclePopulation float DEFAULT NULL,
      startFraction float DEFAULT NULL,
      extendedIdleFraction float DEFAULT NULL,
      parkedVehicleFraction float DEFAULT NULL,
      PRIMARY KEY (zoneID,sourceTypeID),
      KEY sourceTypeID (sourceTypeID,zoneID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The offNetworkLink is used by these modules:


    OMDGPolProcessRepresented table

    CREATE TABLE omdgpolprocessrepresented (
      polProcessID int(11) NOT NULL,
      representingPolProcessID int(11) NOT NULL,
      PRIMARY KEY (polProcessID),
      KEY representingPolProcessID (representingPolProcessID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The OMDGPolProcessRepresented is used by these modules:

    Top of Page


    onRoadRetrofit table

    CREATE TABLE onroadretrofit (
      pollutantID smallint(6) NOT NULL,
      processID smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      sourceTypeID smallint(6) NOT NULL,
      retrofitYearID smallint(6) NOT NULL,
      beginModelYearID smallint(6) NOT NULL,
      endModelYearID smallint(6) NOT NULL,
      cumFractionRetrofit double NOT NULL DEFAULT '0',
      retrofitEffectiveFraction double NOT NULL DEFAULT '0',
      PRIMARY KEY (pollutantID,processID,fuelTypeID,sourceTypeID,retrofitYearID,beginModelYearID,endModelYearID),
      KEY retrofitYearID (retrofitYearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    OperatingMode table

    CREATE TABLE operatingmode (
      opModeID smallint(6) NOT NULL DEFAULT '0',
      opModeName char(50) DEFAULT NULL,
      VSPLower float DEFAULT NULL,
      VSPUpper float DEFAULT NULL,
      speedLower float DEFAULT NULL,
      speedUpper float DEFAULT NULL,
      brakeRate1Sec float DEFAULT NULL,
      brakeRate3Sec float DEFAULT NULL,
      minSoakTime smallint(6) DEFAULT NULL,
      maxSoakTime smallint(6) DEFAULT NULL,
      PRIMARY KEY (opModeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The OperatingMode is used by these modules:

    Top of Page


    OpModeDistribution table

    CREATE TABLE opmodedistribution (
      sourceTypeID smallint(6) NOT NULL DEFAULT '0',
      hourDayID smallint(6) NOT NULL DEFAULT '0',
      linkID int(11) NOT NULL DEFAULT '0',
      polProcessID int(11) NOT NULL DEFAULT '0',
      opModeID smallint(6) NOT NULL DEFAULT '0',
      opModeFraction float DEFAULT NULL,
      opModeFractionCV float DEFAULT NULL,
      isUserInput char(1) NOT NULL DEFAULT 'N',
      PRIMARY KEY (hourDayID,linkID,opModeID,polProcessID,sourceTypeID),
      KEY sourceTypeID (sourceTypeID),
      KEY hourDayID (hourDayID),
      KEY linkID (linkID),
      KEY polProcessID (polProcessID),
      KEY opModeID (opModeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The OpModeDistribution is used by these modules:

    Top of Page


    OpModePolProcAssoc table

    CREATE TABLE opmodepolprocassoc (
      polProcessID int(11) NOT NULL DEFAULT '0',
      opModeID smallint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (opModeID,polProcessID),
      KEY polProcessID (polProcessID),
      KEY opModeID (opModeID),
      KEY opModeID_2 (opModeID,polProcessID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The OpModePolProcAssoc is used by these modules:

    Top of Page


    OxyThreshName table

    CREATE TABLE oxythreshname (
      oxyThreshID smallint(6) NOT NULL DEFAULT '0',
      oxyThreshName char(100) DEFAULT NULL,
      PRIMARY KEY (oxyThreshID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    pahGasRatio table

    CREATE TABLE pahgasratio (
      polProcessID int(11) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      atRatio double DEFAULT NULL,
      atRatioCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID),
      UNIQUE KEY XPKPAHGasRatio (polProcessID,fuelTypeID,modelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The pahGasRatio is used by these modules:

    Top of Page


    pahParticleRatio table

    CREATE TABLE pahparticleratio (
      polProcessID int(11) NOT NULL DEFAULT '0',
      fuelTypeID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      atRatio double DEFAULT NULL,
      atRatioCV double DEFAULT NULL,
      dataSourceId smallint(6) DEFAULT NULL,
      PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID),
      UNIQUE KEY XPKPAHParticleRatio (polProcessID,fuelTypeID,modelYearGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The pahParticleRatio is used by these modules:


    PM10EmissionRatio table

    CREATE TABLE pm10emissionratio (
      polProcessID int(11) NOT NULL,
      sourceTypeID smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      PM10PM25Ratio float NOT NULL,
      PM10PM25RatioCV float DEFAULT NULL,
      minModelYearID smallint(6) NOT NULL DEFAULT '1940',
      maxModelYearID smallint(6) NOT NULL DEFAULT '2050',
      PRIMARY KEY (polProcessID,sourceTypeID,fuelTypeID,minModelYearID,maxModelYearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The PM10EmissionRatio is used by these modules:

    Top of Page


    PMSpeciation table

    CREATE TABLE pmspeciation (
      processID smallint(6) NOT NULL,
      inputPollutantID smallint(6) NOT NULL,
      sourceTypeID smallint(6) NOT NULL,
      fuelTypeID smallint(6) NOT NULL,
      minModelYearID smallint(6) NOT NULL,
      maxModelYearID smallint(6) NOT NULL,
      outputPollutantID smallint(6) NOT NULL,
      pmSpeciationFraction double NOT NULL,
      PRIMARY KEY (processID,inputPollutantID,sourceTypeID,fuelTypeID,minModelYearID,maxModelYearID,outputPollutantID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The PMSpeciation is used by these modules:


    Pollutant table

    CREATE TABLE pollutant (
      pollutantID smallint(6) NOT NULL DEFAULT '0',
      pollutantName char(50) DEFAULT NULL,
      energyOrMass char(6) NOT NULL DEFAULT '',
      globalWarmingPotential smallint(6) DEFAULT NULL,
      NEIPollutantCode char(10) DEFAULT NULL,
      pollutantDisplayGroupID smallint(6) DEFAULT NULL,
      shortName varchar(50) DEFAULT NULL,
      isAffectedByOnroad tinyint(1) DEFAULT '1',
      isAffectedByNonroad tinyint(1) DEFAULT '0',
      PRIMARY KEY (pollutantID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The Pollutant is used by these modules:

    Top of Page


    PollutantProcessAssoc table

    CREATE TABLE pollutantprocessassoc (
      polProcessID int(11) NOT NULL DEFAULT '0',
      processID smallint(6) NOT NULL DEFAULT '0',
      pollutantID smallint(6) NOT NULL DEFAULT '0',
      isAffectedByExhaustIM char(1) NOT NULL DEFAULT 'N',
      isAffectedByEvapIM char(1) NOT NULL DEFAULT 'N',
      chainedto1 int(11) DEFAULT NULL,
      chainedto2 int(11) DEFAULT NULL,
      isAffectedByOnroad tinyint(1) DEFAULT '1',
      isAffectedByNonroad tinyint(1) DEFAULT '0',
      nrChainedTo1 int(11) DEFAULT NULL,
      nrChainedTo2 int(11) DEFAULT NULL,
      PRIMARY KEY (polProcessID),
      KEY processID (processID),
      KEY pollutantID (pollutantID),
      KEY processID_2 (processID,pollutantID,polProcessID),
      KEY pollutantID_2 (pollutantID,processID,polProcessID),
      KEY polProcessID (polProcessID,processID,pollutantID),
      KEY polProcessID_2 (polProcessID,pollutantID,processID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The PollutantProcessAssoc is used by these modules:

    Top of Page


    PollutantProcessModelYear table

    CREATE TABLE pollutantprocessmodelyear (
      polProcessID int(11) NOT NULL DEFAULT '0',
      modelYearID smallint(6) NOT NULL DEFAULT '0',
      modelYearGroupID int(11) NOT NULL DEFAULT '0',
      fuelMYGroupID int(11) DEFAULT NULL,
      IMModelYearGroupID int(11) DEFAULT NULL,
      PRIMARY KEY (modelYearID,polProcessID),
      KEY polProcessID (modelYearID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The PollutantProcessModelYear is used by these modules:

    Top of Page


    processDisplayGroup table

    CREATE TABLE processdisplaygroup (
      processDisplayGroupID smallint(6) NOT NULL,
      processDisplayGroupName char(50) NOT NULL,
      disPlayAsGroup char(1) NOT NULL,
      PRIMARY KEY (processDisplayGroupID),
      UNIQUE KEY XPKProcessDisplayGroup (processDisplayGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    processGroupID table

    CREATE TABLE processgroupid (
      processGroupID smallint(6) NOT NULL,
      processGroupName char(15) NOT NULL,
      PRIMARY KEY (processGroupID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    RefuelingFactors table

    CREATE TABLE refuelingfactors (
      fuelTypeID smallint(6) NOT NULL,
      defaultFormulationID smallint(6) DEFAULT NULL,
      vaporTermA float NOT NULL DEFAULT '0',
      vaporTermB float NOT NULL DEFAULT '0',
      vaporTermC float NOT NULL DEFAULT '0',
      vaporTermD float NOT NULL DEFAULT '0',
      vaporTermE float NOT NULL DEFAULT '0',
      vaporTermF float NOT NULL DEFAULT '0',
      vaporLowTLimit float NOT NULL DEFAULT '0',
      vaporHighTLimit float NOT NULL DEFAULT '0',
      tankTDiffLimit float NOT NULL DEFAULT '0',
      minimumRefuelingVaporLoss float NOT NULL DEFAULT '0',
      refuelingSpillRate float NOT NULL DEFAULT '0',
      refuelingSpillRateCV float NOT NULL DEFAULT '0',
      displacedVaporRateCV float NOT NULL DEFAULT '0',
      PRIMARY KEY (fuelTypeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The RefuelingFactors is used by these modules:

    Top of Page


    region table

    CREATE TABLE region (
      regionID int(11) NOT NULL,
      VV smallint(6) DEFAULT NULL,
      WW smallint(6) DEFAULT NULL,
      XX smallint(6) DEFAULT NULL,
      YY smallint(6) DEFAULT NULL,
      ZZ smallint(6) DEFAULT NULL,
      description varchar(150) DEFAULT NULL,
      PRIMARY KEY (regionID),
      KEY index1 (regionID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    regionCode table

    CREATE TABLE regioncode (
      regionCodeID int(11) NOT NULL,
      regionCodeDescription varchar(200) NOT NULL DEFAULT '',
      PRIMARY KEY (regionCodeID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    Top of Page


    regionCounty table

    CREATE TABLE regioncounty (
      regionID int(11) NOT NULL,
      countyID int(11) NOT NULL,
      regionCodeID int(11) NOT NULL,
      fuelYearID int(11) NOT NULL,
      PRIMARY KEY (regionID,countyID,regionCodeID,fuelYearID),
      KEY countyID (countyID,fuelYearID,regionCodeID,regionID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    

    RegulatoryClass table

    CREATE TABLE regulatoryclass (
      regClassID smallint(6) NOT NULL DEFAULT '0',
      regClassName char(25) DEFAULT NULL,
      regClassDesc char(100) DEFAULT NULL,
      PRIMARY KEY (regClassID)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
    


    The RegulatoryClass is used by these modules:

    Top of Page


      RetrofitInputAssociations table

      CREATE TABLE retrofitinputassociations (
        listName varchar(20) NOT NULL,
        commonName varchar(50) NOT NULL,
        idealName varchar(50) NOT NULL,
        PRIMARY KEY (listName,commonName)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      RoadOpmodeDistribution table

      CREATE TABLE roadopmodedistribution (
        sourceTypeID smallint(6) NOT NULL,
        opModeID smallint(6) NOT NULL,
        roadTypeID smallint(6) NOT NULL,
        isRamp char(1) NOT NULL DEFAULT 'Y',
        avgSpeedBinID smallint(6) NOT NULL,
        opModeFraction float NOT NULL DEFAULT '0',
        opModeFractionCV float DEFAULT NULL,
        PRIMARY KEY (sourceTypeID,opModeID,roadTypeID,isRamp,avgSpeedBinID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The RoadOpmodeDistribution is used by these modules:

      Top of Page


      RoadType table

      CREATE TABLE roadtype (
        roadTypeID smallint(6) NOT NULL DEFAULT '0',
        roadDesc char(50) DEFAULT NULL,
        rampFraction float DEFAULT NULL,
        isAffectedByOnroad tinyint(1) DEFAULT '1',
        isAffectedByNonroad tinyint(1) DEFAULT '0',
        shouldDisplay tinyint(1) DEFAULT '1',
        PRIMARY KEY (roadTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The RoadType is used by these modules:


      RoadTypeDistribution table

      CREATE TABLE roadtypedistribution (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        roadTypeID smallint(6) NOT NULL DEFAULT '0',
        roadTypeVMTFraction float DEFAULT NULL,
        PRIMARY KEY (roadTypeID,sourceTypeID),
        KEY sourceTypeID (sourceTypeID),
        KEY roadTypeID (roadTypeID),
        KEY roadTypeID_2 (roadTypeID,sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The RoadTypeDistribution is used by these modules:

      Top of Page


      SampleVehicleDay table

      CREATE TABLE samplevehicleday (
        vehID int(11) NOT NULL DEFAULT '0',
        dayID smallint(6) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        PRIMARY KEY (vehID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SampleVehicleDay is used by these modules:


      sampleVehiclePopulation table

      CREATE TABLE samplevehiclepopulation (
        sourceTypeModelYearID int(10) unsigned NOT NULL,
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        modelYearID smallint(6) NOT NULL DEFAULT '0',
        fuelTypeID smallint(5) unsigned NOT NULL,
        engTechID smallint(6) NOT NULL,
        regClassID smallint(5) unsigned NOT NULL,
        stmyFuelEngFraction double NOT NULL,
        stmyFraction double NOT NULL,
        PRIMARY KEY (sourceTypeModelYearID,fuelTypeID,engTechID,regClassID),
        KEY stmyft (sourceTypeID,modelYearID,fuelTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DELAY_KEY_WRITE=1
      


      The sampleVehiclePopulation is used by these modules:

      Top of Page


      sampleVehicleSoaking table

      CREATE TABLE samplevehiclesoaking (
        soakDayID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        dayID smallint(6) NOT NULL,
        hourID smallint(6) NOT NULL,
        soakFraction double DEFAULT NULL,
        PRIMARY KEY (soakDayID,sourceTypeID,dayID,hourID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The sampleVehicleSoaking is used by these modules:


      sampleVehicleSoakingDay table

      CREATE TABLE samplevehiclesoakingday (
        soakDayID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        dayID smallint(6) NOT NULL,
        F double DEFAULT NULL,
        PRIMARY KEY (soakDayID,sourceTypeID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The sampleVehicleSoakingDay is used by these modules:

      Top of Page


      sampleVehicleSoakingDayBasis table

      CREATE TABLE samplevehiclesoakingdaybasis (
        soakDayID smallint(6) NOT NULL,
        dayID smallint(6) NOT NULL,
        F double DEFAULT NULL,
        PRIMARY KEY (soakDayID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The sampleVehicleSoakingDayBasis is used by these modules:


      sampleVehicleSoakingDayBasisUsed table

      CREATE TABLE samplevehiclesoakingdaybasisused (
        soakDayID smallint(6) NOT NULL,
        dayID smallint(6) NOT NULL,
        F double DEFAULT NULL,
        PRIMARY KEY (soakDayID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      sampleVehicleSoakingDayUsed table

      CREATE TABLE samplevehiclesoakingdayused (
        soakDayID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        dayID smallint(6) NOT NULL,
        F double DEFAULT NULL,
        PRIMARY KEY (soakDayID,sourceTypeID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      SampleVehicleTrip table

      CREATE TABLE samplevehicletrip (
        vehID int(11) NOT NULL DEFAULT '0',
        dayID smallint(6) NOT NULL DEFAULT '0',
        tripID smallint(6) NOT NULL DEFAULT '0',
        hourID smallint(6) DEFAULT NULL,
        priorTripID smallint(6) DEFAULT NULL,
        keyontime int(11) DEFAULT NULL,
        keyOffTime int(11) NOT NULL DEFAULT '0',
        PRIMARY KEY (vehID,dayID,tripID),
        KEY vehID (vehID),
        KEY tripID (tripID),
        KEY idxPriorTripID (priorTripID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SampleVehicleTrip is used by these modules:

      Top of Page


      scc table

      CREATE TABLE scc (
        SCC char(10) NOT NULL DEFAULT '',
        fuelTypeID smallint(6) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        roadTypeID smallint(6) NOT NULL DEFAULT '0',
        processID smallint(6) NOT NULL DEFAULT '0',
        PRIMARY KEY (SCC),
        KEY fuelTypeID (fuelTypeID),
        KEY sourceTypeID (sourceTypeID),
        KEY roadTypeID (roadTypeID),
        KEY processID (processID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Sector table

      CREATE TABLE sector (
        sectorID smallint(6) NOT NULL,
        description char(40) DEFAULT NULL,
        PRIMARY KEY (sectorID),
        UNIQUE KEY XPKSector (sectorID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      SHO table

      CREATE TABLE sho (
        hourDayID smallint(6) NOT NULL DEFAULT '0',
        monthID smallint(6) NOT NULL DEFAULT '0',
        yearID smallint(6) NOT NULL DEFAULT '0',
        ageID smallint(6) NOT NULL DEFAULT '0',
        linkID int(11) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        SHO float DEFAULT NULL,
        SHOCV float DEFAULT NULL,
        distance float DEFAULT NULL,
        isUserInput char(1) NOT NULL DEFAULT 'N',
        PRIMARY KEY (ageID,hourDayID,linkID,monthID,sourceTypeID,yearID),
        KEY hourDayID (hourDayID),
        KEY monthID (monthID),
        KEY yearID (yearID),
        KEY ageID (ageID),
        KEY linkID (linkID),
        KEY sourceTypeID (sourceTypeID),
        KEY linkID_2 (linkID,yearID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SHO is used by these modules:

      Top of Page


      SizeWeightFraction table

      CREATE TABLE sizeweightfraction (
        sourceTypeModelYearID int(11) NOT NULL DEFAULT '0',
        fuelTypeID smallint(6) NOT NULL DEFAULT '0',
        engTechID smallint(6) NOT NULL DEFAULT '0',
        engSizeID smallint(6) NOT NULL DEFAULT '0',
        weightClassID smallint(6) NOT NULL DEFAULT '0',
        sizeWeightFraction float DEFAULT NULL,
        PRIMARY KEY (engSizeID,engTechID,fuelTypeID,sourceTypeModelYearID,weightClassID),
        KEY yearFuelTech (sourceTypeModelYearID,engTechID,fuelTypeID),
        KEY engTechID (engTechID),
        KEY engSizeID (engSizeID),
        KEY weightClassID (weightClassID),
        KEY sourceTypeModelYearID (sourceTypeModelYearID),
        KEY fuelTypeID (fuelTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      SoakActivityFraction table

      CREATE TABLE soakactivityfraction (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        zoneID int(11) NOT NULL DEFAULT '0',
        monthID smallint(6) NOT NULL DEFAULT '0',
        hourDayID smallint(6) NOT NULL DEFAULT '0',
        opModeID smallint(6) NOT NULL DEFAULT '0',
        soakActivityFraction float DEFAULT NULL,
        soakActivityFractionCV float DEFAULT NULL,
        isUserInput char(1) NOT NULL DEFAULT 'N',
        PRIMARY KEY (sourceTypeID,zoneID,monthID,hourDayID,opModeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SoakActivityFraction is used by these modules:

      Top of Page


      SourceBin table

      CREATE TABLE sourcebin (
        sourceBinID bigint(20) NOT NULL DEFAULT '0',
        fuelTypeID smallint(6) NOT NULL DEFAULT '0',
        engTechID smallint(6) NOT NULL DEFAULT '0',
        regClassID smallint(6) NOT NULL DEFAULT '0',
        modelYearGroupID int(11) NOT NULL DEFAULT '0',
        engSizeID smallint(6) NOT NULL DEFAULT '0',
        weightClassID smallint(6) NOT NULL DEFAULT '0',
        PRIMARY KEY (sourceBinID),
        KEY fuelTypeID (fuelTypeID),
        KEY modelYearGroupID (modelYearGroupID),
        KEY sourceBinID (sourceBinID,fuelTypeID,modelYearGroupID),
        KEY sourceBinID_2 (sourceBinID,modelYearGroupID,fuelTypeID),
        KEY fuelTypeID_2 (fuelTypeID,modelYearGroupID,sourceBinID),
        KEY fuelTypeID_3 (fuelTypeID,sourceBinID,modelYearGroupID),
        KEY modelYearGroupID_2 (modelYearGroupID,fuelTypeID,sourceBinID),
        KEY modelYearGroupID_3 (modelYearGroupID,sourceBinID,fuelTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceBin is used by these modules:

      Top of Page


      SourceBinDistribution table

      CREATE TABLE sourcebindistribution (
        sourceTypeModelYearID int(11) NOT NULL DEFAULT '0',
        polProcessID int(11) NOT NULL DEFAULT '0',
        sourceBinID bigint(20) NOT NULL DEFAULT '0',
        sourceBinActivityFraction float DEFAULT NULL,
        sourceBinActivityFractionCV float DEFAULT NULL,
        isUserInput char(1) NOT NULL DEFAULT 'N',
        PRIMARY KEY (polProcessID,sourceBinID,sourceTypeModelYearID),
        KEY sourceTypeModelYearID (sourceTypeModelYearID),
        KEY polProcessID (polProcessID),
        KEY sourceBinID (sourceBinID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceBinDistribution is used by these modules:

      Top of Page


      SourceHours table

      CREATE TABLE sourcehours (
        hourDayID smallint(6) NOT NULL DEFAULT '0',
        monthID smallint(6) NOT NULL DEFAULT '0',
        yearID smallint(6) NOT NULL DEFAULT '0',
        ageID smallint(6) NOT NULL DEFAULT '0',
        linkID int(11) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        sourceHours float DEFAULT NULL,
        sourceHoursCV float DEFAULT NULL,
        isUserInput char(1) NOT NULL DEFAULT 'N',
        PRIMARY KEY (hourDayID,monthID,yearID,ageID,linkID,sourceTypeID),
        KEY hourDayID (hourDayID),
        KEY monthID (monthID),
        KEY yearID (yearID),
        KEY ageID (ageID),
        KEY linkID (linkID),
        KEY sourceTypeID (sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceHours is used by these modules:

      Top of Page


      SourceTypeAge table

      CREATE TABLE sourcetypeage (
        ageID smallint(6) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        survivalRate double DEFAULT NULL,
        relativeMAR double DEFAULT NULL,
        functioningACFraction double DEFAULT NULL,
        functioningACFractionCV double DEFAULT NULL,
        PRIMARY KEY (ageID,sourceTypeID),
        KEY ageID (ageID),
        KEY sourceTypeID (sourceTypeID),
        KEY sourceTypeID_2 (sourceTypeID,ageID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeAge is used by these modules:


      SourceTypeAgeDistribution table

      CREATE TABLE sourcetypeagedistribution (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        yearID smallint(6) NOT NULL DEFAULT '0',
        ageID smallint(6) NOT NULL DEFAULT '0',
        ageFraction double DEFAULT NULL,
        PRIMARY KEY (ageID,sourceTypeID,yearID),
        KEY sourceTypeID (sourceTypeID),
        KEY yearID (yearID),
        KEY ageID (ageID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeAgeDistribution is used by these modules:

      Top of Page


      SourceTypeDayVMT table

      CREATE TABLE sourcetypedayvmt (
        yearID smallint(6) NOT NULL,
        monthID smallint(6) NOT NULL,
        dayID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        VMT double NOT NULL,
        PRIMARY KEY (yearID,monthID,dayID,sourceTypeID),
        KEY sourceTypeID (sourceTypeID,yearID,monthID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeDayVMT is used by these modules:


      SourceTypeHour table

      CREATE TABLE sourcetypehour (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        hourDayID smallint(6) NOT NULL DEFAULT '0',
        idleSHOFactor float DEFAULT NULL,
        hotellingdist double DEFAULT NULL,
        PRIMARY KEY (hourDayID,sourceTypeID),
        KEY sourceTypeID (sourceTypeID),
        KEY hourDayID (hourDayID),
        KEY hourDayID_2 (hourDayID,sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeHour is used by these modules:

      Top of Page


      SourceTypeModelYear table

      CREATE TABLE sourcetypemodelyear (
        sourceTypeModelYearID int(11) NOT NULL DEFAULT '0',
        modelYearID smallint(6) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        ACPenetrationFraction float DEFAULT NULL,
        ACPenetrationFractionCV float DEFAULT NULL,
        PRIMARY KEY (sourceTypeModelYearID),
        KEY modelYearID (modelYearID),
        KEY sourceTypeID (sourceTypeID),
        KEY sourceTypeModelYearID (sourceTypeModelYearID,modelYearID,sourceTypeID),
        KEY sourceTypeModelYearID_2 (sourceTypeModelYearID,sourceTypeID,modelYearID),
        KEY sourceTypeID_2 (sourceTypeID,modelYearID,sourceTypeModelYearID),
        KEY modelYearID_2 (modelYearID,sourceTypeID,sourceTypeModelYearID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeModelYear is used by these modules:

      Top of Page


      SourceTypeModelYearGroup table

      CREATE TABLE sourcetypemodelyeargroup (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        modelYearGroupID int(11) NOT NULL DEFAULT '0',
        tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
        PRIMARY KEY (sourceTypeID,modelYearGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeModelYearGroup is used by these modules:


      SourceTypePolProcess table

      CREATE TABLE sourcetypepolprocess (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        polProcessID int(11) NOT NULL DEFAULT '0',
        isSizeWeightReqd char(1) DEFAULT NULL,
        isRegClassReqd char(1) DEFAULT NULL,
        isMYGroupReqd char(1) DEFAULT NULL,
        PRIMARY KEY (polProcessID,sourceTypeID),
        KEY sourceTypeID (sourceTypeID),
        KEY polProcessID (polProcessID),
        KEY polProcessID_2 (polProcessID,sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypePolProcess is used by these modules:

      Top of Page


      SourceTypeTechAdjustment table

      CREATE TABLE sourcetypetechadjustment (
        processID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        modelYearID smallint(6) NOT NULL,
        refuelingTechAdjustment float NOT NULL DEFAULT '0',
        PRIMARY KEY (processID,sourceTypeID,modelYearID),
        KEY processID (processID),
        KEY sourceTypeID (sourceTypeID),
        KEY modelYearID (modelYearID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeTechAdjustment is used by these modules:


      SourceTypeYear table

      CREATE TABLE sourcetypeyear (
        yearID smallint(6) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        salesGrowthFactor double DEFAULT NULL,
        sourceTypePopulation double DEFAULT NULL,
        migrationrate double DEFAULT NULL,
        PRIMARY KEY (sourceTypeID,yearID),
        KEY yearID (yearID),
        KEY sourceTypeID (sourceTypeID),
        KEY sourceTypeID_2 (sourceTypeID,yearID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeYear is used by these modules:

      Top of Page


      SourceTypeYearVMT table

      CREATE TABLE sourcetypeyearvmt (
        yearID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        VMT double NOT NULL,
        PRIMARY KEY (yearID,sourceTypeID),
        KEY sourceTypeID (sourceTypeID,yearID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceTypeYearVMT is used by these modules:


      SourceUseType table

      CREATE TABLE sourceusetype (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        HPMSVtypeID smallint(6) NOT NULL DEFAULT '0',
        sourceTypeName char(50) DEFAULT NULL,
        PRIMARY KEY (sourceTypeID),
        KEY HPMSVtypeID (HPMSVtypeID),
        KEY sourceTypeID (sourceTypeID,HPMSVtypeID),
        KEY HPMSVtypeID_2 (HPMSVtypeID,sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SourceUseType is used by these modules:

      Top of Page


      sourceUseTypePhysics table

      CREATE TABLE sourceusetypephysics (
        sourceTypeID smallint(6) NOT NULL,
        beginModelYearID smallint(6) NOT NULL,
        endModelYearID smallint(6) NOT NULL,
        rollingTermA float DEFAULT NULL,
        rotatingTermB float DEFAULT NULL,
        dragTermC float DEFAULT NULL,
        sourceMass float DEFAULT NULL,
        fixedMassFactor float DEFAULT NULL,
        PRIMARY KEY (sourceTypeID,beginModelYearID,endModelYearID),
        KEY beginModelYearID (beginModelYearID,endModelYearID,sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Starts table

      CREATE TABLE starts (
        hourDayID smallint(6) NOT NULL DEFAULT '0',
        monthID smallint(6) NOT NULL DEFAULT '0',
        yearID smallint(6) NOT NULL DEFAULT '0',
        ageID smallint(6) NOT NULL DEFAULT '0',
        zoneID int(11) NOT NULL DEFAULT '0',
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        starts float DEFAULT NULL,
        StartsCV float DEFAULT NULL,
        isUserInput char(1) NOT NULL DEFAULT 'N',
        PRIMARY KEY (ageID,hourDayID,monthID,sourceTypeID,yearID,zoneID),
        KEY hourDayID (hourDayID),
        KEY monthID (monthID),
        KEY yearID (yearID),
        KEY ageID (ageID),
        KEY zoneID (zoneID),
        KEY sourceTypeID (sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The Starts is used by these modules:

      Top of Page


      startsHourFraction table

      CREATE TABLE startshourfraction (
        zoneID int(11) NOT NULL,
        dayID smallint(6) NOT NULL,
        hourID smallint(6) NOT NULL,
        allocationFraction double NOT NULL,
        PRIMARY KEY (zoneID,dayID,hourID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      startsMonthAdjust table

      CREATE TABLE startsmonthadjust (
        monthID smallint(6) NOT NULL,
        monthAdjustment double NOT NULL,
        PRIMARY KEY (monthID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      startsPerDay table

      CREATE TABLE startsperday (
        zoneID int(11) NOT NULL,
        dayID smallint(6) NOT NULL,
        yearID smallint(6) NOT NULL,
        startsPerDay double NOT NULL,
        PRIMARY KEY (zoneID,dayID,yearID),
        KEY yearID (yearID,zoneID,dayID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      StartsPerVehicle table

      CREATE TABLE startspervehicle (
        sourceTypeID smallint(6) NOT NULL DEFAULT '0',
        hourDayID smallint(6) NOT NULL DEFAULT '0',
        startsPerVehicle float DEFAULT NULL,
        startsPerVehicleCV float DEFAULT NULL,
        PRIMARY KEY (sourceTypeID,hourDayID),
        KEY sourceTypeID (sourceTypeID),
        KEY hourDayID (hourDayID),
        KEY hourDayID_2 (hourDayID,sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The StartsPerVehicle is used by these modules:

      Top of Page


      startsSourceTypeFraction table

      CREATE TABLE startssourcetypefraction (
        sourceTypeID smallint(6) NOT NULL,
        allocationFraction double NOT NULL,
        PRIMARY KEY (sourceTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      StartTempAdjustment table

      CREATE TABLE starttempadjustment (
        fuelTypeID smallint(6) NOT NULL DEFAULT '0',
        polProcessID int(11) NOT NULL DEFAULT '0',
        modelYearGroupID int(11) NOT NULL DEFAULT '0',
        opModeID smallint(6) NOT NULL DEFAULT '0',
        tempAdjustTermA float DEFAULT NULL,
        tempAdjustTermACV float DEFAULT NULL,
        tempAdjustTermB float DEFAULT NULL,
        tempAdjustTermBCV float DEFAULT NULL,
        tempAdjustTermC float DEFAULT NULL,
        tempAdjustTermCCV float DEFAULT NULL,
        startTempEquationType varchar(4) DEFAULT '',
        PRIMARY KEY (fuelTypeID,polProcessID,modelYearGroupID,opModeID),
        KEY fuelTypeID (fuelTypeID),
        KEY polProcessID (polProcessID),
        KEY modelYearGroupID (modelYearGroupID),
        KEY opModeID (opModeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The StartTempAdjustment is used by these modules:

      Top of Page


      State table

      CREATE TABLE state (
        stateID smallint(6) NOT NULL DEFAULT '0',
        stateName char(25) DEFAULT NULL,
        stateAbbr char(2) DEFAULT NULL,
        PRIMARY KEY (stateID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      SulfateEmissionRate table

      CREATE TABLE sulfateemissionrate (
        polProcessID int(11) NOT NULL DEFAULT '0',
        fuelTypeID smallint(6) NOT NULL DEFAULT '0',
        modelYearGroupID int(11) NOT NULL DEFAULT '0',
        meanBaseRate float DEFAULT NULL,
        meanBaseRateCV float DEFAULT NULL,
        dataSourceID smallint(6) DEFAULT NULL,
        PRIMARY KEY (polProcessID,fuelTypeID,modelYearGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SulfateEmissionRate is used by these modules:

      Top of Page


      SulfateFractions table

      CREATE TABLE sulfatefractions (
        processID smallint(6) NOT NULL,
        fuelTypeID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        minModelYearID smallint(6) NOT NULL,
        maxModelYearID smallint(6) NOT NULL,
        SulfatenonECPMFraction double NOT NULL,
        H2OnonECPMFraction double NOT NULL,
        BaseFuelSulfurLevel double NOT NULL,
        BaseFuelSulfateFraction double NOT NULL,
        DataSourceId smallint(6) NOT NULL DEFAULT '0',
        PRIMARY KEY (processID,fuelTypeID,sourceTypeID,minModelYearID,maxModelYearID),
        KEY processID (processID,sourceTypeID,fuelTypeID,minModelYearID,maxModelYearID),
        KEY processID_2 (processID,minModelYearID,maxModelYearID,fuelTypeID,sourceTypeID),
        KEY processID_3 (processID,minModelYearID,maxModelYearID,sourceTypeID,fuelTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The SulfateFractions is used by these modules:

      Top of Page


      SulfurBase table

      CREATE TABLE sulfurbase (
        modelYearGroupID int(11) NOT NULL DEFAULT '0',
        sulfurBase float DEFAULT NULL,
        sulfurBasis float DEFAULT '30',
        sulfurGPAMax float DEFAULT '330',
        PRIMARY KEY (modelYearGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      sulfurCapAmount table

      CREATE TABLE sulfurcapamount (
        fuelTypeID smallint(6) NOT NULL,
        sulfurCap double DEFAULT NULL,
        PRIMARY KEY (fuelTypeID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      SulfurModelCoeff table

      CREATE TABLE sulfurmodelcoeff (
        processID smallint(6) NOT NULL,
        pollutantID smallint(6) NOT NULL,
        M6emitterID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        fuelMYGroupID int(8) NOT NULL,
        sulfurFunctionID smallint(6) NOT NULL,
        sulfurCoeff float DEFAULT NULL,
        lowSulfurCoeff double DEFAULT NULL,
        PRIMARY KEY (processID,pollutantID,M6emitterID,sourceTypeID,fuelMYGroupID,sulfurFunctionID),
        KEY processID (processID,pollutantID,M6emitterID,sourceTypeID,fuelMYGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      SulfurModelName table

      CREATE TABLE sulfurmodelname (
        M6EmitterID smallint(6) NOT NULL DEFAULT '0',
        sulfurFunctionID smallint(6) NOT NULL DEFAULT '0',
        M6emitterName char(10) DEFAULT NULL,
        sulfurFunctionName char(10) DEFAULT NULL,
        PRIMARY KEY (M6EmitterID,sulfurFunctionID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      TankTemperatureGroup table

      CREATE TABLE tanktemperaturegroup (
        tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
        tankTemperatureGroupName char(50) NOT NULL DEFAULT '',
        PRIMARY KEY (tankTemperatureGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      TankTemperatureRise table

      CREATE TABLE tanktemperaturerise (
        tankTemperatureGroupID smallint(6) NOT NULL DEFAULT '0',
        tankTemperatureRiseTermA float DEFAULT NULL,
        tankTemperatureRiseTermACV float DEFAULT NULL,
        tankTemperatureRiseTermB float DEFAULT NULL,
        tankTemperatureRiseTermBCV float DEFAULT NULL,
        PRIMARY KEY (tankTemperatureGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The TankTemperatureRise is used by these modules:

      Top of Page


      TankVaporGenCoeffs table

      CREATE TABLE tankvaporgencoeffs (
        ethanolLevelID smallint(6) NOT NULL DEFAULT '0',
        altitude char(1) NOT NULL DEFAULT '',
        tvgTermA float DEFAULT NULL,
        tvgTermB float DEFAULT NULL,
        tvgTermC float DEFAULT NULL,
        PRIMARY KEY (ethanolLevelID,altitude)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The TankVaporGenCoeffs is used by these modules:


      TemperatureAdjustment table

      CREATE TABLE temperatureadjustment (
        polProcessID int(11) NOT NULL DEFAULT '0',
        fuelTypeID smallint(6) NOT NULL DEFAULT '0',
        tempAdjustTermA float DEFAULT NULL,
        tempAdjustTermACV float DEFAULT NULL,
        tempAdjustTermB float DEFAULT NULL,
        tempAdjustTermBCV float DEFAULT NULL,
        tempAdjustTermC float DEFAULT NULL,
        tempAdjustTermCCV float DEFAULT NULL,
        minModelYearID smallint(6) NOT NULL DEFAULT '1960',
        maxModelYearID smallint(6) NOT NULL DEFAULT '2050',
        PRIMARY KEY (polProcessID,fuelTypeID,minModelYearID,maxModelYearID),
        KEY polProcessID (polProcessID),
        KEY fuelTypeID (fuelTypeID),
        KEY polProcessID_2 (polProcessID),
        KEY fuelTypeID_2 (fuelTypeID),
        KEY fuelTypeID_3 (fuelTypeID,polProcessID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The TemperatureAdjustment is used by these modules:

      Top of Page


      temperatureFactorExpression table

      CREATE TABLE temperaturefactorexpression (
        processID smallint(6) NOT NULL,
        pollutantID smallint(6) NOT NULL,
        fuelTypeID smallint(6) NOT NULL,
        sourceTypeID smallint(6) NOT NULL,
        minModelYearID smallint(6) NOT NULL,
        maxModelYearID smallint(6) NOT NULL,
        tempCorrectionExpression varchar(5000) DEFAULT NULL,
        PRIMARY KEY (processID,pollutantID,fuelTypeID,sourceTypeID,minModelYearID,maxModelYearID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The temperatureFactorExpression is used by these modules:


      TemperatureProfileID table

      CREATE TABLE temperatureprofileid (
        temperatureProfileID bigint(20) NOT NULL,
        zoneID int(11) NOT NULL,
        monthID smallint(6) NOT NULL,
        PRIMARY KEY (temperatureProfileID),
        KEY zoneID (zoneID,monthID,temperatureProfileID),
        KEY monthID (monthID,zoneID,temperatureProfileID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      togSpeciation table

      CREATE TABLE togspeciation (
        fuelSubtypeID smallint(6) NOT NULL,
        regClassID smallint(6) NOT NULL,
        processID smallint(6) NOT NULL,
        modelYearGroupID int(11) NOT NULL,
        togSpeciationProfileID varchar(10) NOT NULL DEFAULT '0',
        PRIMARY KEY (fuelSubtypeID,regClassID,processID,modelYearGroupID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The togSpeciation is used by these modules:


      TOGSpeciationProfile table

      CREATE TABLE togspeciationprofile (
        mechanismID smallint(6) NOT NULL,
        togSpeciationProfileID varchar(10) NOT NULL DEFAULT '0',
        integratedSpeciesSetID smallint(6) NOT NULL,
        pollutantID smallint(6) NOT NULL,
        lumpedSpeciesName varchar(20) NOT NULL,
        TOGSpeciationDivisor double DEFAULT NULL,
        TOGSpeciationMassFraction double DEFAULT NULL,
        PRIMARY KEY (mechanismID,togSpeciationProfileID,integratedSpeciesSetID,pollutantID,lumpedSpeciesName)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The TOGSpeciationProfile is used by these modules:

      Top of Page


      TOGSpeciationProfileName table

      CREATE TABLE togspeciationprofilename (
        togSpeciationProfileID varchar(10) NOT NULL DEFAULT '0',
        TOGSpeciationProfileName varchar(100) DEFAULT NULL,
        dataSourceId smallint(6) DEFAULT NULL,
        PRIMARY KEY (togSpeciationProfileID),
        KEY TOGSpeciationProfileName (TOGSpeciationProfileName)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      WeightClass table

      CREATE TABLE weightclass (
        weightClassID smallint(6) NOT NULL DEFAULT '0',
        weightClassName char(50) DEFAULT NULL,
        midpointWeight float DEFAULT NULL,
        PRIMARY KEY (weightClassID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      

      Top of Page


      Year table

      CREATE TABLE year (
        yearID smallint(6) NOT NULL DEFAULT '0',
        isBaseYear char(1) DEFAULT NULL,
        fuelYearID int(11) NOT NULL DEFAULT '0',
        PRIMARY KEY (yearID),
        KEY isBaseYear (isBaseYear)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The Year is used by these modules:

      Top of Page


      Zone table

      CREATE TABLE zone (
        zoneID int(11) NOT NULL DEFAULT '0',
        countyID int(11) NOT NULL DEFAULT '0',
        startAllocFactor double DEFAULT NULL,
        idleAllocFactor double DEFAULT NULL,
        SHPAllocFactor double DEFAULT NULL,
        PRIMARY KEY (zoneID),
        KEY countyID (countyID),
        KEY zoneID (zoneID,countyID),
        KEY countyID_2 (countyID,zoneID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The Zone is used by these modules:

      Top of Page


      ZoneMonthHour table

      CREATE TABLE zonemonthhour (
        monthID smallint(6) NOT NULL DEFAULT '0',
        zoneID int(11) NOT NULL DEFAULT '0',
        hourID smallint(6) NOT NULL DEFAULT '0',
        temperature float DEFAULT NULL,
        temperatureCV float DEFAULT NULL,
        relHumidity float DEFAULT NULL,
        heatIndex float DEFAULT NULL,
        specificHumidity float DEFAULT NULL,
        relativeHumidityCV float DEFAULT NULL,
        PRIMARY KEY (hourID,monthID,zoneID),
        KEY monthID (monthID),
        KEY zoneID (zoneID),
        KEY hourID (hourID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The ZoneMonthHour is used by these modules:

      Top of Page


      ZoneRoadType table

      CREATE TABLE zoneroadtype (
        zoneID int(11) NOT NULL DEFAULT '0',
        roadTypeID smallint(6) NOT NULL DEFAULT '0',
        SHOAllocFactor double DEFAULT NULL,
        PRIMARY KEY (roadTypeID,zoneID),
        KEY roadTypeID (roadTypeID,zoneID)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1
      


      The ZoneRoadType is used by these modules:


      Pollutants and Modules Cross Reference

      Pollutant Process Module
      Benzene (20) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzene (20) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzene (20) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      Benzene (20) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      Benzene (20) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      Benzene (20) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      Benzene (20) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      Benzene (20) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      Benzene (20) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      Benzene (20) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      Benzene (20) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      Benzene (20) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Ethanol (21) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Ethanol (21) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Ethanol (21) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      Ethanol (21) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      Ethanol (21) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      Ethanol (21) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      Ethanol (21) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      Ethanol (21) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      Ethanol (21) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      Ethanol (21) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      Ethanol (21) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      Ethanol (21) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      MTBE (22) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      MTBE (22) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      MTBE (22) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      MTBE (22) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      MTBE (22) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      MTBE (22) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      MTBE (22) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      MTBE (22) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      MTBE (22) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      MTBE (22) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      MTBE (22) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      MTBE (22) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Naphthalene particle (23) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Naphthalene particle (23) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      1,3-Butadiene (24) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      1,3-Butadiene (24) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Formaldehyde (25) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Formaldehyde (25) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Acetaldehyde (26) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Acetaldehyde (26) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Acrolein (27) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Acrolein (27) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      2,2,4-Trimethylpentane (40) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      2,2,4-Trimethylpentane (40) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      2,2,4-Trimethylpentane (40) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      2,2,4-Trimethylpentane (40) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      2,2,4-Trimethylpentane (40) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Ethyl Benzene (41) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Ethyl Benzene (41) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Ethyl Benzene (41) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      Ethyl Benzene (41) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      Ethyl Benzene (41) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      Ethyl Benzene (41) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      Ethyl Benzene (41) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      Ethyl Benzene (41) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      Ethyl Benzene (41) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      Ethyl Benzene (41) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      Ethyl Benzene (41) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      Ethyl Benzene (41) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Hexane (42) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Hexane (42) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Hexane (42) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      Hexane (42) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      Hexane (42) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      Hexane (42) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      Hexane (42) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      Hexane (42) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      Hexane (42) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      Hexane (42) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      Hexane (42) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      Hexane (42) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Propionaldehyde (43) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Propionaldehyde (43) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Styrene (44) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Styrene (44) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Toluene (45) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Toluene (45) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Toluene (45) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      Toluene (45) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      Toluene (45) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      Toluene (45) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      Toluene (45) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      Toluene (45) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      Toluene (45) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      Toluene (45) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      Toluene (45) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      Toluene (45) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Xylene (46) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Xylene (46) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Xylene (46) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator Air toxics Calculator
      Xylene (46) Refueling Spillage Loss (19) Nonroad Air toxics Calculator Air toxics Calculator
      Xylene (46) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      Xylene (46) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      Xylene (46) Evap RecMar Neck Hose Permeation (22) Nonroad Air toxics Calculator
      Xylene (46) Evap RecMar Supply/Ret Hose Permeation (23) Nonroad Air toxics Calculator
      Xylene (46) Evap RecMar Vent Hose Permeation (24) Nonroad Air toxics Calculator
      Xylene (46) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      Xylene (46) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      Xylene (46) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      Mercury Elemental Gaseous (60) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Mercury Divalent Gaseous (61) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Mercury Particulate (62) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Arsenic Compounds (63) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Chromium 6+ (65) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Manganese Compounds (66) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Nickel Compounds (67) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Dibenzo(a,h)anthracene particle (68) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Dibenzo(a,h)anthracene particle (68) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Fluoranthene particle (69) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Fluoranthene particle (69) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Acenaphthene particle (70) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Acenaphthene particle (70) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Acenaphthylene particle (71) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Acenaphthylene particle (71) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Anthracene particle (72) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Anthracene particle (72) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benz(a)anthracene particle (73) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benz(a)anthracene particle (73) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(a)pyrene particle (74) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(a)pyrene particle (74) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(b)fluoranthene particle (75) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(b)fluoranthene particle (75) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(g,h,i)perylene particle (76) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(g,h,i)perylene particle (76) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(k)fluoranthene particle (77) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(k)fluoranthene particle (77) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Chrysene particle (78) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Chrysene particle (78) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Fluorene particle (81) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Fluorene particle (81) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Indeno(1,2,3,c,d)pyrene particle (82) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Indeno(1,2,3,c,d)pyrene particle (82) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Phenanthrene particle (83) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Phenanthrene particle (83) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Pyrene particle (84) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Pyrene particle (84) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      NonHAPTOG (88) Running Exhaust (1) Nonroad Air toxics Calculator TOG Speciation Calculator
      NonHAPTOG (88) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator TOG Speciation Calculator
      NonHAPTOG (88) Refueling Displacement Vapor Loss (18) Nonroad Air toxics Calculator TOG Speciation Calculator
      NonHAPTOG (88) Refueling Spillage Loss (19) Nonroad Air toxics Calculator TOG Speciation Calculator
      NonHAPTOG (88) Evap Tank Permeation (20) Nonroad Air toxics Calculator
      NonHAPTOG (88) Evap Hose Permeation (21) Nonroad Air toxics Calculator
      NonHAPTOG (88) Diurnal Fuel Vapor Venting (30) Nonroad Air toxics Calculator
      NonHAPTOG (88) HotSoak Fuel Vapor Venting (31) Nonroad Air toxics Calculator
      NonHAPTOG (88) RunningLoss Fuel Vapor Venting (32) Nonroad Air toxics Calculator
      1,2,3,7,8,9-Hexachlorodibenzo-p-Dioxin (130) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Octachlorodibenzo-p-dioxin (131) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,4,6,7,8-Heptachlorodibenzo-p-Dioxin (132) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Octachlorodibenzofuran (133) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,4,7,8-Hexachlorodibenzo-p-Dioxin (134) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,7,8-Pentachlorodibenzo-p-Dioxin (135) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      2,3,7,8-Tetrachlorodibenzofuran (136) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,4,7,8,9-Heptachlorodibenzofuran (137) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      2,3,4,7,8-Pentachlorodibenzofuran (138) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,7,8-Pentachlorodibenzofuran (139) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,6,7,8-Hexachlorodibenzofuran (140) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,6,7,8-Hexachlorodibenzo-p-Dioxin (141) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      2,3,7,8-Tetrachlorodibenzo-p-Dioxin (142) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      2,3,4,6,7,8-Hexachlorodibenzofuran (143) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,4,6,7,8-Heptachlorodibenzofuran (144) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,4,7,8-Hexachlorodibenzofuran (145) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      1,2,3,7,8,9-Hexachlorodibenzofuran (146) Running Exhaust (1) Nonroad Air toxics Calculator BaseRateCalculator
      Dibenzo(a,h)anthracene gas (168) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Dibenzo(a,h)anthracene gas (168) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Fluoranthene gas (169) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Fluoranthene gas (169) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Acenaphthene gas (170) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Acenaphthene gas (170) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Acenaphthylene gas (171) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Acenaphthylene gas (171) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Anthracene gas (172) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Anthracene gas (172) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benz(a)anthracene gas (173) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benz(a)anthracene gas (173) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(a)pyrene gas (174) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(a)pyrene gas (174) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(b)fluoranthene gas (175) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(b)fluoranthene gas (175) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(g,h,i)perylene gas (176) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(g,h,i)perylene gas (176) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Benzo(k)fluoranthene gas (177) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Benzo(k)fluoranthene gas (177) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Chrysene gas (178) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Chrysene gas (178) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Fluorene gas (181) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Fluorene gas (181) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Phenanthrene gas (183) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Phenanthrene gas (183) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Pyrene gas (184) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Pyrene gas (184) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Naphthalene gas (185) Running Exhaust (1) Nonroad Air toxics Calculator Air toxics Calculator
      Naphthalene gas (185) Crankcase Running Exhaust (15) Nonroad Air toxics Calculator Crankcase Emission Calculator
      Methane (CH4) (5) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
      Methane (CH4) (5) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
      Methane (CH4) (5) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator
      Methane (CH4) (5) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator
      Methane (CH4) (5) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
      Methane (CH4) (5) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
      Methane (CH4) (5) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
      Methane (CH4) (5) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
      Methane (CH4) (5) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
      Non-Methane Hydrocarbons (79) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
      Non-Methane Hydrocarbons (79) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
      Non-Methane Hydrocarbons (79) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
      Non-Methane Organic Gases (80) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
      Non-Methane Organic Gases (80) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
      Non-Methane Organic Gases (80) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
      Non-Methane Organic Gases (80) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
      Non-Methane Organic Gases (80) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
      Non-Methane Organic Gases (80) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
      Non-Methane Organic Gases (80) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
      Non-Methane Organic Gases (80) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
      Non-Methane Organic Gases (80) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
      Total Organic Gases (86) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
      Total Organic Gases (86) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
      Total Organic Gases (86) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
      Total Organic Gases (86) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
      Total Organic Gases (86) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
      Total Organic Gases (86) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
      Total Organic Gases (86) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
      Total Organic Gases (86) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
      Total Organic Gases (86) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
      Volatile Organic Compounds (87) Running Exhaust (1) Nonroad HC Speciation Calculator HC Speciation Calculator
      Volatile Organic Compounds (87) Crankcase Running Exhaust (15) Nonroad HC Speciation Calculator Crankcase Emission Calculator
      Volatile Organic Compounds (87) Refueling Displacement Vapor Loss (18) Nonroad HC Speciation Calculator HC Speciation Calculator
      Volatile Organic Compounds (87) Refueling Spillage Loss (19) Nonroad HC Speciation Calculator HC Speciation Calculator
      Volatile Organic Compounds (87) Evap Tank Permeation (20) Nonroad HC Speciation Calculator
      Volatile Organic Compounds (87) Evap Hose Permeation (21) Nonroad HC Speciation Calculator
      Volatile Organic Compounds (87) Diurnal Fuel Vapor Venting (30) Nonroad HC Speciation Calculator
      Volatile Organic Compounds (87) HotSoak Fuel Vapor Venting (31) Nonroad HC Speciation Calculator
      Volatile Organic Compounds (87) RunningLoss Fuel Vapor Venting (32) Nonroad HC Speciation Calculator
      Total Gaseous Hydrocarbons (1) HotSoak Fuel Vapor Venting (31) Nonroad Calculator
      Total Gaseous Hydrocarbons (1) Diurnal Fuel Vapor Venting (30) Nonroad Calculator
      Total Gaseous Hydrocarbons (1) Refueling Displacement Vapor Loss (18) Nonroad Calculator Refueling Loss Calculator
      Total Gaseous Hydrocarbons (1) Refueling Spillage Loss (19) Nonroad Calculator Refueling Loss Calculator
      Total Gaseous Hydrocarbons (1) RunningLoss Fuel Vapor Venting (32) Nonroad Calculator
      Total Gaseous Hydrocarbons (1) Evap Tank Permeation (20) Nonroad Calculator
      Total Gaseous Hydrocarbons (1) Evap Hose Permeation (21) Nonroad Calculator
      Atmospheric CO2 (90) Running Exhaust (1) Nonroad Calculator CO2AERunningStartExtendedIdleCalculator
      Total Energy Consumption (91) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
      Brake Specific Fuel Consumption (BSFC) (99) Running Exhaust (1) Nonroad Calculator
      Total Gaseous Hydrocarbons (1) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
      Carbon Monoxide (CO) (2) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
      Oxides of Nitrogen (NOx) (3) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
      Ammonia (NH3) (30) Running Exhaust (1) Nonroad Calculator BaseRateCalculator
      Sulfur Dioxide (SO2) (31) Running Exhaust (1) Nonroad Calculator SO2 Calculator
      Primary Exhaust PM10 - Total (100) Running Exhaust (1) Nonroad Calculator PM10 Emission Calculator
      Primary Exhaust PM2.5 - Total (110) Running Exhaust (1) Nonroad Calculator Sulfate PM Calculator
      Total Gaseous Hydrocarbons (1) Crankcase Running Exhaust (15) Nonroad Calculator Crankcase Emission Calculator
      Benzene (20) Start Exhaust (2) Air toxics Calculator
      Benzene (20) Evap Permeation (11) Air toxics Calculator
      Benzene (20) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Benzene (20) Evap Fuel Leaks (13) Air toxics Calculator
      Benzene (20) Extended Idle Exhaust (90) Air toxics Calculator
      Benzene (20) Auxiliary Power Exhaust (91) Air toxics Calculator
      Ethanol (21) Start Exhaust (2) Air toxics Calculator
      Ethanol (21) Evap Permeation (11) Air toxics Calculator
      Ethanol (21) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Ethanol (21) Evap Fuel Leaks (13) Air toxics Calculator
      MTBE (22) Start Exhaust (2) Air toxics Calculator
      MTBE (22) Evap Permeation (11) Air toxics Calculator
      MTBE (22) Evap Fuel Vapor Venting (12) Air toxics Calculator
      MTBE (22) Evap Fuel Leaks (13) Air toxics Calculator
      Naphthalene particle (23) Start Exhaust (2) Air toxics Calculator
      Naphthalene particle (23) Extended Idle Exhaust (90) Air toxics Calculator
      Naphthalene particle (23) Auxiliary Power Exhaust (91) Air toxics Calculator
      1,3-Butadiene (24) Start Exhaust (2) Air toxics Calculator
      1,3-Butadiene (24) Extended Idle Exhaust (90) Air toxics Calculator
      1,3-Butadiene (24) Auxiliary Power Exhaust (91) Air toxics Calculator
      Formaldehyde (25) Start Exhaust (2) Air toxics Calculator
      Formaldehyde (25) Extended Idle Exhaust (90) Air toxics Calculator
      Formaldehyde (25) Auxiliary Power Exhaust (91) Air toxics Calculator
      Acetaldehyde (26) Start Exhaust (2) Air toxics Calculator
      Acetaldehyde (26) Extended Idle Exhaust (90) Air toxics Calculator
      Acetaldehyde (26) Auxiliary Power Exhaust (91) Air toxics Calculator
      Acrolein (27) Start Exhaust (2) Air toxics Calculator
      Acrolein (27) Extended Idle Exhaust (90) Air toxics Calculator
      Acrolein (27) Auxiliary Power Exhaust (91) Air toxics Calculator
      2,2,4-Trimethylpentane (40) Start Exhaust (2) Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap Permeation (11) Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap Fuel Vapor Venting (12) Air toxics Calculator
      2,2,4-Trimethylpentane (40) Evap Fuel Leaks (13) Air toxics Calculator
      2,2,4-Trimethylpentane (40) Extended Idle Exhaust (90) Air toxics Calculator
      2,2,4-Trimethylpentane (40) Auxiliary Power Exhaust (91) Air toxics Calculator
      Ethyl Benzene (41) Start Exhaust (2) Air toxics Calculator
      Ethyl Benzene (41) Evap Permeation (11) Air toxics Calculator
      Ethyl Benzene (41) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Ethyl Benzene (41) Evap Fuel Leaks (13) Air toxics Calculator
      Ethyl Benzene (41) Extended Idle Exhaust (90) Air toxics Calculator
      Ethyl Benzene (41) Auxiliary Power Exhaust (91) Air toxics Calculator
      Hexane (42) Start Exhaust (2) Air toxics Calculator
      Hexane (42) Evap Permeation (11) Air toxics Calculator
      Hexane (42) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Hexane (42) Evap Fuel Leaks (13) Air toxics Calculator
      Hexane (42) Extended Idle Exhaust (90) Air toxics Calculator
      Hexane (42) Auxiliary Power Exhaust (91) Air toxics Calculator
      Propionaldehyde (43) Start Exhaust (2) Air toxics Calculator
      Propionaldehyde (43) Extended Idle Exhaust (90) Air toxics Calculator
      Propionaldehyde (43) Auxiliary Power Exhaust (91) Air toxics Calculator
      Styrene (44) Start Exhaust (2) Air toxics Calculator
      Styrene (44) Extended Idle Exhaust (90) Air toxics Calculator
      Styrene (44) Auxiliary Power Exhaust (91) Air toxics Calculator
      Toluene (45) Start Exhaust (2) Air toxics Calculator
      Toluene (45) Evap Permeation (11) Air toxics Calculator
      Toluene (45) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Toluene (45) Evap Fuel Leaks (13) Air toxics Calculator
      Toluene (45) Extended Idle Exhaust (90) Air toxics Calculator
      Toluene (45) Auxiliary Power Exhaust (91) Air toxics Calculator
      Xylene (46) Start Exhaust (2) Air toxics Calculator
      Xylene (46) Evap Permeation (11) Air toxics Calculator
      Xylene (46) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Xylene (46) Evap Fuel Leaks (13) Air toxics Calculator
      Xylene (46) Extended Idle Exhaust (90) Air toxics Calculator
      Xylene (46) Auxiliary Power Exhaust (91) Air toxics Calculator
      Dibenzo(a,h)anthracene particle (68) Start Exhaust (2) Air toxics Calculator
      Fluoranthene particle (69) Start Exhaust (2) Air toxics Calculator
      Acenaphthene particle (70) Start Exhaust (2) Air toxics Calculator
      Acenaphthylene particle (71) Start Exhaust (2) Air toxics Calculator
      Anthracene particle (72) Start Exhaust (2) Air toxics Calculator
      Benz(a)anthracene particle (73) Start Exhaust (2) Air toxics Calculator
      Benzo(a)pyrene particle (74) Start Exhaust (2) Air toxics Calculator
      Benzo(b)fluoranthene particle (75) Start Exhaust (2) Air toxics Calculator
      Benzo(g,h,i)perylene particle (76) Start Exhaust (2) Air toxics Calculator
      Benzo(k)fluoranthene particle (77) Start Exhaust (2) Air toxics Calculator
      Chrysene particle (78) Start Exhaust (2) Air toxics Calculator
      Fluorene particle (81) Start Exhaust (2) Air toxics Calculator
      Indeno(1,2,3,c,d)pyrene particle (82) Start Exhaust (2) Air toxics Calculator
      Phenanthrene particle (83) Start Exhaust (2) Air toxics Calculator
      Pyrene particle (84) Start Exhaust (2) Air toxics Calculator
      Dibenzo(a,h)anthracene gas (168) Start Exhaust (2) Air toxics Calculator
      Dibenzo(a,h)anthracene gas (168) Extended Idle Exhaust (90) Air toxics Calculator
      Dibenzo(a,h)anthracene gas (168) Auxiliary Power Exhaust (91) Air toxics Calculator
      Fluoranthene gas (169) Start Exhaust (2) Air toxics Calculator
      Fluoranthene gas (169) Extended Idle Exhaust (90) Air toxics Calculator
      Fluoranthene gas (169) Auxiliary Power Exhaust (91) Air toxics Calculator
      Acenaphthene gas (170) Start Exhaust (2) Air toxics Calculator
      Acenaphthene gas (170) Extended Idle Exhaust (90) Air toxics Calculator
      Acenaphthene gas (170) Auxiliary Power Exhaust (91) Air toxics Calculator
      Acenaphthylene gas (171) Start Exhaust (2) Air toxics Calculator
      Acenaphthylene gas (171) Extended Idle Exhaust (90) Air toxics Calculator
      Acenaphthylene gas (171) Auxiliary Power Exhaust (91) Air toxics Calculator
      Anthracene gas (172) Start Exhaust (2) Air toxics Calculator
      Anthracene gas (172) Extended Idle Exhaust (90) Air toxics Calculator
      Anthracene gas (172) Auxiliary Power Exhaust (91) Air toxics Calculator
      Benz(a)anthracene gas (173) Start Exhaust (2) Air toxics Calculator
      Benz(a)anthracene gas (173) Extended Idle Exhaust (90) Air toxics Calculator
      Benz(a)anthracene gas (173) Auxiliary Power Exhaust (91) Air toxics Calculator
      Benzo(a)pyrene gas (174) Start Exhaust (2) Air toxics Calculator
      Benzo(a)pyrene gas (174) Extended Idle Exhaust (90) Air toxics Calculator
      Benzo(a)pyrene gas (174) Auxiliary Power Exhaust (91) Air toxics Calculator
      Benzo(b)fluoranthene gas (175) Start Exhaust (2) Air toxics Calculator
      Benzo(b)fluoranthene gas (175) Extended Idle Exhaust (90) Air toxics Calculator
      Benzo(b)fluoranthene gas (175) Auxiliary Power Exhaust (91) Air toxics Calculator
      Benzo(g,h,i)perylene gas (176) Start Exhaust (2) Air toxics Calculator
      Benzo(g,h,i)perylene gas (176) Extended Idle Exhaust (90) Air toxics Calculator
      Benzo(g,h,i)perylene gas (176) Auxiliary Power Exhaust (91) Air toxics Calculator
      Benzo(k)fluoranthene gas (177) Start Exhaust (2) Air toxics Calculator
      Benzo(k)fluoranthene gas (177) Extended Idle Exhaust (90) Air toxics Calculator
      Benzo(k)fluoranthene gas (177) Auxiliary Power Exhaust (91) Air toxics Calculator
      Chrysene gas (178) Start Exhaust (2) Air toxics Calculator
      Chrysene gas (178) Extended Idle Exhaust (90) Air toxics Calculator
      Chrysene gas (178) Auxiliary Power Exhaust (91) Air toxics Calculator
      Fluorene gas (181) Start Exhaust (2) Air toxics Calculator
      Fluorene gas (181) Extended Idle Exhaust (90) Air toxics Calculator
      Fluorene gas (181) Auxiliary Power Exhaust (91) Air toxics Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Start Exhaust (2) Air toxics Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Extended Idle Exhaust (90) Air toxics Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Auxiliary Power Exhaust (91) Air toxics Calculator
      Phenanthrene gas (183) Start Exhaust (2) Air toxics Calculator
      Phenanthrene gas (183) Extended Idle Exhaust (90) Air toxics Calculator
      Phenanthrene gas (183) Auxiliary Power Exhaust (91) Air toxics Calculator
      Pyrene gas (184) Start Exhaust (2) Air toxics Calculator
      Pyrene gas (184) Extended Idle Exhaust (90) Air toxics Calculator
      Pyrene gas (184) Auxiliary Power Exhaust (91) Air toxics Calculator
      Naphthalene gas (185) Start Exhaust (2) Air toxics Calculator
      Naphthalene gas (185) Evap Permeation (11) Air toxics Calculator
      Naphthalene gas (185) Evap Fuel Vapor Venting (12) Air toxics Calculator
      Naphthalene gas (185) Evap Fuel Leaks (13) Air toxics Calculator
      Naphthalene gas (185) Refueling Displacement Vapor Loss (18) Air toxics Calculator
      Naphthalene gas (185) Refueling Spillage Loss (19) Air toxics Calculator
      Naphthalene gas (185) Extended Idle Exhaust (90) Air toxics Calculator
      Naphthalene gas (185) Auxiliary Power Exhaust (91) Air toxics Calculator
      Total Gaseous Hydrocarbons (1) Start Exhaust (2) BaseRateCalculator
      Total Gaseous Hydrocarbons (1) Brakewear (9) BaseRateCalculator
      Total Gaseous Hydrocarbons (1) Tirewear (10) BaseRateCalculator
      Total Gaseous Hydrocarbons (1) Extended Idle Exhaust (90) BaseRateCalculator
      Total Gaseous Hydrocarbons (1) Auxiliary Power Exhaust (91) BaseRateCalculator
      Carbon Monoxide (CO) (2) Start Exhaust (2) BaseRateCalculator
      Carbon Monoxide (CO) (2) Brakewear (9) BaseRateCalculator
      Carbon Monoxide (CO) (2) Tirewear (10) BaseRateCalculator
      Carbon Monoxide (CO) (2) Extended Idle Exhaust (90) BaseRateCalculator
      Carbon Monoxide (CO) (2) Auxiliary Power Exhaust (91) BaseRateCalculator
      Oxides of Nitrogen (NOx) (3) Start Exhaust (2) BaseRateCalculator
      Oxides of Nitrogen (NOx) (3) Brakewear (9) BaseRateCalculator
      Oxides of Nitrogen (NOx) (3) Tirewear (10) BaseRateCalculator
      Oxides of Nitrogen (NOx) (3) Extended Idle Exhaust (90) BaseRateCalculator
      Oxides of Nitrogen (NOx) (3) Auxiliary Power Exhaust (91) BaseRateCalculator
      Nitrous Oxide (N2O) (6) Running Exhaust (1) BaseRateCalculator
      Nitrous Oxide (N2O) (6) Start Exhaust (2) BaseRateCalculator
      Nitrous Oxide (N2O) (6) Brakewear (9) BaseRateCalculator
      Nitrous Oxide (N2O) (6) Tirewear (10) BaseRateCalculator
      Nitrous Oxide (N2O) (6) Extended Idle Exhaust (90) BaseRateCalculator
      Nitrous Oxide (N2O) (6) Auxiliary Power Exhaust (91) BaseRateCalculator
      Ammonia (NH3) (30) Start Exhaust (2) BaseRateCalculator
      Ammonia (NH3) (30) Brakewear (9) BaseRateCalculator
      Ammonia (NH3) (30) Tirewear (10) BaseRateCalculator
      Ammonia (NH3) (30) Extended Idle Exhaust (90) BaseRateCalculator
      Ammonia (NH3) (30) Auxiliary Power Exhaust (91) BaseRateCalculator
      Total Energy Consumption (91) Start Exhaust (2) BaseRateCalculator
      Total Energy Consumption (91) Brakewear (9) BaseRateCalculator
      Total Energy Consumption (91) Tirewear (10) BaseRateCalculator
      Total Energy Consumption (91) Extended Idle Exhaust (90) BaseRateCalculator
      Total Energy Consumption (91) Auxiliary Power Exhaust (91) BaseRateCalculator
      Composite - NonECPM (118) Running Exhaust (1) BaseRateCalculator Sulfate PM Calculator
      Composite - NonECPM (118) Start Exhaust (2) BaseRateCalculator Sulfate PM Calculator
      Composite - NonECPM (118) Brakewear (9) BaseRateCalculator
      Composite - NonECPM (118) Tirewear (10) BaseRateCalculator
      Composite - NonECPM (118) Extended Idle Exhaust (90) BaseRateCalculator Sulfate PM Calculator
      Composite - NonECPM (118) Auxiliary Power Exhaust (91) BaseRateCalculator Sulfate PM Calculator
      Elemental Carbon (112) Running Exhaust (1) BaseRateCalculator Sulfate PM Calculator
      Elemental Carbon (112) Start Exhaust (2) BaseRateCalculator Sulfate PM Calculator
      Elemental Carbon (112) Brakewear (9) BaseRateCalculator
      Elemental Carbon (112) Tirewear (10) BaseRateCalculator
      Elemental Carbon (112) Extended Idle Exhaust (90) BaseRateCalculator Sulfate PM Calculator
      Elemental Carbon (112) Auxiliary Power Exhaust (91) BaseRateCalculator Sulfate PM Calculator
      Primary PM2.5 - Brakewear Particulate (116) Running Exhaust (1) BaseRateCalculator
      Primary PM2.5 - Brakewear Particulate (116) Start Exhaust (2) BaseRateCalculator
      Primary PM2.5 - Brakewear Particulate (116) Brakewear (9) BaseRateCalculator
      Primary PM2.5 - Brakewear Particulate (116) Tirewear (10) BaseRateCalculator
      Primary PM2.5 - Brakewear Particulate (116) Extended Idle Exhaust (90) BaseRateCalculator
      Primary PM2.5 - Brakewear Particulate (116) Auxiliary Power Exhaust (91) BaseRateCalculator
      Primary PM2.5 - Tirewear Particulate (117) Running Exhaust (1) BaseRateCalculator
      Primary PM2.5 - Tirewear Particulate (117) Start Exhaust (2) BaseRateCalculator
      Primary PM2.5 - Tirewear Particulate (117) Brakewear (9) BaseRateCalculator
      Primary PM2.5 - Tirewear Particulate (117) Tirewear (10) BaseRateCalculator
      Primary PM2.5 - Tirewear Particulate (117) Extended Idle Exhaust (90) BaseRateCalculator
      Primary PM2.5 - Tirewear Particulate (117) Auxiliary Power Exhaust (91) BaseRateCalculator
      Petroleum Energy Consumption (92) Running Exhaust (1) BaseRateCalculator
      Petroleum Energy Consumption (92) Start Exhaust (2) BaseRateCalculator
      Petroleum Energy Consumption (92) Brakewear (9) BaseRateCalculator
      Petroleum Energy Consumption (92) Tirewear (10) BaseRateCalculator
      Petroleum Energy Consumption (92) Extended Idle Exhaust (90) BaseRateCalculator
      Petroleum Energy Consumption (92) Auxiliary Power Exhaust (91) BaseRateCalculator
      Fossil Fuel Energy Consumption (93) Running Exhaust (1) BaseRateCalculator
      Fossil Fuel Energy Consumption (93) Start Exhaust (2) BaseRateCalculator
      Fossil Fuel Energy Consumption (93) Brakewear (9) BaseRateCalculator
      Fossil Fuel Energy Consumption (93) Tirewear (10) BaseRateCalculator
      Fossil Fuel Energy Consumption (93) Extended Idle Exhaust (90) BaseRateCalculator
      Fossil Fuel Energy Consumption (93) Auxiliary Power Exhaust (91) BaseRateCalculator
      CO2 Equivalent (98) Running Exhaust (1) CO2AERunningStartExtendedIdleCalculator
      Atmospheric CO2 (90) Start Exhaust (2) CO2AERunningStartExtendedIdleCalculator
      CO2 Equivalent (98) Start Exhaust (2) CO2AERunningStartExtendedIdleCalculator
      Atmospheric CO2 (90) Extended Idle Exhaust (90) CO2AERunningStartExtendedIdleCalculator
      CO2 Equivalent (98) Extended Idle Exhaust (90) CO2AERunningStartExtendedIdleCalculator
      Atmospheric CO2 (90) Auxiliary Power Exhaust (91) CO2AERunningStartExtendedIdleCalculator
      CO2 Equivalent (98) Auxiliary Power Exhaust (91) CO2AERunningStartExtendedIdleCalculator
      Carbon Monoxide (CO) (2) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Oxides of Nitrogen (NOx) (3) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Nitrous Oxide (N2O) (6) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Ammonia (NH3) (30) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Sulfur Dioxide (SO2) (31) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Nitrogen Oxide (NO) (32) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Nitrogen Dioxide (NO2) (33) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Nitrous Acid (HONO) (34) Crankcase Running Exhaust (15) Crankcase Emission Calculator
      Total Gaseous Hydrocarbons (1) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Carbon Monoxide (CO) (2) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Oxides of Nitrogen (NOx) (3) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Methane (CH4) (5) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Nitrous Oxide (N2O) (6) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzene (20) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Ethanol (21) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      MTBE (22) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Naphthalene particle (23) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      1,3-Butadiene (24) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Formaldehyde (25) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Acetaldehyde (26) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Acrolein (27) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Ammonia (NH3) (30) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Sulfur Dioxide (SO2) (31) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Nitrogen Oxide (NO) (32) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Nitrogen Dioxide (NO2) (33) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Nitrous Acid (HONO) (34) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Non-Methane Hydrocarbons (79) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Non-Methane Organic Gases (80) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Total Organic Gases (86) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Volatile Organic Compounds (87) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      2,2,4-Trimethylpentane (40) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Ethyl Benzene (41) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Hexane (42) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Propionaldehyde (43) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Styrene (44) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Toluene (45) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Xylene (46) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Dibenzo(a,h)anthracene particle (68) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Fluoranthene particle (69) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Acenaphthene particle (70) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Acenaphthylene particle (71) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Anthracene particle (72) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benz(a)anthracene particle (73) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(a)pyrene particle (74) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(b)fluoranthene particle (75) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(g,h,i)perylene particle (76) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(k)fluoranthene particle (77) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Chrysene particle (78) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Fluorene particle (81) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Indeno(1,2,3,c,d)pyrene particle (82) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Phenanthrene particle (83) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Pyrene particle (84) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Dibenzo(a,h)anthracene gas (168) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Fluoranthene gas (169) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Acenaphthene gas (170) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Acenaphthylene gas (171) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Anthracene gas (172) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benz(a)anthracene gas (173) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(a)pyrene gas (174) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(b)fluoranthene gas (175) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(g,h,i)perylene gas (176) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Benzo(k)fluoranthene gas (177) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Chrysene gas (178) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Fluorene gas (181) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Phenanthrene gas (183) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Pyrene gas (184) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Naphthalene gas (185) Crankcase Start Exhaust (16) Crankcase Emission Calculator
      Total Gaseous Hydrocarbons (1) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Carbon Monoxide (CO) (2) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Oxides of Nitrogen (NOx) (3) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Methane (CH4) (5) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Nitrous Oxide (N2O) (6) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzene (20) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Ethanol (21) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      MTBE (22) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Naphthalene particle (23) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      1,3-Butadiene (24) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Formaldehyde (25) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Acetaldehyde (26) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Acrolein (27) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Ammonia (NH3) (30) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Sulfur Dioxide (SO2) (31) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Nitrogen Oxide (NO) (32) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Nitrogen Dioxide (NO2) (33) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Nitrous Acid (HONO) (34) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Non-Methane Hydrocarbons (79) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Non-Methane Organic Gases (80) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Total Organic Gases (86) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Volatile Organic Compounds (87) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      2,2,4-Trimethylpentane (40) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Ethyl Benzene (41) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Hexane (42) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Propionaldehyde (43) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Styrene (44) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Toluene (45) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Xylene (46) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Dibenzo(a,h)anthracene particle (68) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Fluoranthene particle (69) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Acenaphthene particle (70) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Acenaphthylene particle (71) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Anthracene particle (72) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benz(a)anthracene particle (73) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(a)pyrene particle (74) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(b)fluoranthene particle (75) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(g,h,i)perylene particle (76) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(k)fluoranthene particle (77) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Chrysene particle (78) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Fluorene particle (81) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Indeno(1,2,3,c,d)pyrene particle (82) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Phenanthrene particle (83) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Pyrene particle (84) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Dibenzo(a,h)anthracene gas (168) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Fluoranthene gas (169) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Acenaphthene gas (170) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Acenaphthylene gas (171) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Anthracene gas (172) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benz(a)anthracene gas (173) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(a)pyrene gas (174) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(b)fluoranthene gas (175) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(g,h,i)perylene gas (176) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Benzo(k)fluoranthene gas (177) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Chrysene gas (178) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Fluorene gas (181) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Indeno(1,2,3,c,d)pyrene gas (182) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Phenanthrene gas (183) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Pyrene gas (184) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Naphthalene gas (185) Crankcase Extended Idle Exhaust (17) Crankcase Emission Calculator
      Total Gaseous Hydrocarbons (1) Evap Permeation (11) Evaporative Permeation Calculator
      Methane (CH4) (5) Start Exhaust (2) HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Start Exhaust (2) HC Speciation Calculator
      Non-Methane Organic Gases (80) Start Exhaust (2) HC Speciation Calculator
      Total Organic Gases (86) Start Exhaust (2) HC Speciation Calculator
      Volatile Organic Compounds (87) Start Exhaust (2) HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Evap Permeation (11) HC Speciation Calculator
      Non-Methane Organic Gases (80) Evap Permeation (11) HC Speciation Calculator
      Total Organic Gases (86) Evap Permeation (11) HC Speciation Calculator
      Volatile Organic Compounds (87) Evap Permeation (11) HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Evap Fuel Vapor Venting (12) HC Speciation Calculator
      Non-Methane Organic Gases (80) Evap Fuel Vapor Venting (12) HC Speciation Calculator
      Total Organic Gases (86) Evap Fuel Vapor Venting (12) HC Speciation Calculator
      Volatile Organic Compounds (87) Evap Fuel Vapor Venting (12) HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Evap Fuel Leaks (13) HC Speciation Calculator
      Non-Methane Organic Gases (80) Evap Fuel Leaks (13) HC Speciation Calculator
      Total Organic Gases (86) Evap Fuel Leaks (13) HC Speciation Calculator
      Volatile Organic Compounds (87) Evap Fuel Leaks (13) HC Speciation Calculator
      Methane (CH4) (5) Extended Idle Exhaust (90) HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Extended Idle Exhaust (90) HC Speciation Calculator
      Non-Methane Organic Gases (80) Extended Idle Exhaust (90) HC Speciation Calculator
      Total Organic Gases (86) Extended Idle Exhaust (90) HC Speciation Calculator
      Volatile Organic Compounds (87) Extended Idle Exhaust (90) HC Speciation Calculator
      Methane (CH4) (5) Auxiliary Power Exhaust (91) HC Speciation Calculator
      Non-Methane Hydrocarbons (79) Auxiliary Power Exhaust (91) HC Speciation Calculator
      Non-Methane Organic Gases (80) Auxiliary Power Exhaust (91) HC Speciation Calculator
      Total Organic Gases (86) Auxiliary Power Exhaust (91) HC Speciation Calculator
      Volatile Organic Compounds (87) Auxiliary Power Exhaust (91) HC Speciation Calculator
      Total Gaseous Hydrocarbons (1) Evap Fuel Leaks (13) Liquid Leaking Calculator
      Nitrogen Dioxide (NO2) (33) Running Exhaust (1) NO2 Calculator
      Nitrogen Dioxide (NO2) (33) Start Exhaust (2) NO2 Calculator
      Nitrogen Dioxide (NO2) (33) Extended Idle Exhaust (90) NO2 Calculator
      Nitrogen Dioxide (NO2) (33) Auxiliary Power Exhaust (91) NO2 Calculator
      Nitrogen Oxide (NO) (32) Running Exhaust (1) NO Calculator
      Nitrogen Oxide (NO) (32) Start Exhaust (2) NO Calculator
      Nitrogen Oxide (NO) (32) Extended Idle Exhaust (90) NO Calculator
      Nitrogen Oxide (NO) (32) Auxiliary Power Exhaust (91) NO Calculator
      Nitrous Acid (HONO) (34) Running Exhaust (1) NO Calculator
      Nitrous Acid (HONO) (34) Start Exhaust (2) NO Calculator
      Nitrous Acid (HONO) (34) Extended Idle Exhaust (90) NO Calculator
      Nitrous Acid (HONO) (34) Auxiliary Power Exhaust (91) NO Calculator
      Primary PM10 - Brakewear Particulate (106) Brakewear (9) PM10 Brake Tire Calculator
      Primary PM10 - Tirewear Particulate (107) Tirewear (10) PM10 Brake Tire Calculator
      Primary Exhaust PM10 - Total (100) Start Exhaust (2) PM10 Emission Calculator
      Primary Exhaust PM10 - Total (100) Extended Idle Exhaust (90) PM10 Emission Calculator
      Primary Exhaust PM10 - Total (100) Auxiliary Power Exhaust (91) PM10 Emission Calculator
      Primary Exhaust PM10 - Total (100) Crankcase Running Exhaust (15) PM10 Emission Calculator
      Primary Exhaust PM10 - Total (100) Crankcase Start Exhaust (16) PM10 Emission Calculator
      Primary Exhaust PM10 - Total (100) Crankcase Extended Idle Exhaust (17) PM10 Emission Calculator
      Sulfur Dioxide (SO2) (31) Start Exhaust (2) SO2 Calculator
      Sulfur Dioxide (SO2) (31) Extended Idle Exhaust (90) SO2 Calculator
      Sulfur Dioxide (SO2) (31) Auxiliary Power Exhaust (91) SO2 Calculator
      Nitrate (NO3) (35) Running Exhaust (1) Sulfate PM Calculator
      Nitrate (NO3) (35) Start Exhaust (2) Sulfate PM Calculator
      Nitrate (NO3) (35) Extended Idle Exhaust (90) Sulfate PM Calculator
      Nitrate (NO3) (35) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Nitrate (NO3) (35) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Nitrate (NO3) (35) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Nitrate (NO3) (35) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Ammonium (NH4) (36) Running Exhaust (1) Sulfate PM Calculator
      Ammonium (NH4) (36) Start Exhaust (2) Sulfate PM Calculator
      Ammonium (NH4) (36) Extended Idle Exhaust (90) Sulfate PM Calculator
      Ammonium (NH4) (36) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Ammonium (NH4) (36) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Ammonium (NH4) (36) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Ammonium (NH4) (36) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Chloride (51) Running Exhaust (1) Sulfate PM Calculator
      Chloride (51) Start Exhaust (2) Sulfate PM Calculator
      Chloride (51) Extended Idle Exhaust (90) Sulfate PM Calculator
      Chloride (51) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Chloride (51) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Chloride (51) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Chloride (51) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Sodium (52) Running Exhaust (1) Sulfate PM Calculator
      Sodium (52) Start Exhaust (2) Sulfate PM Calculator
      Sodium (52) Extended Idle Exhaust (90) Sulfate PM Calculator
      Sodium (52) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Sodium (52) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Sodium (52) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Sodium (52) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Potassium (53) Running Exhaust (1) Sulfate PM Calculator
      Potassium (53) Start Exhaust (2) Sulfate PM Calculator
      Potassium (53) Extended Idle Exhaust (90) Sulfate PM Calculator
      Potassium (53) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Potassium (53) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Potassium (53) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Potassium (53) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Magnesium (54) Running Exhaust (1) Sulfate PM Calculator
      Magnesium (54) Start Exhaust (2) Sulfate PM Calculator
      Magnesium (54) Extended Idle Exhaust (90) Sulfate PM Calculator
      Magnesium (54) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Magnesium (54) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Magnesium (54) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Magnesium (54) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Calcium (55) Running Exhaust (1) Sulfate PM Calculator
      Calcium (55) Start Exhaust (2) Sulfate PM Calculator
      Calcium (55) Extended Idle Exhaust (90) Sulfate PM Calculator
      Calcium (55) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Calcium (55) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Calcium (55) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Calcium (55) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Titanium (56) Running Exhaust (1) Sulfate PM Calculator
      Titanium (56) Start Exhaust (2) Sulfate PM Calculator
      Titanium (56) Extended Idle Exhaust (90) Sulfate PM Calculator
      Titanium (56) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Titanium (56) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Titanium (56) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Titanium (56) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Silicon (57) Running Exhaust (1) Sulfate PM Calculator
      Silicon (57) Start Exhaust (2) Sulfate PM Calculator
      Silicon (57) Extended Idle Exhaust (90) Sulfate PM Calculator
      Silicon (57) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Silicon (57) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Silicon (57) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Silicon (57) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Aluminum (58) Running Exhaust (1) Sulfate PM Calculator
      Aluminum (58) Start Exhaust (2) Sulfate PM Calculator
      Aluminum (58) Extended Idle Exhaust (90) Sulfate PM Calculator
      Aluminum (58) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Aluminum (58) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Aluminum (58) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Aluminum (58) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Iron (59) Running Exhaust (1) Sulfate PM Calculator
      Iron (59) Start Exhaust (2) Sulfate PM Calculator
      Iron (59) Extended Idle Exhaust (90) Sulfate PM Calculator
      Iron (59) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Iron (59) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Iron (59) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Iron (59) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Primary Exhaust PM2.5 - Total (110) Start Exhaust (2) Sulfate PM Calculator
      Primary Exhaust PM2.5 - Total (110) Extended Idle Exhaust (90) Sulfate PM Calculator
      Primary Exhaust PM2.5 - Total (110) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Primary Exhaust PM2.5 - Total (110) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Primary Exhaust PM2.5 - Total (110) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Primary Exhaust PM2.5 - Total (110) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Organic Carbon (111) Running Exhaust (1) Sulfate PM Calculator
      Organic Carbon (111) Start Exhaust (2) Sulfate PM Calculator
      Organic Carbon (111) Extended Idle Exhaust (90) Sulfate PM Calculator
      Organic Carbon (111) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Organic Carbon (111) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Organic Carbon (111) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Organic Carbon (111) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Elemental Carbon (112) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Elemental Carbon (112) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Elemental Carbon (112) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Sulfate Particulate (115) Running Exhaust (1) Sulfate PM Calculator
      Sulfate Particulate (115) Start Exhaust (2) Sulfate PM Calculator
      Sulfate Particulate (115) Extended Idle Exhaust (90) Sulfate PM Calculator
      Sulfate Particulate (115) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Sulfate Particulate (115) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Sulfate Particulate (115) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Sulfate Particulate (115) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Composite - NonECPM (118) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Composite - NonECPM (118) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Composite - NonECPM (118) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      H2O (aerosol) (119) Running Exhaust (1) Sulfate PM Calculator
      H2O (aerosol) (119) Start Exhaust (2) Sulfate PM Calculator
      H2O (aerosol) (119) Extended Idle Exhaust (90) Sulfate PM Calculator
      H2O (aerosol) (119) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      H2O (aerosol) (119) Crankcase Running Exhaust (15) Sulfate PM Calculator
      H2O (aerosol) (119) Crankcase Start Exhaust (16) Sulfate PM Calculator
      H2O (aerosol) (119) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Running Exhaust (1) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Start Exhaust (2) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Extended Idle Exhaust (90) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Crankcase Running Exhaust (15) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Crankcase Start Exhaust (16) Sulfate PM Calculator
      CMAQ5.0 Unspeciated (PMOTHR) (121) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Running Exhaust (1) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Start Exhaust (2) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Extended Idle Exhaust (90) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Auxiliary Power Exhaust (91) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Crankcase Running Exhaust (15) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Crankcase Start Exhaust (16) Sulfate PM Calculator
      Non-carbon Organic Matter (NCOM) (122) Crankcase Extended Idle Exhaust (17) Sulfate PM Calculator
      CB05 Mechanism (1000) Running Exhaust (1) TOG Speciation Calculator
      CB05_ALD2 (1001) Running Exhaust (1) TOG Speciation Calculator
      CB05_ALDX (1002) Running Exhaust (1) TOG Speciation Calculator
      CB05_ETH (1005) Running Exhaust (1) TOG Speciation Calculator
      CB05_ETHA (1006) Running Exhaust (1) TOG Speciation Calculator
      CB05_FORM (1008) Running Exhaust (1) TOG Speciation Calculator
      CB05_IOLE (1009) Running Exhaust (1) TOG Speciation Calculator
      CB05_OLE (1012) Running Exhaust (1) TOG Speciation Calculator
      CB05_PAR (1013) Running Exhaust (1) TOG Speciation Calculator
      CB05_TOL (1015) Running Exhaust (1) TOG Speciation Calculator
      CB05_UNR (1017) Running Exhaust (1) TOG Speciation Calculator
      CB05_XYL (1018) Running Exhaust (1) TOG Speciation Calculator
      CB05_ISOP (1010) Running Exhaust (1) TOG Speciation Calculator
      CB05_MEOH (1011) Running Exhaust (1) TOG Speciation Calculator
      CB05_TERP (1014) Running Exhaust (1) TOG Speciation Calculator
      CB05_UNK (1016) Running Exhaust (1) TOG Speciation Calculator
      CB05 Mechanism (1000) Start Exhaust (2) TOG Speciation Calculator
      NonHAPTOG (88) Start Exhaust (2) TOG Speciation Calculator
      CB05_ALD2 (1001) Start Exhaust (2) TOG Speciation Calculator
      CB05_ALDX (1002) Start Exhaust (2) TOG Speciation Calculator
      CB05_ETH (1005) Start Exhaust (2) TOG Speciation Calculator
      CB05_ETHA (1006) Start Exhaust (2) TOG Speciation Calculator
      CB05_FORM (1008) Start Exhaust (2) TOG Speciation Calculator
      CB05_IOLE (1009) Start Exhaust (2) TOG Speciation Calculator
      CB05_OLE (1012) Start Exhaust (2) TOG Speciation Calculator
      CB05_PAR (1013) Start Exhaust (2) TOG Speciation Calculator
      CB05_TOL (1015) Start Exhaust (2) TOG Speciation Calculator
      CB05_UNR (1017) Start Exhaust (2) TOG Speciation Calculator
      CB05_XYL (1018) Start Exhaust (2) TOG Speciation Calculator
      CB05_ISOP (1010) Start Exhaust (2) TOG Speciation Calculator
      CB05_MEOH (1011) Start Exhaust (2) TOG Speciation Calculator
      CB05_TERP (1014) Start Exhaust (2) TOG Speciation Calculator
      CB05_UNK (1016) Start Exhaust (2) TOG Speciation Calculator
      CB05 Mechanism (1000) Evap Permeation (11) TOG Speciation Calculator
      NonHAPTOG (88) Evap Permeation (11) TOG Speciation Calculator
      CB05_ALD2 (1001) Evap Permeation (11) TOG Speciation Calculator
      CB05_ALDX (1002) Evap Permeation (11) TOG Speciation Calculator
      CB05_ETH (1005) Evap Permeation (11) TOG Speciation Calculator
      CB05_FORM (1008) Evap Permeation (11) TOG Speciation Calculator
      CB05_IOLE (1009) Evap Permeation (11) TOG Speciation Calculator
      CB05_ISOP (1010) Evap Permeation (11) TOG Speciation Calculator
      CB05_MEOH (1011) Evap Permeation (11) TOG Speciation Calculator
      CB05_OLE (1012) Evap Permeation (11) TOG Speciation Calculator
      CB05_PAR (1013) Evap Permeation (11) TOG Speciation Calculator
      CB05_TERP (1014) Evap Permeation (11) TOG Speciation Calculator
      CB05_TOL (1015) Evap Permeation (11) TOG Speciation Calculator
      CB05_UNR (1017) Evap Permeation (11) TOG Speciation Calculator
      CB05_XYL (1018) Evap Permeation (11) TOG Speciation Calculator
      CB05_ETHA (1006) Evap Permeation (11) TOG Speciation Calculator
      CB05 Mechanism (1000) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      NonHAPTOG (88) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_ALD2 (1001) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_ALDX (1002) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_FORM (1008) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_IOLE (1009) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_ISOP (1010) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_OLE (1012) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_PAR (1013) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_TOL (1015) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_UNR (1017) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_XYL (1018) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05_TERP (1014) Evap Fuel Vapor Venting (12) TOG Speciation Calculator
      CB05 Mechanism (1000) Evap Fuel Leaks (13) TOG Speciation Calculator
      NonHAPTOG (88) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_ALD2 (1001) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_ALDX (1002) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_FORM (1008) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_IOLE (1009) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_ISOP (1010) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_OLE (1012) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_PAR (1013) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_TOL (1015) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_UNR (1017) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_XYL (1018) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05_TERP (1014) Evap Fuel Leaks (13) TOG Speciation Calculator
      CB05 Mechanism (1000) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_ALD2 (1001) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_ALDX (1002) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_ETH (1005) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_ETHA (1006) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_FORM (1008) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_IOLE (1009) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_OLE (1012) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_PAR (1013) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_TOL (1015) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_UNR (1017) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_XYL (1018) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_ISOP (1010) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_MEOH (1011) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_TERP (1014) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05_UNK (1016) Crankcase Running Exhaust (15) TOG Speciation Calculator
      CB05 Mechanism (1000) Crankcase Start Exhaust (16) TOG Speciation Calculator
      NonHAPTOG (88) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_ALD2 (1001) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_ALDX (1002) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_ETH (1005) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_ETHA (1006) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_FORM (1008) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_IOLE (1009) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_OLE (1012) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_PAR (1013) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_TOL (1015) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_UNR (1017) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_XYL (1018) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_ISOP (1010) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_MEOH (1011) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_TERP (1014) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05_UNK (1016) Crankcase Start Exhaust (16) TOG Speciation Calculator
      CB05 Mechanism (1000) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      NonHAPTOG (88) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_ALD2 (1001) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_ALDX (1002) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_ETH (1005) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_ETHA (1006) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_FORM (1008) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_IOLE (1009) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_ISOP (1010) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_OLE (1012) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_PAR (1013) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_TERP (1014) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_TOL (1015) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_UNK (1016) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_UNR (1017) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05_XYL (1018) Crankcase Extended Idle Exhaust (17) TOG Speciation Calculator
      CB05 Mechanism (1000) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_ALD2 (1001) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_ALDX (1002) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_FORM (1008) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_IOLE (1009) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_ISOP (1010) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_OLE (1012) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_PAR (1013) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_TERP (1014) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_TOL (1015) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_UNR (1017) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05_XYL (1018) Refueling Displacement Vapor Loss (18) TOG Speciation Calculator
      CB05 Mechanism (1000) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_ALD2 (1001) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_ALDX (1002) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_FORM (1008) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_IOLE (1009) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_ISOP (1010) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_OLE (1012) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_PAR (1013) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_TOL (1015) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_UNR (1017) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_XYL (1018) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05_TERP (1014) Refueling Spillage Loss (19) TOG Speciation Calculator
      CB05 Mechanism (1000) Extended Idle Exhaust (90) TOG Speciation Calculator
      NonHAPTOG (88) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_ALD2 (1001) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_ALDX (1002) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_ETH (1005) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_ETHA (1006) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_FORM (1008) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_IOLE (1009) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_ISOP (1010) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_OLE (1012) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_PAR (1013) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_TERP (1014) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_TOL (1015) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_UNK (1016) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_UNR (1017) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05_XYL (1018) Extended Idle Exhaust (90) TOG Speciation Calculator
      CB05 Mechanism (1000) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      NonHAPTOG (88) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_ALD2 (1001) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_ALDX (1002) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_ETH (1005) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_ETHA (1006) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_FORM (1008) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_IOLE (1009) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_ISOP (1010) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_OLE (1012) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_PAR (1013) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_TERP (1014) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_TOL (1015) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_UNK (1016) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_UNR (1017) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      CB05_XYL (1018) Auxiliary Power Exhaust (91) TOG Speciation Calculator
      Total Gaseous Hydrocarbons (1) Evap Fuel Vapor Venting (12) Tank Vapor Venting Calculator

      Top of Page