EMEP European anthropogenic emissions
On this page we provide information about The Co-operative Programme for Monitoring and Evaluation of the Long-range Transmission of Air Pollutants in Europe (EMEP) anthropogenic emissions inventory for Europe.
- 1 Overview
- 2 EMEP European ship emissions inventory
- 3 Previous issues that are now resolved
- 4 Known issues
- 5 References
The EMEP inventory includes annual anthropogenic emissions of CO, NH3, NOx, and SOx for 1990-2005. This inventory also includes emissions of CO, NH3, NOx, and SOx from ship exhaust.
The data files were obtained from the EMEP website and processed by Aaron van Donkelaar.
In GEOS-Chem v10-01 and newer versions
In GEOS-Chem v10-01 and newer versions, the EMEP anthropogenic and ship emissions are read with the HEMCO emissions component. We have created new EMEP data files (in COARDS-compliant netCDF format) for use with HEMCO. These new data files are contained in the HEMCO data directory tree. For detailed instructions on how to download these data files to your disk server, please see our Downloading the HEMCO data directories wiki post.
--Bob Y. 13:13, 3 March 2015 (EST)
Discussion following 1-month benchmark v10-01h
Aaron van Donkelaar wrote:
- I'm a little surprised at the drop of more than 50% in anthropogenic SO2 and NO over Europe.
- I decided to explore the large drop in emissions and have found the drop in the revised EMEP emissions that are presently available to be much lower in than what EMEP had estimated when I downloaded/reformatted the original dataset back in 2011.
- It should be fairly straightforward for me to reprocess new EMEP input files based on their latest estimates, which run until 2012, if the old format is still useful post-HEMCO.
- For now I would not recommend using the EMEP files originally slated as part of this update. Rather, I would suggest that I/we update the emission based on the latest EMEP inventory.
Update 3/31/15: Aaron has reprocessed EMEP emissions for 1990-2012. Please see this wiki post for more information.
--Melissa Sulprizio 16:40, 27 March 2015 (EDT)
In GEOS-Chem versions prior to v10-01
In GEOS-Chem v9-02 and older versions, EMEP data files are stored in binary punch format at this directory tree:
ftp ftp.as.harvard.edu cd gcgrid/data/GEOS_NATIVE/EMEP_200911/
The data is read from disk by module GeosCore/emep_mod.F
--Melissa Sulprizio 15:48, 31 March 2015 (EDT)
Update EMEP emissions through 2007
The EMEP emissions data have been extended to the year 2007 in GEOS-Chem v8-03-01 and higher versions.
Update EMEP emissions for 2008-2010
Aaron van Donkelaar generated EMEP emissions for 2008, 2009, and 2010. The data files for these years are available in bpch format at:
Reprocess EMEP emissions for 1990-2012
This update was validated with the 1-month benchmark simulation v10-01i and approved on Approved 01 May 2015.
The original updated EMEP emissions for 2008-2010 (generated in 2012) were found to be too low in 1-month benchmark v10-01h, so Aaron van Donkelaar reprocessed EMEP anthropogenic and ship emissions of CO, NH3, SO2, and NO for 1990-2012. The reprocessed data file is in netCDF format and includes data that has been mapped from the original 50 km grid x 50 km grid onto a 0.1° x 0.1° grid. Regridding to the finer 0.1° x 0.1° resolution allowed these input files to maintain a reasonable representation of their original grid characteristics, thereby permitting HEMCO to more accurately regrid onto a variety of GEOS-Chem grids. This file is read with the HEMCO emissions component and will be validated with 1-year benchmark v10-01h-Run0.
--Melissa Sulprizio 14:08, 31 March 2015 (EDT)
EMEP European ship emissions inventory
The EMEP inventory contains ship emissions for CO, NH3, SOx, and NOx.
Please also note the following fixes that are relevant for GEOS-Chem v9-01-01 or older versions:
- Bug with EMEP ship emissions for nested grids
- Bug fix for EMEP ship emissions
- Fix for initialization of EMEP ship emissions
- Inconsistent mask file for EMEP ship emissions
1980 to 1989
EMEP ship data from 1980-1989 emit NOx as pure NOx (and not HNO3 + 10*O3). It was not possible to separate the NOx into HNO3 and O3 from this data set.
See Auvray and Bey  and Vestreng and Klein  for more information.
1990 to 2005
EMEP ship data from 1990-2005 are based on Vestreng et al. .
For more information about the data, please see the README file: GEOS_1x1/EMEP_200911/README
--Bob Y. 12:00, 20 December 2012 (EST)
Previous issues that are now resolved
Bug with EMEP ship emissions for nested grids
NOTE: This issue was resolved in GEOS-Chem v8-02-01.
Win Trivitayanurak wrote:
- This bug is in subroutine EMFOSSIL in emfossil.f. The use of function GET_EUROPE_MASK when LEMEP = .false. crashes the run because, i think, the function is not really valid when EMEP emission is not turned on. When I ran the China nested-grid, all other emission choices need to be turned off, e.g. EMEP, BRAVO. Only STREETS can be on for the China nested grid run. Therefore, w/o this fix, the run won't go anywhere.
- I copy the section of the code and paste it here below. See the change in the line with !Prior to 5/1/09 (win, 5/1/09).
!Prior to 5/1/09 (win, 5/1/09) ! ELSE IF ( LEMEPSHIP .AND. ! $ ( GET_EUROPE_MASK( I, J ) > 0d0 ) ) THEN ! ! ! Get SHIP EMEP emissions for NOx [molec/cm2/s] ! SHIP = GET_EMEP_ANTHRO( I, J, NN, SHIP=.TRUE.) ELSE IF ( LEMEPSHIP ) THEN IF ( GET_EUROPE_MASK( I, J ) > 0d0 ) ! Get SHIP EMEP emissions for NOx [molec/cm2/s] & SHIP = GET_EMEP_ANTHRO( I, J, NN, SHIP=.TRUE.)
Bug fix for EMEP ship emissions
NOTE: This issue was resolved in GEOS-Chem v8-02-04.
Monika Kopacz wrote:
- I noticed that the code crashes when EMEP is set to false but ship emissions from EMEP are true in the input file. Sure, it makes sense, but I would suggest the following addition to the input_mod.f, around say around line 1550 to prevent the code from crashing.
! Make sure we're not using EMEP ship emissions, if EMEP is off IF (.not. LEMEP ) THEN LEMEPSHIP = .FALSE. ENDIF
Bob Yantosca wrote:
- Good catch. We've put this code into READ_EMISSIONS_MENU in input_mod.f:
!%%% Bug fix! If LEMEPSHIP is turned on but LEMEP is turned %%% !%%% off, this will cause an error (because arrays are not %%% !%%% allocated, etc.). For now, just turn off LEMEPSHIP %%% !%%% and print a warning message. Whoever wants to fix this %%% !%%% in a more robust way is welcome to do so. %%% !%%% (mak, bmy, 10/19/09) %%% IF ( LEMEPSHIP .and. ( .not. LEMEP ) ) THEN LEMEPSHIP = .FALSE. WRITE( 6, '(a)' ) REPEAT( '=', 79 ) WRITE( 6, '(a)' ) 'WARNING! EMEP emissions are turned off,' WRITE( 6, '(a)' ) 'so also turn off EMEP ship emissions' WRITE( 6, '(a)' ) 'in order to avoid crashing GEOS-Chem!' WRITE( 6, '(a)' ) REPEAT( '=', 79 ) ENDIF
- As you pointed out the simple solution is to just turn off LEMEPSHIP if LEMEP=F. However, it may still be possible to keep LEMEPSHIP turned on...one would have to go thru emep_mod.f to make sure that the ship emissions arrays get allocated even if the other arrays don't. Whoever wants to can feel free to do that...
--Bob Y. 10:57, 19 October 2009 (EDT)
Fix for initialization of EMEP ship emissions
NOTE: This issue was resolved in GEOS-Chem v8-03-01.
Helen Macintyre wrote:
- I am trying to do some simulations with 1985 emissions, but I find that I run into an SST error.
- Looking through the log file reveals this:
=============================================================================== M O N T H L Y E M E P E U R O P E A N E M I S S I O N S ( INCL. SHIP ) Base Year :1985 EMEP anthropogenic NOx for 1985/07: -Infinity Tg N EMEP anthropogenic CO for 1985/07: NaN Tg EMEP anthropogenic SO2 for 1985/07: 2.217651 Tg S EMEP anthropogenic NH3 for 1985/07: 0.771631 Tg
Claire Carouge wrote:
- It looks like a bug in initialisation of EMEP ship emissions for CO and NOx.
- In INIT_EMEP (in emep_mod.f) there are the lines:
ALLOCATE( EMEP_SO2_SHIP( IIPAR, JJPAR ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'EMEP_SO2_SHIP' ) EMEP_SO2_SHIP = 0d0 ALLOCATE( EMEP_CO_SHIP( IIPAR, JJPAR ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'EMEP_SO2_SHIP' ) EMEP_SO2_SHIP = 0d0 ALLOCATE( EMEP_NOx_SHIP( IIPAR, JJPAR ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'EMEP_SO2_SHIP' ) EMEP_SO2_SHIP = 0d0
- So after allocating EMEP_CO_SHIP or EMEP_NOx_SHIP we initialize EMEP_SO2_SHIP to 0d0. A typical problem of copy/paste.
- You should change the lines to initialize the appropriate ship arrays to 0d0:
ALLOCATE( EMEP_SO2_SHIP( IIPAR, JJPAR ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'EMEP_SO2_SHIP' ) EMEP_SO2_SHIP = 0d0 ALLOCATE( EMEP_CO_SHIP( IIPAR, JJPAR ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'EMEP_CO_SHIP' ) EMEP_CO_SHIP = 0d0 ALLOCATE( EMEP_NOx_SHIP( IIPAR, JJPAR ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'EMEP_NOx_SHIP' ) EMEP_NOx_SHIP = 0d0
Inconsistent mask file for EMEP ship emissions
NOTE: This issue was resolved in GEOS-Chem v9-01-01.
Geert Vinken wrote:
- When I was looking at the ship emissions I noticed that the current mask that determines where to apply EMEP emissions, does not correspond anymore with the actual EMEP emissions. The mask still corresponds with the 200510 emissions data. This mismatch in the mask and the actual emissions results in no ship emissions being released over a region of the North Atlantic and north of Norway.
- As a solution I updated the mask file to correspond with the new border of the EMEP emissions domain. I cut of the mask west of 30W and north of 70N. This fixes the problem.
--Bob Y. 12:20, 20 December 2012 (EST)
Fixes in emep_mod.f
NOTE: This issue was ultimately resolved in GEOS-Chem v9-01-03g.
In routines READ_EMEP_UPDATED and READ_EMEP_UPDATED_05x0666 of emep_mod.f, there were some IF statements that were used to pick the proper filename and tracer number with which to read data from the bpch file format:
IF ( TRACER .eq. IDTNOx ) THEN FILENAME = TRIM( DIR ) // 'SeasonalVariation/' & // 'NOx-EMEP-SeasonalScalar.geos.1x1' RATIOID = 71 ELSEIF ( TRACER .eq. IDTCO ) THEN FILENAME = TRIM( DIR ) // 'SeasonalVariation/' & // 'CO-EMEP-SeasonalScalar.geos.1x1' RATIOID = 72 ELSEIF ( TRACER .eq. IDTSO2 ) THEN FILENAME = TRIM( DIR ) // 'SeasonalVariation/' & // 'SOx-EMEP-SeasonalScalar.geos.1x1' RATIOID = 73 ELSEIF ( TRACER .eq. IDTNH3 ) THEN FILENAME = TRIM( DIR ) // 'SeasonalVariation/' & // 'NH3-EMEP-SeasonalScalar.geos.1x1' RATIOID = 74 ENDIF
where TRACER is passed to these routines via subroutine calls such as these:
CALL READ_EMEP_UPDATED( 1, EMEP_YEAR, EMEP_NOx, 0 ) CALL READ_EMEP_UPDATED( 4, EMEP_YEAR, EMEP_CO, 0 ) CALL READ_EMEP_UPDATED( 26, EMEP_YEAR, EMEP_SO2, 0 ) CALL READ_EMEP_UPDATED( 30, EMEP_YEAR, EMEP_NH3, 1 )
The problem is the code is set up to assume that IDTNOX will always be 1, IDTCO will always be 4, IDTSO2 will always be 26, and IDTNH3 will always be 30. This is true only if you are running a full-chemistry simulation. However, for an offline-aerosol simulation NOx and CO are undefined, and SO2 and NH3 will not equal 26 and 30. Therefore, the IF statement will not return the proper file name and tracer ID.
The solution is to remove all references to IDTNOX, IDTCO, IDTSO2, IDTNH3 from that section of code. The new code looks like:
! Pick proper filename & tracer # SELECT CASE( TRACER ) ! NOx CASE( 1 ) RATIOID = 71 FILENAME = TRIM( DIR ) // & 'SeasonalVariation/' // & 'NOx-EMEP-SeasonalScalar.geos.1x1' ! CO CASE( 4 ) RATIOID = 72 FILENAME = TRIM( DIR ) // & 'SeasonalVariation/' // & 'CO-EMEP-SeasonalScalar.geos.1x1' ! SO2 CASE( 26 ) RATIOID = 73 FILENAME = TRIM( DIR ) // & 'SeasonalVariation/' // & 'SOx-EMEP-SeasonalScalar.geos.1x1' ! NH3 CASE( 30 ) RATIOID = 74 FILENAME = TRIM( DIR ) // & 'SeasonalVariation/' // & 'NH3-EMEP-SeasonalScalar.geos.1x1' END SELECT
There are a couple more instances of this error in emep_mod.f, but the fix is the same.
Update 8/1/11: Implementing this change causes the 1-month standard benchmark simulation to have divergent results than the previous version. Therefore, we should understand the source of these differences before we add this update into the standard repository.
--Bob Y. 10:43, 1 August 2011 (EDT)
Update 11/28/11: Patrick Kim tested this and found that the numerical discrepancy was being caused by ISORROPIA. Therefore we will add this fix into GEOS-Chem v9-01-03.
--Bob Y. 10:19, 28 November 2011 (EST)
Update 2/27/12: This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.
Bug fixes for regional emission masks
This update was tested in the 1-month benchmark simulation v9-01-03q.
Please see this wiki post on our Regridding in GEOS-Chem wiki page for a full description of an issue that affected the regridding of the EMEP European mask.
--Bob Y. 15:15, 20 December 2012 (EST)
Zero EMEP emissions at 30N
Eloise Marais wrote:
Anthropogenic emissions are zero where the EMEP and EDGAR emissions coincide at 30 degrees North (using GEOS-Chem v10-01). This is because the EMEP mask extends to gridsquares where EMEP emissions are zero. Anthropogenic emissions are relatively low there, so this issue only shows up when NOx emissions are plotted on a log scale.
My quick fix is to shift the minimum latitude of the EMEP mask up by 1 degree latitude (so starting at 31 deg N instead of 30 deg N), in an updated mask file EMEP_mask.geos.1x1.20151222.nc. (The boxes that were removed show up as RED in the plot below.)
As of 06 Jan 2016, the GEOS-Chem Support Team has placed the updated mask file into the following HEMCO data directory:
We will validate Eloise's update with the 1-month benchmark simulation GEOS-Chem v11-01f. This will involve changing the EMEP mask filename in the proper HEMCO_Config.rc files.
NOTE: The old mask file (EMEP_mask.geos.1x1.nc) shall be preserved for backwards compatibility.
Observed differences in CO emissions attributed to new EMEP mask file
Note that simulations using the updated EMEP mask file may cause some emissions differences w/r/t simulations using the old EMEP mask:
Prasad Kasibhatla wrote:
I am surprised by the differences in CO emissions between v11-01d and v11-01f. I was struck by how large they seem to be. What first caught my eye was the difference in boundary-layer CO mixing ratios in Cairo - and it looks like it is related to a big change in anthro+bifuel emissions in one grid box....Is there a simple explanation for this?
Melissa Sulprizio replied:
Differences in the anthropogenic+biofuel CO emissions in Cairo were caused by the updated EMEP mask file introduced in v11-01f. Eloise Marais found that EDGAR emissions were zero at 30N because the EMEP mask extended too far south, so she provided a new file that shifts the EMEP mask north by 1 degree.
- EMEP website: http://www.emep.int/index.html
- Auvray, M., and I. Bey, Long-Range Transport to Europe: Seasonal Variations and Implications for the European Ozone Budget, J. Geophys. Res., 110, D11303, doi: 10.1029/2004JD005503, 2005.
- Vestreng, V., and H. Klein, Emission data reported to UNECE/EMEP: Quality assurance and trend analysis & Presentation of WebDab, MSC-W Status Report 2002, Norwegian Meteorological Institute, Oslo Norway, July 2002. (PDF)
- Vestreng, V., Mareckova, K., Kakareka, S., Malchykhina, A., and Kukharchyk, T., Inventory Review 2007; Emission Data Reported to LRTAP Convention and NEC Directive, MSC-W Technical Report 1/07, The Norwegian Meteorological Institute, Oslo, Norway, 2007. (PDF)
--Bob Y. 12:13, 20 December 2012 (EST)