Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update transport tracer simulation for consistency with GMAO's tracer gridded component #1816

Merged
merged 14 commits into from
Jun 16, 2023

Conversation

msulprizio
Copy link
Contributor

@msulprizio msulprizio commented May 31, 2023

Name and Institution (Required)

Name: Melissa Sulprizio
Institution: Harvard / GCST

Confirm you have reviewed the following documentation

Describe the update

This pull request includes major updates to the TransportTracer simulation. These changes were made for easier comparison to GMAO's tracer gridded component (TR_GridComp) and should facilitate intermodel comparisons between GCClassic, GCHP, and GEOS. Changes include

  • Renaming several species for consistency with naming used in TR_GridComp. Species now included in this simulation are:
    • Rn222
    • Pb210
    • Pb210s
    • Be7
    • Be7s
    • Be10
    • Be10s
    • aoa
    • aoa_bl
    • aoa_nh
    • CH3I
    • CO_25
    • CO_50
    • e90
    • e90_n
    • e90_s
    • nh_5
    • nh_50
    • PassiveTracer
    • SF6
    • st80_25
  • Removing the Passive Species menu from geoschem_config.yml and instead defining transport tracer properties in the species_database.yml
  • Adding several new fields to the species object for the transport tracer properties
    • Is_Tracer - tags species as a TransportTracer species
    • Snk_* - defines sink properties
    • Src_* - defines source properties
    • Units - default units for species (added mainly for age of air species at this time which are in units days)
  • Adding new module tracer_mod.F90 containing code for applying the source and sink phases for TransportTracers

NOTE: The Rn-Pb-Be tracers are not updated here. Their TransportTracer properties (described above) have been added to species_database.yml but are commented out. Emissions for those species are still handled in hcox_gc_RnPbBe_mod.F90 in HEMCO and chemistry is handled in RnPbBe_mod.F90. Eventually, we can migrate those species to utilize the code in tracer_mod.F90 if desired.

Expected changes

This update produces zero differences in the Rn, Pb, Be, and PassiveTracer species. Differences exist in other species due because of different implementations (they were never validated in the original implementation). There are also a few additional species that weren't included in the original implementation of additional transport tracers.

Reference(s)

If this is a science update, please provide a literature citation.

Related Github Issue(s)

…n GEOS

The transport tracer names and properties are updated here for consistency
with the latest tracer gridded component (TR_GridComp) in GEOS, currently
available at https://github.com/GEOS-ESM/GEOSchem_GridComp/tree/develop/TR_GridComp.

Signed-off-by: Melissa Sulprizio <[email protected]>
The passive species menu has been removed from geoschem_config.rc. Instead,
all species for the TransportTracer are now defined in the advected species
menu and properties for those species are defined in species_database.yml.
Several new fields have been added to State_Chm%SpcData for storing properties
needed for the transport tracers. The newly added property names and values
have been adopted from TR_GridComp in GEOS (as defined in the TR_GridComp*rc
files). The new properties are:

  - Is_Tracer   : Is it a transport tracer?
  - Snk_Horiz   : Where to apply sink horizontally?
  - Snk_LatMin  : Minimum latitude for applying sink
  - Snk_LatMax  : Maximum latitude for applying sink
  - Snk_Mode    : Sink mode of tracer
  - Snk_Period  : Sink period in days
  - Snk_Vert    : Where to apply sink vertically?
  - Src_Add     : Add tracer source?
  - Src_Horiz   : Where to apply source horizontally?
  - Src_LatMin  : Minimum latitude for applying source
  - Src_LatMax  : Maximum latitude for applying source
  - Src_Mode    : Source mode of tracer
  - Src_PresMin : Minimum pressure for applying source
  - Src_PresMax : Maximum pressure for applying source
  - Src_Units   : Source units
  - Src_Value   : Source value in Src_Units
  - Src_Vert    : Where to apply source vertically?
  - Units       : Species units (needed for aoa tracers which are carried in units=days)

Entries for Rn*, Pb*, and Be* in species_database.yml have been updated
to include these new properties, but they are commented out for now. These
species will still be handled by RnPbBe_mod.F90 until further validation
can be performed.

Signed-off-by: Melissa Sulprizio <[email protected]>
New routines Tracer_Source_Phase and Tracer_Sink_Phase have been added to
a new module tracer_mod.F90. There sources and sinks for the TransportTracer
species are applied. The code in those routines was was adapted from GMAO's
TR_GridCompMod.F90.

Other updates in this commit include:
- Rename ITS_A_RnPbBe_Sim to ITS_A_TRACER_SIM
- Add Snk_Value field to SpcInfo for age of air (aoa) species
- Add debug print out for TransportTracers to species_mod.F90
- Add O3 loss field in HEMCO for stOX tracer. The production field is not
  needed.

Signed-off-by: Melissa Sulprizio <[email protected]>
The species Be7Strat, Be10Strat, and Pb210Strat have been renamed to
Be7s, Be10s, and Pb210s throughout the code and input files for consistency
with GMAO's tracer gridded component (TR_GridComp).

Signed-off-by: Melissa Sulprizio <[email protected]>
…transport-tracers

Resolved conflicts in:
	GeosCore/chemistry_mod.F90
	GeosCore/emissions_mod.F90
	GeosCore/hco_interface_gc_mod.F90
	GeosCore/input_mod.F90
	Headers/input_opt_mod.F90
	run/GCClassic/HISTORY.rc.templates/HISTORY.rc.TransportTracers
	run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.TransportTracers
	run/GCHP/HISTORY.rc.templates/HISTORY.rc.TransportTracers
	run/shared/species_database.yml

Signed-off-by: Melissa Sulprizio <[email protected]>
@msulprizio msulprizio added this to the 14.2.0 milestone May 31, 2023
@msulprizio msulprizio self-assigned this May 31, 2023
Copy link
Contributor

@lizziel lizziel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the great work! I left a bunch of comments and questions. I also wonder if you have run a GCHP versus GC-Classic comparison of the tracers? I noticed the all reduce command is only for MODEL_GEOS so it wouldn't get triggered for GCHP.

run/shared/species_database.yml Outdated Show resolved Hide resolved
run/GCHP/ExtData.rc.templates/ExtData.rc.TransportTracers Outdated Show resolved Hide resolved
Headers/species_mod.F90 Show resolved Hide resolved
Headers/species_mod.F90 Show resolved Hide resolved
Headers/species_mod.F90 Show resolved Hide resolved
Headers/species_mod.F90 Show resolved Hide resolved
Headers/species_database_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Outdated Show resolved Hide resolved
GeosCore/tracer_mod.F90 Outdated Show resolved Hide resolved
Copy link
Contributor

@yantosca yantosca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR moves the passive species treatment out of HEMCO and into the GeosCore/tracer_mod.F90 to mimic how TransportTracers are handled in the NASA GEOS ESM.

Many of the changes involve just changing names for consistency in GEOS, and modifying code and config files to read metadata for passive species from the species database. These all look OK.

I have listed a few "TODO FOR LATER" comments which we can work on in a subsequent PR. These are mostly updates for efficiency. We should first make sure that this PR gives zero-diff w/r/t the prior code before making any further changes.

Good to merge. Thanks @msulprizio!

GeosCore/RnPbBe_mod.F90 Show resolved Hide resolved
GeosCore/RnPbBe_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
…, aoa_bl, aoa_nh

The age of air species in the TransportTracers simulations has many
similar proprteries that could be extracted into a aoaproperties field.
Now the only fields defined for the inidividual aoa tracers are FullName,
Snk_Horiz, and Snk_Vert.

Signed-off-by: Melissa Sulprizio <[email protected]>
- Fix typo in ExtData.rc.TransportTracers where $YYYY, $MM, $DD should be
  %y4, %m2, %d2.
- Add MODEL_GEOS to #if defined statements in tracer_mod.F90
- Fix comments in CHANGELOG.md

Signed-off-by: Melissa Sulprizio <[email protected]>
…ansportTracer simulations

Signed-off-by: Melissa Sulprizio <[email protected]>
Add the !$OMP COLLAPSE statement to all parallel loops in tracer_mod.F90
for better efficiency.

Signed-off-by: Melissa Sulprizio <[email protected]>
Copy link
Contributor

@yantosca yantosca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve this PR. We can fix any remaining unit conversion issues (cf #1820) in a later PR, so as not to hold up the Tracer Transport simulations.

run/shared/species_database.yml Show resolved Hide resolved
GeosCore/tracer_mod.F90 Show resolved Hide resolved
Copy link
Contributor

@lizziel lizziel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but we should definitely do GCHP integration tests before merge to make sure it runs. We should also check that the values looks okay in GCHP compared to GC-Classic before doing the full benchmark.

The logic in Headers/diaglist_mod.F90 did not allow for species names
containing underscores. The updated TransportTracers simulation includes
several new species with underscores in their name (e.g. e_90, CO_25,
st80_25). The code there has been rearranged so that first the registryID
is defined (stripping CHEM_/MET_ and the wildcard if necessary), then it
determines if it's a tagged diagnostic (i.e. contains at least one underscore),
and finally the metadataID is defined by stripping the tag suffix if necessary.

Signed-off-by: Melissa Sulprizio <[email protected]>
… for GCHP

The HEMCO_Config.rc.TransportTracers file included both the {RUNDIR_O3_LOSS}
token and the actual entry for O3_LOSS which resulted in the entry getting
listed twice in the HEMCO_Config.rc that ships with run directories. The
line has been fixes so that just the token is used in the template file.

Signed-off-by: Melissa Sulprizio <[email protected]>
@msulprizio msulprizio merged commit a89ba68 into dev/14.2.0 Jun 16, 2023
@msulprizio msulprizio deleted the feature/update-transport-tracers branch June 20, 2023 17:31
@msulprizio msulprizio added the topic: TransportTracers Simulation Related to the GEOS-Chem TransportTracers simulation label Oct 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: TransportTracers Simulation Related to the GEOS-Chem TransportTracers simulation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE REQUEST] Update transport tracer simulation for consistency with the tracer gridded component in GEOS
3 participants