Aerosol-only simulation: Difference between revisions

From Geos-chem
Jump to navigation Jump to search
Line 129: Line 129:
<span style="color:green">'''''This fix was included in [[GEOS-Chem v11-01 benchmark history#v11-01j|v11-01j]] and approved on 03 Dec 2016'''''</span>
<span style="color:green">'''''This fix was included in [[GEOS-Chem v11-01 benchmark history#v11-01j|v11-01j]] and approved on 03 Dec 2016'''''</span>


In routine <code>SEASALT_CHEM</code> (in <code>GeosCore/sulfate_mod.F</code>), the <code>MW_HNO3</code> variable was undefined for aerosol-only simulations, which do not use HNO3 as a defined species.  This issue was detected by a unit test using the [[GNU Fortran compiler]].  
In routine <tt>SEASALT_CHEM</tt> (in <tt>GeosCore/sulfate_mod.F</tt>), the <tt>MW_HNO3</tt> variable was undefined for aerosol-only simulations, which do not use HNO3 as a defined species.  This issue was detected by a unit test using the [[GNU Fortran compiler]].  


To fix this issue, we have added the following block of code, which defines <code>MW_HNO3</code> whether or not HNO3 is a defined species:
To fix this issue, we have added the following block of code, which defines <code>MW_HNO3</code> whether or not HNO3 is a defined species:

Revision as of 15:17, 16 May 2018

On this page we describe the aerosol-only (a.k.a. offline aerosol) simulation.

Description

The aerosol simulation is an offline simulation for aerosol tracers only. It uses archived monthly mean OH, NO3, O3 and total nitrate concentrations archived from a previous full-chemistry simulation (more on that below), as well as production and loss rates for H2O2. This simulation does not provide "tagged" capabilities, but reduces the suite of tracers from full chemistry.

Assumptions

  1. OH concentrations are taken from a previously run full chemistry simulation. The default is from a much earlier version of the model, when OH thought to be more realistic. The standard code uses OH from version 5-07-08, with GEOS3 meteorology.
  2. O3, NO3 and total nitrate (HNO3+NIT) concentrations, as well as production rates and photolysis rates for H2O2 are taken from a previously run full chemistry simulation. The current default fields were produced from a GEOS-4, v7-02-03 simulation. These files are generally located in the sulfate_sim_200508/offline/ directory in your GEOS-Chem data directories.

Practicalities

As with all other Offline chemistry simulations, the GEOS-Chem user community shall be responsible for the scientific content and validation of the aerosol-only simulation.

Tracer list

GEOS-Chem v9-01-03 and earlier versions

In GEOS-Chem v9-01-03 and earlier versions, there are 31 tracers in a complete aerosol-only simulation (see input.geos below).

The offline aerosol is simulation type 10. For a full set of aerosol tracers (based on the 59-tracer full-chemistry SOA simulation), the input.geos should look like this:

Type of simulation      : 10
Number of Tracers       : 31
Tracer Entries -------> : TR#  Name   g/mole Tracer Members; () = emitted 
Tracer #1               : 1    DMS    62.00
Tracer #2               : 2    SO2    64.00
Tracer #3               : 3    SO4    96.00
Tracer #4               : 4    MSA    96.00
Tracer #5               : 5    NH3    17.00
Tracer #6               : 6    NH4    18.00
Tracer #7               : 7    NIT    62.00
Tracer #8               : 8    H2O2   34.00
Tracer #9               : 9    BCPI   12.00
Tracer #10              : 10   OCPI   12.00
Tracer #11              : 11   BCPO   12.00
Tracer #12              : 12   OCPO   12.00
Tracer #13              : 13   ALPH   136.23
Tracer #14              : 14   LIMO   136.23
Tracer #15              : 15   ALCO   142.00
Tracer #16              : 16   SOG1   150.00
Tracer #17              : 17   SOG2   160.00
Tracer #18              : 18   SOG3   220.00
Tracer #19              : 19   SOG4   130.00
Tracer #20              : 20   SOG5   150.00
Tracer #21              : 21   SOA1   150.00
Tracer #22              : 22   SOA2   160.00
Tracer #23              : 23   SOA3   220.00
Tracer #24              : 24   SOA4   130.00
Tracer #25              : 25   SOA5   150.00
Tracer #26              : 26   DST1   29.00
Tracer #27              : 27   DST2   29.00
Tracer #28              : 28   DST3   29.00
Tracer #29              : 29   DST4   29.00
Tracer #30              : 30   SALA   36.00
Tracer #31              : 31   SALC   36.00

This list can be reduced by turning off any aerosol species (eg. SOA, dust, SS, etc). You may also run without the secondary organic aerosols (ALPH, LIMO, ALCO, SOG{1,2,3,4,5}, SOA{1,2,3,4,5}) if you wish (but we recommend that you use them).

GEOS-Chem v9-02 and later versions

The SOA simulation was updated in GEOS-Chem v9-02o to include a better tracer lumping scheme, as shown in Figure 1 of Pye et al. 2010.

The offline aerosol is simulation type 10. For a full set of aerosol tracers (based on the 100-tracer full-chemistry SOA simulation), the input.geos should look like this:

Type of simulation      : 10
Number of Tracers       : 47
Tracer Entries -------> : TR#  Name   g/mole   Tracer Members; () = emitted
Tracer #1               :  1   DMS     62.00
Tracer #2               :  2   SO2     64.00
Tracer #3               :  3   SO4     96.00
Tracer #4               :  4   SO4s    96.00
Tracer #5               :  5   MSA     96.00
Tracer #6               :  6   NH3     17.00
Tracer #7               :  7   NH4     18.00
Tracer #8               :  8   NIT     62.00
Tracer #9               :  9   NITs    62.00
Tracer #10              : 10   H2O2    34.00
Tracer #11              : 11   BCPI    12.00
Tracer #12              : 12   OCPI    12.00
Tracer #13              : 13   BCPO    12.00
Tracer #14              : 14   OCPO    12.00
Tracer #15              : 15   DST1    29.00
Tracer #16              : 16   DST2    29.00
Tracer #17              : 17   DST3    29.00
Tracer #18              : 18   DST4    29.00
Tracer #19              : 19   SALA    36.00
Tracer #20              : 20   SALC    36.00
Tracer #21              : 21   MTPA   136.23
Tracer #22              : 22   LIMO   136.23
Tracer #23              : 23   MTPO   136.23
Tracer #24              : 24   TSOG1  150.00
Tracer #25              : 25   TSOG2  150.00
Tracer #26              : 26   TSOG3  150.00
Tracer #27              : 27   TSOG0  150.00
Tracer #28              : 28   TSOA1  150.00
Tracer #29              : 29   TSOA2  150.00
Tracer #30              : 30   TSOA3  150.00
Tracer #31              : 31   TSOA0  150.00
Tracer #32              : 32   ISOG1  150.00
Tracer #33              : 33   ISOG2  150.00
Tracer #34              : 34   ISOG3  150.00
Tracer #34              : 35   ISOA1  150.00
Tracer #36              : 36   ISOA2  150.00
Tracer #37              : 37   ISOA3  150.00
Tracer #38              : 38   BENZ    12.00   (6C)
Tracer #39              : 39   TOLU    12.00   (7C)
Tracer #40              : 40   XYLE    12.00   (8C)
Tracer #41              : 41   ASOG1  150.00
Tracer #42              : 42   ASOG2  150.00
Tracer #43              : 43   ASOG3  150.00
Tracer #44              : 44   ASOAN  150.00
Tracer #45              : 45   ASOA1  150.00
Tracer #46              : 46   ASOA2  150.00
Tracer #47              : 47   ASOA3  150.00

This list can be reduced by turning off any aerosol species (eg. SOA, dust, SS, etc). You may also run without the secondary organic aerosols (MTPA, LIMO, MTPO, TSOG0–3, TSOA0–3, ISOG1–3, ISOA1–3, ASOG1–3, ASOA1–3, ASOAN) if you wish (but we recommend that you use them).

--Melissa Sulprizio 12:51, 5 November 2013 (EST)

More Information

For more information, see the GEOS-Chem manual pages about offline aerosols:

http://acmg.seas.harvard.edu/geos/doc/man/chapter_6.html#6.1.6
http://acmg.seas.harvard.edu/geos/doc/man/appendix_1.html#A1.2

Previous issues that have now been resolved

Fixed undefined molecular weight of HNO3 in routine SEASALT_CHEM

This fix was included in v11-01j and approved on 03 Dec 2016

In routine SEASALT_CHEM (in GeosCore/sulfate_mod.F), the MW_HNO3 variable was undefined for aerosol-only simulations, which do not use HNO3 as a defined species. This issue was detected by a unit test using the GNU Fortran compiler.

To fix this issue, we have added the following block of code, which defines MW_HNO3 whether or not HNO3 is a defined species:

     ! Get the molecular weight of HNO3 from the species database
     ! if it is defined, otherwise set it manually (bmy, 10/11/16)
     IF ( id_HNO3 > 0 ) THEN
        MW_HNO3 = State_Chm%SpcData(id_HNO3)%Info%emMW_g
     ELSE
        MW_HNO3 = 63.0_fp
     ENDIF

