GEOS-Chem v8-03-02

From Geos-chem
Revision as of 15:16, 12 November 2010 by Bmy (Talk | contribs) (Post-release patches)

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

We made a few important fixes to the release of v8-03-02 (but before the release of the next version, v9-01-01. 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.

Fix for isoprene nitrates in globchem.dat

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.

Fix for KPP solver files

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".

Parallelization problem in setemis.f

We found that a particular line of code in setemis.f was causing GEOS-Chem to scale poorly. As a result, when GEOS-Chem was running on 8 CPU's, it would scale as if it were only running on ~ 3 CPU's.

To solve the problem, we moved the offending line of code (which was added to scale NOx emissions) into a previous loop over grid boxes.

This fix was added to the GEOS-Chem Git repository on 12 Nov 2010 as a patch (name: "Parallelization problem in setemis.f", tag "v8-03-02-Patch-setemis").

ND49 file close error

A GEOS-Chem user reported that the ND49 diagnostic timeseries files (e.g. tsYYYYMMDD.bpch) were not being closed properly. We fixed this by modifying the IF statement in the function ITS_TIME_TO_CLOSE_FILE (in diag49_mod.f) so that it would close the files at the correct time in the simulation.

This fix was added to the GEOS-Chem Git repository on 12 Nov 2010 as a patch (name: "Parallelization problem in setemis.f", tag "v8-03-02-Patch-setemis").

--Bob Y. 10:15, 12 November 2010 (EST)

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 GEOS-Chem v9-01-01.

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

Duplicated diagnostics

A problem where the ND14 and ND15 diagnostics seemingly appeared twice in the binary punch file output is not yet resolved in v8-03-02. It will be fixed in the next version, GEOS-Chem v9-01-01.

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