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

Add scm_zero_non_iop_tracers option. #5182

Merged
merged 1 commit into from
Oct 5, 2022

Conversation

quantheory
Copy link
Contributor

For single-column runs, this sets all tracers in the atmospheric
constituent list to qmin (typically zero) after the initial condition
file (ncdata) is read in, but before the IOP file values are applied.
As a result, non-IOP tracers are initialized to qmin rather than
taking their values from the initial condition file, while IOP-defined
tracers are unaffected.

This option defaults to .false., and hence does not change answers for
existing cases. However, it may be considered safer in the future to
change the default to .true. (at least for non-replay runs), to avoid
inconsistencies between the initial condition file state and the IOP
file state that exacerbate transient spin-up behavior and potentially
bias free-running model results. Like most single column model options,
this option has no effect in global runs.

This PR addresses #5177, at least in part. Actually changing default
behavior for existing SCM cases would require the option to be
enabled in scmlib.

For single-column runs, this sets all tracers in the atmospheric
constituent list to `qmin` (typically zero) after the initial condition
file (`ncdata`) is read in, but before the IOP file values are applied.
As a result, non-IOP tracers are initialized to `qmin` rather than
taking their values from the initial condition file, while IOP-defined
tracers are unaffected.

This option defaults to `.false.`, and hence does not change answers for
existing cases. However, it may be considered safer in the future to
change the default to `.true.` (at least for non-replay runs), to avoid
inconsistencies between the initial condition file state and the IOP
file state that exacerbate transient spin-up behavior and potentially
bias free-running model results. Like most single column model options,
this option has no effect in global runs.
@quantheory
Copy link
Contributor Author

To understand the impact of this, in the DYCOMS case I was testing, here's 0-th time step rain mass mixing ratio (g/kg) vs altitude (m) with (blue) and without (orange) this option enabled:

image

This extra rain mass produces a brief but large increase in surface precipitation:

image

At shorter time steps (this is using 5 sec just to make the issue visible), you can see that without this option, there's rain very high up at the beginning of the simulation (even though there's no actual cloud above 900m):

image

This is the "mild" version of the problem, where I have modified the IOP file to zero out the initial ice cloud in both cases. If I run with the original IOP file, and run at a short time step, much of the boundary layer cloud in the initial condition rains out within minutes.

Copy link
Contributor

@bogensch bogensch left a comment

Choose a reason for hiding this comment

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

Thanks for this PR @quantheory and bringing this issue to my attention. I support keeping scm_zero_non_iop_tracers = .false. for this PR. I will be doing some tests setting this to .true. and will issue a PR in the future to change to default once I'm comfortable with it.

@quantheory
Copy link
Contributor Author

@whannah1 Just curious if you've looked at this, though I'm not really sure if this is relevant to you right now.

@wlin7
Copy link
Contributor

wlin7 commented Oct 4, 2022

@quantheory , the changes look good to me. Thanks for exposing and investigating the problem and putting in the fix. I think it is ready to be merged and I will do so if next is cleared tomorrow. @whannah1 can still take a look when having a chance.

wlin7 added a commit that referenced this pull request Oct 4, 2022
Add scm_zero_non_iop_tracers option

For single-column runs, this sets all tracers in the atmospheric
constituent list to qmin (typically zero) after the initial condition
file (ncdata) is read in, but before the IOP file values are applied.
As a result, non-IOP tracers are initialized to qmin rather than
taking their values from the initial condition file, while IOP-defined
tracers are unaffected.

This option defaults to .false., and hence does not change answers for
existing cases. However, it may be considered safer in the future to
change the default to .true. (at least for non-replay runs), to avoid
inconsistencies between the initial condition file state and the IOP
file state that exacerbate transient spin-up behavior and potentially
bias free-running model results. Like most single column model options,
this option has no effect in global runs.

This PR addresses #5177, at least in part. Actually changing default
behavior for existing SCM cases would require the option to be
enabled in scmlib.

[BFB] no impact on existing tests
@wlin7
Copy link
Contributor

wlin7 commented Oct 4, 2022

Merged to next.

@wlin7 wlin7 merged commit 0075116 into E3SM-Project:master Oct 5, 2022
@wlin7
Copy link
Contributor

wlin7 commented Oct 5, 2022

Merged to master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants