geoschem / geos-chem

GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs).
http://geos-chem.org
Other
162 stars 155 forks source link

Planeflight output for FURA has inconsistent units #2322

Open joepalmo opened 1 month ago

joepalmo commented 1 month ago

Your name

Joe Palmo

Your affiliation

MIT

What happened? What did you expect to happen?

The planeflight diagnostic output I am getting for furan is confusing. I am seeing significantly different units when I specify the compound name (FURA) vs the compound id (TRA_070) in my diagnostic file. Neither of the numbers that I'm getting seem correct. For the TRA_070 output, documentation says it should be in units of v/v dry air, but the output is about 3 orders of magnitude too low (ppt as opposed to ppb) when I compare to airborne observations of smoke plumes measured in FIREX and WE-CAN -- I wouldn't expect bias on this scale especially considering some previously published results from Tess Carter which I will attach below. I've discussed this with Lixu Jin (U Montana) who brought it up with Bob at the meeting this week, and he can weigh in further below. Thanks! download-16 download-17 download-14

What are the steps to reproduce the bug?

Run a fullchem simulation with planeflight diagnostic turned on. Log concentrations using both compound name (FURA) and compound id (TRA_070).

Please attach any relevant configuration and log files.

plane.log.20190827.txt Planeflight.dat.20190827.txt

What GEOS-Chem version were you using?

14.3.1

What environment were you running GEOS-Chem on?

Local cluster

What compiler and version were you using?

ifort

Will you be addressing this bug yourself?

No

In what configuration were you running GEOS-Chem?

GCClassic

What simulation were you running?

Full chemistry

As what resolution were you running GEOS-Chem?

both 2x2.5 and nested (0.5x0.6125) over USA

What meterology fields did you use?

MERRA-2

Additional information

https://acp.copernicus.org/articles/22/12093/2022/

Screen Shot 2024-06-12 at 11 08 58 AM
joepalmo commented 1 month ago

I should also mention that this issue looks very similar to a couple previous ones that were marked as solved, for example: https://github.com/geoschem/geos-chem/issues/796

jinlx commented 1 month ago

Thanks @joepalmo for opening it! When comparing to fire-targeting WE-CAN and FIREX-AQ data, we did see a significant underestimation of furanoids (using FURA as the header in ND40 input) in the vertical profile using the out-of-box model (see third column of first figure). MicrosoftTeams-image

However, other species look good and modelling furanoids in ground measurement is also promissing at the Misoula ground measurements (using SpeciesConc collection). The red line represents model and black is observation in the figure below. MicrosoftTeams-image (2)

This is why Joe and I guessed that there might be some issues in the ND40 source code (likely unit conversion). Since furan is recently implemented and ND40 has not been checked for a long time, Joe and I are wondering if it is possible that the ND40 could misimplement the newly added species. ~Lixu

yantosca commented 4 weeks ago

Thanks @jinlx and @joepalmo. I will try to reproduce the issue using your Planeflight file, as soon as I can.

yantosca commented 2 weeks ago

@joepalmo: Thanks for your patience, I am just getting back to work this week after IGC11.

Have you tried printing out State_Chm%Spc_Units in this block of code?

https://github.com/geoschem/geos-chem/blob/1ef3d7f88da95ca2425267fc4f96bd1524fc985f/GeosCore/planeflight_mod.F90#L2270-L2282

That might shed some light on the issue.

In 14.4.0 the species unit conversion has now been updated. You might try a short simulation with 14.4.0 to see if the problem still persists.

yantosca commented 2 days ago

Hi again @joepalmo and @jinlx. Thanks for your patience, we've been busy after IGC11 here.

I took a look at the unit conversions in both GeosCore/planeflight_mod.F90 and GeosUtil/unitconv_mod.F90. The unit conversions are correct as written. I also compared the output from the Planeflight diagnostic to the SpeciesConc collection in the History diagnostics. The output below. shows that the unit conversions give the same results.

NOTE: I used an out-of-the-box 4x5 fullchem/benchmark simulation (where FURA is species 77 in the list of species and is TRA_077 in the Planeflight.dat file). I used your Planeflight.dat file and changed the dates to 20190701 (the default starting date). I also converted the plane.log output to csv format for easier reading into Python (via pandas.read_csv).

Config and log files:

Output from Python script (fura.py.txt)

