Difference between revisions of "GEOS-Chem v8-02-01"
(→Outstanding Issues in v8-02-01) |
|||
Line 46: | Line 46: | ||
| " " | | " " | ||
| " " | | " " | ||
− | | [http:// | + | | [http://acmg.seas.harvard.edu/geos/wiki_docs/chemistry/chemistry_updates_v4.pdf "updated" jv_spec.dat] |
− | | [http:// | + | | [http://acmg.seas.harvard.edu/geos/wiki_docs/chemistry/chemistry_updates_v4.pdf "updated" chemical mechanism]<br>(cf. J. Mao, D. Millet,<br> T-M. Fu, Palmer Group<br>@ U. Edinburgh) |
| 11.817 | | 11.817 | ||
|-align="center" | |-align="center" |
Revision as of 13:37, 7 July 2009
Contents
- 1 Overview
- 2 1-year benchmarks
- 3 Previous issues now resolved in v8-02-01
- 3.1 Output selected tracers only for dry and wet deposition, convection and rain diagnotics
- 3.2 On-the-fly regridding for 0.5x0.667 nested grids
- 3.3 Bug with EMEP ship emissions for nested grids
- 3.4 Bug in sulfate_mod.f to turn off biomass emissions
- 3.5 Minor error in gamap_mod.f
- 3.6 Bug fix for Streets emissions on 0.5x0.666 nested grid
- 4 Outstanding Issues in v8-02-01
Overview
CHEMISTRY RELEASE date May 26, 2009.
Will contain everything in v8-01-04 plus the following:
- Glyoxal chemistry (May Fu) (NOTE: This is an option which is turned off by default)
- Updated photolysis cross-sections and quantum yields to FAST-JX (Jingqiu Mao)
- Updated reaction rates (Jingqiu Mao, Dylan Millet, Palmer group @ U. Edinburgh)
- HO2 uptake (Lyatt Jaegle)
- Updated dust single scattering albedo (Randall Martin)
1-year benchmarks
Run0
Three GEOS-Chem model versions were compared to each other:
Color | Quantity Plotted | Met Field Type | Anthro Emissions | Photolysis Mechanism |
Chemical Mechanism |
Annual Mean OH [105 molec/cm3] |
---|---|---|---|---|---|---|
Red | v8-01-04 Run1 | GEOS-5 4x5 version 5.0.1 w/ "quick fix" for optical depth spinup: 2005 run: 2005 |
GEIA/Piccot EDGAR emissions EMEP European emissions BRAVO Mexican emissions David Streets 2006 emissions CAC Canadian emissions EPA/NEI99 with ICARTT fix EDGAR ship emissions ARCTAS ship SO2 emissions Anthro scale year 2005 |
"old" jv_spec.dat | Mostly unchanged from v5-07-08 except for a few revisions |
10.294 |
Green | v8-01-04 Run2 | GEOS-5 4x5 version 5.1.0, "reprocessed" met fields spinup: 2004 run: 2005 |
" " | " " | " " | 11.099 |
Blue | v8-02-01 Run0 | " " | " " | "updated" jv_spec.dat | "updated" chemical mechanism (cf. J. Mao, D. Millet, T-M. Fu, Palmer Group @ U. Edinburgh) |
11.817 |
Black | Observations |
SUMMARY:
- v8-01-04 Run2 vs. v8-01-04 Run1 is a clean comparison between the GEOS-5.0.1 and GEOS-5.1.0 met products.
- v8-02-01 Run0 vs. v8-01-04 Run2 is a clean validation for the new chemistry mechanism, photolysis rates, and other updates that were added into v8-02-01.
- All runs used the same:
- A.T.E. Algorithm = RPMARES
- Advection routine: "new" tpcore
- Biogenic emissions: "new" MEGAN AEF's for isoprene
- GFED2 biomass emissions
- Aircraft NOx emissions
- Approximate random cloud overlap option in photolysis
The output plots for Run0 may be downloaded from:
ftp ftp.as.harvard.edu cd pub/geos-chem/1yr_benchmarks/v8-02-01/geos5/2005/Run0/output
Previous issues now resolved in v8-02-01
The following user-reported bugs have now been corrected in v8-02-01:
Output selected tracers only for dry and wet deposition, convection and rain diagnotics
Mike Barkeley (michael.barkley@ed.ac.uk) wrote:
- Hi all,
- I've noticed for several of the diagnostics that when the ctm.bpch file is produced all the possible tracers are always written irrespective of whether or not you have only specified certain ones in the input.geos file.
- For example, for dry deposition one might want only: NO2, O3, PAN, HNO3, H2O2, PMN, PPN, R4N2, CH2O & N2O5. In which case the settings would be in input.geos:
- ND44: Drydep flx/vel : 1 1 2 3 7 8 15 16 17 20 22
- However, if you run the model (I used 4x5 resolution, ifort v10 compiler,4 cores) ALL the dry deposition species are dumped out.
- This error also occurs for the following diagnostics:
- 1) ND17 & ND18
- 2) ND37: Updraft scav frac : 20 7 8 20 24
- For these species it only outputs tracer numbers: 30028, 30029 & 30041 and the tracer names are not written out to the bpch file (I use gamap v2.12) ??
- 3) ND38 & ND39
Claire Carouge (ccarouge@seas.harvard.edu) wrote:
- Hi Mike,
- The code that writes the diagnostics you've indicated was not taking into account the specified list of tracers. So all tracers were always written in ctm.bpch.
- For ND37, the selection of tracers was badly done.
- To correct this, you only need to make changes in the file diag3.f.
- For diagnostic ND37, you need to change the lines :
DO M = 1, TMAX(37) N = TINDEX(37,M) ! Cycle if N is too high IF ( N > NMAX ) CYCLE ! Tracer number NN = GET_WETDEP_IDWETD( N ) DO L = 1, LD37 ARRAY(:,:,L) = AD37(:,:,L,M) / SCALECONV ENDDO
- by:
! Get actual # of soluble tracers NMAX = GET_WETDEP_NSOL() ! Loop over soluble tracers DO N = 1, NMAX ! Tracer number NN = GET_WETDEP_IDWETD( N ) ! To output only the species asked in input.geos ! (ccc, 5/15/09) MM = 1 MMB = 0 DO WHILE ( MMB /= NN .AND. MM <= TMAX(37) ) MMB = TINDEX(37,MM) MM = MM + 1 ENDDO IF ( MMB /= NN ) CYCLE DO L = 1, LD37 ARRAY(:,:,L) = AD37(:,:,L,N) / SCALECONV ENDDO
- For each diagnostic ND17, ND18, ND38, ND39 and ND44, you need to add the following lines :
! To output only the species asked in input.geos ! (ccc, 5/15/09) MM = 1 MMB = 0 DO WHILE ( MMB /= NN .AND. MM <= TMAX(17) ) MMB = TINDEX(17,MM) MM = MM + 1 ENDDO IF ( MMB /= NN ) CYCLE
- These lines have to be added between the line initializing NN and the lines populating the ARRAY variable. See how it's done in ND37 (upper in this email) for an example. You need to change the index in TMAX and TINDEX to match the diagnostic number.
- The diagnostic ND44 writes two different categories to ctm.bpch, 'DRYD-FLX' and 'DRYD-VEL'. There is one loop over the tracers for each category so you need to add the previous lines of code into each loop. Other diagnostics write two categories to ctm.bpch but they are written in the same tracer loop, so it is enough to add the previous lines of code only once.
--Ccarouge 09:49, 19 May 2009 (EDT)
On-the-fly regridding for 0.5x0.667 nested grids
Win Trivitayanurak (wtrivita@staffmail.ed.ac.uk) wrote:
- Hi,
- this is a follow up to the data regridding problem that I ahve discussed with Philippe the other day. The problem was that, for my China nested-grid 0.5x0.667 simulation, the subroutine DO_THE_REGRIDDING in regrid_1x1_mod.f previously did not have the case for nested-grid 0.5x0.667. Therefore, I wrote a new subroutine called REGRID_05x0666_NESTED and added the call for it inside the existing subroutine DO_THE_REGRIDDING. This should work just fine w/ a N.America nested-grid 0.5x0.667 simulation too but will halt the run if used for running other region, which only makes sense. Please see in the attached file.
The regrid_1x1_mod.f file given by Win was included in GEOS-Chem v8-02-01.
--Ccarouge 15:50, 7 May 2009 (EDT)
Bug with EMEP ship emissions for nested grids
Win Trivitayanurak (wtrivita@staffmail.ed.ac.uk) wrote:
- This bug is in subroutine EMFOSSIL in emfossil.f. The use of function GET_EUROPE_MASK when LEMEP = .false. crashes the run because, i think, the function is not really valid when EMEP emission is not turned on. When I ran the China nested-grid, all other emission choices need to be turned off, e.g. EMEP, BRAVO. Only STREETS can be on for the China nested grid run. Therefore, w/o this fix, the run won't go anywhere.
- I copy the section of the code and paste it here below. See the change in the line with !Prior to 5/1/09 (win, 5/1/09).
!Prior to 5/1/09 (win, 5/1/09) ! ELSE IF ( LEMEPSHIP .AND. ! $ ( GET_EUROPE_MASK( I, J ) > 0d0 ) ) THEN ! ! ! Get SHIP EMEP emissions for NOx [molec/cm2/s] ! SHIP = GET_EMEP_ANTHRO( I, J, NN, SHIP=.TRUE.) ELSE IF ( LEMEPSHIP ) THEN IF ( GET_EUROPE_MASK( I, J ) > 0d0 ) ! Get SHIP EMEP emissions for NOx [molec/cm2/s] & SHIP = GET_EMEP_ANTHRO( I, J, NN, SHIP=.TRUE.)
The change was introduced in emfossil.f in v8-02-01.
--Ccarouge 15:50, 7 May 2009 (EDT)
Bug in sulfate_mod.f to turn off biomass emissions
Win Trivitayanurak (wtrivita@staffmail.ed.ac.uk) wrote:
- In subroutine EMISSSULFATE inside sulfate_mod.f, there should be the switch LBIOMASS to check if the GET_BIOMASS SO2 and GET_BIOMASS_NH3 should be called or not. Before this fix, the code leaves no choice to cleanly turn off biomass burning emission completely because these two calls would occur everytime it is a new month. Please see the attached file in the mentioned subroutine where I commented.
The modifications to sulfate_mod.f file given by Win are now implemented in v8-02-01.
--Ccarouge 15:50, 7 May 2009 (EDT)
Minor error in gamap_mod.f
Noelle Selin (selin@mit.edu) wrote:
- In my testing/debugging, the compiler found another problem: in gamap_mod, line 1313 and forward (init_tracerinfo):
DO T = 1, N_TRACERS ! Store quantities for each tracer NAME (T,45) = TRACER_NAME(T) FNAME(T,45) = TRIM( NAME(T,45) ) // ' tracer' MOLC (T,45) = INT( TRACER_COEFF(T,1) ) SCALE(T,45) = 1.0e+9 INDEX(T,45) = N
- The error pulled was that N did not have a previous value. Should it be T? (I changed it to T and it seemed OK...but again it's gamap_mod so it doesn't seem like a big deal).
Philippe Le Sager (plesager@seas.harvard.edu) wrote:
- yes, it should be T. We recently found about that when debugging for Jenny, and we already put it in the next version being tested now.
--Bob Y. 12:28, 6 May 2009 (EDT)
Bug fix for Streets emissions on 0.5x0.666 nested grid
We found the v8-01-04 of Geos-Chem doesn't read the correct Streets emission files for the 0.5x0.666 nested grid over China. Right now it would read Streets emissions at 1x1 resolution and regrid them.
To correct it, you need to change :
! Read David Streets' emisisons over China / SE ASia IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN CALL EMISS_STREETS_ANTHRO ENDIF
by :
! Read David Streets' emisisons over China / SE ASia IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN #if defined(GRID05x0666) CALL EMISS_STREETS_ANTHRO_05x0666 #else CALL EMISS_STREETS_ANTHRO #endif ENDIF
in emission_mod.f for every call to EMISS_STREETS_ANTHRO. I.e in the case of full chemistry, offline aerosol, tagged CO, CH4, CO2 and offline H2/HD.
In streets_anthro_mod.f, in the subroutine emiss_streets_anthro_05x0666, you need to change all the lines :
CALL READ_STREETS(...
by :
CALL READ_STREETS_05x0666(...
WARNING : make sure to change the calls to READ_STREETS only in the emiss_streets_anthro_05x0666 subroutine and NOT in emiss_streets_anthro.
--Ccarouge 15:30, 11 March 2009 (EDT)
Outstanding Issues in v8-02-01
Bug with ND52 diagnostic
The ND52 diagnostic for gamma(HO2) doesn't work if you ask to output a subset of levels. You need to add a check on the levels when calculating AD52. You need to change the following lines in calcrate.f:
IF ( ND52 > 0 ) THEN ! Archive gamma HO2 in AD52 AD52(IX,IY,IZ) = & AD52(IX,IY,IZ) + DUMMY3(KLOOP) ENDIF
by
IF ( ND52 > 0 ) THEN ! Archive gamma HO2 in AD52 IF ( IZ <= LD52 ) THEN AD52(IX,IY,IZ) = & AD52(IX,IY,IZ) + DUMMY3(KLOOP) ENDIF ENDIF
This bug was solved in v8-02-02.
--Ccarouge 16:51, 16 June 2009 (EDT)
Bug with PRIVATE declaration in sulfate_mod.f
In SRCNH3 (in sulfate_mod.f), please replace the PRIVATE declaration line 4939 :
!$OMP+PRIVATE( I, J )
with the PRIVATE declaration :
!$OMP+PRIVATE( I, J, AREA_CM2, EPA_AN, EPA_BF, CAC_AN )
and in SRCSO4 please change the PRIVATE declaration in line 4690 from:
!$OMP+PRIVATE( I, J, AREA_CM2, EPA_AN, EPA_BF )
to
!$OMP+PRIVATE( I, J, AREA_CM2, EPA_AN, EPA_BF, CAC_AN )
In both cases the CAC_AN variable has to be added to the PRIVATE declaration.
--Ccarouge 10:22, 28 May 2009 (EDT)
Bug with online 2ndary aerosol
Replace line 412 of aerosol_mod.f:
IF ( IDTSOAM ) THEN
with:
IF ( IDTSOAM > 0 ) THEN
This is a bug in GEOS-Chem v8-02-01 release. However, it is more of a matter of Fortran style. The expression in parentheses in the IF statement should be a logical expression and not an integer expression, as is the case above. Some compilers (e.g. PGI) will always choke on this. However, other compilers (e.g. IFORT) will evaluate the expression as TRUE if the integer IDTSOAM is nonzero. This will be fixed in the following release.
--phs 09:56, 28 May 2009 (EDT)
--Bob Y. 10:46, 28 May 2009 (EDT)