Skip to content

Commit

Permalink
Thompson semi lag rain (#382)
Browse files Browse the repository at this point in the history
* Add semi-Lagrangian sedimentation of rain to Thompson MP as an option
  • Loading branch information
RuiyuSun authored Oct 28, 2021
1 parent 1b6b705 commit b27507a
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 1 deletion.
16 changes: 16 additions & 0 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -826,6 +826,9 @@ module GFS_typedefs
logical :: ext_diag_thompson !< flag for extended diagnostic output from Thompson
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

!--- GFDL microphysical paramters
logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency
Expand Down Expand Up @@ -3236,6 +3239,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: ttendlim = -999.0 !< temperature tendency limiter, set to <0 to deactivate
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

!--- GFDL microphysical parameters
logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction
Expand Down Expand Up @@ -3604,6 +3610,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, &
!--- max hourly
avg_max_length, &
!--- land/surface model control
Expand Down Expand Up @@ -4078,6 +4085,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
else
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
!--- F-A MP parameters
Model%rhgrd = rhgrd
Model%spec_adv = spec_adv
Expand Down Expand Up @@ -5165,6 +5175,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
' ttendlim =',Model%ttendlim, &
' 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, &
' effr_in =',Model%effr_in, &
' lradar =',Model%lradar, &
' nsradar_reset =',Model%nsradar_reset, &
Expand Down Expand Up @@ -5582,6 +5595,9 @@ subroutine control_print(Model)
print *, ' ttendlim : ', Model%ttendlim
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 *, ' '
endif
if (Model%imp_physics == Model%imp_physics_mg) then
Expand Down
24 changes: 24 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -3514,6 +3514,30 @@
dimensions = ()
type = real
kind = kind_phys
[sedi_semi]
standard_name = flag_for_semi_Lagrangian_sedi_rain
long_name = flag for semi Lagrangian sedi of rain
units = flag
dimensions = ()
type = logical
intent = in
optional = F
[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
optional = F
[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
dimensions = ()
type = logical
intent = in
optional = F
[lgfdlmprad]
standard_name = flag_for_GFDL_microphysics_radiation_interaction
long_name = flag for GFDL microphysics-radiation interaction
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics

0 comments on commit b27507a

Please sign in to comment.