Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
6cd1e1a
remove Zhao-Carr cloud schemes and combine Xu-Randall cloud fraction …
Qingfu-Liu Jan 5, 2026
1270b9e
Merge remote-tracking branch 'upstream/ufs/dev' into Zhao_Carr_cloud
Qingfu-Liu Jan 7, 2026
83191f3
change Xu-Randall cloud fraction scheme to be elemental
Qingfu-Liu Jan 7, 2026
a0f2f28
use new cld_frac_XuRandall function from module_radiation_clouds in R…
Qingfu-Liu Jan 7, 2026
ca7e392
modify the cld_frac_XuRandall function call in RRTMGP scheme
Qingfu-Liu Jan 8, 2026
78140f8
Merge remote-tracking branch 'upstream/ufs/dev' into Zhao_Carr_cloud
Qingfu-Liu Jan 27, 2026
565d62c
add the repository update to this PR
Qingfu-Liu Jan 27, 2026
c580309
Revert "add the repository update to this PR"
Qingfu-Liu Jan 27, 2026
954b749
remove the printing tests
Qingfu-Liu Jan 28, 2026
49276b5
remove Zhao-Carr schemes from modules in the UFS_SCM_NEPTUNE directory
Qingfu-Liu Feb 2, 2026
5ce727f
remove Zhao-Carr microphysics scheme from physics/MP directory
Qingfu-Liu Feb 2, 2026
293f5c2
Merge remote-tracking branch 'upstream/ufs/dev' into Zhao_Carr_cloud
Qingfu-Liu Feb 11, 2026
a5dbd4f
Merge remote-tracking branch 'upstream/ufs/dev' into Zhao_Carr_cloud
Qingfu-Liu Feb 25, 2026
9e70979
Merge pull request #350 from noaa-oar-arl/feature/aqm_canopy_vdf
grantfirl Feb 27, 2026
ff9f553
Merge branch 'ufs/dev' into Zhao_Carr_cloud
grantfirl Mar 4, 2026
90f266d
remove non-ASCII character in canopy_levs.F90 (from previous PR)
grantfirl Mar 4, 2026
408c32b
Merge remote-tracking branch 'qingfu/Zhao_Carr_cloud' into ufs-dev-PR337
scrasmussen Apr 20, 2026
3e33375
Merge branch 'main' into ufs-dev-PR337
grantfirl May 5, 2026
cbe93a1
Apply suggestion from @matusmartini
grantfirl May 5, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ module GFS_PBL_generic_common
subroutine set_aerosol_tracer_index(imp_physics, imp_physics_wsm6, &
imp_physics_thompson, ltaerosol,mraerosol, &
imp_physics_mg, ntgl, imp_physics_gfdl, &
imp_physics_zhao_carr, imp_physics_nssl,&
imp_physics_nssl, &
nssl_hail_on, nssl_ccn_on, nssl_3moment, kk, &
errmsg, errflg)
implicit none
!
integer, intent(in ) :: imp_physics, imp_physics_wsm6, &
imp_physics_thompson, &
imp_physics_mg, ntgl, imp_physics_gfdl, &
imp_physics_zhao_carr,imp_physics_nssl
imp_physics_nssl
logical, intent(in ) :: ltaerosol, mraerosol, nssl_hail_on, nssl_ccn_on, nssl_3moment
integer, intent(out) :: kk
character(len=*), intent(out) :: errmsg
Expand Down Expand Up @@ -53,9 +53,6 @@ subroutine set_aerosol_tracer_index(imp_physics, imp_physics_wsm6, &
elseif (imp_physics == imp_physics_gfdl) then
! GFDL MP
kk = 7
elseif (imp_physics == imp_physics_zhao_carr) then
! Zhao/Carr/Sundqvist
kk = 3
elseif (imp_physics == imp_physics_nssl) then
IF ( nssl_hail_on ) THEN
kk = 16
Expand Down
14 changes: 3 additions & 11 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ module GFS_PBL_generic_post
subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac, &
ntqv, ntcw, ntiw, ntrw, ntsw, ntlnc, ntinc, ntrnc, ntsnc, ntgnc, ntwa, ntia, ntgl, ntoz, ntke, ntkev,nqrimef, &
trans_aero, ntchs, ntchm, ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz, &
imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_zhao_carr, imp_physics_mg, &
imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_mg, &
imp_physics_fer_hires, imp_physics_nssl, nssl_ccn_on, ltaerosol, mraerosol, nssl_hail_on, nssl_3moment, &
cplflx, cplaqm, cplchm, lssav, flag_for_pbl_generic_tend, ldiag3d, lsidea, hybedmf, do_shoc, satmedmf, &
shinhong, do_ysu, dvdftra, dusfc1, dvsfc1, dtsfc1, dqsfc1, dtf, dudt, dvdt, dtdt, htrsw, htrlw, xmu, &
Expand All @@ -33,7 +33,7 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac,
integer, intent(in) :: ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz
logical, intent(in) :: trans_aero
integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6
integer, intent(in) :: imp_physics_zhao_carr, imp_physics_mg, imp_physics_fer_hires
integer, intent(in) :: imp_physics_mg, imp_physics_fer_hires
integer, intent(in) :: imp_physics_nssl
logical, intent(in) :: nssl_ccn_on, nssl_hail_on, nssl_3moment
logical, intent(in) :: ltaerosol, cplflx, cplaqm, cplchm, lssav, ldiag3d, lsidea, use_med_flux, mraerosol
Expand Down Expand Up @@ -109,7 +109,7 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac,
call set_aerosol_tracer_index(imp_physics, imp_physics_wsm6, &
imp_physics_thompson, ltaerosol,mraerosol, &
imp_physics_mg, ntgl, imp_physics_gfdl, &
imp_physics_zhao_carr, imp_physics_nssl,&
imp_physics_nssl,&
nssl_hail_on, nssl_ccn_on, nssl_3moment, kk, &
errmsg, errflg)
if (errflg /= 0) return
Expand Down Expand Up @@ -244,14 +244,6 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac,
dqdt(i,k,ntoz) = dvdftra(i,k,7)
enddo
enddo
elseif (imp_physics == imp_physics_zhao_carr) then
do k=1,levs
do i=1,im
dqdt(i,k,1) = dvdftra(i,k,1)
dqdt(i,k,ntcw) = dvdftra(i,k,2)
dqdt(i,k,ntoz) = dvdftra(i,k,3)
enddo
enddo
elseif (imp_physics == imp_physics_nssl ) then
! nssl
IF ( nssl_hail_on ) THEN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,13 +260,6 @@
dimensions = ()
type = integer
intent = in
[imp_physics_zhao_carr]
standard_name = identifier_for_zhao_carr_microphysics_scheme
long_name = choice of Zhao-Carr microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
[imp_physics_mg]
standard_name = identifier_for_morrison_gettelman_microphysics_scheme
long_name = choice of Morrison-Gettelman microphysics scheme
Expand Down
16 changes: 3 additions & 13 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
ntwa, ntia, ntgl, ntoz, ntke, ntkev, nqrimef, trans_aero, ntchs, ntchm, &
ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz, &
imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, &
imp_physics_zhao_carr, imp_physics_mg, imp_physics_fer_hires, imp_physics_nssl, &
imp_physics_mg, imp_physics_fer_hires, imp_physics_nssl, &
ltaerosol, mraerosol, nssl_ccn_on, nssl_hail_on, nssl_3moment, &
hybedmf, do_shoc, satmedmf, qgrs, vdftra, save_u, save_v, save_t, save_q, &
flag_for_pbl_generic_tend, ldiag3d, qdiag3d, lssav, ugrs, vgrs, tgrs, errmsg, errflg)
Expand All @@ -32,7 +32,7 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
integer, intent(in) :: ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz
logical, intent(in) :: trans_aero, ldiag3d, qdiag3d, lssav
integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6
integer, intent(in) :: imp_physics_zhao_carr, imp_physics_mg, imp_physics_fer_hires
integer, intent(in) :: imp_physics_mg, imp_physics_fer_hires
logical, intent(in) :: ltaerosol, hybedmf, do_shoc, satmedmf, flag_for_pbl_generic_tend, mraerosol
integer, intent(in) :: imp_physics_nssl
logical, intent(in) :: nssl_hail_on, nssl_ccn_on, nssl_3moment
Expand Down Expand Up @@ -191,16 +191,6 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
enddo
enddo
rtg_ozone_index = 7
elseif (imp_physics == imp_physics_zhao_carr) then
! Zhao/Carr/Sundqvist
do k=1,levs
do i=1,im
vdftra(i,k,1) = qgrs(i,k,ntqv)
vdftra(i,k,2) = qgrs(i,k,ntcw)
vdftra(i,k,3) = qgrs(i,k,ntoz)
enddo
enddo
rtg_ozone_index = 3
elseif (imp_physics == imp_physics_nssl ) then
! nssl
IF ( nssl_hail_on ) THEN
Expand Down Expand Up @@ -275,7 +265,7 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
call set_aerosol_tracer_index(imp_physics, imp_physics_wsm6, &
imp_physics_thompson, ltaerosol,mraerosol, &
imp_physics_mg, ntgl, imp_physics_gfdl, &
imp_physics_zhao_carr, imp_physics_nssl,&
imp_physics_nssl, &
nssl_hail_on, nssl_ccn_on, nssl_3moment, kk, &
errmsg, errflg)
if (errflg /= 0) return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,13 +266,6 @@
dimensions = ()
type = integer
intent = in
[imp_physics_zhao_carr]
standard_name = identifier_for_zhao_carr_microphysics_scheme
long_name = choice of Zhao-Carr microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
[imp_physics_mg]
standard_name = identifier_for_morrison_gettelman_microphysics_scheme
long_name = choice of Morrison-Gettelman microphysics scheme
Expand Down
15 changes: 2 additions & 13 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module GFS_rad_time_vary
!!
subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, &
lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, &
imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,&
imap, jmap, sec, kdt, imp_physics, ipsd0, ipsdlim, &
ps_2delt, ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, &
errmsg, errflg)

