Difference between revisions of "Sandbox"

From Geos-chem
Jump to: navigation, search
(Sample HISTORY.rc diagnostic input file)
 
(42 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==feel free to experiment here ==
+
== Instructions for adding tracers to GEOS-Chem ==
  
== Overview ==
+
'''''By [mailto:mpayer@seas.harvard.edu Melissa Payer]'''''
  
=== An introduction to netCDF diagnostics ===
+
These instructions describe how to add advected tracers to GEOS-Chem.  Advected tracers are carried in the <tt>STT</tt> array (which is declared in <tt>GeosCore/tracer_mod.F</tt>), and are transported by the winds. 
  
Bob Yantosca has created [[Media:Netcdf_Diagnostics.pdf|an overview presentation about the new netCDF diagnostics for v11-02]].
+
NOTE: Some advected tracers are also chemical species, which comprise GEOS-Chem's NOx-Ox-HC-aerosol chemistry mechanism.
  
=== Sample HISTORY.rc diagnostic input file ===
+
#<p>Add tracers to input.geos under Tracer Menu</p>
 +
##<p>Increase “Number of tracers” accordingly</p>
 +
##<p>Add tracer number, name, molecular weight, and emitted species to end of tracer list</p>
 +
#<p>Add tracer(s) to restart file – see separate instructions</p>
 +
#<p>Modify the following source code routines:</p>
 +
##<p><tt>Headers/CMN_SIZE_mod.F</tt></p>
 +
###<p>Increase <tt>NNPAR</tt> by number of tracers being added</p>
 +
###<p>If the species have anthropogenic emissions, increase NEMPARA accordingly</p>
 +
###<p>If the species have biogenic emissions, increase NEMPARB accordingly</p>
 +
###<p>If the species have biomass burning emissions, increase NBIOMAX accordingly</p>
 +
##<p><tt>GeosCore/tracerid_mod.F</tt></p>
 +
###<p>Increase <tt>NNNTRID</tt> by the number of tracers being added NOTE: <tt>NNNTRID</tt> must be equal to <tt>NNPAR</tt> in <tt>CMN_SIZE_mod.F</tt></p>
 +
###<p>Define tracer IDs as needed:</p>
 +
####<p>IDxxxx – ID for SMVGEAR species</p>
 +
####<p>IDTxxxx – GEOS-Chem tracer ID</p>
 +
####<p>IDExxxx – GEOS-Chem emission ID</p>
 +
####<p>IDBFxxxx – GEOS-Chem biofuel ID</p>
 +
####<p>IDBxxxx – GEOS-Chem biomass ID</p>
 +
###<p>In subroutine <tt>TRACERID</tt>,</p>
 +
####<p>Under “Assign tracer, biomass, biofuel, and anthro emission ID’s,” add case for added tracers to initialize IDTxxxx, IDBFxxxx, IDBxxxx</p>
 +
####<p>Under “Initialize the IDExxx flags,” add IF statement for added tracer IDs and initialize IDExxxx</p>
 +
####<p>Under “Fill IDEMS with appropriate tracer ID #’s,” add IF statement for added tracers</p>
 +
####<p>Under “Print additional information,” add WRITE statements for added tracers</p>
 +
###<p>In subroutine SETTRACE  (NOTE: Only do the following if species is included in SMVGEAR chemical mechanism<p>
 +
####<p>Add IF statement, to initialize IDxxxx</p>
 +
####<p>In subroutine INIT_TRACERID,</p>
 +
####<p>Zero all IDs added (IDxxxx, IDTxxxx, IDExxxx, etc.)</p>
 +
##<p>Other modules that may need to be updated include:</p>
 +
###<p>wetscav_mod.F</p>
 +
###<p>drydep_mod.F</p>
 +
###<p>emissions_mod.F</p>
 +
###<p>biomass_mod.F</p>
 +
###<p>biofuel_mod.F</p> etc.
  
Here is a sample <tt>HISTORY.rc</tt> file that is used to request netCDF diagnostic output from a GEOS-Chem “Classic” simulation.  The names for netCDF diagnostic quantities follow the [[#Naming convention|naming convention listed above]].
 
  
#===================================================================
 
# Declare collection names.  Disable collections by commenting
 
# each collection name out with a "#" character.
 
#===================================================================
 
COLLECTIONS: <span style="color:red">'SpeciesConc'</span>,
 
              <span style="color:blue">'ConcAfterChem'</span>,
 
::
 
#===================================================================
 
# Collection to save out GEOS-Chem species concentrations
 
#===================================================================
 
<span style="color:red">SpeciesConc</span>.<span style="color:gray">template:    '%y4%m2%d2_%h2%n2z.nc4'</span>,
 
<span style="color:red">SpeciesConc</span>.<span style="color:darkorange">frequency:    060000</span>,
 
<span style="color:red">SpeciesConc</span>.format:      'CFIO',
 
<span style="color:red">SpeciesConc</span>.<span style="color:purple">duration:    240000</span>,
 
<span style="color:red">SpeciesConc</span>.<span style="color:brown">mode:        'instantaneous'</span>,
 
<span style="color:red">SpeciesConc</span>.<span style="color:green">fields:      'SpeciesConc_?ADV?'</span>,  'GIGCchem',
 
::
 
#===================================================================
 
# Collection to save out concentrations after chemistry
 
# (from the FlexChem/KPP solver)
 
#===================================================================
 
<span style="color:blue">ConcAfterChem</span>.<span style="color:gray">template:  '%y4%m2%d2_%h2%n2z.nc4'</span>,
 
<span style="color:blue">ConcAfterChem</span>.<span style="color:magenta">frequency:  000100 000000</span>,
 
<span style="color:blue">ConcAfterChem</span>.format:    'CFIO',
 
<span style="color:blue">ConcAfterChem</span>.<span style="color:purple">duration:  000100 000000</span>,
 
<span style="color:blue">ConcAfterChem</span>.<span style="color:darkcyan">mode:      'time-averaged'</span>,
 
<span style="color:blue">ConcAfterChem</span>.<span style="color:green">fields:    'OHconcAfterChem'</span>,    'GIGCchem',
 
                          <span style="color:green">'HO2concAfterChem'</span>,    'GIGCchem',
 
                          <span style="color:green">'O1DconcAfterChem'</span>,    ‘GIGCchem’,
 
                          <span style="color:green">'O3PconcAfterChem'</span>,    ‘GIGCchem’,
 
::
 
  
In this HISTORY.rc file, we are requesting two collections, or types of netCDF file output.
+
Instructions for adding species to GEOS-Chem
  
{| border=1 cellspacing=0 cellpadding=5
+
Modify run directory files
|-valign="top" bgcolor="#CCCCCC"
+
!width="250px"|Term
+
!width="750px"|Explanation
+
  
|-valign="top"
+
1) Add tracers to input.geos under Tracer Menu
|<tt><span style="color:red">SpeciesConc</span></tt>
+
c) Increase “Number of tracers” accordingly
|Name of the first collection.  A collection is a series of files that will be produced containing the same diagnostic quantities.
+
d) Add tracer number, name, molecular weight, and emitted species to end of tracer list
  
|-valign="top"
+
2) Add tracer(s) to restart file – see separate instructions
|<tt><span style="color:red">SpeciesConc</span>.<span style="color:gray">template</span></tt>
+
|Determines the date and time format for each filename in the in the <tt><span style="color:red">SpeciesConc</span></tt> collection.
+
*The string <tt>%y4%m2%d2_%h2%n2z.nc4</tt> will print <tt>YYYYMMDD_hhmmz.nc4</tt> to the end of each netCDF filename
+
**<tt>YYYYMMDD</tt> is the date in year/month/day format
+
**<tt>hhmm</tt> is the time in hour:minutes format.
+
**<tt>z</tt> denotes "Zulu", which is an abbreviation for UTC time.
+
**<tt>.nc4</tt> denotes that the data file is in the netCDF-4 format.
+
  
