Updated SMOKE Core Programs
Smkinven
- Fix issue when processing hourly inventory data (PTHOUR) in leap year where emissions records are missing for the first few hours in the following month (e.g., processing PTHOUR emissions for January have missing data for first few hours in February) (implemented to
src/smkinven/rdff10pd.f) - Fix issue in handling of daily emissions of ptfire group where there is no fire at the end of the year (December 31st), resulted in incomplete data records for December 31st and caused crash in subsequent subroutine such as Elevepoint (implemented to
src/smkinven/rdff10pd.f) - Fix issue where Smkinven may silently skip emission file in
*.lstfile if there is 'LIST' string (case-sensitive) in the file path (e.g., 12LISTOS).
Temporal
- Improve Temporal to support non-pollutant-specific application of hourly met-based/Gentpro profiles in the temporal cross-reference (implemented to
src/temporal/proctpro.f)
Movemerg:
- Fix issue where MOVESMRG would crash when MTMP_OUTPUT_YN = Y and USE_SPCMAT_SPC_YN = N (or undefined) (implemented to
src/movesmrg/movesmrg.f)
Smkreport
- Fix issue where Smkreport produces an empty report If SMOKE is configured to output emissions files with 24 timesteps instead of the standard 25 timesteps, or if the REPCONFIG doesn't specify some kind of grouping statement, e.g. BY COUNTRY or BY SCC (implemented to
src/emqa/asgnbins.fandsrc/emqa/qarepin.f) - Improve Smkreport to make use of environment variable
SMOKE_SOURCEinstead of relying on specification in REPCONFIG. This improvement allows the same REPCONFIG to be used for both area sectors and point sectors. TheSMK_SOURCEenvironment variable takes absolute priority over theSMK_SOURCEinstruction in the REPCONFIG file (implemented tosrc/emqa/prclinrc.f)
Utility
- Implement option in utility GEOFAC to use fractional mask values as scale factors for all SPECFACS species instead of using species-specific scale factors defined in SPECFACS file (implemented to
src/emutil/geofac.f)
Auxiliary libraries
- Improve SMOKE's handling of garbage characters in FF10 emission files (as a result from using Microsoft Excel to prepare emission files, for example) (implemented to
src/lib/getformt.f) - Provide more insight on how cell origin was offset that triggers the message error in CHKGRID (implemented to
src/lib/chkgrid.f)
Other Updates
- Utilize I/O API M3UTILIO module throughout SMOKE programs where applicable
- Update the SMOKE Example Case using data from EPA's 2022v2 Emissions Modeling Platform
- Update User Guide (v5.3) to fix broken and outdated URLs
Compilation Details
The executables in the SMOKEv5.3.June2026.Linux2_x86_64.zip package were compiled using the GCC/G-Fortran compiler version 14.3.0 on Rocky Linux 8 (RHEL 8) (Tested on Rocky Linux 9, Ubuntu 22.04 LST and Red Hat Enterprise Linux 9.7)
Library dependencies used for the I/O API Version 3.2:
- hdf5-1.14.5
- netcdf-c-4.9.2
- netcdf-fortran-4.6.1