NOTE: This is just a quick fix. Ideally, we will want to declare HNO3 as a non-advected species in the GEOS-Chem species database for these simulationns.

--Bob Yantosca (talk) 16:47, 11 October 2016 (UTC)

Error in ISOROPIAII when sulfate aerosols are turned off

This update was tested in the 1-month benchmark simulation v9-02r and approved on 14 Nov 2013.

Chris Butenhoff wrote:

I set ONLINE SULFATE AEROSOLS = F and removed the sulfate aerosols from the tracer list. However I now get the error "IDTSO4 is undefined" from isoropia11_mod.F (line 207).

For full-chemistry simulations, we only call routine DO_ISOROPIAII if sulfate aerosols are used (i.e. LSULF = T). However, no such check exists when running the offline aerosol simulation. This was probably an oversight and we should add the following fix to routine DO_CHEMISTRY (in GeosCore/chemistry_mod.F):

           !*** AEROSOL THERMODYNAMIC EQUILIBRIUM ***
           IF ( LSULF ) THEN
              IF ( LSSALT ) THEN

#if   !defined( NO_ISORROPIA )
                 ! ISOROPIA takes Na+, Cl- into account
                 CALL DO_ISOROPIAII
    &               ( am_I_Root, Input_Opt, State_Met, State_Chm, RC )
#endif

              ELSE

                 ! RPMARES does not take Na+, Cl- into account
                 ! (skip for crystalline & aqueous offline run)
                 IF ( .not. LCRYST ) THEN
                    CALL DO_RPMARES( am_I_Root, Input_Opt, 
    &                                State_Met, State_Chm, RC )
                 ENDIF
              ENDIF
           ENDIF

--Bob Y. 15:29, 14 November 2013 (EST)

Known issues

ND05 diagnostic quantities zeroed unexpectedly

The binary punch format diagnostics will soon be made obsolete in a future GEOS-Chem version.

Helen McIntyre wrote:

I'm running the new and old versions of GEOS-Chem, and both seem to not output all the ND05 diagnostics correctly. There are 10 prod/loss diagnostics in this category, but only the 5th, 6th and 7th work. All the rest come out as zero.
I've had a brief look though the code, and it seems that the ones that work are calculated in one part of the routine (sulfate_mod.f), and the zero ones in another (I don't know if this has anything to do with it).
I've just done a 1 day run, with GEOS-Chem v8-01-01 at 4x5 resolution using GEOS-5 met fields. The old version I'm using is v7-02-04 and I get the same result.
The 'ctm.bpch', 'geos.log' and 'input.geos' files from the v8-01-01 run can be found here: http://homepages.see.leeds.ac.uk/~lechlm/files/

Claire Carouge replied:

There are some problems in the calculations. For the 5th element of AD05 (in Fortran notations and not IDL), the diagnostic come from the value of L1 which is calculated line 1529 (v8-01-04):
   L1     = ( SO20 - SO2_cd + PSO2_DMS(I,J,L) ) * RK1/RK
But on line 1508, we have:
   RK1 = 0.d0
with the previous comment:
  ! For online runs, SMVGEAR deals w/ this computation,
  ! so we can simply set RK1 = 0 (rjp, bmy, 3/23/03)
So L1 is always 0. I have no idea what RK1 is for, you may have to go into the physics/chemistry behind the code and we are not qualified to help you with it.
The other values for AD05 are calculated in the routine CHEM_DMS and this routine is only called in an offline aerosol simulation (l. 545 in sulfate_mod.f).
So my guess is that the ND05 diagnostic was designed for offline simulations and if you want it for online chemistry, you need to implement it.

Obsolete information

The following sections pertain to code that has since been removed from the most recent GEOS-Chem versions. We shall leave this information here for reference.

Run directories

Obsolete.jpg

NOTE: This section is now obsolete. We now use netCDF restart files in v11-01 and higher versions. This makes it much easier to add new species.

We recommend that you create the run directory for your aerosol-only (a.k.a offline aerosol simulation) from one of the GEOS-Chem full-chemistry run directories.

First, use Git to download one of the full-chemistry run directories for the simulation with secondary organic aerosols.

Next, edit the TRACER MENU section of the input.geos file so that only the aerosol tracers are listed.

Next, create a new restart file that contains only the aerosol tracers. The easiest way to do this is with GAMAP. Start GAMAP and Then all you’d have to do is change the number of tracers in “input.geos”. You could also create a new restart file with GAMAP. Start GAMAP with:

 gamap, file=’restart.4x5.geos5.2004010100', 'IJ-AVG-$'

