Skip to content

Commit 0ff11e8

Browse files
Add variables to GFS_init_type (#26)
* Add two namelist options to control freezing/melting and deposition/sublimation in the fast microphysics. * Move the passing variables from IPD_Control to Init_parm. --------- Co-authored-by: Linjiong Zhou <Linjiong.Zhou@noaa.gov>
1 parent 6a6e94f commit 0ff11e8

File tree

3 files changed

+25
-14
lines changed

3 files changed

+25
-14
lines changed

GFS_layer/GFS_driver.F90

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, &
152152
Init_parm%iau_offset, &
153153
Init_parm%tracer_names, &
154154
Init_parm%input_nml_file, Init_parm%tile_num, &
155-
Init_parm%blksz)
155+
Init_parm%blksz, Init_parm%hydro, &
156+
Init_parm%do_inline_mp, Init_parm%do_cosp)
156157

157158

158159
call read_o3data (Model%ntoz, Model%me, Model%master)
@@ -218,7 +219,7 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, &
218219

219220
!--- initialize GFDL Cloud microphysics
220221
if (Model%ncld == 5) then
221-
call gfdl_cld_mp_init (Model%input_nml_file, Init_parm%logunit, Model%dycore_hydrostatic)
222+
call gfdl_cld_mp_init (Model%input_nml_file, Init_parm%logunit, Init_parm%hydro)
222223
endif
223224

224225
!--- initialize ras

GFS_layer/GFS_typedefs.F90

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ module GFS_typedefs
8585
character(len=65) :: fn_nml !< namelist filename
8686
character(len=:), pointer, dimension(:) :: input_nml_file => null() !< character string containing full namelist
8787
!< for use with internal file reads
88+
logical :: hydro !< whether the dynamical core is hydrostatic
89+
logical :: do_inline_mp !< flag for GFDL cloud microphysics
90+
logical :: do_cosp !< flag for COSP
91+
8892
end type GFS_init_type
8993

9094

@@ -1999,7 +2003,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
19992003
cnx, cny, gnx, gny, dt_dycore, &
20002004
dt_phys, idat, jdat, iau_offset, &
20012005
tracer_names, input_nml_file, &
2002-
tile_num, blksz)
2006+
tile_num, blksz, hydro, &
2007+
do_inline_mp, do_cosp)
20032008

20042009
!--- modules
20052010
use physcons, only: max_lon, max_lat, min_lon, min_lat, &
@@ -2036,6 +2041,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
20362041
character(len=32), intent(in) :: tracer_names(:)
20372042
character(len=:), intent(in), dimension(:), pointer :: input_nml_file
20382043
integer, intent(in) :: blksz(:)
2044+
logical, intent(in) :: hydro
2045+
logical, intent(in) :: do_inline_mp
2046+
logical, intent(in) :: do_cosp
20392047
!--- local variables
20402048
integer :: n, i, j
20412049
integer :: ios
@@ -2108,15 +2116,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
21082116
logical :: fixed_sollat = .false. !< flag to fix solar latitude
21092117
logical :: daily_mean = .false. !< flag to replace cosz with daily mean value
21102118

2111-
!--- dynamical core parameters
2112-
logical :: dycore_hydrostatic = .true. !< whether the dynamical core is hydrostatic
2113-
21142119
!--- GFDL microphysical parameters
21152120
logical :: do_sat_adj = .false. !< flag for fast saturation adjustment
2116-
logical :: do_inline_mp = .false. !< flag for GFDL cloud microphysics
2117-
2118-
!--- The CFMIP Observation Simulator Package (COSP)
2119-
logical :: do_cosp = .false. !< flag for COSP
21202121

21212122
!--- Z-C microphysical parameters
21222123
integer :: ncld = 1 !< cnoice of cloud scheme
@@ -2577,8 +2578,13 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
25772578

25782579
!--- microphysical switch
25792580
Model%ncld = ncld
2581+
!--- dynamical core parameters
2582+
Model%dycore_hydrostatic = hydro
25802583
!--- GFDL microphysical parameters
25812584
Model%do_sat_adj = do_sat_adj
2585+
Model%do_inline_mp = do_inline_mp
2586+
!--- The CFMIP Observation Simulator Package (COSP)
2587+
Model%do_cosp = do_cosp
25822588
!--- Zhao-Carr MP parameters
25832589
Model%zhao_mic = zhao_mic
25842590
Model%psautco = psautco

gsmphys/gfdl_cld_mp.F90

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,9 @@ module gfdl_cld_mp_mod
327327

328328
logical :: do_subgrid_proc = .true. ! do temperature sentive high vertical resolution processes
329329

330+
logical :: fast_fr_mlt = .true. ! do freezing and melting in fast microphysics
331+
logical :: fast_dep_sub = .true. ! do deposition and sublimation in fast microphysics
332+
330333
real :: mp_time = 150.0 ! maximum microphysics time step (s)
331334

332335
real :: n0w_sig = 1.1 ! intercept parameter (significand) of cloud water (Lin et al. 1983) (1/m^4) (Martin et al. 1994)
@@ -536,7 +539,8 @@ module gfdl_cld_mp_mod
536539
alinw, alini, alinr, alins, aling, alinh, blinw, blini, blinr, blins, bling, blinh, &
537540
do_new_acc_water, do_new_acc_ice, is_fac, ss_fac, gs_fac, rh_fac_evap, rh_fac_cond, &
538541
snow_grauple_combine, do_psd_water_num, do_psd_ice_num, vdiffflag, rewfac, reifac, &
539-
cp_heating, nconds, do_evap_timescale, delay_cond_evap, do_subgrid_proc
542+
cp_heating, nconds, do_evap_timescale, delay_cond_evap, do_subgrid_proc, &
543+
fast_fr_mlt, fast_dep_sub
540544

541545
contains
542546

@@ -2006,7 +2010,7 @@ subroutine mp_fast (ks, ke, tz, qv, ql, qr, qi, qs, qg, dtm, dp, den, &
20062010
call cal_mhc_lhc (ks, ke, qv, ql, qr, qi, qs, qg, q_liq, q_sol, cvm, te8, tz, &
20072011
lcpk, icpk, tcpk, tcp3)
20082012

2009-
if (.not. do_warm_rain_mp) then
2013+
if (.not. do_warm_rain_mp .and. fast_fr_mlt) then
20102014

20112015
! -----------------------------------------------------------------------
20122016
! cloud ice melting to form cloud water and rain
@@ -2044,7 +2048,7 @@ subroutine mp_fast (ks, ke, tz, qv, ql, qr, qi, qs, qg, dtm, dp, den, &
20442048
condensation = condensation + cond * convt
20452049
evaporation = evaporation + reevap * convt
20462050

2047-
if (.not. do_warm_rain_mp) then
2051+
if (.not. do_warm_rain_mp .and. fast_fr_mlt) then
20482052

20492053
! -----------------------------------------------------------------------
20502054
! cloud water freezing to form cloud ice and snow
@@ -2089,7 +2093,7 @@ subroutine mp_fast (ks, ke, tz, qv, ql, qr, qi, qs, qg, dtm, dp, den, &
20892093

20902094
call praut_simp (ks, ke, dtm, tz, qv, ql, qr, qi, qs, qg)
20912095

2092-
if (.not. do_warm_rain_mp) then
2096+
if (.not. do_warm_rain_mp .and. fast_dep_sub) then
20932097

20942098
! -----------------------------------------------------------------------
20952099
! cloud ice deposition and sublimation

0 commit comments

Comments
 (0)