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

GFS radiation: Kristjansson ice effective radius scheme #367

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
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
3 changes: 2 additions & 1 deletion FV3/gfsphysics/GFS_layer/GFS_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,8 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, &
Model%ntcw, Model%num_p2d, Model%num_p3d, Model%npdf3d, &
Model%ntoz, Model%iovr_sw, Model%iovr_lw, Model%isubc_sw, &
Model%isubc_lw, Model%icliq_sw, Model%crick_proof, Model%ccnorm,&
Model%imp_physics, Model%norad_precip, Model%idate, Model%iflip, Model%me)
Model%reiflag_rad, Model%imp_physics, Model%norad_precip, Model%idate, &
Model%iflip, Model%me)
deallocate (si)
#endif

Expand Down
8 changes: 7 additions & 1 deletion FV3/gfsphysics/GFS_layer/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,7 @@ module GFS_typedefs
logical :: lwhtr !< flag to output lw heating rate (Radtend%lwhc)
logical :: swhtr !< flag to output sw heating rate (Radtend%swhc)
logical :: do_only_clearsky_rad !< flag for whether to do only clear-sky radiation
integer :: reiflag_rad !< effective ice radius control flag

!--- microphysical switch
integer :: ncld !< choice of cloud scheme
Expand Down Expand Up @@ -2855,6 +2856,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: lwhtr = .true. !< flag to output lw heating rate (Radtend%lwhc)
logical :: swhtr = .true. !< flag to output sw heating rate (Radtend%swhc)
logical :: do_only_clearsky_rad = .false. !< flag for whether to do only clear-sky radiation
integer :: reiflag_rad = 1 !< ice effective radius computation method used
!< within radiation scheme:
!< reiflag_rad=1 => Heymsfield and Mcfarquhar 1996
!< reiflag_rad=4 => Kristjansson et al. 2000

!--- Z-C microphysical parameters
integer :: ncld = 1 !< choice of cloud scheme
Expand Down Expand Up @@ -3191,7 +3196,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
fhswr, fhlwr, levr, nfxr, aero_in, iflip, isol, ico2, ialb, &
isot, iems, iaer, icliq_sw, iovr_sw, iovr_lw, ictm, isubc_sw,&
isubc_lw, crick_proof, ccnorm, lwhtr, swhtr, &
do_only_clearsky_rad, &
do_only_clearsky_rad, reiflag_rad, &
! IN CCN forcing
iccn, &
!--- microphysical parameterizations
Expand Down Expand Up @@ -3440,6 +3445,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%lwhtr = lwhtr
Model%swhtr = swhtr
Model%do_only_clearsky_rad = do_only_clearsky_rad
Model%reiflag_rad = reiflag_rad
#ifdef CCPP
! The CCPP versions of the RRTMG lw/sw schemes are configured
! such that lw and sw heating rate are output, i.e. they rely
Expand Down
2 changes: 2 additions & 0 deletions FV3/gfsphysics/physics/physparam.f
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,8 @@ module physparam !
logical, save :: lnoprec =.false.
!> shallow convetion flag
logical, save :: lsashal =.false.
!> ice effective radius flag
integer, save :: reiflagrad = 1

! ............................................. !
!>\name -2.5- For module radiation_surface
Expand Down
10 changes: 7 additions & 3 deletions FV3/gfsphysics/physics/rad_initialize.f
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ subroutine rad_initialize &
! --- inputs:
& ( si,levr,ictm,isol,ico2,iaer,ialb,iems,ntcw, num_p2d, &
& num_p3d,npdf3d,ntoz,iovr_sw,iovr_lw,isubc_sw,isubc_lw, &
& icliq_sw,crick_proof,ccnorm, &
& icliq_sw,crick_proof,ccnorm,reiflag_rad, &
& imp_physics,norad_precip,idate,iflip,me )
! --- outputs: ( none )

Expand Down Expand Up @@ -99,6 +99,7 @@ subroutine rad_initialize &
! =2: mcica sub-col approx. provided random seed !
! crick_proof : control flag for eliminating CRICK !
! ccnorm : control flag for in-cloud condensate mixing ratio!
! reiflag_rad : control flag for ice effective radius method !
! norad_precip : control flag for not using precip in radiation !
! idate(4) : ncep absolute date and time of initial condition !
! (hour, month, day, year) !
Expand All @@ -116,7 +117,7 @@ subroutine rad_initialize &
& iaermdl, icldflg, &
& iovrsw , iovrlw , lcrick , lcnorm , lnoprec, &
& ialbflg, iemsflg, isubcsw, isubclw, ivflip , ipsd0, &
& iswcliq, &
& iswcliq, reiflagrad, &
& kind_phys

use module_radiation_driver, only : radinit
Expand All @@ -126,7 +127,8 @@ subroutine rad_initialize &
! --- input:
integer, intent(in) :: levr, ictm, isol, ico2, iaer, num_p2d, &
& ntcw, ialb, iems, num_p3d, npdf3d, ntoz, iovr_sw, iovr_lw, &
& isubc_sw, isubc_lw, icliq_sw, iflip, me, idate(4)
& isubc_sw, isubc_lw, icliq_sw, iflip, me, idate(4), &
& reiflag_rad

real (kind=kind_phys), intent(in) :: si(levr+1)
integer, intent(in) :: imp_physics
Expand Down Expand Up @@ -180,6 +182,8 @@ subroutine rad_initialize &

ivflip = iflip ! vertical index direction control flag

reiflagrad = reiflag_rad ! ice effective radius flag

! --- assign initial permutation seed for mcica cloud-radiation
if ( isubc_sw>0 .or. isubc_lw>0 ) then
! ipsd0 = 17*idate(1)+43*idate(2)+37*idate(3)+23*idate(4) + ipsd0
Expand Down
Loading