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

incorporate csawMG update and pass both intel and GNU RT tests #181

Merged
merged 6 commits into from
Mar 14, 2024

Conversation

grantfirl
Copy link
Collaborator

This replaces #171. This version started from the top of ufs/dev and only added necessary changes. I've verified that this gives bit-for-bit answers compared to #171 in the SCM.

Description from @AnningCheng-NOAA:

Major updated CSAW deep convective scheme: considering sigma vertical veriantion and reduction on fluxes instead of tendency etc.
• Regression tests are performed on the new version of CSAW for GNU and intel compilers
Here is a EMail from Don describe the changes:
On Thu, Oct 24, 2019 at 3:01 PM Donald Dazlich - NOAA Affiliate <donald.dazlich@noaa.gov> wrote:
Hi Moorthi, Anning,
Dave and I have been using the GFS version of CS to redo our implementation of AW more completely and consistently. Now, you will find that the fix_form implemetation of the tendencies match up very closely with the traditional form. Also you will notice that it is the fluxes for each cloud type (and the downdraft) that are saved and the reduction is done on the fluxes, not the tendency computed from the flux divergence. Since sigma is a function of height the latter approach is incorrect. I’ve also dimensioned several cloud type variables nctp+1 - the nctp+1 slot has downdraft output. Another addition is the sorting of the lamdas after they are computed for all cloud types, then computing the sigma. This approach is detailed in a manuscript Dave is working on. Also, sigma is not applied to the inputs to the downdraft routine, but to the outputs, which are now mass fluxes not tendencies. The water and thermodynamic budgets remain satisfied now.
I’ve attached my version below. It should be pretty close to your version with regards to the interface so you shouldn’t have to do much work with it.
Regards,
Don

@grantfirl
Copy link
Collaborator Author

@dustinswales @Qingfu-Liu Please review this again when you get a minute. It should be easier to follow now.

@AnningCheng-NOAA
Copy link
Collaborator

AnningCheng-NOAA commented Mar 7, 2024 via email

@AnningCheng-NOAA
Copy link
Collaborator

AnningCheng-NOAA commented Mar 7, 2024 via email

Copy link
Collaborator

@AnningCheng-NOAA AnningCheng-NOAA left a comment

Choose a reason for hiding this comment

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

The code is fine with me now.

! gciz(i,k) = tem1 * gciz(i,k)
! enddo
! endif
! enddo
Copy link
Collaborator

@Qingfu-Liu Qingfu-Liu Mar 11, 2024

Choose a reason for hiding this comment

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

Lines 1245-1277 can be removed

! END DO
! print *,'precip1',pr_tot*86400.,gprcp(1,1)*86400.,gsnwp(1,1)*86400.
! print *,'precip2',pr_tot*86400.,pr_liq*86400.,pr_ice*86400.
! endif
Copy link
Collaborator

Choose a reason for hiding this comment

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

lines 1779-1796 can be removed

! dtrdwn(i,k,n) = zero
! enddo
! enddo
! enddo
Copy link
Collaborator

Choose a reason for hiding this comment

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

lines 3315-3330 can be removed

! gtt(i,k) = gtt(i,k) + fsigma(i,k)*(dtmelt(i,k) + dtevap(i,k)) + condtermt(i,k)
! gtq(i,k,1) = gtq(i,k,1) + fsigma(i,k)*dqevap(i,k) + condtermq(i,k)
! gtq(i,k,itl) = gtq(i,k,itl) - (condtermq(i,k) + prectermq(i,k) + tem)
! gtq(i,k,iti) = gtq(i,k,iti) + tem
Copy link
Collaborator

Choose a reason for hiding this comment

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

lines 1586-1589 can be removed

!
! sigmai(i,k,ctp) = lamdai(i,k,ctp) / lamdaprod(i,k)
! sigma(i,k) = max(zero, min(one, sigma(i,k) + sigmai(i,k,ctp)))
! vverti(i,k,ctp) = sigmai(i,k,ctp) * wcv(i,k,ctp)
Copy link
Collaborator

Choose a reason for hiding this comment

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

lines 1132-1142 can be removed.

! do i=ISTS,IENS
! GPRCC( I,1 ) = GPRCP( I,1 )
! GSNWC( I ) = GSNWP( I,1 )
! enddo
Copy link
Collaborator

Choose a reason for hiding this comment

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

lines 1806-1809 can be removed

@zach1221
Copy link

@Qingfu-Liu @dustinswales @mzhangw regression testing is complete on UFS-WM PR #2180 , and ready for final review.

@grantfirl
Copy link
Collaborator Author

@Qingfu-Liu Please let me know if you feel strongly about removing the commented lines in this PR and I'll do that before merge.

Copy link
Collaborator

@dustinswales dustinswales left a comment

Choose a reason for hiding this comment

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

These changes look great to me. Thanks for all the good work!

@zach1221
Copy link

Ok, I think we have enough approvals to merge at this time. @grantfirl

@grantfirl grantfirl merged commit 8dff959 into ufs-community:ufs/dev Mar 14, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants