Difference between revisions of "GEOS-Chem v11-01"
(→Print message to log file if OpenMP parallelization is turned off) |
(→Previous issues now resolved in GEOS-Chem v11-01) |
||
(49 intermediate revisions by 3 users not shown) | |||
Line 14: | Line 14: | ||
|[[GEOS-Chem v10-01]] | |[[GEOS-Chem v10-01]] | ||
|bgcolor="#CCFFFF"|'''GEOS-Chem v11-01''' | |bgcolor="#CCFFFF"|'''GEOS-Chem v11-01''' | ||
− | |[[GEOS-Chem v11-02]] | + | |[[GEOS-Chem_v11-02#GEOS-Chem_v11-02-final_.28aka_12.0.0.29|GEOS-Chem 12.0.0<br>(aka v11-02-final)]] |
|-valign="top" align="center" | |-valign="top" align="center" | ||
− | | | + | |Released 17 Jun 2015 |
− | |bgcolor="#CCFFFF"|''' | + | |bgcolor="#CCFFFF"|'''Released 01 Feb 2017''' |
− | | | + | |Released 10 Aug 2018 |
|-valign="top" align="center" | |-valign="top" align="center" | ||
Line 29: | Line 29: | ||
|[[Timing tests with GEOS-Chem v10-01|View v10-01 performance results]] | |[[Timing tests with GEOS-Chem v10-01|View v10-01 performance results]] | ||
|bgcolor="#CCFFFF"|'''[[Timing tests with GEOS-Chem v11-01|View v11-01 performance results]]''' | |bgcolor="#CCFFFF"|'''[[Timing tests with GEOS-Chem v11-01|View v11-01 performance results]]''' | ||
− | | | + | |[[Timing_tests_with_GEOS-Chem_12.0.0|View GC 12.0.0 performance results]] |
|} | |} | ||
Line 218: | Line 218: | ||
|-valign="top" | |-valign="top" | ||
− | |[[Mercury# | + | |[[Mercury#Hg_ocean_rate_coefficients_.28option.29|Hg Ocean rate coefficients]] (as an option, not default) |
|Science | |Science | ||
|Shaojie Song (MIT) | |Shaojie Song (MIT) | ||
Line 631: | Line 631: | ||
|-valign="top" | |-valign="top" | ||
− | + | |Updates for High Performance GEOS-Chem (GCHP) Dev release, includes: | |
*[[HEMCO#IFORT_13.2FIFORT_14_segmentation_fault_error|Prevent segmentation fault in HEMCO that can happen with Intel Fortran Compiler v12 or newer]] | *[[HEMCO#IFORT_13.2FIFORT_14_segmentation_fault_error|Prevent segmentation fault in HEMCO that can happen with Intel Fortran Compiler v12 or newer]] | ||
|Structural &<br>Bug fix | |Structural &<br>Bug fix | ||
Line 896: | Line 896: | ||
After the [[#v11-01k|v11-01k]] benchmarks were approved, the [[GEOS-Chem Support Team]] issued a '''v11-01 provisional release''' on '''20 Dec 2016'''. GEOS-Chem users are invited to download and run v11-01 on their systems and report any bugs, technical issues, or errors/omissions in the documentation (including code comments, GEOS-Chem manual, and GEOS-Chem wiki) to the GCST. The v11-01 provisional release evaluation period is expected to last until '''01 Feb 2017'''. | After the [[#v11-01k|v11-01k]] benchmarks were approved, the [[GEOS-Chem Support Team]] issued a '''v11-01 provisional release''' on '''20 Dec 2016'''. GEOS-Chem users are invited to download and run v11-01 on their systems and report any bugs, technical issues, or errors/omissions in the documentation (including code comments, GEOS-Chem manual, and GEOS-Chem wiki) to the GCST. The v11-01 provisional release evaluation period is expected to last until '''01 Feb 2017'''. | ||
+ | |||
+ | An unofficial benchmark simulation was performed for v11-01 provisional release. Please see the following link for complete information: | ||
+ | #[[GEOS-Chem_v11-01_benchmark_history#v11-01 provisional release|''Approval form for 1-month benchmark simulation v11-01 provisional release'']] | ||
The following updates were added to the v11-01 provisional release: | The following updates were added to the v11-01 provisional release: | ||
Line 931: | Line 934: | ||
The [[GEOS-Chem Support Team]] will officially release v11-01 (expected date: '''01 Feb 2017''') once all of the issues identified during the provisional release evaluation period (about 1 month) have been resolved. | The [[GEOS-Chem Support Team]] will officially release v11-01 (expected date: '''01 Feb 2017''') once all of the issues identified during the provisional release evaluation period (about 1 month) have been resolved. | ||
+ | |||
+ | Unofficial benchmark simulations were performed for v11-01 public release. Please see the following links for complete information: | ||
+ | #[[GEOS-Chem_v11-01_benchmark_history#v11-01 public release|''Approval form for 1-month benchmark simulation v11-01 public release'']] | ||
+ | #[[GEOS-Chem_v11-01_benchmark_history#v11-01-public-Run0|''Results for 1-year benchmark simulation v11-01-public-Run0'']] | ||
The following updates were added to GEOS-Chem during the v11-01 provisional release evaluation period, and will ship with the v11-01 public release: | The following updates were added to GEOS-Chem during the v11-01 provisional release evaluation period, and will ship with the v11-01 public release: | ||
Line 945: | Line 952: | ||
|Bug fix | |Bug fix | ||
|Seb Eastham (Harvard)<br>[[GCST]] | |Seb Eastham (Harvard)<br>[[GCST]] | ||
− | | | + | |Approved 31 Jan 2017 |
− | + | ||
|-valign="top" | |-valign="top" | ||
Line 953: | Line 959: | ||
|Seb Eastham (Harvard)<br>[[GCST]] | |Seb Eastham (Harvard)<br>[[GCST]] | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 960: | Line 965: | ||
|Bob Yantosca ([[GCST]]) | |Bob Yantosca ([[GCST]]) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 967: | Line 971: | ||
|Bob Yantosca ([[GCST]]) | |Bob Yantosca ([[GCST]]) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 974: | Line 977: | ||
|Melissa Sulprizio ([[GCST]]) | |Melissa Sulprizio ([[GCST]]) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 981: | Line 983: | ||
|Seb Eastham (Harvard)<br>[[GCST]] | |Seb Eastham (Harvard)<br>[[GCST]] | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 988: | Line 989: | ||
|Seb Eastham (Harvard) | |Seb Eastham (Harvard) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 995: | Line 995: | ||
|Christoph Keller (NASA/GSFC)<br>Seb Eastham (Harvard) | |Christoph Keller (NASA/GSFC)<br>Seb Eastham (Harvard) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 1,002: | Line 1,001: | ||
|Bob Yantosca [[GCST]] | |Bob Yantosca [[GCST]] | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 1,009: | Line 1,007: | ||
|Chris Holmes (Florida State) | |Chris Holmes (Florida State) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
Line 1,016: | Line 1,013: | ||
|Prasad Kasibhatla (Duke) | |Prasad Kasibhatla (Duke) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
− | |Print message to log file if OpenMP parallelization is turned off | + | |[[#Print message to log file if OpenMP parallelization is turned off|Print message to log file if OpenMP parallelization is turned off]] |
|Structural | |Structural | ||
|Melissa Sulprizio ([[GCST]]) | |Melissa Sulprizio ([[GCST]]) | ||
| | | | ||
− | |||
|-valign="top" | |-valign="top" | ||
− | |Fix incorrect unit strings for ND65 diagnostic in <tt>diag3.F</tt> | + | |[[#Fix incorrect unit strings for ND65 diagnostic in diag3.F|Fix incorrect unit strings for ND65 diagnostic in <tt>diag3.F</tt>]] |
|Bug fix | |Bug fix | ||
|Chris Holmes (Florida State)<br>Melissa Sulprizio ([[GCST]]) | |Chris Holmes (Florida State)<br>Melissa Sulprizio ([[GCST]]) | ||
| | | | ||
− | + | ||
+ | |-valign="top" | ||
+ | |[[GEOS-Chem_Output_Files#Improve_write_speed_of_netCDF_output_files|Improve write speed of netCDF output files]] | ||
+ | |Structural | ||
+ | |Chris Holmes (Florida State) | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |[[GEOS-Chem_Output_Files#GAMAP_can_now_read_GEOS-Chem_restart_files_in_netCDF_format|GAMAP can now read GEOS-Chem restart files in netCDF format]] | ||
+ | |Structural | ||
+ | |Bob Yantosca ([[GCST]]) | ||
+ | | | ||
+ | |||
+ | |-valign="top" | ||
+ | |[[#Minor fix for ND68 entries in tracerinfo.dat|Minor fix for ND68 entries in <tt>tracerinfo.dat</tt>]] | ||
+ | |Bug fix | ||
+ | |Melissa Sulprizio ([[GCST]]) | ||
+ | | | ||
|} | |} | ||
− | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) | + | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:35, 30 January 2017 (UTC) |
=== New data directories === | === New data directories === | ||
Line 1,079: | Line 1,091: | ||
|-valign="top" | |-valign="top" | ||
|Masks | |Masks | ||
− | |New | + | |New files: |
− | [[EMEP_European_anthropogenic_emissions#Zero_EMEP_emissions_at_30N|Do not zero emissions at 30N]] | + | *<tt>EMEP_mask.geos.1x1.20151222.nc</tt> |
− | |[[#v11-01f|v11-01f]] | + | :[[EMEP_European_anthropogenic_emissions#Zero_EMEP_emissions_at_30N|Do not zero emissions at 30N]] |
+ | *<tt>USA_LANDMASK_NEI2011_0.1x0.1.20160921.nc</tt> | ||
+ | :[[CAC_anthropogenic_emissions#High_resolution_emissions|Do not zero Canadian and Mexican emissions]] | ||
+ | |[[#v11-01f|v11-01f]] & [[#v11-01j|v11-01j]] | ||
|<tt>ExtData/HEMCO/MASKS/v2014-07/</tt> | |<tt>ExtData/HEMCO/MASKS/v2014-07/</tt> | ||
Line 1,105: | Line 1,120: | ||
|Timezones | |Timezones | ||
|New files: | |New files: | ||
− | *<tt>timezones_1x1.edit.nc</tt> | + | *<tt>timezones_1x1.edit.nc</tt> |
− | *<tt>timezones_voronoi_1x1.nc</tt> | + | **Introduced in v11-01j |
+ | *<tt>timezones_voronoi_1x1.nc</tt> | ||
+ | **Introduced in v11-01 public release, will be the new default | ||
[[Implementation_of_HEMCO_in_GEOS-Chem#Features_added_in_v11-01j|Fix ocean values in timezones mask file]] | [[Implementation_of_HEMCO_in_GEOS-Chem#Features_added_in_v11-01j|Fix ocean values in timezones mask file]] | ||
|[[#v11-01j|v11-01j]] | |[[#v11-01j|v11-01j]] | ||
Line 1,117: | Line 1,134: | ||
|[[#v11-01j|v11-01j]] | |[[#v11-01j|v11-01j]] | ||
|<tt>ExtData/HEMCO/GMI/v2015-02/</tt> | |<tt>ExtData/HEMCO/GMI/v2015-02/</tt> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|-valign="top" | |-valign="top" | ||
Line 1,212: | Line 1,222: | ||
|[http://ftp.as.harvard.edu/gcgrid/geos-chem/unit_tests/v11-01/v11-01-provisional-release.results.html v11-01-provisional-release] | |[http://ftp.as.harvard.edu/gcgrid/geos-chem/unit_tests/v11-01/v11-01-provisional-release.results.html v11-01-provisional-release] | ||
|22 Dec 2016 | |22 Dec 2016 | ||
+ | |||
+ | |-valign="top" | ||
+ | |[http://ftp.as.harvard.edu/gcgrid/geos-chem/unit_tests/v11-01/v11-01-public-release.results.html v11-01-public-release] | ||
+ | |27 Jan 2017 | ||
|} | |} | ||
Line 1,220: | Line 1,234: | ||
The following bugs and/or technical issues have now been resolved in GEOS-Chem v11-01. Some issues are listed on other wiki pages as well. Please also see [[Bugs_and_fixes#Issues_resolved_in_GEOS-Chem_v11-01|this listing of all issues resolved v11-01]]. | The following bugs and/or technical issues have now been resolved in GEOS-Chem v11-01. Some issues are listed on other wiki pages as well. Please also see [[Bugs_and_fixes#Issues_resolved_in_GEOS-Chem_v11-01|this listing of all issues resolved v11-01]]. | ||
+ | |||
+ | === TRACEBACK=y is now the default setting === | ||
+ | |||
+ | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]]'''''</span> | ||
+ | |||
+ | [[User:Sebastian D. Eastham|Seb Eastham]] (Harvard) suggested that all GEOS-Chem simulations should use the traceback option by default. An example of traceback output generated by the [[Intel Fortran Compiler]] is shown below: | ||
+ | |||
+ | Image PC Routine Line Source | ||
+ | libifcoremt.so.5 00002B9EFA2188D3 Unknown Unknown Unknown | ||
+ | geos.mp 00000000011FCE35 regrid_a2a_mod_mp 1914 regrid_a2a_mod.F90 | ||
+ | libiomp5.so 00002B9EFB70A8A3 Unknown Unknown Unknown | ||
+ | |||
+ | The above example shows that the GEOS-Chem simulation exited abnormally at line 1914 of module <tt>regrid_a2a_mod.F90</tt>. We believe that having this information available will help GEOS-Chem users to better diagnose and report issues. | ||
+ | |||
+ | We have modified the <tt>Makefile_header.mk</tt> file in the [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]] to set the Makefile option <tt>TRACEBACK=y</tt> if it is not already passed as an argument. To disable the traceback output, you will now have to compile with <tt>TRACEBACK=n</tt>. | ||
+ | |||
+ | It should be noted that the traceback option will increase the size of the GEOS-Chem executable, but will not have any impact on execution speeds. | ||
+ | |||
+ | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 22:27, 3 January 2017 (UTC) | ||
=== Added a test for mass conservation === | === Added a test for mass conservation === | ||
Line 1,661: | Line 1,694: | ||
=== Error message output now advises users to check the HEMCO log file === | === Error message output now advises users to check the HEMCO log file === | ||
− | <span style="color: | + | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]]'''''</span> |
When a GEOS-Chem simulation dies because of an error in [[HEMCO]], the error message output now contains a line (shown in <span style="color:green">GREEN</span>) advising the user to look in the HEMCO log file for further information. | When a GEOS-Chem simulation dies because of an error in [[HEMCO]], the error message output now contains a line (shown in <span style="color:green">GREEN</span>) advising the user to look in the HEMCO log file for further information. | ||
Line 1,691: | Line 1,724: | ||
=== Fix units of O1D and O3P in ND43 diagnostic === | === Fix units of O1D and O3P in ND43 diagnostic === | ||
− | <span style="color: | + | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]]'''''</span> |
'''''Chris Holmes wrote:''''' | '''''Chris Holmes wrote:''''' | ||
Line 1,733: | Line 1,766: | ||
=== Print message to log file if OpenMP parallelization is turned off === | === Print message to log file if OpenMP parallelization is turned off === | ||
− | <span style="color: | + | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]]'''''</span> |
− | For debugging purposes, users may turn off OpenMP parallelization with the <tt>OMP=n</tt> compiler switch. When OpenMP is turned off, a C-preprocesor switch (<tt>-DNO_OMP</tt>) will be added to the compilation. This will let us check for <tt>#if defined( NO_OMP )</tt> in <tt>main.F</tt> and print a warning message to the log file if OpenMP parallization has been turned off. In this way, the user will be able to immediately tell if OpenMP parallelization has been deactivated simply by checking the top of the log file. | + | For debugging purposes, users may turn off OpenMP parallelization with the <tt>OMP=n</tt> compiler switch. When OpenMP is turned off, a C-preprocesor switch (<tt>-DNO_OMP</tt>) will be added to the compilation. This will let us check for <tt>#if defined( NO_OMP )</tt> in <tt>main.F</tt> and print a warning message to the log file if OpenMP parallization has been turned off. |
+ | |||
+ | In this way, the user will be able to immediately tell if OpenMP parallelization has been deactivated simply by checking the top of the log file. | ||
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:19, 20 January 2017 (UTC) | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:19, 20 January 2017 (UTC) | ||
+ | |||
+ | === Fix incorrect unit strings for ND65 diagnostic in diag3.F === | ||
+ | |||
+ | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]]'''''</span> | ||
+ | |||
+ | '''''[[User:Chris Holmes|Chris Holmes]] wrote:''''' | ||
+ | |||
+ | <blockquote>The ND65 P/L diagnostics are <tt>molec/cm3/s</tt>, but in <tt>GeosCore/diag3.F</tt> they are called <tt>mol/cm3/s</tt>. This is confusing because "mol" is the abbreviation for mole, not molecule. The units are correct in <tt>tracerinfo.dat</tt>, but gamap displays the incorrect units from the bpch file.</blockquote> | ||
+ | |||
+ | This inconsistency also applied to ND29. In <tt>GeosCore/gamap_mod.F</tt>, the units for ND29 are defined as <tt>molec/cm3/s</tt>, but in <tt>GeosCore/diag3.F</tt> they were <tt>mol/cm3/s</tt>. This has now been fixed so that both files use <tt>molec/cm3/s</tt>. | ||
+ | |||
+ | Also note: The binary punch diagnostics are slated to be removed soon, probably in [[GEOS-Chem v11-02]]. | ||
+ | |||
+ | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 17:25, 20 January 2017 (UTC) | ||
+ | |||
+ | === Minor fix for ND68 entries in tracerinfo.dat === | ||
+ | |||
+ | <span style="color:green">'''''This update was included in [[GEOS-Chem v11-01#v11-01 public release|GEOS-Chem v11-01 public release]]'''''</span> | ||
+ | |||
+ | In [[#v11-01g|GEOS-Chem v11-01g]], the [[List_of_diagnostics_for_v11-01#ND68:_Air_mass_and_related_quantities|ND68 air mass and related quantities diagnostic]] was updated to reduce the number of fields from 13 to 8. The code in <tt>INIT_TRACERINFO</tt> (in <tt>GeosCore/gamap_mod.F</tt>) and the comments in <tt>GeosCore/diag3.F</tt> are now updated to reflect that ND68 now only includes: | ||
+ | |||
+ | 1: BXHEIGHT - box height [m] | ||
+ | 2: AD - dry air mass [kg] | ||
+ | 3: AVGW - mol H2O / mol dry air [v/v] | ||
+ | 4: AIRNUMDEN - dry air number density [molecules/m3] | ||
+ | 5: T - temperature [K] | ||
+ | 6: PMID - arithmetic mean pressure [hPa] | ||
+ | 7: PEDGE - level pressure (bottom edge) [hPa] | ||
+ | 8: RH - relative humidity [%] | ||
+ | |||
+ | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:33, 30 January 2017 (UTC) | ||
== Outstanding issues not yet resolved in GEOS-Chem v11-01 == | == Outstanding issues not yet resolved in GEOS-Chem v11-01 == | ||
Line 1,748: | Line 1,814: | ||
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:22, 20 April 2016 (UTC) | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:22, 20 April 2016 (UTC) | ||
+ | |||
+ | === Error in production of SO4s and NITs in SEASALT_CHEM === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | Prasad Kasibhatla reported an issue in the production of SO4 and NITs in routine <tt>SEASALT_CHEM</tt> (in <tt>GeosCore/sulfate_mod.F</tt>) due to a unit conversion error. For a complete description of the issue and the proposed solution, see [[Sulfate_aerosols#Fix_error_in_production_of_SO4s.2C_NITs_in_SEASALT_CHEM_routine|this post on our ''Sulfate aerosols'' wiki page]]. | ||
+ | |||
+ | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 19:19, 1 February 2017 (UTC) | ||
+ | |||
+ | === Bug in nitrate uptake on fine sea salt === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | Prasad Kasibhatla discovered nitrate uptake on fine sea salt is only done in the PBL, but should be done throughout the troposphere. For a complete description of the issue and the proposed solution, see [[Sulfate_aerosols#Fix_bug_in_CHEM_NIT_routine|this post on our ''Sulfate aerosols'' wiki page]]. | ||
+ | |||
+ | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 19:19, 1 February 2017 (UTC) | ||
+ | |||
+ | === ALK4 lumping issue === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | Barron Henderson noted a lumping issue for ALK4. For a complete description of the issue and the proposed solution, see [[Chemistry_Issues#Fixes_to_correct_ALK4_lumping_issue|this post on our ''Chemistry Issues'' wiki page]]. | ||
+ | |||
+ | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 19:19, 1 February 2017 (UTC) | ||
+ | |||
+ | === Bug in sulfate production in HET_DROP_CHEM === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | Qianjie Chen identified a bug in <tt>sulfate_mod.F</tt> that results in too much sulfate produced from ozone over the ocean. For a complete description of the issue and the proposed solution, see [[Sulfate_aerosols#Fix_for_sulfate_production_in_HET_DROP_CHEM|this post on our ''Sulfate aerosols'' wiki page]]. | ||
+ | |||
+ | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 17:37, 2 February 2017 (UTC) | ||
+ | |||
+ | === Computational bottleneck in the convection module === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | After the [[#v11-01 public release|v11-01 public release]] was issued, the [[GCST]] discovered a computational bottleneck in the convection module. For more information about this issue, please see [[Cloud_convection#Computational_bottleneck_in_the_v11-01_convection_module|this post on our ''Cloud convection'' wiki page]]. | ||
+ | |||
+ | --[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 22:11, 8 February 2017 (UTC) | ||
+ | |||
+ | === Bug in cos(SZA) for start of timestep === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | After the [[#v11-01 public release|v11-01 public release]] was issued, Lizzie Lundgren ([[GCST]]) discovered a bug in the computation of the cosine of the solar zenith angle for the start of the current timestep. This value is stored in <tt>State_Met%suncos</tt>. Instead of using the start time of the current timestep for the calculation, the model always used the current hour. The cos(SZA) for the mid-point of the timestep, stored as <tt>State_Met%suncosmid</tt>, is unaffected. | ||
+ | |||
+ | --[[User:Lizzie Lundgren|Lizzie Lundgren]] ([[User talk:Lizzie Lundgren|talk]]) 15:17, 13 March 2017 (UTC) | ||
+ | |||
+ | === Bugs in convective flux diagnostics (ND14) === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | After the [[#v11-01 public release|v11-01 public release]] was issued, Prasad Kasibhatla (Duke) discovered unexpected behavior when enabling the convective mass flux diagnostics (ND14) in the standard simulation using GEOS-FP. The [[GCST]] then identified two bugs in the source code for ND14 in [[#v11-01 public release|v11-01 public release]]. Please make the following two updates to correct the issue if using ND14 with GEOS-FP, MERRA, or MERRA2 met-fields: | ||
+ | |||
+ | Around line 420: | ||
+ | !-------------------------- | ||
+ | ! ND14 diagnostic [kg/s] | ||
+ | !-------------------------- | ||
+ | IF ( DO_ND14 ) THEN | ||
+ | |||
+ | ! Loop over only the soluble species | ||
+ | DO NW = 1, State_Chm%nWetDep | ||
+ | |||
+ | ! Get the species ID From the wetdep ID | ||
+ | <span style="color:red">N = State_Chm%Map_Advect(NA) </span><span style="color:blue"> ---> CHANGE TO: </span><span style="color:green">N = State_Chm%Map_Wetdep(NW)</span> | ||
+ | |||
+ | ! Archive diagnostic | ||
+ | DO L = 1, LD14 | ||
+ | CONVFLUP(I,J,L,N) = CONVFLUP(I,J,L,N) + DIAG14(L,NW) | ||
+ | ENDDO | ||
+ | ENDDO | ||
+ | |||
+ | Around line 2731: | ||
+ | !-------------------------------------------------------------- | ||
+ | ! (3.3) N D 1 4 D i a g n o s t i c | ||
+ | ! | ||
+ | ! Archive upward mass flux due to wet convection | ||
+ | ! [kg/sec] in the box (I,J), for the species IC going out | ||
+ | ! of the top of the layer K to the layer above (K+1) | ||
+ | ! (bey, 11/10/99). We must divide by DNS, the # of internal | ||
+ | ! timesteps so that the sum represents the average loss rate | ||
+ | ! across all internal timesteps. | ||
+ | !------------------------------------------------------------ | ||
+ | <span style="color:red">IF ( USE_DIAG14 ) THEN </span><span style="color:blue">---> CHANGE TO: </span><span style="color:green">IF ( USE_DIAG14 .and. NW > 0 ) THEN</span> | ||
+ | DIAG14(K,NW) = | ||
+ | & DIAG14(K,NW) + ( -T2-T3 ) * AREA_M2 / DNS | ||
+ | ENDIF | ||
+ | |||
+ | --[[User:Lizzie Lundgren|Lizzie Lundgren]] ([[User talk:Lizzie Lundgren|talk]]) 15:26, 15 March 2017 (UTC) | ||
+ | |||
+ | === P(OH) not saved out in ND22 diagnostic === | ||
+ | |||
+ | <span style="color:green">'''''This fix was included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span> | ||
+ | |||
+ | Prasad Kasibhatla pointed out that production of OH from O3 photolysis (index 6) in the ND22 diagnostic is saved out as all zeroes in [[GEOS-Chem v11-01]]. This diagnostic quantity is only saved out for the tropchem and SOA mechanisms (i.e. simulations that do not use UCX). In the Standard and UCX mechanisms, J(O3P) is saved out for index 6 of ND22. The P(OH) quantity was deactivated during the implementation of [[FlexChem]] and was not restored. This will be corrected in [[GEOS-Chem v11-02]]. To restore P(OH) from O3 photolysis in ND22, add the following lines (in <span style="color:green">green</span>) to routine <tt>PHOTRATE_ADJ</tt> in <tt>fast_jx_mod.F</tt>: | ||
+ | |||
+ | ! Prevent div-by-zero | ||
+ | IF ( RO1D > 0.0_fp ) THEN | ||
+ | |||
+ | ! RXN_O3_2a specifies: O3 + hv -> O2 + O(1D) #1 | ||
+ | ZPJ(L,RXN_O3_2a,I,J) = ZPJ(L,RXN_O3_2a,I,J) * RO1DplH2O / RO1D | ||
+ | |||
+ | ! RXN_O3_2b specifies: O3 + hv -> O2 + O(1D) #2 | ||
+ | ZPJ(L,RXN_O3_2b,I,J) = ZPJ(L,RXN_O3_2b,I,J) * RO1DplH2 / RO1D | ||
+ | |||
+ | ENDIF | ||
+ | |||
+ | <span style="color:green">! Store P(OH) from O3 photolysis as AD22(:,:,:,6) | ||
+ | IF ( ND22 > 0 ) THEN | ||
+ | IF ( L <= LD22 .and. LTJV(I,J) > 0 ) THEN | ||
+ | AD22(I,J,L,6) = AD22(I,J,L,6) + | ||
+ | & ZPJ(L,RXN_O3_2a,I,J) + | ||
+ | & ZPJ(L,RXN_O3_2b,I,J) | ||
+ | ENDIF | ||
+ | ENDIF</span> | ||
+ | |||
+ | #endif | ||
+ | |||
+ | END SUBROUTINE PHOTRATE_ADJ | ||
+ | |||
+ | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 14:32, 16 March 2017 (UTC) | ||
+ | |||
+ | === Planeflight diagnostic is disabled for full-chemistry simulations === | ||
+ | |||
+ | <span style="color:darkorange">'''''NOTE: The planeflight diagnostics will be overhauled in [[GEOS-Chem v11-02|v11-02]].'''''</span> | ||
+ | |||
+ | '''''Lee murray wrote:''''' | ||
+ | |||
+ | <blockquote>I think the [[FlexChem]] implementation accidentally disabled the planeflight diagnostic for the full chemistry simulation. We used to initialize the planeflight diagnostic in <tt>chemdr.F</tt> for full chemistry simulations (now no more) and all the other versions in <tt>main.F</tt>.</blockquote> | ||
+ | |||
+ | <blockquote>We should change <tt>main.F</tt> to always call <tt>SETUP_PLANEFLIGHT</tt> whenever the diagnostic is turned on.</blockquote> | ||
+ | |||
+ | ! Plane following diagnostic | ||
+ | IF ( ND40 > 0 .and. DO_DIAG_WRITE ) THEN | ||
+ | |||
+ | ! Call SETUP_PLANEFLIGHT routine if necessary | ||
+ | IF ( ITS_A_NEW_DAY() ) THEN | ||
+ | |||
+ | <span style="color:red">! ! If it's a full-chemistry simulation but LCHEM=F, | ||
+ | ! ! or if it's an offline simulation, call setup routine | ||
+ | ! IF ( ITS_A_FULLCHEM_SIM ) THEN | ||
+ | ! IF ( .not. LCHEM ) THEN | ||
+ | ! CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, | ||
+ | ! & State_Chm, RC ) | ||
+ | ! ENDIF | ||
+ | ! ELSE | ||
+ | ! CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, | ||
+ | ! & State_Chm, RC ) | ||
+ | ! ENDIF</span> | ||
+ | |||
+ | <span style="color:green">CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, State_Chm, RC )</span> | ||
+ | |||
+ | ENDIF | ||
+ | ENDIF | ||
+ | |||
+ | --[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 19:55, 8 May 2017 (UTC) |
Latest revision as of 21:57, 20 December 2019
Contents
- 1 Overview
- 2 Validation
- 3 Previous issues now resolved in GEOS-Chem v11-01
- 3.1 TRACEBACK=y is now the default setting
- 3.2 Added a test for mass conservation
- 3.3 Prevent negative tracer concentrations after advection
- 3.4 Update of PMN + O3 reaction products in globchem.dat file
- 3.5 Modifications to ND20 to archive afternoon P(O3) and L(O3)
- 3.6 Bug fixes for the ND21 diagnostic
- 3.7 Bug fix for custom grid in tpcore_bc_mod.F
- 3.8 Mercury simulation inconsistently failing optimization unit tests in v11-01c
- 3.9 Do not nullify local pointers in the same line where they are declared
- 3.10 J-values are doubled for O(1D) and O(3P) in ND22 diagnostic output
- 3.11 Incorrect incorporation of moisture in GEOS-Chem air quantities
- 3.12 Bug fixes for the dry deposition flux diagnostic
- 3.13 Fix molecular weight of N2O5
- 3.14 Prevent errors caused by uninitialized fields of the State_Met object
- 3.15 Allocate aerosol fields of State_Chm only for full-chemistry or aerosol-only simulations
- 3.16 Rename grid_mod.F90 to gc_grid_mod.F90
- 3.17 Error message output now advises users to check the HEMCO log file
- 3.18 Fix units of O1D and O3P in ND43 diagnostic
- 3.19 Print message to log file if OpenMP parallelization is turned off
- 3.20 Fix incorrect unit strings for ND65 diagnostic in diag3.F
- 3.21 Minor fix for ND68 entries in tracerinfo.dat
- 4 Outstanding issues not yet resolved in GEOS-Chem v11-01
- 4.1 Cause of negative tracer concentrations at the poles is unknown
- 4.2 Error in production of SO4s and NITs in SEASALT_CHEM
- 4.3 Bug in nitrate uptake on fine sea salt
- 4.4 ALK4 lumping issue
- 4.5 Bug in sulfate production in HET_DROP_CHEM
- 4.6 Computational bottleneck in the convection module
- 4.7 Bug in cos(SZA) for start of timestep
- 4.8 Bugs in convective flux diagnostics (ND14)
- 4.9 P(OH) not saved out in ND22 diagnostic
- 4.10 Planeflight diagnostic is disabled for full-chemistry simulations
Overview
History
The table below shows the previous, current, and successive versions of GEOS-Chem:
Previous version | This version | Next version |
---|---|---|
GEOS-Chem v10-01 | GEOS-Chem v11-01 | GEOS-Chem 12.0.0 (aka v11-02-final) |
Released 17 Jun 2015 | Released 01 Feb 2017 | Released 10 Aug 2018 |
View v10-01 benchmark history | View v11-01 benchmark history | View v11-02 benchmark history |
View v10-01 performance results | View v11-01 performance results | View GC 12.0.0 performance results |
What's new in this version
NOTE: v11-01a, v11-02b, etc. denote 1-month benchmark simulations, which are designed to evaluate GEOS-Chem's performance at intermediate stages of development.
v11-01a
Please see the the following link for complete information about the validation of GEOS-Chem v11-01a:
Feature | Type | Submitted by | Status |
---|---|---|---|
Incorporate moisture into air quantities, tracer units, and tracer unit conversions | Science & Bug fix |
Lizzie Lundgren (GEOS-Chem Support Team) | Approved 07 Jul 2015 |
Correct bug in below cloud average mixing ratio calculation in DO_MERRA_CONVECTION to improve mass balance | Bug fix | Lizzie Lundgren (GCST) | " " |
Added the capability to print out tracer masses every few hours, in order to check for mass conservation | Structural | Lizzie Lundgren (GCST) | " " |
Fix bug in RRTMG that prevents storage of O3 and CH4 RFs | Bug fix | David Ridley (MIT) Sebastian Eastham (MIT) |
" " |
Prevent negative tracer concentrations at poles after advection | Bug fix | Lizzie Lundgren (GCST) | " " |
--Bob Y. (talk) 15:23, 7 July 2015 (UTC)
v11-01b
Please see the the following links for complete information about the validation of GEOS-Chem v11-01b:
- Approval form for 1-month benchmark simulation v11-01b
- Results for 1-year benchmark simulation v11-01b-Run0
- Results for 1-year benchmark simulation v11-01b-RnPbBe
Feature | Type | Submitted by | Status |
---|---|---|---|
Update DMS climatology to Lana | Science | Tom Breider (Harvard) | 1-month benchmark: Approved on 04 Aug 2015 1-year benchmark: |
Impaction scavenging for hydrophobic BC | Science | Qiaoqiao Wang (Max Planck Institute) | " " |
Homogeneous IN removal | Science | Qiaoqiao Wang (Max Planck Institute) | " " |
Density of OA update | Science | Melanie Hammer (Dalhousie) Eloïse Marais (Harvard) |
" " |
Improved dust size distribution scheme | Science | Li Zhang (Colorado U.) Daven Henze (Colorado U.) |
" " |
Addition of BrC UV absorption to address impacts on OH
|
Science | Melanie Hammer (Dalhousie) | " " |
Acid uptake on dust aerosols
|
Science | T. Duncan Fairlie (NASA/LARC) | " " |
Now treat DST2-DST4 as coarse mode in wet scavenging | Bug fix | T. Duncan Fairlie (NASA/LARC) | " " |
Online emission of marine primary organic aerosol (POA)
|
Science | Brett Gantt (NCSU) Matthew Johnson (NASA Ames) |
" " |
Update of PMN + O3 reaction products in globchem.dat file | Bug fix | Dylan Millet (UMN) | " " |
Bug fix in RRTMG array sizes | Bug fix | Sebastian Eastham (MIT) | " " |
Bug fixes in rrtmg_rad_transfer_mod.F | Bug fix | Sebastian Eastham (MIT) David Ridley (MIT) |
" " |
Bug fix for black carbon in ucx_mod.F | Bug fix | Sebastian Eastham (MIT) | " " |
Bug fix for archiving P(Ox)/L(Ox) from full-chemistry simulations via the ND20 diagnostic | Bug fix | GEOS-Chem Support Team | " " |
Bug fix for linking files when compiling with PGI | Bug fix | GEOS-Chem Support Team | " " |
--Melissa Sulprizio (talk) 13:46, 3 August 2015 (UTC)
v11-01c
Please see the the following link for complete information about the validation of GEOS-Chem v11-01c:
Feature | Type | Submitted by | Status |
---|---|---|---|
Updates to PAH code | Science | Carey Friedman (MIT) | Approved 14 Sept 2015 |
Hg Ocean MLD bug fixes | Bug fix | Amanda Giang (MIT) | " " |
Hg Ocean rate coefficients (as an option, not default) | Science | Shaojie Song (MIT) | " " |
Hg Arctic process updates | Science | Jenny Fisher (Wollongong) | " " |
Hg emission updates (NEI2011, NPRI2011, UNEP2010 with adjustments for and emission controls) | Science | Yanxu Zhang (Harvard) Amanda Giang (MIT) |
" " |
Update CO2 files for HEMCO | Science & Bug fix | Ray Nassar (Environment Canada) | " " |
Bug fix for sea salt alkalinity in sulfate_mod.F | Bug fix | Johan Schmidt (Harvard) | " " |
Correct problem in OTD-LIS local redistribution files for GEOS-5 | Bug fix | Christoph Keller (Harvard) Lu Hu (Harvard) |
" " |
Bug fixes for the ND21 diagnostic | Bug fix | Sebastian Eastham (MIT) | " " |
Bug fix for custom nested grid in tpcore_bc_mod.F | Bug fix | Shannon Koplitz (Harvard), GCST | " " |
Bug fix for monoterpenes in ND46 diagnostic | Bug fix | Jared Brewer (CSU) | " " |
GEOS-Chem timers | Structural | Matt Yannetti (GCST) | " " |
Initial modifications for running GEOS-Chem with the GMAO MERRA-2 reanalysis met field product | Structural | Bob Yantosca (GCST) |
|
--Melissa Sulprizio (talk) 18:46, 9 September 2015 (UTC)
v11-01d
Please see the the following links below for complete information about the validation of GEOS-Chem v11-01d.
NOTE: The original v11-01d benchmark included a quick fix for low Pb tropospheric lifetime against deposition in GEOS-FP and MERRA-2. Due to the high impact on aerosols, the GEOS-Chem Steering Committee rejected the quick fix. We have subsequently removed this fix from v11-01d and performed additional 1-year benchmark simulations with the updated model.
Benchmark results for v11-01d after removal of the quick fix (Approved 12 Dec 2015):
- Results for 1-year benchmark simulation v11-01d-Run1
- Results for 1-year benchmark simulation v11-01d-RnPbBe
Benchmark results for v11-01d including the quick fix (Version not approved):
- Approval form for 1-month benchmark simulation v11-01d
- Results for 1-year benchmark simulation v11-01d-Run0
- Plots for 1-year benchmark simulation v11-01d-RnPbBe
Feature | Type | Submitted by | Status |
---|---|---|---|
CO2 direct effect on isoprene emissions | Science | Amos Tai (CUHK) | Approved 12 Dec 2015 |
Criegee intermediates | Science | Dylan Millet (U. Minnesota) Eloïse Marais (Harvard) |
" " |
Update biomass burning emissions to GFED4.1, includes:
|
Science | Prasad Kasibhatla (Duke) Christoph Keller (Harvard) |
" " |
Update implementation of optical properties for brown carbon | Science | Melanie Hammer (Dalhousie) | " " |
Species Database Phase 1:
|
Structural | GEOS-Chem Support Team | " " |
Resolve very high tracer concentrations in MERRA and GEOS-FP convective scavenging | Bug fix | Viral Shah (UW) | " " |
Bug fix for European grid range in tagged Ox simulation | Bug fix | GEOS-Chem Support Team | " "
|
Fix for reading hourly NEI2011 emissions | Bug fix | Viral Shah (UW) | " " |
Bug fix for PBLTOP and MTTOP values in tagged Ox simulation | Bug fix | GEOS-Chem Support Team | " " |
Parallelization bug fix in Online emission of marine primary organic aerosol (POA) | Bug fix | GEOS-Chem Support Team | " " |
Bug fix for offline dust aerosols when UCX is on | Bug fix | Seb Eastham (Harvard) | " " |
Quick fix for low Pb tropospheric lifetime against deposition in GEOS-FP and MERRA-2 | Science | Bo Zhang (NIA) Hongyu Liu (NIA/NASA Langley) |
This feature was removed following evaluation of the initial 1-year benchmark simulation due to a high magnitude change for aerosols. It has been added to the pipeline for incorporation into a later version after further testing. |
--Lizzie Lundgren (talk) 15:30, 2 December 2015 (UTC)
v11-01e
Please see the the following link for complete information about the validation of GEOS-Chem v11-01e:
--Bob Yantosca (talk) 18:40, 4 January 2016 (UTC)
v11-01f
Please see the the following links for complete information about the validation of GEOS-Chem v11-01f:
- Approval form for 1-month benchmark simulation v11-01f with GEOS-FP
- Approval form for 1-month benchmark simulation v11-01f with MERRA-2
- Results for 1-year Rn-Pb-Be benchmark simulations for v11-01f
- Results for 1-year benchmark simulation v11-01f-geosfp-Run0
- Results for 1-year benchmark simulation v11-01f-merra2-Run0
--Bob Yantosca (talk) 21:24, 29 March 2016 (UTC)
v11-01g
Please see the the following links for complete information about the validation of GEOS-Chem v11-01g:
- Approval form for 1-month benchmark simulation v11-01g
- Results for 1-year benchmark simulation v11-01g-Run0
Feature | Type | Submitted by | Status |
---|---|---|---|
FlexChem
|
Science | Mike Long (Harvard) GCST |
1-month benchmark Approved 14 Sep 2016 1-year benchmark |
Update 4x5 soil Hg files and Hg simulation photoreduction and soil emission coefficients | Science | Jenny Fisher (Wollongong) | " " |
Parallelization bug fixes for GEOS-5 Hg simulations | Bug fix | Bob Yantosca (GCST) | " " |
Bug fixes for HEMCO, including: | Bug fix | Christoph Keller (NASA GSFC) GCST |
" " |
NetCDF Output Phase 2:
|
Structural | Lizzie Lundgren (GCST) | " " |
Restore the tagged CO specialty simulation
|
Structural | GCST | " " |
Updates for High Performance GEOS-Chem (GCHP) Dev release, includes: | Structural & Bug fix |
Seb Eastham (Harvard) GCST |
" " |
Do not nullify local pointers in the same line where they are declared | Structural | Bob Yantosca (GCST) | " " |
Improved species indexing
|
Structural | GCST | " " |
--Melissa Sulprizio (talk) 16:59, 30 August 2016 (UTC)
v11-01h
Please see the the following links for complete information about the validation of GEOS-Chem v11-01h:
- Approval form for 1-month benchmark simulation v11-01h
- Results for 1-year benchmark simulation v11-01h-RnPbBe
Feature | Type | Submitted by | Status |
---|---|---|---|
Fix to remove moisture signature in dry mixing ratio | Bug fix | Meemong Lee (JPL) Richard Weidner (JPL) Lizzie Lundgren (GCST) Kevin Bowman (JPL) |
Approved 11 Oct 2016 |
Modifications for running nested Asia simulations with MERRA-2 | Structural | Melissa Sulprizio (GCST) | " " |
Bug fixes for the dry deposition diagnostic when using TURBDAY | Bug fix | Bo Zhang (NIA / NASA Langley) | " " |
--Melissa Sulprizio (talk) 14:14, 11 October 2016 (UTC)
v11-01i
Please see the the following links for complete information about the validation of GEOS-Chem v11-01i:
- Approval form for 1-month benchmark simulation v11-01i
- Results for 1-year benchmark simulation v11-01i-RnPbBe
Feature | Type | Submitted by | Status |
---|---|---|---|
Fix bug in GEOS-FP/MERRA/MERRA-2 re-evaporation calculation | Bug fix | Virah Shah (UW) Bo Zhang (NIA) Hongyu Liu (NIA/NASA Langley) |
Approved 19 Oct 2016 |
--Melissa Sulprizio (talk) 18:19, 14 September 2016 (UTC)
v11-01j
Please see the the following links for complete information about the validation of GEOS-Chem v11-01j:
--Melissa Sulprizio (talk) 15:40, 29 November 2016 (UTC)
v11-01k
Please see the the following links for complete information about the validation of GEOS-Chem v11-01k:
- Approval form for 1-month benchmark simulation v11-01k
- Results for 1-year benchmark simulation v11-01k-Run0
Feature | Type | Submitted by | Status |
---|---|---|---|
Lightning update based on Travis et al. (2016, ACP) and Zhang et al. (2014, ACP) | Science | Katie Travis (Harvard) | 1-month benchmark Approved 06 Dec 2016 1-year benchmark |
Updates for interfacing GEOS-Chem with the Beijing Climate Center model: | Structural | GCST | " " |
Updates to avoid allocating memory to arrays that aren't used in specialty simulations: | Structural | GCST | " " |
Prevent errors caused by uninitialized fields of the State_Met object | Bug fix | GCST | " " |
--Bob Yantosca (talk) 18:09, 7 December 2016 (UTC)
v11-01 provisional release
After the v11-01k benchmarks were approved, the GEOS-Chem Support Team issued a v11-01 provisional release on 20 Dec 2016. GEOS-Chem users are invited to download and run v11-01 on their systems and report any bugs, technical issues, or errors/omissions in the documentation (including code comments, GEOS-Chem manual, and GEOS-Chem wiki) to the GCST. The v11-01 provisional release evaluation period is expected to last until 01 Feb 2017.
An unofficial benchmark simulation was performed for v11-01 provisional release. Please see the following link for complete information:
The following updates were added to the v11-01 provisional release:
Feature | Type | Submitted by | Status |
---|---|---|---|
Remove calls to UPDATE_SUN, UPDATE_RCONST from gckpp_Integrator.F90 | Structural | GCST | Approved 20 Dec 2016 |
Add temporary fix to get TOMAS simulations to pass unit tests | Bug fix | Sal Farina (TOMAS team) GCST |
" " |
Add support for the GNU profiler (gprof) | Structural | Bob Yantosca (GCST) | " " |
--Bob Yantosca (talk) 20:02, 3 January 2017 (UTC)
v11-01 public release
The GEOS-Chem Support Team will officially release v11-01 (expected date: 01 Feb 2017) once all of the issues identified during the provisional release evaluation period (about 1 month) have been resolved.
Unofficial benchmark simulations were performed for v11-01 public release. Please see the following links for complete information:
- Approval form for 1-month benchmark simulation v11-01 public release
- Results for 1-year benchmark simulation v11-01-public-Run0
The following updates were added to GEOS-Chem during the v11-01 provisional release evaluation period, and will ship with the v11-01 public release:
--Bob Yantosca (talk) 21:35, 30 January 2017 (UTC)
New data directories
The following HEMCO data directories have been added or updated for GEOS-Chem v11-01. You will have to download the directories relevant to your simulation.
Inventory | What was added? | When added? | Directory |
---|---|---|---|
Aerocom volcano emissions | Now split into separate eruptive and degassing emissions | v11-01b | ExtData/HEMCO/VOLCANO/v2015-02/ |
DMS seawater concentrations | Update to Lana climatology | v11-01b | ExtData/HEMCO/DMS/v2015-07/ |
POPs simulation | Updates for secondary emissions and GCAP met | v11-01c | ExtData/HEMCO/POPs/v2015-08/ |
GFED4 biomass | Update to GFED v4.1 | v11-01d | ExtData/HEMCO/GFED/v2015-10/ |
MERRA-2* | Capability to drive GEOS-Chem with MERRA-2 meteorology fields | v11-01f | ExtData/GEOS_4x5/MERRA2/ ExtData/GEOS_2x2.5/MERRA2/ ExtData/GEOS_0.5x0.625/MERRA2/ ExtData/GEOS_0.5x0.625_AS/MERRA2/ ExtData/GEOS_0.5x0.625_EU/MERRA2/ ExtData/GEOS_0.5x0.625_NA/MERRA2/ |
Masks | New files:
|
v11-01f & v11-01j | ExtData/HEMCO/MASKS/v2014-07/ |
Restart files | NetCDF restart files (Moved here from the Unit Tester repo) |
v11-01f | ExtData/SPC_RESTARTS/ |
FINNv1 biomass | Data processing scripts | v11-01g | ExtData/HEMCO/FINN/preprocess/ |
CAC Canadian anthro | 0.1° x 0.1° data files | v11-01j | ExtData/HEMCO/CAC/v2016-09/ |
Timezones | New files:
|
v11-01j | ExtData/HEMCO/TIMEZONES/v2015-02/ |
GMI | New file: gmi.clim.HCOOH.geos5.2x25.20160912.nc | v11-01j | ExtData/HEMCO/GMI/v2015-02/ |
TOMS/SBUV O3 columns | Barron Henderson reprocessed TOMS/SBUV data in order to fix a strange cycle in OH output when running GEOS-Chem with GEOS-5 meteorology. | v11-01j | ExtData/HEMCO/TOMS_SBUV/v2016-11 |
Stratospheric chemistry | New file: gmi.clim.HCOOH.geos5.2x25.20170108.nc
Fixed incorrect timestamps in gmi.clim.HCOOH.geos5.2x25.20160912.nc file |
v11-01 public release | ExtData/HEMCO/GMI/v2015-02/ |
*We recommend downloading the MERRA-2 data from the Dalhousie data directory archive, where data for the complete MERRA-2 coverage period (1980-present) is stored.
--Bob Yantosca (talk) 19:45, 9 January 2017 (UTC)
Validation
In this section we provide information about the benchmarks and tests that we have done to validate GEOS-Chem v11-01.
1-month and 1-year benchmarks
For complete information about the benchmark simulations used to validate GEOS-Chem v11-01, please see our GEOS-Chem v11-01 benchmark history wiki page.
--Melissa Sulprizio 10:30, 5 May 2015 (EDT)
Unit tests for GEOS-Chem v11-01
We perform a full set of unit tests on GEOS-Chem on an almost daily basis. These tests ensure that each new feature being added does not break any existing functionality.
Here are the unit tests that we ran before submitting 1-month benchmark simulation for v11-01.. Click on the links below to see the results from each set of unit tests:
Unit test | Date |
---|---|
v11-01a | 02 Jul 2015 |
v11-01b | 29 Jul 2015 |
v11-01c | 10 Sep 2015 |
v11-01d | 02 Nov 2015 |
v11-01e | 21 Dec 2015 |
v11-01f | 03 Mar 2016 |
v11-01g | 06 Sep 2016 |
v11-01h | 30 Sep 2016 |
v11-01i | 16 Oct 2016 |
v11-01j | 29 Nov 2016 |
v11-01k | 05 Dec 2016 |
v11-01-provisional-release | 22 Dec 2016 |
v11-01-public-release | 27 Jan 2017 |
--Bob Yantosca (talk) 15:31, 2 November 2016 (UTC)
Previous issues now resolved in GEOS-Chem v11-01
The following bugs and/or technical issues have now been resolved in GEOS-Chem v11-01. Some issues are listed on other wiki pages as well. Please also see this listing of all issues resolved v11-01.
TRACEBACK=y is now the default setting
This update was included in GEOS-Chem v11-01 public release
Seb Eastham (Harvard) suggested that all GEOS-Chem simulations should use the traceback option by default. An example of traceback output generated by the Intel Fortran Compiler is shown below:
Image PC Routine Line Source libifcoremt.so.5 00002B9EFA2188D3 Unknown Unknown Unknown geos.mp 00000000011FCE35 regrid_a2a_mod_mp 1914 regrid_a2a_mod.F90 libiomp5.so 00002B9EFB70A8A3 Unknown Unknown Unknown
The above example shows that the GEOS-Chem simulation exited abnormally at line 1914 of module regrid_a2a_mod.F90. We believe that having this information available will help GEOS-Chem users to better diagnose and report issues.
We have modified the Makefile_header.mk file in the GEOS-Chem v11-01 public release to set the Makefile option TRACEBACK=y if it is not already passed as an argument. To disable the traceback output, you will now have to compile with TRACEBACK=n.
It should be noted that the traceback option will increase the size of the GEOS-Chem executable, but will not have any impact on execution speeds.
--Bob Yantosca (talk) 22:27, 3 January 2017 (UTC)
Added a test for mass conservation
These updates were validated in the 1-month benchmark simulation v11-01a, which was approved on 07 Jul 2015.
In GEOS-Chem v11-01a, we have added a mass conservation check capability. This will let you see at a glance if GEOS-Chem is conserving mass.
In the GEOS-Chem Unit Tester, we have created two new run directories:
runs/geosfp_2x25_masscons runs/geos5_2x25_masscons
which are instances of the 2° x 2.5° CO2 simulation, but with zero emissions and with a constant (e.g. 370 ppm) initial condition field.
You can make a fresh copy of one (or both) of these directories with the gcCopyRunDirs script to a convenient location in your account. Once you have done that, then follow these steps:
- 1. Let's say you want to run the geos5_2x5_masscons test. First cd into the copied geos5_2x25_masscons directory.
- 2. Make sure you specify your desired start & end dates in your input.geos file. Also make sure to put a 3 on the last day of the simulation in the OUTPUT MENU section.
- 3. Then type this command:
make -j4 TRACEBACK=y NO_ISO=y mp
- this will start compiling and running the GEOS-5 mass conservation test. The Makefile in this run directory will automatically set a new Makefile option, MASSCONS=y, which disables output to the bpch, timeseries, and restart files. Instead, the mass of the total CO2 tracer will be printed out to a file named tracer_mass_kg.dat (you can rename this in the ND49 MENU section of input.geos). The output will look similar to this:
2.887072562747136E+015 : 2012/07/01 06:00 2.887072562747084E+015 : 2012/07/01 12:00 2.887072562747109E+015 : 2012/07/01 18:00 2.887072562747105E+015 : 2012/07/02 00:00 2.887072562747306E+015 : 2012/07/02 06:00 2.887072562747272E+015 : 2012/07/02 12:00 2.887072562747154E+015 : 2012/07/02 18:00 2.887072562746720E+015 : 2012/07/03 00:00
- The output shows the sum of CO2 tracer (in kg) over all longitudes, latitudes and levels, with a corresponding time stamp. As you can see from this example, mass is conserved to about the 11th decimal place, which indicates good mass conservation.
--Bob Y. (talk) 21:53, 24 June 2015 (UTC)
Prevent negative tracer concentrations after advection
These updates were validated in the 1-month benchmark simulation v11-01a, which was approved on 07 Jul 2015.
In GEOS-Chem v11-01a, we have included a fix for negative tracer concentrations following advection. Tracer concentrations may become negative within routine TPCORE_FVDAS at the poles with values on the order of -1e-10 v/v or smaller in v10-01. Negative values can cause GEOS-Chem to stop downstream if TOMAS is enabled due to a negative NK check within routine MNFIX in tomas_mod.F.
To fix this issue, we set all negative tracer concentration values to 1.0e-26 at the end of advection. The fix, inserted in routine TPCORE_FVDAS within tpcore_fvdas_mod.F90, is shown below. This code is not inserted in nested region advection routines because none of the nested regions overlap the poles.
!====================================================================== ! MODIFICATION by Harvard Atmospheric Chemistry Modeling Group ! ! Set tracer concentration to a small positive number if concentration ! is negative. Negative concentrations may occur at the poles. ! (ewl, 6/30/15) !====================================================================== !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED )& !$OMP PRIVATE( I, J, K ) DO K = 1, KM DO J = 1, JM DO I = 1, IM IF ( q(I,J,K,IQ) < 0.0e0_fp ) THEN q(I,J,K,IQ) = 1.0e-26_fp ENDIF ENDDO ENDDO ENDDO !$OMP END PARALLEL DO
Note that the reasons for negative values at the poles is not currently understood and is listed in the Outstanding issues not yet resolved in GEOS-Chem v11-01 section of this wiki page.
--Lizzie Lundgren (talk) 16:37, 1 July 2015 (UTC)
Update of PMN + O3 reaction products in globchem.dat file
This update was validated with 1-month benchmark simulation v11-01b and 1-year benchmark simulation v11-01b-Run0. This version was approved on 19 Aug 2015.
NOTE: SMVGEAR was removed from GEOS-Chem v11-01g when FlexChem was implemented. The globchem.dat file has now been replaced with the KPP master equation file.
Dylan Millet wrote:
- I'd like to submit the following change for the globchem.dat file. The PMN + O3 reaction does not give the appropriate products. We should change:
A 505 8.20E-18 0.0E+00 0 0 0.00 0. 0. PMN + O3 =1.000NO2 +0.600CH2O +1.000HO2 + + + + + + + + + + + + +
- to
A 505 8.20E-18 0.0E+00 0 0 0.00 0. 0. PMN + O3 =1.000CH2O +1.000MCO3 +1.000NO3 + + + + + + + + + + + + +
- It won't have a major impact, but it is currently is wrong, and my sense (Mat as well) is that this falls under 'bug fix' rather than science update.
--Bob Y. (talk) 17:55, 26 June 2015 (UTC)
Modifications to ND20 to archive afternoon P(O3) and L(O3)
This update was validated with 1-month benchmark simulation v11-01b and 1-year benchmark simulation v11-01b-Run0. This version was approved on 19 Aug 2015.
Bob Yantosca wrote:
- I was able to make a couple of modifications that will let you just archive afternoon P(O3) and L(O3), since that may let you avoid the too-low-values at night. If you look in diag_pl_mod.F, in routine DIAG20, you will see these new lines:
!
! !DEFINED PARAMETERS:
!
! Local time limits (optional)
REAL(fp), PARAMETER :: LT_START = 12.0e+0_fp
REAL(fp), PARAMETER :: LT_END = 16.0e+0_fp
- and
!$OMP+DEFAULT( SHARED )
!$OMP+PRIVATE( I, J, L, P_Ox, L_Ox, JLOOP, LT )
!$OMP+SCHEDULE( DYNAMIC )
DO L = 1, LD65
DO J = 1, JJPAR
DO I = 1, IIPAR
! Zero P(Ox), L(Ox) variables for safety's sake
P_Ox = 0e+0_fp
L_Ox = 0e+0_fp
! JLOOP is the 1-D grid box index for SMVGEAR arrays
JLOOP = JLOP(I,J,L)
! If this is a grid box where we have done chemistry, then ...
IF ( JLOOP > 0 ) THEN
!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
!%%% NOTE: If you want to restrict output to a given local
!%%% time range, then uncomment these lines of code.
!%%% (bmy, 7/9/15)
!
! Get the local time at box (I,J,L)
!LT = GET_LOCALTIME( I, J, L )
!
! Skip processing if we are outside of the desired
! local time range (bmy, 7/9/15)
!IF ( LT < LT_START .or. LT > LT_END ) CYCLE
!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
! Increment counter of valid grid boxes
COUNT(I,J,L) = COUNT(I,J,L) + 1
- (I also defined the LT variable and put in a USE statement for the GET_LOCALTIME function, not shown.)
- So if you want to restrict archiving of P(O3) and L(O3) to a given window, you can modify the LT_START and LT_END to the starting and ending hour of the local time window. Values must be in the range 0.0 to 23.99 hours. Then also uncomment the lines after the IF ( JLOOP > 0 ) block.
- In addition, I fixed a few minor issues in the DIAG20 and WRITE20 routines. For example, the bpch file was being saved with the wrong JFIRST value, so I corrected that. Also, I made the code more efficient by not trying to compute P(O3) and L(O3) where JLOOP == 0 (i.e. where chemistry wasn't done).
--Melissa Sulprizio (talk) 17:22, 3 August 2015 (UTC)
Bug fixes for the ND21 diagnostic
These fixes were validated with the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015.
Sebastian Eastham wrote:
- I was looking at some output for a recent run with v10-01 and realized that diagnostic 21 (OD_MAP) no longer produces the expected data. I only know for certain that this happens when the UCX is enabled, as I do not run with the trop-only version of the code. It basically comes down to index mismatching between aerosol_mod, diag3_mod and gamap_mod.
- Once implemented, it should restore output of diagnostic 21 when UCX is active. Prior to this patch, selecting diagnostic 21 with “all” output seemed to result in the incorrect number of tracers and misassignments.
--Melissa Sulprizio (talk) 16:32, 3 August 2015 (UTC)
Bug fix for custom grid in tpcore_bc_mod.F
This fix was validated with the 1-month benchmark simulation v11-01c and approved on 14 Sept 2015.
Shannon Koplitz wrote:
- I think there may be a redundant call to allocate the custom nested grid array BC at line 2045 in tpcore_bc_mod.F.
- It looks like the call to allocate that array is given earlier in the code at line 1977, and the double call appears to result in an allocation error when attempting to save out BCs for a custom nested grid.
Melissa Sulprizio responded:
- I found a few other places where the array BC is used. From what I see, it appears that BC is used in SAVE_GLOBAL_TPCORE_BC specifically for the custom grid, but in READ_WINDOW_TPCORE_BC, GET_4x5_BC, and GET_2x25_BC it's used in a more general sense (for all nested grids). So I think the issue here is that BC is unintentionally used for two different purposes. I think if we remove the second allocation and only allocate BC when LWINDO_CU is true, we'd get errors in the last three routines that I mentioned.
- I suggest we change BC for the custom nested grid to BC_CU. In SAVE_GLOBAL_TPCORE_BC, we would modify the following code (in green text):
IF ((IC .eq. 1) .and. LWINDO_CU )THEN !---------------------------------------------------------- ! IC == 1 : Save BC's to file (custom window) !---------------------------------------------------------- ! Open file for writing, if necessary CALL OPEN_BC_FILE( am_I_Root, Input_Opt, RC, & WINDOW=IC, FOR_WRITE=.TRUE. ) ! Loop over each tracer DO N = 1, N_TOT_TRC ! Save concentrations in WINDOW REGION to disk DO L = 1, LLPAR BC_CU(1:IM_BC,1:JM_BC,L,N)= & STT(I1_BC:I2_BC,J1_BC:J2_BC,L,N) ENDDO ! Write boundary conditions to binary punch file CALL BPCH2( IU_BC, MODELNAME, LONRES, LATRES, & HALFPOLAR, CENTER180, CATEGORY, N, & UNIT, TAU, TAU, RESERVED, & IM_BC, JM_BC, LLPAR, I1_BC, & J1_BC, 1, BC_CU(1:IM_BC, 1:JM_BC, 1:LLPAR, N)) ENDDO
- and in INIT_TPCORE_BC:
! Boundary condition array for CUSTOM NESTED REGION IF ( LWINDO_CU ) THEN ALLOCATE( BC_CU( IM_BC, JM_BC, LLPAR, N_TRACERS ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'BC_CU' ) BC_CU = 0e+0_fp ENDIF
- We would also have to declare BC_CU at the top of the module and deallocate it in CLEANUP_TPCORE_BC.
--Melissa Sulprizio (talk) 16:56, 3 August 2015 (UTC)
Mercury simulation inconsistently failing optimization unit tests in v11-01c
This fix was included in v11-01g (approved 28 Sep 2016).
Bob Yantosca (GCST) found and fixed three parallelization errors that had been causing the GEOS-5 Hg simulations to fail unit tests, as first described by Lizzie Lundgren:
There are inconsistent differences in the diagnostics and ocean restart files when running unit tests on GEOS-5 4x5 and 2x2.5 mercury simulations in v11-01c. When running a test of ten GEOS-5 4x5 Hg unit tests, the trac_avg file failed with differences seven times and the ocean restart file failed with differences eight times. We have isolated the issue to a single call to depo_mercury_mod.F routine ADD_HG2_SNOWPACK that occurs in convection_mod.F routine NFCLDMX. Commenting out the call and conducting ten GEOS-5 4x5 Hg unit tests results in all tests passing. The issue appears to be an optimization problem but is currently unresolved.
--Lizzie Lundgren (talk) 19:05, 9 September 2015 (UTC)
For a complete description of the fixes, please see this post on our Mercury wiki page.
--Bob Yantosca (talk) 18:47, 5 October 2016 (UTC)
Do not nullify local pointers in the same line where they are declared
NOTE: This fix was included in v11-01g (approved 28 Sep 2016).
As described on our our Common GEOS-Chem error messages wiki page, we no longer nullify several pointer variables at the same time when they are declared. In several GEOS-Chem routines, we replaced code that looked like this:
TYPE(Species), POINTER :: ThisSpc => NULL()
with code that looked like this.
TYPE(Species), POINTER :: ThisSpc . . . ThisSpc => NULL()
As it happens, when you nullify a pointer in the same line when it is declared, then the pointer is inadvertently converted to a SAVEd variable, and is only initialized once (instead of every time when the subroutine is called). This can have unexpected side-effects in OpenMP parallel loops.
For more information, please see this article.
--Bob Yantosca (talk) 16:33, 6 May 2016 (UTC)
J-values are doubled for O(1D) and O(3P) in ND22 diagnostic output
NOTE: This fix was included in v11-01g (approved 28 Sep 2016).
There was a bug in the way ND22 was calculated in the pre-FlexChem code that caused the J-values for O(3P) and O(1D) to be double counted. In calcrate.F, we looped over 1 to JPHOTRATE(NCS) = 94 (i.e. the number of photolysis reactions) and identify the species being photolyzed:
DO I = 1, JPHOTRAT(NCS) NK = NRATES(NCS) + I NKN = NKNPHOTRT(I,NCS) ! Name of species being photolyzed SPECNAME = NAMEGAS(IRM(1,NK,NCS)) SELECT CASE ( TRIM( SPECNAME ) ) CASE ( 'NO2' ) INDEX = 1 CASE ( 'HNO3' ) INDEX = 2 CASE ( 'H2O2' ) INDEX = 3 CASE ( 'CH2O' ) INDEX = 4 CASE ( 'O3' ) INDEX = 5 ...
It turns out the O3 tracer occurs twice: once for O3 -> O + O2 and once for O3 -> O1D + O2. Further down in that same loop over JPHOTRAT(NCS), there was code to add the J-values to the ND22 diagnostic:
!=========================================================== ! Store J-values in ND22 diagnostic !=========================================================== IF ( ND22 > 0 ) THEN ! Save J-values for 2PM diagnostic boxes ! Use AD22 array for J-value diagnostic (bmy, 9/30/99) IF ( LTJV(IX,IY) > 0 .and. IZ <= LD22 ) THEN IF ( INDEX == 5 ) THEN #if !defined( UCX ) ! Store unadjusted total J-O3 as AD22(:,:,:,5) AD22(IX,IY,IZ,5) = AD22(IX,IY,IZ,5) + & DUMMY(KLOOP) ! Store POH as AD22(:,:,:,6) AD22(IX,IY,IZ,6) = AD22(IX,IY,IZ,6) + & RRATE(KLOOP,NKN) #else ! Store O1D/O3P rates separately AD22(IX,IY,IZ,5) = AD22(IX,IY,IZ,5) + & DUMMY(KLOOP) AD22(IX,IY,IZ,6) = AD22(IX,IY,IZ,6) + & DUMMYO3P(KLOOP) #endif
However, because INDEX = 5 occurs twice, GEOS-Chem was adding DUMMY to AD22(IX,IY,IZ,5) twice and DUMMYO3P to AD22(IX,IY,IJ,6) twice. This should have only impacted the ND22 diagnostic output.
In v11-0g, the code for adjusting photolysis rates was moved from calcrate.F (which is now gone) to a routine called PHOTRATE_ADJ in fast_jx_mod.F. In that routine, the J-values for O(1D) and O(3P) are passed to the ND22 diagnostic directly from the ZPJ array, which holds the photolysis rates.
--Melissa Sulprizio (talk) 17:36, 14 September 2016 (UTC)
Incorrect incorporation of moisture in GEOS-Chem air quantities
This issue was partially resolved in GEOS-Chem v11-01a, which was approved on 07 Jul 2015.
The remaining issue was resolved in GEOS-Chem v11-01h, which was approved on 11 Oct 2016.
GCST member Lizzie Lundgren (Harvard) discovered that v10-01 tracer unit conversions between [v/v] and [kg] did not accurately handle moisture in their use of moist air mass with dry air molecular weight. Updates to fix this issue and other moisture-related discrepancies discovered during the update implementation were introduced in GEOS-Chem v11-01a.
Validation of the v11-01a moisture corrections revealed an additional moisture handling issue in advection. Inert tracer dry mixing ratio maps contained patterns resembling the moisture signature in the atmosphere. We traced this phenomenon to lack of moisture handling within transport. Tracer mass was distributed relative to moist rather than dry air pressure and therefore preferentially pooled within grid boxes that contained more water vapor mass.
Meemong Lee and Richard Weidner (JPL) issued a JPL Publication detailing a transport moisture fix for the Adjoint model addressing this issue. Their adjoint fix consisted of (1) deriving dry surface pressures from GMAO moist surface pressures and specific humidity, and (2) replacing moist pressures with dry pressures throughout the model.
Lizzie Lundgren (GCST) adapted JPL’s Adjoint fix to the GEOS-Chem forward model in GEOS-Chem v11-01h. The GEOS-Chem v11-01h implementation does the following:
- Corrects the transport mass distribution problem by using dry surface air pressures in advection
- Preserves the moisture updates incorporated into v11-01a, including 3D dry and moist air pressures
- Preserves inert tracer mass conservation by using dry air mass derived from dry surface pressure in species unit conversions and mixing ratio updates
See the Moisture Updates in v11-01 wiki page for details of the v11-01a and v11-01h moisture updates. Changes specific to the updates in v11-01h are discussed in the Transport section of that page. Important changes to highlight with this fix are as follows:
- The dry air mass per level calculated using the dry surface pressure is close but not exactly the same as the dry air mass calculated using the legacy method. Both methods produce valid approximations of level mass, but using dry air mass derived from the new dry surface pressure is required for species unit conversions to ensure mass conservation. This is because species are advected in units of mass mixing ratio, with dry air mass in the denominator. Retaining the same global species mass before and after advection, therefore, requires unit conversions that use a dry air mass definition consistent with that used in advection.
- The new dry surface pressure should NOT be used for constructing vertical profiles of dry and moist air pressures. The dry air pressure derived from dry surface pressure and GMAO vertical grid parameters A and B would not reflect an accurate height profile and cannot be used to derive a moist pressure height proxy. For this reason, 3D pressures (State_Met variables PEDGE, PEDGE_DRY, PMID, and PMID_DRY) are still constructed using the v11-01a method with GMAO wet surface pressures in combination with specific humidity.
--Lizzie Lundgren (talk) 15:33, 29 September 2016 (UTC)
Bug fixes for the dry deposition flux diagnostic
These updates were validated in the 1-year Rn-Pb-Be benchmark simulation v11-01h-Rn-Pb-Be, which was approved on 11 Oct 2016.
After the initial 1-year Rn-Pb-Be benchmark simulations were completed for v11-01h, Hongyu Liu pointed out the 210Pb budget was not balanced. The imbalance was tracked to large values in the dry deposition flux diagnostic when using the TURBDAY mixing scheme. The issue does not impact simulations using the VDIFF mixing scheme.
Bo Zhang wrote:
- The large drydep flux diagnostic term is likely caused by ignoring the difference between chemistry and convection timesteps.
- The drydep flux diagnostic is added up every convection step in mixing_mod.F:
AD44(I,J,DryDepID,1) = AD44(I,J,DryDepID,1) + FLUX
- , then it is divided by the chemistry scale in diag3.F before being saved into bpch. The chemistry and convection timesteps are 10 mins and 20 mins respectively, which leads to the issue.
ARRAY(:,:,1) = ( AD44(:,:,N,1) / SCALECHEM )
- For non-local PBL, the difference is considered, but there is also a potential issue.
AD44(:,:,D,1) = AD44(:,:,D,1) + dflx(:,:,trc_id) &
/ TRACER_MW_KG(trc_id) * AVO * 1.e-4_fp &
* GET_TS_CONV() / GET_TS_EMIS()
- Emission timestep is given the same value as chemistry in default, so this works fine, but it seems more appropriate to replace
GET_TS_EMIS()
byGET_TS_CHEM()
because SCALECHEM is used eventually in diag3.F. My current fix is to add the termGET_TS_CONV() / GET_TS_CHEM()
in the first equation in mixing_mod.F.
- In addition, the following lines update tracer concentrations and calculate drydep flux in mixing_mod.F. It seems that FLUX should be calculated first before the tracer conc gets updated (the second equation should come first).
! Apply dry deposition State_Chm%Tracers(I,J,L,N) = FRAC * & State_Chm%Tracers(I,J,L,N) ! Loss in kg/m2 FLUX = ( 1.0_fp - FRAC ) * State_Chm%Tracers(I,J,L,N)
--Melissa Sulprizio (talk) 14:10, 11 October 2016 (UTC)
Fix molecular weight of N2O5
This update was validated with the 1-month benchmark simulation v11-01j and approved on 03 Dec 2016
Chi Li found that we were using a molecular weight of 105.0 g/mole for N2O5 in the species database, but 108.0 g/mole should be used. This fix will be applied in v11-01j in Headers/species_database_mod.F90. In GEOS-Chem v10-01 and earlier versions, this fix can be applied to the input.geos file.
--Melissa Sulprizio (talk) 16:51, 23 November 2016 (UTC)
Prevent errors caused by uninitialized fields of the State_Met object
This update was included in v11-01k and approved on 19 Dec 2016
Several fields of the State_Met
object may or may not get allocated depending on the met fields being used, or if we are running in GEOS-Chem HP mode. Under some circumstances (especially when using the GNU Fortran compiler), GEOS-Chem simuations have crashed in the wet deposition module because an uninitialized field of State_Met
was encountered.
Therefore, we now make sure to nullify all such pointers in routine Init_State_Met
. This will prevent such errors from occurring in the future.
--Bob Yantosca (talk) 20:17, 2 December 2016 (UTC)
Allocate aerosol fields of State_Chm only for full-chemistry or aerosol-only simulations
This update was included in v11-01k and approved on 19 Dec 2016
The aerosol area and radius fields of the State_Chm
object hold values that are computed by routine RDAER (located in module GeosCore/aerosol_mod.F). These values are only relevant for full-chemistry and aerosol-only GEOS-Chem simulations.
We have made a minor modification—shown in GREEN below—to routine Init_State_Chm
(in module Headers/state_chm_mod.F90) so that these fields will only get allocated for full-chemistry or aerosol-only simulations. This will allow the other GEOS-Chem specialty simuations (e.g. Rn-Pb-Be, Hg, CH4, etc) to use less memory.
!===================================================================== ! Allocate and initialize aerosol area and radius fields ! These are only relevant for fullchem or aerosol-only simulations !===================================================================== IF ( Input_Opt%ITS_A_FULLCHEM_SIM .or. Input_Opt%ITS_AN_AEROSOL_SIM ) THEN State_Chm%nAero = nAerosol ALLOCATE( State_Chm%AeroArea ( IM, JM, LM, State_Chm%nAero ), STAT=RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%AeroArea = 0.0_fp ALLOCATE( State_Chm%AeroRadi ( IM, JM, LM, State_Chm%nAero ), STAT=RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%AeroRadi = 0.0_fp ALLOCATE( State_Chm%WetAeroArea( IM, JM, LM, State_Chm%nAero ), STAT=RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%WetAeroArea = 0.0_fp ALLOCATE( State_Chm%WetAeroRadi( IM, JM, LM, State_Chm%nAero ), STAT=RC ) IF ( RC /= GC_SUCCESS ) RETURN State_Chm%WetAeroRadi = 0.0_fp ENDIF
--Bob Yantosca (talk) 20:18, 2 December 2016 (UTC)
Rename grid_mod.F90 to gc_grid_mod.F90
This update was included in v11-01k and approved on 19 Dec 2016
In order to interface GEOS-Chem with the Beijing Climate Center (BCC) model, we had to rename module GeosUtil/grid_mod.F90 to GeosUtil/gc_grid_mod.F90. The BCC model already has a module named grid_mod, and this was causing conflicts during compilation.
--Bob Yantosca (talk) 20:16, 2 December 2016 (UTC)
Error message output now advises users to check the HEMCO log file
This update was included in GEOS-Chem v11-01 public release
When a GEOS-Chem simulation dies because of an error in HEMCO, the error message output now contains a line (shown in GREEN) advising the user to look in the HEMCO log file for further information.
===============================================================================
GEOS-CHEM ERROR: HCO_RUN
HEMCO ERROR: Please check the HEMCO log file for error messages!
STOP at HCOI_GC_RUN (GeosCore/hcoi_gc_main_mod.F90)
===============================================================================
The HEMCO log file (which is usually named HEMCO.log) will contain more detailed output that should identify the cause and location of the error. In this example below, HEMCO tried to read a file from disk, but could not find it.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! HEMCO ERROR: Cannot find file for current simulation time: $ROOT/TIMEZONES/v2015-02/timezones_1x1.edit.nc - Cannot get field TIMEZONES. Please check file name and time (incl. time range flag) in the config. file ERROR LOCATION: HCOIO_READ_STD (hcoio_read_std_mod.F90) ERROR LOCATION: ReadList_Fill (hco_readlist_mod.F90) ERROR LOCATION: ReadList_Read (hco_readlist_mod.F90) ERROR LOCATION: HCO_RUN (hco_driver_mod.F90) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
We hope that this update will help GEOS-Chem users to be better able to diagnose and re:port errors.
--Bob Yantosca (talk) 18:48, 6 January 2017 (UTC)
Fix units of O1D and O3P in ND43 diagnostic
This update was included in GEOS-Chem v11-01 public release
Chris Holmes wrote:
I found a minor bug in ND43 in v11-01. When running with UCX chemistry ND43 saves the concentrations of O1D and O in the trac_avg file. Gamap reports that the units for O1D and O are v/v (see below), but the values are inconsistent with those units. Based on the values, I am quite confident that the units for O1D and O are molec/cm3. I suspect that the only change necessary is to revise the units that are written in tracerinfo.dat.
GAMAP output
100 : CHEM-L=$ 20 OH 16001 molec/cm3 208176.00 2008100100 72 46 59 101 : CHEM-L=$ 20 HO2 16003 v/v 208176.00 2008100100 72 46 59 102 : CHEM-L=$ 20 O1D 16004 v/v 208176.00 2008100100 72 46 59 103 : CHEM-L=$ 20 O 16005 v/v 208176.00 2008100100 72 46 59
To fix this bug, the following lines in green need to be added in diag3.F:
#if defined( UCX ) ! O1D CASE ( 4 ) WHERE( CTO1D /= 0 ) ARRAY(:,:,1:LD43) = AD43(:,:,1:LD43,N) / & FLOAT( CTO1D ) ELSEWHERE ARRAY(:,:,1:LD43) = 0. ENDWHERE UNIT = 'molec/cm3' ! O3P CASE ( 5 ) WHERE( CTO3P /= 0 ) ARRAY(:,:,1:LD43) = AD43(:,:,1:LD43,N) / & FLOAT( CTO3P ) ELSEWHERE ARRAY(:,:,1:LD43) = 0. ENDWHERE UNIT = 'molec/cm3' #endif
--Melissa Sulprizio (talk) 16:23, 17 January 2017 (UTC)
Print message to log file if OpenMP parallelization is turned off
This update was included in GEOS-Chem v11-01 public release
For debugging purposes, users may turn off OpenMP parallelization with the OMP=n compiler switch. When OpenMP is turned off, a C-preprocesor switch (-DNO_OMP) will be added to the compilation. This will let us check for #if defined( NO_OMP ) in main.F and print a warning message to the log file if OpenMP parallization has been turned off.
In this way, the user will be able to immediately tell if OpenMP parallelization has been deactivated simply by checking the top of the log file.
--Bob Yantosca (talk) 17:19, 20 January 2017 (UTC)
Fix incorrect unit strings for ND65 diagnostic in diag3.F
This update was included in GEOS-Chem v11-01 public release
Chris Holmes wrote:
The ND65 P/L diagnostics are molec/cm3/s, but in GeosCore/diag3.F they are called mol/cm3/s. This is confusing because "mol" is the abbreviation for mole, not molecule. The units are correct in tracerinfo.dat, but gamap displays the incorrect units from the bpch file.
This inconsistency also applied to ND29. In GeosCore/gamap_mod.F, the units for ND29 are defined as molec/cm3/s, but in GeosCore/diag3.F they were mol/cm3/s. This has now been fixed so that both files use molec/cm3/s.
Also note: The binary punch diagnostics are slated to be removed soon, probably in GEOS-Chem v11-02.
--Bob Yantosca (talk) 17:25, 20 January 2017 (UTC)
Minor fix for ND68 entries in tracerinfo.dat
This update was included in GEOS-Chem v11-01 public release
In GEOS-Chem v11-01g, the ND68 air mass and related quantities diagnostic was updated to reduce the number of fields from 13 to 8. The code in INIT_TRACERINFO (in GeosCore/gamap_mod.F) and the comments in GeosCore/diag3.F are now updated to reflect that ND68 now only includes:
1: BXHEIGHT - box height [m] 2: AD - dry air mass [kg] 3: AVGW - mol H2O / mol dry air [v/v] 4: AIRNUMDEN - dry air number density [molecules/m3] 5: T - temperature [K] 6: PMID - arithmetic mean pressure [hPa] 7: PEDGE - level pressure (bottom edge) [hPa] 8: RH - relative humidity [%]
--Bob Yantosca (talk) 21:33, 30 January 2017 (UTC)
Outstanding issues not yet resolved in GEOS-Chem v11-01
The following issues have not yet been resolved in GEOS-Chem v11-01. Some of these issues represent questions of open research rather than bugs in the source code.
Cause of negative tracer concentrations at the poles is unknown
Tracer concentrations at the poles may become negative within advection. A fix is included in v11-01 that resets negative values to positive at the end of TPCORE_FVDAS but the underlying cause of the negative values is not addressed. All negative values are small enough to not significantly impact advection mass balance.
--Bob Yantosca (talk) 21:22, 20 April 2016 (UTC)
Error in production of SO4s and NITs in SEASALT_CHEM
This fix was included in v11-02a and approved on 12 May 2017.
Prasad Kasibhatla reported an issue in the production of SO4 and NITs in routine SEASALT_CHEM (in GeosCore/sulfate_mod.F) due to a unit conversion error. For a complete description of the issue and the proposed solution, see this post on our Sulfate aerosols wiki page.
--Melissa Sulprizio (talk) 19:19, 1 February 2017 (UTC)
Bug in nitrate uptake on fine sea salt
This fix was included in v11-02a and approved on 12 May 2017.
Prasad Kasibhatla discovered nitrate uptake on fine sea salt is only done in the PBL, but should be done throughout the troposphere. For a complete description of the issue and the proposed solution, see this post on our Sulfate aerosols wiki page.
--Melissa Sulprizio (talk) 19:19, 1 February 2017 (UTC)
ALK4 lumping issue
This fix was included in v11-02a and approved on 12 May 2017.
Barron Henderson noted a lumping issue for ALK4. For a complete description of the issue and the proposed solution, see this post on our Chemistry Issues wiki page.
--Melissa Sulprizio (talk) 19:19, 1 February 2017 (UTC)
Bug in sulfate production in HET_DROP_CHEM
This fix was included in v11-02a and approved on 12 May 2017.
Qianjie Chen identified a bug in sulfate_mod.F that results in too much sulfate produced from ozone over the ocean. For a complete description of the issue and the proposed solution, see this post on our Sulfate aerosols wiki page.
--Melissa Sulprizio (talk) 17:37, 2 February 2017 (UTC)
Computational bottleneck in the convection module
This fix was included in v11-02a and approved on 12 May 2017.
After the v11-01 public release was issued, the GCST discovered a computational bottleneck in the convection module. For more information about this issue, please see this post on our Cloud convection wiki page.
--Bob Yantosca (talk) 22:11, 8 February 2017 (UTC)
Bug in cos(SZA) for start of timestep
This fix was included in v11-02a and approved on 12 May 2017.
After the v11-01 public release was issued, Lizzie Lundgren (GCST) discovered a bug in the computation of the cosine of the solar zenith angle for the start of the current timestep. This value is stored in State_Met%suncos. Instead of using the start time of the current timestep for the calculation, the model always used the current hour. The cos(SZA) for the mid-point of the timestep, stored as State_Met%suncosmid, is unaffected.
--Lizzie Lundgren (talk) 15:17, 13 March 2017 (UTC)
Bugs in convective flux diagnostics (ND14)
This fix was included in v11-02a and approved on 12 May 2017.
After the v11-01 public release was issued, Prasad Kasibhatla (Duke) discovered unexpected behavior when enabling the convective mass flux diagnostics (ND14) in the standard simulation using GEOS-FP. The GCST then identified two bugs in the source code for ND14 in v11-01 public release. Please make the following two updates to correct the issue if using ND14 with GEOS-FP, MERRA, or MERRA2 met-fields:
Around line 420:
!-------------------------- ! ND14 diagnostic [kg/s] !-------------------------- IF ( DO_ND14 ) THEN ! Loop over only the soluble species DO NW = 1, State_Chm%nWetDep ! Get the species ID From the wetdep ID N = State_Chm%Map_Advect(NA) ---> CHANGE TO: N = State_Chm%Map_Wetdep(NW) ! Archive diagnostic DO L = 1, LD14 CONVFLUP(I,J,L,N) = CONVFLUP(I,J,L,N) + DIAG14(L,NW) ENDDO ENDDO
Around line 2731:
!-------------------------------------------------------------- ! (3.3) N D 1 4 D i a g n o s t i c ! ! Archive upward mass flux due to wet convection ! [kg/sec] in the box (I,J), for the species IC going out ! of the top of the layer K to the layer above (K+1) ! (bey, 11/10/99). We must divide by DNS, the # of internal ! timesteps so that the sum represents the average loss rate ! across all internal timesteps. !------------------------------------------------------------ IF ( USE_DIAG14 ) THEN ---> CHANGE TO: IF ( USE_DIAG14 .and. NW > 0 ) THEN DIAG14(K,NW) = & DIAG14(K,NW) + ( -T2-T3 ) * AREA_M2 / DNS ENDIF
--Lizzie Lundgren (talk) 15:26, 15 March 2017 (UTC)
P(OH) not saved out in ND22 diagnostic
This fix was included in v11-02a and approved on 12 May 2017.
Prasad Kasibhatla pointed out that production of OH from O3 photolysis (index 6) in the ND22 diagnostic is saved out as all zeroes in GEOS-Chem v11-01. This diagnostic quantity is only saved out for the tropchem and SOA mechanisms (i.e. simulations that do not use UCX). In the Standard and UCX mechanisms, J(O3P) is saved out for index 6 of ND22. The P(OH) quantity was deactivated during the implementation of FlexChem and was not restored. This will be corrected in GEOS-Chem v11-02. To restore P(OH) from O3 photolysis in ND22, add the following lines (in green) to routine PHOTRATE_ADJ in fast_jx_mod.F:
! Prevent div-by-zero
IF ( RO1D > 0.0_fp ) THEN
! RXN_O3_2a specifies: O3 + hv -> O2 + O(1D) #1
ZPJ(L,RXN_O3_2a,I,J) = ZPJ(L,RXN_O3_2a,I,J) * RO1DplH2O / RO1D
! RXN_O3_2b specifies: O3 + hv -> O2 + O(1D) #2
ZPJ(L,RXN_O3_2b,I,J) = ZPJ(L,RXN_O3_2b,I,J) * RO1DplH2 / RO1D
ENDIF
! Store P(OH) from O3 photolysis as AD22(:,:,:,6)
IF ( ND22 > 0 ) THEN
IF ( L <= LD22 .and. LTJV(I,J) > 0 ) THEN
AD22(I,J,L,6) = AD22(I,J,L,6) +
& ZPJ(L,RXN_O3_2a,I,J) +
& ZPJ(L,RXN_O3_2b,I,J)
ENDIF
ENDIF
#endif
END SUBROUTINE PHOTRATE_ADJ
--Melissa Sulprizio (talk) 14:32, 16 March 2017 (UTC)
Planeflight diagnostic is disabled for full-chemistry simulations
NOTE: The planeflight diagnostics will be overhauled in v11-02.
Lee murray wrote:
I think the FlexChem implementation accidentally disabled the planeflight diagnostic for the full chemistry simulation. We used to initialize the planeflight diagnostic in chemdr.F for full chemistry simulations (now no more) and all the other versions in main.F.
We should change main.F to always call SETUP_PLANEFLIGHT whenever the diagnostic is turned on.
! Plane following diagnostic IF ( ND40 > 0 .and. DO_DIAG_WRITE ) THEN ! Call SETUP_PLANEFLIGHT routine if necessary IF ( ITS_A_NEW_DAY() ) THEN ! ! If it's a full-chemistry simulation but LCHEM=F, ! ! or if it's an offline simulation, call setup routine ! IF ( ITS_A_FULLCHEM_SIM ) THEN ! IF ( .not. LCHEM ) THEN ! CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, ! & State_Chm, RC ) ! ENDIF ! ELSE ! CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, ! & State_Chm, RC ) ! ENDIF CALL SETUP_PLANEFLIGHT( am_I_Root, Input_Opt, State_Chm, RC ) ENDIF ENDIF
--Melissa Sulprizio (talk) 19:55, 8 May 2017 (UTC)