Difference between revisions of "EMEP European anthropogenic emissions"

From Geos-chem
Jump to: navigation, search
(1990 to 2005)
(Bug with EMEP ship emissions for nested grids)
Line 61: Line 61:
  
 
== Previous issues that are now resolved ==
 
== Previous issues that are now resolved ==
 
=== Bug with EMEP ship emissions for nested grids ===
 
 
<span style="color:green">'''''NOTE: This issue was resolved in [[GEOS-Chem v8-02-01]].'''''</span>
 
 
<span style="color:red">'''''This code was removed from [[GEOS-Chem v10-01]] and newer versions.  EMEP ship emissions are now implemented through the [[HEMCO|HEMCO emissions component]].'''''</span>
 
 
'''''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.)
 
 
 
 
--[[User:Ccarouge|Ccarouge]] 15:50, 7 May 2009 (EDT)<br>
 
--[[User:Bmy|Bob Y.]] 11:52, 20 December 2012 (EST)
 
  
 
=== Bug fix for EMEP ship emissions ===
 
=== Bug fix for EMEP ship emissions ===

Revision as of 20:40, 16 September 2022

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 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, 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

The 2008-2010 updated EMEP emissions were validated in GEOS-Chem v10-01h. The following discussion ensued.

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)

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:

  1. Bug with EMEP ship emissions for nested grids
  2. Bug fix for EMEP ship emissions
  3. Fix for initialization of EMEP ship emissions
  4. 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].

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

Previous issues that are now resolved

Bug fix for EMEP ship emissions

NOTE: This issue was resolved in GEOS-Chem v8-02-04.

This code was removed from GEOS-Chem v10-01 and newer versions. EMEP ship emissions are now implemented through the HEMCO emissions component.

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.

This code was removed from GEOS-Chem v10-01 and newer versions. EMEP ship emissions are now implemented through the HEMCO emissions component.

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.

In GEOS-Chem v10-01 and newer versions, EMEP ship emissions are now implemented through the HEMCO emissions component. This fix was implemented into HEMCO.

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.

This code was removed from GEOS-Chem v10-01 and newer versions. EMEP ship emissions are now implemented through the HEMCO emissions component.

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.

--Melissa Payer 17:47, 27 February 2012 (EST)
--Bob Y. 12:43, 20 December 2012 (EST)

Bug fixes for regional emission masks

This update was tested in the 1-month benchmark simulation v9-01-03q.

This code was removed from GEOS-Chem v10-01 and newer versions. EMEP emissions are now implemented through the HEMCO emissions component.

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)

Known issues

Zero EMEP emissions at 30N

This update was validated with 1-month benchmark simulation v11-01f and 1-year benchmark simulation v11-01f-geosfp-Run0. This version was approved on 16 Apr 2016.

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.)

Boxes removed from EMEP mask.png

As of 06 Jan 2016, the GEOS-Chem Support Team has placed the updated mask file into the following HEMCO data directory:

HEMCO/MASKS/v2014-07/EMEP_mask.geos.1x1.20151222.nc

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.

--Bob Yantosca (talk) 15:23, 30 March 2016 (UTC)

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.

--Bob Yantosca (talk) 16:01, 15 April 2016 (UTC)

References

  1. EMEP website: http://www.emep.int/index.html
  2. 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.
  3. 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)
  4. 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)