Difference between revisions of "EMEP European anthropogenic emissions"
(→Bug with EMEP ship emissions for nested grids) |
(→Previous issues that are now resolved) |
||
Line 41: | Line 41: | ||
== Previous issues that are now resolved == | == 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]].''''' | ||
+ | |||
+ | '''''[mailto:wtrivita@staffmail.ed.ac.uk 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 17:15, 20 December 2012
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.
Contents
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:
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
- 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 (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
- 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)