SMOKE version 5.1 (July 2024)

This release focuses on bug fixes and minor enhancements to the core SMOKE programs and utility tools. Work was done to test SMOKE with additional compilers and more stringent compiler checking. Updates were also prompted by EPA's work on the 2022v1 Emissions Modeling Platform.

Updated SMOKE Core Programs
  • Laypoint
    • Update plume rise calculation to be consistent with CMAQ
  • Movesmrg
    • Allow SPEED inventory to be optional when SPDIST or SPDPRO is provided
    • Fixed an issue where Movesmrg wouldn't exit with an error when the number of errors was less than the MAXWARN setting
    • Fixed a log message formatting issue when reading the MRCLIST file
    • Fixed an initialization error when working with interpolated emission factors
  • Mrgpt
    • Renamed input environment variables from FILELIST_S to FILELIST_STACK and from FILELIST_E to FILELIST_INLN
  • Smkinven
    • Fixed array out-of-bounds issues
    • Corrected the intermediate files output by Smkinven to be consistent when processing HAPs
    • Removed incorrect error message when processing daily inventories with HAPs for the hours starting and ending Daylight Saving Time
    • Fixed incorrect pollutant conversion when processing hourly inventories with HAPs
  • Smkreport
    • Fixed array out-of-bounds issues
    • Fixed incorrectly labeled units in AERMOD report
  • Tmpbeis4
    • Revised code looping structure for efficiency
Updated SMOKE Utility Tools
  • Gentpro
    • Fixed an error related to counties that do not observe Daylight Saving Time
  • Geofac
    • Revisions to make this program functional again
Compilation Details

The executables in the smoke_v51.Linux2_x86_64ifx.20240731.tar.gz package were compiled using the Intel Fortran Compiler (ifx) Version 2024.1, on Red Hat Enterprise Linux release 8.9.

Library dependencies used for the I/O API Version 3.2:

  • zlib-1.3.1
  • szip-2.1.1
  • hdf5-1.14.3
  • netcdf-c-4.9.2
  • netcdf-fortran-4.6.1

SMOKE version 5.0 (June 2023)

Movesmrg Enhancements
  • New feature to generate the temperature-bin-specific pregridded hourly emissions for Mrggrid to efficiently generate CMAQ-ready gridded hourly emissions
    • OUTPUT_EMIS_TABLE_YN [default: N]
      : Define whether output temperature-bin precomputed gridded hourly emissions tables or not (Not applicable for RPP mode). Find the details on how the temperature-bin-specific pregridded hourly emissions approach can work for your modeling runs [CMAQ-MetEmis Dynanic Coupler Development Document].
      : MCIP meteorology inputs are not required. CMAQ-ready gridded hourly emissions can be computed by Mrggrid using the MCIP gridded temperature at 2 meters.
    • MIN_TEMP_EMIS_TABLE [default: 0.0]
      : Define the lowest temperature for precomputed emissions table output file when OUTPUT_EMIS_TABLE_YN is set to Y.
    • MAX_TEMP_EMIS_TABLE [default: 120.0]
      : Define the highest temperature for precomputed emissions table output file when OUTPUT_EMIS_TABLE_YN is set to Y.
    • TEMP_INCREMENT_EMIS_TABLE [default: 5.0]
      : Define the temperature bin increment for precomputed emissions table output file when OUTPUT_EMIS_TABLE_YN is set to Y.
  • USE_MOVES4_NOX_ADJ_EQS [default: N]
    : Use the MOVES4 NOx humidity correction equation or not
Mrggrid Enhancements
  • Generate the CMAQ-ready gridded hourly emissions for MOVES onroad mobile sources except for RPP mode. This feature can be enabled when the column B in the Mrggrid FILELIST input file is defined as "METEMIS". Optionally, the column C can be enabled to apply NOx humidity correction of MOVES mobile emissions by fuel type ("GASOLINE" or "DIESEL").
Gentpro Enhancements
  • Generate county-level [average|sum] meteorology inputs for the Farm Emissions Model (FEM)
    • AVG_RAW_OUTPUT_YN [default: N]
      : Define whether Gentrpo outputs average raw meteorology variables (temperature; wind speed; etc) or not
    • SUM_RAW_OUTPUT_YN [default: N]
      : Define whether Gentrpo outputs total raw meteorology variables (e.g., precipitation) or not
  • New feature to generate daily and monthly temporal profiles for recreational RWC SCCs based on the weekly temporal profile
    • RECREATIONAL_RWC_TPRO_YN [default: N]
      : Define whether Gentrpo generates recreational RWC temporal profiles or not
    • LOW_RWC_TEMP_THRESHOLD [default: 50.0]
      : Define the lower-end ambient temperature threshold value that can occur recreational RWC emissions from the inventory sources (recreational wood burning; firepits, chimineas, etc.)
    • HIGH_RWC_TEMP_THRESHOLD [default: 80.0]
      : Define the higher-end ambient temperature threshold value that can occur recreational RWC emissions from the inventory sources (recreational wood burning; firepits, chimineas, etc.)
    • Updated county-level temperature threshold (low and high) input file [RWC_COUNTY_TEMP]
      : Added an additional column (3rd column) for county-level higher-end temperature thresholds for RWC-related inventory sources.
  • New prefix flag for temporal profile IDs using setting PREFIX_TPRO (up to 3 characters)
Various Updates
    Normbeis4
    • Add optional check of landuse sums controlled by setting CHECK_LUSE
    • Add checks for units in landuse and biomass files
    Smkinven
    • Updated to support new processing flow for CEMS data
    • New hourly activity (HOURACT) variable added to the CEMS data for hourly temporal allocation of CEMS inventory sources
    Smkmerge
    • Use BTU/hr as output units for HFLUX
    Smkreport
    • Add new BY UNIT report option
    Temporal
    • Updated the temporal assignment hierarchy to allow for partial FIPS matches when SCC is blank or null without setting the FULLSCC_ONLY flag to TRUE

SMOKE version 4.9 (June 2022)

    Elevpoint
    • Fixed error that caused uniform stack flow (STKFLW) values to be output to the STACK_GROUPS file
    Gentpro
    • Fixed output of county codes in NetCDF files
    Movesmrg
    • Humidity adjustments are now applied to additional pollutants HONO_INV, NO_INV, and NO2_INV
    • Fixed error that caused incorrect outputs when using subsector grouping (SMK_SUB_SECTOR_OUTPUT_YN) with empty subsectors
    Normbeis3
    • Corrected land use names when using BEIS3.7
    • Updated definition of MODIS_14 (Cropland/Natural Vegetation Mosaic)
    Normbeis4 / Tmpbeis4
    • New programs to support using BEIS4 emissions factors and BELD6 land use data
    Smkmerge
    • Fixed error that caused incorrect outputs when using subsector grouping (SMK_SUB_SECTOR_OUTPUT_YN) with empty subsectors
    Smkreport
    • Column headers in point source reports now match Flat File 2010 terminology (Facility ID, Unit ID, Rel Point ID, Process ID)
    • New "BY FACILITY" option in the REPCONFIG file replicates the existing "BY PLANT" instruction
    • New "BY BOILER" REPCONFIG option summarizes emissions by ORIS Boiler ID
    • Fixed issue when using the AERMOD instruction so that coordinate system transformations use the IOAPI_ISPH environment variable
    Temporal
    • Corrected profile ID in error message about a missing Sunday hour-of-day profile

SMOKE version 4.8.1 (January 2021)

    Spcmat Updates
    • USE_REF_COUNTY_MAP_YN [default:N]: New feature to assign speciation profiles by reference county based on the inventory-reference county cross-reference input file (MCXREF).
    Smkmerge and Movesmrg Updates
    • SMK_SUB_SECTOR_OUTPUT_YN [default:N]: Generate sub-sector source group emissions output files based on the list of source group ID defined in (SOURCE_GROUPS).
    Smkreport Updates
    • Updated "BY SPCCODE" summary report to output associated model species along with a targeted inventory pollutant.

SMOKE version 4.8 (October 2020)

    New MOVES RatePerStart (RPS) Mode
    • New feature in Movesmrg for users to model Off-Network Start Exhaust and Crankcase Start Exhaust processes that are currently modeled under RatePerVehicle (RPV) mode.
    • Unit of RPS emission rate is mass per vehicle-engine start (grams/vehicle-start).
    • New "STARTS" activity inventory is required to compute RPS emissions with RPS emission rates.
    • RPS_MODE [default: N] : Estimates off-network RPS emissions from engine starts.
    New New Off-Network Idling (ONI) Mode
    • New feature in Movesmrg for users to model idling emissions from parking lot, distribution centers and other off-network spaces.
    • Previously modeled under RatePerDistance (RPD) mode with roadtypes=1 (off-network) and speedbin=0 (speed=zero).
    • Unit of ONI emission rate is mass per vehicle-idling hour (grams/hour).
    • New "IDLING" activity inventory is required to compute ONI emissions with ONI emission rates.
    • ONI_MODE [default: N] : Estimates off-network idling emissions from parking, and distribution centers.
    New Source Apportionment Regroup Tool BEIS v3.7 Enhancements
    • New BEIS Emission Factors (BEISFAC) and BELD5 landuse input files are required.
    • Latest BEISFAC and North America region BELD5 (1km x 1km) input files for BEIS v3.7 can be found from the CMAS Data Warehouse.
    • Custom BELD5 input file over your modeling domain can be developed using new updated Aggwndw utility program in SMOKE that can optionally aggregate non-mass values with the setting of AGGREGATE_EMIS_YN = N.
    SMOKE4AERMOD Updates
    • Added new command "AERMOD ANNUAL" in Smkreport to generate emission helper files for AERMOD model for sectors other than onroad.
    • Overall updates across all sectors (e.g., point, area, commercial marine vessel port & underway, and gridded sectors).
    Laypoint Updates
    • Update to treat new WRF hybrid-vertical coordinate type (-999) as existing sigma (7) coordinate.
    • Update to enforce fire bottom plume height starting from surface layer.
    • New FIRE_BOTTOM_LAYER_1_YN [Default: Y]: Define the bottom of fire plume as model layer 1.
    Smkinven Updates
    • Prevent from dropping CEMS hourly NOX and SO2 emissions when all CEMS parameters (e.g., heat input, steam load and gross load) are missing.
    • Update to proper handle multiple ORIS and Boiler IDs CEMS sources under the same point source Unit ID.
    • PROCESS_MULT_ORIS_UNITS_YN [default: N]: Allows Smkinven to append "__##" to Unit ID to treat them as separate point sources.
    Spcmat and Smkreport Updates
    • Generate correct Smkreport reports for the inventory sources with multiple speciation profiles assigned by GSPRO_COMBO and/or multiple GSREF cross-referencing approaches.
    • New speciation profile description (GSPRODESC) input file support in Smkreport. Users can optionally output the speciation profile descriptions to Smkreport "BY SPCCODE" report.

