Outstanding issues yet to be resolved
From Geos-chem
Fix for mass balance of HNO3 and NIT
Please see the following discussion about a minor algorithmic fix that is needed to ensure mass balance of HNO3 and NIT on the sulfate aerosols page. This is present in GEOS-Chem v8-01-01; the fix will be added to a future internal version.
--Bob Y. 09:40, 30 July 2008 (EDT)
Double-substitution error in GET_ALK
Please see the following discussion on the sea salt aerosols page which describes a bug in the algorithm in routine GET_ALK (in seasalt_mod.f), and how to correct it.
--Bob Y. 14:46, 18 July 2008 (EDT)
Out of bounds error for tagged_co_mod.f
Mike Barkley (michael.barkley@ed.ac.uk) wrote:
- I've downloaded the latest public release (v8-01-01) which compiles okay it straight out of the 'box' using the compiler options:
# IFORT compilation options FFLAGS = -cpp -w -O2 -auto -noalign -convert big_endian # Compile command -- multiprocessor F90 = ifort $(FFLAGS) -openmp -Dmultitask
- However, if you add the -CB compiler option to FFLAGS (which checks for array bounds) the error message, shown below, appears. Is this a coding error or a 'compiler bug'?
Compiling geos in Makefile.ifort
fortcom: Error: tagged_co_mod.f, line 630: Subscript #3 of the array EMISRR has value 1
which is less than the lower bound of 2
E_CO = EMISRR(IREF,JREF,1)
----------------------^
compilation aborted for tagged_co_mod.f (code 1)
make: *** [tagged_co_mod.o] Error 1
Philippe Le Sager (plesager@ed.ac.uk) replied:
- This is a coding error that we recently found when trying to run the tagged CO simulation. Just replace the line 630 with:
E_CO = EMISRR(IREF,JREF,IDECO)
- and make sure that line 443 declares IDECO:
USE TRACERID_MOD, ONLY : IDBFCO, IDECO
- Also there are updated files on my ftp that you may want to look at: ftp://ftp.as.harvard.edu/pub/exchange/phs/GEOS-Chem-UPDATE/
- The updates mainly deal with (rare) computation issues (NaN or zero concentration). The fix for ND65(family diagnostic) is probably the most important, although quite simple (see chemdr.f).
NOTE: Also you will need to make sure to dimension the following arrays in CMN_O3 as follows:
!------------------------------------------------------------------------------
! Prior to 6/11/08:
! Redimension EMISR, EMIST to avoid errors in tagged CO (jaf, bmy, 6/11/08)
! & EMISR(IGLOB,JGLOB,2:NEMPARA), EMISRN(IGLOB,JGLOB,NOXLEVELS),
! & EMIST(IIPAR,JJPAR,2:NEMPARA), EMISTN(IIPAR,JJPAR,NOXLEVELS)
!------------------------------------------------------------------------------
& EMISR(IGLOB,JGLOB,NEMPARA), EMISRN(IGLOB,JGLOB,NOXLEVELS),
& EMIST(IIPAR,JJPAR,NEMPARA), EMISTN(IIPAR,JJPAR,NOXLEVELS)
!------------------------------------------------------------------------------
! Prior to 6/11/08:
! Redimension EMISRR to avoid errors in tagged CO (jaf, bmy, 6/11/08)
! & EMISRR (IIPAR,JJPAR,2:NEMPARA+NEMPARB),
!------------------------------------------------------------------------------
& EMISRR (IIPAR,JJPAR,NEMPARA+NEMPARB),
& EMISRRN(IIPAR,JJPAR,NOXEXTENT )
This is to remove some historical baggage. This fix will be introduced into the next GEOS-Chem release.
--Bob Y. 13:29, 30 June 2008 (EDT)
Numerical noise bug in upbdflx_mod.f
Ray Nassar discovered a bug in upbdflx_mod.f in GEOS-Chem v8-01-01 where numerical noise was causing negative values to propagate throughout the code. Please see the discussion on the Bugs and Fixes page for more information, and how to fix the problem.
--Bob Y. 11:11, 12 June 2008 (EDT)
Problem w/ ND65 diagnostic and dynamic tropopause
Please follow this link to read about a problem with the ND65 diagostic and the dynamic tropopause, and how to fix it. This problem is in GEOS-Chem v8-01-01 but will be resolved in the next release.
--Bob Y. 11:34, 9 June 2008 (EDT)
Wrong MERGE.O3 filename specified in v8-01-01
Christopher Holmes (holmes2@fas.harvard.edu) wrote:
- I just noticed a small inconsistency in v8-01-01. In global_o3_mod.f at line 118:
#if defined( GRIDREDUCED )
! Filename for 30-level model
FILENAME = TRIM( DATA_DIR ) //
& 'sulfate_sim_200508/offline/MERGE.O3.30L.' //
& GET_NAME_EXT() // '.' // GET_RES_EXT()
#else
- When GRIDREDUCED is set with GEOS-5, then there are 47 layers, but on line 122, it is trying to read from a file that is named '30L'. I know that we aren't yet set up to do offline chemistry runs with GEOS-5 because the archived oxidant fields don't exist yet, but this will crop up when someone tries
--Bob Y. 14:28, 20 May 2008 (EDT)
Log file minor bug in v8-01-01
The log files from v8-01-01 runs give the GEOS4 data directory for the GEOS5 directory. This does not affect the runs, and will be fixed in the next round of code updates. You can also modify yourself line 650 of input_mod.f
--phs 10:10, 7 May 2008 (EDT)
GFED2 8-day emissions
The GFED2 8-day average biomass burning emissions have not yet been added into v8-01-01, but will be added into a future release, perhaps v8-01-02.
--Bob Y. 09:53, 29 April 2008 (EDT)
Bug in ND47/ND65 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
Bob Yantosca (yantosca@seas.harvard.edu) wrote:
- This error is basically caused by historical baggage. The scale factor code for ND47 has not been changed in many years.
- We ... plan to fix this in v8-01-02.
- Bob Y.
--Bob Y. 09:53, 29 April 2008 (EDT)
Run crashes when ND47 is turned on
Shiliang Wu (wu18@fas.harvard.edu) wrote:
- 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.
--Bob Y. 10:00, 29 April 2008 (EDT)