Expand All @@ -31,7 +31,7 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds,
logical, intent(in) :: lrseeds
integer, intent(in), optional :: rseeds(:,:)
integer, intent(in) :: isubc_lw, isubc_sw, cnx, cny, isc, jsc, kdt
integer, intent(in) :: imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim
integer, intent(in) :: imp_physics, ipsd0, ipsdlim
logical, intent(in) :: lslwr, lsswr
integer, intent(inout), optional :: icsdsw(:), icsdlw(:)
integer, intent(in) :: imap(:), jmap(:)
Expand Down Expand Up @@ -82,17 +82,6 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds,
end if !lrseeds
endif ! isubc_lw and isubc_sw

if (imp_physics == imp_physics_zhao_carr) then
if (kdt == 1) then
t_2delt = t
t_1delt = t
qv_2delt = qv
qv_1delt = qv
ps_2delt = ps
ps_1delt = ps
endif
endif

endif

end subroutine GFS_rad_time_vary_timestep_init
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,6 @@
dimensions = ()
type = integer
intent = in
[imp_physics_zhao_carr]
standard_name = identifier_for_zhao_carr_microphysics_scheme
long_name = choice of Zhao-Carr microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutation seed for mcica radiation
Expand Down
15 changes: 2 additions & 13 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module GFS_rad_time_vary
!!
subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, &
lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, &
imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,&
imap, jmap, sec, kdt, imp_physics, ipsd0, ipsdlim, &
ps_2delt, ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, &
errmsg, errflg)