SMOKE version 4.7 (October 2019)

    Average Speed Distribution (ASD) Enhancement
    • New feature in Movesmrg for users to optional to apply hour-specific average speed distribution profiles based on 16-speed bins by FIPS, vehicle, road, fuel, process, and day of the week
    • USE_AVG_SPD_DIST [default: N]: Define whether to apply hourly average speed distribution profiles by hour or not
    • AVGSPD_SCCXREF: Average speed distribution SCC mapping input file
    • SPDIST: 16-speed bin average speed distribution profiles sorted by FIPS, SCC, day of the week and hour
    • The impacts of these ASD correction applications have been analyzed in the presentation from the 2019 International Emissions Inventory Conference
    NOx Humidity Correction Enhancement
    • New feature in Movesmrg for users to correct NOx emissions from exhaust processes using the gridded hourly MCIP meteorology input data
    • APPLY_NOX_HUMIDITY_ADJ [default: N]: Define whether to apply NOx humidity correction to all NOx emissions from RatePerDistance (RPD) and RatePerHour (RPH) modes
    • To avoid double NOx humidity correction to existing MOVES lookup tables that already adjusted NOx humidity correction, new header line "HUMIDITY_ADJUSTED_NOX [Y|N]" has been added. If HUMIDITY_ADJUSTED_NOX is set to Y, then APPLY_NOX_HUMIDITY_ADJ=Y setting will be ignored. If there is no header line exited, APPLY_NOX_HUMIDITY_ADJ=Y setting will be also ignored based on an assumption that those MOVES lookup tables already adjusted NOx humidity correction during the MOVES runs
    • Use the official MOVES 2014 NOx humidity correction equation (K):
    • "K =1.0-(Specific humidity-75%)*Humidity correction coefficient"
    • The bounded Specific humidity unit is in units of grains of water per pound of dry air. The specific humidity is not allowed to be lower than 21 grains and is not allowed to be larger than 124 grains. If the specific humidity input exceeds these limits, the value of the limit is used to calculate the humidity adjustment. Humidity correction coefficients: 0.0038 for Gasoline fuel type and 0.0026 for Diesel fuel type
    • The impacts of NOx humidity correction applications have been analyzed in the presentation from the 2019 International Emissions Inventory Conference
    Grdmat Updates
    • Fixed a bug of initialization of sphere specification (IOAPI_ISPH)
    • Updated to treat all modeling domain parameters as double precision
    Temporal Updates
    • Added new hierarchy for Plant Identification and Unit Identification level temporal cross-reference entry

SMOKE version 4.6 (September 2018)

    SMOKE4AERMOD Development
    • Generates customized Smkreport summary reports based on the latest U.S. EPA NEI inventories for SMOKE4AERMOD post-processing scripts that generate AERMOD helper input files for various inventory sectors. Following sectors are covered to support upcoming U.S. EPA NATA 2014 studies:
    • Supported Inventory Sectors: Nonpoint, Nonpoint oil and gas (np_oilgas), Point EGU (ptegu), Point Non-IPM (ptnonipm), Point Airports (ptairport), Nonroad, Onroad (RPD, RPV, RPH, RPP), Residential Wood Combustions (RWC), Commercial Marine Vessel (CMV) and Rail
    • SMOKE4AERMOD Design Documents describing how to develop sector-specific AERMOD helper input files for AERMOD chi/Q mode
    • Bug fixes since the SMOKE version 4.5 release in April 2017
    Elevpoint Updates
    • Bug fix to avoid stacksize memory limit issue by reducing the local array size
    • Added NAICS code into an elevated source grouping supplimentary report (REPPELV)
    Grdmat Updates
    • Bug fix for a proper reprojection to the same latitude-longitude projection pregridded emissions like EDGAR, RCP and HTAP global emissions input files
    Movesmrge Updates
    • Reset any negative emission factors from MOVES lookup tables and give a warning message
    Inlineto2D [New Tool]
    • Allows users to merge the CMAQ inline-ready 2-D point sources emissions (INLN) and elevated source stack group (STACK_GROUPS) files to generate 2-D hourly emissions for their quality assurances checks
    Smkinven Updates
    • Bug fix to support a full or partial annual/daily/hourly TOG and HAPs integration
    SMOKE Enhancements and Bug fixes
    • Expansion of the length of all stationary point source characteristics (i.e., Facility ID, Unit ID, Release point ID, and Process ID) from 15 characters to 20 characters
    • Treat stationary point source location coordinates as double precision to improve the accuracy of source locations within the modeling domain
    • Increased the length of Source Type (SRCTYPE) from 2 characters to 3 characters

SMOKE version 4.5 (April 2017)

    SMOKE Digital Object Identifier (DOI)
    • SMOKE version 4.5 DOI: DOI
    SMOKE4AERMOD Development: Generating AERMOD helper input files for AERMOD chi/Q mode.
    • Generates customized Smkreport summary reports based on the latest U.S. EPA NEI inventories for SMOKE4AERMOD post-processing scripts that generate AERMOD helper input files for various inventory sectors. Following sectors are covered to support upcoming U.S. EPA NATA 2014 studies:
    • nonpoint, nonpoint oil and gas (np_oilgas), ptegu, ptnonipm, point airports (ptairport), nonroad, onroad, residential wood combustions (rwc), commercial marine vessel (CMV) and rail
    • Detail information about how to develop sector-specific AERMOD helper input files from SMOKE4AERMOD post-processing scripts
    • Required to update to SMOKE v4.5 including Smkinven, Temporal and Smkreport updates listed below.
    Smkreport Updates
    • New "BY" Command for AERMOD support runs
      • For ptegu sector : AERMOD POINT PTEGU
      • For ptnonipm sector : AERMOD POINT PTNONIPM
      • For other sectors: AERMOD NONPOINT
    • New "CROSSWALK" Command for stationary point source sectors
      • Generates a supplementary cross-walk mapping output file that shows how inventory sources are grouped.
    Smkinven Updates
    • Support a full daily/hourly TOG and HAPs integration. Along with annual inventory TOG and HAPs integration, daily and hourly inventories can be fully or partially integrated.
    • OUTPUT_LOCAL_TIME [default:N]
    • Y: Process daily/hourly inventories in local time to support AERMOD ptegu sector. No time zone shift.
    • NO_STACK_REPLACE_FUGITIVE [default:N]
    • Y: Skip correcting any missing and/or out-of-range stack parameters to support AERMOD point sectors (i.e., ptegu, ptairport, ptnonipm).
    Temporal Updates
    • OUTPUT_LOCAL_TIME [default:N]
    • Y: Process daily/hourly inventories in local time to support AERMOD ptegu sector. No time zone shift.
    Spcmat Updates
    • New Fraction-enabled GSRE Input file that allows users to apply multiple chemical speciation profiles to a single inventory source. Check out the new split factor column M in GSREF input file.
    • CMB_CHKFRACS [default:Y]
    • Y: Check whether whether the sum of multiple speciation profile split factors is equal to 1.0 or not.
    Elevpoint Updates
    • ELEV_WRITE_FAKE_SRC [default:Y]
    • Y: Output a fake source group when there is no an elevated source group to report.
    Other bug fixes
    • Several minor bugs have been fixed since SMOKE v4.0 release (September 2016).

SMOKE version 4.0 (September 2016)

    Supports EDGAR Gridded Inventories
    • Processes the global gridded inventories, such as the Emissions Database for Global Atmospheric Research (EDGAR) inventories
    • IMPORT_GRDNETCDF_YN [default:N]
    • Y: Import native NetCDF formatted gridded inventory files
    • NETCDF_INV_YEAR [default: 0]
    • : YYYY Defines the year of the NetCDF gridded inventory
    • GRIDMASK input file that
    • : Contains an assigned 5-digit country codes and time zones for each grid cell. This is required to process the NetCDF formatted inventory files. With this GRIDMASK approach, user will be able to apply a different time zone as well as control factors by country level. The pre-generated GRIDMASK input file for the EDGAR inventory (for an example year) will be provided as a part of the SMOKE v4.0 package.
    • Added the sample case of EDGAR gridded inventory processing in the SMOKE v4.0 release package.
    New Geographical Code (GEOCODE_LEVEL) Approach
    • It is the new alternative method to replace COSTCY (traditional 6-digit FIPS code). As of SMOKE v4.0, traditional 6-digit integer FIPS will be treated as 12-characters.
    • USE_EXP_GEO_CODE [default: N]
    • Y: Use GEOCODE_LEVEL[1-4] input files to replace COSTCY input file
    Supports California Air Resource Board (CARB) expanded 20-characters SCC and SIC
      : As of SMOKE v4.0, SCC and SIC are internally treated as 20-characters.
    Processes CARB's gridded daily/hourly MEDS (Modeling Emissions Data System) inventories
    • IMPORT_MEDS_YN [default:N]
    • Y: Import MEDS-formatted hourly or daily inventory files
    • New GAI_LOOKUP_TABLE input file
    • : this new Geographic Area Index (GAI) lookup table is required to process the MEDS-formatted input files from CARB.
    • New ROWCOL_LATLON input file
    • : this new file contain a list of latitude and longitude coordinate for each grid cell to process the MEDS-formatted input files from CARB.
    • Download the Smoke2meds package
    • : User can create MEDS formatted inventory files using the smkrprt2meds.py (python script) that allows users to convert Smkreport summary reports into MEDS inventory files. The smoke2meds package including sample input/output files, and smkrpt2meds.py script.
    Smkreport update to generate CARB's Quality Assurance Data Extraction Format (QADEF) summary reports
      : Added a new command called "CARB_QADEF" to generate CARB's QADEF summary report in Smkreport
    Latest IOAPI version 3.2 or later is required to compile the SMOKE version 4.0
    Restructured the entire SMOKE source code directory: Merged EDSS_TOOl and FileSetAPI libraries into SMOKE main libraries.
    Retired most of fixed formatted input files in SMOKE system (i.e., IDA, EMS-95, and so on)
    Introducing the SMOKE wiki page: Please check out the latest information of NEI emissions modeling platform packages.
    Other minor updates and bug fixes:
    • Temporal: Incorrect time zones shift bug fix for Eastern Hemispheric
    • Gentpro: Updated to support new csv-formatted temporal profiles (TPRO) and cross-reference input file (TREF)

