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

Modifications to exp2 ceiling diagnostic for RRFS #46

Merged
merged 4 commits into from
Dec 23, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 22 additions & 14 deletions sorc/ncep_post.fd/CLDRAD.f
Original file line number Diff line number Diff line change
Expand Up @@ -2096,11 +2096,18 @@ SUBROUTINE CLDRAD
! However, for RAPv5/HRRRv4, paramater 711 will be supplied as
! the GSD cloud-base height, and parameter 798 will be the
! corresponding cloud-base pressure. (J. Kenyon, 4 Nov 2019)
! -- E. James, 15 Dec 2022
! The above experimental diagnostic, developed for the HRRR with
! lots of "add-ons" to correct for the HRRR's low bias in cloud
! cover, needs to be revised for the RRFS with its more extensive
! cloudiness. For an FAA deliverable due Feb 2023, the diagnostic
! is being modified to get rid of some of the add ons.

! Parameters 711/798: experimental ceiling diagnostic #2 (height and pressure, respectively)
IF ((IGET(711)>0) .OR. (IGET(798)>0)) THEN
! set minimum cloud fraction to represent a ceiling
ceiling_thresh_cldfra = 0.4
! ceiling_thresh_cldfra = 0.4
ceiling_thresh_cldfra = 0.5
! set some constants for ceiling adjustment in snow (retained from legacy algorithm, also in calvis.f)
rhoice = 970.
coeffp = 10.36
Expand Down Expand Up @@ -2190,23 +2197,24 @@ SUBROUTINE CLDRAD
end do
!-- end of search 2

zceil = min(zceil1,zceil2) ! choose lower of zceil1 and zceil2
! zceil = min(zceil1,zceil2) ! choose lower of zceil1 and zceil2

Choose a reason for hiding this comment

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

Is zceil2 from the summation principle? Is that why it's ignored?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@joeolson42 Yes, the preceding lines define zceil2 which is from the summation principle.

zceil = zceil1

!-- Search for "indefinite ceiling" (vertical visibility) conditions: consider
! lowering of apparent ceiling due to falling snow (retained from legacy
! diagnostic); this is extracted from calvis.f (visibility diagnostic)
if (QQS(i,j,LM)>1.e-10) then
TV=T(I,J,lm)*(H1+D608*Q(I,J,lm))
RHOAIR=PMID(I,J,lm)/(RD*TV)
vovermd = (1.+Q(i,j,LM))/rhoair + QQS(i,j,LM)/rhoice
concfp = QQS(i,j,LM)/vovermd*1000.
betav = coeffp*concfp**exponfp + 1.e-10
vertvis = 1000.*min(90., const1/betav)
if (vertvis < zceil-FIS(I,J)*GI ) then ! if vertvis is more restictive than zceil found above; set zceil to vertvis
! note that FIS is geopotential of the surface (ground), and GI is 1/g
zceil = FIS(I,J)*GI + vertvis
end if
end if
! if (QQS(i,j,LM)>1.e-10) then
! TV=T(I,J,lm)*(H1+D608*Q(I,J,lm))
! RHOAIR=PMID(I,J,lm)/(RD*TV)
! vovermd = (1.+Q(i,j,LM))/rhoair + QQS(i,j,LM)/rhoice
! concfp = QQS(i,j,LM)/vovermd*1000.
! betav = coeffp*concfp**exponfp + 1.e-10
! vertvis = 1000.*min(90., const1/betav)
! if (vertvis < zceil-FIS(I,J)*GI ) then ! if vertvis is more restictive than zceil found above; set zceil to vertvis
! ! note that FIS is geopotential of the surface (ground), and GI is 1/g
! zceil = FIS(I,J)*GI + vertvis
! end if
! end if

ceil(I,J) = zceil
ENDDO ! i loop
Expand Down