EMEP European anthropogenic emissions

From Geos-chem
Revision as of 17:14, 20 December 2012 by Bmy (talk | contribs) (→‎Overview)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 fix for EMEP ship emissions

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

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)

Bug with EMEP ship emissions for nested grids

NOTE: This update was introduced in emfossil.f 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)