EMEP European anthropogenic emissions

From Geos-chem
Revision as of 17:20, 20 December 2012 by Bmy (Talk | contribs) (Fix for initialization of EMEP ship emissions)

Jump to: navigation, search

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.

Overview

The EMEP inventory also includes emissions from ship exhaust.

NOTE: The EMEP emissions data have been extended to the year 2007 in GEOS-Chem v8-03-01 and higher versions.

EMEP European ship emissions inventory

The EMEP inventory contains ship emissions for NOx, CO, SO2.

The source code is located in file GeosCore/emep_mod.f.

Please also note the following fixes:

  1. Minor fixes for EMEP ship emissions
  2. 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 [2005] and Vestreng and Klein [2002] for more information.

1990 to 2005

EMEP ship data from 1990-2005 are based on [Vestreng et al, 2007].

For more information about the data, please see the README file: GEOS_1x1/EMEP_200911/README

--Bob Y. 12:00, 20 December 2012 (EST)

References

  1. 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.
  2. Vestreng, V., and H. Klein (2002), 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
  3. Vestreng et al., EMEP 2005 expert emissions, 2007. (need full citation!)

--Bob Y. 12:13, 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.)


--Ccarouge 15:50, 7 May 2009 (EDT)
--Bob Y. 11:52, 20 December 2012 (EST)

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

--Ccarouge 12:54, 26 January 2010 (EST)
--Bob Y. 12:11, 20 December 2012 (EST)

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)