This page describes the various ship emissions inventories that have been implemented in GEOS-Chem.
- 1 Overview
- 2 ARCTAS
- 3 Corbett
- 4 EDGAR
- 5 EMEP
- 6 ICOADS
- 7 PARANOX ship plume model
- 8 References
- 9 Previous issues that are now resolved
- 9.1 Minor fixes for EMEP ship emissions
- 9.2 Bug for ship emissions in emfossil.f
- 9.3 Inconsistent mask file for EMEP ship emissions
- 9.4 Potential bug in EDGAR ship emissions code
- 9.5 Bug in ship NOx emissions
- 9.6 Duplicate ship emissions in Asia in Streets 2000 inventory
- 9.7 NOx ship emissions restored to the ND32, ND36 diagnostics
- 9.8 Bug in ship CO emissions
- 9.9 Bugs in ship emissions and non-local PBL mixing
- 10 Outstanding issues not yet resolved
At present there are several different ship emissions options in GEOS-Chem.
- The ARCTAS pre-mission ship SO2 emissions from David Streets. [Eyring et al, 2005a and 2005b]
- Ship emissions inventory as described in Corbett et al .
- SO2 ship emissions from the EDGAR 3.2 FT2000 global inventory.
- Ship emissions from the EMEP (European Monitoring and Evaluation Programme).
- Emission inventory based on data from the nternational Comprehensive Ocean−Atmosphere Data Set (ICOADS), the Automated Mutual-Assistance Vessel Rescue System (AMVER) data sets [Wang et al, 2008].
Starting with GEOS-Chem v8-01-04, ship-emitted NOx is no longer emitted directly as NOx, but as the combination HNO3 + 10*O3, following Chen et al .
The ARCTAS pre-mission inventory of SO2 was first introduced in GEOS-Chem v8-01-04.
The source code is contained in file arctas_ship_emiss_mod.f.
For more information about the data, please see the README file: GEOS_1x1/ARCTAS_SHIP_2008/README
Philippe Le Sager wrote:
The ship emission is based on the work by Eyring et al., [2005a and 2005b], which estimates the total international ship emissions for 1985, 1990, 2001, and 2020 (projection). The ship emission for each individual year is interpreted based on the above years, and the spatial pattern (gridded) is mapped based on the EDGAR gridded ship emission for 2000 (total amount from EDGAR is scaled to Eyring-based number).
If you want to reference the work on publication or website, you may either mention Diehl et al. [manuscript in preparation, 2009] or refer to the AeroCom readme document (prepared by Diehl).
For more information about this inventory please see: Corbett, J. J., P. S. Fischbeck, and S. N. Pandis, Global nitrogen and sulfur inventories for oceangoing ships, J. Geophys. Res., 104(D3), 3457–3470, 1999.
The Corbett et al data are read from disk by routine READ_SHIP_SO2 in sulfate_mod.f.
For more information about the data files, please see the following README files:
Please see this wiki post on our EDGAR anthropogenic emissions wiki page for more information about EDGAR inventories of ship exhaust.
--Bob Y. 12:29, 20 December 2012 (EST)
--Bob Y. 12:03, 20 December 2012 (EST)
The source code is in file icoads_ship_mod.f.
For more information about the data, see the README file: GEOS_1x1/ICOADS_200907/README
From Wang et al :
Ship activity patterns depicted by the International Comprehensive Ocean−Atmosphere Data Set (ICOADS), the Automated Mutual-Assistance Vessel Rescue System (AMVER) data set, and their combination demonstrate different spatial and statistical sampling biases. These differences could significantly affect the accuracy of ship emissions inventories and atmospheric modeling. We demonstrate (using ICOADS) a method to improve global-proxy representativeness by trimming over-reporting vessels that mitigates sampling bias, augment the sample data set, and account for ship heterogeneity. Apparent under-reporting to ICOADS and AMVER by ships near coastlines, perhaps engaged in coastwise (short sea) shipping especially in Europe, indicates that bottom-up regional inventories may be more representative locally. Primarily due to the long time series available publicly for ICOADS data, the improved ICOADS data set may be the most appropriate global ship traffic proxy identified to date to be used for a top-down approach. More generally, these three spatial proxies can be used together to perform uncertainty analyses of ship air-emissions impacts on a global scale (http://coast.cms.udel.edu/GlobalShipEmissions/).
PARANOX ship plume model
Geert Vinken wrote:
- [At the] past GEOS-Chem user's meeting I had a presentation about accounting for non-linear chemistry of ship plumes in the GEOS-Chem model. I think my code is ready to be incorporated in the GEOS-Chem model.
- I've attached an Appendix from a report I wrote a year ago, which contains some more information about how the method is programmed. I'm aware that some routines might need to be moved to new files (e.g. the interpolation of the Look-Up-Table is now done in icoads_ship_mod.f).
- The reference for my work has just been published.
--Bob Y. 10:27, 1 December 2011 (EST)
- AEROCOM readme document
- EMEP web page
- ICOADS web page
- 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.
- Chen, G., et al. An investigation of the chemistry of ship emission plumes during ITCT 2002, J. Geophys. Res., 110, D10S90, doi:10.1029/2004JD005236, 2005.
- Corbett, J. J., P. S. Fischbeck, and S. N. Pandis, Global nitrogen and sulfur inventories for oceangoing ships, J. Geophys. Res., 104(D3), 3457–3470, 1999.
- Eyring, V., H. W. Kšhler, J. van Aardenne, and A. Lauer, Emissions from international shipping: 1. The last 50 years, J. Geophys. Res., 110, D17305, doi:10.1029/2004JD005619, 2005a.
- Eyring, V., H. W. Kšhler, A. Lauer, and B. Lemper, Emissions from international shipping: 2. Impact of future technologies on scenarios until 2050, J. Geophys. Res., 110, D17306, doi:10.1029/2004JD005620, 2005b.
- Olivier, J.G.J. and J.J.M. Berdowski, Global emissions sources and sinks. In: Berdowski, J., Guicherit, R. and B.J. Heij (eds.) The Climate System, pp. 33-78. A. A. Balkema Publishers/Swets & Zeitlinger Publishers, Lisse, The Netherlands., 2001
- Vestreng, V., and H. Klein (2002), Emission data reported to UNECE/EMEP: Quality insurance and trend analysis and presentation of Web-Dab, MSC-W Status Rep. 2002:, 101 pp., Norw. Meteorol. Inst., Oslo, Norway. PDF
- Vestreng, V., K. Mareckova, S. Kakareka, A. Malchykhina and T. Kukharchyk. Inventory Review 2007; Emission Data reported to LRTAP Convention and NEC Directive, MSC-W Technical Report 1/07, Norw. Meteorol. Inst., Oslo, Norway, 2007.
- Vinken, G. C. M, K. F. Boersma, D. J. Jacob, and E. W. Meijer, Accounting for non-linear chemistry of ship plumes in the GEOS-Chem global chemistry transport model, Atmos. Chem. Phys., 11, 11707-11722, 2011. Link
- Wang, C., J. J. Corbett, and J. Firestone, Improving Spatial representation of Global Ship Emissions Inventories, Environ. Sci. Technol., 42 (1), 193-199, 2008. Link
--Bob Y. 10:31, 1 December 2011 (EST)
Previous issues that are now resolved
Minor fixes for EMEP ship emissions
--Bob Y. 10:08, 25 February 2010 (EST)
Bug for ship emissions in emfossil.f
NOTE: This fix has been incorporated into GEOS-Chem v9-01-01.
Geert Vinken wrote:
- Problem: The ship NOx emissions are as HNO3 and O3. These are stored in the EMISRR array when the other NOx emissions are determined. However, when later on the HNO3 and O3 emissions are determined these entries in the EMISRR arrays are overwritten. This way the ship HNO3 and O3 emissions are lost and consequently no ship emissions are present in the model!
- Code problem: In emissdr.f (line258) the fossil fuel emissions are called for all the emitted species.
IF ( LANTHRO ) THEN DO N = 1, NEMANTHRO NN = IDEMS(N) IF ( NN /= 0 ) THEN CALL EMFOSSIL( I, J, N, NN, IREF, JREF, JSCEN ) ENDIF ENDDO ENDIF
- In emfossil.f the work array is initialized in line 525:
! Initialize work variables EMX(:) = 0d0
- And then in line 814 the EMISRR(I,J,N) array is overwritten with the work array:
EMISRR(I,J,N) = EMX(1) * XNUMOL(NN) / DTSRCE
- Here the present HNO3 and O3 emissions from the NOx emissions are thus overwritten.
- Fix: I think the following should fix this, as the EMISRR array is zeroed in every call to emissdr.f this should give no problems:
!-------------------------------------------------------------- ! Store in EMISRR array and archive diagnostics !-------------------------------------------------------------- !--- Prior to (gvinken, 11/16/10). Emissions already present in EMISRR ! no longer get overwritten. ! EMISRR(I,J,N) = EMX(1) * XNUMOL(NN) / DTSRCE EMISRR(I,J,N) = EMISRR(I,J,N) + EMX(1) * XNUMOL(NN) / DTSRCE
--Bob Y. 12:00, 16 November 2010 (EST)
Inconsistent mask file for EMEP ship emissions
Please see this wiki post on our EMEP emissions wiki page for a full description of the issue.
--Bob Y. 12:21, 20 December 2012 (EST)
Potential bug in EDGAR ship emissions code
Please see this wiki post on our EDGAR anthropogenic emissions page for a full description of the issue.
--Bob Y. 12:32, 20 December 2012 (EST)
Bug in ship NOx emissions
Chris Holmes wrote:
- I found a bug in ship NOx emissions in v9-01-02n. Ship NOx emissions are supposed to be emitted as (1 mol HNO3 + 10 mol O3) per mol NOx in the inventory. The code previously used molar masses incorrectly so that the ratios were actually 0.73 mol HNO3 and 9.5 mol O3. Thus, this bug fix will slightly increase O3 and HNO3 over the oceans. I have pasted the corrected code for emfossil.F below:
!--------------------------------------------------------------- ! Prior to cdh 10/20/2011, HNO3 and O3 emissions were incorrectly scaled ! to ship NOx, due to molar masses being in the wrong place ! ! Convert molec/cm2/s to kg/box/timestep to get same ! ! units as EMISRN, ie default GEIA emiss (phs, 7/9/09) ! SHIP = SHIP * ( DTSRCE * AREA_CM2 ) / XNUMOL(NN) ! ! ! Store as HNO3 and O3 ! EMISRR(I,J,IDEHNO3) = SHIP * XNUMOL(IDTHNO3) / DTSRCE ! EMISRR(I,J,IDEOX) = 10D0 * SHIP * ! & XNUMOL(IDTOX) / DTSRCE ! ! ! ND36 = Anthro source diagnostic...store as [molec/cm2] ! ! and convert to [molec/cm2/s] in DIAG3.F ! IF ( ND36 > 0 ) THEN ! ! AD36(I,J,IDEHNO3) = AD36(I,J,IDEHNO3) + SHIP * ! & XNUMOL(IDTHNO3) / AREA_CM2 ! ! AD36(I,J,IDEOX) = AD36(I,J,IDEOX) + SHIP * ! & 10D0 * XNUMOL(IDTOX) / AREA_CM2 ! ! ENDIF !--------------------------------------------------------------- ! Store as HNO3 and O3 ! Convert molec/cm2/s to molec/box/s (cdh, 10/20/2011) EMISRR(I,J,IDEHNO3) = SHIP * AREA_CM2 EMISRR(I,J,IDEOX) = 10D0 * SHIP * AREA_CM2 ! ND36 = Anthro source diagnostic...store as [molec/cm2] ! and convert to [molec/cm2/s] in DIAG3.F IF ( ND36 > 0 ) THEN AD36(I,J,IDEHNO3) = AD36(I,J,IDEHNO3) + SHIP * DTSRCE AD36(I,J,IDEOX) = AD36(I,J,IDEOX) + 10D0 * SHIP * & DTSRCE ENDIF
--Melissa Payer 13:44, 21 October 2011 (EDT)
Duplicate ship emissions in Asia in Streets 2000 inventory
This update was tested in the 1-month benchmark simulation v9-01-03f and approved on 17 Feb 2012.
Please see this wiki post on our David Streets regional emissions wiki page for a full description of the issue.
--Bob Y. 12:24, 20 December 2012 (EST)
NOx ship emissions restored to the ND32, ND36 diagnostics
In versions v9-01-01 and v9-01-02, you may have noticed that ship NOx emissions seem to be lacking from the ND36 (ANTHSRCE) or ND32 (NOX-AN-$) diagnostics. This is because the ship NOx emissions in these versions were partitioned into HNO3 + 10*Ox (in GeosCore/emfossil.F), and then saved into separate slots of the ND36 diagnostic:
! Store as HNO3 and O3 ! Convert molec/cm2/s to molec/box/s (cdh, 10/20/2011) EMISRR(I,J,IDEHNO3) = SHIP * AREA_CM2 EMISRR(I,J,IDEOX) = 10D0 * SHIP * AREA_CM2
With the advent of the PARANOX plume model in GEOS-Chem v9-01-03 and later versions, this has now been corrected. The resultant ship emissions are now properly archived as NOx, O3, and HNO3 in the ND36 diagnostics. Ship NOx is also saved into the ND32 diagnostic. This is done in routine GeosCore/calcrate.F, where PARANOX is invoked:
!=================================================== ! Update diagnostics !=================================================== !ND36 = Anthro source diagnostic...store as [molec/cm2] !and convert to [molec/cm2/s] in DIAG3.F IF ( ND36 > 0 ) THEN AD36(IX,IY,IDEHNO3) = AD36(IX,IY,IDEHNO3) + SHIP * & (1D0 - fraction_nox) * & XNUMOL(IDTHNO3) / AREA_CM2 AD36(IX,IY,IDEOX) = AD36(IX,IY,IDEOX) + SHIP * & int_ope * (1D0 - fraction_nox)* & XNUMOL(IDTOX) / AREA_CM2 AD36(IX,IY,IDENOX) = AD36(IX,IY,IDENOX) + SHIP * & fraction_nox * & XNUMOL(IDTNOX) / AREA_CM2 ENDIF ! ND32 = save anthro NOx for levels L=1,NOXEXTENT [molec/cm2/s] IF ( ND32 > 0 ) THEN AD32_an(IX,IY,IZ) = AD32_an(IX,IY,IZ) + & ( SHIP * fraction_nox * XNUMOL(NN) / & ( DTSRCE * AREA_CM2 ) ) ENDIF
--Bob Y. 16:12, 7 February 2013 (EST)
Bug in ship CO emissions
Chris Holmes wrote:
- When EMEP ship emissions are selected in input.geos the EMEP ship emissions inventory was previously overwriting all ship CO emissions globally. As a result, ship CO emissions were zero outside of the EMEP region (European waters). The solution is to only overwrite within the EMEP region. This bug has persisted at least since v9-01-01.
To fix this bug, change the following code in emfossil.F from:
IF ( LEMEPSHIP ) SHIP = $ GET_EMEP_ANTHRO( I, J, NN, SHIP=.TRUE.)
IF ( LEMEPSHIP ) THEN ! If we are over the European region ... ! (bug fix, now overwrite only EMEP region, cdh 1/2/2013) IF ( GET_EUROPE_MASK( I, J ) > 0d0 ) THEN SHIP = GET_EMEP_ANTHRO( I, J, NN, SHIP=.TRUE.) ENDIF ENDIF
--Melissa Payer 14:19, 3 January 2013 (EST)
Bugs in ship emissions and non-local PBL mixing
This update was tested in the 1-month benchmark simulation v9-02l and approved on 26 Jun 2013.
Chris Holmes wrote:
- I have some bug fixes for ship NOx emissions which have some significant impacts on HOx-NOx-O3 chemistry. In addition, I found an unresolved bug that affects all emissions, at least when using non-local PBL mixing. Geert Vinken and I have talked and I believe he concurs with my recommended changes.
- One proposal that I will make is that we should add global mass balance checks to the monthly benchmarks, in order to find and fix these kinds of bugs more quickly in the future. For example, the integrated emissions minus deposition and chemical loss over a 1-month run should equal the change in mass between the first and last restart files. This would help QA/QC during model development. Many, but not all, of the bugs below would have been caught by this kind of test.
- BUG FIXES
- Ship NOx emissions with the ICOADS-AMVER inventory were 3.3 times too low, due to a NO2 vs. N molecular weight error. Emissions should be 5.0Tg(N)/yr. As a result, O3 and HNO3 concentrations were underestimated, especially over the N. Atlantic and N. Pacific. This bug has probably persisted in all model versions with ICOADS ship emissions.
- NOTE: Yanko Davila found that this bug fix may not be backwards compatible with GEOS-Chem v9-01-01 and earlier when ship emissions were handled in emfossil.F. Applying the bug fix in earlier versions may result in unreasonably high values of ozone over the shipping zones.
- All remaining bugs afflict only v9-01-03 and later.
- Some portion (probably 25%) of ship emissions were neglected in the model runs with non-local PBL mixing, due to ship emissions being in calcrate.F, not setemis.F. I moved the ship code to setemis.F and reordered the call to Fast-J in chemdr.F to accommodate this. (The Fast-J move alone has no impact.)
- Molecular weights of NOx, HNO3, and O3 were all mixed up in ship plume code. Affects both simulation and diagnostics only v9-01-03, although there was a similar bug in v9-01-01 that we've already fixed in v9-01-02.
- ND32 and ND36 diagnostics gave incorrect totals because ship NOx is calculated every convective time step, when using non-linear PBL mixing, rather than every emission time step. I created additional diagnostic counters in order to calculate the correct averages, regardless of the mixing scheme chosen.
- MINOR SCIENCE UPDATES
- These fixes enable the code to do what it was supposed to do, although they're more than simple bug fixes.
- Net O3 loss in ship plumes (which occurs at night) is now treated as dry deposition, rather than set to zero. We calculate a dry deposition frequency that would give an equivalent O3 loss rate.
- Ship plume NO2 should be included in Ox emissions (along with O3 production) when using the non-local PBL mixing. This is unnecessary when doing instant PBL mixing because then emissions occur with chemistry when there is no Ox family.
- ND63 diagnostics are now averages of user-specified time intervals and reported in units of molec/cm2/s or unitless (mol/mol). This improves consistency with other diagnostics.
- REMAINING EMISSIONS BUG
- With non-local PBL mixing, there are *no emissions* during the first mixing and convection time step. Even worse, you can't tell this from the diagnostics, which show emissions as normal. This happens because some emission variables are not initialized until after chemistry runs, so setemis within vdiff_mod can't run. Emissions of all trace gases are affected, at least in v9-01-03. I don't know how long this error has persisted. Resolving this bug requires putting chemistry before PBL mixing in main. For fully decoupling emissions and chemistry code. I tested the reordering solution, but it causes 20% or greater changes in concentration of some species, so I leave this issue to the GCST. The emission and PBL mixing wiki pages should have a warning about this.
Outstanding issues not yet resolved
Only call PARANOX with the full-chemistry simulations
This update is slated for v9-02r.
In routine DO_EMISSIONS (in module GeosCore/emissions_mod.F), the subroutine READ_PARANOX_LUT is called for fullchem, offline aerosol, tagged CO, and H2/HD simulations. But PARANOX assumes that you have NO and O3 tracers defined. Calling PARANOX from an offline simulation will result in a seg-fault error, caused by unallocated arrays.
The solution is to only call READ_PARANOX_LUT for the full-chemistry simulations and not from any of the offline simulations.
--Bob Y. 10:36, 17 October 2013 (EDT)