GEOS-Chem Adjoint

From Geos-chem
Revision as of 19:56, 30 April 2011 by Daven (Talk | contribs) (Journal Articles)

Jump to: navigation, search

Adjoint and Data Assimilation Working Group

Contact information

Adjoint Working Group Chair Kevin Bowman
Adjoint Model Scientist Daven Henze
Adjoint Working Group email list
To subscribe to email list Send email to
To unsubscribe from email list Send email to

Historical Development

Original work on the adjoint of GEOS-Chem v6 began in 2003, focusing on the adjoint of the offline aerosol simulation. By 2005, the adjoint was expanded to include a tagged CO simulation and a full chemistry simulation; an adjoint of GEOS-Chem v7 was also developed in the following years. Each of these branches of the adjoint code were been constructed in a hybrid fashion using a combination of automatic differentiation software (TAMC, KPP) and manual coding of both discrete and continuous adjoints. They shared many common elements yet had unique features for different applications.

During the summer of 2009, the existing branches were merged and updated to bring the adjoint into alignment with the latest release of GEOS-Chem, v8-02-01. This merged adjoint model is now the standard adjoint code into which all further development efforts will be placed.

Current Forward Model Code

The forward model on which the adjoint is based corresponds to GEOS-Chem v8-02-01 with the following updates:

  • KPP solver for gas-phase chemistry (as in GCv8-02-03)
  • Implement Bond 2007 BC/OC emissions (as in GCv8-02-02)
  • Apply bug fixes from GCv8-02-02 listed here
  • Apply bug fixes from GCv8-02-03 listed here
  • Apply bug fixes from GCv8-02-04 listed here
  • ...

All bug fixes and model updates that have been ported from the forward model are now listed at the top of inverse_driver.f. For example:

!Revision 1.31  2011/02/23 00:08:47  daven
!UPDATES in forward model:
! - add diag59 (lz, 11/18/10)
! - GCv8-02-04: add EPA/NEI05.
!   - completely update scale_anthro_mod.f to GCv9-01-01
!   - completely update epa_nei_mod.f to GCv9-01-01
!   - add nei2005_anthro_mod.f to GCv9-01-01
! - completely update error_mod.f to GCv9-01-01
!BUG FIXES in forward model:
! - GCv8-02-03: Corrected_Bond_et_al_BC.2FOC_emissions
! - GCv8-02-04: Bug_fix_in_emfossil.f_for_0.5_x_0.666_nested_grid_tagged-CO_option
! - GCv8-03-02: Fix_for_EPA.2FNEI_2005_emissions
! - GCv8-03-02: Minor_fixes_in_gamap_mod.f
! - GCv9-01-01: Bug_fix_for_biofuels_in_EPA.2FNEI05
! - GCv?-??-??: Add scaling of aromatic emissions over the US. (hotp, 11/23/09)
! - GCv9-01-01: Important_bug_fixes_for_ship_emissions
! - GCv9-01-01: Fix_to_prevent_div-by-zero_in_sulfate_mod.f
! - GCv9-01-02: Double_counting_of_biofuel_emissions_over_Asia
! - GCv9-01-02: fix SET_TINDEX for ND17, 18, 38, 39 so that all wet diagnostics get written out (dkh, 02/16/11)

Current Adjoint Code


  • Meteorological fields
    • GEOS-3 needs testing
    • GEOS-4
    • GEOS-5
  • model resolution
    • 4 x 5
    • 2 x 2.5
    • Asia nested (for tagged CO only)
  • Forward model processes
    • convection
    • advection
    • PBL mixing
    • dry deposition
    • wet deposition
    • strat / trop exchange with LINOZ (GEOS-4 implementation of LINOZ needs further testing )
    • NOy up fluxes
    • aerosols
      • inorganic aerosol thermodynamics with RPMARES
      • inorganic aerosol thermodynamics with ISORROPIA in progress
      • sulfate chemistry
      • BC
      • SOA, Dust, sea salt needs doing
      • aerosol surface area feedbacks needs updating
      • aerosol optical feedbacks needs doing
    • emissions
      • all standard emissions included
  • Simulation modes
    • full chemistry
    • tagged CO
    • tagged Ox
    • CO2
    • methane in progress
  • Observational Operators
    • MOPITT CO column
    • SCIAMACHY CO column
    • AIRS CO column
    • IMPROVE PM2.5 (NO3, SO4, OC, BC) needs updating
    • CASTNet (NH4+) needs updating
    • GOME / SCIAMACHY NO2 column needs updating
      • using KNMI retrieval (Henze)
      • using Dalhousie retrieval (Shim)
    • TES NH3
    • TES O3
    • GOSAT CO2
    • MLS O3 and TES CO2 in progress
  • Control parameters
    • Initial Conditions scaling factors (linear or log)
    • Emissions scaling factors (linear or log)
      • NH3, primary BC/OC, SO2: anthropogenic, natural, bioburn, biomass, ship
      • NOx: soil, aircraft, anthropogenic, biofuel, bioburn
      • Lightning NOx: injection height, yield in progress
      • all other gas-phase tracers: anthropogenic, biofuel, bioburn
  • Adjoint sensitivities
    • w.r.t. all implemented control parameters
    • w.r.t Reaction Rate Parameters
    • w.r.t all emissions
    • of AQ attainment metrics needs updating
    • of spatiotemporally averaged species concentrations (e.g., arctic O3)
  • Other
    • Inverse Hessian approximation needs updating
    • off-diagonal covariance matrices needs updating
    • 3D-Var needs updating

Features may be qualified as:

  • needs testing: an implemented feature that we haven't fully used yet
  • needs updating: a feature developed with a previous branch that has yet to be updated to GEOS-Chem v8 and the merged adjoint
  • needs doing: a feature nobody has tackled the adjoint of yet
  • in progress: a feature currently under development
  • in pipeline: a feature which has been submitted and awaiting integration into the CVS repository

Primary code developers

Monika Kopacz, Kumaresh Singh, Changsub Shim, Daven Henze

Adjoint model lead scientist

Daven Henze

Known issues

  1. Nicolas Bousserez reported a problem with compiling the GEOS-Chem adjoint with OpenMP under IFORT 11.
  2. There is a bug in the forward model implementation of variable tropopause which can cause unstable adjoints. Recommend turning off variable tropopause for all full chemistry adjoint runs until this is addressed.


User's guide

A user's guide is available.

Code flowchart

Meemong Lee has created a detailed flowchart of the inverse model code structure.

Distribution and Use

Code for the adjoint is distributed through a CVS server located at Contact Daven Henze to obtain an account on the server.

Even if your office mate has a copy of the code, the best way to obtain the model is to get a CVS account for yourself and download a version from the repository. So please do not copy code directly from others or pass the code along to third parties. This vastly helps with tracking developments and keeping up with model updates.

Use of the adjoint model code follows standard practice for GEOS-Chem. It is expected that any developments that come of individual applications based on this community model will eventually be given back to the community by incorporation of new developments into the standard adjoint code. New development should be submitted to Daven Henze for inclusion in the standard adjoint model code.

Crediting GEOS-Chem adjoint developers

We aim to make distribution of adjoint model code as immediate as possible. A consequence is that many features may not yet be publicly documented. Therefore, giving code developers due credit is of utmost importance.

Authors of new additions to the standard code should be offered co-authorship on the first round of presentations and publications to come of their development. Features currently falling in this category and their developers are:

  • (v31) Asian nested grid for tagged CO. Developer: Zhe Jiang, University of Toronto.
  • (v31) MOPITT CO v3 and v4 observation operators. Developer: Zhe Jiang, University of Toronto.
  • (v29) LIDORT. Developer: Daven Henze, University of Colorado Boulder. Collaborator: Rob Spurr.
  • (v28) CO2 adjoint. Developer: Daven Henze, University of Colorado Boulder. Collaborators: Ray Nassar, Kevin Bowman, Dylan Jones.

Citation of the appropriate journal articles for mature developments is also encouraged, as well as considering aspects of co-authorship for the forward model.

Overall, if you have any questions about authorship, even for a conference presentation, please contact Daven Henze.

Current GEOS-Chem Adjoint Research Projects (please add yours!)

User Group Description Contact Person
CU Boulder Aerosol precursors, CO2, O3; general adjoint code maintenance Daven Henze
Harvard Methane Kevin Wecht
Purdue University Methane (SICAMACHY, AIRS and IASI) Jinyun Tang
MIT Aircraft emissions Jamin Koo
Princeton BC sensitivities, general adjoint code development Monika Kopacz, mkopacz [at]
Dalhousie University Lightning NOx emissions and impact on tropical ozone using the adjoint Nicolas Bousserez
JPL Microwave Limb Sounder (MLS) Ozone assimilation Meemong Lee
JPL TES ozone assimilation/attribution of ozone radiative forcing Kevin Bowman
University of Edinburgh Quantifying the impact of boreal forest fires on tropospheric oxidants over the Atlantic Mark Parrington
US EPA Integration with economic models for future emission inventory scenario development Farhan Akhtar
Peking University Satellite constraints on VOC emissions May Fu
CU Boulder Aerosol precursor emissions Alex Turner
IAP.CAS CO2 assimilation Chen
Purdue University Feedback between terrestrial ecosystem processes and atmospheric co2 signals Qing Zhu
University of Toronto Sensitivity of ozone and reactive nitrogen to precursor emissions Thomas Walker


Journal Articles

  • Kopacz, M., D.J. Jacob, J.A. Fisher, J. A. Logan, L. Zhang, I. A. Megretskaia, R. M. Yantosca, K. Singh, D. K. Henze, J. P. Burrows, M. Buchwitz, I. Khlystova, W. W. McMillan, J. C. Gille, D. P. Edwards, A. Eldering, V. Thouret, and P. Nedelec (2010): Global estimates of CO sources with high resolution by adjoint inversion of multiple satellite datasets (MOPITT, AIRS, SCIAMACHY, TES), Atmos. Chem. Phys., 10, 855-876.
  • Henze, D. K., J. H. Seinfeld and D. T. Shindell (2009), Inverse modeling and mapping U.S. air quality influences of inorganic PM2.5 precursor emissions with the adjoint of GEOS-Chem, Atmos. Chem. Phys., 9, 5877-5903.
  • Zhang, L., D. J. Jacob, M. Kopacz, D. K. Henze, K. Singh, and D. A. Jaffe (2009), Intercontinental source attribution of ozone pollution at western U.S. sites using an adjoint method, Geophys. Res. Lett., 36, L11810, doi:10.1029/2009GL037950
  • Henze, D. K., A. Hakami and J. H. Seinfeld (2007), Development of the adjoint of GEOS-Chem, Atmos. Chem. Phys., 7, 2413-2433.

Conference proceedings

  • Singh, K., P. Eller, A. Sandu, D. K. Henze, K. Bowman, M. Kopacz, and M. Lee (2009), Towards the construction of a standard geos-chem adjoint model, ACM High Performance Computing Conference.
  • Kopacz, M., Mauzerall, D.L., Leibensperger, E.M., Wang, J., Henze, D.K., Singh, K., Shim, C. Identifying the origin and estimating the radiative forcing of BC in the Himalayas: an analysis using the global GEOS-Chem adjoint model, European Geophysical Union meeting, Vienna, May 4, 2010.
  • Kopacz, M., Jacob, D.J., Fisher, J.A., Logan, J.A., Zhang, L., Megretskaia, I.A., Yantosca, R.M., Singh, K., Henze, D.K., Burrows, J.P., Buchwitz, M., Khlystova, I., McMillan, W.W., Gille, J.C., Edwards, D.P., Eldering, A., Thouret, V., Nedelec, P. Global estimates of CO sources with high resolution by adjoint inversion of multiple satellite datasets (MOPITT, AIRS, SCIAMACHY, TES), European Geophysical Union meeting, Vienna, May 7, 2010.
  • Tang, J., Zhuang, Q. and Xiong, X. (2010), 4D-Var inversion of atmospheric methane fluxes by assimilating SCIAMACHY and AIRS satellite retrievals, AGU, Dec. 18, 2010, http:/