GEOS-Chem Adjoint v33

From Geos-chem
Jump to navigation Jump to search

Overview

BETA RELEASE

What's new in this version

GEOS-Chem Adjoint v33 contains the following major updates and improvements.

Feature Type Submitted by Committed by Version Status
Add TES O3 IRK observation operator Adjoint Update Daven Henze (CU Boulder), Kevin Bowman (JPL) Daven Henze (CU Boulder) v33a Approved 13 Apr 2012
Fix wetdep adjoint Adjoint bug fix Fabien Paulot (Harvard University), Daven Henze (CU Boulder) Daven Henze (CU Boulder) v33b Approved 20 Apr 2012
Fix checkpointing of aircraft SO2 emissions Adjoint bug fix Daven Henze, Kateryna Lapina (CU Boulder) Nicolas Bousserez (CU Boulder) v33c Approved 20 Apr 2012
Fix linoz adjoint Adjoint bug fix Hyungmin Lee (CU Boulder) Nicolas Bousserez (CU Boulder) v33d Approved 07 May 2012
Adjoint stability update Adjoint bug fix Jamin Koo (MIT), Daven Henze (CU Boulder) Nicolas Bousserez (CU Boulder) v33e Approved 09 May 2012
Fix SE Asia NH3 seasonality Forward bug fix Shailesh Kharol (Dalhousie), Steven Vogel (CU Boulder) Nicolas Bousserez (CU Boulder) v33e Approved 09 May 2012
Fix problem with LICS flag in using SCHEM Adjoint bug fix Hyungmin Lee (CU Boulder) Nicolas Bousserez (CU Boulder) v33f Approved 13 July 2012
L-BFGS inverse Hessian and pseudo-obs cost function formulation updates Adjoint update Nicolas Bousserez (CU Boulder) Nicolas Bousserez (CU Boulder) v33g Approved 10 August 2012

Updates to forward model

Bug fixes in forward model

Fix SE Asia NH3 seasonality (v33e)

The bug fix from the forward model fixing the seasonality of the NH3 emissions over SE Asia has also been applied.

1 week benchmark is approved 33e_003


--Daven 02:40, 10 May 2012 (EDT)

Updates to adjoint model

Add TES O3 IRK (v33a)

Implemented observation operator for assimilation of TES O3 IRKs.

See benchmark results 33a_001

--Daven 19:03, 13 April 2012 (EDT)

Bug fixes in adjoint model

Fix wet deposition adjoint (v33b)

The adjoint was not properly handling evaporation. This fix helps make the adjoint of species such as NH3 better in a few locations where adjoints were diverging from forward model sensitivities by up to 50%.


See benchmark results 33a_002 vs 33b_002

--Daven 12:51, 20 April 2012 (EDT)

Fix checkpointing of aircraft SO2 emissions (v33c)

The SO2 aircraft emissions are distributed in the model based on a mapping from the 20 level inventory to the GEOS-Chem levels. This mapping depends upon the air masses in the models. The emissions are read in during the first hour of the month in the forward model, but on the last hour of the month in the adjoint. Thus they were being calculated inconsistently in the adjoint compared to the forward model. We now checkpoint these emissions rather than recalculate them

See benchmark results 33c_001 - 33c_004

--Daven 23:08, 7 May 2012 (EDT)

Fix linoz adjoint (v33d)

While the linoz routine is linear, and should be self-adjoint, it isn't exactly self-adjoint. For example, given initial forcings of STT_ADJ = 0d0 in every grid cell, it can generate non-zero values of STT_ADJ as output, which is incorrect.

In this update we use the discrete adjoint based upon reformulating the code to be consistent with the strat chem routine for the non-Ox species.

See benchmark results 33d_001 - 33c_007

--Daven 23:14, 7 May 2012 (EDT)

Important: If you check out version 33d (using the tag option), make sure to also check out the most recent version of linoz_mod.f (cvs checkout linoz_mod.f), since this file had not been updated by mistake. --Nicolas Bousserez 22:12, 7 July 2012 (EDT)

Adjoint stability update (v33e)

Several fixes were made to increase the numerical stability of the code

  • Change the filter to 1d-10 in partition_adj.f
  • Better error trapping in gckpp_adj_Integrator.f90 to prevent NaNs following a failed integration step during the adjoint


A few other small changes to improve performance were included in this update. Overall, the benchmark performance is not impacted by these update, see 33e_001


--Daven 02:26, 10 May 2012 (EDT)

Important: If you check out version 33e (using the tag option), make sure to also check out the most recent version of linoz_mod.f (cvs checkout linoz_mod.f), since this file had not been updated by mistake. --Nicolas Bousserez 22:12, 7 July 2012 (EDT)


Fix problem with LICS flag in using SCHEM (v33f)

New stratospheric chemistry module (strat_chem_mod.f), was set to loop over the number of tracers (NSTPL) that has read from input.gcadj. It caused a problem when LADJ_STRAT is turned off, LADJ_STRAT is not appeared in input.gcadj (NSTPL = 0), or LADJ = F for spin-up.

--Hyungmin 19:26, 14 Jul 2012 (EDT)


L-BFGS inverse Hessian and pseudo-obs cost function formulation updates (v33g)

- Possibility to compute the L-BFGS inverse Hessian, which gives the posterior error covariance matrix of the inversion. Here only the diagonal elements (the error variances) of the matrix are computed. Unlike the DFP method, this method allows to compute a posterior errors for large dimensional problems (e.g. high-resolution inversions). - The cost function for the pseudo-observations inversion test has been modified to properly account for the error term specified in the input.gcadj input file (ERROR).

Outstanding issues not yet resolved in v33

Updates in the pipeline

  • Reaction rate sensitivities (Paulot, Harvard; Walker, UT)
  • Update inverse Hessian approximation (Bousserez, CUB)
  • Off-diagonal error covariance matrices (Singh, VT; Liu, JPL)
  • Deposition-based cost function and updated chemistry (Paulot, Harvard)
  • ETOH simulations (Millet, UMN)
  • NH3 updates (Zhu, Colorado)
  • NO2/SO2 obs operators (Bousserez, Dalhousie)
  • ANISO (Capps, Georgia Tech)