Skip to content

Commit

Permalink
add semi-lagrangian sedimentation of graupel and update the namelist … (
Browse files Browse the repository at this point in the history
NCAR#426)

The semi-Lagrangian sedimentation of graupel is added. The namelist variables controlling the semi-Lagrangian sedimentation of precipitation (rain and graupel) are modified. Now SEDI_SEMI and DECFL is the switch. DECFL is the deformed CFL factor.

Semi-Lagrangian sedimentation of precipitation is added as an option and does not change results before it is turned on.
  • Loading branch information
RuiyuSun authored Nov 23, 2021
1 parent bc55483 commit 9df46a8
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 24 deletions.
17 changes: 6 additions & 11 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -823,8 +823,7 @@ module GFS_typedefs
integer :: thompson_ext_ndiag3d=37 !< number of 3d arrays for extended diagnostic output from Thompson
real(kind=kind_phys) :: dt_inner !< time step for the inner loop in s
logical :: sedi_semi !< flag for semi Lagrangian sedi of rain
logical :: sedi_semi_update!< flag for v update in semi Lagrangian sedi of rain
logical :: sedi_semi_decfl !< flag for interation with semi Lagrangian sedi of rain
integer :: decfl !< deformed CFL factor

!--- GFDL microphysical paramters
logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency
Expand Down Expand Up @@ -3193,8 +3192,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: ext_diag_thompson = .false. !< flag for extended diagnostic output from Thompson
real(kind=kind_phys) :: dt_inner = -999.0 !< time step for the inner loop
logical :: sedi_semi = .false. !< flag for semi Lagrangian sedi of rain
logical :: sedi_semi_update = .false. !< flag for v update in semi Lagrangian sedi of rain
logical :: sedi_semi_decfl = .false. !< flag for interation with semi Lagrangian sedi of rain
integer :: decfl = 8 !< deformed CFL factor

!--- GFDL microphysical parameters
logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction
Expand Down Expand Up @@ -3564,7 +3562,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
mg_alf, mg_qcmin, mg_do_ice_gmao, mg_do_liq_liu, &
ltaerosol, lradar, nsradar_reset, lrefres, ttendlim, &
ext_diag_thompson, dt_inner, lgfdlmprad, &
sedi_semi, sedi_semi_update, sedi_semi_decfl, &
sedi_semi, decfl, &
!--- max hourly
avg_max_length, &
!--- land/surface model control
Expand Down Expand Up @@ -4040,8 +4038,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%dt_inner = Model%dtp
endif
Model%sedi_semi = sedi_semi
Model%sedi_semi_update = sedi_semi_update
Model%sedi_semi_decfl = sedi_semi_decfl
Model%decfl = decfl
!--- F-A MP parameters
Model%rhgrd = rhgrd
Model%spec_adv = spec_adv
Expand Down Expand Up @@ -5118,8 +5115,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
' ext_diag_thompson =',Model%ext_diag_thompson, &
' dt_inner =',Model%dt_inner, &
' sedi_semi=',Model%sedi_semi, &
' sedi_semi_update=',sedi_semi_update, &
' sedi_semi_decfl=',sedi_semi_decfl, &
' decfl=',decfl, &
' effr_in =',Model%effr_in, &
' lradar =',Model%lradar, &
' nsradar_reset =',Model%nsradar_reset, &
Expand Down Expand Up @@ -5538,8 +5534,7 @@ subroutine control_print(Model)
print *, ' ext_diag_thompson : ', Model%ext_diag_thompson
print *, ' dt_inner : ', Model%dt_inner
print *, ' sedi_semi : ', Model%sedi_semi
print *, ' sedi_semi_update : ', Model%sedi_semi_update
print *, ' sedi_semi_decfl : ', Model%sedi_semi_decfl
print *, ' decfl : ', Model%decfl
print *, ' '
endif
if (Model%imp_physics == Model%imp_physics_mg) then
Expand Down
17 changes: 5 additions & 12 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -3513,19 +3513,12 @@
dimensions = ()
type = logical
intent = in
[sedi_semi_update]
standard_name = flag_for_v_update_in_semi_Lagrangian_sedi
long_name = flag for v update in semi Lagrangian sedi of rain
units = flag
dimensions = ()
type = logical
intent = in
[sedi_semi_decfl]
standard_name = flag_for_iteration_with_semi_Lagrangian_sedi
long_name = flag for interation with semi Lagrangian sedi of rain
units = flag
[decfl]
standard_name = deformed_CFL_factor
long_name = deformed CFL factor
units = count
dimensions = ()
type = logical
type = integer
intent = in
[lgfdlmprad]
standard_name = flag_for_GFDL_microphysics_radiation_interaction
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics

0 comments on commit 9df46a8

Please sign in to comment.