Difference between revisions of "Tagged CO simulation"

From Geos-chem
Jump to: navigation, search
(98 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
__FORCETOC__
 +
'''''[[POPs simulation|Previous]] | [[Tagged O3 simulation|Next]] | [[Guide to GEOS-Chem simulations]]'''''
 +
#[[Simulations overview]]
 +
#[[GEOS-Chem chemistry mechanisms|Mechanisms for full-chemistry simulations]] (e.g. Standard, Tropchem, etc.)
 +
#[[Aerosol-only simulation]]
 +
#[[CH4 simulation]]
 +
#[[CO2 simulation]]
 +
#[[Mercury|Hg simulation]]
 +
#[[POPs simulation]]
 +
#<span style="color:blue">'''Tagged CO simulation'''</span>
 +
#[[Tagged O3 simulation]]
 +
#[[TransportTracers simulation]]
 +
 +
 
On this page, we describe the GEOS-Chem tagged CO simulation.
 
On this page, we describe the GEOS-Chem tagged CO simulation.
  
Line 8: Line 22:
  
 
=== Assumptions ===
 
=== Assumptions ===
#The tagged CO simulation doesn’t include direct emissions of volatile organic compounds (VOCs), so CO sources are scaled to account for co-emitted VOCs. Fossil fuel and biofuel emissions are scaled by 19% and biomass burning emissions are scaled by 11%. More information is given in Duncan et al. (2007).<br><br>
+
#The tagged CO simulation doesn’t include direct emissions of volatile organic compounds (VOCs), so CO sources are scaled to account for co-emitted VOCs. Fossil fuel and biofuel emissions are scaled by 19% and biomass burning emissions are scaled by 11%. More information is given in Duncan et al. (2007). See note below!<br><br>
 
#Biogenic VOCs:<br>
 
#Biogenic VOCs:<br>
 
## Isoprene: Yield of CO from isoprene is assumed to be 30% based on Miyoshi et al. (1994). Isoprene yield can also be computed as a function of NOx concentration by setting <tt>ALPHA_ISOP_FROM_NOX = .TRUE.</tt> in CHEM_TAGGED_CO, but this is not the default behavior.
 
## Isoprene: Yield of CO from isoprene is assumed to be 30% based on Miyoshi et al. (1994). Isoprene yield can also be computed as a function of NOx concentration by setting <tt>ALPHA_ISOP_FROM_NOX = .TRUE.</tt> in CHEM_TAGGED_CO, but this is not the default behavior.
Line 16: Line 30:
 
#OH concentrations are taken from a previously run full chemistry simulation. The default is from a much earlier version of the model, when OH was thought to be more realistic. The standard code uses OH from version 5-07-08, with GEOS3 meteorology.<br><br>
 
#OH concentrations are taken from a previously run full chemistry simulation. The default is from a much earlier version of the model, when OH was thought to be more realistic. The standard code uses OH from version 5-07-08, with GEOS3 meteorology.<br><br>
 
#Methane concentrations are calculated based on measurements from the NOAA Global Monitoring Division network and are assumed constant over four latitudinal bands (30-90S, 0-30S, 0-30N, 30-90N). Yield is assumed to be one molecule CO per molecule CH4.
 
#Methane concentrations are calculated based on measurements from the NOAA Global Monitoring Division network and are assumed constant over four latitudinal bands (30-90S, 0-30S, 0-30N, 30-90N). Yield is assumed to be one molecule CO per molecule CH4.
 +
 +
<blockquote>NOTE: As described in bullet point 1 above, make sure that your <tt>HEMCO_Config.rc</tt> file contains these scale factors: </blockquote>
 +
 +
      52 COPROD_FOSSIL  1.19  - - - xy 1 1
 +
      53 COPROD_BIOFUEL  1.189 - - - xy 1 1
 +
      54 COPROD_BIOMASS  1.11  - - - xy 1 1
 +
 +
<blockquote>(i.e. fossil fuel/biofuel increased by ~19% and biomass by 11%).  The <tt>HEMCO_Config.rc</tt> file that shipped with GEOS-Chem v11-01 contain incorrect values for these scale factors.  This will be fixed for v11-02.</blockquote>
 +
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 14:44, 26 October 2017 (UTC)
  
 
=== Standard Tracers ===
 
=== Standard Tracers ===
Line 87: Line 111:
 
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 20:17, 23 March 2016 (UTC)
 
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 20:17, 23 March 2016 (UTC)
  
=== Practicalities ===
+
=== The input.geos file ===
Tagged CO is simulation type 7. For tagged CO run with standard tracers, the input.geos should look like this:
+
%%% TRACER MENU %%%    :
+
Type of simulation      : 7
+
Number of Tracers      : 17 
+
Tracer Entries -------> : TR#  Name    g/mole Tracer Members; () = emitted 
+
Tracer #1              : 1    CO      28.0  (CO)
+
Tracer #2              : 2    COus    28.0 
+
Tracer #3              : 3    COeur    28.0 
+
Tracer #4              : 4    COasia  28.0 
+
Tracer #5              : 5    COoth    28.0 
+
Tracer #6              : 6    CObbam  28.0 
+
Tracer #7              : 7    CObbaf  28.0 
+
Tracer #8              : 8    CObbas  28.0 
+
Tracer #9              : 9    CObboc  28.0 
+
Tracer #10              : 10    CObbeu  28.0 
+
Tracer #11              : 11    CObboth  28.0 
+
Tracer #12              : 12    COch4    28.0 
+
Tracer #13              : 13    CObiof  28.0 
+
Tracer #14              : 14    COisop  28.0 
+
Tracer #15              : 15    COmono  28.0 
+
Tracer #16              : 16    COmeoh  28.0 
+
Tracer #17              : 17    COacet  28.0
+
  
== Recent tagged CO updates ==
+
Tagged CO is simulation type 7. For tagged CO run with standard tracers, the relevant settings in the <tt>input.geos</tt> (assuming [[GEOS-Chem v11-01]]) are:
  
The following updates were recently added to the GEOS-Chem tagged CO simulation:
+
------------------------+------------------------------------------------------
 +
%%% ADVECTED SPECIES MENU %%%:
 +
Type of simulation      : 7
 +
Number of Advected Spec.: 17
 +
Species Entries ------->: Name
 +
Species #1              : CO
 +
Species #2              : COus
 +
Species #3              : COeur
 +
Species #4              : COasia
 +
Species #5              : COoth
 +
Species #6              : CObbam
 +
Species #7              : CObbaf
 +
Species #8              : CObbas
 +
Species #9              : CObboc
 +
Species #10            : CObbeu
 +
Species #11            : CObboth
 +
Species #12            : COch4
 +
Species #13            : CObiof
 +
Species #14            : COisop
 +
Species #15            : COmono
 +
Species #16            : COmeoh
 +
Species #17            : COacet
 +
------------------------+------------------------------------------------------
 +
%%% TRANSPORT MENU %%%  :
 +
Turn on Transport      : T
 +
  => Fill Negative Values: T
 +
  => IORD, JORD, KORD    : 3  3  7
 +
Transport Timestep [min]: 10 
 +
------------------------+------------------------------------------------------
 +
%%% CONVECTION MENU %%% :
 +
Turn on Cloud Conv?    : T
 +
Turn on PBL Mixing?    : T
 +
  => Use non-local PBL?  : T
 +
Convect Timestep [min]  : 10
 +
  ------------------------+------------------------------------------------------
 +
%%% EMISSIONS MENU %%%  :
 +
Turn on emissions?      : T
 +
Emiss Timestep [min]    : 20
 +
HEMCO Input file        : HEMCO_Config.rc
 +
 +
... set everything else to F ...
 +
------------------------+------------------------------------------------------
 +
%%% DEPOSITION MENU %%% :
 +
Turn on Dry Deposition? : T
 +
Turn on Wet Deposition? : F
 +
------------------------+------------------------------------------------------
 +
%%% CHEMISTRY MENU %%%  :
 +
Turn on Chemistry?      : T
 +
Use linear. strat. chem?: F
 +
  => Use Linoz for O3?  : F
 +
Use UCX strat. chem?    : F
 +
Online CH4 chemistry?  : F
 +
Active strat. H2O?      : F
 +
Chemistry Timestep [min]: 20
 +
Use spec_rst (bpch only): F
 +
  => CSPEC rst filename? : none
 +
USE solver coded by KPP : F
 +
Online O3 for FAST-JX?  : F
 +
Gamma HO2              : 0.2
 +
 +
... etc ...
 +
------------------------+------------------------------------------------------
 +
%%% DIAGNOSTIC MENU %%% :
 +
Binary punch file name  : trac_avg.geosfp_4x5_tagCO.YYYYMMDDhhmm
 +
Diagnostic Entries ---> :  L  Tracers to print out for each diagnostic
 +
 
 +
... etc ...   
 +
ND29: CO sources        : 47  all
 +
 +
... etc ...
 +
ND45: Tracer Conc's    : 47  all
 +
  ==> ND45 Time range  :      0 24
 +
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 15:18, 26 October 2017 (UTC)
  
=== Science updates ===
+
=== The HEMCO_Config.rc file ===
  
These scientific updates were added to the tagged CO simulation:
+
In [[GEOS-Chem v11-01]] and higher versions, the tagged CO emissions are now handled by the [[HEMCO|HEMCO emissions component]].  In the <tt>HEMCO_Config.rc</tt> file, you can add emissions from each data file to the regional CO tracers by adding a few extra lines below each data file.
  
# Updated CO+OH rate constant to JPL2006 (Jenny Fisher): standard in [[GEOS-Chem v8-02-03]]<br>
+
For example, the following text will add emissions from one of the EDGAR inventory files into the relevant regional tracers:
# Optional use of [[MEGAN biogenic emissions]] added (Prasad Kasibhatla and Jenny Fisher): standard in [[GEOS-Chem v8-02-03]]
+
# [[GEOS-Chem v9-01-02#Bug fixes for offline simulations|Bug fixes in biomass_mod.f, emep_mod.f, and nei2005_anthro_mod.f]]: standard in [[GEOS-Chem v9-01-02]]
+
# Addition of aircraft emissions of CO from the [[Aircraft_emissions#FAA_aircraft_emissions_inventory|FAA/AEDT aircraft emissions inventory]] (in [[GEOS-Chem v9-02]] and higher)
+
  
--[[User:Bmy|Bob Y.]] 15:00, 11 April 2014 (EDT)
+
0 EDGAR_CO_1A1a_6      $ROOT/EDGARv42/v2015-02/CO/EDGAR_v42_CO_IPCC_1A1a_6.generic.01x01.nc  emi_co  1970-2008/1/1/0 C xy kg/m2/s CO      6/41/26/52      1 2
 +
0 EDGAR_CO_1A1a_6_us  -                                                                    -      -              - -  -      COus    6/41/26/52/<span style="color:red">1100</span>  1 2
 +
0 EDGAR_CO_1A1a_6_eur  -                                                                    -      -              - -  -      COeur    6/41/26/52/<span style="color:red">1101</span>  1 2
 +
0 EDGAR_CO_1A1a_6_asia -                                                                    -      -              - -  -      COasia  6/41/26/52/<span style="color:red">1102</span>  1 2
 +
0 EDGAR_CO_1A1a_6_oth        -                                                              -      -              - -  -      COoth    6/41/26/52/<span style="color:red">1103</span>  1 2
  
=== Code Updates ===
+
Note that we simply add a mask number to the <tt>ScalId</tt> section (highlighted in <span style="color:red">RED</span>) corresponding to each of the regional tracers.  We repeat this process for all other anthropogenic data files that are read from disk.
  
These code updates were added to [[GEOS-Chem v10-01]]:
+
The same methodology applies for splitting up biomass emissions into the CO regional tagged tracers.  For example, this section of the <tt>HEMCO_Config.rc</tt> will put CO from the QFED biomass inventory into the biomass tagged CO tracers:  
  
==== Now call INIT_TAGGED_CO from input_mod.F ====
+
#==============================================================================
 +
# --- QFED2 biomass burning ---
 +
#
 +
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +
# %%%  Set QFED2 to category 5 to match CATEGORY_BIOMASS in the  %%%
 +
# %%%  include file GeosCore/hcoi_gc_diagn_include.H.            %%%
 +
# %%%    -- Bob Yantosca (17 Mar 2016)                          %%%
 +
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +
#==============================================================================
 +
(((QFED2
 +
0 QFED_CO      $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.005.$YYYY$MM$DD.nc4 biomass 2000-2013/1-12/1-31/0 C xy kg/m2/s CO      54/75      5 2
 +
0 QFED_CObbAm  -                                                              -      -                    - -  -      CObbam  54/75/<span style="color:purple">1104</span>  5 2
 +
0 QFED_CObbAf  -                                                              -      -                    - -  -      CObbaf  54/75/<span style="color:purple">1105</span>  5 2
 +
0 QFED_CObbAs  -                                                              -      -                    - -  -      CObbas  54/75/<span style="color:purple">1106</span>  5 2
 +
0 QFED_CObbOc  -                                                              -      -                    - -  -      CObboc  54/75/<span style="color:purple">1107</span>  5 2
 +
0 QFED_CObbEu  -                                                              -      -                    - -  -      CObbeu  54/75/<span style="color:purple">1108</span>  5 2
 +
0 QFED_CObbOth -                                                              -      -                    - -  -      CObboth 54/75/<span style="color:purple">1109</span>  5 2
 +
)))QFED2
  
<span style="color:green">'''''This update was validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>
+
As for the anthropogenic emissions, we add the ID number of the appropriate mask (highlighted in <span style="color:purple">PURPLE</span>) corresponding to each biomass CO tagged tracer.
  
Prior to [[GEOS-Chem v10-01]], routine <tt>INIT_TAGGED_CO</tt> (in module <tt>GeosCore/tagged_co_mod.F</tt>) was called from routine <tt>EMISS_TAGGED_CO</tt> on the first chemistry timestep.
+
Mask definitions corresponding to each regional tagged tracer are read from a netCDF file.  These masks are listed in the MASKS section of the <tt>HEMCO_Config.rc</tt> file:
  
In order to make the code more compatible with our [[Grid-Independent GEOS-Chem]] development, we now call <tt>INIT_TAGGED_CO</tt> from routine <tt>GIGC_INIT_EXTRA</tt> (in module <tt>GeosCore/input_mod.F</tt>)This is now called during the "Initialization" phase of GEOS-Chem rather than during the "Run" phase.
+
#==============================================================================
 +
# Tagged CO regions
 +
#==============================================================================
 +
<span style="color:red">1100 TAGCO_USA_MASK</span>  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_USA_MASK  2000/1/1/0 C xy 1 1 -172/24/-18/88
 +
<span style="color:red">1101 TAGCO_EUR_MASK</span>   $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_EUR_MASK  2000/1/1/0 C xy 1 1 -17/36/172/88
 +
<span style="color:red">1102 TAGCO_ASIA_MASK</span> $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_ASIA_MASK  2000/1/1/0 C xy 1 1  70/8/152/44
 +
<span style="color:red">1103 TAGCO_OTH_MASK</span>  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_OTH_MASK  2000/1/1/0 C xy 1 1 -180/-90/180/90
 +
<span style="color:purple">1104 TAGCO_BBAM_MASK</span> $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBAM_MASK 2000/1/1/0 C xy 1 1 -112/-56/-33/24
 +
<span style="color:purple">1105 TAGCO_BBAF_MASK</span>  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBAF_MASK  2000/1/1/0 C xy 1 1 -17/-48/70/36
 +
<span style="color:purple">1106 TAGCO_BBAS_MASK</span>  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBAS_MASK  2000/1/1/0 C xy 1 1  70/8/153/45
 +
<span style="color:purple">1107 TAGCO_BBOC_MASK</span>  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBOC_MASK  2000/1/1/0 C xy 1 1  70/8/170/90
 +
<span style="color:purple">1108 TAGCO_BBEU_MASK</span>  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBEU_MASK  2000/1/1/0 C xy 1 1 -17/45/173/88
 +
<span style="color:purple">1109 TAGCO_BBOTH_MASK</span> $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBOTH_MASK 2000/1/1/0 C xy 1 1 -180/-90/180/90
  
--[[User:Bmy|Bob Y.]] 17:01, 30 May 2014 (EDT)
+
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:16, 23 March 2016 (UTC)
  
==== Reduce memory footprint of arrays ====
+
=== Notes about using HEMCO with the tagged CO simulation ===
  
<span style="color:green">'''''This update was validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>
+
In [[GEOS-Chem v11-01]] and higher versions, the [[HEMCO|HEMCO emissions component]] now handles all emissions for the tagged CO simulation. You should be aware of the following:
  
In module <tt>GeosCore/tagged_co_mod.F</tt>, the following arrays:
+
#<p>HEMCO by default uses a binary masking (either 0 or 1).  If a grid box straddles the mask boundary, then HEMCO will count the entire box as part of the masked region.  You can disable this behavior by setting <tt>Mask fractions: true</tt> in the SETTINGS section of the <tt>HEMCO_Config.rc</tt> file.  But this may lead to some further discrepancies.  It may be best to use the binary masking but use as fine resolution mask files e.g. 0.5 x 0.5) as possible.</p>
 +
#<p>For each file that is read from disk, we add underneath that file listing an entry to apply a regional mask to the total emissions, [[#The HEMCO_Config.rc file|as shown in the previous section]].</p>
 +
#<p>The Yevich & Logan biofuel emissions are added into the same CATEGORY & HIERARCHY as the EDGAR anthropogenic emissions. Because other inventories often do not separate biofuels from anthropogenic emisisons, it makes sense to lump them together.  This will make it easier for the tagged tracers to sum together.</p>
 +
#<p>At present, there is no way to apply regional masks to emissions that are computed from the GFED or FINN biomass burning emissions (which are implemented as HEMCO extensions).  For this reason, we the default biomass burning emissions is the QFED inventory (which is simply read from disk, and thus can be separated into tagged tracers with regional masks, [[#The HEMCO_Config.rc file|as shown in the previous section]]).  Perhaps in a future HEMCO version we will be able to apply regional masks to extension-computed emissions.</p>
 +
#*<p>If you would like to use either GFED or FINN biomass emissions with the tagged CO simulation, then we recommend that you use the HEMCO standalone code to archive the total CO emissions for a given set of met fields (e.g. GEOS-FP, MERRA) and years.  Then you can following the example of QFED ([[#The HEMCO_Config.rc file|shown above]]) to apply the regional masks to the total CO biomass emissions.</p>
 +
#<p>We have removed the <tt>+LinStratChem+</tt> block around the <tt>GMI_PROD_CO</tt> and <tt>GMI_LOSS_CO</tt>.  For full-chemistry simulations, <tt>+LinStratChem+</tt> is automatically toggled when stratospheric chemistry is turned on in <tt>input.geos</tt>.  But the tagged CO always reads the <tt>GMI_PROD_CO</tt> and <tt>GMI_LOSS_CO</tt> fields directly from HEMCO and applies them without using the normal stratospheric chemistry module.  ithout having to invoke the strat chem module.<p>
  
      REAL*8,  ALLOCATABLE :: CO_PRODS  (:,:,:)   ! Strat P(CO) from CH4
+
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:07, 23 March 2016 (UTC)
      REAL*8,  ALLOCATABLE :: CO_LOSSS  (:,:,:)  ! Strat L(CO) from CO + OH
+
  
can be changed from <tt>REAL*8</tt> to <tt>REAL*4</tt>:
+
== New tagged CO simulation in v11-02 and later ==
  
      REAL*4,  ALLOCATABLE :: CO_PRODS  (:,:,:)  ! Strat P(CO) from CH4
+
<span style="color:green">'''''This update was included in [[GEOS-Chem v11-02#v11-02f|v11-02f]] (approved 17 May 2018).'''''</span>
      REAL*4,  ALLOCATABLE :: CO_LOSSS  (:,:,:)  ! Strat L(CO) from CO + OH
+
  
These arrays are meant to hold <tt>REAL*4</tt> data that is read in from a netCDF file, so there is no need to keep them at <tt>REAL*8</tt>.  This will half the amount of memory required to store this data.
+
'''''[[User:Jaf|Jenny Fisher]] wrote:'''''
  
--[[User:Bmy|Bob Y.]] 17:01, 30 May 2014 (EDT)
+
<blockquote>My paper describing the updated Tagged CO simulation is now published: https://www.geosci-model-dev.net/10/4129/2017/
  
==== Bug fix: Make sure to define the DTCHEM variable ====
+
While the version described in the paper was based on v9, I have ported all the code into v11-01 and created a git patch along with relevant input files. Bea Bukosa has tested these out in v11-01 and all appears to be working as expected. FYI, this version maintains the possibility of using the “old” method for tagged CO with a switch in the input file.
  
<span style="color:green">'''''This update was validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>
+
There is one minor thing… The HEMCO files (OH and P(CO)) are for the year 2013 and v11-01. For a very interested user, these should in theory be re-created from full chem using the same year / met fields / emissions / etc. that they will run tagged CO with. However, we do show in the paper that for most applications, using a default file will be fine – and we suggest that these files can be created during the 1-year benchmarking process for the standard simulation.
  
In routine <tt>CHEM_TAGGED_CO</tt> (in module file <tt>GeosCore/tagged_co_mod.F</tt>, variable <tt>DTCHEM</tt> was never assigned any value.  This caused the tagged CO to halt with an error when running in the [[GEOS-Chem Unit Tester]].
+
I can bring this up with GCSC, but in principle could this be added to the benchmarking process? I think it would only require minor additions to what is already being saved as we need:
 +
*OH
 +
*Pressure edges
 +
*Box height
 +
*PCO chemical family
 +
*LCH4 chemical family (which I added in my KPP files in the patch)
  
The solution was to change this line:
+
There are then some IDL & NCO scripts to run to create the files, which I guess will need to be updated for netcdf diagnostics, but I imagine that won’t be hard. The scripts & associated readme are attached here.</blockquote>
 
+
      ! DTCHEM is the number of seconds per chemistry timestep
+
      DTSRCE    = GET_TS_EMIS() * 60d0
+
 
+
to this:
+
 
+
      ! DTCHEM is the number of seconds per chemistry timestep
+
      DTCHEM    = GET_TS_CHEM() * 60d0
+
 
+
--[[User:Bmy|Bob Y.]] 17:01, 30 May 2014 (EDT)
+
 
+
== Updates for GEOS-Chem v11-01 and later versions ==
+
 
+
TBD
+
  
== Tagged CO development projects ==
+
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 16:00, 17 May 2018 (UTC)
#Flexible region masks (Dylan Jones and Prasad Kasibhatla)
+
#3-D chemical production source (Jenny Fisher and Lee Murray)
+
  
== Adjoint capabilities ==
+
=== Process for creating tagged CO input files ===
  
Tagged CO is one of the simulations supported in the adjoint code. See the [[GEOS-Chem Adjoint]] wiki page for more details.
+
Jenny Fisher developed scripts for creating input files for the tagged CO simulation in [[GEOS-Chem v11-02]] and later versions.
  
== Setting up a tagged CO simulation on the GEOS-5 72-level grid ==
+
1. Run GEOS-Chem for 1-year (presumably benchmark simulation) saving:
 +
:*OH (ND43, all levels, tracer 1)
 +
:*PEDGE (ND31, all levels, tracer all)
 +
:*BXHGHT (ND68, all levels, tracer 4)
 +
:*PCO (ND65)
 +
:*LCH4 (ND65)
  
If you wish to run the tagged CO simulation on the [[GEOS-5]] (or [[MERRA]] or [[GEOS-FP]]) [http://acmg.seas.harvard.edu/geos/doc/man/appendix_3.html#A3.5 72-level vertical grid], then follow these steps:
+
2. In IDL, run script <tt>prepare_tagCO_IDL.pro</tt>
  
# In file <tt>Headers/define.h</tt>
+
:This will loop over 12 months to run
#* Turn off (e.g. comment out) the <tt>GRIDREDUCED</tt> switch
+
:*<tt>merge_oh_3d_v11</tt>
# In file <tt>Headers/CMN_SIZE</tt>
+
:*<tt>extract_pco_3d_v11</tt>
#* If you are using a version of GEOS-Chem prior to v9-01-01, increase the value of <tt>LLTROP</tt> from 38 to 40.  For complete instructions, please see [[Dynamic tropopause#Defining LLTROP for GEOS-5 72-layer grid|this wiki post on our Dynamic Tropopause page]].
+
:Defaults including directory for trac_avg files, model, resolution, year should be specified in that script.
# Make sure that the various files are interpolated to 72 vertical levels, including
+
#* Mean OH file
+
#* P(CO) and L(CO) rates
+
#* NOx fields
+
  
== More Information ==
+
:You should check that PCO_CH4 is tracer 7 and PCO_NMVOC is tracer 8. If not, you can specify these in the script as well.
  
For more information, see the GEOS-Chem manual pages about tagged CO:
+
3. Run the script <tt>nco_for_taggedCO</tt> to combined the monthly files and fix the netcdf files for HEMCO.
  
# [http://acmg.seas.harvard.edu/geos/doc/man/chapter_6.html#6.1.4 Checklist for Tagged CO simulation (Chapter 6.1.4 of the GEOS-Chem User's Guide) ]
+
--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 14:53, 10 August 2018 (UTC)
# [http://acmg.seas.harvard.edu/geos/doc/man/files/input.geos.tagco Sample <tt>input.geos</tt> file for Tagged CO simulation]
+
# [http://acmg.seas.harvard.edu/geos/doc/man/appendix_1.html#A1.7 Tracers for Tagged CO simulation (Appendix 1.7 of the GEOS-Chem User's Guide)]
+
  
 
== Studies that used Tagged CO simulation ==
 
== Studies that used Tagged CO simulation ==
Line 230: Line 326:
 
We have found and fixed the following issues with the Tagged CO simulation:
 
We have found and fixed the following issues with the Tagged CO simulation:
  
=== Bug fixes and updates for tagged CO in v9-02 ===
+
=== Tagged CO bug fixes: Fix CO units and write secondary production into a netcdf file ===
  
<span style="color:green">'''''These updates were validated with the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01f|v10-01f]] and approved on Approved 13 Jan 2015.'''''</span>
+
<span style="color:green">'''''This update was included in [[GEOS-Chem 12#12.3.0|GEOS-Chem 12.3.0]], which was released on 01 Apr 2019.'''''</span>
 +
 
 +
Beata Bukosa wrote:
 +
 
 +
:It seems like there is a minor error in the speciality tagged CO simulation. This is based on the 12.1.1 version of the code, but I had a look at the 12.2.1 version and it seems like it is present there also.
 +
 
 +
:The issue is on line 1276 (version 12.1.1) where the CO loss by OH (CO_OH) is written into the netcdf file in the units of kg/s, however the units are actually molecCO/cm3/s.
 +
 
 +
:The last time CO_OH was used before it was written in the file was line 1222, and the units are still molecCO/cm3 there. I am not sure if the molecCO/cm3 to kg conversion is handled somewhere else, however attached is the output of the CO_OH field from both the netcdf and bpch files, and the values seem similar enough, suggesting that the unit is the same in both files (moleCO/cm3/s).
 +
 
 +
--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 16:38, 28 March 2019 (UTC)
 +
 
 +
=== Do not multiply emission timestep by 60 ===
 +
 
 +
<span style="color:green">'''''This update (Git ID: [https://github.com/geoschem/geos-chem/commit/8a1b078e337edfa5fdfb0a5d9ca636b6d0c0634a 8a1b078e]) was included in [[GEOS-Chem 12#12.1.1|12.1.1]], which was released on 13 Dec 2018 .'''''</span>
 +
 
 +
'''''Dylan Jones wrote:'''''
 +
   
 +
<blockquote>I am running the tagged CO simulation in version 12.1.0 and noticed that there is a minor error in calculating the emissions. In      <tt>tagged_co_mod.F</tt>, the emissions timestep used to scale the emissions coming from HEMCO is given as:</blockquote>
 +
   
 +
        DTEMIS    = GET_TS_EMIS() * 60.0_fp
 +
 
 +
<blockquote>but it should be</blockquote>
 +
   
 +
        DTEMIS    = GET_TS_EMIS()
 +
 
 +
<blockquote>since we now enter the timestep in seconds in the <tt>input.geos</tt> file.</blockquote>
 +
   
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 15:48, 13 December 2018 (UTC)
 +
 
 +
=== Fix ND65 bugs in tagged CO simulation ===
 +
 
 +
<span style="color:green">'''''These fixes were included in [[GEOS-Chem v11-02#v11-02a|v11-02a]] and approved on 12 May 2017.'''''</span>
  
 
'''''[[User:Jaf|Jenny Fisher]] wrote:'''''
 
'''''[[User:Jaf|Jenny Fisher]] wrote:'''''
  
#'''Major bug fix'''
+
:I have discovered two minor bugs in the ND65 diagnostic for the tagged CO simulation in [[GEOS-Chem v11-01]].
#*DTCHEM: At some point in v9-02 implementation, the call that assigned a number to DTCHEM was removed from subroutine CHEM_TAGGED_CO. DTCHEM is used all over that subroutine, so there were a lot of unexpected zeros and infinities. I've restored the call the assign DTCHEM and removed DTSRCE (which was I think the intention of the original change since DTSRCE isn't used in that subroutine).
+
#*'''''Update: this bug was fixed in [[GEOS-Chem v10-01 benchmark history|GEOS-Chem v10-01c]].'''''
+
#'''Minor bug fixes / inconsistencies'''
+
#*SUNCOS: Tagged CO uses the same calls to get MEGAN emissions as full chemistry. When the full chem code was updated to use SUNCOSmid rather than SUNCOS in these calls, the updates should have also been applied here but weren't.
+
#* Monoterpenes: Similarly, at some point full chem treatment of monoterpene emissions were updated but these weren't applied in tagged CO. The two are now consistent.
+
#* Non-local PBL mixing: This was never implemented in tagged CO, although there was no documentation anywhere of that fact (except in vdiff_mod.F90). I've now added it.
+
#'''Structural changes'''
+
#*Obsolete variables: I've removed some obsolete variables, cleaned up a few really old comments, and also moved a few things that were being defined (as constants) in loops into parameter declarations.
+
#*I've replaced FIRSTEMISS and FIRSTCHEM with a new logical called FIRSTTIME that is used for the initialisation routines so that tagged CO can still be initialised and run even if emissions are turned off.
+
#**'''''Update: in [[GEOS-Chem v10-01 benchmark history|GEOS-Chem v10-01c]] we now call <tt>INIT_TAGGED_CO</tt> during the initialization phase (i.e. before the model starts timestepping), rather than on the first emissions or chemistry call.  This is also required for running GEOS-Chem in an ESMF environment (i.e. in the GEOS-5 DAS).
+
#'''Objective science changes'''
+
#*I've added a diurnal cycle for the offline OH used both for CO production from CH4 and CO loss. This is done in all the other offline simulations, but for some reason was never implemented in tagged CO. This is an objective improvement.
+
  
--[[User:Melissa Payer|Melissa Sulprizio]] 09:22, 10 July 2014 (EDT)
+
:The first is super minor. Looking at the actual code in <tt>GeosCore/tagged_co_mod.F</tt>, AD65 for tracers 1-nAdvect is the CO loss rate, not the production rate. So the following lines in <tt>GeosCore/input_mod.F</tt> should be
  
=== Bug fixes for tagged CO simulation ===
+
            ! Tagged CO
 +
            IF ( F <= N_ADVECT ) THEN
 +
              Input_Opt%FAM_NAME(F) = <span style="color:green">'L'</span>//Input_Opt%AdvectSpc_Name(F)
  
<span style="color:green">'''''This update was tested in the 1-month benchmark simulation [[GEOS-Chem_v9-02_benchmark_history#v9-02b|v9-02b]] and approved on 29 Oct 2012.'''''</span>
+
:Where the <tt>L</tt> was previously a <tt>P</tt>.
  
We have corrected the following minor issues in the [[Tagged CO simulation]].  These bugs were present in [[GEOS-Chem v9-01-03]].  The full-chemistry simulation is not affected by these issues.
+
:The second has an impact on the actual rates. I notice that for the regional tracers (2-nAdvect), the code flow (in both strat & trop) is:
 +
:# Calculate CO loss rate
 +
:# Update <tt>Spc(I,J,L,N)</tt> using the loss rate
 +
:# Update <tt>AD65(I,J,L,N)</tt> using <tt>Spc(I,J,L,N)</tt> * rate information
  
(1) In <tt>emissdr.F</tt>, bracket AD46 diagnostics with IF statements in order to avoid out-of-bounds errors caused by undefined bromine tracer flags:
+
:For example in the troposphere:
  
                ! CHBr3 emissions [kg/m2/s] -- tracer #14
+
                  ! Use tropospheric rate constant
                IF ( IDECHBr3 > 0 ) THEN
+
                  Spc(I,J,L,N) = Spc(I,J,L,N) *
                  AD46(I,J,14) = AD46(I,J,14)
+
    &                ( 1e+0_fp - KRATE * OH_MOLEC_CM3 * DTCHEM )
      &                        + ( EMISRR(I,J,IDECHBr3)  / AREA_M2 )  
+
      &                         * ( MWT_CHBr3            / AVG    )
+
              ENDIF
+
 
+
                 ! CH2Br2 emissions [kg/m2/s] -- tracer #15
+
                IF ( IDECH2Br2 > 0 ) THEN
+
                  AD46(I,J,15) = AD46(I,J,15)
+
      &                        + ( EMISRR(I,J,IDECH2Br2) / AREA_M2 )
+
      &                        * ( MWT_CH2Br2            / AVG    )
+
                ENDIF
+
  
 +
:then
  
(2) We needed to pass the <tt>am_I_Root = .TRUE.</tt> value to routine <tt>GET_GLOBAL_CH4</tt> from <tt>tagged_co_mod.F</tt>.  We changed this line:
+
                  ! ND65 diagnostic -- loss of CO by OH for "tagged" species
 +
                  IF ( ND65 > 0 .and. L <= LD65 ) THEN
 +
                    AD65(I,J,L,N) = AD65(I,J,L,N) +
 +
    &                  ( KRATE * OH_MOLEC_CM3 * Spc(I,J,L,N) * STTCO )
 +
                  ENDIF
  
          CALL GET_GLOBAL_CH4( GET_YEAR(), .TRUE.,  
+
:I think this is happening in the wrong order – i.e. we want to save <tt>KRATE * OH_MOLEC_CM3 * Spc(I,J,L,N) * STTCO</tt> calculated from the ORIGINAL value of <tt>Spc</tt> (before loss applied). This could be fixed either by reversing the order so the AD65 value is saved before Spc is updated, or by using a temporary variable to store <tt>Spc</tt> * stuff and then storing that temporary value in AD65.
      &                        A3090S, A0030S, A0030N, A3090N )
+
  
to:
+
--[[User:Melissa Payer|Melissa Sulprizio]] ([[User talk:Melissa Payer|talk]]) 13:33, 27 March 2017 (UTC)
          CALL GET_GLOBAL_CH4( GET_YEAR(), .TRUE.,           
+
      &                        A3090S, A0030S, A0030N, A3090N, .TRUE. )
+
  
 +
=== Modifying the tagged CO simulation for compatibility with HEMCO ===
  
(3) The <tt>CO_PRODS</tt> and <tt>CO_LOSSS</tt> arrays need to be made 3-dimensional for compatibility with the new GMI stratospheric chemistry data.  Change these lines:
+
<span style="color:green">'''''NOTE: This update was included in [[GEOS-Chem v11-01#v11-01g|v11-01g]] (approved 28 Sep 2016).'''''</span>
  
      REAL*8,  ALLOCATABLE :: CO_PRODS(:,:)
+
The following modifications were made to bring the Tagged CO simulation into full compatibility with the [[HEMCO|HEMCO emissions component]]. Please also see our section entitled [[#The HEMCO_Config.rc file|The <tt>HEMCO_Config.rc</tt> file]] to see how the tagged tracer definitions were made.
      REAL*8,  ALLOCATABLE :: CO_LOSSS(:,:)
+
      . . .
+
      ALLOCATE( CO_PRODS( JJPAR, LLPAR ), STAT=AS )
+
      . . .
+
      ALLOCATE( CO_LOSSS( JJPAR, LLPAR ), STAT=AS )
+
      . . .
+
      IF ( IS_PROD ) THEN
+
          RATE = CO_PRODS(J,L)  ! P(CO) from CH4 + OH in [v/v/s]
+
      ELSE
+
          RATE = CO_LOSSS(J,L)  ! L(CO) from CO + OH in [s^-1]
+
      ENDIF
+
  
to:
+
{| border=1 cellspacing=0 cellpadding=5
 +
|-bgcolor="#CCCCCC"
 +
!width="300px"|File
 +
!width="700px"|Modification
  
      REAL*8,  ALLOCATABLE :: CO_PRODS(:,:,:)
+
|-valign="top"
      REAL*8,  ALLOCATABLE :: CO_LOSSS(:,:,:)
+
|<tt>Headers/species_database_mod.F90</tt>
      . . .
+
|
      ALLOCATE( CO_PRODS( IIPAR, JJPAR, LLPAR ), STAT=AS )
+
*Add tagged CO tracer names to the CASE statement for CO
      . . .
+
      ALLOCATE( CO_LOSSS( IIPAR, JJPAR, LLPAR ), STAT=AS )
+
      . . .
+
      IF ( IS_PROD ) THEN
+
          RATE = CO_PRODS(I,J,L)  ! P(CO) from CH4 + OH in [v/v/s]
+
      ELSE
+
          RATE = CO_LOSSS(I,J,L)  ! L(CO) from CO + OH  in [s^-1]
+
      ENDIF
+
  
Thanks to Jenny Fisher for her assistance in correcting these issues.
+
|-valign="top"
 +
|<tt>GeosCore/diag3.F</tt>
 +
|
 +
*Now use [[GEOS-Chem species database]] to help identify tagged tracers for ND28 and ND36 diagnostics
 +
*Now write out all tagged tracers to the ND29 diagnostic (not to ND28)
  
--[[User:Bmy|Bob Y.]] 10:58, 20 December 2012 (EST)
+
|-valign="top"
 +
|<tt>GeosCore/gamap_mod.F</tt>
 +
|
 +
*Add tagged CO tracer names to biomass burning category
 +
*Write out the metadata for the ND29 CO tagged tracers to the <tt>tracerinfo.dat</tt> file.
 +
 
 +
|-valign="top"
 +
|<tt>GeosCore/hcoi_gc_diagn_mod.F90</tt>
 +
|
 +
*Add HEMCO diagnostic categories for tagged CO tracers
 +
*Define HEMCO diagnostic categories for tagged CO tracers. 
 +
**Note that anthropogenic and biofuel emissions are stored in category 1, as defined in the <tt>HEMCO_Config.rc</tt> file.
 +
 
 +
|-valign="top" 
 +
|<tt>GeosCore/tagged_co_mod.F</tt>
 +
|
 +
*Remove commented out code
 +
*Removed obsolete <tt>GET_PCO_LCO_STRAT</tt> routine
 +
*Removed obsolete <tt>READ_PCO_LCO_STRAT</tt> routine
 +
*Removed obsolete <tt>CO_PRODS</tt> and <tt>CO_LOSSS</tt> arrays
 +
*Added <tt>GMI_PROD_CO</tt> and <tt>GMI_LOSS_CO</tt> pointers, which point to the GMI stratospheric P(CO) and L(CO) data as read in by HEMCO.
 +
**These only have to be defined on the first chemistry timestep (via calls to <tt>HCO_GetPtr</tt>).
 +
**HEMCO will automatically update these pointers as the run evolves.
 +
*In routine <tt>CHEM_TAGGED_CO</tt>, use the [[GEOS-Chem species database]] to get the molecular weight of CO instead of hardwiring the value.
 +
*Cleaned up the <tt>!$OMP+PRIVATE</tt> statements in <tt>CHEM_TAGGED_CO</tt>, for better readability
 +
|}
 +
 
 +
Updated <tt>HEMCO_Config.rc</tt> and <tt>input.geos</tt> files have now been added to the [[GEOS-Chem Unit Tester]].
 +
 
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 14:33, 24 March 2016 (UTC)
 +
 
 +
=== Now call INIT_TAGGED_CO from input_mod.F ===
 +
 
 +
<span style="color:green">'''''This update was validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>
 +
 
 +
Prior to [[GEOS-Chem v10-01]], routine <tt>INIT_TAGGED_CO</tt> (in module <tt>GeosCore/tagged_co_mod.F</tt>) was called from routine <tt>EMISS_TAGGED_CO</tt> on the first chemistry timestep.
 +
 
 +
In order to make the code more compatible with our [[Grid-Independent GEOS-Chem]] development, we now call <tt>INIT_TAGGED_CO</tt> from routine <tt>GIGC_INIT_EXTRA</tt> (in module <tt>GeosCore/input_mod.F</tt>).  This is now called during the "Initialization" phase of GEOS-Chem rather than during the "Run" phase.
 +
 
 +
--[[User:Bmy|Bob Y.]] 17:01, 30 May 2014 (EDT)
 +
 
 +
=== Bug fix: Make sure to define the DTCHEM variable ===
 +
 
 +
<span style="color:green">'''''This update was validated in the 1-month benchmark simulation [[GEOS-Chem v10-01 benchmark history#v10-01c|v10-01c]] and approved on 29 May 2014.'''''</span>
 +
 
 +
In routine <tt>CHEM_TAGGED_CO</tt> (in module file <tt>GeosCore/tagged_co_mod.F</tt>, variable <tt>DTCHEM</tt> was never assigned any value.  This caused the tagged CO to halt with an error when running in the [[GEOS-Chem Unit Tester]].
 +
 
 +
The solution was to change this line:
 +
 
 +
      ! DTCHEM is the number of seconds per chemistry timestep
 +
      DTSRCE    = GET_TS_EMIS() * 60d0
 +
 
 +
to this:
 +
 
 +
      ! DTCHEM is the number of seconds per chemistry timestep
 +
      DTCHEM    = GET_TS_CHEM() * 60d0
 +
 
 +
--[[User:Bmy|Bob Y.]] 17:01, 30 May 2014 (EDT)
 +
 
 +
=== OH is now converted to the proper units after being read from HEMCO ===
 +
 
 +
<span style="color:green">'''''This fix was included in [[GEOS-Chem v11-01 benchmark history#v11-01j|v11-01j]] and approved on 03 Dec 2016'''''</span>
 +
 
 +
'''''Beata Bukosa wrote:'''''
 +
 
 +
<blockquote>I was using the new Tagged_CO simulation in [[GEOS-Chem v11-01]], the latest version of the Code that Bob sent to me to test and it seems like the chemical loss isn't being applied to any of the tracers.
 +
 
 +
I was running GEOS-Chem for the time period 2007- 2013 and ... you will see that for the first year (2007) the values seem ~OK but after that the concentration is just rising like chemical loss isn't being applied at all.
 +
 
 +
Also ... the monthly average concentrations might be also wrong because of the same issue.</blockquote>
 +
 
 +
'''''[[User:Bmy|Bob Yantosca]] replied:'''''
 +
 
 +
<blockquote>I think I figured it out.  HEMCO was bringing in the <code>GLOBAL_OH</code> field in kg/m3 but we were not converting it to molec/cm3 before using it.
 +
 
 +
The fix is pretty simple.  We just add a conversion factor.  I added the lines in green, underneath these existing lines in routine <code>CHEM_TAGGED_CO</code>.</blockquote>
 +
 
 +
      USE Input_Opt_Mod,      ONLY : OptInput
 +
      <span style="color:green">USE PhysConstants,      ONLY : AVO</span>
 +
 +
      . . .
 +
 +
      REAL(fp)                :: kgs_to_atomsC, Emis
 +
      <span style="color:green">REAL(fp)                :: kgm3_to_mcm3OH</span>
 +
 +
      . . .
 +
 +
      ! Get the molecular weight of CO [kg/mol] from the species database
 +
      ! (All tagged species are CO, so we can use the value for species #1)
 +
      FMOL_CO  =  State_Chm%SpcData(1)%Info%MW_g * 1.0e-3_fp
 +
 +
      <span style="color:green">! Factor to convert OH from kg/m3 (from HEMCO) to molec/cm3
 +
      kgm3_to_mcm3OH = ( AVO / 17.0e-3_fp ) * 1.0e-6_fp</span>
 +
 +
      . . .
 +
 
 +
        ! Now impose a diurnal cycle on OH.
 +
        ! This is done in other offline simulations but was
 +
        ! missing from tagged CO (jaf, 3/12/14)
 +
        !
 +
        <span style="color:green">! NOTE: HEMCO brings in OH in kg/m3, so we need to also
 +
        ! apply a conversion to molec/cm3 here. (bmy, 10/12/16)</span>
 +
        OH_MOLEC_CM3 = <span style="color:green">(</span> OH(I,J,L) * <span style="color:green">kgm3_to_mcm3OH )</span> * FAC_DIURNAL
 +
 
 +
The problem was that <code>OH_MOLEC_CM3</code> was (in units of kg/m3) of order 1e-16, but should have been in the range of 0 - 10<sup>5</sup> or so.  So then we were multiplying the species by a number that was very close to 1, which resulted in minimal loss.
 +
 
 +
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 22:29, 12 October 2016 (UTC)
  
 
== Outstanding issues that are not yet resolved ==
 
== Outstanding issues that are not yet resolved ==
  
#No diurnal variability in OH fields -- other offline simulations scale OH diurnally based on the cosine of the SZA. I have implemented this in a working version of GEOS-Chem and will submit to the standard code shortly.
 
#Centralized chemistry timestep not fully implemented -- Tagged CO has some lingering calls to SUNCOS instead of SUNCOS_MID. I've fixed these and will submit with #1.
 
#Non-local PBL mixing doesn't work -- Right now, selecting non-local PBL mixing has no effect on the tagged CO code as the model ignores this. I've fixed this as well and will submit with #1-3.
 
 
#No CO dry deposition -- this is actually true in both full chemistry and tagged CO, and Chris Holmes has pointed out it can be up to 10% of the CO sink. I have started looking into this but have made no serious progress yet.
 
#No CO dry deposition -- this is actually true in both full chemistry and tagged CO, and Chris Holmes has pointed out it can be up to 10% of the CO sink. I have started looking into this but have made no serious progress yet.
  
--Jenny Fisher, 3 Jun 2014
+
--Jenny Fisher, 3 Jun 2014<br>--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 21:40, 23 March 2016 (UTC)
 +
 
 +
 
 +
----
 +
'''''[[POPs simulation|Previous]] | [[Tagged O3 simulation|Next]] | [[Guide to GEOS-Chem simulations]]'''''

Revision as of 19:47, 13 August 2019

Previous | Next | Guide to GEOS-Chem simulations

  1. Simulations overview
  2. Mechanisms for full-chemistry simulations (e.g. Standard, Tropchem, etc.)
  3. Aerosol-only simulation
  4. CH4 simulation
  5. CO2 simulation
  6. Hg simulation
  7. POPs simulation
  8. Tagged CO simulation
  9. Tagged O3 simulation
  10. TransportTracers simulation


On this page, we describe the GEOS-Chem tagged CO simulation.

Overview

Description

The tagged CO simulation is an offline simulation that calculates CO concentrations only. It uses monthly mean OH concentrations archived from a previous full-chemistry simulation (more on that below). Because the simulation is linear, CO can be “tagged” by its source region/type. The regions and types used can be adapted to address different problems with a few simple code modifications.

Assumptions

  1. The tagged CO simulation doesn’t include direct emissions of volatile organic compounds (VOCs), so CO sources are scaled to account for co-emitted VOCs. Fossil fuel and biofuel emissions are scaled by 19% and biomass burning emissions are scaled by 11%. More information is given in Duncan et al. (2007). See note below!

  2. Biogenic VOCs:
    1. Isoprene: Yield of CO from isoprene is assumed to be 30% based on Miyoshi et al. (1994). Isoprene yield can also be computed as a function of NOx concentration by setting ALPHA_ISOP_FROM_NOX = .TRUE. in CHEM_TAGGED_CO, but this is not the default behavior.
    2. Methanol: The CO flux from methanol is scaled to the isoprene flux
    3. Monoterpene: Yield of CO from monoterpenes is assumed to be 20% based on Hatakeyama et al. (1991) and Vinckier et al. (1998).
    4. Acetone: Yield of CO from acetone is assumed to be 2/3 and accounts for acetone loss from reaction with OH and photolysis.

  3. OH concentrations are taken from a previously run full chemistry simulation. The default is from a much earlier version of the model, when OH was thought to be more realistic. The standard code uses OH from version 5-07-08, with GEOS3 meteorology.

  4. Methane concentrations are calculated based on measurements from the NOAA Global Monitoring Division network and are assumed constant over four latitudinal bands (30-90S, 0-30S, 0-30N, 30-90N). Yield is assumed to be one molecule CO per molecule CH4.
NOTE: As described in bullet point 1 above, make sure that your HEMCO_Config.rc file contains these scale factors:
     52 COPROD_FOSSIL   1.19  - - - xy 1 1
     53 COPROD_BIOFUEL  1.189 - - - xy 1 1
     54 COPROD_BIOMASS  1.11  - - - xy 1 1
(i.e. fossil fuel/biofuel increased by ~19% and biomass by 11%). The HEMCO_Config.rc file that shipped with GEOS-Chem v11-01 contain incorrect values for these scale factors. This will be fixed for v11-02.

--Bob Yantosca (talk) 14:44, 26 October 2017 (UTC)

Standard Tracers

In a standard run, there are 17 tracers (see input.geos below).

# Tracer Description Region
1 CO Total CO from all sources global
2 COus Anthropogenic + Biofuel CO emitted over the USA 172.5°W - 17.0°W; 24.0°N - 88.0°N
3 COeur Anthropogenic + Biofuel CO emitted over Europe 17.5°W - 72.5°E; 36.0°N - 45.0°N and
17.5°W - 172.5°E; 45.0°N - 88.0°N
4 COasia Anthropogenic + Biofuel CO emitted over the SE Asia 70.0°E - 152.0°E; 8.0°N - 45.0°N
5 COoth Anthropogenic + Biofuel CO emitted everywhere else rest of world
6 CObbam Biomass burning CO emitted over South America 112.5°W - 32.5°W; 56°S - 24°N
7 CObbaf Biomass burning CO emitted over Africa 17.5°W -70.0°E; 48.0°S - 36.0°N
8 CObbas Biomass burning CO emitted over SE Asia 70.0°E - 152.5°E; 8.0°N - 45.0°N
9 CObboc Biomass burning CO emitted over Oceania 70.0°E - 170.0°E; 90.0°S - 8.0°N
10 CObbeu Biomass burning CO emitted over SE Asia 17.5°W - 72.5°E; 36.0°N - 45.0°N and
17.5°W - 172.5°E; 45.0°N - 88.0°N
11 CObboth Biomass burning CO emitted everywhere else rest of world
12 COch4 CO chemically produced from methane global
13 CObbiof CO produced from biofuel emissions global
NOTE: This tracer is now obsolete, since via HEMCO we now lump anthropogenic and biofuel emissions together. Some inventories cannot easily separate out biofuels from anthropogenic emissions, so the best thing to do is to lump biofuels in with anthropogenic emissions.
14 COisop CO chemically produced from isoprene global
15 COmono CO chemically produced CO from monoterpenes global
16 COmeoh CO chemically produced from methanol global
17 COacet CO chemically produced from acetone global

The regional definitions used for the fossil fuel and biomass burning tracers can be changed by modifying the HEMCO mask file:

ExtData/HEMCO/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc

The methane and VOC tracers can be removed by commenting lines in CHEM_TAGGED_CO (look for LSPLIT). Note that if you change the tracers you will also need to make the appropriate changes in your input.geos and restart files.

--Bob Yantosca (talk) 20:17, 23 March 2016 (UTC)

The input.geos file

Tagged CO is simulation type 7. For tagged CO run with standard tracers, the relevant settings in the input.geos (assuming GEOS-Chem v11-01) are:

------------------------+------------------------------------------------------
%%% ADVECTED SPECIES MENU %%%:
Type of simulation      : 7
Number of Advected Spec.: 17
Species Entries ------->: Name
Species #1              : CO
Species #2              : COus
Species #3              : COeur
Species #4              : COasia
Species #5              : COoth
Species #6              : CObbam
Species #7              : CObbaf
Species #8              : CObbas
Species #9              : CObboc
Species #10             : CObbeu
Species #11             : CObboth
Species #12             : COch4
Species #13             : CObiof
Species #14             : COisop
Species #15             : COmono
Species #16             : COmeoh
Species #17             : COacet
------------------------+------------------------------------------------------
%%% TRANSPORT MENU %%%  :
Turn on Transport       : T
 => Fill Negative Values: T 
 => IORD, JORD, KORD    : 3  3  7
Transport Timestep [min]: 10   
------------------------+------------------------------------------------------
%%% CONVECTION MENU %%% :
Turn on Cloud Conv?     : T
Turn on PBL Mixing?     : T
 => Use non-local PBL?  : T
Convect Timestep [min]  : 10
 ------------------------+------------------------------------------------------
%%% EMISSIONS MENU %%%  :
Turn on emissions?      : T
Emiss Timestep [min]    : 20
HEMCO Input file        : HEMCO_Config.rc

... set everything else to F ...
------------------------+------------------------------------------------------ 
%%% DEPOSITION MENU %%% :
Turn on Dry Deposition? : T
Turn on Wet Deposition? : F
------------------------+------------------------------------------------------
%%% CHEMISTRY MENU %%%  : 
Turn on Chemistry?      : T
Use linear. strat. chem?: F
 => Use Linoz for O3?   : F
Use UCX strat. chem?    : F
Online CH4 chemistry?   : F
Active strat. H2O?      : F
Chemistry Timestep [min]: 20
Use spec_rst (bpch only): F
 => CSPEC rst filename? : none
USE solver coded by KPP : F
Online O3 for FAST-JX?  : F
Gamma HO2               : 0.2

... etc ...
------------------------+------------------------------------------------------
%%% DIAGNOSTIC MENU %%% : 
Binary punch file name  : trac_avg.geosfp_4x5_tagCO.YYYYMMDDhhmm
Diagnostic Entries ---> :  L   Tracers to print out for each diagnostic
  
... etc ...     
ND29: CO sources        : 47   all

... etc ...
ND45: Tracer Conc's     : 47   all 
 ==> ND45 Time range   :       0 24

--Bob Yantosca (talk) 15:18, 26 October 2017 (UTC)

The HEMCO_Config.rc file

In GEOS-Chem v11-01 and higher versions, the tagged CO emissions are now handled by the HEMCO emissions component. In the HEMCO_Config.rc file, you can add emissions from each data file to the regional CO tracers by adding a few extra lines below each data file.

For example, the following text will add emissions from one of the EDGAR inventory files into the relevant regional tracers:

0 EDGAR_CO_1A1a_6      $ROOT/EDGARv42/v2015-02/CO/EDGAR_v42_CO_IPCC_1A1a_6.generic.01x01.nc  emi_co  1970-2008/1/1/0 C xy kg/m2/s CO       6/41/26/52       1 2
0 EDGAR_CO_1A1a_6_us   -                                                                     -       -               - -  -       COus     6/41/26/52/1100  1 2
0 EDGAR_CO_1A1a_6_eur  -                                                                     -       -               - -  -       COeur    6/41/26/52/1101  1 2
0 EDGAR_CO_1A1a_6_asia -                                                                     -       -               - -  -       COasia   6/41/26/52/1102  1 2
0 EDGAR_CO_1A1a_6_oth         -                                                              -       -               - -  -       COoth    6/41/26/52/1103  1 2

Note that we simply add a mask number to the ScalId section (highlighted in RED) corresponding to each of the regional tracers. We repeat this process for all other anthropogenic data files that are read from disk.

The same methodology applies for splitting up biomass emissions into the CO regional tagged tracers. For example, this section of the HEMCO_Config.rc will put CO from the QFED biomass inventory into the biomass tagged CO tracers:

#==============================================================================
# --- QFED2 biomass burning ---
#
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %%%   Set QFED2 to category 5 to match CATEGORY_BIOMASS in the  %%%
# %%%   include file GeosCore/hcoi_gc_diagn_include.H.            %%%
# %%%     -- Bob Yantosca (17 Mar 2016)                           %%%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#==============================================================================
(((QFED2
0 QFED_CO      $ROOT/QFED/v2014-09/$YYYY/$MM/qfed2.emis_co.005.$YYYY$MM$DD.nc4 biomass 2000-2013/1-12/1-31/0 C xy kg/m2/s CO      54/75       5 2 
0 QFED_CObbAm  -                                                               -       -                     - -  -       CObbam  54/75/1104  5 2 
0 QFED_CObbAf  -                                                               -       -                     - -  -       CObbaf  54/75/1105  5 2 
0 QFED_CObbAs  -                                                               -       -                     - -  -       CObbas  54/75/1106  5 2 
0 QFED_CObbOc  -                                                               -       -                     - -  -       CObboc  54/75/1107  5 2 
0 QFED_CObbEu  -                                                               -       -                     - -  -       CObbeu  54/75/1108  5 2 
0 QFED_CObbOth -                                                               -       -                     - -  -       CObboth 54/75/1109  5 2 
)))QFED2

As for the anthropogenic emissions, we add the ID number of the appropriate mask (highlighted in PURPLE) corresponding to each biomass CO tagged tracer.

Mask definitions corresponding to each regional tagged tracer are read from a netCDF file. These masks are listed in the MASKS section of the HEMCO_Config.rc file:

#==============================================================================
# Tagged CO regions
#==============================================================================
1100 TAGCO_USA_MASK   $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_USA_MASK   2000/1/1/0 C xy 1 1 -172/24/-18/88
1101 TAGCO_EUR_MASK   $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_EUR_MASK   2000/1/1/0 C xy 1 1 -17/36/172/88
1102 TAGCO_ASIA_MASK  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_ASIA_MASK  2000/1/1/0 C xy 1 1  70/8/152/44
1103 TAGCO_OTH_MASK   $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_OTH_MASK   2000/1/1/0 C xy 1 1 -180/-90/180/90
1104 TAGCO_BBAM_MASK  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBAM_MASK  2000/1/1/0 C xy 1 1 -112/-56/-33/24
1105 TAGCO_BBAF_MASK  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBAF_MASK  2000/1/1/0 C xy 1 1 -17/-48/70/36
1106 TAGCO_BBAS_MASK  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBAS_MASK  2000/1/1/0 C xy 1 1  70/8/153/45
1107 TAGCO_BBOC_MASK  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBOC_MASK  2000/1/1/0 C xy 1 1  70/8/170/90
1108 TAGCO_BBEU_MASK  $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBEU_MASK  2000/1/1/0 C xy 1 1 -17/45/173/88 
1109 TAGCO_BBOTH_MASK $ROOT/MASKS/v2014-07/tagged_CO_masks.generic.0.5x0.5.nc TAGCO_BBOTH_MASK 2000/1/1/0 C xy 1 1 -180/-90/180/90

--Bob Yantosca (talk) 21:16, 23 March 2016 (UTC)

Notes about using HEMCO with the tagged CO simulation

In GEOS-Chem v11-01 and higher versions, the HEMCO emissions component now handles all emissions for the tagged CO simulation. You should be aware of the following:

  1. HEMCO by default uses a binary masking (either 0 or 1). If a grid box straddles the mask boundary, then HEMCO will count the entire box as part of the masked region. You can disable this behavior by setting Mask fractions: true in the SETTINGS section of the HEMCO_Config.rc file. But this may lead to some further discrepancies. It may be best to use the binary masking but use as fine resolution mask files e.g. 0.5 x 0.5) as possible.

  2. For each file that is read from disk, we add underneath that file listing an entry to apply a regional mask to the total emissions, as shown in the previous section.

  3. The Yevich & Logan biofuel emissions are added into the same CATEGORY & HIERARCHY as the EDGAR anthropogenic emissions. Because other inventories often do not separate biofuels from anthropogenic emisisons, it makes sense to lump them together. This will make it easier for the tagged tracers to sum together.

  4. At present, there is no way to apply regional masks to emissions that are computed from the GFED or FINN biomass burning emissions (which are implemented as HEMCO extensions). For this reason, we the default biomass burning emissions is the QFED inventory (which is simply read from disk, and thus can be separated into tagged tracers with regional masks, as shown in the previous section). Perhaps in a future HEMCO version we will be able to apply regional masks to extension-computed emissions.

    • If you would like to use either GFED or FINN biomass emissions with the tagged CO simulation, then we recommend that you use the HEMCO standalone code to archive the total CO emissions for a given set of met fields (e.g. GEOS-FP, MERRA) and years. Then you can following the example of QFED (shown above) to apply the regional masks to the total CO biomass emissions.

  5. We have removed the +LinStratChem+ block around the GMI_PROD_CO and GMI_LOSS_CO. For full-chemistry simulations, +LinStratChem+ is automatically toggled when stratospheric chemistry is turned on in input.geos. But the tagged CO always reads the GMI_PROD_CO and GMI_LOSS_CO fields directly from HEMCO and applies them without using the normal stratospheric chemistry module. ithout having to invoke the strat chem module.<p>

--Bob Yantosca (talk) 21:07, 23 March 2016 (UTC)

New tagged CO simulation in v11-02 and later

This update was included in v11-02f (approved 17 May 2018).

Jenny Fisher wrote:

My paper describing the updated Tagged CO simulation is now published: https://www.geosci-model-dev.net/10/4129/2017/

While the version described in the paper was based on v9, I have ported all the code into v11-01 and created a git patch along with relevant input files. Bea Bukosa has tested these out in v11-01 and all appears to be working as expected. FYI, this version maintains the possibility of using the “old” method for tagged CO with a switch in the input file.

There is one minor thing… The HEMCO files (OH and P(CO)) are for the year 2013 and v11-01. For a very interested user, these should in theory be re-created from full chem using the same year / met fields / emissions / etc. that they will run tagged CO with. However, we do show in the paper that for most applications, using a default file will be fine – and we suggest that these files can be created during the 1-year benchmarking process for the standard simulation.

I can bring this up with GCSC, but in principle could this be added to the benchmarking process? I think it would only require minor additions to what is already being saved as we need:

  • OH
  • Pressure edges
  • Box height
  • PCO chemical family
  • LCH4 chemical family (which I added in my KPP files in the patch)
There are then some IDL & NCO scripts to run to create the files, which I guess will need to be updated for netcdf diagnostics, but I imagine that won’t be hard. The scripts & associated readme are attached here.

--Bob Yantosca (talk) 16:00, 17 May 2018 (UTC)

Process for creating tagged CO input files

Jenny Fisher developed scripts for creating input files for the tagged CO simulation in GEOS-Chem v11-02 and later versions.

1. Run GEOS-Chem for 1-year (presumably benchmark simulation) saving:

  • OH (ND43, all levels, tracer 1)
  • PEDGE (ND31, all levels, tracer all)
  • BXHGHT (ND68, all levels, tracer 4)
  • PCO (ND65)
  • LCH4 (ND65)

2. In IDL, run script prepare_tagCO_IDL.pro

This will loop over 12 months to run
  • merge_oh_3d_v11
  • extract_pco_3d_v11
Defaults including directory for trac_avg files, model, resolution, year should be specified in that script.
You should check that PCO_CH4 is tracer 7 and PCO_NMVOC is tracer 8. If not, you can specify these in the script as well.

3. Run the script nco_for_taggedCO to combined the monthly files and fix the netcdf files for HEMCO.

--Melissa Sulprizio (talk) 14:53, 10 August 2018 (UTC)

Studies that used Tagged CO simulation

  1. Palmer, P. I., D. J. Jacob, D. B. A. Jones, C. L. Heald, R. M. Yantosca, J. A. Logan, G. W. Sachse, and D. G. Streets (2003), Inverting for emissions of carbon monoxide from Asia using aircraft observations over the western Pacific, Journal of Geophysical Research, 108(D21), 4180, doi: 10.1029/2003JD003397.
  2. Heald, C. L., D. J. Jacob, D. B. A. Jones, P. I. Palmer, J. A. Logan, D. G. Streets, G. W. Sachse, J. C. Gille, R. N. Hoffman, and T. Nehrkorn (2004), Comparative inverse analysis of satellite (MOPITT) and aircraft (TRACE-P) observations to estimate Asian sources of carbon monoxide, Journal of Geophysical Research, 109(D15S04), doi: 10.1029/2004JD005185.
  3. Arellano, A. F., P. S. Kasibhatla, L. Giglio, G. R. van der Werf, and J. T. Randerson (2004), Top-down estimates of global CO sources using MOPITT measurements, Geophysical Research Letters, 31(L01104), doi: 10.1029/2003GL018609.
  4. Arellano, A. F., P. S. Kasibhatla, L. Giglio, G. R. van der Werf, J. T. Randerson, and G. J. Collatz (2006), Time-dependent inversion estimates of global biomass-burning CO emissions using Measurement of Pollution in the Troposphere (MOPITT) measurements, J. Geophys. Res., 111(D09303), doi: 10.1029/2005JD006613.
  5. Duncan, B. N., Logan, J. A., Bey, I., Megretskaia, I. A., Yantosca, R. M., Novelli, P. C., Jones, N. B., and Rinsland, C. P., Global budget of CO, 1988–1997: Source estimates and validation with a global model, J. Geophys. Res., 112, D22301, doi:10.1029/2007JD008459, 2007.
  6. Duncan, B. N., J. A. Logan, I. Bey, I. A. Megretskaia, R. M. Yantosca, P. C. Novelli, N. B. Jones, and C. P. Rinsland (2008), Model analysis of the factors regulating the trends and variability of carbon monoxide between 1988 and 1997, Atmos. Chem. Phys, 8, 7389-3403.
  7. Kopacz, M., D. J. Jacob, D. K. Henze, C. L. Heald, D. G. Streets, and Q. Zhang (2009), Comparison of adjoint and analytical Bayesian inversion methods for constraining Asian sources of carbon monoxide using satellite (MOPITT) measurements of CO columns, J. Geophys. Res., 114(D04305), doi: 10.1029/2007JD009264.
  8. Fisher, J.A., D.J. Jacob, M.T. Purdy, M. Kopacz, P. Le Sager, C. Carouge, C.D. Holmes, R.M. Yantosca, R.L. Batchelor, K. Strong, G.S. Diskin, H.E. Fuelberg, J.S. Holloway, E.J. Hyer, W.W. McMillan, J. Warner, D.G. Streets, Q. Zhang, Y. Wang, S. Wu, Source attribution and interannual variability of Arctic pollution in spring constrained by aircraft (ARCTAS, ARCPAC) and satellite (AIRS) observations of carbon monoxide, Atm. Chem. Phys. Discuss., 9, 19035-19080, 2009.
  9. Kopacz, M., D.J. Jacob, J.A. Fisher, J.A. Logan, L. Zhang, I.A. Megretskaia, R.M. Yantosca, K. Singh, D.K. Henze, J.P. Burrows, M. Buchwitz, I. Khlystova, W.W. McMillan, J.C. Gille, D.P. Edwards, A. Eldering, V. Thouret, P. Nedelec, Global estimates of CO sources with high resolution by adjoint inversion of multiple satellite datasets (MOPITT, AIRS, SCIAMACHY and TES), Atm. Chem. Phys. Discuss., 9, 19967-20018, 2009.

References

  1. Duncan, B. N., Logan, J. A., Bey, I., Megretskaia, I. A., Yantosca, R. M., Novelli, P. C., Jones, N. B., and Rinsland, C. P., Global budget of CO, 1988–1997: Source estimates and validation with a global model, J. Geophys. Res., 112, D22301, doi:10.1029/2007JD008459, 2007.
  2. Hatakeyama, S., Izumi, K., Fukuyama, T., Akimoto, H. Washida, N., Reactions of OH with alpha-pinene and beta-pinene in air: Estimate of global CO production from the atmospheric oxidation of terpenes, J. Geophys. Res., 96(D1), 947-958, 1991.
  3. Miyoshi, A., Hatakeyama, S., Washida, N., OH radical-initiated photooxidation of isoprene: An estimate of global CO production, J. Geophs. Res., 99(D9), 18779-18787, 1994.
  4. Vinckier, C., Compernolle, F., Saleh, A. M., Van Hoof, N., Van Hees, I., Product yields of the alpha -pinene reaction with hydroxyl radicals and the implication on the global emission of trace compounds in the atmosphere, Fresenius Env. Bull., 7(5-6), 361-368, 1998.

Previous issues that are now resolved

We have found and fixed the following issues with the Tagged CO simulation:

Tagged CO bug fixes: Fix CO units and write secondary production into a netcdf file

This update was included in GEOS-Chem 12.3.0, which was released on 01 Apr 2019.

Beata Bukosa wrote:

It seems like there is a minor error in the speciality tagged CO simulation. This is based on the 12.1.1 version of the code, but I had a look at the 12.2.1 version and it seems like it is present there also.
The issue is on line 1276 (version 12.1.1) where the CO loss by OH (CO_OH) is written into the netcdf file in the units of kg/s, however the units are actually molecCO/cm3/s.
The last time CO_OH was used before it was written in the file was line 1222, and the units are still molecCO/cm3 there. I am not sure if the molecCO/cm3 to kg conversion is handled somewhere else, however attached is the output of the CO_OH field from both the netcdf and bpch files, and the values seem similar enough, suggesting that the unit is the same in both files (moleCO/cm3/s).

--Melissa Sulprizio (talk) 16:38, 28 March 2019 (UTC)

Do not multiply emission timestep by 60

This update (Git ID: 8a1b078e) was included in 12.1.1, which was released on 13 Dec 2018 .

Dylan Jones wrote:

I am running the tagged CO simulation in version 12.1.0 and noticed that there is a minor error in calculating the emissions. In tagged_co_mod.F, the emissions timestep used to scale the emissions coming from HEMCO is given as:
       DTEMIS    = GET_TS_EMIS() * 60.0_fp
but it should be
       DTEMIS    = GET_TS_EMIS()
since we now enter the timestep in seconds in the input.geos file.

--Bob Yantosca (talk) 15:48, 13 December 2018 (UTC)

Fix ND65 bugs in tagged CO simulation

These fixes were included in v11-02a and approved on 12 May 2017.

Jenny Fisher wrote:

I have discovered two minor bugs in the ND65 diagnostic for the tagged CO simulation in GEOS-Chem v11-01.
The first is super minor. Looking at the actual code in GeosCore/tagged_co_mod.F, AD65 for tracers 1-nAdvect is the CO loss rate, not the production rate. So the following lines in GeosCore/input_mod.F should be
           ! Tagged CO
           IF ( F <= N_ADVECT ) THEN 
              Input_Opt%FAM_NAME(F) = 'L'//Input_Opt%AdvectSpc_Name(F)
Where the L was previously a P.
The second has an impact on the actual rates. I notice that for the regional tracers (2-nAdvect), the code flow (in both strat & trop) is:
  1. Calculate CO loss rate
  2. Update Spc(I,J,L,N) using the loss rate
  3. Update AD65(I,J,L,N) using Spc(I,J,L,N) * rate information
For example in the troposphere:
                 ! Use tropospheric rate constant 
                 Spc(I,J,L,N) = Spc(I,J,L,N) *
    &                 ( 1e+0_fp - KRATE * OH_MOLEC_CM3 * DTCHEM )
then
                 ! ND65 diagnostic -- loss of CO by OH for "tagged" species
                 IF ( ND65 > 0 .and. L <= LD65 ) THEN 
                    AD65(I,J,L,N) = AD65(I,J,L,N) + 
    &                   ( KRATE * OH_MOLEC_CM3 * Spc(I,J,L,N) * STTCO )
                 ENDIF
I think this is happening in the wrong order – i.e. we want to save KRATE * OH_MOLEC_CM3 * Spc(I,J,L,N) * STTCO calculated from the ORIGINAL value of Spc (before loss applied). This could be fixed either by reversing the order so the AD65 value is saved before Spc is updated, or by using a temporary variable to store Spc * stuff and then storing that temporary value in AD65.

--Melissa Sulprizio (talk) 13:33, 27 March 2017 (UTC)

Modifying the tagged CO simulation for compatibility with HEMCO

NOTE: This update was included in v11-01g (approved 28 Sep 2016).

The following modifications were made to bring the Tagged CO simulation into full compatibility with the HEMCO emissions component. Please also see our section entitled The HEMCO_Config.rc file to see how the tagged tracer definitions were made.

File Modification
Headers/species_database_mod.F90
  • Add tagged CO tracer names to the CASE statement for CO
GeosCore/diag3.F
  • Now use GEOS-Chem species database to help identify tagged tracers for ND28 and ND36 diagnostics
  • Now write out all tagged tracers to the ND29 diagnostic (not to ND28)
GeosCore/gamap_mod.F
  • Add tagged CO tracer names to biomass burning category
  • Write out the metadata for the ND29 CO tagged tracers to the tracerinfo.dat file.
GeosCore/hcoi_gc_diagn_mod.F90
  • Add HEMCO diagnostic categories for tagged CO tracers
  • Define HEMCO diagnostic categories for tagged CO tracers.
    • Note that anthropogenic and biofuel emissions are stored in category 1, as defined in the HEMCO_Config.rc file.
GeosCore/tagged_co_mod.F
  • Remove commented out code
  • Removed obsolete GET_PCO_LCO_STRAT routine
  • Removed obsolete READ_PCO_LCO_STRAT routine
  • Removed obsolete CO_PRODS and CO_LOSSS arrays
  • Added GMI_PROD_CO and GMI_LOSS_CO pointers, which point to the GMI stratospheric P(CO) and L(CO) data as read in by HEMCO.
    • These only have to be defined on the first chemistry timestep (via calls to HCO_GetPtr).
    • HEMCO will automatically update these pointers as the run evolves.
  • In routine CHEM_TAGGED_CO, use the GEOS-Chem species database to get the molecular weight of CO instead of hardwiring the value.
  • Cleaned up the !$OMP+PRIVATE statements in CHEM_TAGGED_CO, for better readability

Updated HEMCO_Config.rc and input.geos files have now been added to the GEOS-Chem Unit Tester.

--Bob Yantosca (talk) 14:33, 24 March 2016 (UTC)

Now call INIT_TAGGED_CO from input_mod.F

This update was validated in the 1-month benchmark simulation v10-01c and approved on 29 May 2014.

Prior to GEOS-Chem v10-01, routine INIT_TAGGED_CO (in module GeosCore/tagged_co_mod.F) was called from routine EMISS_TAGGED_CO on the first chemistry timestep.

In order to make the code more compatible with our Grid-Independent GEOS-Chem development, we now call INIT_TAGGED_CO from routine GIGC_INIT_EXTRA (in module GeosCore/input_mod.F). This is now called during the "Initialization" phase of GEOS-Chem rather than during the "Run" phase.

--Bob Y. 17:01, 30 May 2014 (EDT)

Bug fix: Make sure to define the DTCHEM variable

This update was validated in the 1-month benchmark simulation v10-01c and approved on 29 May 2014.

In routine CHEM_TAGGED_CO (in module file GeosCore/tagged_co_mod.F, variable DTCHEM was never assigned any value. This caused the tagged CO to halt with an error when running in the GEOS-Chem Unit Tester.

The solution was to change this line:

      ! DTCHEM is the number of seconds per chemistry timestep
      DTSRCE    = GET_TS_EMIS() * 60d0			 

to this:

     ! DTCHEM is the number of seconds per chemistry timestep
     DTCHEM    = GET_TS_CHEM() * 60d0			 

--Bob Y. 17:01, 30 May 2014 (EDT)

OH is now converted to the proper units after being read from HEMCO

This fix was included in v11-01j and approved on 03 Dec 2016

Beata Bukosa wrote:

I was using the new Tagged_CO simulation in GEOS-Chem v11-01, the latest version of the Code that Bob sent to me to test and it seems like the chemical loss isn't being applied to any of the tracers.

I was running GEOS-Chem for the time period 2007- 2013 and ... you will see that for the first year (2007) the values seem ~OK but after that the concentration is just rising like chemical loss isn't being applied at all.

Also ... the monthly average concentrations might be also wrong because of the same issue.

Bob Yantosca replied:

I think I figured it out. HEMCO was bringing in the GLOBAL_OH field in kg/m3 but we were not converting it to molec/cm3 before using it. The fix is pretty simple. We just add a conversion factor. I added the lines in green, underneath these existing lines in routine CHEM_TAGGED_CO.
     USE Input_Opt_Mod,      ONLY : OptInput
     USE PhysConstants,      ONLY : AVO

     . . .

     REAL(fp)                 :: kgs_to_atomsC, Emis
     REAL(fp)                 :: kgm3_to_mcm3OH

     . . .

     ! Get the molecular weight of CO [kg/mol] from the species database
     ! (All tagged species are CO, so we can use the value for species #1)
     FMOL_CO   =  State_Chm%SpcData(1)%Info%MW_g * 1.0e-3_fp

     ! Factor to convert OH from kg/m3 (from HEMCO) to molec/cm3
     kgm3_to_mcm3OH = ( AVO / 17.0e-3_fp ) * 1.0e-6_fp

     . . .
 
        ! Now impose a diurnal cycle on OH.
        ! This is done in other offline simulations but was
        ! missing from tagged CO (jaf, 3/12/14)
        !
        ! NOTE: HEMCO brings in OH in kg/m3, so we need to also
        ! apply a conversion to molec/cm3 here. (bmy, 10/12/16)
        OH_MOLEC_CM3 = ( OH(I,J,L) * kgm3_to_mcm3OH ) * FAC_DIURNAL
  

The problem was that OH_MOLEC_CM3 was (in units of kg/m3) of order 1e-16, but should have been in the range of 0 - 105 or so. So then we were multiplying the species by a number that was very close to 1, which resulted in minimal loss.

--Bob Yantosca (talk) 22:29, 12 October 2016 (UTC)

Outstanding issues that are not yet resolved

  1. No CO dry deposition -- this is actually true in both full chemistry and tagged CO, and Chris Holmes has pointed out it can be up to 10% of the CO sink. I have started looking into this but have made no serious progress yet.

--Jenny Fisher, 3 Jun 2014
--Bob Yantosca (talk) 21:40, 23 March 2016 (UTC)



Previous | Next | Guide to GEOS-Chem simulations