Olson land map: Difference between revisions
Line 491: | Line 491: | ||
=== File read error in routine rdland.F affecting 2 x 2.5 simulations === | === File read error in routine rdland.F affecting 2 x 2.5 simulations === | ||
< | <span style="color:red">'''''This is now a moot point as <tt>olson_landmap_mod.F90</tt> has replaced <tt>rdland.F</tt> as of [[GEOS-Chem v9-01-03 benchmark history#v9-01-03i|GEOS-Chem v9-01-03i]]. However, if you are comparing results from v9-01-03 to older 2° x 2.5° simulations you may find slight differences that may be attributed to this update.'''''</span> | ||
During implementation of the [[Grid-independent GEOS-Chem]], we found a minor bug in how routine <tt>rdland.F</tt> reads information from the <tt>vegtype.global</tt> file (Olson 1992 land map) for 2° x 2.5° GEOS-Chem simulations. | During implementation of the [[Grid-independent GEOS-Chem]], we found a minor bug in how routine <tt>rdland.F</tt> reads information from the <tt>vegtype.global</tt> file (Olson 1992 land map) for 2° x 2.5° GEOS-Chem simulations. |
Revision as of 19:41, 9 February 2016
On this page we discuss the land map from Jennifer Olson that is currently used by the GEOS-Chem Dry deposition and Soil NOx emissions modules.
Olson 1992 land map
The Olson 1992 land map is currently used in GEOS-Chem versions up to and including v9-01-03.
Overview
The GEOS-Chem Dry deposition and Soil NOx emissions modules rely on the Olson (1992) land map. This map specifies 74 different land types on the 0.5° x 0.5° GENERIC GRID, which is defined by:
Lon centers = -179.75, -179.25, -178.75, -178.25, ... 178.25, 178.75, 179.25, 179.75 Lat centers = -89.75, -89.25, -88.75, -88.25, ... 88.25, 88.75, 89.25, 89.75
The Olson 1992 map contains 74 individual land types:
0 Water 25 Deciduous 50 Desert 1 Urban 26 Deciduous 51 Desert 2 Shrub 27 Conifer 52 Steppe 3 --- 28 Dwarf forest 53 Tundra 4 --- 29 Trop. broadleaf 54 rainforest 5 --- 30 Agricultural 55 mixed wood/open 6 Trop. evergreen 31 Agricultural 56 mixed wood/open 7 --- 32 Dec. woodland 57 mixed wood/open 8 Desert 33 Trop. rainforest 58 mixed wood/open 9 --- 34 --- 59 mixed wood/open 10 --- 35 --- 60 conifers 11 --- 36 Rice paddies 61 conifers 12 --- 37 agric 62 conifers 13 --- 38 agric 63 Wooded tundra 14 --- 39 agric. 64 Moor 15 --- 40 shrub/grass 65 coastal 16 Scrub 41 shrub/grass 66 coastal 17 Ice 42 shrub/grass 67 coastal 18 --- 43 shrub/grass 68 coastal 19 --- 44 shrub/grass 69 desert 20 Conifer 45 wetland 70 ice 21 Conifer 46 scrub 71 salt flats 22 Conifer 47 scrub 72 wetland 23 Conifer/Deciduous 48 scrub 73 water 24 Deciduous/Conifer 49 scrub
which are plotted here. Only one land type is assigned to each 0.5° x 0.5° grid box.
--Bob Y. 10:12, 22 March 2012 (EDT)
Preparation of input files for GEOS-Chem
The raw Olson 1992 land map data are stored in the file owe14d.0.5 (which is now archived in Bob Yantosca's disk space). This was an ASCII file containing 20 integer values per line (Fortran format '(20i4)').
The IDL routine REGRIDH_LAI (which is distributed as part of the GAMAP package) was used to prepare the Olson land map for input into GEOS-Chem. REGRIDH_LAI read these files as input:
- owe14d.0.5: Olson land map file at 0.5° x 0.5° resolution
- lai_all.dat: leaf area index data at 1° x 1° resolution
and created these files as output:
- vegtype.global: Olson land map indices, on the GEOS-Chem grid
- laiMM.global: leaf area index files, on the GEOS-Chem grid (MM = 01 .. 12)
Therefore, REGRIDH_LAI had to be called several times in order to create the proper vegtype.global files for each different GEOS-Chem grid configuration. (4° x 5°, 2° x 2.5°, and the 0.5° x 0.666° nested grids).
NOTE: The original leaf area index data (in file lai_all.dat has now been supplanted by those from the MODIS satellite instrument.
Structure of the vegtype.global file
As mentioned above, each GEOS-Chem grid configuration required its own vegtype.global file. The vegtype.global file contained the following information:
- GEOS-Chem grid box longitude index (I)
- GEOS-Chem Grid box latitude index (J)
- Number of Olson land types (at 0.5° x 0.5° resolution) that fit inside the GEOS-Chem grid box (I,J)
- List of indices of all Olson land types that fit inside the GEOS-Chem grid box (I,J)
- Fraction (in mils) of the GEOS-Chem grid box covered by each Olson land type
Each of these quantities was represented as an integer value (with 20 integer values per line). Therefore, a quick look at the 4° x 5° vegtype.global file would reveal the following text:
... 20 13 1 01000 21 13 1 01000 22 13 5 0 41 24 31 67 811 25 62 76 26 23 13 4 41 24 52 31 137 175 650 38 24 13 5 52 8 0 41 31 589 62 298 25 26 ... etc.
From the snippet of the vegtype.global file shown above, we would deduce that
GEOS-Chem grid box | has this many Olson land types | with indices | which cover this % of the box |
---|---|---|---|
(20,13) | 1 | 0 | 100% |
(21,13) | 1 | 0 | 100% |
(22,13) | 5 | 0, 41, 24, 31, 67 | 81.1%, 2.5%, 6.2%, 7.6%, 2.6%, respectively |
(23,13) | 4 | 41, 24, 52, 31 | 13.7%, 17.5%, 65.0%, 3.8%, respectively |
(24,13) | 5 | 52, 8, 0, 41, 31 | 58.9%, 6.2%, 29.8%, 2.5% and 2.6%, respectively |
GEOS-Chem routine rdland.F reads the information from the vegtype.global into the following arrays:
Array | Quantity | Where used |
---|---|---|
IREG( I, J ) | Number of Olson land types per GEOS-Chem grid box (i.e. Column #2 in the table above) |
Soil NOx emissions |
ILAND( I, J, 1:IREG(I,J) ) | List of Olson land type indices per each GEOS-Chem grid box (i.e. Column #3 in the table above) |
Soil NOx emissions |
IUSE( I, J, 1:IREG(I,J) ) | Fraction (in mils) of the GEOS-Chem grid box covered by each Olson land type (i.e. Column #4 in the table above) |
Soil NOx emissions |
IJREG( IJLOOP ) | Same data as in IREG, but with 1 spatial dimension | Dry deposition |
ILAND( IJLOOP, 1:IJREG(I,J) ) | Same data as in ILAND, but with 1 spatial dimension | Dry deposition |
IJUSE( IJLOOP, 1:IJREG(I,J) ) | Same data as in IUSE, but with 1 spatial dimension | Dry deposition |
FRCLND( I, J ) | Fraction of each GEOS-Chem grid box that is not water (computed from IUSE) | Several locations |
NOTES:
The reason why there are two sets of arrays (IREG, ILAND, IUSE) and (IJREG, IJLAND, IJUSE) is purely historical baggage. This usage dates back to the original Harvard/GISS CTM, from which we obtained the GEOS-Chem dry deposition and soil NOx emissions modules. The dry deposition routine DEPVEL takes 1-D vectors of size IIPAR*JJPAR as its spatial dimension, instead of using 2 separate spatial dimensions. Nobody has undertaken to rewrite this code since.
UPDATE (21 May 2012): In v9-01-03j, we have since modified GEOS-Chem module drydep_mod.F in order to remove the redundant IJREG, IJLAND, and IJUSE arrays. The same information is now obtained directly from arrays IREG, ILAND, and IUSE.
The Olson land types in the vegtype.global file are not listed by ascending order. Instead, the Olson land types in a GEOS-Chem grid box are listed by the order in which they are first found (searching by 0.5° x 0.5° longitudes first, then latitudes). It is important to keep this ordering so that the leaf area index data that is read in from disk will correspond properly to the Olson land types.
UPDATE (21 May 2012): As described in this section, we have developed a new GEOS-Chem module olson_landmap_mod.F90 that reads the Olson land map information from disk and populates the IREG, ILAND, and IUSE for backwards compatibility with existing code.
The FRCLND array is used in many locations within GEOS-Chem. It is computed by subtracting off the fraction of each GEOS-Chem grid box that is covered by land type 0 (water).
--Bob Y. 14:40, 21 May 2012 (EDT)
Olson 2001 land map
The Olson 2001 land map shall replace the Olson 1992 land map in GEOS-Chem.
Overview
At present, GEOS-Chem still uses the Olson 1992 land map. We shall implement the new Olson 2001 land map (which has a native resolution of 1km x 1km, but has been binned to 0.25° x 0.25° by Eloise Marais) for the GEOS-FP met fields (in order to facilitate the SEAC4RS campaign). Eventually, Olson 2001 shall replace Olson 1992 for all met field configurations in GEOS-Chem.
The Olson 2001 land map is described in this online document.
Eloise Marais wrote:
The Olson 2001 landcover map is at a native resolution of 1km x 1km. I've identified the dominant vegetation types in each 0.25° x 0.25° degree gridbox and use this as input to GEOS-Chem.
The Olson 2001 landcover map also has 96 vegetation types compared with 74 for Olson 1992. For the most part vegetation types 75-96 are either not dominant vegetation types at 0.25° x 0.25° or they are crop types that I lump with other similar vegetation types (either crops or mixed forest/field vegetation). Therefore, the rebinned Olson 2001 landcover data set at 0.25° x 0.25° degrees has 74 vegetation types (adhering to the same indexing as in Olson 1992).
There are also new vegetation types that are defined in the Olson 2001 data set from 1-74 that were previously listed as "not used" in drydep.table. These are assigned appropriate deposition ID # and z0 values.
Vegetation types that are listed as "not used" in the updated drydep.table dataset are those that are not dominant at 0.25° x 0.25°, but may be present in the 1km x 1km data set.
The largest differences to O3 dry deposition flux for a 1-day run in June 2007 at 4x5 degree resolution include the US, and the western portion of South America.
The table below shows the translation between the Olson 2001 and Olson 1992 land maps:
Olson 2001 Olson 1992 # in LC # Description Equivalent Dry deposition ============================================================================== 1 Urban 1 2 2 Low Sparse Grassland 2 3 3 Coniferous Forest 3 4 4 Deciduous Conifer Forest 4 5 5 Deciduous Broadleaf Forest 5 6 6 Evergreen Broadleaf Forests 6 7 7 Tall Grasses and Shrubs 7 8 8 Bare Desert 8 9 9 Upland Tundra 9 10 10 Irrigated Grassland 10 11 11 Semi Desert 11 12 12 Glacier Ice 12 13 13 Wooded Wet Swamp 13 14 14 Inland Water 0 1 15 Sea Water 0 1 16 Shrub Evergreen 16 17 17 Shrub Deciduous 18 19 18 Mixed Forest and Field none present 19 Evergreen Forest and Fields 19 20 20 Cool Rain Forest 20 21 21 Conifer Boreal Forest 21 22 22 Cool Conifer Forest 22 23 23 Cool Mixed Forest 23 24 24 Mixed Forest 24 25 25 Cool Broadleaf Forest 25 26 26 Deciduous Broadleaf Forest 26 27 27 Conifer Forest 27 28 28 Montane Tropical Forests 28 29 29 Seasonal Tropical Forest 29 30 30 Cool Crops and Towns 30 31 31 Crops and Town 31 32 32 Dry Tropical Woods 32 33 33 Tropical Rainforest 33 34 34 Tropical Degraded Forest 34 35 35 Corn and Beans Cropland 35 36 36 Rice Paddy and Field 36 37 37 Hot Irrigated Cropland 37 38 38 Cool Irrigated Cropland 38 39 39 Cold Irrigated Cropland none present 40 Cool Grasses and Shrubs 40 41 41 Hot and Mild Grasses and Shrubs 41 42 42 Cold Grassland 42 43 43 Savanna (Woods) 43 44 44 Mire, Bog, Fen 44 45 45 Marsh Wetland 45 46 46 Mediterranean Scrub 46 47 47 Dry Woody Scrub 47 48 48 Dry Evergreen Woods none present 49 Volcanic Rock none present 50 Sand Desert none present 51 Semi Desert Shrubs 51 52 52 Semi Desert Sage 52 53 53 Barren Tundra 53 54 54 Cool Southern Hemisphere Mixed Forests 54 55 55 Cool Fields and Woods 55 56 56 Forest and Field 56 57 57 Cool Forest and Field 57 58 58 Fields and Woody Savanna 58 59 59 Succulent and Thorn Scrub 59 60 60 Small Leaf Mixed Woods 60 61 61 Deciduous and Mixed Boreal Forest 61 62 62 Narrow Conifers 62 63 63 Wooded Tundra 63 64 64 Heath Scrub 64 65 65 Coastal Wetland, NW none present 66 Coastal Wetland, NE none present 67 Coastal Wetland, SE none present 68 Coastal Wetland, SW none present 69 Polar and Alpine Desert 69 70 70 Glacier Rock none present 71 Salt Playas none present 72 Mangrove 72 73 73 Water and Island Fringe none present 74 Land, Water, and Shore (see Note 1) none present 75 Land and Water, Rivers (see Note 1) none present 76 Crop and Water Mixtures 36 37 77 Southern Hemisphere Conifers none present 78 Southern Hemisphere Mixed Forest 32 33 79 Wet Sclerophylic Forest 26 27 80 Coastline Fringe none present 81 Beaches and Dunes none present 82 Sparse Dunes and Ridges none present 83 Bare Coastal Dunes none present 84 Residual Dunes and Beaches none present 85 Compound Coastlines none present 86 Rocky Cliffs and Slopes none present 87 Sandy Grassland and Shrubs none present 88 Bamboo none present 89 Moist Eucalyptus 26 27 90 Rain Green Tropical Forest 33 34 91 Woody Savanna 43 44 92 Broadleaf Crops 29 30 93 Grass Crops 41 42 94 Crops, Grass, Shrubs 41 42 95 Evergreen Tree Crop 33 34 96 Deciduous Tree Crop 33 34
The rebinned Olson 2001 land types at 0.25° x 0.25° resoluiton (74 land types total) are plotted here:
--Bob Y. 13:16, 4 February 2014 (EST)
Implementation notes
Adoption of the Olson 2001 land map requires the following updates to the GEOS-Chem source code & input files:
Parameter NNNTYPE in drydep_mod.F needs to be increased from 15 to 25.
UPDATE (21 May 2012): Parameter NNNTYPE was removed from v9-01-03j (17 Apr 2012). It is replaced by parameter NNTYPE in CMN_SIZE_mod.F.
Parameter NTYPE in CMN_SIZE_mod.F needs to be incresaed from 15 to 25.
UPDATE (21 May 2012): This was done in v9-01-03j (17 Apr 2012)
Parameter NNNVEGTYPE can be unchanged (it currently = 74). The rebinned Olson 2001 map at 0.25° x 0.25° uses the same indexing as Olson 1992.
UPDATE (21 May 2012): Parameter NNNVEGTYPE was removed from v9-01-03j (17 Apr 2012). It is replaced by parameter NNVEGTYPE in CMN_SIZE_mod.F.
A corresponding new drydep.table needs to be adopted for the Olson 2001 land map.
UPDATE (21 May 2012): This has been done in v9-01-03j (17 Apr 2012).
Also, we will not create vegtype.global files for the Olson 2001 land map, but will instead compute the corresponding values of the IREG, IUSE, ILAND, etc. arrays on-the-fly, as described in the next section.
- The dominant changes in going from the Olson 1992 to the Olson 2001 include additional crops not previously defined in Olson 1992 that vary from tree crops to grass crops. Another difference is a further subdivision of torpcial type vegetation into degraded vegetation and mixed forest and fields. These differences account for the discrepancies between Olson 1992 and Olson 2001 dry deposition rates in the figures found here on the Leaf area indices in GEOS-Chem page.
- The most appropriate dry deposition ID (that similar to the Olson 1992 landcover types) and correspondingly dry deposition parameters are assigned to the new vegetation types that are included in Olson 2001.
--Emarais 16:47, 13 April 2012 (EDT)
--Bob Y. 14:23, 21 May 2012 (EDT)
Updates to dry deposition when using the Olson 2001 land map
This update was tested in the 1-month benchmark simulation GEOS-Chem v10-01a and approved on 05 Feb 2014.
Patrick Kim implemented updates to improve dry deposition of ozone when using the Olson 2001 land map. For a full description, please see this post on our Dry deposition wiki page.
--Melissa Sulprizio 17:45, 3 February 2014 (EST)
Modifications for the grid-independent model
The Grid-independent GEOS-Chem project seeks to interface the GEOS-Chem model directly into a General Circulation Model (such as NASA's GEOS-5 GCM). In order for this to happen, much of the existing GEOS-Chem source code will have to be restructured. The GEOS-Chem Support Team is actively working towards this goal, which involves both (1) building a new interface that will link GEOS-Chem to a GCM, and (2) removing legacy code that will hamper grid-independent functionality.
During a recent test interfacing of GEOS-Chem with the Beijing Climate Center's CAM/GCM, we discovered that the existing vegtype.global files (and the corresponding rdland.F routine) was not compatible with the GCM, for several reasons:
- The GCM could not read in an ASCII file. It expected input to be in netCDF format.
- The vegtype.global files used by GEOS-Chem were hardwired to particular grids (4° x 5°, 2° x 2.5° and the 0.5° x 0.666° nested grids). However, the GCM was using a T42 spectral grid, for which we had not created a corresponding vegtype.global file.
- The vegtype.global files were created by offline pre-processing. Instead, we need to employ an on-the-fly regridding algorithm to translate the Olson 0.5° x 0.5° land map to the IREG, ILAND, IUSE, etc. arrays on the GEOS-Chem grid.
To this end, we have created a new GEOS-Chem module olson_landmap_mod.F90. This module, which replaces the rdland.F routine, does the following:
- Reads in the Olson 1992 land map at 0.5° x 0.5° resolution in netCDF format, instead of ASCII
- Constructs the IREG, ILAND, IUSE arrays on the GEOS-Chem grid (for soil NOx emissions)
- Constructs the FRCLND array on the GEOS-Chem grid (for use throughout GEOS-Chem)
The olson_landmap_mod.F90 was introduced to GEOS-Chem v9-01-03. It was validated with 1-month benchmark simulation v9-01-03i (approved on 17 Apr 2012). We have also extended the functionality of olson_landmap_mod.F90 so that it can also process the Olson 2001 land map as well as the Olson 1992 land map.
Also, certain ASCII input files to the dry deposition modules, such as:
- drydep.table
- drydep.coef
have been replaced by netCDF files in order to facilitate file I/O by external GCM's.
--Bob Y. 14:28, 21 May 2012 (EDT)
References
- Bey I., D. J. Jacob, R. M. Yantosca, J. A. Logan, B. Field, A. M. Fiore, Q. Li, H. Liu, L. J. Mickley, and M. Schultz, Global modeling of tropospheric chemistry with assimilated meteorology: Model description and evaluation, J. Geophys. Res., 106, 23,073-23,096, 2001
- Olson, J, World Ecosystems (WE1.4): Digital raster data on a 10 minute geographic 1080 x 2160 grid, in Global Ecosystems Database, version 1.0, Disc A, edited by NOAA Natl. Geophys. Data Center, Boulder, Colorado, 1992.
- Wang, Y., D.J. Jacob, and J.A. Logan, Global simulation of tropospheric O3-NOx-hydrocarbon chemistry, 1. Model formulation, J. Geophys. Res., 103, D9, 10,713-10,726, 1998.
- Olson 2011 land map reference may be found here: http://edc2.usgs.gov/glcc/globdoc2_0.php
Previously resolved issues
In this section we provide information about issues with the Olson land map code that have since been resolved.
Speed up computations in subroutine COMPUTE_OLSON_LANDMAP
These updates were validated in the 1-month benchmark simulation v10-01c and approved on 29 May 2014.
We have added a fix to speed up the computations in the parallel DO loop in routine COMPUTE_OLSON_LANDMAP. These computations are used to generate the arrays IREG, ILAND, and IUSE—which GEOS-Chem's legacy dry deposition module require as input—from the data in the Olson land map netCDF file.
We made the following source-code modifications:
(1) Add this section of code to the variable declaration section of subroutine COMPUTE_OLSON_LANDMAP:
! ! !DEFINED PARAMETERS: ! ! The following parameters are used to skip over Olson NATIVE GRID boxes ! that are too far away from the GEOS-CHEM GRID BOX. This can speed up ! the Olson computation by a factor of 100 or more! ! #if defined( GRID05x0666 ) || defined( GRID025x03125 ) REAL*8, PARAMETER :: latThresh = 1d0 ! Lat threshold, nested grid REAL*8, PARAMETER :: lonThresh = 1d0 ! Lon threshold, nested grid #else REAL*8, PARAMETER :: latThresh = 5d0 ! Lat threshold, global REAL*8, PARAMETER :: lonThresh = 6d0 ! Lon threshold, global #endif
(2) Add the code !$OMP SCHEDULE( DYNAMIC ) to the OpenMP parallel loop declaration. This will tell each CPU to grab the next available grid box in the array. This will improve the load balancing of the loop.
!====================================================================== ! Loop over all GEOS-CHEM GRID BOXES and initialize variables !====================================================================== !$OMP PARALLEL DO & !$OMP DEFAULT( SHARED ) & !$OMP PRIVATE( I, J, xedgeC_w, yedgeC_s, xedgeC_e ) & !$OMP PRIVATE( yedgeC_n, dxdy4, sumArea, JJ, III ) & !$OMP PRIVATE( dxdy, mapWt, II, xedge_w, yedge_s ) & !$OMP PRIVATE( xedge_e, yedge_n, area, type, maxIuse ) & !$OMP PRIVATE( sumIUse, uniqOlson, C, IG ) & !$OMP SCHEDULE( DYNAMIC )
(3) Modify this section of the parallel loop. The code should now look like this:
!=================================================================== ! Find each NATIVE GRID BOX that fits into the GEOS-CHEM GRID BOX. ! Keep track of the land types and coverage fractions. !=================================================================== ! Loop over latitudes on the NATIVE GRID DO JJ = 1, J_OLSON ! Latitude edges of this NATIVE GRID box yedge_s = latedge(JJ ) ! S edge yedge_n = latedge(JJ+1) ! N edge !%%%%%% LATITUDE SHUNT TO REDUCE WALL TIME (bmy, 3/20/14) %%%%%%%%%% !%%% !%%% Skip further computations unless we are within LATTHRESH !%%% degrees of the western edge of box (I,J). This prevents !%%% excess computations and subroutine calls. !%%% IF ( ABS( yedge_s - yedgeC_s ) > latThresh ) CYCLE !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! Loop over longitudes on the NATIVE GRID DO III = 1, I_OLSON ! Initialize dxdy = 0e0 mapWt = 0e0 ! Find the NATIVE GRID longitude index for use below. Account for ! the first GEOS-CHEM GRID box, which straddles the date line. IF ( isGlobal .and. IG == 1 ) THEN II = shiftLon(III) ELSE II = indLon(III) ENDIF ! Edges of this NATIVE GRID box xedge_w = lonedge(II ) ! W edge xedge_e = lonedge(II+1) ! E edge ! Because the first GEOS-CHEM GRID BOX straddles the date line, ! we have to adjust the W and E edges of the NATIVE GRID BOX to ! be in monotonically increasing order. This will prevent ! erronous results from being returned by GET_MAP_WT below. IF ( isGlobal .and. IG == 1 .and. II >= shiftLon(1) ) THEN xedge_w = xedge_w - 360e0 xedge_e = xedge_e - 360e0 ENDIF !%%%%%% LONGITUDE SHUNT TO REDUCE WALL TIME (bmy, 3/20/14) %%%%%% !%%% !%%% Skip further computations unless we are within LONTHRESH !%%% degrees of the western edge of box (I,J). This prevents !%%% excess computations and subroutine calls. !%%% IF ( ABS( xedge_w - xedgeC_w ) > lonThresh ) CYCLE !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ! "Area" of the GEOS-CHEM GRID BOX in degrees (DLON * DLAT) dxdy = ( xedge_e - xedge_w ) * ( yedge_n - yedge_s ) ! Get the mapping weight (i.e. The fraction of the NATIVE ! GRID BOX that lies w/in the GEOS-CHEM GRID BOX) CALL GET_MAP_WT( xedge_w, xedge_e, xedgeC_w, xedgeC_e, & yedge_s, yedge_n, yedgeC_s, yedgeC_n, & mapWt ) ... etc ...
These modifications will skip calling the subroutine GET_MAP_WT unless:
- The latitude of each Olson land map box is within a specified number of degrees (LATTHRESH) of the GEOS-Chem grid box latitude, and
- The longitude of each Olson land map box is within a specified number of degrees (LONTHRESH) of the GEOS-Chem grid box longitude.
By restricting when subroutine GET_MAP_WT is called in this way, we reduce a substantial amount of overhead. Profiling results with the Tuning and Analysis Utilities (TAU) have shown that this can result in a 100X speedup in execution time for COMPUTE_OLSON_LANDMAP, as shown by this figure.
The figure shows wall clock time (in seconds) for each subroutine on the main thread (CPU 0) of a 1-day GEOS-Chem simulation with GEOS-FP meteorology at 4° x 5° horizontal resolution. Before the fix was implemented, routine COMPUTE_OLSON_LANDMAP took about 11 seconds on the main CPU. After the fix, the time spent in the routine was reduced to 0.163 seconds, thus eliminating a major bottleneck.
--Bob Y. 17:07, 30 May 2014 (EDT)
File read error in routine rdland.F affecting 2 x 2.5 simulations
This is now a moot point as olson_landmap_mod.F90 has replaced rdland.F as of GEOS-Chem v9-01-03i. However, if you are comparing results from v9-01-03 to older 2° x 2.5° simulations you may find slight differences that may be attributed to this update.
During implementation of the Grid-independent GEOS-Chem, we found a minor bug in how routine rdland.F reads information from the vegtype.global file (Olson 1992 land map) for 2° x 2.5° GEOS-Chem simulations.
As explained above, the vegtype.global file stores the following quantities, such that values for a single grid box were saved on a single line:
I, J, IREG(I,J), ILAND(I,J,1:IREG(I,J)), IUSE(I,J,1:IREG(I,J))
Routine rdland.F reads these quantities from vegtype.global assuming that there were 20 integer characters on a single line (i.e. using Fortran FORMAT '(20i4)'). However, ~ 12 lines of the 2 x 2.5 vegtype.global file contained more than 20 integer values. This caused rdland.F to read in the values from these lines improperly, which in turn caused the IREG, ILAND, IUSE, IJREG, IJLAND, IJUSE, and FRCLND arrays to be improperly initialized for the grid boxes corresponding to these lines in vegtype.global.
Bob Yantosca has validated that the new module olson_landmap_mod.F90 (which is the replacement for rdland.F) returns results 100% identical to the 2° x 2.5° vegtype.global file. Therefore, if you want to compare the output of model simulations using the new olson_landmap_mod.F90 the output of simulations using rdland.F, you will see a slight difference in the Methyl chloroform lifetime tracer concentrations.
If you need to run a GEOS-Chem simulation with a version of the code that still uses rdland.F, then this bug may be corrected by changing the line of code:
101 FORMAT(20I4)
to:
#if defined( GRID2x25 ) 101 FORMAT(25I4) #else 100 FORMAT(20I4) #endif
This is more or less a moot point, as olson_landmap_mod.F90 will be installed into GEOS-Chem v9-01-03 and higher versions.
--Bob Y. 11:07, 22 March 2012 (EDT)
Outstanding issues that have not yet been resolved
Minor differences in IUSE at 0.5 x 0.666 nested grids
As of 21 Mar 2012, the values of the IUSE array computed by olson_landmap_mod.F90 may differ by 1/1000th from the IUSE values specified in the vegtype.global files for 0.5° x 0.666° nested grids. This does not happen at every grid box, but only for a few grid boxes. We attribute this to roundoff error caused by the the longitude spacing being an irrational number (0.6666666...°). We are still investigating.
--Bob Y. 11:07, 22 March 2012 (EDT)