Tagged CO is useful for tracing specific emissions in CAM-chem. Below describes how to set-up a tagged run, the process is similar to updating gas phase chemistry.
TAGGING CO
(1) Add to the chemical mechanism
Set-up and build model as usual to get the default chemical mechanism for the compset you plan to use. After step (C) of building the executable, copy a version of the default chemical mechanism from CaseDocs/chem_mech.in
to my_mech.in
within the case directory and edit to add the CO tags.
CAM-chem includes the code to treat CO tags with species names CO01, CO02, CO03, ... CO42 just like CO (reaction rate with OH and dry deposition). Note that Wet Deposition of CO was introduced in CESM2.2, but the wet dep of the CO tags has not yet been implemented.
> cp /glade/p/work/${USER}/cases/${case}/CaseDocs/chem_mech.in /glade/p/work/${USER}/cases/${case}/my_mech.in
- Add CO, and tags (e.g. CO01 -> CO, CO02 -> CO etc.) under “Solution”. Note: CO tags must be numbered as in the example, a set of specific tag names are “expected” by CAM-chem.
- Add CO and tags to “Solution Classes”, under “Implicit”
*** Be sure to add new reactions after the normal CO mechanism, otherwise a segmentation fault occurs ***
SPECIES Solution CO01 -> CO etc. H2O End Solution ... [usr_CO_OH_b] CO + OH -> CO2 + H [CO_OH_M] CO + OH + M -> CO2 + HO2 + M ; 5.90e-33, 1.4, 1.10e-12, -1.3, 0.6 Add in tagged reactions, e.g: [usr_CO01_OH] CO01 + OH -> OH [CO01_OH_M] CO01 + OH + M -> OH + M ; 5.90e-33, 1.4, 1.10e-12, -1.3, 0.6 ...
Dry Deposition: The dry deposition velocity of CO tags (CO01 - CO42) is assigned to CO deposition velocity in ./components/cam/src/chemistry/mozart/mo_drydep,.F90. You will need to add the CO tags to the drydep namelist at run time.
(1.b) Tracers with fixed lifetime
Alternatively you can add tracers with any name with a fixed lifetime if you do not care about them being treated exactly as CO.
For example, to have a tracer with a 15-day lifetime you can add to the mechanism something like:
[CO_EAS_tau] CO_EAS -> ; 7.72e-07
Then you do not need to worry about OH reaction rates, or deposition.
(2) Tell the model to read in the new mechanism file
Change in env_build.xml
> ./xmlchange CAM_CONFIG_OPTS='-phys cam4 -chem trop_bam -offline_dyn -nlev 56 -usr_mech_infile ${caseroot}/my_mech.in'
(3) Create tagged emission input files if required
(4) Describe tag sources
Define namelist variable in usr_nl_cam
to define where tags will find sources of the emission:
Either from emission files
srf_emis_specifier = 'CO01 -> /glade/p/work/buchholz/emis/qfed_finn_2000_2014/qfed.emis_CO_1.9x2.5_mol_2000_2014_AUS.nc' srf_emis_specifier = 'CO02 -> /glade/p/work/buchholz/emis/qfed_finn_2000_2014/qfed.emis_CO_1.9x2.5_mol_2000_2014_NAM.nc' ...
Or from biogenic emissions
&megan_emis_nl megan_factors_file = '/glade/p/cesm/cseg/inputdata/atm/cam/chem/trop_mozart/emis/megan21_emis_factors_c20130304.nc' megan_mapped_emisfctrs = .false. megan_specifier = 'CO = carbon_monoxide', 'CO02 = carbon_monoxide' /
Or alter the chemistry mechanism file, my_mech.in
, to include a source from chemistry. For example methane oxidation results in CO approximately 86% of the time:
CH4 + OH -> 0.86*COme
(5) Add emissions and deposition diagnostics to the history files
In user_nl_cam, add to fincl* lists, for example:
SFCO01, DV_CO01, DF_CO01, ...
(6) Re-compile the setup and build
>./case.build --clean-all >qcmd -- ./case.build
Then you are ready to run (step D in running the model).
SETTING UP A SIMPLE TRACER RUN
Using the simple chemistry in CAM and prescribing oxidants from a previous full chemistry run enables sensitivity tests of different processes, such as using constant emissions with changing dynamics.
(1) Create input
Save constant-year fields from a full-chemistry run: O3, OH, NO3, HO2. Also, save the chemically produced CO and MEGAN emissions from the full chemistry run. Use netCDF operator to create a single year oxidants file from the history files of a full chemistry run.
> ncrcat -v date,datesec,P0,PS,hyam,hybm,hyai,hybi,OH,O3,HO2,NO3,CO_CHMP,MEG_CO *h0*2005* oxidants_2005.nc > mv oxidants_2005.nc /glade/p/work/${USER}/emis/prescribed_fields
(2) Set up the model to run CAM with simple chemistry.
Required compset with specified dynamics: FHIST
Set-up and build model as usual to get the default chemical mechanism.
(3) Specify emissions and oxidant files
Emissions: Add emission files for CB1, CB2, CO, OC1, OC2, SO2 as per fullchem, (note can add two files for the same species and emissions will add) e.g.:
&chem_inparm
srf_emis_specifier = 'CO -> /glade/p/work/buchholz/emis/qfed_finn_2000_2014/qfed.emis_CO_1.9x2.5_mol_2000_2014.nc'
...
Set emissions to be cyclic, so interannual concentration changes are only due to dynamics.
srf_emis_type = 'CYCLICAL'
srf_emis_cycle_yr = 2005
Prescribed fields: oxidants
tracer_cnst_cycle_yr = 2005
tracer_cnst_datapath = '/glade/p/work/${USER}/emis/prescribed_fields'
tracer_cnst_file = 'oxidants_2005.nc'
tracer_cnst_specifier = 'O3','OH','NO3','HO2'
tracer_cnst_type = 'CYCLICAL'
Add prescribed fields: chemically produced CO:
tracer_srcs_cycle_yr = 2005
tracer_srcs_datapath = '/glade/p/work/${USER}/emis/prescribed_fields'\
tracer_srcs_file = 'oxidants_2005.nc'
tracer_srcs_specifier = 'CO:CO_CHMP', 'CO01:CO_CHMP'
tracer_srcs_type = 'CYCLICAL'
/
Surface values - make sure same as full-chemistry simulation and cyclic for the year of interest.
&chem_surfvals_nl
flbc_file = '/glade/p/cesmdata/cseg/inputdata/atm/waccm/lb/LBC_1765-2500_1.9x2.5_CMIP5_RCP45_za_c120127.nc'
flbc_list = 'CH4', 'CO2', 'N2O','CFC11', 'CFC12'
flbc_type = 'CYCLICAL'
flbc_cycle_yr = 2005
scenario_ghg = 'CHEM_LBC_FILE'
/
Make sure MEGAN emissions are also the same as full-chemistry simulation (need to update this step)
&megan_emis_nl
megan_factors_file = '/glade/p/cesm/cseg/inputdata/atm/cam/chem/trop_mozart/emis/megan21_emis_factors_c20130304.nc'
megan_mapped_emisfctrs = .false.
megan_specifier = 'CO = carbon_monoxide', 'CO02 = carbon_monoxide'
/
(4) Re-compile the setup and build
>./case.setup --clean >./case.setup >./case.build --clean >qcmd -- ./case.build
Then you are ready to run (step D in running the model)