Skip to content

HEMCO Extension: Meteorology-Induced Emissions#352

Open
drnimbusrain wants to merge 84 commits into
geoschem:mainfrom
GMU-CSER:feature/metemis
Open

HEMCO Extension: Meteorology-Induced Emissions#352
drnimbusrain wants to merge 84 commits into
geoschem:mainfrom
GMU-CSER:feature/metemis

Conversation

@drnimbusrain

@drnimbusrain drnimbusrain commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Name and Institution (Required)

Name: Patrick Campbell and Irena Ivanova
Institution: George Mason University

Describe the update

  • A dynamic Meteorology-Induced emission Coupler (MetEmis) is developed and tested for the mobile emissions sector (Baek et al., 2023).
  • Both temperature and relative humidity have impacts on internal combustion engines (e.g., summertime high humidity → lower NOx emissions; example below for Onroad MetEmis - Base NEI).
image
  • Here we implement a new MetEmis HEMCO extension for use with provided onroad (mobile) emissions table files based on the U.S. EPA NEI 2021 (created by GMU; POC: B.H. Baek, https://science.gmu.edu/directory/bh-baek).
  • This MetEmis extension is driven by provided onroad emissions tables (for NEI/CONUS domain only) and input meteorological fields (e.g., T2M and QV2M).
  • The MetEmis extension is invoked by setting Metemis : on and provided the list of optional 51 NEI species in the following list, e.g.,
115     MetEmis           : on    NO/NO2/HONO/CO/SO2/NH3/CH4/ACROLEIN/BUTADIENE13/ETHY/TERP/FORM/PAR/IOLE/OLE/ETH/ETHA/ETOH/MEOH/BENZ/TOL/XYLMN/NAPH/ALD2/ALDX/ISOP/PRPA/ACET/KET/ALD2_PRIMARY/FORM_PRIMARY/SOAALK/PEC/POC/PAL/PCA/PCL/PFE/PH2O/PK/PMG/PMN/PMOTHR/PNA/PNCOM/PNH4/PNO3/PTI/PSI/PMC/PSO4
    --> RH Gas Diesel     :       true
  • The addition RH Gas Diesel option includes an additional impact of relative humidity on NO, NO2, and HONO emissions, which leads to further changes on these emissions of about ~ +/- 20% dependent on the grid cell RH. Note: This RH effect impacts disaggregated gas vs. diesel fuels for NO, NO2, and HONO, and thus the input MetEmis table files include separate variables for NO_DIS, NO_GAS, NO2_DIS, NO2_GAS, HONO_DIS, and HONO_GAS.
  • Note: The MetEmis onroad extension should be run with sector-based NEI emissions in replacement of the base NEI onroad emissions sector (or with merged NEI minus onroad sector) to avoid double counting.

Expected changes

  • Results show that including MetEmis as replacement for the base NEI onroad sector can lead to improved ozone model performance in commonly used CTMs (example below for the southeast U.S. ozone overpredictions in CTMs):
image

Reference(s)

Baek, B. H., Coats, C., Ma, S., Wang, C.-T., Li, Y., Xing, J., Tong, D., Kim, S., and Woo, J.-H.: Dynamic Meteorology-induced Emissions Coupler (MetEmis) development in the Community Multiscale Air Quality (CMAQ): CMAQ-MetEmis, Geosci. Model Dev., 16, 4659–4676, https://doi.org/10.5194/gmd-16-4659-2023, 2023.

Related Github Issue

#350

HEMCO Example MetEmis Input Files: January 05, 2021

https://drive.google.com/drive/folders/1wIWTL_LQ0oR999IwAemu-PpWmAwsci6n?usp=sharing
Created by GMU; POC B.H. Baek, https://science.gmu.edu/directory/bh-baek. Full year 2021 available.

Maybe we can have discussion later about storing all MetEmis files on the HEMCO AWS site (https://geos-chem.s3.amazonaws.com/index.html#HEMCO/) for users to combine with sector based NEI available for HEMCO (e.g., https://geos-chem.s3.amazonaws.com/index.html#HEMCO/NEI2016/v2021-06/).

HEMCO Config Files:

HEMCO_sa_Spec.txt
HEMCO_sa_Diagn.txt
HEMCO_sa_Time.txt
HEMCO_Config.txt

Input meteorology tested using MERRA2, downloaded at: https://geos-chem.s3.amazonaws.com/index.html#GEOS_0.5x0.625/MERRA2/2021/01/

drnimbusrain and others added 30 commits January 17, 2024 11:53
Co-authored-by: Patrick Campbell <dr.nimbusrain@gmail.com>
Co-authored-by: Patrick Campbell <dr.nimbusrain@gmail.com>
Co-authored-by: Patrick Campbell <dr.nimbusrain@gmail.com>
drnimbusrain and others added 12 commits March 2, 2026 14:54
This commit adds 912 initialization blocks and 912 cleanup calls in
src/Extensions/hcox_state_mod.F90 to support livestock emissions across:
- 19 species (NH3, CH4, TERP, PAR, IOLE, OLE, ETHA, ETOH, MEOH, BENZ,
  TOL, XYLMN, ALD2, ALDX, ISOP, ACET, KET, ALD2_PRIMARY, SOAALK)
- 4 animal types (BEEF, DAIRY, SWINE, POULTRY)
- 12 temperature bins (010 to 120)

Each initialization block follows the standard HEMCO pattern of calling
ExtDat_Init and verifying the result. Cleanup calls use ExtDat_Cleanup.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
This commit adds 912 code blocks in
src/Interfaces/Standalone/hcoi_standalone_mod.F90 to support livestock
emissions across:
- 19 species
- 4 animal types
- 12 temperature bins

Each block checks if the variable is in use, calls ExtDat_Set, and handles
potential errors, following the standard HEMCO standalone interface pattern.
Variable declarations already existed in the extension state.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
…rplate-10854278586000666687

Add livestock emissions initialization and cleanup boilerplate
Adding afdust sector with livestock and rwc
@drnimbusrain

drnimbusrain commented Mar 6, 2026

Copy link
Copy Markdown
Contributor Author

@yantosca @eamarais @jaegle Please note. We have updated this PR to include a total of four met-induced (MetEmis) anthropogenic sectors now including onroad (initial PR), livestock (binned table files for temperature as similar for onroad, and with additional precipitation effect), rwc (binary effect of temperature), and afdust (binary effect of precip and snow cover). See new commits for more details on the effects.

The updated HEMCO config files needed to run this extension for the January 02 test with all four options are below:

HEMCO_Config.txt
HEMCO_sa_Diagn_MetEmis_All.txt
HEMCO_sa_Diagn_NEI_All.txt
HEMCO_sa_Spec.txt
HEMCO_sa_Time.txt

Also, the needed test input files for the MetEmis extension for all four sectors has been updated at: https://drive.google.com/drive/folders/1wIWTL_LQ0oR999IwAemu-PpWmAwsci6n?usp=sharing

We also include examples in the HEMCO_Config file on how to use the collection blocks if one were to run MetEmis with NEI base emissions (i.e., turning MetEmis on/off) and to avoid double counting. These example GMU NEMO-NEI2022v1 base files are in GMU-NEI2022v1\v2025-10\01 covering CONUS only right now (same as in the MetEmis table files).

Ultimately, to turn on MetEmis and read in correct sectors (use HEMCO_sa_Diagn_MetEmis_All.rc).
Under base emissions:

--> NEMO-NEI2022v1    : off   false

Under MetEmis extension:

115     MetEmis           : on    NO/NO2/HONO/CO/SO2/NH3/CH4/ACROLEIN/BUTADIENE13/ETHY/TERP/FORM/PAR/IOLE/OLE/ETH/ETHA/ETOH/MEOH/BENZ/TOL/XYLMN/NAPH/ALD2/ALDX/ISOP/PRPA/ACET/KET/ALD2_PRIMARY/FORM_PRIMARY/SOAALK/PEC/POC/PAL/PCA/PCL/PFE/PH2O/PK/PMG/PMN/PMOTHR/PNA/PNCOM/PNH4/PNO3/PTI/PSI/PMC/PSO4
    --> ME Onroad             :       true
    --> OR RH Gas Diesel      :       true
    --> ME Livestock          :       true
    --> Livestock Precip      :       true
    --> ME RWC                :       true
    --> RWC temp (deg F)      :       50.0
    --> ME AFD                :       true
    --> AFD precip (mm)       :       0.10
    --> AFD frsno (fraction)  :       0.10

To turn on base NEI2022v1 emissions and read in correct sectors for comparison (use HEMCO_sa_Diagn_NEI_All.rc).
Under base emissions:

--> NEMO-NEI2022v1    : on   true

Under MetEmis extension:

115     MetEmis           : off    NO/NO2/HONO/CO/SO2/NH3/CH4/ACROLEIN/BUTADIENE13/ETHY/TERP/FORM/PAR/IOLE/OLE/ETH/ETHA/ETOH/MEOH/BENZ/TOL/XYLMN/NAPH/ALD2/ALDX/ISOP/PRPA/ACET/KET/ALD2_PRIMARY/FORM_PRIMARY/SOAALK/PEC/POC/PAL/PCA/PCL/PFE/PH2O/PK/PMG/PMN/PMOTHR/PNA/PNCOM/PNH4/PNO3/PTI/PSI/PMC/PSO4
    --> ME Onroad             :       false
    --> OR RH Gas Diesel      :       true
    --> ME Livestock          :       false
    --> Livestock Precip      :       true
    --> ME RWC                :       false
    --> RWC temp (deg F)      :       50.0
    --> ME AFD                :       false
    --> AFD precip (mm)       :       0.10
    --> AFD frsno (fraction)  :       0.10

We will follow up with some emissions differences plots soon for all sectors/options compared to NEI2022v1 base...

Thank you!

Patrick

@drnimbusrain drnimbusrain changed the title HEMCO Extension: Meteorology-Induced Mobile Emissions HEMCO Extension: Meteorology-Induced Emissions Mar 6, 2026
@lizziel

lizziel commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

Thanks @drnimbusrain. I just added this to the "Ready to go in" table of the GEOS-Chem Model Development Priorities wiki page (see here).

Before it goes into the model it will need to be championed by the Emissions Working Group. Tagging co-chairs: @jaegle, @eamarais.

zmoon and others added 9 commits March 24, 2026 08:49
This change implements a user-defined 10-meter wind speed threshold for
Anthropogenic Fugitive Dust (AFD) emissions. When the grid cell wind speed
exceeds the 'AFD 10-m wind (m/s)' value set in the HEMCO config, all 19
AFD species are scaled by (wind10 / threshold)^3.

Modified:
- src/Extensions/hcox_metemis_mod.F90: Update MyInst type, initialization,
  and METEMIS_AFD subroutine logic.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
This update introduces a new master logical switch 'AFD Wind' and a
real threshold 'AFD 10-m wind (m/s)' to control wind-speed-dependent
scaling for Anthropogenic Fugitive Dust (AFD) emissions.

Changes:
- Added 'AFDWIND10' (logical) and 'AFDWIND' (real) to MetEmis instance state.
- Updated HCOX_MetEmis_Init to read these from HEMCO_Config.rc.
- Updated METEMIS_AFD to apply cubic scaling (wind10/threshold)^3 to all
  19 AFD species when enabled and threshold is exceeded.
- Added safety checks for zero-threshold configuration.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
This commit implements the 'AFD Wind' logical switch to enable/disable
wind-speed dependent scaling for AFD emissions. It also correctly
sets up the 10m wind speed components when the AFD sector is active.

Changes:
- Added `AFDWIND10` to `MyInst` state.
- Updated `HCOX_MetEmis_Init` to read 'AFD Wind' from config.
- Wrapped AFD wind scaling logic in `METEMIS_AFD` with the logical switch.
- Verified logic manually.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
- Implement 'AFD Wind' master logical switch (AFDWIND10).
- Implement 'AFD 10-m wind (m/s)' threshold (AFDWIND).
- Wrap wind scaling logic in METEMIS_AFD with the logical toggle.
- Added safety checks for zero threshold.
- Updated initialization to read from HEMCO configuration.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
As per PR feedback:
- The REAL wind speed threshold is now named `AFDWIND10`.
- The LOGICAL master switch is now named `MEAFDWIND`.

This ensures internal consistency with standard HEMCO naming conventions
while keeping the user-facing configuration labels descriptive.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
This commit adds a new feature to the MetEmis extension to scale
Anthropogenic Fugitive Dust (AFD) emissions based on 10-meter wind speed.

Key changes:
- Added `MEAFDWIND` (logical toggle) and `AFDWIND10` (real threshold)
  to the extension state.
- Configured configuration labels "AFD Wind" and "AFD 10-m wind (m/s)"
  in `HCOX_MetEmis_Init`.
- Enabled `U10M` and `V10M` meteorological variables when AFD is active.
- Implemented cubic scaling `(WIND10 / AFDWIND10)**3` in `METEMIS_AFD`
  for all 19 dust species when wind speed exceeds the threshold.
- Included safety checks to prevent division by zero.

These changes follow the established modular pattern in HEMCO, where
data linkage is requested via `DoUse` flags and accessed through
`ExtState` pointers.

Co-authored-by: drnimbusrain <26631222+drnimbusrain@users.noreply.github.com>
Implement wind speed scaling for AFD emissions
@drnimbusrain

Copy link
Copy Markdown
Contributor Author

Thanks @drnimbusrain. I just added this to the "Ready to go in" table of the GEOS-Chem Model Development Priorities wiki page (see here).

Before it goes into the model it will need to be championed by the Emissions Working Group. Tagging co-chairs: @jaegle, @eamarais.

@lizziel @yantosca Wondering status of this PR?

@lizziel

lizziel commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Hi @drnimbusrain, you will need to contact the emissions working group about this update to get it into the priority list. See here for contact info.

@eamarais

Copy link
Copy Markdown

HI @drnimbusrain, we've added it to the list of priorities to champion at IGC12. From what I gather this is specific to NEI emissions. Would you recommend this as a default setting or a switch that could be turned on by users focusing on particular topics (e.g. air quality in US urban environments)?

@yantosca

Copy link
Copy Markdown
Contributor

@lizziel @drnimbusrain I would be concerned about the data I/O. Several of the data files are ~ 1GB. In our experience this can cause a large performance hit, especially in GC-Classic.

Screenshot 2026-06-11 at 11 24 19 AM

@eamarais

Copy link
Copy Markdown

@yantosca, thanks for pointing this out. @drnimbusrain, is it possible to reduce these to be more user-friendly?

@drnimbusrain

Copy link
Copy Markdown
Contributor Author

HI @drnimbusrain, we've added it to the list of priorities to champion at IGC12. From what I gather this is specific to NEI emissions. Would you recommend this as a default setting or a switch that could be turned on by users focusing on particular topics (e.g. air quality in US urban environments)?

Hi @eamarais, and thank you for the question. Yes, this is currently specific to the NEI U.S. domain, so I agree its ok to turn the switch off and setting 115 MetEmis : off in the config file by default. It does span outside urban environments, but indeed the impacts of the different MetEmis sectors are on regional to local U.S. air quality.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: Feature Request New feature or request topic: HEMCO Extensions Pertaining to HEMCO extensions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants