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

Calculation of sedimentation fluxes in P3 is changed. #5827

Conversation

yunpengshan2014
Copy link
Contributor

@yunpengshan2014 yunpengshan2014 commented Jul 20, 2023

Original calculation in the P3 code: the precipitation (rain and snow) flux (sflx for snow ) is summed over the flux at each sub-timestep during one microphysics timestep: sflx=flux_qit_1+ flux_qit_2+ flux_qit_3+… flux_qit_n, where the flux_qit_i (i=1,2,3,…n) represents the snow flux at each sub-timestep for sedimentation. This should not be correct. The correct flux should be the mean value for each microphysics timestep.

Changed calculation in the current version: In E3SM-P3, since the sub-timestep is not a fixed value, the mean flux over the microphysics timestep should be calculated with: sflx=(flux_qit_1dt1+ flux_qit_2dt2+ flux_qit_3dt3+… flux_qit_ndtn)/( dt1+ dt2+ dt3+… dtn), where dti represents sub-timestep length. This is similar to the equation used to calculate the surface precipitation rate.

This PR does not effect the model simulation results, but only change the diagnostic precipitation flux output.

@rljacob rljacob removed the request for review from wlin7 July 20, 2023 10:59
@rljacob rljacob added Feature branch PR A PR made from one feature branch to another. Not caught in time. Atmosphere labels Jul 20, 2023
Comment on lines -3975 to +3986
cflx(k+1) = cflx(k+1) + flux_qx(k)
!<shanyp 06252023
! cflx(k+1) = cflx(k+1) + flux_qx(k)
cflx(k+1) = cflx(k+1) + flux_qx(k)*dt_sub
!shanyp 06252023>
Copy link
Contributor

Choose a reason for hiding this comment

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

I know this is still a draft, but... remember to delete all these tags and commented lines!

!<shanyp 06252023
! precip_liq_flux(k+1) = precip_liq_flux(k+1) + flux_qx(k) ! AaronDonahue
! rflx(k+1) = rflx(k+1) + flux_qx(k)
precip_liq_flux(k+1) = precip_liq_flux(k+1) + flux_qx(k)*dt_sub ! AaronDonahue
Copy link
Contributor

Choose a reason for hiding this comment

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

You can delete my name from this line now that it is sort of a community changed line of code.

@AaronDonahue
Copy link
Contributor

In order to keep EAMxx and EAM BFB when running the same parameterizations we will need to make the same changes in the eamxx code. See for example:
https://github.com/E3SM-Project/E3SM/blob/master/components/eamxx/src/physics/p3/impl/p3_upwind_impl.hpp#L97
https://github.com/E3SM-Project/E3SM/blob/master/components/eamxx/src/physics/p3/impl/p3_cloud_sed_impl.hpp#L17

@wlin7 wlin7 added the BFB PR leaves answers BFB label Jul 27, 2023
@wlin7
Copy link
Contributor

wlin7 commented Aug 3, 2023

Hi @yunpengshan2014 , can you please do some clean up as @whannah1 suggested. Also do you still consider it a draft? The branch this PR targets, v3atm/eam/master_MAM5_wetaero_chemdyg could be merged to master and auto-deleted soon. In that case, the PR should be changed for master.

Will the changes affect surface precipitation?

Base automatically changed from v3atm/eam/master_MAM5_wetaero_chemdyg to master August 7, 2023 14:52
@rljacob
Copy link
Member

rljacob commented Aug 10, 2023

@yunpengshan2014 please respond to above.

@yunpengshan2014
Copy link
Contributor Author

yunpengshan2014 commented Aug 11, 2023 via email

@wlin7 wlin7 closed this Aug 23, 2023
wlin7 added a commit that referenced this pull request Nov 21, 2024
…6722)

Set diagnositc ice falling flux as zero to avoid ice double counting in COSP

PR #5827 introduced an unexpected issue affecting the COSP CALIPSO
simulator diagnostics. This issue arises from assigning the P3 diagnostic
precipitating solid phase particle falling flux to “precip_ice_flux” for
diagnostic purposes. Since “precip_ice_flux” is also a required input field
and is treated as snow in the CALIPSO simulator, this results in the
double-counting of solid phase particles. This is because the E3SMv3
implemented the single-ice category version of P3 as used in SCREAM,
where the simulated solid particles are either precipitating or non-precipitating.

While assigning the P3 diagnostic precipitating solid phase particle falling
flux to “precip_ice_flux” is technically correct, it inadvertently leads to
double-counting of ice in the CALIPSO simulator's cloud diagnostics.
Note that this issue does not impact model simulations.

[BFB] except for tests with COSP CALIPSO simulator output
wlin7 added a commit that referenced this pull request Nov 22, 2024
Set diagnositc ice falling flux as zero to avoid ice double counting in COSP

PR #5827 introduced an unexpected issue affecting the COSP CALIPSO
simulator diagnostics. This issue arises from assigning the P3 diagnostic
precipitating solid phase particle falling flux to “precip_ice_flux” for
diagnostic purposes. Since “precip_ice_flux” is also a required input field
and is treated as snow in the CALIPSO simulator, this results in the
double-counting of solid phase particles. This is because the E3SMv3
implemented the single-ice category version of P3 as used in SCREAM,
where the simulated solid particles are either precipitating or non-precipitating.

While assigning the P3 diagnostic precipitating solid phase particle falling
flux to “precip_ice_flux” is technically correct, it inadvertently leads to
double-counting of ice in the CALIPSO simulator's cloud diagnostics.
Note that this issue does not impact model simulations.

[BFB] except for tests with COSP CALIPSO simulator output
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Atmosphere BFB PR leaves answers BFB Feature branch PR A PR made from one feature branch to another. Not caught in time.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants