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

GF radar reflectivity for RRFS realtime runs #699

Closed
wants to merge 4 commits into from
Closed
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
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
branch = main
[submodule "ccpp/physics"]
path = ccpp/physics
url = https://github.com/ufs-community/ccpp-physics
branch = ufs/dev
url = https://github.com/haiqinli/ccpp-physics
branch = ufs/dev-radar
[submodule "upp"]
path = upp
url = https://github.com/NOAA-EMC/UPP
Expand Down
13 changes: 13 additions & 0 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1501,6 +1501,9 @@ module GFS_typedefs
integer :: ncnvwind !< the index of surface wind enhancement due to convection for MYNN SFC and RAS CNV in phy f2d

!-- nml variables for RRFS-SD
real(kind=kind_phys) :: dust_drylimit_factor !< factor for drylimit parameterization in fengsha
real(kind=kind_phys) :: dust_moist_correction !< factor to tune volumetric soil moisture
integer :: dust_moist_opt !< dust moisture option 1:fecan 2:shao
real(kind=kind_phys) :: dust_alpha !< alpha parameter for fengsha dust scheme
real(kind=kind_phys) :: dust_gamma !< gamma parameter for fengsha dust scheme
real(kind=kind_phys) :: wetdep_ls_alpha !< alpha parameter for wet deposition
Expand Down Expand Up @@ -3829,9 +3832,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
integer :: ichoice_s = 3 !< flag for closure of C3/GF shallow convection

!-- chem nml variables for RRFS-SD
real(kind=kind_phys) :: dust_drylimit_factor = 1.0
real(kind=kind_phys) :: dust_moist_correction = 1.0
real(kind=kind_phys) :: dust_alpha = 0.
real(kind=kind_phys) :: dust_gamma = 0.
real(kind=kind_phys) :: wetdep_ls_alpha = 0.
integer :: dust_moist_opt = 1 ! fecan :1 else shao
integer :: seas_opt = 2
integer :: dust_opt = 5
integer :: drydep_opt = 1
Expand Down Expand Up @@ -3995,6 +4001,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- aerosol scavenging factors ('name:value' string array)
fscav_aero, &
!--- RRFS-SD namelist
dust_drylimit_factor, dust_moist_correction, dust_moist_opt, &
dust_alpha, dust_gamma, wetdep_ls_alpha, &
seas_opt, dust_opt, drydep_opt, coarsepm_settling, &
wetdep_ls_opt, smoke_forecast, aero_ind_fdb, aero_dir_fdb, &
Expand Down Expand Up @@ -4214,6 +4221,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &

!--- RRFS-SD
Model%rrfs_sd = rrfs_sd
Model%dust_drylimit_factor = dust_drylimit_factor
Model%dust_moist_correction = dust_moist_correction
Model%dust_moist_opt = dust_moist_opt
Model%dust_alpha = dust_alpha
Model%dust_gamma = dust_gamma
Model%wetdep_ls_alpha = wetdep_ls_alpha
Expand Down Expand Up @@ -6314,6 +6324,9 @@ subroutine control_print(Model)
if(model%rrfs_sd) then
print *, ' '
print *, 'smoke parameters'
print *, 'dust_drylimit_factor: ',Model%dust_drylimit_factor
print *, 'dust_moist_correction: ',Model%dust_moist_correction
print *, 'dust_moist_opt : ',Model%dust_moist_opt
print *, 'dust_alpha : ',Model%dust_alpha
print *, 'dust_gamma : ',Model%dust_gamma
print *, 'wetdep_ls_alpha : ',Model%wetdep_ls_alpha
Expand Down
23 changes: 23 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -6462,6 +6462,29 @@
type = real
kind = kind_phys
active = (do_smoke_coupling)
[dust_moist_correction]
standard_name = dust_moist_correction_fengsha_dust_scheme
long_name = moisture correction term for fengsha dust emission
units = none
dimensions = ()
type = real
kind = kind_phys
active = (do_smoke_coupling)
[dust_drylimit_factor]
standard_name = dust_drylimit_factor_fengsha_dust_scheme
long_name = moisture correction term for drylimit in fengsha dust emission
units = none
dimensions = ()
type = real
kind = kind_phys
active = (do_smoke_coupling)
[dust_moist_opt]
standard_name = control_for_dust_soil_moisture_option
long_name = smoke dust moisture parameterization 1 - fecan 2 - shao
units = index
dimensions = ()
type = integer
active = (do_smoke_coupling)
[dust_alpha]
standard_name = alpha_fengsha_dust_scheme
long_name = alpha paramter for fengsha dust scheme
Expand Down
44 changes: 44 additions & 0 deletions ccpp/driver/GFS_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4061,6 +4061,50 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
ExtDiag(idx)%data(nb)%var2 => sfcprop(nb)%wetness(:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'nirbmdi'
ExtDiag(idx)%desc = 'sfc nir beam sw downward flux'
ExtDiag(idx)%unit = 'W/m**2'
ExtDiag(idx)%mod_name = 'gfs_sfc'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => Coupling(nb)%nirbmdi(:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'nirdfdi'
ExtDiag(idx)%desc = 'sfc nir diff sw downward flux'
ExtDiag(idx)%unit = 'W/m**2'
ExtDiag(idx)%mod_name = 'gfs_sfc'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => Coupling(nb)%nirdfdi(:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'visbmdi'
ExtDiag(idx)%desc = 'sfc uv+vis beam sw downward flux'
ExtDiag(idx)%unit = 'W/m**2'
ExtDiag(idx)%mod_name = 'gfs_sfc'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => Coupling(nb)%visbmdi(:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'visdfdi'
ExtDiag(idx)%desc = ' sfc uv+vis diff sw downward flux'
ExtDiag(idx)%unit = 'W/m**2'
ExtDiag(idx)%mod_name = 'gfs_sfc'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => Coupling(nb)%visdfdi(:)
enddo

if (Model%rdlai) then
idx = idx + 1
ExtDiag(idx)%axes = 2
Expand Down
2 changes: 2 additions & 0 deletions ccpp/suites/suite_FV3_GFS_v17_p8_c3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>sgscloud_radpre</scheme>
<scheme>GFS_rrtmg_pre</scheme>
<scheme>GFS_radiation_surface</scheme>
<scheme>rad_sw_pre</scheme>
<scheme>rrtmg_sw</scheme>
<scheme>rrtmg_sw_post</scheme>
<scheme>rrtmg_lw_pre</scheme>
<scheme>rrtmg_lw</scheme>
<scheme>sgscloud_radpost</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
Expand Down