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

Conservation problems for non-water species #2704

Closed
golaz opened this issue Jan 22, 2019 · 11 comments · Fixed by #2883
Closed

Conservation problems for non-water species #2704

golaz opened this issue Jan 22, 2019 · 11 comments · Fixed by #2883
Assignees
Milestone

Comments

@golaz
Copy link
Contributor

golaz commented Jan 22, 2019

From Peter Lauritzen via @PeterCaldwell:

The bugs we found for CAM were related to all non-water tracers (i.e. not Q,CLDLIQ,CLDICE, ...) that were not diffused mass-conservatively in the vertical diffusion (CLUBB) and gravity wave drag. Modal aerosols were not updated correctly with surface flux (i.e. modal aerosol mass budget not closed). Below is a summary of the bug fixes for the incorrect mixing ratios based on a CESM2 release tag:

  1. Remove wet conversion in chemistry/mozart/chemistry.F90 (bad code)

  2. physics/cam/constituents.F90: make cnst_type (identifier for wet or dry mixing ratio) a protected type (so 0. is now impossible).

2a. physics/cam/vertical_diffusion.F90: vertical diffusion code did not conserve mass for dry tracers. Fixed by converting all mixing ratios to wet inside vertical diffusion code!

2b. physics/cam/vertical_diffusion.F90: For modal aerosol the surface flux was added to state assuming state was wet. Fixed with 1a code change!

  1. physics/cam/clubb_intr.F90: CLUBB expects all tracers to be wet and hence (in CAM) its vertical diffusion of non-water variables was not mass-conserving. Fixed by converting to wet in CLUBB interface code!

  2. physics/cam/gw_drag.F90: Gravity wave drag assumes that all tracers are wet. Fixed by converting to wet inside gravity wave code!

@PeterCaldwell
Copy link
Contributor

It was really @beharrop that found this bug in E3SM, though I found out about it independently from my CESM co-chair status...

@susburrows
Copy link
Contributor

This is a critical bug for longer prognostic CO2 simulations. We will need it fixed for v2. Flagging @kvcalvin .

@kvcalvin
Copy link

Yes, we will definitely need this one fixed.

@susburrows susburrows added this to the v2.0 milestone Jan 23, 2019
@rljacob rljacob changed the title Incorporate CAM bug fixes into EAM Conservation problems for non-water species Jan 24, 2019
@rljacob
Copy link
Member

rljacob commented Jan 24, 2019

@mt5555
Copy link
Contributor

mt5555 commented Feb 7, 2019

@wlin7 : here is the issue w.r.t. tracer conservation in the atmosphere.

beharrop added a commit that referenced this issue Apr 25, 2019
All non-water tracers are kept as dry mixing ratios, but CLUBB and the
gravity wave parameterizations assume wet mixing ratios, and break
conservation when they are called. This fix converts dry mixing ratios
to wet mixing ratios prior to calling the routines that need wet mixing
ratios. The code fixes follow similar fixes from CESM2, with additional
modifications for E3SM-specific components.

Fixes #2704

[Non-BFB] - Non Bit-For-Bit
[CC] - Climate Changing
@AaronDonahue
Copy link
Contributor

AaronDonahue commented Apr 25, 2019

@beharrop , does PR #2883 also fix issue #2765?

@beharrop
Copy link
Contributor

I didn't check, but I wouldn't think so. Energy depends on the water species, but those are always kept as wet mixing ratios, so were not subject to this bug. Though the fact that it was the same two parameterizations for both issues is suspicious.

I can try a quick run with print_energy_errors = .true. set. Does the error show up immediately? Can I get away with running just a few time steps?

@AaronDonahue
Copy link
Contributor

@beharrop , yes, the conservation errors pop up in the first few steps so you should be able to see what happens with print_energy_error = .true. right away.

@beharrop
Copy link
Contributor

@AaronDonahue, great. I will try that and report back.

@beharrop
Copy link
Contributor

@AaronDonahue, Nope. #2883 still yields energy conservation error printouts from gwdrag. I only ran out 14 timesteps and didn't see any errors from CLUBB.

@AaronDonahue
Copy link
Contributor

@beharrop , thanks for checking. I wonder if the CLUBB energy errors have been remedied. It is on my todo list to re-simulate the errors and put together a more comprehensive explanation of what is going on. I'll report back about the CLUBB errors when I do.

beharrop added a commit that referenced this issue Jun 6, 2019
All non-water tracers are kept as dry mixing ratios, but CLUBB and the
gravity wave parameterizations assume wet mixing ratios, and break
conservation when they are called. This fix converts dry mixing ratios
to wet mixing ratios prior to calling the routines that need wet mixing
ratios. The code fixes follow similar fixes from CESM2, with additional
modifications for E3SM-specific components.

Fixes #2704

[Non-BFB] - Non Bit-For-Bit

See confluence for a more detailed description about these tags.
wlin7 added a commit that referenced this issue Jun 14, 2019
All non-water tracers are kept as dry mixing ratios, but CLUBB and the
gravity wave parameterizations assume wet mixing ratios, and break
conservation when they are called. This fix converts dry mixing ratios
to wet mixing ratios prior to calling the routines that need wet mixing
ratios. The code fixes follow similar fixes from CESM2, with additional
modifications for E3SM-specific components.

Fixes #2704

[Non-BFB] - Non Bit-For-Bit
[CC] - Climate Changing
wlin7 added a commit that referenced this issue Jun 14, 2019
All non-water tracers are kept as dry mixing ratios, but CLUBB and the
gravity wave parameterizations assume wet mixing ratios, and break
conservation when they are called. This fix converts dry mixing ratios
to wet mixing ratios prior to calling the routines that need wet mixing
ratios. The code fixes follow similar fixes from CESM2, with additional
modifications for E3SM-specific components.

Fixes #2704

[Non-BFB] - Non Bit-For-Bit
[CC] - Climate Changing
@rljacob rljacob modified the milestone: v2.0alpha Jun 25, 2019
rljacob pushed a commit that referenced this issue Apr 21, 2021
…8-07-06

Jgfouca/branch for acme split 2018 07 06

Test suite: scripts_regression_tests
Test baseline:
Test namelist changes:
Test status: [bit for bit, roundoff, climate changing]

Fixes [CIME Github issue #]

User interface changes?:

Update gh-pages html (Y/N)?:

Code review:
bartgol pushed a commit that referenced this issue Mar 27, 2024
…_2024_02_05

Automatically Merged using E3SM Pull Request AutoTester
PR Title: Update EKAT to bring in cmake fix
PR Author: jgfouca
PR LABELS: AT: AUTOMERGE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants