Difference between revisions of "GEOS-Chem v9-01-03"
(→Fix for regridding error in offline CO2 simulation) |
(→Bug fix for Intel Fortran Compiler 12) |
||
Line 600: | Line 600: | ||
'''''[mailto:psk9@duke.edu Prasad Kasibhatla] wrote:''''' | '''''[mailto:psk9@duke.edu Prasad Kasibhatla] wrote:''''' | ||
− | :I am experiencing the [[Intel Fortran Compiler|IFORT 12]] compile failure of GEOS-Chem v9-01-03 with nested grid options turned on in <tt>define.h</tt>. The compile seems to be failing in <tt>strat_chem_mod.F90</tt> (see end of this msg) | + | :I am experiencing the [[Intel Fortran Compiler|IFORT 12]] compile failure of GEOS-Chem v9-01-03 with nested grid options turned on in <tt>define.h</tt>. The compile seems to be failing in <tt>strat_chem_mod.F90</tt> (see end of this msg). |
− | + | Please see [[Intel_Fortran_Compiler#Bug_fix_for_GEOS-Chem_compiled_with_Intel_Fortran_Compiler_12|this wiki post on our ''Intel Fortran Compiler'' wiki page]] for a full description of the issue. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | --[[User:Bmy|Bob Y.]] 15:27, 20 December 2012 (EST) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | --[[User:Bmy|Bob Y.]] | + | |
== Outstanding issues not yet resolved in v9-01-03 == | == Outstanding issues not yet resolved in v9-01-03 == |
Revision as of 20:27, 20 December 2012
Contents
- 1 Overview
- 2 Previous issues now resolved in v9-01-03
- 2.1 Bug fix for GLCO3 and GLPAN in standard mechanism
- 2.2 Structural changes to clarify science behind washout
- 2.3 Correct out-of-bounds error in offline aerosol simulation
- 2.4 Bug fixes in diag3.F
- 2.5 Bug fixes for nested-grid simulation
- 2.6 Bug fix in streets_anthro_mod.F for offline simulations
- 2.7 Bug fixes for dicarbonyls simulation
- 2.8 Bug fixes for regional emission masks
- 2.9 Fixes for numerical stability in the nested-grid simulation
- 3 Post-release patches
- 4 Outstanding issues not yet resolved in v9-01-03
Overview
RELEASED 14 Sep 2012
- Previous version: GEOS-Chem v9-01-02
- Next version: GEOS-Chem v9-02
What's new in this version
GEOS-Chem v9-01-03 contains the following major updates and improvements.
--Bob Y. 14:16, 5 October 2012 (EDT)
New data directories
The following new data directories have been added for GEOS-Chem v9-01-03. You will have to download the directories relevant to your simulation.
You can download these directories with anonymous FTP or the Wget utility. For instructions, please see Chapter 2.4, Downloading the GEOS-Chem shared data directories in the GEOS-Chem Online User's Guide.
GEOS_0.5x0.666_NA/CH4_201203 # For nested-grid NA CH4 simulation GEOS_0.5x0.666_NA/mercury_201203 # For nested-grid NA mercury simulation GEOS_1x1/anth_scale_factors_201111 # Contains updated NOx scale factors derived from OMI GEOS_1x1/PARANOX_201202 # For PARANOX ship plume model GEOS_2x2.5/CH4_201203 # Updated CH4 simulation files GEOS_2x2.5/TOMS_201203 # Update TOMS O3 columns (currently only used for GEOS-5.7.2) GEOS_2x2.5/bromine_201205 # Bromine emissions and stratospheric Bry concentrations GEOS_2x2.5/historical_emissions_201203 # Historical emission inventories of BC and POA GEOS_2x2.5/lightning_NOx_201101 # Contains new lightning redistribution file for MERRA 2x2.5 GEOS_2x2.5/strat_chem_201206 # Input files for applying linearized stratospheric chemistry GEOS_4x5/CH4_201203 # Updated CH4 simulation files GEOS_4x5/TOMS_201203 # Update TOMS O3 columns (currently only used for GEOS-5.7.2) GEOS_4x5/bromine_201205 # Bromine emissions and stratospheric Bry concentrations GEOS_4x5/historical_emissions_201203 # Historical emission inventories of BC and POA GEOS_4x5/strat_chem_201206 # Input files for applying linearized stratospheric chemistry GEOS_NATIVE/FastJ_201204 # Contains netCDF version of old ASCII file jv_atms.dat GEOS_NATIVE/Olson_Land_Map_201203 # Olson 1992 and 2001 land map files in netCDF format GEOS_NATIVE/MODIS_LAI_201204 # MODIS LAI files in netCDF format GEOS_NATIVE/MAP_A2A_Regrid_201203 # Contains files with lon and lat edge info used for regridding GEOS_NATIVE/GFED3_201203 # Monthly, daily, and 3-hourly GFED3 biomass burning emissions GEOS_NATIVE/TOMS_201203 # Update TOMS O3 columns (currently only used for GEOS-5.7.2) GEOS_NATIVE/bromine_201205 # Bromine emissions and stratospheric Bry concentrations GEOS_NATIVE/historical_emissions_201203 # Historical emission inventories of SO2, NOx, BC, and POA GEOS_NATIVE/strat_chem_201206 # Input files for applying linearized stratospheric chemistry
--Melissa Payer 14:12, 23 July 2012 (EDT)
Previous issues now resolved in v9-01-03
Bug fix for GLCO3 and GLPAN in standard mechanism
This update was tested in the 1-month benchmark simulation v9-01-03a and approved on 08 Dec 2011.
Prior to v9-01-02, some species in the globchem.dat and ratj.d files were left as inactive, but should have been declared as dead. For a full description of this issue, please see this wiki post on the Chemistry Issues page.
--Bob Y. 17:07, 14 December 2011 (EST)
Structural changes to clarify science behind washout
This update was tested in the 1-month benchmark simulation v9-01-03e and approved on 02 Feb 2012.
Helen Amos wrote:
- Qiaoqiao's aerosol scavenging updates should *not* be applied to HNO3. HNO3 should still be scavenged according to Eq (14) from Jacob (2000). This issue came up a while back and as a result I wrote code to split washout into three cases: aerosols, HNO3, and soluble gases. I restructured the washout code specifically to handle Qiaoqiao's updates and make sure HNO3 didn't change, so if no one objects I suggest these structure changes go into the std code with Qiaoqiao's updates.
--Melissa Payer 16:01, 23 January 2012 (EST)
Correct out-of-bounds error in offline aerosol simulation
This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.
When using the offline aerosol simulation, an out-of-bounds error was found to occur in array WTAERA within subroutine RDAER (aerosol_mod.F). To fix the error, add the following lines to INIT_COMODE (comode_mod.F) below the offline aerosol simulation IF statement:
ALLOCATE( WTAREA( ITLOOP, NDUST+NAER ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'WTAREA' ) WTAREA = 0d0 ALLOCATE( WERADIUS( ITLOOP, NDUST+NAER ), STAT=AS ) IF ( AS /= 0 ) CALL ALLOC_ERR( 'WERADIUS' ) WERADIUS = 0d0
--Melissa Payer 17:47, 11 January 2012 (EST)
Bug fixes in diag3.F
Bug fix for mass transport flux diagnostics
This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.
Mat Evans wrote:
- In diag3.f line 1740
ARRAY(:,:,1:LD24) = MASSFLEW(:,:,LD24:1:-1,N) / SCALEDYN
- Should be
ARRAY(:,:,1:LD24) = MASSFLEW(:,:,LLPAR:LLPAR-LD24+1:-1,N) / SCALEDYN
- And the same for LD25 Line 1773
- And for same for LD26 line 1806
- Everything is fine if LD24 = LLPAR but it seems to go wrong if you try to output a subset of the model levels..
--Melissa Payer 17:28, 12 January 2012 (EST)
Bug fix in ND67 sea level pressure diagnostic
This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.
When plotting SLP in GAMAP for GEOS-5 at both 4°x5° and 2°x2.5° resolutions, the values appeared to be half of what they should be (SLP ~500 hPa globally).
In diag3.F, the lines:
CASE ( 18 ) SCALEX = SCALE_ND67 UNIT = 'hPa'
should be changed to:
CASE ( 18 ) #if defined( MERRA ) SCALEX = SCALE_A1 ! MERRA SLP is hourly #else SCALEX = SCALE_I6 ! Otherwise SLP is 6-h inst. #endif UNIT = 'hPa'
As it is now, SCALE_ND67 = SCALE_A3 but SLP is an I6 field for GCAP, GEOS-3, GEOS-4, and GEOS-5.
--Melissa Payer 17:42, 12 January 2012 (EST)
Bug fixes for nested-grid simulation
This update was tested in the 1-month benchmark simulation v9-01-03g and approved on 27 Feb 2012.
Dylan Millet wrote:
- My student Lu is running N. American nested grid with the v9-3-1b that Bob provided. We found a few minor glitches, mostly specific to the nested grid, that we thought we'd pass along. Perhaps they've already been fixed on your end.
- in land_mercury_mod.f, the variable "SOIL_EMS_FAC" is undefined for the 05x0666 case.
- the Makefiles in the GeosApm and GeosTomas directories each have an intermediate "else" that needs to be changed to an "elif"
- in tpcore_bc_mod.F, when reading in the boundary conditions if ITS_A_NEW_DAY, the call to ITS_A_NEW_DAY() needs to be ITS_A_NEW_DAY(.TRUE.) so that it will read in the boundary conditions actually at midnight. Otherwise it won't read them in at the start of the run.
--Melissa Payer 11:11, 18 January 2012 (EST)
Bug fix in streets_anthro_mod.F for offline simulations
This update was tested in the 1-month benchmark simulation v9-01-03h and approved on 09 Mar 2012.
Please see this wiki post on our David Streets regional emissions for China and SE Asia wiki page for a full description of the issue.
--Bob Y. 15:12, 20 December 2012 (EST)
Bug fixes for dicarbonyls simulation
This update was tested in the 1-month benchmark simulation v9-01-03n and approved on 08 Jun 2012.
The following issues were discovered in the dicarbonyls simulation shortly after the release of GEOS-Chem v9-01-01. These will all been fixed in v9-01-03. Please follow the links below for more information:
--Melissa Payer 12:34, 20 March 2012 (EDT)
Bug fixes for regional emission masks
This update was tested in the 1-month benchmark simulation v9-01-03q.
Please see this wiki post on our Regridding in GEOS-Chem wiki page for a full description of the issue.
--Bob Y. 15:15, 20 December 2012 (EST)
Fixes for numerical stability in the nested-grid simulation
Several minor fixes were added for the nested-grid simulation, mostly for numerical stability and more efficient memory usage.
- (1) In GeosCore/strat_chem_mod.F90, routine GET_RATES_INTERP: we now avoid using array slices in the call to the TRANSFER_3D subroutine. This prevents the creation of large "temporary" arrays by the code. You will now see this code:
!############################################################################## !### call transfer_3D( array, array2 ) !### !### PROD(:,:,:,N) = ARRAY2 !############################################################################## ptr_3D => PROD(:,:,:,N) call transfer_3D( array, ptr_3D ) NULLIFY( ptr_3D )
- (2) In GeosCore/tpcore_bc_mod.F:
- Remove parallel loops from routine CLEAN_TPCORE_BC. Now just use F90 array assignment statements (i.e. BC = 0d0).
- Use 0d0 instead of 0e0 to initialize arrays, in order to avoid loss of precision. The 0d0 constant will give a zero result out to 15 or 16 places of precision, rather than about 6 or 7.
- (3) In GeosCore/transport_mod.F:
- Add more calls to DEBUG_MSG after DO_WINDOW_TPCORE_BC and the array flipping.
- We also made the structural changes described below. These do not affect any scientific results.
- (4) In GeosCore/main.F:
- Rename the argument to routine CHECK_STT_05x0666 from "after chemistry" to "end of chem section, before wetdep". An error may be flagged here on a timestep where chemistry isn't done.
- (5) In Headers/define.h:
- Removed C-preprocessor flags EXTERNAL_GRID, EXTERNAL_FORCING flags. These are now set by Makefile_Header.mk.
- (6) In Makefile_header.mk:
- Add the following new optional Makefile variables:
- OPT: Lets you change the default optimization level (e.g. from -O2 (default) to -O1)
- DEVEL=yes: Activates the DEVEL C-preprocessor switch for Grid-Independent model development.
- EXTERNAL_GRID=yes: Activates the EXTERNAL_GRID C-preprocessor switch for Grid-Independent model development.
- EXTERNAL_FORCING=yes: Activates the EXTERNAL_FORCING C-preprocessor switch for Grid-Independent model development.
- Add the following new optional Makefile variables:
--Bob Y. 16:20, 7 September 2012 (EDT)
Post-release patches
The following fixes were implemented after the official release of v9-01-03.
Fix for regridding error in offline CO2 simulation
We have corrected this issue as a post-release patch on 22 Sep 2012. This issue does not affect the full-chemistry simulations, only the CO2 simulation.
Ray Nassar wrote:
- There is a bug in v9-01-03 for the CO2 simulation that causes a crash. It relates to the MAP_A2A regridding and the fact that the net terrestrial exchange file is named with geos.1x1 (360x181) although it is actually generic 1x1 (360x180) and it is trying to be read as geos.1x1.
Please see this wiki post on our CO2 simulation wiki page for a full description of the issue.
--Bob Y. 15:21, 20 December 2012 (EST)
Bug fix for improving speedup in calcrate.F
We have just discovered a issue after the release of v9-01-03 that may be causing the full-chemistry simulation to take longer to execute than is necessary. When the Bromine chemistry updates were added, a this DO loop over all lons/lats/levels was placed within subroutine calcrate.F:
REAL*8 :: QLIQ(IIPAR,JJPAR,LLPAR), QICE(IIPAR,JJPAR,LLPAR) darea = 0d0 #if defined( GEOS_5 ) || defined( MERRA ) || defined( GEOS_57 ) QICE = QI QLIQ = QL #else ! GEOS-4 and GCAP do not have QI or QL variables. Make same assumption ! as we do in wetscav_mod.F. DO I=1,IIPAR DO J=1,JJPAR DO L=1,LLPAR IF ( T(I,J,L) .LE. 248d0 ) THEN QLIQ(I,J,L) = 0d0 ELSE IF ( T(I,J,L) .GE. 268d0 ) THEN QLIQ(I,J,L) = 1d-6 ELSE QLIQ(I,J,L) = 1d-6 * ( ( T(I,J,L) - 248d0 ) / 20d0 ) ENDIF ENDDO ENDDO ENDDO QICE = 1d-6 - QLIQ #endif
But calcrate.F itself is called from within a parallel loop from a higher level routine. This means that calcrate.F only works on a few grid boxes at a time, and not the whole globe. The extra DO loop over all lons/lats/levels from within calcrate.F is therefore unnecessary. The extra iterations DO NOT appear to impact the scientific results, but they do add extra CPU cycles to the simulation.
We have rewritten the QICE and QLIQ arrays so that they are dimensioned with KBLOOP instead of IIPAR,JJPAR,LLPAR. We have also disabled a debug print statement in the routine cldice_HbrHOBr_rxn.F.
We have pushed update this to the GEOS_Chem repository on 04 Oct 2012 (Git commit named "Remove potential parallelization bottleneck in calcrate.F").
--Bob Y. 12:27, 4 October 2012 (EDT)
Fixed typos in vdiff_mod.F90
When we call routine SETEMIS from within the non-local PBL mixing scheme (VDIFF</tt), then we have to change this line:
!------------------------------------------------------------------------------- ! Prior to 10/2/12: ! Need to also pass a value to the am_I_Root argument of setemis.F ! (mpayer, bmy, 10/2/12) ! CALL SETEMIS( EMISRR, EMISRRN ) !------------------------------------------------------------------------------- CALL SETEMIS( EMISRR, EMISRRN, .TRUE. )
The third argument of SETEMIS is <tt>am_I_Root, which is a modification for the Grid-independent GEOS-Chem project.
--Bob Y. 12:40, 4 October 2012 (EDT)
Bug fix for Intel Fortran Compiler 12
Prasad Kasibhatla wrote:
- I am experiencing the IFORT 12 compile failure of GEOS-Chem v9-01-03 with nested grid options turned on in define.h. The compile seems to be failing in strat_chem_mod.F90 (see end of this msg).
Please see this wiki post on our Intel Fortran Compiler wiki page for a full description of the issue.
--Bob Y. 15:27, 20 December 2012 (EST)
Outstanding issues not yet resolved in v9-01-03
The following issues shall be corrected in a future version.
Negative ship emissions caused by PARANOX
- I found that in some grid boxes the INT_OPE quantity from PARANOX is going negative, which is probably causing my runs to die. Here are some outputs for 2005/08/01 at 1:30 GMT (the problem time):
With TURBDAY PBL mixing (run dies): ### JLOOP : 12447 11=IDEOX ### int_ope : -0.1077172 ### frac_nox: 0.7866639 ### ship : 0.425996044565739 ### EMIS_BL : -6.823105207003066E+019 ### VOLUME : 1.043702600336568E+018 ### REMIS : -65.3740366729256 With Non-local PBL mixing (run does not die): ### JLOOP : 12447 11=IDEOX ### int_ope : -3.7102826E-02 ### frac_nox: 0.7883647 ### ship : 0.425996044565739 ### EMIS_BL : -2.331458316043083E+019 ### VOLUME : 1.043702600336568E+018 ### REMIS : -22.3383396313399
- Note that in both cases, INT_OPE is negative. However, when TURBDAY PBL mixing is used, INT_OPE causes the REMIS emissions array to be 3X more negative. This probably causes SMVGEAR not to be able to converge. (Why it doesn’t choke when the Non-local PBL mixing (aka NLPBL) is turned on may just be a matter of how sensitive SMVGEAR is to negative inputs; maybe that run would eventually die at some later point, we don’t know.)
- I have implemented a kludge in this section of calcrate.F in order to prevent negative emissions from going to the solver:
!======================================================== ! SHIP O3 emissions [molec/box/s] ! Distribute emissions thru the entire boundary layer !======================================================== . . . ! Loop over the boundary layer DO L = 1, TOP . . . IF ( JLOOP /= 0 ) THEN . . . ! Convert ship O3 emissions from [molec NO/box/s] ! to [molec NO/cm3/s] and store in the REMIS array REMIS(JLOOP,IDEOX) = REMIS(JLOOP,IDEOX) + & EMIS_BL / VOLUME(JLOOP) !%%% DO NOT LET NEGATIVE SHIP EMISSIONS GET !%%% ARCHIVED INTO REMIS (bmy, mpayer, 6/20/12) IF ( REMIS(JLOOP,IDEOX) < 0d0 ) THEN REMIS(JLOOP,IDEOX) = 0d0 ENDIF ENDIF ENDDO
Geert Vinken wrote:
- Negative O3 emissions are physical, as O3 could be titrated by the NO in the plume. Especially during night and winter conditions I expect this to happen. I put them in as negative emissions, do you think this should be changed somehow?
- I am not 100% convinced that negative emissions are good for the chemical solver. We need to study that further. Even if we do not apply the above kludge when NLPBL=.TRUE. then we don't really know if that will cause the code to choke after several months. Until we get a chance to study this in more depth I would keep the kludge as-is, and make a note of it for now.
- Also, the way we have implemented the kludge is that we do allow for negative production efficiencies to reduce the total emissions, but just that we don't reduce them below zero. I think that is a reasonable compromise for the time being.
--Bob Y. 12:07, 29 August 2012 (EDT)
IFORT 12 issues
Some users have reported compilation issues with version 12 of the Intel Fortran Compiler. If possible, we recommend staying with Intel Fortran Compiler version 11. We are investigating.
--Bob Y. 12:42, 4 October 2012 (EDT)
Bug fix in hdf_mod.F
This update was tested in the 1-month benchmark simulation v9-02b and approved on 29 Oct 2012.
Sajeev Philip wrote:
Bug fix in hdf_mod.F (line 155):
DO J = 0, NJ-1 LAT(J+1) = GET_YMID(J+JMIN,1,1) ENDDO
should be
DO J = 0, NJ-1 LAT(J+1) = GET_YMID(1,J+JMIN,1) ENDDO
Otherwise, LAT variable in HDF files will be wrong.
Tagged CO simulation dies with compilation errors
We discovered some minor errors in the tagged CO simulation after the release of v9-01-03. These are now corrected in GEOS-Chem v9-02.
--Bob Y. 11:30, 23 October 2012 (EDT)
Bug fix in nei2005_anthro_mod.F
The following bug in the EPA/NEI2005 nested-grid emissions was present in GEOS-Chem v9-01-03. This bug was corrected in GEOS-Chem v9-02. Thanks to Sajeev Philip for implementing the fix.
--Bob Y. 11:09, 25 October 2012 (EDT)