Expand All @@ -31,7 +31,7 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds,
logical, intent(in) :: lrseeds
integer, intent(in) :: rseeds(:,:)
integer, intent(in) :: isubc_lw, isubc_sw, cnx, cny, isc, jsc, kdt
integer, intent(in) :: imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim
integer, intent(in) :: imp_physics, ipsd0, ipsdlim
logical, intent(in) :: lslwr, lsswr
integer, intent(inout) :: icsdsw(:), icsdlw(:)
integer, intent(in) :: imap(:), jmap(:)
Expand Down Expand Up @@ -82,17 +82,6 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds,
end if !lrseeds
endif ! isubc_lw and isubc_sw

if (imp_physics == imp_physics_zhao_carr) then
if (kdt == 1) then
t_2delt = t
t_1delt = t
qv_2delt = qv
qv_1delt = qv
ps_2delt = ps
ps_1delt = ps
endif
endif

endif

end subroutine GFS_rad_time_vary_timestep_init
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,13 +131,6 @@
dimensions = ()
type = integer
intent = in
[imp_physics_zhao_carr]
standard_name = identifier_for_zhao_carr_microphysics_scheme
long_name = choice of Zhao-Carr microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutation seed for mcica radiation
Expand Down
18 changes: 4 additions & 14 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
ntss3, ntss4, ntss5, ntsu, ntbcb, ntbcl, ntocb, ntocl, ntchm, &
imp_physics,imp_physics_nssl, nssl_ccn_on, nssl_invertccn, &
imp_physics_thompson, imp_physics_tempo, imp_physics_gfdl, &
imp_physics_zhao_carr, &
imp_physics_zhao_carr_pdf, imp_physics_mg, imp_physics_wsm6, &
imp_physics_mg, imp_physics_wsm6, &
imp_physics_fer_hires, iovr, iovr_rand, iovr_maxrand, iovr_max, &
iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, idcor_hogan, &
idcor_oreopoulos, dcorr_con, julian, yearlen, lndp_var_list, lsswr, &
Expand Down Expand Up @@ -124,8 +123,6 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
imp_physics_thompson, &
imp_physics_tempo, &
imp_physics_gfdl, &
imp_physics_zhao_carr, &
imp_physics_zhao_carr_pdf, &
imp_physics_mg, imp_physics_wsm6, &
imp_physics_nssl, &
imp_physics_fer_hires, &
Expand Down Expand Up @@ -725,7 +722,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&

