Difference between revisions of "GEOS-Chem v8-02-04"
(→Run0) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 136: | Line 136: | ||
|} | |} | ||
− | + | ||
+ | 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 | 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 190: | Line 192: | ||
|} | |} | ||
− | + | ||
+ | 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 | 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 === | === Discussion === | ||
Line 239: | Line 243: | ||
=== Bug fix for EMEP ship emissions === | === Bug fix for EMEP ship emissions === | ||
+ | |||
+ | [[Image:Obsolete.jpg]] | ||
<span style="color:red">'''''NOTE: All emissions are handled by [[HEMCO]] in [[GEOS-Chem v10-01]] and higher versions.'''''</span> | <span style="color:red">'''''NOTE: All emissions are handled by [[HEMCO]] in [[GEOS-Chem v10-01]] and higher versions.'''''</span> | ||
Line 244: | Line 250: | ||
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. | 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. | ||
− | --[[User:Bmy|Bob Y.]] 12:09, 20 December 2012 (EST) | + | --[[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) |
=== Minor fix for molecular weights in drydep_mod.f === | === Minor fix for molecular weights in drydep_mod.f === | ||
+ | |||
+ | [[Image:Obsolete.jpg]] | ||
<span style="color:red">'''''NOTE: This code was removed from [[GEOS-Chem v11-01#v11-01e|v11-01e]] and higher versions. Molecular weights for each dry deposition species are now stored a central location (the [[GEOS-Chem species database]]).'''''</span> | <span style="color:red">'''''NOTE: This code was removed from [[GEOS-Chem v11-01#v11-01e|v11-01e]] and higher versions. Molecular weights for each dry deposition species are now stored a central location (the [[GEOS-Chem species database]]).'''''</span> | ||
Line 281: | 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 === | ||
+ | |||
+ | [[Image:Obsolete.jpg]] | ||
<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> | <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> | ||
Line 297: | Line 307: | ||
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 === | ||
Line 332: | Line 342: | ||
==== Updates to the sea-salt emissions scheme ==== | ==== Updates to the sea-salt emissions scheme ==== | ||
+ | |||
+ | [[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> | <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> | ||
Line 390: | Line 402: | ||
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. | 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 ==== | ||
Line 423: | Line 435: | ||
=== 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 === | ||
+ | |||
+ | [[Image:Obsolete.jpg]] | ||
<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> | <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> | ||
Line 461: | 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) === | ||
− | <span style="color:darkorange">'''''NOTE: We are phasing out binary punch diagnostics output | + | <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. | 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. | ||
Line 501: | Line 515: | ||
=== Div-by-zero error encountered in arsl1k.f === | === Div-by-zero error encountered in arsl1k.f === | ||
− | <span style="color:darkorange">'''''NOTE: This code | + | [[Image:Obsolete.jpg]] |
+ | |||
+ | <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:''''' | '''''[mailto:yantosca@seas.harvard.edu Bob Yantosca] wrote:''''' | ||
Line 595: | Line 611: | ||
=== 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 | + | <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 652: | Line 668: | ||
=== Bug in READ_ANTHRO_NH3 === | === 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> | <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> | ||
Line 685: | Line 703: | ||
Also note, the recent [[#1-year benchmark simulations|1-year benchmarks for v8-02-04]] were done without this fix. | 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) | + | --[[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 === | === 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> | <span style="color:red">'''''In [[GEOS-Chem v10-01]] and higher versions, the MEGAN biogenic emissions are now handled by [[HEMCO]].'''''</span> | ||
Line 693: | Line 713: | ||
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. | 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) | + | --[[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 === | === 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> | <span style="color:red">'''''In [[GEOS-Chem v10-01]] and higher versions, the MEGAN biogenic emissions are now handled by [[HEMCO]].'''''</span> |
Latest revision as of 17:46, 15 November 2017
Contents
- 1 Overview
- 2 1-year benchmark simulations
- 3 Previous issues now resolved in v8-02-04
- 3.1 KPP treating dead species as active species
- 3.2 Memory issue with KPP
- 3.3 Updated reactions in sulfate_mod.f
- 3.4 Bug fix for EMEP ship emissions
- 3.5 Minor fix for molecular weights in drydep_mod.f
- 3.6 Bug fix in biomass_mod.f
- 3.7 Minor bug fix in gamap_mod.f
- 3.8 Fixes and updates in seasalt_mod.f
- 3.9 Bug fix in emfossil.f for 0.5 x 0.666 nested grid tagged-CO option
- 3.10 Bug fix in DIAG20 (diag_pl_mod.f)
- 3.11 Div-by-zero error encountered in arsl1k.f
- 3.12 Fix for diagnostic arrays in TPCORE
- 3.13 MEGAN now uses MODIS LAI by default
- 4 Outstanding issues not yet resolved in v8-02-04
Overview
BETA RELEASE -- 24 Feb 2010
- Previous version: GEOS-Chem v8-02-03
- Next version: GEOS-Chem v8-03-01
What's new in this version
Contain everything in GEOS-Chem v8-02-03, plus:
- LINOZ stratospheric ozone chemistry (Dylan Jones group @ U. Toronto)
- Updated inventory of volcanic SO2 emissions from AeroCom (J. Fisher)
- EPA/NEI2005 regional emissions inventory for North America (P. Le Sager, A. van Donkelaar)
- Update to near-IR photolysis of HNO4 (J. Mao)
- MEGAN v2.1 biogenic emissions (M. Barkley)
- 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:
- In CHEM_DMS, definition of RK2.
- 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
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
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
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 theBIOMASS
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 theBIOMASS
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
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
inseasalt_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
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. Inemfossil.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
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 withincalcrate.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 functionarsl1k.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:
- Fix for initialization of EMEP ship emissions
- Bug fix in AVGPOLE
- Bug fix in EMITHIGH (carbon_mod.f)
- Fix to prevent numerical overflow in EXP function
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
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
insulfate_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
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
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)