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

OCPISOA and TotalOC not correctly represented in benchmark #2321

Closed
yuanjianz opened this issue Jun 12, 2024 · 3 comments · Fixed by #2315
Closed

OCPISOA and TotalOC not correctly represented in benchmark #2321

yuanjianz opened this issue Jun 12, 2024 · 3 comments · Fixed by #2315
Assignees
Labels
category: Bug Something isn't working topic: Aerosols Related to aerosol species in GEOS-Chem

Comments

@yuanjianz
Copy link

yuanjianz commented Jun 12, 2024

Your name

Yuanjian Zhang

Your affiliation

WashU

What happened? What did you expect to happen?

OCPISOA

OCPISOA in benchmark simulation (simpleSOA and complexSOA are both carried) double counts ISOAAQ as was in PM2.5.

! Use simple SOA by default over complex SOA in calculations
IF ( Is_SimpleSOA ) THEN
State_Chm%AerMass%OCPISOA(I,J,L) = ( Spc(id_OCPI)%Conc(I,J,L) * State_chm%AerMass%OCFOPOA(I,J) + &
Spc(id_SOAS)%Conc(I,J,L) ) / AIRVOL(I,J,L)
ELSEIF ( Is_ComplexSOA ) THEN
State_Chm%AerMass%OCPISOA(I,J,L) = ( Spc(id_TSOA1)%Conc(I,J,L) &
+ Spc(id_TSOA2)%Conc(I,J,L) &
+ Spc(id_TSOA3)%Conc(I,J,L) &
+ Spc(id_TSOA0)%Conc(I,J,L) &
+ Spc(id_ASOAN)%Conc(I,J,L) &
+ Spc(id_ASOA1)%Conc(I,J,L) &
+ Spc(id_ASOA2)%Conc(I,J,L) &
+ Spc(id_ASOA3)%Conc(I,J,L) ) &
/ AIRVOL(I,J,L)
IF ( IS_OPOA ) THEN ! hotp 7/28/10
State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPISOA(I,J,L) + &
( Spc(id_OPOA1)%Conc(I,J,L) &
+ Spc(id_OPOA2)%Conc(I,J,L) ) &
* State_chm%AerMass%OCFOPOA(I,J) / AIRVOL(I,J,L)
ENDIF
IF ( IS_OCPI ) THEN ! hotp 7/28/10
State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPISOA(I,J,L) + Spc(id_OCPI)%Conc(I,J,L) &
* State_chm%AerMass%OCFOPOA(I,J) / AIRVOL(I,J,L)
ENDIF
ENDIF
! Add mechanistic isoprene OA (eam, 08/2015)
! Skip adding this for Simple SOA (jaf, clh, bmy, 5/17/18)
IF ( Is_ComplexSOA ) THEN
State_Chm%AerMass%OCPISOA(I,J,L) = State_Chm%AerMass%OCPISOA(I,J,L) + State_Chm%AerMass%ISOAAQ(I,J,L)
ENDIF

ISOAAQ should be added inside the elseif above to avoid this double-counting.

TotalOC

TotalOC only includes Isoprene SOA OC in complexSOA_nonSVPOA, where both POA and OPOA are not present.

IF ( Is_POA ) THEN
State_Diag%TotalOC(I,J,L) = &
( ( TSOA(I,J,L) + ASOA(I,J,L) &
+ OCPI(I,J,L) + OPOA(I,J,L) ) / OCFOPOA(I,J) &
+ OCPO(I,J,L) / OCFPOA(I,J) ) * kgm3_to_ugm3
ELSE IF ( Is_OPOA ) THEN
State_Diag%TotalOC(I,J,L) = &
( ( TSOA(I,J,L) + ASOA(I,J,L) &
+ OCPO(I,J,L) + OCPI(I,J,L) + OPOA(I,J,L) ) &
/ OCFOPOA(I,J) ) * kgm3_to_ugm3
ENDIF

It should match what is happening in aerosol_mod.F90
! Hydrophobic OC [kg/m3]
! SOAupdate: Treat either OCPO (x2.1) or POA (x1.4)
IF ( IS_POA ) THEN
State_Chm%AerMass%OCPO(I,J,L) = ( Spc(id_POA1)%Conc(I,J,L) &
+ Spc(id_POA2)%Conc(I,J,L) ) &
* State_Chm%AerMass%OCFPOA(I,J) / AIRVOL(I,J,L)
ELSE IF ( IS_OCPO ) THEN
State_Chm%AerMass%OCPO(I,J,L) = Spc(id_OCPO)%Conc(I,J,L) &
* State_chm%AerMass%OCFOPOA(I,J) / AIRVOL(I,J,L)
ENDIF

What are the steps to reproduce the bug?

run a fullchem benchmark simulation

Please attach any relevant configuration and log files.

No response

What GEOS-Chem version were you using?

14.4.0

What environment were you running GEOS-Chem on?

Local cluster

What compiler and version were you using?

gcc 10.2.0

Will you be addressing this bug yourself?

Yes

In what configuration were you running GEOS-Chem?

Other (please explain in additional information section below)

What simulation were you running?

Full chemistry

As what resolution were you running GEOS-Chem?

N/A

What meterology fields did you use?

Other (please explain in additional information section below)

Additional information

No response

@yuanjianz yuanjianz added the category: Bug Something isn't working label Jun 12, 2024
@yantosca yantosca added Attn: Aerosols WG topic: Aerosols Related to aerosol species in GEOS-Chem labels Jun 14, 2024
@yantosca
Copy link
Contributor

Thanks @yuanjianz for this. Would you be able to prepare a PR for this?

@yantosca yantosca self-assigned this Jun 14, 2024
@yuanjianz
Copy link
Author

@yantosca Yes, I combine the two OA-related pull requests together. See #2315 .

@yantosca yantosca linked a pull request Jul 11, 2024 that will close this issue
yantosca added a commit that referenced this issue Jul 16, 2024
This merge brings PR #2315 (ix bugs in PDER, OCPISOA and TotalOC in
complexSOA, by @yuanjianz) into the GEOS-Chem 14.5.0 development stream.

This PR fixes several minor bugs in the complex SOA scheme as described
in issues #2314 and #2321.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
Copy link
Contributor

Closing this issue as PR #2315 has been merged into the GEOS-Chem 14.5.0 development stream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Bug Something isn't working topic: Aerosols Related to aerosol species in GEOS-Chem
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants