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

EAMxx: Add namelist vars for disabling P3 subgrid cldfrac #6849

Merged
merged 6 commits into from
Jan 6, 2025

Conversation

whannah1
Copy link
Contributor

These flags change the input P3 cloud fraction by setting them to 1 everywhere. Currently they default to False, but we will likely enable them as part of the effort to address the popcorn convection problem.

[BFB]

"disabling" might be misleading because these flags "maximize" cloud fraction by setting them to 1 everywhere
@whannah1 whannah1 added BFB PR leaves answers BFB EAMxx PRs focused on capabilities for EAMxx labels Dec 13, 2024
@whannah1 whannah1 requested a review from mahf708 December 13, 2024 17:32
Copy link

github-actions bot commented Dec 13, 2024

PR Preview Action v1.4.8
🚀 Deployed preview to https://E3SM-Project.github.io/E3SM/pr-preview/pr-6849/
on branch gh-pages at 2024-12-19 18:09 UTC

Copy link
Contributor

@mahf708 mahf708 left a comment

Choose a reason for hiding this comment

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

This is fine, but we want better docs. If you want to give extra flexibility to users, you can have these namelist params be reals (and you can ensure they are between 0 and 1). If you add the docs like I commented, they will appear readily here: https://docs.e3sm.org/E3SM/EAMxx/common/eamxx_params/. For example, see how the namelist parameter just above the added ones appear:

p3::do_ice_production:
description: Flag to turn on ice production processes (loss processes unaffected)
type: logical

Whereas your current ones look like:

p3::fix_cld_frac_r:
description: MISSING
type: MISSING

@mahf708
Copy link
Contributor

mahf708 commented Dec 13, 2024

@whannah1 just a minor request to update the docs. The "scientific worry" isn't important

Copy link
Contributor

@mahf708 mahf708 left a comment

Choose a reason for hiding this comment

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

👍

@tcclevenger
Copy link
Contributor

Since the params do not change throughout the run I would prefer not have 3 deep_copy() calls in run_impl() but instead to add bools struct variables to p3_preamble by passing params here

p3_preproc.set_variables(m_num_cols,nk_pack,pmid,pmid_dry,pseudo_density,pseudo_density_dry,
then inside the preamble we can set these views appropriately
cld_frac_l(icol,ipack) = ekat::max(cld_frac_t_pack,mincld);

cld_frac_l(icol,ipack) = set_cld_frac_l_to_one ? 1 : ekat::max(cld_frac_t_pack,mincld);

@whannah1
Copy link
Contributor Author

The plot below shows the result of these flags for days 5-10 of an ensemble of 10-day DPxx runs of the GATE-IDEAL case.

Here's a simple legend:

black  - control
red    - set_cld_frac_l_to_one=true
green  - set_cld_frac_i_to_one=true
blue   - set_cld_frac_r_to_one=true
purple - all 3 flags set to true

The ice fraction flag has a non-zero, but inconsequential effect. The liquid fraction flag mainly affect the cloud number concentration. The rain fraction flag has the largest effect, and enabling all 3 flags looks most like the case with only the rain fraction flag.

A key thing to notice is the increase in rain amount at low levels when the rain fraction flag is enabled. This is critical to improving our representation of cold pools.

Taken together I don't see any good reason not to just enable all 3 flags by default - but this topic will be the subject of a future PR.

image

@mahf708 mahf708 changed the title Add namelist vars for disabling P3 subgrid cldfrac in EAMxx EAMxx: Add namelist vars for disabling P3 subgrid cldfrac Dec 19, 2024
@mahf708
Copy link
Contributor

mahf708 commented Dec 19, 2024

Thanks @whannah1. I kept your impl the same but moved all options to a struct for runtime options we have.

@AaronDonahue @bartgol @tcclevenger, please take a look at your convenience. I do want to move all namelist parameters in p3 to the P3Runtime struct at some point. Still a few remaining ones I will address in a separate PR

@mahf708 mahf708 requested a review from Copilot December 20, 2024 17:38

Choose a reason for hiding this comment

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

Copilot wasn't able to review any files in this pull request.

Files not reviewed (4)
  • components/eamxx/cime_config/namelist_defaults_scream.xml: Language not supported
  • components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp: Language not supported
  • components/eamxx/src/physics/p3/eamxx_p3_process_interface.hpp: Language not supported
  • components/eamxx/src/physics/p3/p3_functions.hpp: Language not supported
@tcclevenger
Copy link
Contributor

I'll integrate next week

tcclevenger added a commit that referenced this pull request Jan 2, 2025
These flags change the input P3 cloud fraction by setting them to 1 everywhere. Currently
they default to False, but we will likely enable them as part of the effort to address
the popcorn convection problem.

[BFB]
@tcclevenger
Copy link
Contributor

Merged to next

tcclevenger added a commit that referenced this pull request Jan 3, 2025
These flags change the input P3 cloud fraction by setting them to 1 everywhere. Currently
they default to False, but we will likely enable them as part of the effort to address
the popcorn convection problem.

[BFB]
@tcclevenger tcclevenger merged commit 437fb5a into master Jan 6, 2025
19 of 22 checks passed
@tcclevenger tcclevenger deleted the whannah/emaxx/add-p3-cld-frac-flags branch January 6, 2025 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BFB PR leaves answers BFB EAMxx PRs focused on capabilities for EAMxx
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants