GEOS-Chem v8-03-02

From Geos-chem
Revision as of 18:58, 21 September 2010 by Ccarouge (Talk | contribs) (Outstanding issues not yet resolved in v8-03-02)

Jump to: navigation, search


BETA RELEASE -- 07 Sep 2010

Will contain everything in GEOS-Chem v8-03-01, plus:

  1. Terrestrial and deep ocean mercury and updated mercury chemistry (N. Smith-Downey, E. Sunderland, C. Holmes)
  2. Updated CO2 simulation (R. Nassar)
  3. Liquid water content taken from GEOS-5 met fields (J. Fisher)

--Bob Y. 16:36, 7 September 2010 (EDT)

Previous issues now resolved in v8-03-02

Post-release patches

A couple of fixes were made to v8-03-02 after its release:

  1. Fabien Paulot discovered an error in the reaction for isoprene nitrates in globchem.dat for the SOA and standard simulations. This error has now been corrected. The updated files have been added to the Git repository for run directories.
  2. Mike Barkley noted that the KPP solver files in the KPP/standard/ and the KPP/SOA directories had to be rebuilt to incorporate the changes in the globchem.dat file. This was done on 17 Sep 10 and added to the GEOS-Chem Git repository as a patch (name "New KPP scheme for SOA and standard chemistry", tag "v8-03-02-Patch-KPP".

Therefore you should update your GEOS-Chem v8-03-02 source code and run directories by doing a "Git pull" command. Please see our our wiki post about how to download updates from the Git repositories.

Patches from v8-03-01

The following bug fix patches are now standardized in v8-03-02:

--Bob Y. 12:58, 30 June 2010 (EDT)

Fix for EPA/NEI 2005 emissions

Aaron van Donkelaar submitted updated EPA/NEI05 emissions files in order to fix abnormally low VOC emissions. This fix will be standardized in v8-03-02. Please see this wiki page for more information.

--Bob Y. 15:38, 12 July 2010 (EDT)

Minor fixes in gamap_mod.f

Prasad Kasibhatla reported a bug in gamap_mod.f that was caused by the definition of the parameters:

     INTEGER,           PARAMETER   :: MAXDIAG   = 70  
     INTEGER,           PARAMETER   :: MAXTRACER = 120  

The problem is that when the actual number of tracers is increased beyond 120, this results in an array-out-of-bounds error.

The fix is to use the MAX_DIAG and MAX_TRACER parameters from the CMN_DIAG header file to define the MAXDIAG and MAXTRACER parameters in gamap_mod.f, as follows:

     INTEGER,           PARAMETER   :: MAXDIAG   = MAX_DIAG  

and also to define MAX_TRACER (in the CMN_DIAG header file) as follows:

     INTEGER, PARAMETER :: MAX_TRACER = NNPAR+6   ! For non-TOMAS simulations 

The NNPAR+6 is required for compatibility with the ND09 diagnostic. Therefore, now whenever NNPAR is updated, the values of MAXTRACER and MAXDIAG in gamap_mod.f will also be updated.

--Bob Y. 14:35, 3 August 2010 (EDT)

Bug fix for ND42 diagnostic and ISORROPIA II

Eric Sofen reported a minor bug fix for the ND42 diagnostic in isoropiaII_mod.f. The following line of code:

   PH_SAV = -999d0

should have been:

   PH_SAV(I,J,L) = -999d0

This only affects ND42 diagnostic output and not the computation of the ATE diagnostic.

--Bob Y. 14:42, 3 August 2010 (EDT)

Minor fix for AOD calculation

Aaron van Donkelaar wrote:

I've come across a minor bug in the calculation of AOD within aerosol_mod.f. At around line 950, the lines:
        ! Loop over relative humidity bins
        DO R = 1, NRH

           ! Wet radius in "jv_spec.dat"
           RW(R) = RAA(4,IND(N)+R-1)

           ! Wet frac of aerosol
           FWET  = (RW(R)**3 - RW(1)**3) / RW(R)**3

           ! Extinction efficiency Q for each RH bin
           QW(R) = QAA(4,IND(N)+R-1)*FWET + QAA(4,IND(N))*(1.d0-FWET)
should be replaced with:
        ! Loop over relative humidity bins
        DO R = 1, NRH

           ! Wet radius in "jv_spec.dat"
           RW(R) = RAA(4,IND(N)+R-1)

           ! Extinction efficiency Q for each RH bin
           QW(R) = QAA(4,IND(N)+R-1)
As a result, the variable FWET is no longer used and no longer needs to be declared in routine RDAER.
Basically the extinction efficiency for each RH bin is currently being calculated as the water volume-weighted average of each bin's RH and dry value, when the value corresponding to each bin's RH should simply be directly used. The implications should not be large (Colette estimated between 4-8%), but this ought to be corrected.

--Bob Y. 14:48, 3 August 2010 (EDT)

Avoid using unallocated arrays in edgar_mod.f

Joseph Enberg and Bob Yantosca found a minor bug in edgar_mod.f. The following ship emission arrays (which are not allocated if LEDGARSHP = .FALSE.) were being referenced regardless in the routine EDGAR_TOTAL_Tg in edgar_mod.f:

     T_NOxSh = SUM( EDGAR_NOx_SHIP ) * ( 14d0/46d0 ) / 1d9
     T_COSh  = SUM( EDGAR_CO_SHIP  )                 / 1d9
     T_SO2sh = SUM( EDGAR_SO2_SHIP ) * ( 32d0/64d0 ) / 1d9

The quickest fix was to place these arrays in an IF block to make sure they are only referenced if allocated:

        T_NOxSh = SUM( EDGAR_NOx_SHIP ) * ( 14d0/46d0 ) / 1d9
        T_COSh  = SUM( EDGAR_CO_SHIP  )                 / 1d9
        T_SO2sh = SUM( EDGAR_SO2_SHIP ) * ( 32d0/64d0 ) / 1d9
        T_NOxSh = 0d0
        T_COSh  = 0d0
        T_SO2Sh = 0d0

--Bob Y. 16:06, 4 August 2010 (EDT)

Transport fix for GEOS-5 nested grid simulations

Please see this wiki post for more information about a fix that affects the TPCORE advection with GEOS_5 0.5° x 0.666° nested grid simulations.

--Bob Y. 10:57, 17 September 2010 (EDT)

Outstanding issues not yet resolved in v8-03-02

Incorrect units for SNOMAS in dust_mod.f

In GEOS-5, the snow height field SNOMAS was incorrectly reported as "m H2O", but was really "mm H2O". However, in the routine SRC_DUST_DEAD (dust_mod.f) we never made the corresponding change. Therefore the following fix will need to be placed into SRC_DUST_DEAD:

            ! Snow height [m H2O]
#if   defined( GEOS_5 ) || defined( MERRA )
            ! Prior to 9/3/10:
            ! SNOMAS in GEOS-5 was originally reported as m H2O but this
            ! was mis-lableled.  Both GEOS-5 and MERRA SNOMAS field have
            ! units of liquid-equivalent mm H2O.  Therefore, we need to
            ! divide by 1000 to convert mm to m. (bmy, 9/3/10)
            !SNW_HGT_LQD(I) = SNOMAS(I,J)
            SNW_HGT_LQD(I) = SNOMAS(I,J) / 1000d0
            SNW_HGT_LQD(I) = SNOW(I,J) / 1000d0

The MERRA SNOMAS field will also have units of "mm H2O", so it will use the same line of code.

This fix will go into the version immediately following v8-03-02.

--Bob Y. 14:56, 3 September 2010 (EDT)

Duplicated diagnostics

Chris Holmes wrote:

I turned on diagnostics ND14-15 (convection and BL mixing) and ND24-26 (U/V/W transport fluxes), plus the other diagnostics that are on by default. I ran the simulation for 1 day. The ctm.bpch output contains *two* copies of ND14-15 and ND24-26 outputs. The other diagnostics appear normal.

In fact, the diagnostics are not written twice in the ctm.bpch file. The problem is a double definition of the categories of these diagnostics in gamap_mod.f. These diagnostics appear then twice in diaginfo.dat with two different offsets (3000 and 4000). GAMAP will then print these diagnostics twice. The fix is to comment one definition of these diagnostics in gamap_mod.f. Please comment the lines with the 4000 offset (see the SPACING * 4) in gamap_mod.f:

!      N           = N + 1
!      CATEGORY(N) = 'CV-FLX-$'
!      DESCRIPT(N) = 'Upward flux from wet conv'
!      OFFSET(N)   = SPACING * 4
!      N           = N + 1
!      CATEGORY(N) = 'TURBMC-$'
!      DESCRIPT(N) = 'Upward flux from PBL mixing'
!      OFFSET(N)   = SPACING * 4
!      N           = N + 1
!      CATEGORY(N) = 'EW-FLX-$'
!      DESCRIPT(N) = 'E/W transport flux'
!      OFFSET(N)   = SPACING * 4
!      N           = N + 1
!      CATEGORY(N) = 'NS-FLX-$'
!      DESCRIPT(N) = 'N/S transport flux'
!      OFFSET(N)   = SPACING * 4
!      N           = N + 1
!      CATEGORY(N) = 'UP-FLX-$'
!      DESCRIPT(N) = 'Up/down transport flux'
!      OFFSET(N)   = SPACING * 4

This fix will be standardized in the next version ("MERRA" version).

--Ccarouge 14:58, 21 September 2010 (EDT)