EDGAR anthropogenic emissions

From Geos-chem
Revision as of 16:58, 13 February 2015 by Bmy (Talk | contribs) (Implementation of EDGAR 4.2 into GEOS-Chem)

Jump to: navigation, search

On this page we provide information about the Emissions Database for Global Atmospheric Research (EDGAR) anthropgenic emissions inventories used in GEOS-Chem.

EDGAR v4.2

The EDGAR v4.2 emissions were introduced into GEOS-Chem v10-01. These emissions are read in via the HEMCO emissions component. Please see our EDGAR v4.2 anthropogenic emissions wiki page for more information.

--Bob Y. 11:58, 13 February 2015 (EST)

EDGAR v4.1

EDGAR 4.1 emissions were retired in GEOS-Chem v10-01. We have moved the content of the previous wiki page to the new EDGAR v4.1 anthropogenic emissions page.

--Bob Y. 11:58, 13 February 2015 (EST)

Previous issues that are now resolved

Potential bug in EDGAR ship emissions code

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

— Bob Yantosca, 13 February 2015

This update was tested in the 1-month benchmark simulation v9-01-02s and approved on 5 Nov 2011.

Michael Long discovered this potential bug in the EDGAR emissions code.

The current GEOS-Chem default configuration uses the ICOADS ship emissions instead of the EDGAR ship emissions. In routine READ_EMISSIONS_MENU in input_mod.f, we have a safety check...we turn off the logical switch LEDGARSHIP if switch LICOADS is turned on:

     !=================================================================
     ! Check global ship emissions options
     !=================================================================
     ! Add an ship emissions options (cklee, 6/30/09)
     ! Replace with ICOADS ship emissions
     ! User can still use regional EMEP, and ARCTAS-SO2 if he wants (phs) 
     IF ( LICOADSSHIP ) THEN
        LEDGARSHIP = .FALSE. ! ICOADS precedes EDGAR
        LSHIPSO2   = .FALSE. ! SO2-ICOADS precedes SO2-Corbett
     ENDIF    

In edgar_mod.F, the EDGAR ship emissions arrays are not allocated if the switch LEDGARSHIP == .FALSE.:

     IF ( LEDGARSHIP ) THEN

        ALLOCATE( EDGAR_SO2_SHIP( IIPAR, JJPAR ), STAT=AS )
        IF ( AS /= 0 ) CALL ALLOC_ERR( 'EDGAR_SO2_SHIP' )
        EDGAR_SO2_SHIP = 0d0

        ALLOCATE( EDGAR_NOx_SHIP( IIPAR, JJPAR ), STAT=AS )
        IF ( AS /= 0 ) CALL ALLOC_ERR( 'EDGAR_NOx_SHIP' )
        EDGAR_NOx_SHIP = 0d0

        ALLOCATE( EDGAR_CO_SHIP( IIPAR, JJPAR ), STAT=AS )
        IF ( AS /= 0 ) CALL ALLOC_ERR( 'EDGAR_CO_SHIP' )
        EDGAR_CO_SHIP = 0d0
 
     ENDIF

However, we still pass EDGAR_CO_SHIP to routine COMPUTE_EDGAR_CO even if it is not allocated:

        IF ( LEDGARCO ) THEN
           CALL COMPUTE_EDGAR_CO( YEAR, EDGAR_CO, EDGAR_CO_SHIP )
        ENDIF

Here, EDGAR_CO_SHIP is an output variable, which is supposed to return the EDGAR ship emissions at the current model resolution. This may produce undefined behavior. This may trigger an error when compiling with the check-array-bounds option (BOUNDS=yes).

Some of the more forgiving compilers may "fix" this on-the-fly and thus, you might not see any errors. However, for the sake of good programming practice, this should be fixed.

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

Typos in edgar_mod.f

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

— Bob Yantosca, 13 February 2015

NOTE: This issue was resolved in GEOS-Chem v9-01-01.

In routines READ_C2H2 and READ_C2H4 of edgar_mod.f, the data directory was wrongly listed as EDGAR200607 instead of EDGAR_200607. We have now fixed these typos in v9-01-01.

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