Then pick the tracers you want to save, and type

  S25-56     # this is DMS .. SALC in the 59-tracer SOA fullchem file

and when prompted for an output file name, type

  restart.4x5.geos5.2004010100.aer_only

and press "OK". Make sure to add this restart file name to the SIMULATION MENU section of your input.geos file.

If you are using GEOS-Chem v9-01-03 or earlier versions, you may also need to create an SOA restart file which contains the concentrations of various short-lived secondary organic aerosol quantities. The SOA restart file is no longer needed in GEOS-Chem v9-02, as part of the SOA simulation updates by Havala Pye.

Please also see the following references:

  1. GEOS-Chem User's Guide: Chapter 5: GEOS-Chem run directories
  2. GEOS-Chem User's Guide: Chapter 6.1.6: Checklist for offline aerosol chemistry simulation

--Bob Y. 17:12, 3 March 2011 (EST)

Bug in routine GET_WETDEP_NMAX when using SOA

Obsolete.jpg

The NMAX parameter was removed from GEOS-Chem v11-01, with the implementation of the GEOS-Chem species database.

This issue was resolved in GEOS-Chem v9-02.

The following issue exists in GEOS-Chem v9-01-03 and earlier versions.

Chris Butenhoff wrote:

There appears to be a bug in wetscav_mod.F. In line 6978 the number of carbon + SOA aerosols in the tracer list should be 17 not 15. This is set correctly for the fullchem simulation but not offline simulations.

The corrected code is shown below:

     ELSE IF ( ITS_AN_AEROSOL_SIM() ) THEN

        !-----------------------
        ! Offline simulation
        !-----------------------
        NMAX = 0
        IF ( LSULF  )   NMAX = NMAX + 9        ! add 9 sulfur species
        IF ( LCRYST )   NMAX = NMAX + 5        ! add 5 cryst & aq species
        IF ( LDUST  )   NMAX = NMAX + NDSTBIN  ! Add number of dust bins
        IF ( LSSALT )   NMAX = NMAX + 2        ! plus 2 seasalts

        IF ( LSOA ) THEN
           IF ( LCARB ) NMAX = NMAX + 17       ! carbon + SOA aerosols
        ELSE
           IF ( LCARB ) NMAX = NMAX + 4        ! just carbon aerosols
        ENDIF

--Melissa Sulprizio 11:17, 5 November 2013 (EST)


Bugs in reading EMEP and EPA-NEI data from disk

Obsolete.jpg

In GEOS-Chem v10-01 and higher versions, EMEP and EPA/NEI emissions are handled by the HEMCO emissions component.

The following issues exist in GEOS-Chem v9-01-01 and higher versions. These issues were resolved in GEOS-Chem v9-01-03.

  1. Minor issue in emep_mod.f affecting the offline aerosol simulation
  2. Minor issue in nei2005_anthro_mod.f affecting the offline aerosol simulation

--Bob Y. 11:48, 8 August 2011 (EDT)

Emissions not included when using non-local PBL mixing scheme

Obsolete.jpg

This code was removed from GEOS-Chem v10-01 and newer versions. All emissions are now implemented via the HEMCO emissions component.

This update was tested in the 1-month benchmark simulation v9-02l and approved on 26 Jun 2013.

It was discovered in GEOS-Chem v9-01-03 that the emissions were not being added into tracer concentration when the non-local PBL scheme was turned on in input.geos. To solve this problem, the following code needs to be added to routine VDIFFDR (vdiff_mod.F90) in the same loop where emissions are added for the full-chemistry simulation:

      !----------------------------------------------------------------
      ! Add emissions for offline aerosol simulation
      !----------------------------------------------------------------
      IF ( IS_AEROSOL ) THEN

         ! add surface emis of aerosols 
         ! (after converting kg/box/timestep to kg/m2/s)
         ! Should NOT use ID_EMITTED here, since it is only for gases 
         ! for SMVGEAR. (Lin, 06/10/08)
         do N = 1, N_TRACERS
            eflx(I,J,N) = eflx(I,J,N) + emis_save(I,J,N)       &
                                      / GET_AREA_M2( I, J, 1 ) &
                                      / GET_TS_EMIS() / 60.d0
         enddo

      ENDIF

At the top of the same routine, IS_AEROSOL needs to be defined as:

   LOGICAL :: IS_AEROSOL

   IS_AEROSOL  = ITS_AN_AEROSOL_SIM()

--Melissa Payer 12:01, 19 June 2013 (EDT)