SMOKE version 3.7 (September 2015)

    Temporal
    • Bug fix: Correctly apply Temporal hierarchy combination of FIPS and Plant ID for stationary point sources.
    BEIS v3.6.1
    • Updated BEIS_VERSION value from "3.6" to "3.6.1".
    FF10 Fire Inventory Support
    • Added an option in Smkinven to share the daily point FF10-formatted inventory for fire daily inventory with precomputed heat flux (HFLUX).
    Gentpro
    • Enhancements: Updated to output new temporal profile (TPRO) and cross-reference (TREF) input files Riva Giuseppe Maurizio updated to support the latest FF10 formats
    Invsplit
    • Enhancements: Riva Giuseppe Maurizio updated to support the latest FF10 formats
    Movesmrg
    • Enhancement: Apply the same internal SCC cross-referencing input file (SCCXREF) used for mobile activity inventories (i.e., VMT, VPOP, HOTELLING) to an optional averaged vehicle speed hourly profiles input file (SPDPRO) for RatePerDistance (RPD) processing.
    • Enhancement: Implemented a total of 21 hierarchy combinations based on FIPS, SCC, month and pollutant name for an optional control factors input file (CFPRO).
      • 1. Country/state/county code, 10-digit SCC, month, and pollutant
      • 2. Country/state/county code, 10-digit SCC, and month
      • 3. Country/state/county code, 10-digit SCC, and pollutant
      • 4. Country/state/county code, and 10-digit SCC
      • 5. Country/state code, 10-digit SCC, month, and pollutant
      • 6. Country/state code, 10-digit SCC, and month
      • 7. Country/state code, 10-digit SCC, and pollutant
      • 8. Country/state code, and 10-digit SCC
      • 9. 10-digit SCC, month, and pollutant
      • 10. 10-digit SCC, and month
      • 11. 10-digit SCC, and pollutant
      • 12. 10-digit SCC
      • 13. Country/state/county code, month, and pollutant
      • 14. Country/state/county code, and month
      • 15. Country/state/county code, and pollutant
      • 16. Country/state/county code
      • 17. Country/state code, month, and pollutant
      • 18. Country/state code, and month
      • 19. Country/state code, and pollutant
      • 20. Country/state code
      • 21. Ultimate default (no pollutant, no month, country/state/county code = 0, SCC = 0)

SMOKE version 3.6.5 (June 2015)

    Movesmrg
    • Use USE_SPCMAT_SPC_YN to optionally estimate air quality model species using chemical speciation profiles [GSPRO] input file. This option will allow users not to use MOVES-generated model species emission rates.
    Spcmat
    • New flag DEFAULT_CONV_FAC_ERROR that gives an error when there is no matched VOC to TOG conversion factor entry in GSCNV input file instead of warning message.
    BEIS v3.6.1 Release
    • Fixed BEIS v3.6.1 including a bug fix occurred in the BEIS3.6.
    Temporal
    • Correctly time-shift Eastern hemisphere inventory sources.
    Smkreport
    • Added new "BY" instruction commands to create various temporal profile summary reports. Detail information is available at Smkreport BY Instruction.
      • BY MONCODE: Report by monthly temporal profile types
      • BY DOMCODE: Report by month to day temporal profile types
      • BY WEKCODE: Report by weekly temporal profile types
      • BY MNDCODE: Report by hourly Monday temporal profile types
      • BY TUECODE: Report by hourly Tuesday temporal profile types
      • BY WEDCODE: Report by hourly Wednesday temporal profile types
      • BY THUCODE: Report by hourly Thursday temporal profile types
      • BY FRICODE: Report by hourly Friday temporal profile types
      • BY SATCODE: Report by hourly Saturday temporal profile types
      • BY SUNCODE: Report by hourly Sunday temporal profile types
      • BY METCODE: Report by meteorology-based hourly temporal profile types

SMOKE version 3.6 (September 2014)

    MOVES2014 Support
    • New Source Category Codes (SCCs) from MOVES2014 created by U.S. EPA. Detail information from New SCCs information
    • Use USE_SCC_REF_YN option in Smkinven to use the new SCC8-to-SCC10 cross-reference input file (SCCXREF) to disaggregate SCC8-level mobiles source activity invenotry data (i.e., VMT, VPOP, SPEED and HOTELLING) into full SCC10-level.
    • Optionally drop any SCCs not listed in SCCXREF input file with EXCLUDE_REF_SCC_YN = Y when USE_SCC_REF_YN is set to Y.
    • SMOKE-MOVES2010 Processes names (i.e., EXH, EVP, and so on) are longer use in SMOKE-MOVES2014 integration tool.
    • New MOVES2014 Processing Scripts to support SMOKE-MOVES2014 integration tool. Detail information about "how to use the scripts" from MOVES Utility Scripts
    • Download the latest SMOKE-MOVES2014 Processing Scripts to create SMOKE-ready MOVES2014 Lookup tables.
    Movesmrg
    • Optimization update that enhanced Movesmrg computational time up to 40%.
    • New RatePerHour (RPH) mode is added to model Extended Idel Exhaust process separately
    • USE_REF_CONTROL_FAC_YN flag to apply control factors by reference county when USE_CONTROL_FACTORS is set to Y.
    • USE_EXP_CONTROL_FAC_YN flag to apply control factors by explicit inventory pollutant and model species names when USE_CONTROL_FACTORS is set to Y.
    • Use MTMP_OUTPUT_YN to Optionally ouptput hourly emissions (a.k.a. Temporal intermediate output files) for Smkreport to generate hourly emissions summary reports based on Movesmrg hourly emissions estimates. NOTE: User must NOT use "BY CELL" instruction in Smkreport REPCONFIG input file. "BY CELL" report will generate inconsistent results since the hourly gridded emissions are estimated by Movesmrg instead of Grdmat.
    Temporal
    • New CVS-formatted Temporal profiles and cross-reference input files: [A|M|P]TPRO_[MONTHLY|WEEKLY|DAILY|HOURLY] and [A|M|P]TREF.
    • New Month to Day Temporal profile input file ([A|M|P]TPRO_DAILY) is introduced
    • Use Temporal Profiles and Reference Files Converter Script to convert older TPRO and TREF input files into new CVS-formatted Temporal profiles and cross-reference input flies.
    BEIS v3.6 Release
    • Latest BEIS v3.6 is now integrated into SMOKE v3.6.
    • Check out new input files (B360FAC and BELD4) required by BEIS v3.6
    Source Apportionment Support
    • Updated to fully support area, point and biogenic source categories in SMOKE modeling system.

SMOKE version 3.5 (September 2013)

    MOVES Driver Script: Runspec_generator.pl
    • Updated to read new "MOVES_RH_OUTFILE" output file from Met4moves to support daily gridded min/max temperatures in MOVES RPP processing in SMOKE.
    MOVES Post-processing Script: Moves2smkEF.pl
    • Updated a list of pollutants processed through MOVES-SMOKE integration tool.
    Gentpro
    • Added a new profile method "BASH_NH3" under "PROFILE_METHOD" that allows users to calculate temporal hourly profiles for livestock ammonia sources, and renamed the original AGNH3 method to RC_NH3.

    • RC_NH3: use the Russell and Cass algorithm to calculate temporal hourly profiles for agricultural ammonia sources
    • BASH_NH3: Use the algorithm to calculate temporal hourly profiles for livestock ammonia sources: Added a new "AERO_RESISTANCE_VAR" for aerodynamic resistance variable name for the BASH_NH3 method.
    Met4moves
    • Added a new flag "SPEFIFIC_HUMIDITY_YN" that allows users to optionally output specific humidity by temperature bin instead of relative humidity(RH)

    • Added a new output file "MOVES_RH_OUTFILE" for MOVES runspec_generator script to create RPD and PRV runspec MOVES input files. It contains the reference county-specific average RH, minimum and maximum temperatures by temperature bin and fuel month.

    • Disabled RH_STR_HOUR and RH_END_HOUR flags. All hour RH values will be used to compute average RH by temperature bin. MIN_NO_RH_BY_TEMPBIN flag to determine number of sources to compute average RH by temperature bins.

    • Removed AVERAGING_METHOD: [default: DAILY]. No longer support for Monthly averaging method for RPP processing

    Movesmrg
    • Added Source grouping option to support source apportionment method in CAMx and CMAQ models

    • Optionally output hourly emissions (Temporal intermediate output file) using MTMP_OUTPUT_YN. It requires new environment variable "MTMP_INV" as the output filename

    • Process new gridded min/max daily temperatures for RPP mode processing

    • Added warning message when there is no activity inventory SCC found in MOVES Lookup tables

    • Bug fix: Does not look for Jan 1 following year to process Dec 31

    Laypoint
    • New vertical allocation algorithm when processing pre-computed plume rise variables (i.e., LAY1F, PBOT, PTOP) to avoid any discontinuity of plume during the model layer vertical allocations.

    Smkinven
    • Enabling combining VOC and HAPs together for hourly and daily inventories for ORL and FF10 formats.

    • No longer setting all pollutants to zero when CEM NOx hourly emissions is zero.

    • Bug fix: Processing FF10_[NONPOINT|POINT]_[HOURLY|DAILY] inventory data files.

    • Bug fix: Replaced NHAPEXCLUDE_YN flag with SMK_PROCESS_HAPS. NHAPEXCLUDE_YN flag is no longer in use.

    Smkmerge
    • Source apportionment in SMOKE consists of grouping sources by characteristics (i.e. FIPS code, SCC, and point source information) and then tagging the emissions from those groupings for further analysis in the air quality model. The SMOKE programs Movesmrg and Smkmerge can optionally output the emissions in special files used for later source apportionment processing. See detail information from SMOKE v3.5 user's guide Chapter 4.4.24.

    Spcmat
    • Expand speciation profile ID greater than 5 digit.

SMOKE version 3.1 (September 2012)

    MOVES Driver Script: Runspec_generator.pl
    • Added new pollutants (VOC and Hg) into a list of output pollutants.
    • Added refueling (RFL) process IDs for RPD and RPV as a part of support of MOVES 2010b.
    MOVES Post-processing Script: Moves2smkEF.pl
    • moves2smkEF.pl [--output expanded|consolidated|all] [-c] [-r RPD|RPV|RPP] InputDBlist OutputPath
    • : Added two new features [-r and -c] that allow the user to create various types of MOVES lookup tables. See more detail information at http://www.smoke-model.org/version3.1/html/ch05s02s04.html
    • Uses an optional ' -r' flag to indicate which process type of output files are desired: RPD, RPV or RPP. The default setting is to create all three at once.
    • Uses an optional ' -c' flag to indicate whether to create combined tables that contain both the refueling (RFL) process along with other processes. The default setting is to create separate tables for refueling.
    MOVES Post-processing Script: SmkEFsum.pl
    • SmkEFsum.pl [--delete] [-c] [-r RPD|RPV|RPP] InputDBlist OutputPath
    • : Added two new feature [-c and -r] that allow the user to create process type of MOVES lookup tables desired. See more detail information at http://www.smoke-model.org/version3.1/html/ch05s02s04.html'
    • Uses an optional ' -r' flag to indicate which process type of output files are desired: RPD, RPV or RPP. The default setting is to create all three at once.
    • Uses an optional ' -c' flag to indicate whether to create combined tables that contain both the refueling (RFL) process along with other processes. The default setting is to create separate tables for refueling.
    Met4moves
    • AVERAGING_METHOD: [default:DAILY]
    • : Defines averaging method to create inventory county-specific averaged RH and min/max temperatures for MOVES RPP processing.
      • DAILY: Daily averaged RH and min/max temperatures for each inventory county within the user-specified modeling episode
      • MONTHLY: Monthly averaged RH and min/max temperatures for each inventory county within the user-specified modeling episode
    • TEMP_BUFFER_BIN: [default: 0.0]
    • : Defines the temperature buffer value (°F). This value will allow Met4moves to expand the min/max temperature range for MOVES RPP processing. If TEMP_BUFFER_BIN is set to 10.0, the original max temperature which is 90.0°F will be treated as 100.0°F, and the original minimum temperaure which is 30°F will be treated as 20.0°F internally in Met4moves.
    Movesmrg
    • MEMORY_OPTIMIZE_YN: [default:Y]
    • : Allow the user to use less RAM memory. However, it will increase computational time of RPD_MODE and RPV_MODE runs.
      • Y: Runs in memory optimization mode
      • N: Runs in faster mode using high capacity of RAM memory
    • USE_CONTROL_FACTORS: [default:N]
    • : Allows the user to apply control factor by region, SCC, pollutant, process mode, and month.
      • Y: Apply control factors to MOVES emission rates from MOVES lookup tables.
      • N: Do not apply control factors
    • TEMP_BUFFER_BIN: [default: 0.0]
    • :Defines the temperature buffer value (°F). This value allows Movesmrg to cover the outside of min/max temperature range in SMOKE_OUTFILE from Met4moves for Movesmrg RPP processing. Emission rates for those temperatures outside of original temperatures will share the ones from orignal max/min temperatures. For an example, if TEMP_BUFFER_BIN is set to 10.0 and the original max temperature is 90.0°F, then an input temperature of 98.0°F will use the same emission factor as 90.0°F. While an input temperature of 101.0°F will raise an error because it is outside the extended temperature range of the MOVES lookup tables. The same approach will hold true for the minimum temperature. will be treated as 100.0°F, and minimum temperaure (=30°F) will be treated as 20.0°F internally in Movesmrg. Emission rates for those temperatures outside of original temperature range will share the ones from original max/min temperatures.
    Gentpro
    • This program is to create meteorology-based temporal profiles for inventory sources to obtain better representation of the temporal resolution of emissions. Please see 'The Gentpro Technical Summary Document' for more information. Here are two major flags that allow a user to create various representation and resolutions of temporal profiles.
    • PROFILE_METHOD: [default:MET]
    • : Indicates which of the three temporal profile types to generate by Gentpro
      • RWC: use the Adelman's regression equation to calculate temporal profiles for residential wood combustion (RWC) sources
      • AGNH3: use the Russell and Cass algorithm to calculate temporal hourly profiles for agricultural ammonia sources
      • MET: use the time series of the selected meteorology variable to calculate temporal profiles
    • TPRO_OUTPUT: [default:ALL]
    • : Specifies temporal resolution of temporal profiles to produce.
      • MONTHLY: generate month of year temporal profiles
      • DAILY: generate day of year temporal profiles
      • HOURLY: generate hour of year temporal profiles. [Not applicable when PROF_METHOD = RWC. Only applicable when PROF_METHOD = AGNH3]
      • ALL: generate all possible profiles for the selected profile method. [No hourly profiles will be generated when PROF_METHOD = RWC]
    Mrgpt
    • Enhancement: Merge any point source hourly speciated emissions from Smkmerge and ASCII elevated output files from Elevpoint for CMAQ inline-mode. It also allows the user to apply control factor by species and by modeling point sector.

    Smkinven
    • Enabling "SMKINVEN_FORMULA" feature for hourly and daily inventories in both FF10 and EMS-95 formats. For example, this is helpful to compute PMC.
    • Processing FF10_ACTIVITY, FF10_NONPOINT, FF10_POINT and FF10_[NONPOINT|POINT]_[HOURLY|DAILY] inventory formats with existing IDA, ORL, and EMS-95 formats
    Smkreport
    • Reported incorrect values when inventory pollutant name shared the same name as model species (e.g., BENZENE).
    Temporal
    • Updated to process meteorological-based temporal profiles created by Gentpro
    • Give an error while processing mobile source activity inventory data (i.e., VMT and VPOP).

