Aerosol-only simulation: Difference between revisions
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 < | 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
- 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.
- 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
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:
- GEOS-Chem User's Guide: Chapter 5: GEOS-Chem run directories
- 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
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
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.
- Minor issue in emep_mod.f affecting the offline aerosol simulation
- 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
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)