----------------------------------------------------------------------
time, lev, lat, lon indices: 1, 15, 32, 18
Planefight TRA_077  :  5.895000e-16 v/v dry
SpeciesConcVV_FURA  :  5.895450e-16 v/v dry
Planeflight FURA    :  11200.000000, molec/cm3
SpeciesConcMND_FURA :  11200.121094 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 1, 19, 32, 18
Planefight TRA_077  :  3.587000e-17 v/v dry
SpeciesConcVV_FURA  :  3.586765e-17 v/v dry
Planeflight FURA    :    601.800000, molec/cm3
SpeciesConcMND_FURA :    601.823730 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 1, 21, 32, 18
Planefight TRA_077  :  6.410000e-18 v/v dry
SpeciesConcVV_FURA  :  6.410483e-18 v/v dry
Planeflight FURA    :     97.450000, molec/cm3
SpeciesConcMND_FURA :     97.445015 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 1, 24, 32, 18
Planefight TRA_077  :  2.180000e-17 v/v dry
SpeciesConcVV_FURA  :  2.179574e-17 v/v dry
Planeflight FURA    :    278.600000, molec/cm3
SpeciesConcMND_FURA :    278.585907 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 32, 18
Planefight TRA_077  :  2.609000e-17 v/v dry
SpeciesConcVV_FURA  :  2.608745e-17 v/v dry
Planeflight FURA    :    312.200000, molec/cm3
SpeciesConcMND_FURA :    312.236664 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 32, 18
Planefight TRA_077  :  2.609000e-17 v/v dry
SpeciesConcVV_FURA  :  2.608745e-17 v/v dry
Planeflight FURA    :    312.200000, molec/cm3
SpeciesConcMND_FURA :    312.236664 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 32, 18
Planefight TRA_077  :  2.609000e-17 v/v dry
SpeciesConcVV_FURA  :  2.608745e-17 v/v dry
Planeflight FURA    :    312.200000, molec/cm3
SpeciesConcMND_FURA :    312.236664 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 32, 18
Planefight TRA_077  :  2.609000e-17 v/v dry
SpeciesConcVV_FURA  :  2.608745e-17 v/v dry
Planeflight FURA    :    312.200000, molec/cm3
SpeciesConcMND_FURA :    312.236664 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 32, 18
Planefight TRA_077  :  2.609000e-17 v/v dry
SpeciesConcVV_FURA  :  2.608745e-17 v/v dry
Planeflight FURA    :    312.200000, molec/cm3
SpeciesConcMND_FURA :    312.236664 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 33, 18
Planefight TRA_077  :  7.159000e-18 v/v dry
SpeciesConcVV_FURA  :  7.159276e-18 v/v dry
Planeflight FURA    :     85.310000, molec/cm3
SpeciesConcMND_FURA :     85.313103 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 33, 18
Planefight TRA_077  :  7.159000e-18 v/v dry
SpeciesConcVV_FURA  :  7.159276e-18 v/v dry
Planeflight FURA    :     85.310000, molec/cm3
SpeciesConcMND_FURA :     85.313103 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 33, 18
Planefight TRA_077  :  7.159000e-18 v/v dry
SpeciesConcVV_FURA  :  7.159276e-18 v/v dry
Planeflight FURA    :     85.310000, molec/cm3
SpeciesConcMND_FURA :     85.313103 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 3, 25, 33, 18
Planefight TRA_077  :  7.159000e-18 v/v dry
SpeciesConcVV_FURA  :  7.159276e-18 v/v dry
Planeflight FURA    :     85.310000, molec/cm3
SpeciesConcMND_FURA :     85.313103 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 25, 33, 18
Planefight TRA_077  :  1.217000e-17 v/v dry
SpeciesConcVV_FURA  :  1.216740e-17 v/v dry
Planeflight FURA    :    145.000000, molec/cm3
SpeciesConcMND_FURA :    144.971283 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 25, 33, 18
Planefight TRA_077  :  1.217000e-17 v/v dry
SpeciesConcVV_FURA  :  1.216740e-17 v/v dry
Planeflight FURA    :    145.000000, molec/cm3
SpeciesConcMND_FURA :    144.971283 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 25, 33, 18
Planefight TRA_077  :  1.217000e-17 v/v dry
SpeciesConcVV_FURA  :  1.216740e-17 v/v dry
Planeflight FURA    :    145.000000, molec/cm3
SpeciesConcMND_FURA :    144.971283 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 25, 33, 18
Planefight TRA_077  :  1.217000e-17 v/v dry
SpeciesConcVV_FURA  :  1.216740e-17 v/v dry
Planeflight FURA    :    145.000000, molec/cm3
SpeciesConcMND_FURA :    144.971283 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 25, 33, 18
Planefight TRA_077  :  1.217000e-17 v/v dry
SpeciesConcVV_FURA  :  1.216740e-17 v/v dry
Planeflight FURA    :    145.000000, molec/cm3
SpeciesConcMND_FURA :    144.971283 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 25, 33, 18
Planefight TRA_077  :  1.217000e-17 v/v dry
SpeciesConcVV_FURA  :  1.216740e-17 v/v dry
Planeflight FURA    :    145.000000, molec/cm3
SpeciesConcMND_FURA :    144.971283 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 23, 33, 18
Planefight TRA_077  :  3.870000e-18 v/v dry
SpeciesConcVV_FURA  :  3.869927e-18 v/v dry
Planeflight FURA    :     52.320000, molec/cm3
SpeciesConcMND_FURA :     52.315235 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 22, 33, 18
Planefight TRA_077  :  2.464000e-18 v/v dry
SpeciesConcVV_FURA  :  2.464481e-18 v/v dry
Planeflight FURA    :     35.240000, molec/cm3
SpeciesConcMND_FURA :     35.235569 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 20, 33, 18
Planefight TRA_077  :  8.672000e-18 v/v dry
SpeciesConcVV_FURA  :  8.671520e-18 v/v dry
Planeflight FURA    :    137.100000, molec/cm3
SpeciesConcMND_FURA :    137.124130 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 18, 33, 18
Planefight TRA_077  :  1.913000e-17 v/v dry
SpeciesConcVV_FURA  :  1.913438e-17 v/v dry
Planeflight FURA    :    329.400000, molec/cm3
SpeciesConcMND_FURA :    329.357208 molec/cm3
----------------------------------------------------------------------
time, lev, lat, lon indices: 5, 15, 33, 18
Planefight TRA_077  :  1.213000e-16 v/v dry
SpeciesConcVV_FURA  :  1.213053e-16 v/v dry
Planeflight FURA    :   2268.000000, molec/cm3
SpeciesConcMND_FURA :   2268.291992 molec/cm3

The differences in precision are caused by the plane.log file using a fixed number of decimal places in each column.

So I've convinced myself that this is not a bug. It may be a chemistry or emissions issue. You may want to touch base with the Chemistry Working Group and/or the Emissions Working Group to see if they have any ideas.

Tagging @barronh @luhu0 @jingqiumao @jaegle @emarais

yantosca commented 2 days ago

@joepalmo @jinlx: I forgot to mention that I used the out-of-the-box 14.4.1 version.