|-valign="top"
+
3) Modify globchem.dat to include additional species, kinetic reactions (including emissions and drydep), or photolysis reactions
|<tt><span style="color:red">SpeciesConc</span>.<span style="color:darkorange">frequency</span></tt>
+
NOTE: If you modify globchem.dat and plan to run GEOS-Chem using the KPP chemical solver, you will need to generate new gckpp*.F90 files. For more information see the following wiki pages:
|For instantaneous collections (such as <tt><span style="color:red">SpeciesConc</span></tt>), <span style="color:darkorange">frequency</span> determines the interval at which data will be saved to disk. In this example, advected species concentration values will be written to the file
+
http://wiki.seas.harvard.edu/geos-chem/index.php/KPP_solvers_FAQ#What_are_the_cons_of_using_KPP.3F
<span style="color:darkorange">every 6 hours</span>.
+
http://wiki.seas.harvard.edu/geos-chem/index.php/Interfacing_GEOS-Chem_with_KPP#Generating_KPP_input_files_from_GEOS-Chem_globchem.dat
  
|-valign="top"
+
4) If necessary, modify:
|<tt><span style="color:red">SpeciesConc</span>.format</tt>
+
a) ratj.d – contains species names and branching ratios for FAST–JX photolysis species
|For GCHP simulations only: indicates the I/O library that will be used.  This can be omitted for GEOS-Chem "Classic" simualations.
+
For more information: http://acmg.seas.harvard.edu/geos/doc/man/chapter_5.html#5.4.1
 
+
b) jv_spec.dat – contains cross-sections and quantum yields for FAST–JX photolysis species
|-valign="top"
+
For more information: http://acmg.seas.harvard.edu/geos/doc/man/chapter_5.html#5.4.3
|<tt><span style="color:red">SpeciesConc</span>.<span style="color:purple">duration</span>,</tt>
+
|For GCHP simulations only: indicates the I/O library that will be used.  This can be ignored for GEOS-Chem "Classic" simualations.
+
 
+
|-valign="top"
+
|<tt>::</tt>
+
|Signifies the end of the list of collections, as well as the end of each defined collection.  "<tt>::</tt>" may be placed at any column in the file.
+
 
+
|}
+
 
