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

[BUG/ISSUE] BXHEIGHT is included twice when computing AOD from ISOP SOA diagnostic #208

Closed
yantosca opened this issue Jan 28, 2020 · 3 comments
Assignees
Labels
category: Bug Something isn't working
Milestone

Comments

@yantosca
Copy link
Contributor

It was noted that the AOD from isoprene SOA diagnostic in the 12.7.0 benchmark was much higher than it should have been:

image

After consultation with Eloise Marais, we discovered that there was an extra BXHEIGHT variable in the equation for ISOPOD in aerosol_mod.F:

               ! Get the AOD contribution from isoprene SOA only (eam, 2014)
               IF ( N == 3 .and. Is_ComplexSOA ) THEN
                  ISOPOD(I,J,L,IWV) = SCALEOD*BXHEIGHT(I,J,L)*0.75d0
     &                              * State_Met%BXHEIGHT(I,J,L)
     &                              * ISOAAQ(I,J,L) * QQAA(IWV,1,N) /
     &                              ( MSDENS(N) * REAA(1,N) * 1.0D-6 )
               ENDIF

After removing the extraneous reference to ``State_Met%BXHEIGHT``` we recomputed the diagnostic, which seems to have moved it to the proper order of magnitude.

image

We are still trying to determine if there the AOD from ISOP SOA is double-counted in the total AOD diagnostic.

@yantosca yantosca added the category: Bug Something isn't working label Jan 28, 2020
@yantosca yantosca added this to the 12.7.1 milestone Jan 28, 2020
@yantosca yantosca self-assigned this Jan 28, 2020
@FeiYao-Edinburgh
Copy link
Contributor

FeiYao-Edinburgh commented Jan 31, 2020

Thanks for your report! I have also found this bug in GC 12.5.0. ISOPOD's precursor, ISOAAQ, also goes to OCPISOA, which further goes to WAERSL(I,J,L,3) and finally AODHyg550nm_POA1 taking wavelength=550nm as an example. I checked these calculations and think everything should be fine.

total AOD diagnostic.

Do you have a total AOD diagnostic? Or do you mean diagnostic like AODHyg550nm_POA1?

@yantosca
Copy link
Contributor Author

The total AOD is computed in the python code that plots the benchmark results. So we sum them up offline.

@yantosca yantosca modified the milestones: 12.7.1, 12.7.2 Feb 19, 2020
@yantosca yantosca modified the milestones: 12.7.2, 12.8.0 Mar 6, 2020
@msulprizio
Copy link
Contributor

I checked the code in aerosol_mod.F and believe that isoprene SOA is not double counted there as @FeiYao-Edinburgh also found.

However, it does appear to be double counted in benchmark.py (found in https://github.com/geoschem/gcpy) where AODTotal is computed by summing all AOD diagnostics, including both OCPI (which includes isoprene SOA) and isoprene SOA. This is a bug in GCPy and has been reported as an issue there (see geoschem/gcpy#65).

I will close this issue to reflect that the diagnostic fix to remove including BXHEIGHT twice in computing AOD from isoprene SOA has been fixed in 12.7.1.

@msulprizio msulprizio modified the milestones: 12.8.0, 12.7.1 Mar 17, 2020
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
Projects
None yet
Development

No branches or pull requests

3 participants