Difference between revisions of "GEOS-Chem v8-02-04"

From Geos-chem
Jump to: navigation, search
(Run1)
 
(82 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
  
BETA RELEASE -- Date TBA
+
BETA RELEASE -- 24 Feb 2010
  
Will contain everything in [[GEOS-Chem v8-02-03]], plus:
+
* Previous version: [[GEOS-Chem v8-02-03]]
 +
* Next version: [[GEOS-Chem v8-03-01]]
  
* LINOZ stratospheric ozone chemistry ''(Dylan Jones group @ U. Toronto)''
+
=== What's new in this version ===
* Updated inventory of volcanic SO2 emissions from AeroCom ''(J. Fisher)''
+
 
* [[Chemistry_Issues#near-IR_photolysis_of_HNO4|Update to near-IR photolysis of HNO4]] ''(J. Mao)''
+
Contain everything in [[GEOS-Chem v8-02-03]], plus:
* Updated MEGAN biogenic emissions ''(M. Barkley)''
+
 
* [[#Fixes_and_updates_in_seasalt_mod.f|Updates and fixes for sea salt aerosols]] ''(L. Jaeglé, B. Alexander)''
+
#[[Linoz stratospheric ozone chemistry|LINOZ stratospheric ozone chemistry]] ''(Dylan Jones group @ U. Toronto)''
 +
#[[Volcanic SO2 emissions from Aerocom|Updated inventory of volcanic SO2 emissions from AeroCom]] ''(J. Fisher)''
 +
#[[EPA/NEI05 North American emissions|EPA/NEI2005 regional emissions inventory for North America]] ''(P. Le Sager, A. van Donkelaar)''
 +
#[[Chemistry_Issues#near-IR_photolysis_of_HNO4|Update to near-IR photolysis of HNO4]] ''(J. Mao)''
 +
#[[MEGAN biogenic emissions#MEGAN in GEOS-Chem v8-02-04 and later versions|MEGAN v2.1 biogenic emissions]] ''(M. Barkley)''
 +
#[[#Fixes_and_updates_in_seasalt_mod.f|Updates and fixes for sea salt aerosols]] ''(L. Jaeglé, B. Alexander)''
  
 
=== Note about Linoz validation ===
 
=== Note about Linoz validation ===
  
'''''Dylan Jones (dbj@atmosp.physics.utoronto.ca) wrote:'''''
+
'''''[mailto:dbj@atmosp.physics.utoronto.ca Dylan Jones] wrote:'''''
  
:Testing [the Linoz code in v8-02-04] was more difficult that I thought.  I began by trying to compare the output of v8-02-04 with our previous runs with [[GEOS-Chem v8-02-01|v8-02-01]].  I accounted for the changes in the <tt>transport_mod.f</tt> and I tried to undo the changes in when the diagnostics are archived in v8-02-04, but I was still getting large differences between v8-02-04 and v8-02-01. I finally gave up on this since I may have made a mistake in reverting to the old way of doing the diagnostics in v8-02-04.  In the end I took the new linoz code from v8-02-04 and used it in v8-02-01.  I ran two GEOS-5 full chemistry simulations for 2007 and the output were consistent over the full year.   
+
:Testing [the Linoz code in v8-02-04] was more difficult that I thought.  I began by trying to compare the output of v8-02-04 with our previous runs with [[GEOS-Chem v8-02-01|v8-02-01]].  I accounted for the changes in the <code>transport_mod.f</code> and I tried to undo the changes in when the diagnostics are archived in v8-02-04, but I was still getting large differences between v8-02-04 and v8-02-01. I finally gave up on this since I may have made a mistake in reverting to the old way of doing the diagnostics in v8-02-04.  In the end I took the new linoz code from v8-02-04 and used it in v8-02-01.  I ran two GEOS-5 full chemistry simulations for 2007 and the output were consistent over the full year.   
 
    
 
    
 
:I think that it is safe to release [Linoz in v8-02-04].  However, we should acknowledge that it was [only] tested in v8-02-01, since I was not able to assess the quality of the output in v8-02-04.  
 
:I think that it is safe to release [Linoz in v8-02-04].  However, we should acknowledge that it was [only] tested in v8-02-01, since I was not able to assess the quality of the output in v8-02-04.  
Line 22: Line 28:
  
 
== 1-year benchmark simulations ==
 
== 1-year benchmark simulations ==
 +
 +
NOTE: For each benchmark run, new plots comparing modeled aerosols to observations are now available. The plotting program and observations were provided by Colette Heald (heald@atmos.colostate.edu)
 +
 +
Also see our [[Mean OH concentration]] wiki page for a comprehensive table of the mean OH values from several GEOS-Chem 1-yr benchmark simulations.
  
 
=== Run0 ===
 
=== Run0 ===
Line 38: Line 48:
 
|-align="center"
 
|-align="center"
 
| Red
 
| Red
| v8-01-04 Run2
+
| [[GEOS-Chem v8-01-04#Run2|v8-01-04 Run2]]
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>EPA/NEI99 with ICARTT fix<br>EDGAR ship emissions<br>ARCTAS ship SO2 emissions<br>Anthro scale year 2005
+
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>EPA/NEI99 with ICARTT fix<br>EDGAR ship emissions<br>ARCTAS ship SO2 emissions<br>Cooke BC/OC emissions<br>Anthro scale year 2005
 
| "old" MEGAN
 
| "old" MEGAN
 
| "old" jv_spec.dat.<br>Chemistry mostly unchanged<br>from v5-07-08<br>except for<br>a few revisions
 
| "old" jv_spec.dat.<br>Chemistry mostly unchanged<br>from v5-07-08<br>except for<br>a few revisions
Line 46: Line 56:
 
|-align="center"
 
|-align="center"
 
| Green
 
| Green
| v8-02-01 Run0
+
| [[GEOS-Chem v8-02-01#Run0|v8-02-01 Run0]]
 
| " "
 
| " "
 
| " "
 
| " "
Line 55: Line 65:
 
| Blue
 
| Blue
 
| v8-02-04 Run0
 
| v8-02-04 Run0
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>'''NEI 2005'''<br>EDGAR ship emissions<br>EMEP ship emissions<br>ARCTAS ship SO2 emissions<br>Anthro scale year 2005
+
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>'''NEI 2005'''<br>EDGAR ship emissions<br>EMEP ship emissions<br>ARCTAS ship SO2 emissions<br>'''BOND BC/OC with monthly variations'''<br>Anthro scale year 2005
| "new" hybrid MEGAN
+
| '''"new"''' hybrid MEGAN
 
| " "
 
| " "
| Non-Local scheme
+
| '''Non-Local scheme'''
 
| 10.450
 
| 10.450
 
|-align="center"
 
|-align="center"
Line 69: Line 79:
 
| &nbsp;
 
| &nbsp;
 
|}
 
|}
 +
 +
 +
We have archived the files for v8-02-04-geos5-Run0 into TARBALL (i.e. tar.gz) format to save disk space.  To download the TARBALL containing all relevant files, type:
 +
 +
ftp ftp.as.harvard.edu
 +
get gcgrid/geos-chem/1yr_benchmarks/v8-02-04/v8-02-04-geos5-Run0.tar.gz
 +
 +
And then to extract the data, type:
 +
 +
tar xvzf v8-02-04-geos5-Run0.tar.gz
 +
 +
The comparison plots will be in located in the <tt>output/pdf</tt> folder.
 +
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 14:53, 20 June 2017 (UTC)
  
 
=== Run1 ===
 
=== Run1 ===
Line 84: Line 108:
 
|-align="center"
 
|-align="center"
 
| Red
 
| Red
| v8-02-01 Run0
+
| [[GEOS-Chem v8-02-01#Run0|v8-02-01 Run0]]
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>EPA/NEI99 with ICARTT fix<br>EDGAR ship emissions<br>ARCTAS ship SO2 emissions<br>Anthro scale year 2005
+
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>EPA/NEI99 with ICARTT fix<br>EDGAR ship emissions<br>ARCTAS ship SO2 emissions<br>Cooke BC/OC emissions<br>Anthro scale year 2005
 
| "old" MEGAN  
 
| "old" MEGAN  
 
| Fully mixed scheme
 
| Fully mixed scheme
Line 92: Line 116:
 
| Green
 
| Green
 
| v8-02-04 Run0
 
| v8-02-04 Run0
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>'''NEI 2005'''<br>EDGAR ship emissions<br>EMEP ship emissions<br>ARCTAS ship SO2 emissions<br>Anthro scale year 2005
+
| GEIA/Piccot<br>EDGAR emissions<br>EMEP European emissions<br>BRAVO Mexican emissions<br>David Streets 2006 emissions<br>CAC Canadian emissions<br>NEI 2005<br>EDGAR ship emissions<br>EMEP ship emissions<br>ARCTAS ship SO2 emissions<br>BOND BC/OC emissions with monthly variations<br>Anthro scale year 2005
 
| "new" hybrid MEGAN
 
| "new" hybrid MEGAN
 
| Non-Local scheme
 
| Non-Local scheme
Line 111: Line 135:
 
| &nbsp;
 
| &nbsp;
 
|}
 
|}
 +
 +
 +
We have archived the files for v8-02-04-geos5-Run1 into TARBALL (i.e. tar.gz) format to save disk space.  To download the TARBALL containing all relevant files, type:
 +
 +
ftp ftp.as.harvard.edu
 +
get gcgrid/geos-chem/1yr_benchmarks/v8-02-04/v8-02-04-geos5-Run1.tar.gz
 +
 +
And then to extract the data, type:
 +
 +
tar xvzf v8-02-04-geos5-Run1.tar.gz
 +
 +
The comparison plots will be in located in the <tt>output/pdf</tt> folder.
 +
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 14:53, 20 June 2017 (UTC)
  
 
=== Run2 ===
 
=== Run2 ===
Line 127: Line 165:
 
| Red
 
| Red
 
| v8-02-04 Run0
 
| v8-02-04 Run0
| "new" hybrid MEGAN<br>with AVHRR-derived LAI
+
| "new" hybrid MEGAN
 
| OFF
 
| OFF
 
| "old" restart file
 
| "old" restart file
Line 134: Line 172:
 
| Green
 
| Green
 
| v8-02-04 Run1
 
| v8-02-04 Run1
| "new" hybrid MEGAN with<br>'''MODIS-derived LAI'''
+
| "new" hybrid MEGAN with<br>MODIS-derived LAI
 
| OFF
 
| OFF
 
| " "
 
| " "
Line 153: Line 191:
 
| &nbsp;
 
| &nbsp;
 
|}
 
|}
 +
 +
 +
We have archived the files for v8-02-04-geos5-Run2 into TARBALL (i.e. tar.gz) format to save disk space.  To download the TARBALL containing all relevant files, type:
 +
 +
ftp ftp.as.harvard.edu
 +
get gcgrid/geos-chem/1yr_benchmarks/v8-02-04/v8-02-04-geos5-Run2.tar.gz
 +
 +
And then to extract the data, type:
 +
 +
tar xvzf v8-02-04-geos5-Run2.tar.gz
 +
 +
The comparison plots will be in located in the <tt>output/pdf</tt> folder.
 +
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 14:54, 20 June 2017 (UTC)
 +
 +
=== Discussion ===
 +
 +
Please follow the discussion about the benchmark results for GEOS-Chem v8-02-04 on [[Talk:GEOS-Chem v8-02-04|the talk page]].
 +
 +
The upshot is that you should ALWAYS use the MODIS leaf area indices product with the new MEGAN biogenic emissions.  The older AVHRR LAI product is [http://acmg.seas.harvard.edu/geos/wiki_docs/benchmarks/MODIS_LAI_vs_AVHRR_LAI.pdf biased high w/r/t MODIS LAI] and will cause MEGAN to [http://acmg.seas.harvard.edu/geos/wiki_docs/benchmarks/Isoprene_v8-02-04_Run0_vs_Run1.pdf produce more isoprene] as a result.
 +
 +
--[[User:Bmy|Bob Y.]] 12:41, 12 February 2010 (EST)
  
 
== Previous issues now resolved in v8-02-04 ==
 
== Previous issues now resolved in v8-02-04 ==
 +
 +
=== KPP treating dead species as active species ===
 +
 +
The [[GEOS-Chem_v8-02-03#Patch_for_KPP_for_v8-02-03|KPP patch that was applied in GEOS-Chem v8-02-03]] has now been standardized.  This fixed a problem which caused KPP to treat "dead" species in <code>globchem.dat</code> as "active" species.
 +
 +
--[[User:Bmy|Bob Y.]] 17:05, 4 February 2010 (EST)
  
 
=== Memory issue with KPP ===
 
=== Memory issue with KPP ===
Line 165: Line 231:
 
=== Updated reactions in sulfate_mod.f ===
 
=== Updated reactions in sulfate_mod.f ===
  
'''''Jenny Fisher (jafisher@fas.harvard.edu) wrote:'''''
+
'''''[mailto:jafisher@fas.harvard.edu Jenny Fisher] wrote:'''''
  
:I made two very small changes to <tt>sulfate_mod.f</tt> that should be included in the standard code. The change updates the reaction rates used for the offline aerosol simulation so that they match the rates Jingqiu implemented in the full chemistry simulation.
+
:I made two very small changes to <code>sulfate_mod.f</code> that should be included in the standard code. The change updates the reaction rates used for the offline aerosol simulation so that they match the rates Jingqiu implemented in the full chemistry simulation.
  
 
:The changes are:
 
:The changes are:
Line 178: Line 244:
 
=== Bug fix for EMEP ship emissions ===
 
=== Bug fix for EMEP ship emissions ===
  
'''''Monika Kopacz (mkopacz@princeton.edu) wrote:'''''
+
[[Image:Obsolete.jpg]]
  
:I noticed that the code crashes when EMEP is set to false but ship emissions from EMEP are true in the input file. Sure, it makes sense, but I would suggest the following addition to the <tt>input_mod.f</tt>, around say around line 1550 to prevent the code from crashing.
+
<span style="color:red">'''''NOTE: All emissions are handled by [[HEMCO]] in [[GEOS-Chem v10-01]] and higher versions.'''''</span>
  
    ! Make sure we're not using EMEP ship emissions, if EMEP is off
+
Please see [[EMEP_European_anthropogenic_emissions#Bug_fix_for_EMEP_ship_emissions|this post on our EMEP wiki page]] for a full description of the issue.
    IF (.not. LEMEP ) THEN
+
      LEMEPSHIP = .FALSE.
+
    ENDIF
+
  
'''''Bob Yantosca (yantosca@seas.harvard.edu) replied:'''''
+
--[[User:Bmy|Bob Y.]] 12:09, 20 December 2012 (EST)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
  
:Good catch.  We've put this code into READ_EMISSIONS_MENU in <tt>input_mod.f:</tt>
+
=== Minor fix for molecular weights in drydep_mod.f ===
  
    !%%% Bug fix!  If LEMEPSHIP is turned on but LEMEP is turned %%%
+
[[Image:Obsolete.jpg]]
    !%%% off, this will cause an error (because arrays are not  %%%
+
    !%%% allocated, etc.).  For now, just turn off LEMEPSHIP    %%%
+
    !%%% and print a warning message.  Whoever wants to fix this %%%
+
    !%%% in a more robust way is welcome to do so.              %%%
+
    !%%% (mak, bmy, 10/19/09)                                    %%%
+
    IF ( LEMEPSHIP .and. ( .not. LEMEP ) ) THEN
+
        LEMEPSHIP = .FALSE.
+
        WRITE( 6, '(a)' ) REPEAT( '=', 79 )
+
        WRITE( 6, '(a)' ) 'WARNING! EMEP emissions are turned off,'
+
        WRITE( 6, '(a)' ) 'so also turn off EMEP ship emissions'
+
        WRITE( 6, '(a)' ) 'in order to avoid crashing GEOS-Chem!'
+
        WRITE( 6, '(a)' ) REPEAT( '=', 79 )
+
    ENDIF
+
  
:As you pointed out the simple solution is to just turn off <tt>LEMEPSHIP</tt> if <tt>LEMEP=F</tt>.  However, it may still be possible to keep <tt>LEMEPSHIP</tt> turned on...one would have to go thru  <tt>emep_mod.f</tt> to make sure that the ship emissions arrays get allocated even if the other arrays don't.  Whoever wants to can feel free to do that...
+
<span style="color:red">'''''NOTE: This code was removed from [[GEOS-Chem v11-01#v11-01e|v11-01e]] and higher versionsMolecular weights for each dry deposition species are now stored a central location (the [[GEOS-Chem species database]]).'''''</span>
 
+
--[[User:Bmy|Bob Y.]] 10:57, 19 October 2009 (EDT)
+
 
+
=== Minor fix for molecular weights in drydep_mod.f ===
+
  
'''''Bob Yantosca (yantosca@seas.harvard.edu) replied:'''''
+
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] wrote:'''''
  
:I found a minor inconsistency in INIT_DRYDEP (in <tt>drydep_mod.f</tt>) which only affects the SOA tracers.  In the big loop where we initialize everything, the following updates were made:
+
:I found a minor inconsistency in INIT_DRYDEP (in <code>drydep_mod.f</code>) which only affects the SOA tracers.  In the big loop where we initialize everything, the following updates were made:
  
 
         ! ALPH (Alpha-pinene)
 
         ! ALPH (Alpha-pinene)
Line 243: Line 289:
 
:So in other words, the mol wt of ALPH and LIMO was listed as 136d-3 but it should be 136.23d-3.  It doesn't change things drastically, just in the last few decimal places of the surface resistance array RSURFC.  
 
:So in other words, the mol wt of ALPH and LIMO was listed as 136d-3 but it should be 136.23d-3.  It doesn't change things drastically, just in the last few decimal places of the surface resistance array RSURFC.  
  
--[[User:Bmy|Bob Y.]] 14:46, 19 October 2009 (EDT)
+
--[[User:Bmy|Bob Y.]] 14:46, 19 October 2009 (EDT)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
  
 
=== Bug fix in biomass_mod.f ===
 
=== Bug fix in biomass_mod.f ===
  
'''''Monika Kopacz (mkopacz@princeton.edu) and Jenny Fisher (jafisher@fas.harvard.edu) wrote:'''''
+
[[Image:Obsolete.jpg]]
  
:We have a bug fix for <tt>biomass_mod.f</tt>. This is based on the [[GEOS-Chem v8-02-03]] code, though we believe the problem has been there since at least [[GEOS-Chem v8-02-01]].  The corrected file is located via anonymous FTP at:
+
<span style="color:red">'''''NOTE: Nodule <code>biomass_mod.F</code> was removed from [[GEOS-Chem v10-01]] and higher versions.  All emissions are now handled by [[HEMCO]].'''''</span>
 +
 
 +
'''''[mailto:mkopacz@princeton.edu Monika Kopacz] and [mailto:jafisher@fas.harvard.edu Jenny Fisher] wrote:'''''
 +
 
 +
:We have a bug fix for <code>biomass_mod.f</code>. This is based on the [[GEOS-Chem v8-02-03]] code, though we believe the problem has been there since at least [[GEOS-Chem v8-02-01]].  The corrected file is located via anonymous FTP at:
  
 
     ftp://ftp.gfdl.noaa.gov/home/m1k/biomass_mod.f.corrected
 
     ftp://ftp.gfdl.noaa.gov/home/m1k/biomass_mod.f.corrected
  
:This fix required moving the co-emitted VOC scaling of emissions (in routine <tt>COMPUTE_BIOMASS_EMISSIONS</tt>) to places where the <tt>BIOMASS</tt> array is being reset or recalculated to prevent rescaling at every time step and thus blowing up.  It might not have been a problem when using GFED2 emissions, but it was definitely a problem for other inventories that do not update the <tt>BIOMASS</tt> array at every time step.  
+
:This fix required moving the co-emitted VOC scaling of emissions (in routine <code>COMPUTE_BIOMASS_EMISSIONS</code>) to places where the <code>BIOMASS</code> array is being reset or recalculated to prevent rescaling at every time step and thus blowing up.  It might not have been a problem when using GFED2 emissions, but it was definitely a problem for other inventories that do not update the <code>BIOMASS</code> array at every time step.  
  
 
This fix will be included in GEOS-Chem v8-02-04.
 
This fix will be included in GEOS-Chem v8-02-04.
  
--[[User:Bmy|Bob Y.]] 16:36, 6 November 2009 (EST)
+
--[[User:Bmy|Bob Y.]] 16:36, 6 November 2009 (EST)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
  
 
=== Minor bug fix in gamap_mod.f ===
 
=== Minor bug fix in gamap_mod.f ===
  
'''''Daven Henze (Daven.Henze@Colorado.EDU) wrote:'''''
+
'''''[mailto:Daven.Henze@Colorado.EDU Daven Henze] wrote:'''''
  
:The wiki says that MOLC was switched from 3 to 2 for ALD2 in <tt>gamap_mod.f</tt>, but the v8-02-03 code looks like the switch was accidentally applied to PRPE instead,  
+
:The wiki says that MOLC was switched from 3 to 2 for ALD2 in <code>gamap_mod.f</code>, but the v8-02-03 code looks like the switch was accidentally applied to PRPE instead,  
  
 
                   CASE( 6  )
 
                   CASE( 6  )
Line 283: Line 333:
 
                     UNIT (T,28) = 'atoms C/cm2/s'
 
                     UNIT (T,28) = 'atoms C/cm2/s'
  
'''''Bob Yantosca (yantosca@seas.harvard.edu) replied:'''''
+
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] wrote:'''''
  
 
:Yes it was a typo.  I've since fixed it, it'll go into GEOS-Chem v8-02-04.  Indeed, ALD2 should have 2 carbons and PRPE should have 3 carbons.
 
:Yes it was a typo.  I've since fixed it, it'll go into GEOS-Chem v8-02-04.  Indeed, ALD2 should have 2 carbons and PRPE should have 3 carbons.
Line 293: Line 343:
 
==== Updates to the sea-salt emissions scheme ====
 
==== Updates to the sea-salt emissions scheme ====
  
'''''Lyatt Jaegl&eacute; (jaegle@atmos.washington.edu) wrote:'''''
+
[[Image:Obsolete.jpg]]
 +
 
 +
<span style="color:red">'''''NOTE: This code has been removed from [[GEOS-Chem v10-01]] and higher versions.  All emissions are now handled by [[HEMCO]].'''''</span>
 +
 
 +
'''''[mailto:jaegle@atmos.washington.edu Lyatt Jaegl&eacute;] wrote:'''''
  
 
:I recommend 3 fixes to the Monahan sea-salt emissions scheme in GEOS-Chem:
 
:I recommend 3 fixes to the Monahan sea-salt emissions scheme in GEOS-Chem:
  
:1. The source function is for wet aerosol radius (RH=80%, with a radius twice the size of dry aerosols) so in function <tt>SRCSALT</tt> in <tt>seasalt_mod.f</tt>, BETHA should be set to 2 instead of 1.  Change the line:
+
:1. The source function is for wet aerosol radius (RH=80%, with a radius twice the size of dry aerosols) so in function <code>SRCSALT</code> in <code>seasalt_mod.f</code>, BETHA should be set to 2 instead of 1.  Change the line:
  
 
       REAL*8, PARAMETER      :: BETHA = 1.d0
 
       REAL*8, PARAMETER      :: BETHA = 1.d0
Line 305: Line 359:
 
       REAL*8, PARAMETER      :: BETHA = 2.d0
 
       REAL*8, PARAMETER      :: BETHA = 2.d0
  
:2. It turns out that the <tt>LOG</tt> in the Monahan source function is a log base 10.  Therefore these lines:
+
:2. It turns out that the <code>LOG</code> in the Monahan source function is a log base 10.  Therefore these lines:
  
 
             ! Sea salt base source [kg/m2]
 
             ! Sea salt base source [kg/m2]
Line 346: Line 400:
 
     &          /0.65d0)**2))/ BETHA**2
 
     &          /0.65d0)**2))/ BETHA**2
  
3. Finally I think that we should change the dry size bins for the coarse mode aerosols in <tt>input.geos</tt>.  Please see  [[Sea salt aerosols#Modification of size bins for coarse mode aerosols|the discussion on our Sea salt aerosols wiki page]] for more information.
+
3. Finally I think that we should change the dry size bins for the coarse mode aerosols in <code>input.geos</code>.  Please see  [[Sea salt aerosols#Modification of size bins for coarse mode aerosols|the discussion on our Sea salt aerosols wiki page]] for more information.
  
--[[User:Bmy|Bob Y.]] 10:44, 23 November 2009 (EST)
+
--[[User:Bmy|Bob Y.]] 10:44, 23 November 2009 (EST)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
  
 
==== Updated hygroscopic growth factors ====
 
==== Updated hygroscopic growth factors ====
  
'''''Becky Alexander (beckya@u.washington.edu) wrote:'''''
+
'''''[mailto:beckya@u.washington.edu Becky Alexander] wrote:'''''
  
:The hygroscopic growth factors in routine GET_ALK (<tt>seasalt_mod.f</tt>) are incorrect.  These:
+
:The hygroscopic growth factors in routine GET_ALK (<code>seasalt_mod.f</code>) are incorrect.  These:
  
 
         ! hygroscopic growth factor for sea-salt from Chin et al. (2002)
 
         ! hygroscopic growth factor for sea-salt from Chin et al. (2002)
Line 382: Line 436:
 
=== Bug fix in emfossil.f for 0.5 x 0.666 nested grid tagged-CO option ===
 
=== Bug fix in emfossil.f for 0.5 x 0.666 nested grid tagged-CO option ===
  
'''''Yuxuan Wang (zjiang@atmosp.physics.utoronto.ca) wrote:'''''
+
[[Image:Obsolete.jpg]]
  
:Zhe Jiang at University of Toronto found a bug in <tt>emfossil.f</tt> for the nested_CH tagged-CO option in code version v8-02-01 and higher. In <tt>emfossil.f</tt>, we need to make the following fix:
+
<span style="color:red">'''''Module <code>emfossil.F</code> was removed from [[GEOS-Chem v10-01]] and newer versions.  Anthropogenic emissions are now implemented via the [[HEMCO|HEMCO emissions component]].'''''</span>
 +
 
 +
'''''[mailto:yxw@tsinghua.edu.cn Yuxuan Wang] and  [mailto:zjiang@atmosp.physics.utoronto.ca Zhe Jiang] wrote:'''''
 +
 
 +
:Zhe Jiang at University of Toronto found a bug in <code>emfossil.f</code> for the nested_CH tagged-CO option in code version v8-02-01 and higher. In <code>emfossil.f</code>, we need to make the following fix:
  
 
         IF ( ITS_A_TAGCO_SIM() ) THEN           
 
         IF ( ITS_A_TAGCO_SIM() ) THEN           
Line 417: Line 475:
 
This bug is now fixed in GEOS-Chem v8-02-04.
 
This bug is now fixed in GEOS-Chem v8-02-04.
  
--[[User:Bmy|Bob Y.]] 16:40, 23 November 2009 (EST)
+
--[[User:Bmy|Bob Y.]] 16:40, 23 November 2009 (EST)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
  
 
=== Bug fix in DIAG20 (diag_pl_mod.f) ===
 
=== Bug fix in DIAG20 (diag_pl_mod.f) ===
  
Both Dylan Jones and Yuxuan Wang found a bug in the ND20 diagnostic (production and loss rate of Ox for tagged Ox simulation) in code version 8-02-01 and higher.  In routine <tt>DIAG20</tt> of <tt>diag_pl_mod.f</tt>, the <tt>COUNT</tt> variable for ND20 is not zeroed correctly at the beginning of each new day.  
+
<span style="color:darkorange">'''''NOTE: We are phasing out binary punch diagnostics output, in favor of netCDF output.'''''</span>
 +
 
 +
Both Dylan Jones and Yuxuan Wang found a bug in the ND20 diagnostic (production and loss rate of Ox for tagged Ox simulation) in code [[GEOS-Chem v8-02-01|version 8-02-01]] and higher.  In routine <code>DIAG20</code> of <code>diag_pl_mod.f</code>, the <code>COUNT</code> variable for ND20 is not zeroed correctly at the beginning of each new day.  
  
 
The following lines of code:
 
The following lines of code:
Line 455: Line 515:
 
=== Div-by-zero error encountered in arsl1k.f ===
 
=== Div-by-zero error encountered in arsl1k.f ===
  
'''''Bob Yantosca (yantosca@seas.harvard.edu) wrote:'''''
+
[[Image:Obsolete.jpg]]
  
:While doing some debugging with the SunStudio 12 compiler I came across an error in the chemistry that is a classic div-by-zero error.  The Totalview debugger shows that the code is dying at this line in <tt>arsl1k.f</tt>:
+
<span style="color:darkorange">'''''NOTE: This code was removed from [[GEOS-Chem v11-01]], when SMVGEAR was replaced by the [[FlexChem]] solver.'''''</span>
 +
 
 +
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] wrote:'''''
 +
 
 +
:While doing some debugging with the SunStudio 12 compiler I came across an error in the chemistry that is a classic div-by-zero error.  The Totalview debugger shows that the code is dying at this line in <code>arsl1k.f</code>:
  
 
         ! Compute ARSL1K according to the formula listed above
 
         ! Compute ARSL1K according to the formula listed above
 
         ARSL1K = AREA / ( RADIUS/DFKG + 2.749064E-4*SQM/(STKCF*STK) )
 
         ARSL1K = AREA / ( RADIUS/DFKG + 2.749064E-4*SQM/(STKCF*STK) )
  
:because the variable STKCF = 0.  The value of XSTKCF is computed in <tt>calcrate.f</tt> for the HO2 uptake in this section:
+
:because the variable STKCF = 0.  The value of XSTKCF is computed in <code>calcrate.f</code> for the HO2 uptake in this section:
  
 
                 ! Test if HO2 het uptake reaction
 
                 ! Test if HO2 het uptake reaction
Line 477: Line 541:
 
                 ENDIF
 
                 ENDIF
  
:and is passed down to <tt>arsl1k.f</tt>.  I noticed in the function HO2 within <tt>calcrate.f</tt> there are a couple of places where GAMMA can equal zero:
+
:and is passed down to <code>arsl1k.f</code>.  I noticed in the function HO2 within <code>calcrate.f</code> there are a couple of places where GAMMA can equal zero:
  
 
           ! Error check that B^2-(4d0*A*C) is not negative
 
           ! Error check that B^2-(4d0*A*C) is not negative
Line 499: Line 563:
 
           ENDIF
 
           ENDIF
  
 +
:here the GAMMA is the return value of the function, and this is what gets assigned to XSTCKF in <code>calcrate.f</code>.
  
:here the GAMMA is the return value of the function, and this is what gets assigned to XSTCKF in <tt>calcrate.f</tt>.
+
:It seems the best way to fix this error is to just extend the IF statement within the <code>arsl1k.f</code> function, such that if any of the arguments (which also happen to be in denominators in the equations below) are zero (or at least less than an epsilon value like 1e-30), then we just return the default value of ARSL1K=1d-3.  The IF statement within function <code>arsl1k.f</code> should be modified accordingly:
 
+
:It seems the best way to fix this error is to just extend the IF statement within the <tt>arsl1k.f</tt> function, such that if any of the arguments (which also happen to be in denominators in the equations below) are zero (or at least less than an epsilon value like 1e-30), then we just return the default value of ARSL1K=1d-3.  The IF statement within function <tt>arsl1k.f</tt> should be modified accordingly:
+
  
 
     !----------------------------------------------------------------------
 
     !----------------------------------------------------------------------
Line 526: Line 589:
 
     ENDIF  
 
     ENDIF  
  
:The SunStudio compiler checks for NaN, div-by-zero, overflow, underflow, etc. errors when you use the <tt>-fast</tt> optimization option.  The IFORT compiler will not check for these automatically (you can set a compiler switch to invoke this checking).
+
:The SunStudio compiler checks for NaN, div-by-zero, overflow, underflow, etc. errors when you use the <code>-fast</code> optimization option.  The IFORT compiler will not check for these automatically (you can set a compiler switch to invoke this checking).
  
 
:Long story short: The best defense against bugs like these is to always be careful when writing divisions, and to make sure that the denominator can never be zero (or if it can be zero, to avoid doing the division in the first place).
 
:Long story short: The best defense against bugs like these is to always be careful when writing divisions, and to make sure that the denominator can never be zero (or if it can be zero, to avoid doing the division in the first place).
  
 
--[[User:Bmy|Bob Y.]] 17:01, 3 December 2009 (EST)
 
--[[User:Bmy|Bob Y.]] 17:01, 3 December 2009 (EST)
 +
 +
==== Question about default return value ====
 +
 +
'''''[mailto:barronh@gmail.com Barron Henderson] wrote:'''''
 +
 +
:In the ARSL1K routine, you provide a default value if any of the inputs are zero.  The intent of the default value is to prevent div by zero errors.  The default value in the Git repository is currently set to 1e-3, which seems extraordinarily large.  I noticed the problem when I tested the routine with area and radius set to 0.  With zeros, the surface catalyzed reactions should be very minimal.  The default value, however, is extremely large relative to other gas-phase reaction coefficients.  As a result, the heterogeneous reactions dominate.
 +
 +
:My example condition (area = 0; radius=0) probably never occurs in a 3-D GEOS-Chem simulation, so I don't suspect the default is ever used.  I am simply exploring the use of such calculations in another framework.  In my test case, a default of 1e-30 seems more appropriate and I wonder if this could be a typo.
 +
 +
'''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] wrote:'''''
 +
 +
:I think the 1d-3 value may have come from Isabelle Bey et al back in the early 2000’s.  Unfortunately, we didn’t seem to document that.  I didn’t know what the scientific justification for the 1d-3 was, so I left it as-is when I made the fix described above.  Maybe it is time to re-investigate what the proper return value should be.
 +
 +
--[[User:Bmy|Bob Y.]] 15:11, 22 April 2011 (EDT)
  
 
=== Fix for diagnostic arrays in TPCORE ===
 
=== Fix for diagnostic arrays in TPCORE ===
 +
 +
<span style="color:darkorange">'''''NOTE: We are phasing out binary punch diagnostics output, in favor of netCDF output.'''''</span>
  
 
The following previously-reported error:
 
The following previously-reported error:
Line 544: Line 623:
 
has now been resolved in GEOS-Chem v8-02-04.   
 
has now been resolved in GEOS-Chem v8-02-04.   
  
If the ND24, ND25, or ND26 diagnostics are turned off, we simply allocate the <tt>MASSFLEW</tt>, <tt>MASSFLNS</tt>, and <tt>MASSFLUP</tt> arrays using dimensions of 1.  This allocates a minimum amount of storage for the arrays, which is enough to prevent the above-described error.
+
If the ND24, ND25, or ND26 diagnostics are turned off, we simply allocate the <code>MASSFLEW</code>, <code>MASSFLNS</code>, and <code>MASSFLUP</code> arrays using dimensions of 1.  This allocates a minimum amount of storage for the arrays, which is enough to prevent the above-described error.
  
In subroutine <tt>ndxx_setup.f</tt>, we now have the following IF statement for the ND24 diagnostic:
+
In subroutine <code>ndxx_setup.f</code>, we now have the following IF statement for the ND24 diagnostic:
  
 
       !=================================================================
 
       !=================================================================
Line 566: Line 645:
  
 
--[[User:Bmy|Bob Y.]] 10:08, 12 January 2010 (EST)
 
--[[User:Bmy|Bob Y.]] 10:08, 12 January 2010 (EST)
 +
 +
=== MEGAN now uses MODIS LAI by default ===
 +
 +
We have now put a trap in GEOS-Chem such that the MODIS LAI product will be selected by default if the MEGAN v2.1 biogenic emissions are used.  Please see the full discussion on the [[MEGAN v2.1 biogenic emissions#Use MEGAN with MODIS leaf area indices|MEGAN biogenic emisisons wiki page]].
 +
 +
--[[User:Bmy|Bob Y.]] 16:05, 23 February 2010 (EST)
  
 
== Outstanding issues not yet resolved in v8-02-04 ==
 
== Outstanding issues not yet resolved in v8-02-04 ==
 +
 +
=== Miscellany ===
 +
 +
The following issues will be resolved in [[GEOS-Chem v8-03-01]]:
 +
 +
* [[GEOS-Chem v8-03-01#Fix for initialization of EMEP ship emissions|Fix for initialization of EMEP ship emissions]]
 +
* [[GEOS-Chem v8-03-01#Bug fix in AVGPOLE|Bug fix in AVGPOLE]]
 +
* [[GEOS-Chem v8-03-01#Bug fix in EMITHIGH .28carbon_mod.f.29|Bug fix in EMITHIGH (carbon_mod.f)]]
 +
* [[GEOS-Chem v8-03-01#Fix to prevent numerical overflow in EXP function|Fix to prevent numerical overflow in EXP function]]
 +
 +
Also users should note that there is a [[Scale factors for anthropogenic emissions#Large jump in emissions in Asia from 2005 to 2006|jump in emissions totals over Asia from 2005 to 2006]].  This has been traced to the [http://www.jamstec.go.jp/frsgc/research/d4/reas_h_a.html REAS inventory] from which the anthropogenic scale factors were derived.  We are currently looking into the problem.
 +
 +
--[[User:Bmy|Bob Y.]] 16:06, 23 February 2010 (EST)
 +
 +
=== Bug in READ_ANTHRO_NH3 ===
 +
 +
[[Image:Obsolete.jpg]]
 +
 +
<span style="color:red">'''''Routine <code>READ_ANTHRO_NH3</code> was removed from [[GEOS-Chem v10-01]] and newer versions.  NH3 emissions are now implemented via the [[HEMCO|HEMCO emissions component]].'''''</span>
 +
 +
This bug was found after the release of v8-02-04:
 +
 +
'''''[mailto:Daven.Henze@Colorado.EDU Daven Henze] wrote:'''''
 +
 +
:I found a small bug in subroutine <code>READ_ANTHRO_NH3</code> in <code>sulfate_mod.f</code>.  It is present in v8-02-04 of the code, as well as earlier versions (not sure how far back, but at least [[GEOS-Chem v8-02-01]]).
 +
 +
:The variable STREETS needs to be declared thread private.  Otherwise you can get some randomly changing NH3 emissions in Asia.  I recommend anybody who's doing sulfate aerosol simulations over that area and using LSTREETS to update immediately.
 +
 +
    !$OMP PARALLEL DO
 +
    !$OMP+DEFAULT( SHARED )
 +
    !------------------------------------------------------------
 +
    ! Prior to 3/5/10:
 +
    ! STREETS needs to be held PRIVATE (dkh, bmy, 3/5/10)
 +
    !!$OMP+PRIVATE( I, J )
 +
    !------------------------------------------------------------
 +
    !$OMP+PRIVATE( I, J, STREETS )
 +
 +
          DO J = 1, JJPAR
 +
          DO I = 1, IIPAR
 +
            etc ...
 +
 +
We recommend all users to add this patch.  You may either make the above change in your own code, or download a patched version of <code>sulfate_mod.f</code> from:
 +
 
 +
    ftp ftp.as.harvard.edu
 +
    get pub/geos-chem/patches/v8-02-04/sulfate_mod.f
 +
 +
This patch will be standardized in [[GEOS-Chem v8-03-01]]. 
 +
 +
Also note, the recent [[#1-year benchmark simulations|1-year benchmarks for v8-02-04]] were done without this fix. 
 +
 +
--[[User:Bmy|Bob Y.]] 10:18, 5 March 2010 (EST)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
 +
 +
=== Bug in GET_EMMONOT_MEGAN ===
 +
 +
[[Image:Obsolete.jpg]]
 +
 +
<span style="color:red">'''''In [[GEOS-Chem v10-01]] and higher versions, the MEGAN biogenic emissions are now handled by [[HEMCO]].'''''</span>
 +
 +
Please see [[MEGAN v2.1 biogenic emissions#Bug in GET_EMMONOT_MEGAN|this post on our ''MEGAN v2.1 biogenic emissions'' wiki page]] for a full description of the issue.
 +
 +
--[[User:Bmy|Bob Y.]] 16:26, 25 February 2015 (EST)<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:46, 15 November 2017 (UTC)
 +
 +
=== Bug with AEF_SPARE in megan_mod.f ===
 +
 +
[[Image:Obsolete.jpg]]
 +
 +
<span style="color:red">'''''In [[GEOS-Chem v10-01]] and higher versions, the MEGAN biogenic emissions are now handled by [[HEMCO]].'''''</span>
 +
 +
Please see [[MEGAN v2.1 biogenic emissions#Bug with AEF_SPARE in megan_mod.f|this post on our ''MEGAN v2.1 biogenic emissions'' wiki page]] for a full description of the issue.
 +
 +
--[[User:Bmy|Bob Y.]] 16:27, 25 February 2015 (EST)

Latest revision as of 17:46, 15 November 2017

Overview

BETA RELEASE -- 24 Feb 2010

What's new in this version

Contain everything in GEOS-Chem v8-02-03, plus:

  1. LINOZ stratospheric ozone chemistry (Dylan Jones group @ U. Toronto)
  2. Updated inventory of volcanic SO2 emissions from AeroCom (J. Fisher)
  3. EPA/NEI2005 regional emissions inventory for North America (P. Le Sager, A. van Donkelaar)
  4. Update to near-IR photolysis of HNO4 (J. Mao)
  5. MEGAN v2.1 biogenic emissions (M. Barkley)
  6. Updates and fixes for sea salt aerosols (L. Jaeglé, B. Alexander)

Note about Linoz validation

Dylan Jones wrote:

Testing [the Linoz code in v8-02-04] was more difficult that I thought. I began by trying to compare the output of v8-02-04 with our previous runs with v8-02-01. I accounted for the changes in the transport_mod.f and I tried to undo the changes in when the diagnostics are archived in v8-02-04, but I was still getting large differences between v8-02-04 and v8-02-01. I finally gave up on this since I may have made a mistake in reverting to the old way of doing the diagnostics in v8-02-04. In the end I took the new linoz code from v8-02-04 and used it in v8-02-01. I ran two GEOS-5 full chemistry simulations for 2007 and the output were consistent over the full year.
I think that it is safe to release [Linoz in v8-02-04]. However, we should acknowledge that it was [only] tested in v8-02-01, since I was not able to assess the quality of the output in v8-02-04.

--Bob Y. 16:52, 18 November 2009 (EST)

1-year benchmark simulations

NOTE: For each benchmark run, new plots comparing modeled aerosols to observations are now available. The plotting program and observations were provided by Colette Heald (heald@atmos.colostate.edu)

Also see our Mean OH concentration wiki page for a comprehensive table of the mean OH values from several GEOS-Chem 1-yr benchmark simulations.

Run0

Three GEOS-Chem model versions were compared to each other:

Color Quantity Plotted Anthro Emissions Biogenic Emissions Photolysis and Chemistry
Mechanism
PBL scheme Annual Mean OH
[105 molec/cm3]
Red v8-01-04 Run2 GEIA/Piccot
EDGAR emissions
EMEP European emissions
BRAVO Mexican emissions
David Streets 2006 emissions
CAC Canadian emissions
EPA/NEI99 with ICARTT fix
EDGAR ship emissions
ARCTAS ship SO2 emissions
Cooke BC/OC emissions
Anthro scale year 2005
"old" MEGAN "old" jv_spec.dat.
Chemistry mostly unchanged
from v5-07-08
except for
a few revisions
Fully mixed scheme 11.099
Green v8-02-01 Run0 " " " " "updated" jv_spec.dat
"updated" chemical mechanism
(cf. J. Mao, D. Millet,
T-M. Fu, Palmer Group
@ U. Edinburgh)
Fully mixed scheme 11.812
Blue v8-02-04 Run0 GEIA/Piccot
EDGAR emissions
EMEP European emissions
BRAVO Mexican emissions
David Streets 2006 emissions
CAC Canadian emissions
NEI 2005
EDGAR ship emissions
EMEP ship emissions
ARCTAS ship SO2 emissions
BOND BC/OC with monthly variations
Anthro scale year 2005
"new" hybrid MEGAN " " Non-Local scheme 10.450
Black Observations          


We have archived the files for v8-02-04-geos5-Run0 into TARBALL (i.e. tar.gz) format to save disk space. To download the TARBALL containing all relevant files, type:

ftp ftp.as.harvard.edu
get gcgrid/geos-chem/1yr_benchmarks/v8-02-04/v8-02-04-geos5-Run0.tar.gz

And then to extract the data, type:

tar xvzf v8-02-04-geos5-Run0.tar.gz

The comparison plots will be in located in the output/pdf folder.

--Bob Yantosca (talk) 14:53, 20 June 2017 (UTC)

Run1

Three GEOS-Chem model versions were compared to each other:

Color Quantity Plotted Anthro Emissions Biogenic Emissions PBL scheme Annual Mean OH
[105 molec/cm3]
Red v8-02-01 Run0 GEIA/Piccot
EDGAR emissions
EMEP European emissions
BRAVO Mexican emissions
David Streets 2006 emissions
CAC Canadian emissions
EPA/NEI99 with ICARTT fix
EDGAR ship emissions
ARCTAS ship SO2 emissions
Cooke BC/OC emissions
Anthro scale year 2005
"old" MEGAN Fully mixed scheme 11.812
Green v8-02-04 Run0 GEIA/Piccot
EDGAR emissions
EMEP European emissions
BRAVO Mexican emissions
David Streets 2006 emissions
CAC Canadian emissions
NEI 2005
EDGAR ship emissions
EMEP ship emissions
ARCTAS ship SO2 emissions
BOND BC/OC emissions with monthly variations
Anthro scale year 2005
"new" hybrid MEGAN Non-Local scheme 10.450
Blue v8-02-04 Run1 " " "new" hybrid MEGAN with
MODIS-derived LAI
" " 11.048
Black Observations        


We have archived the files for v8-02-04-geos5-Run1 into TARBALL (i.e. tar.gz) format to save disk space. To download the TARBALL containing all relevant files, type:

ftp ftp.as.harvard.edu
get gcgrid/geos-chem/1yr_benchmarks/v8-02-04/v8-02-04-geos5-Run1.tar.gz

And then to extract the data, type:

tar xvzf v8-02-04-geos5-Run1.tar.gz

The comparison plots will be in located in the output/pdf folder.

--Bob Yantosca (talk) 14:53, 20 June 2017 (UTC)

Run2

Three GEOS-Chem model versions were compared to each other:

Color Quantity Plotted Biogenic Emissions Linoz Restart file Annual Mean OH
[105 molec/cm3]
Red v8-02-04 Run0 "new" hybrid MEGAN OFF "old" restart file 10.450
Green v8-02-04 Run1 "new" hybrid MEGAN with
MODIS-derived LAI
OFF " " 11.048
Blue v8-02-04 Run2 " " ON Restart file with O3
concentrations from an
offline Ox simulation
spin-up with Linoz
11.067
Black Observations        


We have archived the files for v8-02-04-geos5-Run2 into TARBALL (i.e. tar.gz) format to save disk space. To download the TARBALL containing all relevant files, type:

ftp ftp.as.harvard.edu
get gcgrid/geos-chem/1yr_benchmarks/v8-02-04/v8-02-04-geos5-Run2.tar.gz

And then to extract the data, type:

tar xvzf v8-02-04-geos5-Run2.tar.gz

The comparison plots will be in located in the output/pdf folder.

--Bob Yantosca (talk) 14:54, 20 June 2017 (UTC)

Discussion

Please follow the discussion about the benchmark results for GEOS-Chem v8-02-04 on the talk page.

The upshot is that you should ALWAYS use the MODIS leaf area indices product with the new MEGAN biogenic emissions. The older AVHRR LAI product is biased high w/r/t MODIS LAI and will cause MEGAN to produce more isoprene as a result.

--Bob Y. 12:41, 12 February 2010 (EST)

Previous issues now resolved in v8-02-04

KPP treating dead species as active species

The KPP patch that was applied in GEOS-Chem v8-02-03 has now been standardized. This fixed a problem which caused KPP to treat "dead" species in globchem.dat as "active" species.

--Bob Y. 17:05, 4 February 2010 (EST)

Memory issue with KPP

The interface between GEOS-Chem and KPP was modified. The memory load of a GEOS-Chem simulation with KPP is now only slightly higher than with SMVGEAR. The results are not affected at all by the change.

Please refers to the interfacing wiki page if you need to re-build KPP for GEOS-Chem version 8-02-04 and higher.

--Ccarouge 14:30, 10 December 2009 (EST)

Updated reactions in sulfate_mod.f

Jenny Fisher wrote:

I made two very small changes to sulfate_mod.f that should be included in the standard code. The change updates the reaction rates used for the offline aerosol simulation so that they match the rates Jingqiu implemented in the full chemistry simulation.
The changes are:
  1. In CHEM_DMS, definition of RK2.
  2. In CHEM_SO2, definitions of K0 and Ki. Note that I also removed the definition of Ki earlier in the subroutine (line 1497) and moved it to this section so it can be easily updated for future rate constant revisions.

--Bob Y. 09:50, 15 October 2009 (EDT)

Bug fix for EMEP ship emissions

Obsolete.jpg

NOTE: All emissions are handled by HEMCO in GEOS-Chem v10-01 and higher versions.

Please see this post on our EMEP wiki page for a full description of the issue.

--Bob Y. 12:09, 20 December 2012 (EST)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Minor fix for molecular weights in drydep_mod.f

Obsolete.jpg

NOTE: This code was removed from v11-01e and higher versions. Molecular weights for each dry deposition species are now stored a central location (the GEOS-Chem species database).

Bob Yantosca wrote:

I found a minor inconsistency in INIT_DRYDEP (in drydep_mod.f) which only affects the SOA tracers. In the big loop where we initialize everything, the following updates were made:
       ! ALPH (Alpha-pinene)
       ELSE IF ( N == IDTALPH ) THEN
          ...

          !----------------------------------------------------------
          ! Prior to 10/19/09:
          ! Molwt should be 136.23 not 136 even (bmy, 10/19/09)
          !XMW(NUMDEP)     = 136d-3
          !----------------------------------------------------------
          XMW(NUMDEP)     = 136.23d-3

          ...            

       ! LIMO (Limonene)
       ELSE IF ( N == IDTLIMO ) THEN
          ...

          !----------------------------------------------------------
          ! Prior to 10/19/09:
          ! Molwt should be 136.23 not 136 even (bmy, 10/19/09)
          !XMW(NUMDEP)     = 136d-3
          !----------------------------------------------------------
          XMW(NUMDEP)     = 136.23d-3
  
So in other words, the mol wt of ALPH and LIMO was listed as 136d-3 but it should be 136.23d-3. It doesn't change things drastically, just in the last few decimal places of the surface resistance array RSURFC.

--Bob Y. 14:46, 19 October 2009 (EDT)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Bug fix in biomass_mod.f

Obsolete.jpg

NOTE: Nodule biomass_mod.F was removed from GEOS-Chem v10-01 and higher versions. All emissions are now handled by HEMCO.

Monika Kopacz and Jenny Fisher wrote:

We have a bug fix for biomass_mod.f. This is based on the GEOS-Chem v8-02-03 code, though we believe the problem has been there since at least GEOS-Chem v8-02-01. The corrected file is located via anonymous FTP at:
   ftp://ftp.gfdl.noaa.gov/home/m1k/biomass_mod.f.corrected
This fix required moving the co-emitted VOC scaling of emissions (in routine COMPUTE_BIOMASS_EMISSIONS) to places where the BIOMASS array is being reset or recalculated to prevent rescaling at every time step and thus blowing up. It might not have been a problem when using GFED2 emissions, but it was definitely a problem for other inventories that do not update the BIOMASS array at every time step.

This fix will be included in GEOS-Chem v8-02-04.

--Bob Y. 16:36, 6 November 2009 (EST)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Minor bug fix in gamap_mod.f

Daven Henze wrote:

The wiki says that MOLC was switched from 3 to 2 for ALD2 in gamap_mod.f, but the v8-02-03 code looks like the switch was accidentally applied to PRPE instead,
                 CASE( 6  )
                    NAME (T,28) = 'ALD2'
                    INDEX(T,28) = 11 + ( SPACING * 45 )
                    MWT  (T,28) = 12e-3
                    MOLC (T,28) = 3
                    UNIT (T,28) = 'atoms C/cm2/s'
                 CASE( 7  )
                    NAME (T,28) = 'PRPE'
                    INDEX(T,28) = 18 + ( SPACING * 45 )
                    MWT  (T,28) = 12e-3
                    !-------------------------------------------------
                    ! Prior to 10/9/09:
                    ! ALD2 has 2 carbons, not 3 (dbm, bmy, 10/9/09)
                    !MOLC (T,28) = 3
                    !-------------------------------------------------
                    MOLC (T,28) = 2
                    UNIT (T,28) = 'atoms C/cm2/s'

Bob Yantosca wrote:

Yes it was a typo. I've since fixed it, it'll go into GEOS-Chem v8-02-04. Indeed, ALD2 should have 2 carbons and PRPE should have 3 carbons.

--Bob Y. 12:36, 19 November 2009 (EST)

Fixes and updates in seasalt_mod.f

Updates to the sea-salt emissions scheme

Obsolete.jpg

NOTE: This code has been removed from GEOS-Chem v10-01 and higher versions. All emissions are now handled by HEMCO.

Lyatt Jaeglé wrote:

I recommend 3 fixes to the Monahan sea-salt emissions scheme in GEOS-Chem:
1. The source function is for wet aerosol radius (RH=80%, with a radius twice the size of dry aerosols) so in function SRCSALT in seasalt_mod.f, BETHA should be set to 2 instead of 1. Change the line:
     REAL*8, PARAMETER      :: BETHA = 1.d0
to:
     REAL*8, PARAMETER      :: BETHA = 2.d0
2. It turns out that the LOG in the Monahan source function is a log base 10. Therefore these lines:
           ! Sea salt base source [kg/m2]
           SRC(R,N)  = CONST * SS_DEN( N )
    &           * ( 1.d0 + 0.057d0*( BETHA * RMID(R,N) )**1.05d0 )
    &           * 10d0**( 1.19d0*
    &                  EXP(-((0.38d0-LOG(BETHA*RMID(R,N)))/0.65d0)**2))
    &           / BETHA**2

           ! Sea salt base source [#/m2] (bec, bmy, 4/13/05)
           SRC_N(R,N) = CONST_N * (1.d0/RMID(R,N)**3)
    &           * (1.d0+0.057d0*(BETHA*RMID(R,N))**1.05d0)
    &           * 10d0**(1.19d0*EXP(-((0.38d0-LOG(BETHA*RMID(R,N)))
    &           /0.65d0)**2))/ BETHA**2
should be replaced with
           !-----------------------------------------------------------
           ! IMPORTANT NOTE!
           !
           ! In mathematics, "LOG" means "log10". 
           ! In Fortran,     "LOG" means "ln" (and LOG10 is "log10").
           !
           ! The following equations require log to the base 10, so 
           ! we need to use the Fortran function LOG10 instead of LOG. 
           ! (jaegle, bmy, 11/23/09)
           !-----------------------------------------------------------

           ! Sea salt base source [kg/m2]
           SRC(R,N)  = CONST * SS_DEN( N )
    &           * ( 1.d0 + 0.057d0*( BETHA * RMID(R,N) )**1.05d0 )
    &           * 10d0**( 1.19d0*
    &                  EXP(-((0.38d0-LOG10(BETHA*RMID(R,N)))/0.65d0)**2))
    &           / BETHA**2

           ! Sea salt base source [#/m2] (bec, bmy, 4/13/05)
           SRC_N(R,N) = CONST_N * (1.d0/RMID(R,N)**3)
    &           * (1.d0+0.057d0*(BETHA*RMID(R,N))**1.05d0)
    &           * 10d0**(1.19d0*EXP(-((0.38d0-LOG10(BETHA*RMID(R,N)))
    &           /0.65d0)**2))/ BETHA**2

3. Finally I think that we should change the dry size bins for the coarse mode aerosols in input.geos. Please see the discussion on our Sea salt aerosols wiki page for more information.

--Bob Y. 10:44, 23 November 2009 (EST)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Updated hygroscopic growth factors

Becky Alexander wrote:

The hygroscopic growth factors in routine GET_ALK (seasalt_mod.f) are incorrect. These:
       ! hygroscopic growth factor for sea-salt from Chin et al. (2002)
       IF ( IRH < 100 ) HGF = 2.2d0
       IF ( IRH < 99  ) HGF = 1.9d0
       IF ( IRH < 95  ) HGF = 1.8d0
       IF ( IRH < 90  ) HGF = 1.6d0
       IF ( IRH < 80  ) HGF = 1.5d0
       IF ( IRH < 70  ) HGF = 1.4d0
       IF ( IRH < 50  ) HGF = 1.0d0
should be replaced with:
       ! hygroscopic growth factor for sea-salt from Chin et al. (2002)
       IF ( IRH < 100 ) HGF = 4.8d0
       IF ( IRH < 99  ) HGF = 2.9d0
       IF ( IRH < 95  ) HGF = 2.4d0
       IF ( IRH < 90  ) HGF = 2.0d0
       IF ( IRH < 80  ) HGF = 1.8d0
       IF ( IRH < 70  ) HGF = 1.6d0
       IF ( IRH < 50  ) HGF = 1.0d0

This has now been done in GEOS-Chem v8-02-04.

--Bob Y. 09:48, 23 November 2009 (EST)

Bug fix in emfossil.f for 0.5 x 0.666 nested grid tagged-CO option

Obsolete.jpg

Module emfossil.F was removed from GEOS-Chem v10-01 and newer versions. Anthropogenic emissions are now implemented via the HEMCO emissions component.

Yuxuan Wang and Zhe Jiang wrote:

Zhe Jiang at University of Toronto found a bug in emfossil.f for the nested_CH tagged-CO option in code version v8-02-01 and higher. In emfossil.f, we need to make the following fix:
        IF ( ITS_A_TAGCO_SIM() ) THEN           
           !----------------------------------------------------------------
           ! Prior to 11/23/09:
           ! The reason for this change is because LNEI99 is set as .FALSE. 
           ! for the NESTED_CH option so GET_USA_MASK doesn't have a 
           ! definition which causes the run to crash.  So we need to
           ! add an ELSE to the IF ( LICARTT ) block to cover for this.
           ! (zie, yxw, bmy, 11/23/09)
           !IF ( LICARTT ) THEN
           !   IF ( GET_USA_MASK(I,J) > 0.d0 ) THEN
           !      IF ( NN == IDTCO ) EMX(1) = EMX(1) * 1.39d0
           !   ELSE
           !      IF ( NN == IDTCO ) EMX(1) = EMX(1) * 1.19d0
           !   ENDIF
           !ENDIF
           !----------------------------------------------------------------
           IF ( LICARTT ) THEN
              IF ( GET_USA_MASK(I,J) > 0.d0 ) THEN
                 IF ( NN == IDTCO ) EMX(1) = EMX(1) * 1.39d0
              ELSE
                 IF ( NN == IDTCO ) EMX(1) = EMX(1) * 1.19d0
              ENDIF
           ELSE
              IF ( NN == IDTCO ) EMX(1) = EMX(1) * 1.19d0
           ENDIF
        ELSE
           IF ( NN == IDTCO ) EMX(1) = EMX(1) * 1.02d0
        ENDIF

This bug is now fixed in GEOS-Chem v8-02-04.

--Bob Y. 16:40, 23 November 2009 (EST)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Bug fix in DIAG20 (diag_pl_mod.f)

NOTE: We are phasing out binary punch diagnostics output, in favor of netCDF output.

Both Dylan Jones and Yuxuan Wang found a bug in the ND20 diagnostic (production and loss rate of Ox for tagged Ox simulation) in code version 8-02-01 and higher. In routine DIAG20 of diag_pl_mod.f, the COUNT variable for ND20 is not zeroed correctly at the beginning of each new day.

The following lines of code:

        ! Zero counter
        COUNT(I,J,L) = 0    <=== ERROR: (I,J,L) indices used outside loop!

        ! Zero PL24H array
!$OMP PARALLEL DO
!$OMP+DEFAULT( SHARED )
!$OMP+PRIVATE( I, J, L, N )
        DO N = 1, 2
        DO L = 1, LD65
        DO J = 1, JJPAR
        DO I = 1, IIPAR
           PL24H(I,J,L,N) = 0d0
        ENDDO
        ENDDO
        ENDDO
        ENDDO
!$OMP END PARALLEL DO 

can now be replaced by the F90 array assignment statements:

        ! Zero arrays
        COUNT = 0
        PL24H = 0d0

and then there will be no chance of an out-of-bounds error.

--Bob Y. 10:05, 1 December 2009 (EST)

Div-by-zero error encountered in arsl1k.f

Obsolete.jpg

NOTE: This code was removed from GEOS-Chem v11-01, when SMVGEAR was replaced by the FlexChem solver.

Bob Yantosca wrote:

While doing some debugging with the SunStudio 12 compiler I came across an error in the chemistry that is a classic div-by-zero error. The Totalview debugger shows that the code is dying at this line in arsl1k.f:
       ! Compute ARSL1K according to the formula listed above
       ARSL1K = AREA / ( RADIUS/DFKG + 2.749064E-4*SQM/(STKCF*STK) )
because the variable STKCF = 0. The value of XSTKCF is computed in calcrate.f for the HO2 uptake in this section:
                ! Test if HO2 het uptake reaction
                ELSE IF ( NK == NKHO2 ) THEN
                   ...
                   XSTKCF = HO2( XRADIUS, T3K(KLOOP), XDENA, XSQM,
   &                             HO2_MOLEC_CM3, N , CONTINENTAL_PBL)
                   ...
                ELSE

                   ! Get GAMMA for species other than N2O5
                   XSTKCF = BRR(NK,NCS)

                ENDIF
and is passed down to arsl1k.f. I noticed in the function HO2 within calcrate.f there are a couple of places where GAMMA can equal zero:
          ! Error check that B^2-(4d0*A*C) is not negative
          TEST= B**2-(4d0*A*C)
          IF ( TEST < 0d0 ) THEN
              GAMMA = 0d0
          ELSE
              ! Calculate the concentration of O2- in the aerosol
              o2_ss= ( -B  -sqrt(B**2-(4d0*A*C)) )/(2d0*A)

              ! Calculate the reactive flux
              fluxrxn = kmt*HO2DENS - o2_ss*Na*kmt/H_eff/Raq/TEMP

              IF ( fluxrxn <= 0d0 ) THEN
                 GAMMA = 0d0
              ELSE
                 ! Gamma for HO2 at TEMP, ho2, and RADIUS given
                 GAMMA = 1./( ( ( HO2DENS/fluxrxn ) -
   &                            ( RADIUS/DFKG ) ) * w / 4.d0 )
              ENDIF
          ENDIF
here the GAMMA is the return value of the function, and this is what gets assigned to XSTCKF in calcrate.f.
It seems the best way to fix this error is to just extend the IF statement within the arsl1k.f function, such that if any of the arguments (which also happen to be in denominators in the equations below) are zero (or at least less than an epsilon value like 1e-30), then we just return the default value of ARSL1K=1d-3. The IF statement within function arsl1k.f should be modified accordingly:
    !----------------------------------------------------------------------
    ! Prior to 12/3/09:
    ! Also check other values to avoid div-by-zero errors (bmy, 12/3/09)
    !IF ( AREA < 0d0 .or. RADIUS < 1d-30 ) THEN
    !----------------------------------------------------------------------
    IF ( AREA < 0d0   .or. DENAIR < 1d-30 .or. RADIUS < 1d-30  .or.
   &     SQM  < 1d-30 .or. STK    < 1d-30 .or. STKCF  < 1d-30 ) THEN

       ! Use default value if any of the above values are zero
       ! This will prevent div-by-zero errors in the eqns below
       ARSL1K = 1.D-3

    ELSE

       ! DFKG = Gas phase diffusion coeff [cm2/s] (order of 0.1)
       DFKG  = 9.45D17/DENAIR * STK * SQRT(3.472D-2 + 1.D0/(SQM*SQM))

       ! Compute ARSL1K according to the formula listed above
       ARSL1K = AREA / ( RADIUS/DFKG + 2.749064E-4*SQM/(STKCF*STK) )

    ENDIF 
The SunStudio compiler checks for NaN, div-by-zero, overflow, underflow, etc. errors when you use the -fast optimization option. The IFORT compiler will not check for these automatically (you can set a compiler switch to invoke this checking).
Long story short: The best defense against bugs like these is to always be careful when writing divisions, and to make sure that the denominator can never be zero (or if it can be zero, to avoid doing the division in the first place).

--Bob Y. 17:01, 3 December 2009 (EST)

Question about default return value

Barron Henderson wrote:

In the ARSL1K routine, you provide a default value if any of the inputs are zero. The intent of the default value is to prevent div by zero errors. The default value in the Git repository is currently set to 1e-3, which seems extraordinarily large. I noticed the problem when I tested the routine with area and radius set to 0. With zeros, the surface catalyzed reactions should be very minimal. The default value, however, is extremely large relative to other gas-phase reaction coefficients. As a result, the heterogeneous reactions dominate.
My example condition (area = 0; radius=0) probably never occurs in a 3-D GEOS-Chem simulation, so I don't suspect the default is ever used. I am simply exploring the use of such calculations in another framework. In my test case, a default of 1e-30 seems more appropriate and I wonder if this could be a typo.

Bob Yantosca wrote:

I think the 1d-3 value may have come from Isabelle Bey et al back in the early 2000’s. Unfortunately, we didn’t seem to document that. I didn’t know what the scientific justification for the 1d-3 was, so I left it as-is when I made the fix described above. Maybe it is time to re-investigate what the proper return value should be.

--Bob Y. 15:11, 22 April 2011 (EDT)

Fix for diagnostic arrays in TPCORE

NOTE: We are phasing out binary punch diagnostics output, in favor of netCDF output.

The following previously-reported error:

We found that passing unallocated ND24/25/26 (mass flux) arrays into TPCORE can cause a run to crash. It happened with a modified version of tagged CO simulation in GC v8-01-04 that uses Flambe emissions and was running at 2x2.5 and on multiple processors. Since the mass flux arrays are not optional but intent(inout) for TPCORE, they should be allocated even if they are not used, i.e. even if the diagnostic are turned off.
A general fix that allocates these arrays but lets you turn off the output diagnostic will be in the next GC version (scheduled to be v8-02-01). Meanwhile we strongly advise users to **always** switch on the ND24/25/26 mass flux in their input.geos.
--phs 10:40, 2 April 2009 (EDT)

has now been resolved in GEOS-Chem v8-02-04.

If the ND24, ND25, or ND26 diagnostics are turned off, we simply allocate the MASSFLEW, MASSFLNS, and MASSFLUP arrays using dimensions of 1. This allocates a minimum amount of storage for the arrays, which is enough to prevent the above-described error.

In subroutine ndxx_setup.f, we now have the following IF statement for the ND24 diagnostic:

     !=================================================================
     ! ND24: Eastward mass flux from transport [kg/s] 
     !       --> uses MASSFLEW array (allocatable)
     !=================================================================
     IF ( ND24 > 0 ) THEN
        LD24 = MIN( ND24, LLPAR )
        NMAX = MIN( N_TRACERS, NNPAR )
     
        ALLOCATE( MASSFLEW( IIPAR, JJPAR, LLPAR, NMAX ), STAT=AS) 
        IF ( AS /= 0 ) CALL ALLOC_ERR( 'MASSFLEW' )
     ELSE
        ALLOCATE( MASSFLEW( 1, 1, 1, 1 ), STAT=AS) 
        IF ( AS /= 0 ) CALL ALLOC_ERR( 'MASSFLEW' )
     ENDIF

along with similar IF statements for ND25 and ND26 diagnostics.

--Bob Y. 10:08, 12 January 2010 (EST)

MEGAN now uses MODIS LAI by default

We have now put a trap in GEOS-Chem such that the MODIS LAI product will be selected by default if the MEGAN v2.1 biogenic emissions are used. Please see the full discussion on the MEGAN biogenic emisisons wiki page.

--Bob Y. 16:05, 23 February 2010 (EST)

Outstanding issues not yet resolved in v8-02-04

Miscellany

The following issues will be resolved in GEOS-Chem v8-03-01:

Also users should note that there is a jump in emissions totals over Asia from 2005 to 2006. This has been traced to the REAS inventory from which the anthropogenic scale factors were derived. We are currently looking into the problem.

--Bob Y. 16:06, 23 February 2010 (EST)

Bug in READ_ANTHRO_NH3

Obsolete.jpg

Routine READ_ANTHRO_NH3 was removed from GEOS-Chem v10-01 and newer versions. NH3 emissions are now implemented via the HEMCO emissions component.

This bug was found after the release of v8-02-04:

Daven Henze wrote:

I found a small bug in subroutine READ_ANTHRO_NH3 in sulfate_mod.f. It is present in v8-02-04 of the code, as well as earlier versions (not sure how far back, but at least GEOS-Chem v8-02-01).
The variable STREETS needs to be declared thread private. Otherwise you can get some randomly changing NH3 emissions in Asia. I recommend anybody who's doing sulfate aerosol simulations over that area and using LSTREETS to update immediately.
   !$OMP PARALLEL DO
   !$OMP+DEFAULT( SHARED )
   !------------------------------------------------------------
   ! Prior to 3/5/10:
   ! STREETS needs to be held PRIVATE (dkh, bmy, 3/5/10)
   !!$OMP+PRIVATE( I, J )
   !------------------------------------------------------------
   !$OMP+PRIVATE( I, J, STREETS )

         DO J = 1, JJPAR
         DO I = 1, IIPAR
            etc ...

We recommend all users to add this patch. You may either make the above change in your own code, or download a patched version of sulfate_mod.f from:

   ftp ftp.as.harvard.edu
   get pub/geos-chem/patches/v8-02-04/sulfate_mod.f

This patch will be standardized in GEOS-Chem v8-03-01.

Also note, the recent 1-year benchmarks for v8-02-04 were done without this fix.

--Bob Y. 10:18, 5 March 2010 (EST)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Bug in GET_EMMONOT_MEGAN

Obsolete.jpg

In GEOS-Chem v10-01 and higher versions, the MEGAN biogenic emissions are now handled by HEMCO.

Please see this post on our MEGAN v2.1 biogenic emissions wiki page for a full description of the issue.

--Bob Y. 16:26, 25 February 2015 (EST)
--Bob Yantosca (talk) 17:46, 15 November 2017 (UTC)

Bug with AEF_SPARE in megan_mod.f

Obsolete.jpg

In GEOS-Chem v10-01 and higher versions, the MEGAN biogenic emissions are now handled by HEMCO.

Please see this post on our MEGAN v2.1 biogenic emissions wiki page for a full description of the issue.

--Bob Y. 16:27, 25 February 2015 (EST)