! if (ntcw > 0) then ! prognostic cloud schemes
ccnd = 0.0_kind_phys
if (ncnd == 1) then ! Zhao_Carr_Sundqvist
if (ncnd == 1) then
do k=1,LMK
do i=1,IM
ccnd(i,k,1) = tracer1(i,k,ntcw) ! liquid water/ice
Expand Down Expand Up @@ -994,15 +991,13 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
! --- add suspended convective cloud water to grid-scale cloud water
! only for cloud fraction & radiation computation
! it is to enhance cloudiness due to suspended convec cloud water
! for zhao/moorthi's (imp_phys=99) &
! ferrier's (imp_phys=5) microphysics schemes
! for ferrier's (imp_phys=5) microphysics schemes

if ((num_p3d == 4) .and. (npdf3d == 3)) then ! same as imp_physics = imp_physics_zhao_carr_pdf
if ((num_p3d == 4) .and. (npdf3d == 3)) then
do k=1,lm
k1 = k + kd
do i=1,im
!GJF: this is not consistent with GFS_typedefs,
! but it looks like the Zhao-Carr-PDF scheme is not in the CCPP
deltaq(i,k1) = 0.0!Tbd%phy_f3d(i,k,5) !GJF: this variable is not in phy_f3d anymore
cnvw (i,k1) = cnvw_in(i,k)
cnvc (i,k1) = cnvc_in(i,k)
Expand All @@ -1027,10 +1022,6 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
enddo
endif

if (imp_physics == imp_physics_zhao_carr) then
ccnd(1:IM,1:LMK,1) = ccnd(1:IM,1:LMK,1) + cnvw(1:IM,1:LMK)
endif

!> - Call radiation_clouds_prop() to calculate cloud properties.
call radiation_clouds_prop &
& ( plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, & ! --- inputs:
Expand All @@ -1041,7 +1032,6 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
& imp_physics, imp_physics_nssl, imp_physics_fer_hires, &
& imp_physics_gfdl, imp_physics_thompson, &
& imp_physics_wsm6, imp_physics_tempo, &
& imp_physics_zhao_carr, imp_physics_zhao_carr_pdf, &
& imp_physics_mg, iovr, iovr_rand, iovr_maxrand, iovr_max, &
& iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, &
& idcor_hogan, idcor_oreopoulos, lcrick, lcnorm, &
Expand Down
14 changes: 0 additions & 14 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta
Original file line number Diff line number Diff line change
Expand Up @@ -491,20 +491,6 @@
dimensions = ()
type = integer
intent = in
[imp_physics_zhao_carr]
standard_name = identifier_for_zhao_carr_microphysics_scheme
long_name = choice of Zhao-Carr microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
[imp_physics_zhao_carr_pdf]
standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme
long_name = choice of Zhao-Carr microphysics scheme with PDF clouds
units = flag
dimensions = ()
type = integer
intent = in
[imp_physics_mg]
standard_name = identifier_for_morrison_gettelman_microphysics_scheme
long_name = choice of Morrison-Gettelman microphysics scheme
Expand Down
Loading