+
#The first collection  is <span style="color:brown">instantaneous (aka timeseries) output</span> with <span style="color:darkorange">a 6-hour frequency</span>. A new file will be created <span style="color:purple">every 24 hours</span>.
+
#The second collection (<span style="color:blue">ConcAfterChem</span>) is <span style="color:darkcyan">time-averaged output</span>. Data will be updated at the dynamic timestep (= 10 minutes for most GEOS-Chem simulations) by default and <span style="color:magenta">averaged into monthly-mean output</span>. A new file will be created <span style="color:purple">at the start of each new month</span>.
+
#<span style="color:green">The diagnostic quantities (aka "fields")</span> that will be archived in each collection are listed after the “fields” tag. These diagnostic quantities follow the naming convention described in the previous section.
+
#*For GEOS-Chem “Classic” simulations, you may use wildcards to request a multiple quantities. For example, instead of listing <tt>SpeciesConc_NO</tt>, <tt>SpeciesConc_O3</tt>, <tt>SpeciesConc_PAN</tt>, <tt>SpeciesConc_CO</tt>, etc. individually, you can use <tt>SpeciesConc_?ADV?</tt> to request all of the advected GEOS_Chem species.
+
#*The "GIGCchem" text is only relevant for GCHP and will be ignored for GEOS-Chem “Classic” simulations.
+
#The <span style="color:gray">template</span> setting sets the date and time format for each output file in the collection.
+
#*The string <tt>%y4%m2%d2_%h2%n2z.nc4</tt> will print <tt>YYYYMMDD_hhmmz.nc4</tt> to the end of each netCDF filename, where YYYYMMDD is the date in year/month/day format and <tt>hhmm</tt> is the time in hour:minutes format.
+
#*The <tt>z</tt> character denotes "Zulu", which is an abbreviation for UTC time.
+
#The <tt>::</tt> signifies the end of the list of collections, as well as the end of each defined collection.  The <tt>::</tt> may be placed at any column in the HISTORY.rc file.
+
#The format setting only applies to GCHP simulations.
+
 
+
For more examples, please see [[Media:Netcdf_Diagnostics.pdf|Bob Yantosca’s netCDF diagnostics overview presentation]]. We will also add more documentation to the GEOS-Chem wiki in the coming weeks.
+
 
+
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 20:14, 8 February 2018 (UTC)
+
 
+
=== Legend ===
+
 
+
The following terms are used in the tables below.
+
 
+
{| border=1 cellspacing=0 cellpadding=5
+
|-valign="top" bgcolor="#CCCCCC"
+
!width="175px"|Term
+
!width="600px"|Explanation
+
!width="225px"|Example
+
 
+
|-valign="top"
+
|<tt><spcname></tt>
+
|Short name of a GEOS-Chem species, used in several diagnostics listed below. 
+
 
+
NOTES:
+
 
+
#The single-underscore (<tt>_</tt>) preceding the species name indicates that use of a species wildcard (e.g <tt>SpeciesConc_<span style="color:red">?ADV?</span></tt>, which only selects advected species) is possible.
+
#Allowable wild card values (case-insensitive) for species name are:
+
#*<tt>?ADV?</tt>: Only the advected species
+
#*<tt>?AER?</tt>: Only the aerosol species
+
#*<tt>?ALL?</tt>: All GEOS-Chem species
+
#*<tt>?DRY?</tt>: Only the dry-deposited species
+
#*<tt>?FIX?</tt>: Only the inactive (aka "fixed") species in the KPP chemical mechanism
+
#*<tt>?GAS?</tt>: Only the gas-phase species
+
#*<tt>?KPP?</tt>: Only the KPP species
+
#*<tt>?PHO</tt>: Only the photolyzed species
+
#*<tt>?VAR?</tt>: Only the active (aka "variable") species in the KPP chemical mechanism
+
#*<tt>?WET?</tt>: Only the wet-deposited species
+
#*<tt>?PRODLOSS?</tt>: Only prod/loss diagnostic species
+
#*<tt>?DUSTBIN</tt>: Only the dust bin number
+
#<tt><spcname></tt> should be case-insensitive. In most places where species names are compared, species names are first converted to uppercase and then a string match test is done.  But because most species names represent a chemical formula (e.g. NO, CO),they will be mostly all uppercase. Some species names would have mixed-case, e.g. BrCl, Rn, Pb, Be7, etc.
+
|<tt>SpeciesConc_<span style="color:red">NO</span></tt><br><tt>SpeciesConc_<span style="color:red">CO</span></tt><br><tt>SpeciesConc_<span style="color:red">?ADV?</span></tt><br><tt>SpeciesConc_<span style="color:red">?AER?</span></tt><br><tt>SpeciesConc_<span style="color:red">?ALL?</span></tt><br><tt>SpeciesConc_<span style="color:red">?DRY?</span></tt><br><tt>SpeciesConc_<span style="color:red">?FIX?</span></tt><br><tt>SpeciesConc_<span style="color:red">?GAS?</span></tt><br><tt>SpeciesConc_<span style="color:red">?KPP?</span></tt><br><tt>SpeciesConc_<span style="color:red">?PHO?</span></tt><br><tt>SpeciesConc_<span style="color:red">?VAR?</span></tt><br><tt>SpeciesConc_<span style="color:red">?WET?</span></tt><br><tt>...etc...</tt>
+
 
+
|-valign="top" bgcolor="#CCFFFF"
+
|<tt><metname></tt>
+
|Denotes a met field (or derived quantity such as total optical depth).
+
 
+
NOTES:
+
#<tt>MET_</tt>, <tt>Met_</tt> or <tt>met_</tt> (case-insensitive) must precede <tt><metname></tt>.  This tells the diagnostic code to look for the corresponding field of the <tt>State_Met</tt> object.
+
|<tt>MET_<span style="color:red">U10M</span></tt><br><tt>MET_<span style="color:red">PS</span></tt><br><tt>MET_<span style="color:red">HFLUX</span></tt><br><tt>MET_<span style="color:red">T</span></tt><br><tt>...etc...</tt>
+
 
+
|-valign="top"
+
|<tt><photobin></tt>
+
|Number of a given wavelength bin for FAST-JX photolysis
+
|<tt>1-18</tt> (with UCX on);<br><tt>1-12</tt> (with UCX off)
+
 
+
|-valign="top"
+
|<tt><aername></tt>
+
|Aerosol quanatities included in the following array fields:
+
 
+
#<tt>State_Chm%AeroArea</tt>
+
#<tt>State_Chm%AeroRadi</tt>
+
#<tt>State_Chm%WetAeroArea</tt>
+
#<tt>State_Chm%WetAeroRadi</tt>
+
 
+
These do not always conform to GEOS-Chem species (for example, the mineral dust bins are the bins that are used as input for photolysis).
+
 
+
#<tt>MDUST1</tt>: Mineral dust (0.15&mu;m)
+
#<tt>MDUST2</tt>: Mineral dust (0.25&mu;m)
+
#<tt>MDUST3</tt>: Mineral dust (0.40&mu;m)
+
#<tt>MDUST4</tt>: Mineral dust (0.80&mu;m)
+
#<tt>MDUST5</tt>: Mineral dust (1.50&mu;m)
+
#<tt>MDUST6</tt>: Mineral dust (2.50&mu;m)
+
#<tt>MDUST7</tt>: Mineral dust (4.00&mu;m)
+
#<tt>SULF</tt>: Sulfate
+
#<tt>BC</tt>: Black Carbon
+
#<tt>OC</tt>: Organic Carbon
+
#<tt>SSA</tt>: Sea salt aerosol, accumulation mode
+
#<tt>SSC</tt>: Sea salt aerosol, coarse mode
+
#<tt>BGSULF</tt>: Background stratospheric sulfate
+
#<tt>ICEI</tt>: Irregular ice cloud (Mischenko)
+
|<tt>CHEM_AeroArea<span style="color:red">MDUST1</span></tt><br><tt>CHEM_WetAeroRadi<span style="color:red">SSA</span></tt><br><tt>...etc...</tt>
+
 
+
|-valign="top" bgcolor="#CCFFFF"
+
|<tt>nAdvect</tt>
+
|Number of advected GEOS-Chem species
+
|
+
 
+
|-valign="top"
+
|<tt>nDryDep</tt>
+
|Number of dry-depositing GEOS-Chem species
+
|
+
 
+
|-valign="top" bgcolor="#CCFFFF"
+
|<tt>nKppSpc</tt>
+
|Number of species in the KPP chemistry mechanism
+
|
+
 
+
|-valign="top"
+
|<tt>nPhoto</tt>
+
|Number of photolyzing GEOS-Chem species
+
|
+
 
+
|-valign="top" bgcolor="#CCFFFF"
+
|<tt>nTomas</tt>
+
|Number of size-resolved TOMAS species
+
|<tt>IBINS*(ICOMP-IDIAG+1)</tt>
+
 
+
|-valign="top"
+
|<tt>nWetDep</tt>
+
|Number of soluble, wet-depositing GEOS-Chem species
+
|
+
 
+
|}
+
 
+
--[[User:Bmy|Bob Yantosca]] ([[User talk:Bmy|talk]]) 20:32, 14 November 2017 (UTC)
+
 
+
== Collection list ==
+
 
+
 
+
EXPID:  OutputDir/GCHP
+
EXPDSC: GEOS-Chem_devel
+
CoresPerNode: 6
+
 
+
#===================================================================
+
# Declare collection names and toggle on/off
+
# by commenting out with a #
+
#===================================================================
+
COLLECTIONS: 'SpeciesConc',
+
              'Aerosols',
+
              'CloudConvFlux',
+
              'ConcAfterChem',
+
              'DryDep',
+
              'JValues',
+
              'JValuesLocalNoon',
+
              'LevelEdgeDiags',     
+
              'ProdLoss',
+
              'StateChm',   
+
              'StateMet',     
+
              'WetLossConv',
+
              'WetLossLS',
+
 
+
== Species concentrations ==
+
 
+
# Species concentrations (per advected species)
+
  SpeciesConc.template:      '%y4%m2%d2_%h2%n2z.nc4',
+
  SpeciesConc.format:        'CFIO',
+
  SpeciesConc.frequency:      010000
+
  SpeciesConc.duration:      010000
+
  SpeciesConc.mode:          'time-averaged'
+
  SpeciesConc.fields:        'SpeciesConc_?ADV?            ', 'GIGCchem',
+
 
+
== Aerosol diagnostics ==
+
 
+
#===================================================================
+
# Aerosol optical depth, surface area, number density, and hygroscopic growth
+
  Aerosols.template:          '%y4%m2%d2_%h2%n2z.nc4',
+
  Aerosols.format:            'CFIO',
+
  Aerosols.frequency:        010000
+
  Aerosols.duration:          010000
+
  Aerosols.mode:              'time-averaged'
+
  Aerosols.fields:            'AODDust                      ', 'GIGCchem',
+
                              'AODDustWL1_?DUSTBIN?          ', 'GIGCchem',
+
                              'AODHygWL1_?HYG?              ', 'GIGCchem',
+
                              'AODSOAfromAqIsopreneWL1      ', 'GIGCchem',
+
                              'AODStratLiquidAerWL1          ', 'GIGCchem',
+
                              'AODPolarStratCloudWL1        ', 'GIGCchem',
+
                              'AerHygroscopicGrowth_?HYG?    ', 'GIGCchem',
+
                              'AerNumDensityStratLiquid      ', 'GIGCchem',
+
                              'AerNumDensityStratParticulate ', 'GIGCchem',
+
                              'AerAqueousVolume              ', 'GIGCchem',
+
                              'AerSurfAreaDust              ', 'GIGCchem',
+
                              'AerSurfAreaHyg_?HYG?          ', 'GIGCchem',
+
                              'AerSurfAreaStratLiquid        ', 'GIGCchem',
+
                              'AerSurfAreaPolarStratCloud    ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST1          ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST2          ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST3'          ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST4          ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST5          ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST6          ', 'GIGCchem',
+
                              'Chem_AeroAreaMDUST7          ', 'GIGCchem',
+
                              'Chem_AeroAreaSULF            ', 'GIGCchem',
+
                              'Chem_AeroAreaBC              ', 'GIGCchem',
+
                              'Chem_AeroAreaOC              ', 'GIGCchem',
+
                              'Chem_AeroAreaSSA              ', 'GIGCchem',
+
                              'Chem_AeroAreaSSC              ', 'GIGCchem',
+
                              'Chem_AeroAreaBGSULF          ', 'GIGCchem',
+
                              'Chem_AeroAreaICEI            ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST1          ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST2          ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST3          ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST4          ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST5          ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST6          ', 'GIGCchem',
+
                              'Chem_AeroRadiMDUST7          ', 'GIGCchem',
+
                              'Chem_AeroRadiSULF            ', 'GIGCchem',
+
                              'Chem_AeroRadiBC              ', 'GIGCchem',
+
                              'Chem_AeroRadiOC              ', 'GIGCchem',
+
                              'Chem_AeroRadiSSA              ', 'GIGCchem',
+
                              'Chem_AeroRadiSSC              ', 'GIGCchem',
+
                              'Chem_AeroRadiBGSULF          ', 'GIGCchem',
+
                              'Chem_AeroRadiICEI            ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST1        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST2        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST3        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST4        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST5        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST6        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaMDUST7        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaSULF          ', 'GIGCchem',
+
                              'Chem_WetAeroAreaBC            ', 'GIGCchem',
+
                              'Chem_WetAeroAreaOC            ', 'GIGCchem',
+
                              'Chem_WetAeroAreaSSA          ', 'GIGCchem',
+
                              'Chem_WetAeroAreaSSC          ', 'GIGCchem',
+
                              'Chem_WetAeroAreaBGSULF        ', 'GIGCchem',
+
                              'Chem_WetAeroAreaICEI          ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST1        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST2        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST3        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST4        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST5        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST6        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiMDUST7        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiSULF          ', 'GIGCchem',
+
                              'Chem_WetAeroRadiBC            ', 'GIGCchem',
+
                              'Chem_WetAeroRadiOC            ', 'GIGCchem',
+
                              'Chem_WetAeroRadiSSA          ', 'GIGCchem',
+
                              'Chem_WetAeroRadiSSC          ', 'GIGCchem',
+
                              'Chem_WetAeroRadiBGSULF        ', 'GIGCchem',
+
                              'Chem_WetAeroRadiICEI          ', 'GIGCchem',
+
                              'Chem_StatePSC                ', 'GIGCchem',
+
                              'Chem_KhetiSLAN2O5H2O          ', 'GIGCchem',
+
                              'Chem_KhetiSLAN2O5HCl          ', 'GIGCchem',
+
                              'Chem_KhetiSLAClNO3H2O        ', 'GIGCchem',
+
                              'Chem_KhetiSLAClNO3HCl        ', 'GIGCchem',
+
                              'Chem_KhetiSLAClNO3HBr        ', 'GIGCchem',
+
                              'Chem_KhetiSLABrNO3H2O        ', 'GIGCchem',
+
                              'Chem_KhetiSLABrNO3HCl        ', 'GIGCchem',
+
                              'Chem_KhetiSLAHOClHCl          ', 'GIGCchem',
+
                              'Chem_KhetiSLAHOClHBr          ', 'GIGCchem',
+
                              'Chem_KhetiSLAHOBrHCl          ', 'GIGCchem',
+
                              'Chem_KhetiSLAHOBrHBr          ', 'GIGCchem',
+
                              ::
+
 
+
== Cloud convective flux ==
+
 
+
# Cloud convective flux (per advected species)
+
  CloudConvFlux.template:    '%y4%m2%d2_%h2%n2z.nc4',
+
  CloudConvFlux.format:      'CFIO',
+
  CloudConvFlux.frequency:    010000
+
  CloudConvFlux.duration:    010000
+
  CloudConvFlux.mode:        'time-averaged'
+
  CloudConvFlux.fields:      'CloudConvFlux_?ADV?          ', 'GIGCchem',
+
 
+
== Concentrations after chemistry ==
+
 
+
  # Concentrations after chemistry
+
  ConcAfterChem.template:    '%y4%m2%d2_%h2%n2z.nc4',
+
  ConcAfterChem.format:      'CFIO',
+
  ConcAfterChem.frequency:    010000
+
  ConcAfterChem.duration:    010000
+
  ConcAfterChem.mode:        'time-averaged'
+
  ConcAfterChem.fields:      'OHconcAfterChem              ', 'GIGCchem', 