SMOKE version 3.0 (September 2011)

    MOVES postprocessing script: Moves2smkEF.pl
    • Removed the SCC mapping section in the script to speed up the processing time, since MOVES2010a can output emission factors by SCC.

    • Updated to handle negative temperatures when creating MOVEScenarioIDs. SQL does not handle '-' correctly when the script concatenates it to create MOVEScenarioIDs. When a temperature value is negative, '-' is now replaced with 'n'.

    • Can optionally output an aggregated/consolidated emission processes version of MOVES lookup tables for SMOKE using a new postprocessing script, smkEFsum.pl listed below

    • Renamed previous evaporative permission emissions process code 'EVP' to 'EPM' emission process code to avoid conflict with the consolidated code 'EVP' in the new consolidated lookup tables.

    • Renamed VOC in the lookup tables to VOC_INV to output the original VOC emissions to daily total report from Movesmrg.

    • Added new equations to compute nitrous acid (HONO) using NO and NO2 and coarse particulate matters (PMC) from brake wear and tire wear modes using PM10BRAKE, PM25BRAKE, PM10TIRE AND PM25TIRE emissions factors from MOVES. Find more information at SMOKE manual Chapter 5.2.4

    • Added a new header line, '#NUM_TEMP_BIN', that determines the total number of unique temperature bins from RatePerDistance (RPD), RatePerVehicle (RPV), and RatePerProfile (RPP) lookup tables, to speed up the processing time of Movesmrg.

    • No more negative primary organic carbon (POC) estimates that were caused by overestimated NH4. Find more information at SMOKE manual Chapter 5.2.4

    • Filling missing RPD emission factors (EFs) for SCCRoadtypes that were not in representative counties using the algorithms from U.S. EPA that calculate and replace missing EFs using other SCCRoadtypes EFs.

    • Filling missing and incorrect RPV extended idle emission factors in MOVES lookup tables. Updated Moves2smkEF.pl script to remove all the existing extended idle rates from the RPV table and replace them with national-average EFs. U.S. EPA created and posted national-scale multiple-year extended idle EFs tables 'MOVES2010a_extended_idle_factors.zip' for the community through U.S. EPA CHIEF Web site

    MOVES postprocessing script: SmkEFsum.pl
    • Reduced the size of SMOKE-ready MOVES lookup tables generated by Moves2smkEF.pl.

    • Significantly reduced Movesmrg computational processing time, a result of the reduced size of MOVES lookup tables.

    • Allows users to use the latest SMOKE ancillary input files from U.S. EPA (i.e., inventory tables and chemical speciation profiles/cross-references) with minor modification to process MOVES lookup tables through the SMOKE modeling system.

    • Uses an optional ' --delete' flag that causes the script to delete the original MRCLIST and emission factors files after creating the consolidated files.

    • Uses an optional ' --output' flag to indicate which type of output files are desired: consolidated, expanded, or all.

    • Options

      • * consolidated: Creates one set of consolidated 'summed' tables and MRCLIST 'summed' files. It also removes any previous 'expanded' MRCLIST files if they exist.

        * expanded: Creates one set of expanded tables and MRCLIST files.

        * all: Creates two sets of tables and MRCLIST files one 'expanded', the other 'consolidated'.

    Movesmrg
    • Reduced computational time up to 24-fold by reorganizing the loop of processing time to reference county and by using a predetermined number of temperature bins set using a new header line, '#NUM_TEMP_BIN', in MOVES lookup tables.

    • Outputs inventory pollutants (e.g., CO, NOX, VOC_INV, NH3) to daily total summary report by default.

    • Can process both the mole-based speciation matrix (MSMAT_L) and the mass-based speciation matrix (MSMAT_S) simultaneously to output mole-based CMAQ-ready output files and mass-based daily total summary reports. This update allows Movesmrg to output both output files in a single run.

    • Supports weekday/weekend speed 24-hour profiles (SPDPRO) by source.

    • Supports daily county-specific min/max temperatures using RPP lookup table.

    • MRG_REPSCC_YN: [default:N]

      • Outputs daily total of model species/inventory pollutants by SCC

        o Y: Output daily total report by SCC

        o N: Do not output daily total report by SCC

    • MRG_REPSRC_YN: [default:N]

      • Outputs daily total report by source, which is equivalent to MRG_REPSCC_YN = Y and MRG_REPCNY_YN = Y. If MRG_REPSRC_YN is set to Y, both MRG_REPSCC_YN and MRG_REPCNY_YN will be set to N.

        o Y: Output daily total report by source

        o N: Do not output daily total report by source

    Smkinven
    • Supports FF10_ACTIVITY inventory format for vehicle mileage traveled (VMT), vehicle speed (SPEED), and vehicle population (VPOP) activity inventories.

    • Supports FF10_NONPOINT inventory format for area sources.

    • Supports FF10_[NONPOINT|POINT]_[HOURLY|DAILY] format for area/point hourly or daily inventories.

    • User can choose to input the month-specific inventory data in various FF10 formats using the new environment variable SMKINVEN_MONTH.

    Grdmat
    • No longer outputs an ungridding matrix (UGMAT) for mobile sources, since MOBILE6 is no longer supported as of SMOKE v3.0.

    • Allows users to disable constructing internal SCCs for mobile sources using vehicle type and road type numbers using MCODES file. Default value is set to N to construct internal SCCs during cross-referencing gridding surrogates.

    Met4moves
    • Supports the DAILY averaging method, so it can output either daily or monthly min/max temperatures for Movesmrg RPP processing.

    • Bug fix: Met4moves now correctly handles county-specific local time zone conversion in order to estimate county-specific min/max temperatures accurately.

    Spcmat
    • Allows users to disable constructing internal SCCs for mobile sources using vehicle type and road type numbers using MCODES file. Default value is set to N to construct internal SCCs during cross-referencing gridding surrogates.

    Temporal
    • Allows users to disable constructing internal SCCs for mobile sources using vehicle type and road type numbers using MCODES file. Default value is set to N to construct internal SCCs during cross-referencing gridding surrogates.