Skip to content

Commit

Permalink
wsm6: updating to new directory structure and porting changes over fr…
Browse files Browse the repository at this point in the history
…om mmm_wsm6 branch for merge
  • Loading branch information
scrasmussen committed Mar 26, 2024
1 parent a32bb19 commit 62871a1
Show file tree
Hide file tree
Showing 6 changed files with 250 additions and 2 deletions.
2 changes: 1 addition & 1 deletion ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# actual variable definition files
'ccpp/framework/src/ccpp_types.F90',
'ccpp/physics/physics/hooks/machine.F',
'ccpp/physics/physics/mmm_kinds.F90',
'ccpp/physics/physics/hooks/mmm_kinds.F90',
'ccpp/physics/physics/Radiation/RRTMG/radsw_param.f',
'ccpp/physics/physics/Radiation/RRTMG/radlw_param.f',
'ccpp/physics/physics/photochem/h2o_def.f',
Expand Down
137 changes: 137 additions & 0 deletions ccpp/physics_namelists/input_RAP_wsm6.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
&gfs_physics_nml
fhzero = 6
h2o_phys = .true.
ldiag3d = .true.
qdiag3d = .true.
print_diff_pgr = .false.
fhcyc = 24
use_ufo = .true.
pre_rad = .false.
imp_physics = 6
ltaerosol = .true.
lradar = .true.
sedi_semi = .true.
decfl = 10
nssl_cccn = 0.6e9
nssl_alphah = 0.0
nssl_alphahl = 1.0
nssl_hail_on = .false.
nssl_ccn_on = .true.
nssl_invertccn = .true.
dt_inner = 60
ttendlim = -999
pdfcld = .false.
fhswr = 1200.
fhlwr = 1200.
ialb = 2
iems = 2
iaer = 5111
icliq_sw = 1
iovr = 1
icloud = 0
ico2 = 2
isubc_sw = 2
isubc_lw = 2
isol = 2
lwhtr = .true.
swhtr = .true.
cnvgwd = .true.
do_deep = .true.
shal_cnv = .true.
cal_pre = .false.
redrag = .true.
dspheat = .true.
hybedmf = .false.
satmedmf = .false.
isatmedmf = 0
do_mynnedmf = .true.
lheatstrg = .false.
lseaspray = .false.
random_clds = .false.
trans_trac = .true.
cnvcld = .true.
imfshalcnv = 3
imfdeepcnv = 3
ras = .false.
cdmbgwd = 0.14,1.8,1.0,1.0
do_mynnsfclay= .true.
prslrd0 = 0.
ivegsrc = 1
isot = 1
lsm = 3
lsoil = 4
lsoil_lsm = 9
kice = 9
iopt_dveg = 4
iopt_crs = 2
iopt_btr = 1
iopt_run = 1
iopt_sfc = 3
iopt_frz = 1
iopt_inf = 1
iopt_rad = 3
iopt_alb = 1
iopt_snf = 4
iopt_tbot = 2
iopt_stc = 3
iopt_trs = 2
debug = .false.
oz_phys = .false.
oz_phys_2015 = .true.
nstf_name = 2,0,0,0,0
nst_anl = .true.
lkm = 0
psautco = 0.0008,0.0005
prautco = 0.00015,0.00015
lgfdlmprad = .true.
cplchm = .false.
cplwav = .false.
cplwav2atm = .false.
effr_in = .true.
ldiag_ugwp = .false.
do_ugwp = .false.
do_tofd = .false.
gwd_opt = 3
ldiag_ugwp = .false.
do_ugwp_v0 = .false.
do_ugwp_v0_orog_only = .false.
do_gsl_drag_ls_bl = .true.
do_gsl_drag_ss = .true.
do_gsl_drag_tofd = .true.
do_ugwp_v1 = .false.
do_ugwp_v1_orog_only = .false.
do_sppt = .false.
do_shum = .false.
do_skeb = .false.
lndp_type = 0
n_var_lndp = 0
fscav_aero = "'*:0.0'"
icloud_bl = 1
bl_mynn_tkeadvect = .true.
bl_mynn_edmf = 1
bl_mynn_edmf_mom = 1
do_RRTMGP = .false.
doGP_cldoptics_LUT = .false.
doGP_lwscat = .false.
hail_opt = 0
den0 = 1.28
denr = 1000
dens = 100
cl = 4190
cpv = 1870
/