+
                              'HO2concAfterChem              ', 'GIGCchem', 
+
                              'O1DconcAfterChem              ', 'GIGCchem', 
+
                              'O3PconcAfterChem              ', 'GIGCchem', 
+
::
+
 
+
== Dry deposition diagnostics ==
+
 
+
# Dry deposition flux velocity (per dry deposited species)
+
  DryDep.template:            '%y4%m2%d2_%h2%n2z.nc4',
+
  DryDep.format:              'CFIO',
+
  DryDep.frequency:          010000
+
  DryDep.duration:            010000
+
  DryDep.mode:                'time-averaged'
+
  DryDep.fields:              'DryDepVel_?DRY?              ', 'GIGCchem',
+
                              'DryDepMix_?DRY?              ', 'GIGCchem',
+
                              'DryDepChm_?DRY?              ', 'GIGCchem',
+
                              'DryDep_?DRY?                  ', 'GIGCchem',
+
::
+
 
+
== Photolysis diagnostics ==
+
 
+
# Photolysis rates (J-values)
+
  JValues.template:          '%y4%m2%d2_%h2%n2z.nc4',
+
  JValues.format:            'CFIO',
+
  JValues.frequency:          010000
+
  JValues.duration:          010000
+
  JValues.mode:              'time-averaged'
+
  JValues.fields:            'Jval_?PHO?                    ', 'GIGCchem',
+
::
+
# Photolysis rates at local noon (J-values)
+
  JValuesLocalNoon.template:  '%y4%m2%d2_%h2%n2z.nc4',
+
  JValuesLocalNoon.format:    'CFIO',
+
  JValuesLocalNoon.frequency: 010000
+
  JValuesLocalNoon.duration:  010000
+
  JValuesLocalNoon.mode:      'instantaneous'
+
  JValuesLocalNoon.fields:    'JNoon_?PHO?                  ', 'GIGCchem',
+
::
+
 
+
== Diagnostics on level edges ==
+
 
+
# Level edge diagnostics (73-level only)
+
  LevelEdgeDiags.template:    '%y4%m2%d2_%h2%n2z.nc4',
+
  LevelEdgeDiags.format:      'CFIO',
+
  LevelEdgeDiags.frequency:  010000
+
  LevelEdgeDiags.duration:    010000
+
  LevelEdgeDiags.mode:        'time-averaged'
+
  LevelEdgeDiags.fields:      'Met_CMFMC                    ', 'GIGCchem',
+
                              'Met_PEDGE                      ', 'GIGCchem',
+
                              'Met_PEDGEDRY                  ', 'GIGCchem',
+
                              'Met_PFICU                      ', 'GIGCchem',
+
                              'Met_PFILSAN                    ', 'GIGCchem',
+
                              'Met_PFLCU                      ', 'GIGCchem',
+
                              'Met_PFLLSAN                    ', 'GIGCchem',
+
::
+
 
+
== Production and loss rates ==
+
 
+
  # Prod/loss rates
+
  ProdLoss.template:          '%y4%m2%d2_%h2%n2z.nc4',
+
  ProdLoss.format:            'CFIO',
+
  ProdLoss.frequency:        010000
+
  ProdLoss.duration:          010000
+
  ProdLoss.mode:              'time-averaged'
+
  ProdLoss.fields:            'PROD_?PRD?                    ', 'GIGCchem',
+
                              'ProdBCPIfromBCPO              ', 'GIGCchem',
+
                              'ProdOCPIfromOCPO              ', 'GIGCchem',
+
                              'ProdSO4fromH2O2inCloud        ', 'GIGCchem',
+
                              'ProdSO4fromO3inCloud          ', 'GIGCchem',
+
                              'ProdSO4fromO3inSeaSalt        ', 'GIGCchem',
+
                              'ProdSO4fromHOBrInCloud        ', 'GIGCchem',
+
                              'ProdSO4fromSRO3              ', 'GIGCchem',
+
                              'ProdSO4fromSRHObr            ', 'GIGCchem',
+
                              'ProdSO4fromO3s                ', 'GIGCchem',
+
                              'LOSS_?LOS?                    ', 'GIGCchem',
+
                              'LossHNO3onSeaSalt            ', 'GIGCchem',
+
::
+
 
+
== Fields of the State_Chm object ==
+
 
+
# State_Chm array diagnostics (see also Aerosols collection
+
  StateChm.template:          '%y4%m2%d2_%h2%n2z.nc4',
+
  StateChm.format:            'CFIO',
+
  StateChm.frequency:        010000
+
  StateChm.duration:          010000
+
  StateChm.mode:              'time-averaged'
+
  StateChm.fields:            'Chem_phSav                    ', 'GIGCchem', 
+
                              'Chem_HplusSav                ', 'GIGCchem', 
+
                              'Chem_WaterSav                ', 'GIGCchem', 
+
                              'Chem_SulRatSav                ', 'GIGCchem', 
+
                              'Chem_NaRatSav                ', 'GIGCchem', 
+
                              'Chem_AcidPurSav              ', 'GIGCchem', 
+
                              'Chem_BiSulSav                ', 'GIGCchem',
+
                              'Chem_pHCloud                  ', 'GIGCchem',
+
                              'Chem_SSAlk',                  ', 'GIGCchem',
+
                              'Chem_HSO3AQ                  ', 'GIGCchem',
+
                              'Chem_SO3AQ                    ', 'GIGCchem',
+
                              'Chem_fupdateHOBr              ', 'GIGCchem',
+
::
+
 
+
== Fields of the State_Met object ==
+
 
+
# State_Met array diagnostics
+
  StateMet.template:          '%y4%m2%d2_%h2%n2z.nc4',
+
  StateMet.format:            'CFIO',
+
  StateMet.frequency:        010000
+
  StateMet.duration:          010000
+
  StateMet.mode:              'time-averaged'
+
  StateMet.fields:            'Met_AD                        ', 'GIGCchem',
+
                              'Met_AIRDEN                    ', 'GIGCchem',
+
                              'Met_AIRVOL                    ', 'GIGCchem',
+
                              'Met_ALBD                      ', 'GIGCchem',
+
                              'Met_AREAM2                    ', 'GIGCchem',
+
                              'Met_AVGW                      ', 'GIGCchem',
+
                              'Met_BXHEIGHT                  ', 'GIGCchem',
+
                              'Met_ChemGridLev                ', 'GIGCchem',
+
                              'Met_CLDF                      ', 'GIGCchem',
+
                              'Met_CLDFRC                    ', 'GIGCchem',
+
                              'Met_CLDTOPS                    ', 'GIGCchem',
+
                              'Met_DELP                      ', 'GIGCchem',
+
                              'Met_DQRCU                      ', 'GIGCchem',
+
                              'Met_DQRLSAN                    ', 'GIGCchem',
+
                              'Met_DTRAIN                    ', 'GIGCchem',
+
                              'Met_EFLUX                      ', 'GIGCchem',
+
                              'Met_FRCLND                    ', 'GIGCchem',
+
                              'Met_FRLAKE                    ', 'GIGCchem',
+
                              'Met_FRLAND                    ', 'GIGCchem',
+
                              'Met_FRLANDIC                  ', 'GIGCchem',
+
                              'Met_FROCEAN                    ', 'GIGCchem',
+
                              'Met_FRSEAICE                  ', 'GIGCchem',
+
                              'Met_FRSNO                      ', 'GIGCchem',
+
                              'Met_GWETROOT                  ', 'GIGCchem',
+
                              'Met_GWETTOP                    ', 'GIGCchem',
+
                              'Met_HFLUX                      ', 'GIGCchem',
+
                              'Met_LAI                        ', 'GIGCchem',
+
                              'Met_LWI                        ', 'GIGCchem',
+
                              'Met_PARDR                      ', 'GIGCchem',
+
                              'Met_PARDF                      ', 'GIGCchem',
+
                              'Met_PBLTOPL                    ', 'GIGCchem',
+
                              'Met_PBLH                      ', 'GIGCchem',
+
                              'Met_PHIS                      ', 'GIGCchem',
+
                              'Met_PMID                      ', 'GIGCchem',
+
                              'Met_PMIDDRY                    ', 'GIGCchem',
+
                              'Met_PRECANV                    ', 'GIGCchem',
+
                              'Met_PRECCON                    ', 'GIGCchem',
+
                              'Met_PRECLSC                    ', 'GIGCchem',
+
                              'Met_PRECTOT                    ', 'GIGCchem',
+
                              'Met_PS1DRY                    ', 'GIGCchem',
+
                              'Met_PS1WET                    ', 'GIGCchem',
+
                              'Met_PS2DRY                    ', 'GIGCchem',
+
                              'Met_PS2WET                    ', 'GIGCchem',
+
                              'Met_PSC2WET                    ', 'GIGCchem',
+
                              'Met_PSC2DRY                    ', 'GIGCchem',
+
                              'Met_QI                        ', 'GIGCchem',
+
                              'Met_QL                        ', 'GIGCchem',
+
                              'Met_OMEGA                      ', 'GIGCchem',
+
                              'Met_OPTD                      ', 'GIGCchem',
+
                              'Met_REEVAPCN                  ', 'GIGCchem',
+
                              'Met_REEVAPLS                  ', 'GIGCchem',
+
                              'Met_SLP                        ', 'GIGCchem',
+
                              'Met_SNODP                      ', 'GIGCchem',
+
                              'Met_SNOMAS                    ', 'GIGCchem',
+
                              'Met_SPHU                      ', 'GIGCchem',
+
                              'Met_SPHU1                      ', 'GIGCchem',
+
                              'Met_SPHU2                      ', 'GIGCchem',
+
                              'Met_SUNCOS                    ', 'GIGCchem',
+
                              'Met_SUNCOSmid                  ', 'GIGCchem',
+
                              'Met_SWGDN                      ', 'GIGCchem',
+
                              'Met_T                          ', 'GIGCchem',
+
                              'Met_TAUCLI                    ', 'GIGCchem',
+
                              'Met_TAUCLW                    ', 'GIGCchem',
+
                              'Met_THETA                      ', 'GIGCchem',
+
                              'Met_TMPU1                      ', 'GIGCchem',
+
                              'Met_TMPU2                      ', 'GIGCchem',
+
                              'Met_TO3                        ', 'GIGCchem',
+
                              'Met_TropHt                    ', 'GIGCchem',
+
                              'Met_TropLev                    ', 'GIGCchem',
+
                              'Met_TropP                      ', 'GIGCchem',
+
                              'Met_TS                        ', 'GIGCchem',
+
                              'Met_TSKIN                      ', 'GIGCchem',
+
                              'Met_TV                        ', 'GIGCchem',
