Difference between revisions of "GEOS-Chem v8-01-01"
Line 59: | Line 59: | ||
#* The only difference is that this benchmark was done w/ GEOS-5 met and v7-04-13 was done w/ GEOS-4 met. | #* The only difference is that this benchmark was done w/ GEOS-5 met and v7-04-13 was done w/ GEOS-4 met. | ||
# Use Run0 if you need to make a clean comparison between the GEOS-4 and GEOS-5 met fields. | # Use Run0 if you need to make a clean comparison between the GEOS-4 and GEOS-5 met fields. | ||
− | # Results from Run0 may be viewed on the web [http:// | + | # Results from Run0 may be viewed on the web [http://acmg.seas.harvard.edu/geos/G/v8-01-01/geos5/2005/Run0/output/pdf/ HERE.] |
==== Run1 ==== | ==== Run1 ==== | ||
Line 106: | Line 106: | ||
# The only difference between Run0 and Run1 is that Run0 uses ISORROPIA and Run1 uses RPMARES to compute the aerosol thermodynamical equilibrium. We recently learned that [[Aerosol_thermodynamical_equilibrium#ISORROPIA|ISORROPIA can return incorrect values at low RH.]] | # The only difference between Run0 and Run1 is that Run0 uses ISORROPIA and Run1 uses RPMARES to compute the aerosol thermodynamical equilibrium. We recently learned that [[Aerosol_thermodynamical_equilibrium#ISORROPIA|ISORROPIA can return incorrect values at low RH.]] | ||
#* Use Run0 if you need to make a clean comparison between ISORROPIA and RPMARES. | #* Use Run0 if you need to make a clean comparison between ISORROPIA and RPMARES. | ||
− | # Results from Run0 may be viewed on the web [http:// | + | # Results from Run0 may be viewed on the web [http://acmg.seas.harvard.edu/geos/G/v8-01-01/geos5/2005/Run1/output/pdf/ HERE.] |
=== Post-release patches === | === Post-release patches === |
Revision as of 13:41, 7 July 2009
Contents
v8-01-01
PUBLIC RELEASE May 2008
Contains everything in GEOS-Chem 7-04-13, with the following additions:
- Compatibility for GEOS-5 met fields.
- Now uses RPMARES instead of ISORROPIA
- Implements floating point error traps (e.g. to prevent division by zero) in a few critical places
Also note that we have implemented the fix for the Last year of GFED2 biomass emissions, (which is now 2006) into v8-01-01.
1-Year Benchmarks
We have done two 1-year benchmarks for GEOS-Chem v8-01-01:
Run0
The 3 models compared (and their colors on the plots) were:
Color | Quantity Plotted | Met Field Type | Lightning algorithm | A.T.E. algorithm | Annual Mean OH [105 molec/cm3] |
---|---|---|---|---|---|
Red | v7-04-12 Run2 | GEOS-4 4x5 | near-land w/ OTD-LIS regional scaling | ISORROPIA | 12.816 |
Green | v7-04-13 | GEOS-4 4x5 | updated non-near-land w/ OTD-LIS local scaling | ISORROPIA | 12.147 |
Blue | v8-01-01 Run0 | GEOS-5 4x5 | updated non-near-land w/ OTD-LIS local scaling | ISORROPIA | 12.006 |
Black | Observations |
NOTES for Run0:
- This benchmark uses the same input conditions and emissions as v7-04-13.
- The only difference is that this benchmark was done w/ GEOS-5 met and v7-04-13 was done w/ GEOS-4 met.
- Use Run0 if you need to make a clean comparison between the GEOS-4 and GEOS-5 met fields.
- Results from Run0 may be viewed on the web HERE.
Run1
The 3 models compared (and their colors on the plots) were:
Color | Quantity Plotted | Met Field Type | Lightning algorithm | A.T.E. algorithm | Annual Mean OH [105 molec/cm3] |
---|---|---|---|---|---|
Red | v7-04-13 | GEOS-4 4x5 | updated non-near-land w/ OTD-LIS local scaling | ISORROPIA | 12.147 |
Green | v8-01-01 Run0 | GEOS-5 4x5 | updated non-near-land w/ OTD-LIS local scaling | ISORROPIA | 12.006 |
Blue | v8-01-01 Run1 | GEOS-5 4x5 | updated non-near-land w/ OTD-LIS local scaling | RPMARES | 12.040 |
Black | Observations |
NOTES for Run1:
- The only difference between Run0 and Run1 is that Run0 uses ISORROPIA and Run1 uses RPMARES to compute the aerosol thermodynamical equilibrium. We recently learned that ISORROPIA can return incorrect values at low RH.
- Use Run0 if you need to make a clean comparison between ISORROPIA and RPMARES.
- Results from Run0 may be viewed on the web HERE.
Post-release patches
After the release of v8–01–01, some minor bugs and issues were discovered. Most of these involve numerical errors (i.e. computations that result in NaN's or underflow conditions). Other minor bugs are only relevant to a particular type of offline simulation. In any case, most of these issues have simple fixes.
Please see the following GEOS–Chem wiki pages for information about the following issues, and how to resolve them.
NOTE: As of November 2008, these post-release patches are now part of the standard GEOS-Chem v8-01-02 source code.
Fixes for the full-chemistry simulation
- "Too many levels" error in the photolysis routine OPMIE.f
- Confusing comments corrected in routine SOA_PARA in carbon_mod.f
- Numerical noise error in upbdflx_mod.f
- Problem w/ ND65 diagnostic and the dynamic tropopause
- Negative tracer found in WETDEP
- Negative relative humidity from met fields causing negative tracer
- Run dies in RPMARES unexpectedly
- Error in sulfate_mod.f caused by switching from ISORROPIA to RPMARES
Fixes for offline simulations
- Array-out-of-bounds error in tagged_co_mod.f
- Wrong MERGE.O3 filename specified (this is an issue for offline Hg chemistry)
Lines of code
For those of you who are curious as to how many lines of code are in this version of GEOS-Chem, here is a counting of code lines, comment lines, and blank lines. NOTE: These totals also accounts for the v8-01-01 post-release patches, while excluding many lines of obsolete code that had been commented out and slated for deletion.
Total number of files : 217 Number of files searched : 217 Number of files skipped : 0 Number of lines searched : 174177 Number of comment lines : 77788 Number of blank lines : 25981 Number of code lines : 70408 Ratio: Comments/Code : 1.1048176
Results were generated with IDL program linecount.pro by Bob Yantosca,
--Bob Y. 14:27, 8 August 2008 (EDT)
Bugs in ND47/ND65/ND45 in v8-01-01
Yuxuan Wang (wang3@fas.harvard.edu) wrote:
- I think I found a bug in code version v8-01-01. The bug involves the scale factors used for ND47 (24-hr avg output) and ND65 (24-hr chemical family production and loss rate). The bug occurs when users define ND45 time window to be less than 24 hours.
- In diag3.f, the scale factors for ND47 and ND65 are CTOTH and CTO3. In diag_2pm.f, CTOTH and CTO3 are counters for the user-defined time window of ND45 output. In my simulation, for example, I defined ND45 time window to be from 12 to 16 (afternoon concentrations), so CTOTH and CTO3 record the number of afternoon hours in my run. However, ND47 and ND65 are accummulating for 24 hours, independent of the time window selected for ND45. At times when the code writes the diagnostics, ND47 and ND65 are scaled by CTOTH and CTO3 which are accumulating only for the afternoon hours. This incorrect scaling led to unrealistically high concentrations in ND47 and ND65.
- I did a test simulation and found the bug did not affect the results if ND45 time-window are defined from 0 to 24 (i.e., 24-hr mean).
- Related codes are:
----------in diag3.f------------------- starting line 2616 IF ( ND47 > 0 ) THEN CATEGORY = 'IJ-24H-$' UNIT = ! Now use SCALE_TMP instead of SCALEDYN SCALE_TMP = FLOAT( CTOTH ) + 1d-20 ! Now account for undefined O3 concentration ! at first timestep (phs, 1/24/07) IF ( FIRST ) THEN SCALE_TMP3D = MAX( FLOAT( CTO3 )-1d0, 1d-20 ) ELSE SCALE_TMP3D = FLOAT( CTO3 ) + 1d-20 ENDIF ...... starting line 2799 IF ( ND65 > 0 ) THEN CATEGORY = 'PORL-L=$' ! Note: P/L are defined at first time step, since ! they are computed after chemistry (phs, 3/6/07) SCALE_TMP3D = FLOAT( CTO3 ) + 1d-20 -----------in diag_2pm.f------------------------------------ starting line 68 DO J = 1, JJPAR DO I = 1, IIPAR !----------------------------- ! ND45 -- mixing ratios !----------------------------- IF ( IS_ND45 ) THEN ! Archive if we fall w/in the local time limits IF ( LT(I) >= HR1_OTH .and. LT(I) <= HR2_OTH ) THEN LTOTH(I,J) = 1 CTOTH(I,J) = CTOTH(I,J) + 1 ! Counter for # of O3 boxes in the troposphere (phs, 1/24/07) DO L = 1, LD45 IF ( IS_ND45_O3 .and. ITS_IN_THE_TROP( I, J, L )) THEN CTO3(I,J,L) = CTO3(I,J,L) + 1 ENDIF ENDDO ELSE LTOTH(I,J) = 0 ENDIF ENDIF
- Thank you for your attention!
- Yuxuan
And Shiliang Wu (wu18@fas.harvard.edu) also reported a bug when ND47 is turned on:
- I recently had problem running GC (v7.4.13 if that matters) - It always crashed at the end of the run before writing the bpch file and the restart file. I tracked down and it looks something weird related to the diagnostic ND47 - I was able to reproduce the problem whenever ND47 is on but everything is OK when ND47 is off.
Philippe Le Sager (wu18@fas.harvard.edu) wrote:
- I found your problem. You cannot save ND45 with less level than ND47. Different tracers is ok:
- ND45 and ND47 all tracers and all levels
- runs fine
- ND45 and ND47 all tracers, 5 levels for ND45 and all 23 for ND47
- crashed after 2h simulation.
- ND45 and ND47 all levels, 4 tracers for ND45 and all 43 for ND47
- runs fine
- ND45 and ND47 all tracers and all levels
- We will either add a check to prevent L45 < L47 or modify the program to allow it in a next GC version.
We did modify the code. Philippe Le Sager (plesager@seas.harvard.edu) wrote:
- I think I have fixed several diagnostic issues related to counters of time in the troposphere: ND45's O3, ND65, ND47 and ND20.
- (1) When ND45 is not averaging over all time steps, these diagnostics should be correct now.
- (2) The restriction on the number of levels for some diagnostics ( LDxx =< LD45 ) has been released.
- You can temporarily find the updated routines in:
- ftp://ftp.as.harvard.edu/pub/exchange/phs/ND_20_45_47_65_fixes
- Please read carefully the README file, since one of the files has additional modifications scheduled for v8-01-03. This update will be part of v8-01-02.
--phs 17:33, 18 November 2008 (EST)