Olson land map: Difference between revisions

From Geos-chem
Jump to navigation Jump to search
 
(47 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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.
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 ==
== Olson 2001 land map ==


The Olson 1992 land map is currently used in GEOS-Chem versions up to and including [[GEOS-Chem v9-01-03|v9-01-03]].
The Olson 2001 land map replaces the Olson 1992 land map in GEOS-Chem for versions after v9-01-03.


=== Overview ===
=== 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:
The Olson 2001 land map has a native resolution of 1km x 1km, but has been binned to 0.25&deg; x 0.25&deg; by Eloise Marais for the use with the [[GEOS-FP|GEOS-FP met fields]] (in order to facilitate the SEAC<sup>4</sup>RS campaign).  The Olson 2001 land map is now used with all Met sources in GEOS-Chem.
 
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&deg; x 0.5&deg; grid box.
 
[[Image:Olson1992.png]]
 
--[[User:Bmy|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 <tt>owe14d.0.5</tt> (which is now archived in Bob Yantosca's disk space).  This was an ASCII file containing 20 integer values per line (Fortran format <tt>'(20i4)'</tt>). 
 
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:
 
#<tt>owe14d.0.5</tt>: Olson land map file at 0.5&deg; x 0.5&deg; resolution
#<tt>lai_all.dat</tt>: leaf area index data at 1&deg; x 1&deg; resolution
 
and created these files as output:
 
#<tt>vegtype.global</tt>: Olson land map indices, on the GEOS-Chem grid
#<tt>laiMM.global</tt>: 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 <tt>vegtype.global</tt> files for each different GEOS-Chem grid configuration. (4&deg; x 5&deg;, 2&deg; x 2.5&deg;, and the 0.5&deg; x 0.666&deg; nested grids). 
 
NOTE: The original leaf area index data (in file <tt>lai_all.dat</tt> has now been supplanted by those from the MODIS satellite instrument.
 
=== Structure of the vegtype.global file ===


As mentioned [[#Preparation of input files for GEOS-Chem|above]], each GEOS-Chem grid configuration required its own <tt>vegtype.global</tt> file.  The <tt>vegtype.global</tt> file contained the following information:
The Olson 2001 land map is described at [https://lta.cr.usgs.gov/GLCC this website].
 
#GEOS-Chem grid box longitude index (<tt>I</tt>)
#GEOS-Chem Grid box latitude index (<tt>J</tt>)
#Number of Olson land types (at 0.5&deg; x 0.5&deg; resolution) that fit inside the GEOS-Chem grid box <tt>(I,J)</tt>
#List of indices of all Olson land types that fit inside the GEOS-Chem grid box <tt>(I,J)</tt>
#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&deg; x 5&deg; <tt>vegtype.global</tt> 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 <tt>vegtype.global</tt> file shown above, we would deduce that 
 
{| border=1 cellpadding=5 cellspacing=0
|- bgcolor="#CCCCCC" align="center"
! GEOS-Chem grid box
! has this many Olson land types
! with indices
! which cover this % of the box
|-align="center"
|(20,13)
|1
|0
|100% 
|-align="center"
|(21,13)
|1
|0
|100%
|-align="center"
|(22,13)
|5
|0, 41, 24, 31, 67
|81.1%, 2.5%, 6.2%, 7.6%, 2.6%, respectively
|-align="center"
|(23,13)
|4
|41, 24, 52, 31
|13.7%, 17.5%, 65.0%, 3.8%, respectively
|-align="center"
|(24,13)
|5
|52, 8, 0, 41, 31
|58.9%, 6.2%, 29.8%, 2.5% and 2.6%, respectively
|}
 
 
GEOS-Chem routine <tt>rdland.F</tt> reads the information from the <tt>vegtype.global</tt> into the following arrays:
 
{| border=1 cellpadding=5 cellspacing=0
|- bgcolor="#CCCCCC" align="center"
!Array
!Quantity
!Where used
|-valign="top"
|<tt>IREG( I, J )</tt>
|Number of Olson land types per GEOS-Chem grid box<br>''(i.e. Column #2 in the table above)''
|Soil NOx emissions
|-valign="top"
|<tt>ILAND( I, J, 1:IREG(I,J) )</tt>
|List of Olson land type indices per each GEOS-Chem grid box<br>''(i.e. Column #3 in the table above)''
|Soil NOx emissions
|-valign="top"
|<tt>IUSE( I, J, 1:IREG(I,J) )</tt>
|Fraction (in mils) of the GEOS-Chem grid box covered by each Olson land type<br>''(i.e. Column #4 in the table above)''
|Soil NOx emissions
|-valign="top"
|<tt>IJREG( IJLOOP )</tt>
|Same data as in <tt>IREG</tt>, but with 1 spatial dimension
|Dry deposition
|-valign="top"
|<tt>ILAND( IJLOOP, 1:IJREG(I,J) )</tt>
|Same data as in <tt>ILAND</tt>, but with 1 spatial dimension
|Dry deposition
|-valign="top"
|<tt>IJUSE( IJLOOP, 1:IJREG(I,J) )</tt>
|Same data as in <tt>IUSE</tt>, but with 1 spatial dimension
|Dry deposition
|-valign="top"
|<tt>FRCLND( I, J )</tt>
|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 (<tt>IREG</tt>, <tt>ILAND</tt>, <tt>IUSE</tt>) and (<tt>IJREG</tt>, <tt>IJLAND</tt>, <tt>IJUSE</tt>) 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 <tt>IIPAR*JJPAR</tt> as its spatial dimension, instead of using 2 separate spatial dimensions. Nobody has undertaken to rewrite this code since.
#The Olson land types in the <tt>vegtype.global</tt> 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&deg; x 0.5&deg; 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.
# The <tt>FRCLND</tt> 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).
 
--[[User:Bmy|Bob Y.]] 10:11, 22 March 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&deg; x 0.25&deg; by Eloise Marais) for the [[GEOS-5.7.2|GEOS-5.7.2 met fields]] (in order to facilitate the SEAC<sup>4</sup>RS campaign).  Eventually, Olson 2001 shall replace Olson 1992 for all met field configurations in GEOS-Chem.


'''''[mailto:emarais@gmail.com Eloise Marais] wrote:'''''
'''''[mailto:emarais@gmail.com Eloise Marais] wrote:'''''
Line 187: Line 25:
</blockquote>
</blockquote>


The table below shows the translation between the Olson 2001 and Olson 1992 land maps:
There are actually 73 land types, not 74, in both the 1992 and 2001 Olson land maps. The table below shows the translation between the Olson 2001 and Olson 1992 land maps:


  Olson 2001 Olson 1992 # in
  Olson 2001 Olson 1992 # in
Line 289: Line 127:
  96 Deciduous Tree Crop 33 34
  96 Deciduous Tree Crop 33 34


The rebinned Olson 2001 land types at 0.25&deg; x 0.25&deg; resoluiton (74 land types total) are plotted here:
The rebinned Olson 2001 land types at 0.25&deg; x 0.25&deg; resolution (73 land types total) are plotted here:


[[Image:Olson2001.png]]
[[Image:Olson2001.png]]


--[[User:Bmy|Bob Y.]] 11:19, 23 March 2012 (EDT)
--[[User:Lizzie Lundgren|Lizzie Lundgren]] ([[User talk:Lizzie Lundgren|talk]]) 17:45, 2 November 2016 (UTC)


=== Implementation notes ===
=== Implementation notes ===
Line 299: Line 137:
Adoption of the Olson 2001 land map requires the following updates to the GEOS-Chem source code & input files:
Adoption of the Olson 2001 land map requires the following updates to the GEOS-Chem source code & input files:


# Parameter <tt>NNNTYPE</tt> in <tt>drydep_mod.F</tt> needs to be increased from 15 to 25.
#<p>Parameter <tt>NNNTYPE</tt> in <tt>drydep_mod.F</tt> needs to be increased from 15 to 25.</p>
#* '''UPDATE:''' Parameter <tt>NNNTYPE</tt> was removed from [[GEOS-Chem v9-01-03 benchmark history#v9-01-03j|v9-01-03j]] (17 Apr 2012).  It is replaced by parameter <tt>NNTYPE</tt> in <tt>CMN_SIZE_mod.F</tt>.
#*<p>'''UPDATE (21 May 2012):''' Parameter <tt>NNNTYPE</tt> was removed from [[GEOS-Chem v9-01-03 benchmark history#v9-01-03j|v9-01-03j]] (17 Apr 2012).  It is replaced by parameter <tt>NNTYPE</tt> in <tt>CMN_SIZE_mod.F</tt>.</p>
# Parameter <tt>NTYPE</tt> in <tt>CMN_SIZE_mod.F</tt> needs to be incresaed from 15 to 25.
#<p>Parameter <tt>NTYPE</tt> in <tt>CMN_SIZE_mod.F</tt> needs to be incresaed from 15 to 25.</p>
#* '''UPDATE:''' This was done in v9-01-03j (17 Apr 2012)
#*<p>'''UPDATE (21 May 2012):''' This was done in v9-01-03j (17 Apr 2012)</p>
# Parameter <tt>NNNVEGTYPE</tt> can be unchanged (it currently = 74).  The rebinned Olson 2001 map at 0.25&deg; x 0.25&deg; uses the same indexing as Olson 1992.
#<p>Parameter <tt>NNNVEGTYPE</tt> can be unchanged (it currently = 74).  The rebinned Olson 2001 map at 0.25&deg; x 0.25&deg; uses the same indexing as Olson 1992.</p>
#* '''UPDATE:''' Parameter <tt>NNNVEGTYPE</tt> was removed from v9-01-03j (17 Apr 2012).  It is replaced by parameter <tt>NNVEGTYPE</tt> in <tt>CMN_SIZE_mod.F</tt>.
#*<p>'''UPDATE (21 May 2012):''' Parameter <tt>NNNVEGTYPE</tt> was removed from v9-01-03j (17 Apr 2012).  It is replaced by parameter <tt>NNVEGTYPE</tt> in <tt>CMN_SIZE_mod.F</tt>.</p>
# A corresponding new <tt>drydep.table</tt> needs to be adopted for the Olson 2001 land map.
#<p>A corresponding new <tt>drydep.table</tt> needs to be adopted for the Olson 2001 land map.</p>
#* '''UPDATE:''' This has been done in v9-01-03j (17 Apr 2012).
#*<p>'''UPDATE (21 May 2012):''' This has been done in v9-01-03j (17 Apr 2012).</p>


Also, we will not create <tt>vegtype.global</tt> files for the Olson 2001 land map, but will instead compute the corresponding values of the <tt>IREG</tt>, <tt>IUSE</tt>, <tt>ILAND</tt>, etc. arrays on-the-fly, [[#Modifications for the grid-independent model|as described in the next section]].
Also, we will not create <tt>vegtype.global</tt> files for the Olson 2001 land map, but will instead compute the corresponding values of the <tt>IREG</tt>, <tt>IUSE</tt>, <tt>ILAND</tt>, etc. arrays on-the-fly, [[#Modifications for the grid-independent model|as described in the next section]].
Line 315: Line 153:
--[[User:Emarais|Emarais]] 16:47, 13 April 2012 (EDT)<br>
--[[User:Emarais|Emarais]] 16:47, 13 April 2012 (EDT)<br>
--[[User:Bmy|Bob Y.]] 14:23, 21 May 2012 (EDT)
--[[User:Bmy|Bob Y.]] 14:23, 21 May 2012 (EDT)
=== Updates to dry deposition when using the Olson 2001 land map ===
<span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01a|GEOS-Chem v10-01a]] and approved on 05 Feb 2014.'''''</span>
Patrick Kim implemented updates to improve dry deposition of ozone when using the Olson 2001 land map. For a full description, please see [[Dry deposition#Updates to dry deposition when using the Olson 2001 land map|this post on our ''Dry deposition'' wiki page]].
--[[User:Melissa Payer|Melissa Sulprizio]] 17:45, 3 February 2014 (EST)


== Modifications for the grid-independent model ==
== Modifications for the grid-independent model ==
Line 330: Line 176:
# Reads in the Olson 1992 land map at 0.5&deg; x 0.5&deg; resolution in netCDF format, instead of ASCII
# Reads in the Olson 1992 land map at 0.5&deg; x 0.5&deg; resolution in netCDF format, instead of ASCII
# Constructs the <tt>IREG</tt>, <tt>ILAND</tt>, <tt>IUSE</tt> arrays on the GEOS-Chem grid (for soil NOx emissions)
# Constructs the <tt>IREG</tt>, <tt>ILAND</tt>, <tt>IUSE</tt> arrays on the GEOS-Chem grid (for soil NOx emissions)
# Constructs the <tt>IJREG</tt>, <tt>IJLAND</tt>, <tt>IJUSE</tt> arrays on the GEOS-Chem grid (for dry deposition)
# Constructs the <tt>FRCLND</tt> array on the GEOS-Chem grid (for use throughout GEOS-Chem)
# Constructs the <tt>FRCLND</tt> array on the GEOS-Chem grid (for use throughout GEOS-Chem)


The <tt>olson_landmap_mod.F90</tt> will be introduced to [[GEOS-Chem v9-01-03]].  It is currently being validated with 1-month benchmark simulation [[GEOS-Chem v9-01-03 benchmark history#v9-01-03i|v9-01-03i]].  We shall also extend the functionality of <tt>olson_landmap_mod.F90</tt> so that it can also process the Olson 2001 land map as well as the Olson 1992 land map.
The <tt>olson_landmap_mod.F90</tt> was introduced to [[GEOS-Chem v9-01-03]].  It was validated with 1-month benchmark simulation [[GEOS-Chem v9-01-03 benchmark history#v9-01-03i|v9-01-03i]] (approved on 17 Apr 2012).  We have also extended the functionality of <tt>olson_landmap_mod.F90</tt> 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:
Also, certain ASCII input files to the dry deposition modules, such as:
Line 340: Line 185:
# <tt>drydep.coef</tt>
# <tt>drydep.coef</tt>


have converted to netCDF in order to facilitate file I/O by GCM's (as of [[GEOS-Chem v9-01-03 benchmark history#v9-01-03j|v9-01-03j]] (17 Apr 2012).
have been replaced by netCDF files in order to facilitate file I/O by external GCM's.


--[[User:Bmy|Bob Y.]] 14:28, 21 May 2012 (EDT)
--[[User:Bmy|Bob Y.]] 14:28, 21 May 2012 (EDT)
Line 349: Line 194:
#Olson, J, ''World Ecosystems (WE1.4): Digital raster data on a 10 minute geographic 1080 x 2160 grid'', in <u>Global Ecosystems Database, version 1.0, Disc A</u>, edited by NOAA Natl. Geophys. Data Center, Boulder, Colorado, 1992.
#Olson, J, ''World Ecosystems (WE1.4): Digital raster data on a 10 minute geographic 1080 x 2160 grid'', in <u>Global Ecosystems Database, version 1.0, Disc A</u>, 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'', <u>J. Geophys. Res.</u>, '''103''', D9, 10,713-10,726, 1998.
#Wang, Y., D.J. Jacob, and J.A. Logan, ''Global simulation of tropospheric O3-NOx-hydrocarbon chemistry, 1. Model formulation'', <u>J. Geophys. Res.</u>, '''103''', D9, 10,713-10,726, 1998.
#Olson 2011 land map reference may be found here: http://edc2.usgs.gov/glcc/globdoc2_0.php


== Known issues ==
== Previously resolved issues ==


=== File read error in routine rdland.F affecting 2 x 2.5 simulations ===
In this section we provide information about issues with the Olson land map code that have since been resolved.


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&deg; x 2.5&deg; GEOS-Chem simulations.
=== Speed up computations in subroutine COMPUTE_OLSON_LANDMAP ===


[[#Structure of the vegtype.global file|As explained above]], the <tt>vegtype.global</tt> file stores the following quantities, such that values for a single grid box were saved on a single line:
<span style="color:green">'''''These updates were validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>


    I, J, IREG(I,J), ILAND(I,J,1:IREG(I,J)), IUSE(I,J,1:IREG(I,J))
We have added a fix to speed up the computations in the parallel DO loop in routine <tt>COMPUTE_OLSON_LANDMAP</tt>.  These computations are used to generate the arrays <tt>IREG</tt>, <tt>ILAND</tt>, and <tt>IUSE</tt>&mdash;which GEOS-Chem's legacy dry deposition module require as input&mdash;from the data in the Olson land map netCDF file. 


Routine <tt>rdland.F</tt> reads these quantities from <tt>vegtype.global</tt> assuming that there were 20 integer characters on a single line (i.e. using Fortran FORMAT <tt>'(20i4)'</tt>).   However, ~ 12 lines of the 2 x 2.5 <tt>vegtype.global</tt> file contained more than 20 integer values.  This caused <tt>rdland.F</tt> to read in the values from these lines improperly, which in turn caused the <tt>IREG</tt>, <tt>ILAND</tt>, <tt>IUSE</tt>, <tt>IJREG</tt>, <tt>IJLAND</tt>, <tt>IJUSE</tt>, and <tt>FRCLND</tt> arrays to be improperly initialized for the grid boxes corresponding to these
We made the following source-code modifications:
lines in <tt>vegtype.global</tt>.
 
(1) Add this section of code to the variable declaration section of subroutine <tt>COMPUTE_OLSON_LANDMAP</tt>:
 
!
! !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 <tt>!$OMP SCHEDULE( DYNAMIC )</tt> 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 )
   
   
Bob Yantosca has validated that the new module <tt>olson_landmap_mod.F90</tt> (which is the replacement for <tt>rdland.F</tt>) returns results 100% identical to the 2&deg; x 2.5&deg; <tt>vegtype.global</tt> file. Therefore, if you want to compare the output of model simulations using the new <tt>olson_landmap_mod.F90</tt> the output of simulations using <tt>rdland.F</tt>, you will see a slight difference in the [[Methyl chloroform lifetime]]  tracer concentrations.
              ! 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 <tt>GET_MAP_WT</tt> unless:


If you need to run a GEOS-Chem simulation with a version of the code that still uses <tt>rdland.F</tt>, then this bug may be corrected by changing the   line of code:
*The latitude of each Olson land map box is within a specified number of degrees (<tt>LATTHRESH</tt>) of the GEOS-Chem grid box latitude, and
*The longitude of each Olson land map box is within a specified number of degrees (<tt>LONTHRESH</tt>) of the GEOS-Chem grid box longitude. 


      101 FORMAT(20I4)
By restricting when subroutine <tt>GET_MAP_WT</tt> 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 <tt>COMPUTE_OLSON_LANDMAP</tt>, as shown by this figure.


to:
[[Image:Olson_Speedup.png]]


    #if  defined( GRID2x25 )
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&deg; x 5&deg; horizontal resolution. Before the fix was implemented, routine <tt>COMPUTE_OLSON_LANDMAP</tt> 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.
      101  FORMAT(25I4)
    #else
      100 FORMAT(20I4)
    #endif


This is more or less a moot point, as <tt>olson_landmap_mod.F90</tt> will be installed into [[GEOS-Chem v9-01-03]] and higher versions.
--[[User:Bmy|Bob Y.]] 17:07, 30 May 2014 (EDT)


--[[User:Bmy|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 ===
=== Olson land map values are read incorrectly when using GCHP compiled with GNU Fortran ===


As of 21 Mar 2012, the values of the <tt>IUSE</tt> array computed by <tt>olson_landmap_mod.F90</tt> may differ by 1/1000th from the <tt>IUSE</tt> values specified in the <tt>vegtype.global</tt> files for 0.5&deg; x 0.666&deg; 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...&deg;).  We are still investigating.
We have discovered an issue with the Olson land map that occurs when compiling [[GCHP]] with the GNU Fortran compiler.  The Olson land map values are apparently being returned from disk (via ExtData) as all zeroes.  A full description of the issue may be found here: https://github.com/geoschem/gchp/issues/15


--[[User:Bmy|Bob Y.]] 11:07, 22 March 2012 (EDT)
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 20:06, 2 January 2019 (UTC)

Latest revision as of 20:08, 2 January 2019

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 2001 land map

The Olson 2001 land map replaces the Olson 1992 land map in GEOS-Chem for versions after v9-01-03.

Overview

The Olson 2001 land map has a native resolution of 1km x 1km, but has been binned to 0.25° x 0.25° by Eloise Marais for the use with the GEOS-FP met fields (in order to facilitate the SEAC4RS campaign). The Olson 2001 land map is now used with all Met sources in GEOS-Chem.

The Olson 2001 land map is described at this website.

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.

There are actually 73 land types, not 74, in both the 1992 and 2001 Olson land maps. 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° resolution (73 land types total) are plotted here:

Olson2001.png

--Lizzie Lundgren (talk) 17:45, 2 November 2016 (UTC)

Implementation notes

Adoption of the Olson 2001 land map requires the following updates to the GEOS-Chem source code & input files:

  1. 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.

  2. 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)

  3. 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.

  4. 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.

  1. 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.
  2. 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:

  1. The GCM could not read in an ASCII file. It expected input to be in netCDF format.
  2. 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.
  3. 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:

  1. Reads in the Olson 1992 land map at 0.5° x 0.5° resolution in netCDF format, instead of ASCII
  2. Constructs the IREG, ILAND, IUSE arrays on the GEOS-Chem grid (for soil NOx emissions)
  3. 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:

  1. drydep.table
  2. 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

  1. 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
  2. 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.
  3. 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.
  4. 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.

Olson Speedup.png

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)

Outstanding issues that have not yet been resolved

Olson land map values are read incorrectly when using GCHP compiled with GNU Fortran

We have discovered an issue with the Olson land map that occurs when compiling GCHP with the GNU Fortran compiler. The Olson land map values are apparently being returned from disk (via ExtData) as all zeroes. A full description of the issue may be found here: https://github.com/geoschem/gchp/issues/15

--Bob Yantosca (talk) 20:06, 2 January 2019 (UTC)