Skip to content

Commit

Permalink
"point to the smoke updates for RRFS.v1"
Browse files Browse the repository at this point in the history
  • Loading branch information
haiqinli authored and grantfirl committed Oct 29, 2024
1 parent d1e30c2 commit 6b98a77
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
16 changes: 14 additions & 2 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -655,6 +655,7 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: max_fplume (:) => null() !< maximum plume rise level
real (kind=kind_phys), pointer :: uspdavg (:) => null() !< BL average wind speed
real (kind=kind_phys), pointer :: hpbl_thetav (:) => null() !< BL depth parcel method
real (kind=kind_phys), pointer :: rho_dry (:,:) => null() !< dry air density 3D array
!--- hourly fire potential index
real (kind=kind_phys), pointer :: rrfs_hwp (:) => null() !< hourly fire potential index
real (kind=kind_phys), pointer :: rrfs_hwp_ave (:) => null() !< *Average* hourly fire potential index
Expand Down Expand Up @@ -1557,6 +1558,7 @@ module GFS_typedefs
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
real(kind=kind_phys) :: plume_alpha !< alpha parameter for plumerise scheme
integer :: ebb_dcycle !< 1:retro; 2:forecast of fire emission
integer :: seas_opt
integer :: dust_opt
Expand All @@ -1570,6 +1572,7 @@ module GFS_typedefs
integer :: plumerisefire_frq
integer :: n_dbg_lines
integer :: smoke_forecast
logical :: add_fire_moist_flux ! Flag to add moisture fluxes based on PM2.5 emissions
logical :: aero_ind_fdb ! WFA/IFA indirect
logical :: aero_dir_fdb ! smoke/dust direct
logical :: rrfs_smoke_debug
Expand Down Expand Up @@ -2359,7 +2362,7 @@ subroutine sfcprop_create (Sfcprop, Model)
allocate (Sfcprop%hprime (IM,Model%nmtvr))
allocate (Sfcprop%dust12m_in (IM,12,5))
allocate (Sfcprop%smoke_RRFS(IM,24,2))
allocate (Sfcprop%smoke2d_RRFS(IM,4))
allocate (Sfcprop%smoke2d_RRFS(IM,5))
allocate (Sfcprop%emi_in (IM,1))
allocate(Sfcprop%albdirvis_lnd (IM))
allocate(Sfcprop%albdirnir_lnd (IM))
Expand Down Expand Up @@ -3258,6 +3261,7 @@ subroutine coupling_create (Coupling, Model)
allocate (Coupling%min_fplume(IM))
allocate (Coupling%max_fplume(IM))
allocate (Coupling%uspdavg(IM))
allocate (Coupling%rho_dry (IM,Model%levs))
allocate (Coupling%hpbl_thetav(IM))
allocate (Coupling%rrfs_hwp (IM))
allocate (Coupling%rrfs_hwp_ave (IM))
Expand All @@ -3270,6 +3274,7 @@ subroutine coupling_create (Coupling, Model)
Coupling%min_fplume = clear_val
Coupling%max_fplume = clear_val
Coupling%uspdavg = clear_val
Coupling%rho_dry = clear_val
Coupling%hpbl_thetav = clear_val
Coupling%rrfs_hwp = clear_val
Coupling%rrfs_hwp_ave = clear_val
Expand Down Expand Up @@ -3972,6 +3977,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: dust_alpha = 0.
real(kind=kind_phys) :: dust_gamma = 0.
real(kind=kind_phys) :: wetdep_ls_alpha = 0.5
real(kind=kind_phys) :: plume_alpha = 0.05
integer :: dust_moist_opt = 1 ! fecan :1 else shao
integer :: ebb_dcycle = 1 ! 1:retro; 2:forecast
integer :: seas_opt = 2
Expand All @@ -3982,10 +3988,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: extended_sd_diags = .false.
integer :: wetdep_ls_opt = 1
logical :: do_plumerise = .false.
logical :: add_fire_moist_flux = .false.
integer :: addsmoke_flag = 1
integer :: plumerisefire_frq = 60
integer :: n_dbg_lines = 3
integer :: smoke_forecast = 0 ! RRFS-sd read in ebb_smoke
integer :: smoke_forecast = 2 ! RRFS-sd read in ebb_smoke
logical :: aero_ind_fdb = .false. ! RRFS-sd wfa/ifa emission
logical :: aero_dir_fdb = .false. ! RRFS-sd smoke/dust radiation feedback
logical :: rrfs_smoke_debug = .false. ! RRFS-sd plumerise debug
Expand Down Expand Up @@ -4164,6 +4171,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
rrfs_smoke_debug, do_plumerise, plumerisefire_frq, &
addsmoke_flag, enh_mix, mix_chem, smoke_dir_fdb_coef, &
do_smoke_transport,smoke_conv_wet_coef,n_dbg_lines, &
add_fire_moist_flux, plume_alpha, &
!--- C3/GF closures
ichoice,ichoicem,ichoice_s, &
!--- (DFI) time ranges with radar-prescribed microphysics tendencies
Expand Down Expand Up @@ -4404,6 +4412,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%dust_alpha = dust_alpha
Model%dust_gamma = dust_gamma
Model%wetdep_ls_alpha = wetdep_ls_alpha
Model%plume_alpha = plume_alpha
Model%ebb_dcycle = ebb_dcycle
Model%seas_opt = seas_opt
Model%dust_opt = dust_opt
Expand All @@ -4416,6 +4425,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%n_dbg_lines = n_dbg_lines
Model%plumerisefire_frq = plumerisefire_frq
Model%addsmoke_flag = addsmoke_flag
Model%add_fire_moist_flux = add_fire_moist_flux
Model%smoke_forecast = smoke_forecast
Model%aero_ind_fdb = aero_ind_fdb
Model%aero_dir_fdb = aero_dir_fdb
Expand Down Expand Up @@ -6542,6 +6552,7 @@ subroutine control_print(Model)
print *, 'dust_alpha : ',Model%dust_alpha
print *, 'dust_gamma : ',Model%dust_gamma
print *, 'wetdep_ls_alpha : ',Model%wetdep_ls_alpha
print *, 'plume_alpha : ',Model%plume_alpha
print *, 'ebb_dcycle : ',Model%ebb_dcycle
print *, 'seas_opt : ',Model%seas_opt
print *, 'dust_opt : ',Model%dust_opt
Expand All @@ -6552,6 +6563,7 @@ subroutine control_print(Model)
print *, 'wetdep_ls_opt : ',Model%wetdep_ls_opt
print *, 'do_plumerise : ',Model%do_plumerise
print *, 'plumerisefire_frq: ',Model%plumerisefire_frq
print *, 'add_fire_moist_flux: ',Model%add_fire_moist_flux
print *, 'addsmoke_flag : ',Model%addsmoke_flag
print *, 'smoke_forecast : ',Model%smoke_forecast
print *, 'aero_ind_fdb : ',Model%aero_ind_fdb
Expand Down
23 changes: 22 additions & 1 deletion ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -960,7 +960,7 @@
standard_name = emission_smoke_prvd_RRFS
long_name = emission fire RRFS daily
units = various
dimensions = (horizontal_dimension,4)
dimensions = (horizontal_dimension,5)
type = real
kind = kind_phys
active = (do_smoke_coupling)
Expand Down Expand Up @@ -3223,6 +3223,14 @@
type = real
kind = kind_phys
active = (do_smoke_coupling)
[rho_dry]
standard_name = dry_air_density
long_name = dry air density
units = kg m-3
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
active = (do_smoke_coupling)
[uspdavg]
standard_name = mean_wind_speed_in_boundary_layer
long_name = average wind speed within the boundary layer
Expand Down Expand Up @@ -4936,6 +4944,12 @@
units = flag
dimensions = ()
type = logical
[add_fire_moist_flux]
standard_name = flag_for_fire_moisture_flux
long_name = flag to add fire moisture flux
units = flag
dimensions = ()
type = logical
[isncond_opt]
standard_name = control_for_soil_thermal_conductivity_option_in_ruc_lsm
long_name = control for soil thermal conductivity option in RUC land surface model
Expand Down Expand Up @@ -6863,6 +6877,13 @@
dimensions = ()
type = real
kind = kind_phys
[plume_alpha]
standard_name = alpha_for_plumerise_scheme
long_name = alpha paramter for plumerise scheme
units = none
dimensions = ()
type = real
kind = kind_phys
[ebb_dcycle]
standard_name = control_for_diurnal_cycle_of_biomass_burning_emissions
long_name = rrfs smoke diurnal cycle option
Expand Down

0 comments on commit 6b98a77

Please sign in to comment.