FAST-J photolysis mechanism

From Geos-chem
Revision as of 17:15, 5 December 2014 by Jmao (Talk | contribs) (Description of the issue)

Jump to: navigation, search

This page describes the FAST-J photolysis mechanism, which was used in versions up to GEOS-Chem v9-02. The newer FAST-JX v7.0 photolysis mechanism has been incorporated into GEOS-Chem v10-01c and higher versions. Thus, most of the information on this page will become obsolete as soon as GEOS-Chem v10-01 is publicly released in late 2014. (Bob Yantosca, 19 May 2014)

This page describes the FAST-J photolysis mechanism as it was used in GEOS-Chem. FAST-J was replaced by the newer FAST-JX v7.0 photolysis mechanism in GEOS-Chem v10-01.


FAST-J is the photolysis mechanism used in GEOS-Chem versions prior to v10-01c. It was originally developed by Oliver Wild and Michael Prather (UC Irvine), and has been subsequently modified several times in GEOS-Chem. The name FAST-J refers to the fact that cross-sections and quantum yields are required for only 7 tropospherically-important wavelength bins. Other photolysis algorithms had used many more wavelength bins and, as a result, were much more computationally expensive.


Here is a timeline of important updates to the FAST-J mechanism in GEOS-Chem.

Version Date Features / Improvements
GEOS-Chem v1-04 25 Sep 1998
  • Original implementation of FAST-J into GEOS-Chem
GEOS-Chem v1-05 02 Oct 1998
  • Prevented negative J-values from occurring
GEOS-Chem v2-01 22 Feb 1999
  • Modified fast-J subroutines to calculate the effect of changing Earth-Sun distance during the year
  • Introduced pressure dependence for acetone photolysis reaction
GEOS-Chem v2-05 05 Oct 1999
  • Upgraded to FAST-J v3.0
GEOS-Chem v3-05 08 Feb 2000
  • Implemented Hermann & Celarier (1997) monthly-mean UV albedoes for photolysis
GEOS-Chem v4-08 19 Oct 2000
  • Passed mineral dust optical depths into FAST-J photolysis mechanism
GEOS-Chem v4-22 15 Nov 2001
  • Added heterogeneous chemistry for the 7 FAST-J mineral dust size bins
GEOS-Chem v4-30 26 Mar 2002
  • Added optical depths from 5 different aerosol types into FAST-J (sulfate, BC, OC, SALA, SALC)
GEOS-Chem v4-32 24 Apr 2002
  • Updated O3 + hv --> O1D photolysis cross sections (in jv_spec.dat file) according to JPL 2000.
GEOS-Chem v5-04 11 Apr 2003
  • Correced a bug: Now use the current day of the year to compute the variance of the solar constant. Previously we had used the cumulative # of days since 1985. This caused minor changes on the chemistry.
GEOS-Chem v5-07-08 10 Oct 2003
  • Scaled existing FAST-J O3 climatology to monthly mean values from EP-TOMS data.
GEOS-Chem v8-01-04 10 Mar 2009
GEOS-Chem v8-02-01 26 May 2009
GEOS-Chem v8-02-03 Oct 2009
  • Modified code to accept GEOS-5 ozone columns for photolysis (C. Carouge)
GEOS-Chem v8-03-01 04 May 2010
GEOS-Chem v9-01-03 14 Sep 2012
GEOS-Chem v9-02 03 Mar 2014
GEOS-Chem v10-01 TBD 2014

--Bob Y. 13:53, 21 May 2014 (EDT)

Input files for FAST-J

The following input files are required for the FAST-J photolysis mechanism:

File Introduced Retired Description
ratj.d v1-04 v10-01
  • This file is where you specify each of the FAST-J photolysis species.
  • Each species is mapped to a corresponding entry of the GEOS-Chem chemical mechanism.
jv_atms.dat v1-04 v9-01-03
  • This file specifies the reference O3 and T climatologies for FAST-J.
  • NOTE: Where such data exists, GEOS-Chem will overwrite the reference O3 climatology with either:
    • TOMS/SBUV total ozone column (TO3) data, or
    • TO3 data from the GEOS-5 or GEOS-FP met field archives. v9-01-03 v10-01
  • This netCDF file contains the same data as the jv_atms.dat file.
  • This file was ported to netCDF format for compatibility with the Grid-Independent GEOS-Chem development.
  • This file is available in the GEOS-Chem data directory:
jv_spec.dat v1-04 v9-01-03
  • This file is where the various quantum yields and aerosol cross-sections are specified.
jv_spec_aod.dat v9-01-03 still used
  • The jv_spec_aod.dat file contains the optical properties for aerosols at a single wavelength to be used in the online calculation of the aerosol optical depth diagnostics. The default properties are provided at 550 nm. These properties have been calculated using the same size and optical properties as the jv_spec.dat file used for the FAST–J photolysis calculations.
  • The user can exchange this set of properties with those at another wavelength. We recommend that the wavelength used be included in the first line of the header for traceability (this line is output to the GEOS–Chem log file during run time).

--Bob Y. 16:45, 19 May 2014 (EDT)

Overhead ozone columns for use with FAST-J

The FAST-J photolysis mechanism requires total overhead ozone columns (aka total O3, or TO3) in Dobson units. FAST-J scales its own climatological vertical ozone profiles (contained in input file so that they match the observed column ozone (TO3) from one of two sources:

  1. The monthly-mean TO3 data archive from TOMS/SBUV satellite observations (distributed by NASA)
  2. The daily TO3 fields contained in the GEOS-5 or GEOS-FP meteorological data archives

Routine COMPUTE_OVERHEAD_O3 in GeosCore/toms_mod.F computes the total overhead ozone (TO3) that gets passed to FAST-J. This routine is called from routine GET_OVERHEAD_O3 in the driver routine main.F. The current algorithm is as follows:

Met Fields driving GEOS-Chem Source of total overhead ozone columns (aka TO3)
  • GEOS-Chem will always read the TO3 data from the GEOS-FP meteorology archive.
  • If monthly-mean TOMS/SBUV TO3 data exists for the given year, GEOS-Chem will use that.
  • Otherwise, GEOS-Chem will read the TO3 data from the GEOS-5 meteorology archive.
All other met data
  • GEOS-Chem will always use the monthly-mean TOMS TO3 data.
    • If your simulation year precedes the start of the TOMS/SBUV TO3 data archive, GEOS-Chem will use the first available year of data.
    • If your simulation year follows the end of the TOMS/SBUV TO3 data archive, GEOS-Chem will use the last available year of data.

Once the TO3 has been obtained, it is passed to routine SET_PROF (in file GeosCore/set_prof.F). SET_PROF adjusts the ozone profiles for each (lon,lat) location, so that the column sum of the ozone profile matches that of the TO3 data where the FAST-J internal ozone profiles are scaled so that the column ozone of the profile matches the column ozone from the TO3 data returned by COMPUTE_OVERHEAD_O3 (i.e. from either TOMS/SBUV or from the GEOS met field products).

The following sections describe updates made to the TOMS/SBUV TO3 data in GEOS-Chem.

--Bob Y. 14:12, 21 May 2014 (EDT)

Update TOMS TO3 data through 2010

This update was tested in the 1-month benchmark simulation v9-02m and approved on 30 Jul 2013. This update is included in Adjoint v35d.

Jenny Fisher has updated to TOMS overhead O3 columns to account for years through December 2010. The data files are available at:

You can download these directories with anonymous FTP or the Wget utility. For instructions, please see Chapter 2.4, Downloading the GEOS-Chem shared data directories in the GEOS-Chem Online User's Guide.

Modifications to subroutine READ_TOMS in toms_mod.F include changing the directory name and updating the final year from 2008 to 2010.

Prevent 0.5 x 0.667 nested grid simulations from crashing when reading TOMS data

Update 05 Mar 2014: Jintai Lin provided a permanent solution for this issue, which will be applied in GEOS-Chem v10-01. For more information, see this wiki post.

This issue was resolved in the GEOS-Chem v9-02 public release (01 Mar 2014).

Luke Schiferl wrote:

I am attempting to run the standard nested NA 0.5x0.667 grid for v9-02. However, I'm missing the updated TOMS directory which is called, TOMS_201203, and the run crashes. Updated files are available on the Harvard ftp for 2x2.5 and 1x1, but not 0.5x0.667_NA.

As a temporary solution to prevent the nested grid simulation from crashing, we have added the fixes below to GeosCore/toms_mod.F. We will use the older TOMS data in TOMS_200906 for the 0.5x0.667 nested grid simulations for now, until the data in TOMS_201203 can be regridded.

      ! Define filename (with replaceable tokens)
#if   !defined( GCAP )

#if defined( GRID4x5 ) || defined( GRID2x25 ) || defined( GRID025x03125 )
      FILENAME = 'TOMS_201203/TOMS_O3col_YYYY.' // GET_NAME_EXT_2D() //
     &           '.'                            // GET_RES_EXT()
      FILENAME = 'TOMS_200906/TOMS_O3col_YYYY.' // GET_NAME_EXT_2D() //
     &           '.'                            // GET_RES_EXT()

      FILENAME = 'TOMS_200701/TOMS_O3col_YYYY.' // GET_NAME_EXT_2D() //
     &           '.'                            // GET_RES_EXT()

and at the top of the module:

#if defined( GRID4x5 ) || defined( GRID2x25 ) || defined( GRID025x03125 )

--Melissa Payer 14:01, 20 March 2012 (EDT)

Now use MAP_A2A to regrid 1x1 TOMS O3 to model resolution

This update was validated in the 1-month benchmark simulation v10-01b and approved on 06 Mar 2014.

Jintai Lin wrote:

With the update, the code basically reads the TOMS files on geos.1x1 grid,and then regrid to 4x5, 2x2.5 or 0.5x0.667. This ensures that all three resolutions start from the same TOMS files, and also that the 0.5x0.667 resolution model has the TOMS data. Currently, the directory TOMS_201203/ containing new TOMS data is missing for the nested resolution model.

Code modifications apply to routine READ_TOMS (found in module GeosCore/toms_mod.F):


     REAL*4             :: ARRAY1x1(I1x1,J1x1,1)
     REAL*8             :: INGRID (I1x1,J1x1)

#if   !defined( GCAP )

     ! Define filename (with replaceable tokens)
!     FILENAME = 'TOMS_201203/TOMS_O3col_YYYY.' // GET_NAME_EXT_2D() //
!    &           '.'                            // GET_RES_EXT()
     ! Regrid from the files on geos.1x1 grid -- Lin_20140305
     FILENAME = 'TOMS_201203/TOMS_O3col_YYYY.geos.1x1'

     ! Replace YYYY token with current year

     ! Now prefix the data directory

     ! Echo filename
     WRITE( 6, 110 ) TRIM( FILENAME )
110  FORMAT( '     - READ_TOMS: Reading ', a )

     ! Regrid from 1x1 to model resolution

     ! File with lat/lon edges for regridding
    &             'MAP_A2A_Regrid_201203/'

     ! TOMS O3 columns
     ! Read data
    &                 XTAU,      I1x1,      J1x1,
    &                 1,         ARRAY1x1,  QUIET=.TRUE. )

     ! Regrid to current model resolution
     INGRID = ARRAY1x1(:,:,1)
    &                    INGRID,     TOMS,  IS_MASS=0,
    &                    netCDF=.TRUE.              )

     ! d(TOMS)/dT (1st half of month)

      ! Read data
    &                 XTAU,      I1x1,      J1x1, 
    &                 1,         ARRAY1x1,  QUIET=.TRUE. )

     ! Regrid to current model resolution
     INGRID = ARRAY1x1(:,:,1)
    &                    INGRID,     DTOMS1,  IS_MASS=0,
    &                    netCDF=.TRUE.              )

     ! d(TOMS)/dT (2nd half of month)

      ! Read data: 
    &                 XTAU,      I1x1,      J1x1,
    &                 1,         ARRAY1x1,  QUIET=.TRUE. )

     ! Regrid to current model resolution
     INGRID = ARRAY1x1(:,:,1)
    &                    INGRID,     DTOMS2,  IS_MASS=0,
    &                    netCDF=.TRUE.              )


--Melissa Sulprizio 10:44, 5 March 2014 (EST)

Bug fix for determining when to use TOMS O3 columns

This update was validated in the 1-month benchmark simulation v10-01c and approved on 29 May 2014.

It was discovered after the GEOS-Chem v9-02 public release that Input_Opt%USE_O3_FROM_MET might not be set properly for simulations using GEOS-5 meteorology, so TOMS O3 columns might not be used. Traditionally, we use TOMS data when the simulation year is less than the last year of available TOMS data (currently 2010). In v9-02, the code to determine Input_Opt%USE_O3_FROM_MET was moved from subroutine GET_OVERHEAD_O3_FOR_FASTJ to the initialization stage at the top of main.F. In its new location, the variable YEAR was not defined properly and so Input_Opt%USE_O3_FROM_MET could be incorrect. To fix this issue, we have moved the code for determining Input_Opt%USE_O3_FROM_MET to just after the call to subroutine READ_MET_FIELDS.

        !          ****** R E A D   M E T   F I E L D S ******
        !    For clarity, we have split off the code that reads met 
        !    fields into the internal subroutine READ_MET_FIELDS.
        !    Lightning NOx emissions are also computed at the same
        !    time when A3 or A6 met fields are read from disk.

#if   defined( GEOS_5 )

        ! When TOMS data is not available, then we will use
        ! the O3 columns directly from the met fields.  
        ! Currently, this is only done for GEOS-5 met.
           Input_Opt%USE_O3_FROM_MET = .TRUE.
           Input_Opt%USE_O3_FROM_MET = .FALSE.

#elif defined( GEOS_FP )

        ! For GEOS-FP met, always use the O3 columns
        ! from the A1 met field files (bmy, 11/14/13)
        Input_Opt%USE_O3_FROM_MET = .TRUE.

        ! When TOMS data is not available, then we will use
        ! the TOMS data from the last valid year.  This is
        ! done for all met field products other than GEOS-5.
        Input_Opt%USE_O3_FROM_MET = .FALSE.


--Melissa Sulprizio 11:53, 11 March 2014 (EDT)

Update TOMS TO3 data through 2007

This update, which was originally implemented in GEOS-Chem v8-01-04, has now been superseded by the update Update TOMS TO3 data through 2010. We shall leave this post here for future reference. (Bob Yantosca, 19 May 2014)

Bob Yantosca has updated the TOMS overhead O3 columns to account for years 2006 and 2007. The data files are available at:

cd pub/geos-chem/data/GEOS_2x2.5/TOMS_200701/
get TOMS_O3col_2006.geos.2x25
get TOMS_O3col_2007.geos.2x25
cd pub/geos-chem/data/GEOS_4x5/TOMS_200701/
get TOMS_O3col_2006.geos.4x5
get TOMS_O3col_2007.geos.4x5

Also you will have to make a modification in the subroutine READ_TOMS in toms_mod.f. Replace the following lines:

     ! Use 2005 data after 2005
     IF ( YEAR > 2005 ) THEN
        WRITE( 6, 105 ) YEAR
        YEAR = 2005

with these lines:

     ! Use 2007 data after 2007
     IF ( YEAR > 2007 ) THEN
        WRITE( 6, 105 ) YEAR
        YEAR = 2007

This will make sure the code uses the files for 2006 and 2007.

Here is an excerpt from the README that describes the TOMS data set versions that we are currently using:

  Data source and version:

  1985 - 2005 are taken from:

    TOMS/SBUV MERGED TOTAL OZONE DATA, Version 8, Revision 3.
    Resolution:  5 x 10 deg.

    Contact person for the merged data product:
    Stacey Hollandsworth Frith (

  2006 and 2007 are taken from:

     Version 8 Merged Ozone Data Sets
     Revision 04
     LAST MODIFIED: 20 OCT 2008 

--Bob Y. 14:15, 24 March 2009 (EDT)

Rate constant updates

The sections describe updates to the FAST-J rate constants.

O1D reaction updated FAST-JX v6.4

In this wiki post we describe how the O1D reaction was updated to JPL 10-6. When the FAST-J cross sections and quantum yields were added to the jv_spec.dat file, the entry for O1D was changed to this:

O3_1d  180 9.000E-01 8.941E-01 4.501E-01 9.189E-02 7.915E-02 6.500E-02       0.0
O3_1d  260 9.000E-01 8.948E-01 4.992E-01 1.463E-01 8.728E-02 7.017E-02       0.0
O3_1d  300 9.000E-01 8.965E-01 5.636E-01 2.349E-01 1.002E-01 7.435E-02       0.0

and the jv_spec.dat file now has this header:

jv_spec.dat:  FAST-J, FJX (jmao 4/09), ...

--Bob Y. 10:02, 20 May 2014 (EDT)

O1D reaction updated to JPL 2006

NOTE: This update, which was originally implemented in GEOS-Chem v8-01-04, is no longer current. It was superseded when FAST-J was updated to FAST-JX cross sections and quantum yields in GEOS-Chem v8-02-01. We shall leave this post here for reference. (Bob Yantosca, 19 May 2014)

The rate constants in the "FAST-J" jv_spec.dat file have been updated by Lin Zhang.

These were the old values:

O3_1d  180 9.500E-01 9.330E-01 4.270E-01 6.930E-02 6.060E-02       0.0       0.0
O3_1d  260 9.500E-01 9.420E-01 4.890E-01 1.360E-01 7.110E-02       0.0       0.0
O3_1d  300 9.500E-01 9.550E-01 5.870E-01 2.370E-01 8.570E-02       0.0       0.0

which are now replaced by the new values from JPL 2006:

O3_1d  180 9.000E-01 9.000E-01 3.824E-01 8.092E-02 7.650E-02       0.0       0.0
O3_1d  260 9.000E-01 9.000E-01 4.531E-01 1.438E-01 7.654E-02       0.0       0.0
O3_1d  300 9.000E-01 9.000E-01 5.273E-01 2.395E-01 7.659E-02       0.0       0.0

Also the new file has the following header line (the O1D update is noted there):

jv_spec.dat:  FAST-J, std JPL 00 (mje 4/02) -- aer/dust (rvm, 3/02) -- O1D (lzh 5/06)

For more information, please contact Lin Zhang (

--Bob Y. 14:49, 14 January 2009 (EST)

Cloud overlap options in FAST-J

GEOS-Chem now has 3 cloud overlap options for the FAST-J photolysis mechanism. To switch between options, you need to modify the following PARAMETER setting in file GeosCore/fast_j.F:

      ! NOTE: Switch from linear approximation (OVERLAP=1) to approximate
      ! random overlap (OVERLAP=2) because we have re-processed the GEOS-5
      ! met data such that OPTDEPTH, TAUCLI, and TAUCLW are now the in-cloud
      ! optical depths rather than the grid-box optical depths. 
      ! (hyl, phs, bmy, 10/7/08)

Linear cloud overlap assumption

The linear cloud overlap option (OVERLAP=1) is the default in GEOS-Chem versions v8-01-01 and prior. The option is:

    Grid Box Optical depth = In-cloud optical depth * Cloud fraction.  

Approximate random overlap assumption

The approximate random overlap option (OVERLAP=2) was introduced into the standard code in GEOS-Chem v8-01-02. It is now the default setting versions GEOS-Chem v8-02-01 and higher versions.

    Grid Box Optical Depth = In-Cloud Optical Depth * ( Cloud Fraction )^1.5 

Maximum random overlap assumption

This maximum random overlap option is much more computationally intensive than the other two cloud overlap options. We consider this to be a research option instead of an option for standard GEOS-Chem production runs. If you wish to use the maximum overlap random assumption, change the PARAMETER setting at the top of the fast_j.f file to OVERLAP = 3.

The Maximum-Random Overlap (MRAN) scheme assumes that clouds in adjacent layers are maximally overlapped to form a cloud block and that blocks of clouds separated by clear layers are randomly overlapped. A vertical profile of fractional cloudiness is converted into a series of column configurations with corresponding fractions see Liu et al., JGR 2006; hyl,3/3/04).

For more details about cloud overlap assumptions and their effect on photolysis frequencies and key oxidants in the troposphere, refer to the following articles:

  1. Liu, H., et al., Radiative effect of clouds on tropospheric chemistry in a global three-dimensional chemical transport model, J. Geophys. Res., 111, D20303, doi:10.1029/2005JD006403, 2006.
  2. Tie, X., et al., Effect of clouds on photolysis and oxidants in the troposphere, J. Geophys. Res., 108(D20), 4642, doi:10.1029/2003JD003659, 2003.
  3. Feng, Y., et al., Effects of cloud overlap in photochemical models, J. Geophys. Res., 109, D04310, doi:10.1029/2003JD004040, 2004.
  4. Stubenrauch, C.J., et al., Implementation of subgrid cloud vertical structure inside a GCM and its effect on the radiation budget, J. Clim., 10, 273-287, 1997.

--Bob Y. 10:50, 22 May 2014 (EDT)


Hongyu Liu wrote:

I have a comment about how the effect of cloud overlap in the vertical may be included in GEOS-Chem. The standard GEOS-Chem assumes linear scaling of cloud optical depth with cloud fraction in a grid box, i.e., the grid average cloud optical depth TAU' = TAU * f, where TAU is the COD in the cloudy portion of the grid and f is cloud fraction in the layer. This linear assumption (LIN) not only introduces a significant bias because of the nonlinear relationship between J-values and COD, but also is not consistent with the cloud-radiation interactions taking place in the original GEOS-DAS. Current GCMs or DAS usually use random overlap (RAN) or maximum-random overlap (MRAN) in their cloud-radiation packages.
Ideally, GEOS-Chem should use the same cloud overlap assumption as the one used in GEOS-DAS where TOA radiative fluxes have been validated against e.g. satellite observations. But the ("exact") random overlap and MRAN approaches are computationally expensive. Fortunately, the so-called "approximate" random overlap scheme [TAU' = TAU * f^(3/2) which is computationally cheap] has been demonstrated to be a good approximation to both the "exact" random overlap and MRAN calculations. For details, see my GEOS-Chem cloud paper (section 2.3 & Figures 8d,9d:
So, if we don't want to use any cloud overlap assumptions because of computational cost, the "approximate" random overlap seems a good option - it makes more sense physically and is more consistent with the mother GCM or DAS. Actually it has been used in the MOZART model for years [see Brasseur et al., 1998].
Hongyu Liu

For more information, please contact Hongyu Liu (

--Bob Y. 12:44, 23 May 2008 (EDT)

Aerosol optical properties

The following sections contain information about updates to the FAST-J aerosol optical properties.

Updated aerosol optical properties

In GEOS-Chem v8-03-01, we updated several aerosol optical properties for the FAST-J photolysis. Please visit our Aerosol optical properties wiki page for more information about:

  1. Description of aerosol optical properties in GEOS-Chem
  2. Aerosol optical properties update for v8-02-05
  3. Aerosol optical properties at high spectral resolution

--Bob Y. 10:04, 20 May 2014 (EDT)

Scaling of AOD diagnostic output to other wavelengths

Colette Heald and Randall Martin have added a new capability to the GEOS-Chem v8-03-01 diagnostics that will facilitate comparing GEOS-Chem data to satellite observations. This was released as a patch shortly after the release of v8-03-01.

The aerosol optical depth (AOD) output computed by the following diagnostics:

  1. ND21 (output to the ctm.bpch file)
  2. ND48 (timeseries station data)
  3. ND49 (instantaneous timeseries output)
  4. ND50 (24-hr timeseries output)
  5. ND51 (satellite timeseries)
  6. ND51b (satellite timeseries)

can now be scaled from 400nm (i.e. the FAST-J wavelength) to any arbitrary wavelength. A new file, jv_spec_aod.dat, has now been added to all of the GEOS-Chem v8-03-01 run directories. This file can be edited to contain the optical parameters for the aerosols at the target wavelength. Currently the default jv_spec_aod.dat is set up to scale AOD output from 400nm to 550nm.

For more information, please see the Section 5.4.4 of the GEOS-Chem User's Guide. This contains information about how to edit jv_spec_aod.dat for other wavelengths.

It is important to note that this capability does not change the scientific results of GEOS-Chem, but is just a new option for the diagnostic output.

NOTE: This capability still works with the FAST-JX v7.0 photolysis mechanism that was introduced into GEOS-Chem v10-01.

--Bob Y. 14:30, 21 May 2014 (EDT)

Known issues

Too many levels in photolysis code

The scattering module (OPMIE.f) for Fast-J requires many additional vertical levels. It happens that the limit (NL set in jv_mie.h) can be reached in some situations, causing the program to stop with a "Too many levels in photolysis code.." error message. Sometimes you can increase NL to solve the problem.

Now a new version of OPMIE.F is available, which still warns you if NL is reached, but works with that limit.

This can also be an indication that there may be a problem in your visual optical depths, dust emissions, or aerosol emissions. Dust and aerosol optical depths are computed from the concentration array STT. If for some reason you end up emitting too much aerosol or dust (i.e. a unit conversion error), then this will result in an abnormally high dust or aerosol optical depth. A very high optical depth will cause FAST-J to want to keep adding points to the Gaussian quadrature in OPMIE.F. You can get into a situation where the number of points that FAST-J wants to add is greater than the array parameter NL (it may want to add thousands of points!).

Therefore, if you encounter this type of error, it is a good idea to doublecheck your aerosol & dust emissions to make sure that the monthly and annual totals are reasonable.


  1. In GEOS-Chem v8-03-01 we have updated the NL parameter from 750 to 1500, which should prevent this error from happening in most circumstances.
  2. In GEOS-Chem v9-01-03, the NL parameter is now 2000 (which makes N__ = 4000).

--Bob Y. 14:36, 17 December 2012 (EST)

v9-02 post-release patch to fix bug in acetone photolysis pressure dependency

We have prepared a post-release patch for GEOS-Chem v9-02 in order to correct an issue in the acetone pressure dependency for FAST-J photolysis. This error was not discovered at the time of the v9-02 public release on 03 Mar 2014. For instructions about how to download the corrected version of GEOS-Chem, please jump to the next section.

Description of the issue

Original Bug discovered by Seb:

In JRATE.F, the cross section is multiplied by FFF(K,L) rather than FFF(K,I) to get the acetone J-rate. Since in JRATET.F L is the pressure dependency type switch and I is the altitude index (the reverse of the usual case), this results in a constant flux (probably near-surface, given that L is expected to be a low integer) being used at all altitudes rather than the local flux. This discrepancy may explain why v10-01b and v10-01c_trop, which both use some parameterization of the Blitz acetone photolysis, show reasonable agreement at the surface but not at 500 hPa.

Jingqiu Mao wrote:

The public release of GEOS-Chem v9-02 includes two channels of acetone (aka ACET) photolysis:
   AcetA: CH3COCH3 = CH3CO3 + CH3O2
   AcetB: CH3COCH3 = CH3O2 + CH3O2 + CO
   AcetA is the dominant channel under tropospheric conditions with strong pressure dependence.
Listed below are the acetone cross sections and quantum yields in the jv_spec.dat file that ships with GEOS-Chem v9-02. (NOTE: These were taken from were taken from the FAST-JX v6.4 input data. This update was originally made in GEOS-Chem v8-02-01, released on 26 May 2009.)
ACET cross section:
   w-eff(nm)      294.      303.      310.      316.      333.      380.      574.
   AcetA  220 3.100E-20 1.944E-20 1.088E-20 5.532E-21 4.637E-22 3.425E-25 0.000E+00
   AcetA  300 3.439E-20 2.255E-20 1.356E-20 7.273E-21 8.481E-22 6.682E-25 0.000E+00
   AcetB  240 5.156E-03 1.931E-03 8.022E-04 4.144E-04 4.156E-05 0.000E+00 0.000E+00
   AcetB  300 8.564E-02 5.100E-02 3.298E-02 2.214E-02 3.533E-03 0.000E+00 0.000E+00
and ACET quantum yield:
   Q1A-Ac 240 1.000E+00 1.207E+00 4.133E+00 2.498E+01 9.452E+01 1.000E+02 1.000E+02
   Q1A-Ac 300 1.006E+00 1.223E+00 2.411E+00 6.656E+00 1.969E+01 2.100E+01 2.100E+01
   Q1B-Ac 240 1.028E+00 1.066E+01 5.202E+01 2.632E+02 2.760E+03 3.210E+03 3.210E+03
   Q1B-Ac 300 8.792E-01 4.897E+00 1.617E+01 5.268E+01 3.023E+02 3.420E+02 3.420E+02
And the pressure dependence as implemented in file GeosCore/JRATET.F (also implemented from FAST-JX v6.4) is described here:
             VALJ(NJVAL-1) = VALJ(NJVAL-1)
        &         + FFF(K,L)*QQQA*(1.d0-QQ2)/(QQ1A + QQ1B*DD)
where DD = 7.24e18 * Pressure / Temperature in the code.
The problem here is that the pressure dependence of J-acetone seems wrong (see the comparison below). This is inconsistent with JPL 10-6, which suggests a very strong pressure dependence of J when wavelengths> 300 nm.
  • This is also confirmed by Michael Prather, who mentioned that the implementation of J-acetone in FastJX v6.4 was different from JPL 10-6 recommendation. But the most recent one (v7.1) is consistent with JPL 10-6.
  • Katie Travis used SEAC4RS data to examine the J-acetone in GEOS-Chem v9-02, and indeed J-acetone was way off in upper trop, see this validation plot.
  • Sebastian D. Eastham showed that J-acetone is significantly higher in Fast-JX v7.0. Comparison Fast-JX v6.4 vs. Fast-JX v7.0.
Recommendation: use the pressure dependence calculation as implemented in Fast-JX v7.0.

Sebastian Eastham replied:

I wanted to confirm that the new model follows the Blitz et al recommendations, so I extracted the zonal mean acetone photolysis rates at 50N from the benchmark run for direct comparison to their figure 5 (see reference). I divided by 2*pi to approximate the diurnal average (assuming that noontime rates were captured) and just assumed that the SZA at 21 Jun is approximately equal to the mean July SZA. Please see this figure. Looking exclusively at data within the tropopause (indicated by the black dashed line), since higher results will be skewed by averaging over cells with zero J-values, the agreement seems reasonable. Our rates are higher than theirs at low altitude, but we’re far from the pre-Blitz ‘recommendation’ and it looks like we get the same relatively flat but gradually increasing profile in the mid-troposphere.
The rest all seems to check out – MAP and MP increases are expected given the increase in MO2 and MCO3 resulting from the increased acetone photolysis, and HAC loss is because it uses the Acet-A cross-section.
The Blitz et al paper is located online at this link.

Katie Travis replied:

The acetone photolysis is improved with v7.0b. The attached plot compares the old fastj and the new update for acetone. After UCAR reduces their surface values (~5%?) and upper tropospheric values (~15%?) we will be doing even better. Why do the values improve between 10-12km for the rest of the species? I added jHNO3 as another example.

Jingqiu Mao replied:

[T]he change for other J-values between 10-12 km is [probably] due to some change in ozone. That is the only way I can think of for causing this change.

Katie Travis replied:

That makes sense, ozone goes down a little between 10-12km. Here is a new plot showing the vertical profile of ozone (lower right panel).

--Bob Y. 10:39, 22 May 2014 (EDT)

Description of the patch

We have created a patch for GEOS-Chem v9-02 to correct the problem with acetone photolysis described above. We recommend that all users of the GEOS-Chem v9-02 full-chemistry simulations (fullchem, SOA, SOA-SVPOA, TOMAS) download a fresh copy of GEOS-Chem v9-02 with the patch applied. This fix modifies the source code files GeosCore/JRATET.F and GeosCore/fjx_acet_mod.F.

We have added this fix for acetone photolysis to the GEOS-Chem source code repository in a new branch named v9-02-JAcetone-Pdep-Fix. We intentionally decided to apply the patch here and not into the master branch. The master branch represents the state of GEOS-Chem as of the GEOS-Chem v9-02 public release on 03 Mar 2014. If we ever have to revert to the state of code as of the GEOS-Chem v9-02 public release, we can do so by simply switching to the master branch.

To download a fresh version of GEOS-Chem v9-02 containing the fix for acetone photolysis follow these instructions:

(1) Type the following command at the Unix prompt:
    git clone --branch v9-02-JAcetone-Pdep-Fix git://  Code.v9-02
This will download a fresh copy of GEOS-Chem v9-02 containing the fix into a directory named Code.v9-02. (If you wish you can use a different directory name than Code.v9-02 in the above command.) Adding the option --branch v9-02-JAcetone-Pdep-Fix will automatically check out the branch containing the patch for you.
(2) View the Git commit history by typing these commands:
    cd Code.v9-02

You should see the following Git version history:

JAcet Patch.png

The acetone photolysis fix is contained in the commit labeled Update acetone photolysis to Fast-JX v7.0b. This is also tagged with the yellow flag v9-02-JAcetone-Patch. Here is the entry in the Git log written by Sebastian Eastham:

Update acetone photolysis to Fast-JX v7.0b
    Sebastian Eastham wrote:
      The replacement code I’ve written is very simple and essentially just a
      hard-coded version of what is in Fast-JX v7.0b. Only the final 6 bins of
      Fast-JX data map directly to Fast-J, but for the moment I’ll use bin 12
      from Fast-JX as a proxy for bin 1 of Fast-J. Specifically bin 12 from
      Fast-JX is 291-298.25 nm, whereas bin 1 from Fast-J is 289-298.25 nm, so
      I don’t imagine the difference will be huge. The bin in Fast-JX which
      incorporates data for 289-291 nm also incorporates data from shorter
      wavelengths, so I’m reluctant to merge them.J

In the Git version history you will also see a commit labeled Clean up use of State_Met in several modules. This reflects the state of GEOS-Chem development on 03 Mar 2014, when we issued the public release of GEOS-Chem v9-02. This commit shall be kept in the master branch until the public release of GEOS-Chem v10-01 (TBD late 2014).

NOTE: For those of you using a version of GEOS-Chem earlier than v9-02: You may find it easier to download the modified files instead of cloning from Git. The Git clone may be problematic if your base version is significantly older than v9-02. Use the following commands to download these two files and copy them to your GeosCore directory.

wget ""
wget ""

--Bob Y. 15:21, 22 May 2014 (EDT)


  1. Blitz, M. A., D. E. Heard, M. J. Pilling, S. R. Arnold, M. P. Chipperfield, Pressure and temperature-dependent quantum yields for the photodissociation of acetone between 279 and 327.5 nm, Geophys. Res. Lett., 31, 9, L09104, 2004.
  2. Feng, Y., et al., Effects of cloud overlap in photochemical models, J. Geophys. Res., 109, D04310, doi:10.1029/2003JD004040, 2004.
  3. Liang, X.-Z., and W.-C. Wang, Cloud overlap effects on general circulation model climate simulations, J. Geophys. Res., 102 (D10), 11,039–11,047, 1997.
  4. Liu, H., et al., Radiative effect of clouds on tropospheric chemistry in a global three-dimensional chemical transport model, J. Geophys. Res., 111, D20303, doi:10.1029/2005JD006403, 2006.
  5. Tie, X., et al., Effect of clouds on photolysis and oxidants in the troposphere, J. Geophys. Res., 108(D20), 4642, doi:10.1029/2003JD003659, 2003.
  6. Stubenrauch, C.J., et al., Implementation of subgrid cloud vertical structure inside a GCM and its effect on the radiation budget, J. Clim., 10, 273-287, 1997.
  7. Wild, O., X. Zhu, and M. J. Prather, Fast-J: Accurate simulation of in- and below-cloud photolysis in tropospheric chemical models, J. Atmos. Chem., 37, 245–282, 2000.

--Bob Y. 10:17, 20 May 2014 (EDT)