&cires_ugwp_nml
knob_ugwp_solver = 2
knob_ugwp_source = 1,1,0,0
knob_ugwp_wvspec = 1,25,25,25
knob_ugwp_azdir = 2,4,4,4
knob_ugwp_stoch = 0,0,0,0
knob_ugwp_effac = 1,1,1,1
knob_ugwp_doaxyz = 1
knob_ugwp_doheat = 1
knob_ugwp_dokdis = 1
knob_ugwp_ndx4lh = 1
knob_ugwp_version = 0
launch_level = 54
/
86 changes: 86 additions & 0 deletions ccpp/suites/suite_SCM_RAP_wsm6.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="SCM_RAP_wsm6" version="1">
<!-- <init></init> -->
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmg_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<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</scheme>
<scheme>sgscloud_radpost</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>GFS_surface_composites_pre</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_surface_composites_inter</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
</subcycle>
<!-- Surface iteration loop -->
<subcycle loop="2">
<scheme>mynnsfc_wrapper</scheme>
<scheme>GFS_surface_loop_control_part1</scheme>
<scheme>sfc_nst_pre</scheme>
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
<scheme>GFS_surface_composites_post</scheme>
<scheme>sfc_diag</scheme>
<scheme>sfc_diag_post</scheme>
<scheme>GFS_surface_generic_post</scheme>
<scheme>mynnedmf_wrapper</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>drag_suite</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>h2ophys</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>cu_gf_driver_pre</scheme>
<scheme>cu_gf_driver</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_SCNV_generic_pre</scheme>
<scheme>GFS_SCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<!-- <scheme>mp_thompson_pre</scheme> -->
<!-- <scheme>mp_thompson</scheme> -->
<!-- <scheme>mp_thompson_post</scheme> -->
<scheme>scm_mp_wsm6_pre</scheme>
<scheme>mp_wsm6</scheme>
<scheme>scm_mp_wsm6_post</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>cu_gf_driver_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
<scheme>GFS_physics_post</scheme>
</subcycle>
</group>
<!-- <finalize></finalize> -->
</suite>
11 changes: 11 additions & 0 deletions scm/src/CCPP_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -415,10 +415,12 @@ module CCPP_typedefs

!-- WSM6
integer :: hail_opt !<
real (kind=kind_phys), pointer :: qi(:,:) => null() !<
real (kind=kind_phys), pointer :: qc(:,:) => null() !<
real (kind=kind_phys), pointer :: rho_air(:,:) => null() !<
real (kind=kind_phys), pointer :: evapprod2d(:,:) => null() !<
real (kind=kind_phys), pointer :: rainprod2d(:,:) => null() !<
real (kind=kind_phys) :: q_over_R_minus_one !<
integer :: vertical_dimension_start !<
integer :: vertical_dimension_end !<
integer :: horizontal_begin !<
Expand Down Expand Up @@ -809,6 +811,15 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model)
allocate (Interstitial%t2mmp (IM))
allocate (Interstitial%q2mp (IM))
end if

! Setup WSM6
if (Model%imp_physics == 6) then
allocate (Interstitial%qi(IM,Model%levs))
allocate (Interstitial%qc(IM,Model%levs))
allocate (Interstitial%rho_air(IM,Model%levs))
allocate (Interstitial%evapprod2d(IM,Model%levs))
allocate (Interstitial%rainprod2d(IM,Model%levs))
end if
!
! Set components that do not change
Interstitial%frain = Model%dtf/Model%dtp
Expand Down
9 changes: 8 additions & 1 deletion scm/src/CCPP_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -1625,10 +1625,17 @@
dimensions = (horizontal_begin:horizontal_end,vertical_layer_dimension)
type = real
kind = kind_phys
[qi]
standard_name = ice_water_mixing_ratio
long_name = ice water mixing ratio
units = kg kg-1
dimensions = (horizontal_begin:horizontal_end,vertical_layer_dimension)
type = real
kind = kind_phys
[qc]
standard_name = cloud_condensed_water_mixing_ratio
long_name = cloud condensed water mixing ratio
units = kg kg-1
units = kg kg-1
dimensions = (horizontal_begin:horizontal_end,vertical_layer_dimension)
type = real
kind = kind_phys
Expand Down
7 changes: 7 additions & 0 deletions scm/src/scm_physical_constants.F90
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,11 @@ module scm_physical_constants
real(kind=dp),parameter:: con_solr_2008 = 1.3608e+3_dp !< solar constant (\f$W/m^{2}\f$)-nasa-sorce Tim(2008)
real(kind=dp),parameter:: con_thgni = -38.15_dp !< temperature the H.G.Nuc. ice starts

!> wsm6
real(kind=dp),parameter:: con_qmin = 1.e-15 !< minimum value of water vapor mixing ratio
real(kind=dp),parameter:: con_cv = 717 !< specific heat of dry air at constant volume
real(kind=dp),parameter:: con_xls = 2.8440E06 !< latent heat of sublimation of water at 0C
real(kind=dp),parameter:: con_rhodryair = 1.225 !< density of dry air
real(kind=dp),parameter:: con_rhosnow = 300.0 !< density of snow
real(kind=dp),parameter:: con_4rv = 4.0 * con_rv !< four times the gas constant water vapor
end module scm_physical_constants

0 comments on commit 62871a1

Please sign in to comment.