+
                              'Met_U                          ', 'GIGCchem',
+
                              'Met_U10M                      ', 'GIGCchem',
+
                              'Met_USTAR                      ', 'GIGCchem',
+
                              'Met_UVALBEDO                  ', 'GIGCchem',
+
                              'Met_V                          ', 'GIGCchem',
+
                              'Met_V10M                      ', 'GIGCchem',
+
                              'Met_Z0                        ', 'GIGCchem',
+
::
+
 
+
== Loss of soluble species in cloud updrafts ==
+
 
+
# Loss due to convection (per wet deposited species)
+
  WetLossConv.template:      '%y4%m2%d2_%h2%n2z.nc4',
+
  WetLossConv.format:        'CFIO',
+
  WetLossConv.frequency:      010000
+
  WetLossConv.duration:      010000
+
  WetLossConv.mode:          'time-averaged'
+
  WetLossConv.fields:        'WetLossConv_?WET?            ', 'GIGCchem',
+
::
+
 
+
== Loss of soluble species in large-scale wet deposition ==
+
 
+
# Loss due to rainout and washout (per deposited species)
+
  WetLossLS.template:        '%y4%m2%d2_%h2%n2z.nc4',
+
  WetLossLS.format:          'CFIO',
+
  WetLossLS.frequency:        010000
+
  WetLossLS.duration:        010000
+
  WetLossLS.mode:            'time-averaged'
+
  WetLossLS.fields:          'WetLossLS_?WET?              ', 'GIGCchem',
+
::
+

Latest revision as of 21:25, 10 May 2023

Instructions for adding tracers to GEOS-Chem

By Melissa Payer

These instructions describe how to add advected tracers to GEOS-Chem. Advected tracers are carried in the STT array (which is declared in GeosCore/tracer_mod.F), and are transported by the winds.

NOTE: Some advected tracers are also chemical species, which comprise GEOS-Chem's NOx-Ox-HC-aerosol chemistry mechanism.

  1. Add tracers to input.geos under Tracer Menu

    1. Increase “Number of tracers” accordingly

    2. Add tracer number, name, molecular weight, and emitted species to end of tracer list

  2. Add tracer(s) to restart file – see separate instructions

  3. Modify the following source code routines:

    1. Headers/CMN_SIZE_mod.F

      1. Increase NNPAR by number of tracers being added

      2. If the species have anthropogenic emissions, increase NEMPARA accordingly

      3. If the species have biogenic emissions, increase NEMPARB accordingly

      4. If the species have biomass burning emissions, increase NBIOMAX accordingly

    2. GeosCore/tracerid_mod.F

      1. Increase NNNTRID by the number of tracers being added NOTE: NNNTRID must be equal to NNPAR in CMN_SIZE_mod.F

      2. Define tracer IDs as needed:

        1. IDxxxx – ID for SMVGEAR species

        2. IDTxxxx – GEOS-Chem tracer ID

        3. IDExxxx – GEOS-Chem emission ID

        4. IDBFxxxx – GEOS-Chem biofuel ID

        5. IDBxxxx – GEOS-Chem biomass ID

      3. In subroutine TRACERID,

        1. Under “Assign tracer, biomass, biofuel, and anthro emission ID’s,” add case for added tracers to initialize IDTxxxx, IDBFxxxx, IDBxxxx

        2. Under “Initialize the IDExxx flags,” add IF statement for added tracer IDs and initialize IDExxxx

        3. Under “Fill IDEMS with appropriate tracer ID #’s,” add IF statement for added tracers

        4. Under “Print additional information,” add WRITE statements for added tracers

      4. In subroutine SETTRACE (NOTE: Only do the following if species is included in SMVGEAR chemical mechanism<p>

        1. <p>Add IF statement, to initialize IDxxxx

        2. In subroutine INIT_TRACERID,

        3. Zero all IDs added (IDxxxx, IDTxxxx, IDExxxx, etc.)

    3. Other modules that may need to be updated include:

      1. wetscav_mod.F

      2. drydep_mod.F

      3. emissions_mod.F

      4. biomass_mod.F

      5. biofuel_mod.F

        etc.


Instructions for adding species to GEOS-Chem

Modify run directory files

1) Add tracers to input.geos under Tracer Menu c) Increase “Number of tracers” accordingly d) Add tracer number, name, molecular weight, and emitted species to end of tracer list

2) Add tracer(s) to restart file – see separate instructions

3) Modify globchem.dat to include additional species, kinetic reactions (including emissions and drydep), or photolysis reactions NOTE: If you modify globchem.dat and plan to run GEOS-Chem using the KPP chemical solver, you will need to generate new gckpp*.F90 files. For more information see the following wiki pages: http://wiki.seas.harvard.edu/geos-chem/index.php/KPP_solvers_FAQ#What_are_the_cons_of_using_KPP.3F http://wiki.seas.harvard.edu/geos-chem/index.php/Interfacing_GEOS-Chem_with_KPP#Generating_KPP_input_files_from_GEOS-Chem_globchem.dat

4) If necessary, modify: a) ratj.d – contains species names and branching ratios for FAST–JX photolysis species For more information: http://acmg.seas.harvard.edu/geos/doc/man/chapter_5.html#5.4.1 b) jv_spec.dat – contains cross-sections and quantum yields for FAST–JX photolysis species For more information: http://acmg.seas.harvard.edu/geos/doc/man/chapter_5.html#5.4.3