diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg
index 90fe4700d5..cd7c03e349 100644
--- a/Externals_CAM.cfg
+++ b/Externals_CAM.cfg
@@ -21,16 +21,16 @@ required = True
[clubb]
local_path = src/physics/clubb
-protocol = git
-repo_url = https://github.com/ESCOMP/CLUBB_CESM
-tag = clubb_release_b76a124_20200220_c20200320
+protocol = svn
+repo_url = https://github.com/larson-group/clubb_release/tags/
+tag = clubb_4ncar_20220311_f51de38/src/CLUBB_core
required = True
[silhs]
local_path = src/physics/silhs
-protocol = git
-repo_url = https://github.com/ESCOMP/SILHS_CESM
-tag = silhs_clubb_release_b76a124_20200220_c20200320
+protocol = svn
+repo_url = https://github.com/larson-group/clubb_release/tags/
+tag = clubb_4ncar_20220311_f51de38/src/SILHS
required = True
[pumas]
diff --git a/bld/build-namelist b/bld/build-namelist
index 6d260e601d..5023742114 100755
--- a/bld/build-namelist
+++ b/bld/build-namelist
@@ -3080,55 +3080,112 @@ if ($clubb_sgs =~ /$TRUE/io) {
}
add_default($nl, 'clubb_do_icesuper');
-
- add_default($nl, 'clubb_expldiff');
- add_default($nl, 'clubb_rainevap_turb');
+ add_default($nl, 'clubb_do_energyfix');
add_default($nl, 'clubb_cloudtop_cooling');
- add_default($nl, 'clubb_timestep');
+ add_default($nl, 'clubb_rainevap_turb');
add_default($nl, 'clubb_rnevap_effic');
- add_default($nl, 'clubb_beta');
- add_default($nl, 'clubb_c1');
- add_default($nl, 'clubb_c1b');
- add_default($nl, 'clubb_c11');
- add_default($nl, 'clubb_c11b');
- add_default($nl, 'clubb_c14');
- add_default($nl, 'clubb_C2rt');
- add_default($nl, 'clubb_C2thl');
- add_default($nl, 'clubb_C2rtthl');
- add_default($nl, 'clubb_C4');
- add_default($nl, 'clubb_c6rt');
- add_default($nl, 'clubb_c6rtb');
- add_default($nl, 'clubb_c6rtc');
- add_default($nl, 'clubb_c6thl');
- add_default($nl, 'clubb_c6thlb');
- add_default($nl, 'clubb_c6thlc');
+ add_default($nl, 'clubb_timestep');
+ add_default($nl, 'clubb_l_diag_Lscale_from_tau');
+
+ my $clubb_Lscale_from_tau = $nl->get_value('clubb_l_diag_Lscale_from_tau');
+
+ if($clubb_Lscale_from_tau =~ "true") {
+ add_default($nl, 'clubb_c1', 'val'=>1.0);
+ add_default($nl, 'clubb_c1b', 'val'=>1.0);
+ add_default($nl, 'clubb_C2rt', 'val'=>1.0);
+ add_default($nl, 'clubb_C2thl', 'val'=>1.0);
+ add_default($nl, 'clubb_C2rtthl', 'val'=>1.0);
+ add_default($nl, 'clubb_C4', 'val'=>5.2);
+ add_default($nl, 'clubb_C_uu_shr', 'val'=>0.1076484659222455);
+ add_default($nl, 'clubb_C_uu_buoy', 'val'=>0.3);
+ add_default($nl, 'clubb_c6rt', 'val'=>2.0);
+ add_default($nl, 'clubb_c6rtb', 'val'=>2.0);
+ add_default($nl, 'clubb_c6rtc', 'val'=>1.0);
+ add_default($nl, 'clubb_c6thl', 'val'=>2.0);
+ add_default($nl, 'clubb_c6thlb', 'val'=>2.0);
+ add_default($nl, 'clubb_c6thlc', 'val'=>1.0);
+ add_default($nl, 'clubb_C8', 'val'=>3.440377776099962);
+ add_default($nl, 'clubb_C8b', 'val'=>0.0);
+ add_default($nl, 'clubb_c11', 'val'=>0.31057411754034614);
+ add_default($nl, 'clubb_c11b', 'val'=>0.3250718127387944);
+ add_default($nl, 'clubb_c14', 'val'=>1.0);
+ add_default($nl, 'clubb_C_invrs_tau_bkgnd', 'val'=>3.727123755772682);
+ add_default($nl, 'clubb_C_invrs_tau_sfc', 'val'=>0.12743072568015346);
+ add_default($nl, 'clubb_C_invrs_tau_shear', 'val'=>0.12502726304767026);
+ add_default($nl, 'clubb_C_invrs_tau_N2', 'val'=>0.08122667220596895);
+ add_default($nl, 'clubb_C_invrs_tau_N2_wp2', 'val'=>0.1);
+ add_default($nl, 'clubb_C_invrs_tau_N2_xp2', 'val'=>0.05);
+ add_default($nl, 'clubb_C_invrs_tau_N2_wpxp', 'val'=>0.0);
+ add_default($nl, 'clubb_C_invrs_tau_N2_clear_wp3', 'val'=>1.0);
+ add_default($nl, 'clubb_gamma_coef', 'val'=>0.5492223674353673);
+ add_default($nl, 'clubb_gamma_coefb', 'val'=>0.2531868210746816);
+ add_default($nl, 'clubb_beta', 'val'=>2.27756371212011);
+ } else {
+ add_default($nl, 'clubb_c1');
+ add_default($nl, 'clubb_c1b');
+ add_default($nl, 'clubb_C2rt');
+ add_default($nl, 'clubb_C2thl');
+ add_default($nl, 'clubb_C2rtthl');
+ add_default($nl, 'clubb_C4');
+ add_default($nl, 'clubb_C_uu_shr');
+ add_default($nl, 'clubb_C_uu_buoy');
+ add_default($nl, 'clubb_c6rt');
+ add_default($nl, 'clubb_c6rtb');
+ add_default($nl, 'clubb_c6rtc');
+ add_default($nl, 'clubb_c6thl');
+ add_default($nl, 'clubb_c6thlb');
+ add_default($nl, 'clubb_c6thlc');
+ add_default($nl, 'clubb_C8');
+ add_default($nl, 'clubb_C8b');
+ add_default($nl, 'clubb_c11');
+ add_default($nl, 'clubb_c11b');
+ add_default($nl, 'clubb_c14');
+ add_default($nl, 'clubb_C_invrs_tau_bkgnd');
+ add_default($nl, 'clubb_C_invrs_tau_sfc');
+ add_default($nl, 'clubb_C_invrs_tau_shear');
+ add_default($nl, 'clubb_C_invrs_tau_N2');
+ add_default($nl, 'clubb_C_invrs_tau_N2_wp2');
+ add_default($nl, 'clubb_C_invrs_tau_N2_xp2');
+ add_default($nl, 'clubb_C_invrs_tau_N2_wpxp');
+ add_default($nl, 'clubb_C_invrs_tau_N2_clear_wp3');
+ add_default($nl, 'clubb_gamma_coef');
+ add_default($nl, 'clubb_gamma_coefb');
+ add_default($nl, 'clubb_beta');
+ }
+
add_default($nl, 'clubb_C7');
add_default($nl, 'clubb_C7b');
- add_default($nl, 'clubb_C8');
- add_default($nl, 'clubb_C8b');
+
+ add_default($nl, 'clubb_C_wp3_pr_turb');
+ add_default($nl, 'clubb_c_K1');
+ add_default($nl, 'clubb_c_K2');
+ add_default($nl, 'clubb_nu2');
+ add_default($nl, 'clubb_c_K8');
add_default($nl, 'clubb_c_K9');
add_default($nl, 'clubb_nu9');
add_default($nl, 'clubb_c_K10');
add_default($nl, 'clubb_c_K10h');
add_default($nl, 'clubb_do_liqsupersat');
- add_default($nl, 'clubb_gamma_coef');
- add_default($nl, 'clubb_gamma_coefb');
+ add_default($nl, 'clubb_wpxp_L_thresh');
+
add_default($nl, 'clubb_lambda0_stability_coef');
add_default($nl, 'clubb_lmin_coef');
add_default($nl, 'clubb_mult_coef');
add_default($nl, 'clubb_Skw_denom_coef');
add_default($nl, 'clubb_skw_max_mag');
- add_default($nl, 'clubb_up2_vp2_factor');
+ add_default($nl, 'clubb_up2_sfc_coef');
add_default($nl, 'clubb_C_wp2_splat');
- add_default($nl, 'clubb_wpxp_L_thresh');
add_default($nl, 'clubb_detliq_rad');
add_default($nl, 'clubb_detice_rad');
add_default($nl, 'clubb_detphase_lowtemp');
+ add_default($nl, 'clubb_ipdf_call_placement');
add_default($nl, 'clubb_l_brunt_vaisala_freq_moist');
add_default($nl, 'clubb_l_call_pdf_closure_twice');
add_default($nl, 'clubb_l_damp_wp3_Skw_squared');
+ add_default($nl, 'clubb_l_lmm_stepping');
+ add_default($nl, 'clubb_l_e3sm_config');
add_default($nl, 'clubb_l_lscale_plume_centered');
add_default($nl, 'clubb_l_min_wp2_from_corr_wx');
add_default($nl, 'clubb_l_min_xp2_from_corr_wx');
@@ -3141,11 +3198,18 @@ if ($clubb_sgs =~ /$TRUE/io) {
add_default($nl, 'clubb_l_use_C7_Richardson');
add_default($nl, 'clubb_l_use_C11_Richardson');
add_default($nl, 'clubb_l_use_cloud_cover');
- add_default($nl, 'clubb_l_use_ice_latent');
add_default($nl, 'clubb_l_use_thvm_in_bv_freq');
add_default($nl, 'clubb_l_vert_avg_closure');
- add_default($nl, 'clubb_l_diag_Lscale_from_tau');
add_default($nl, 'clubb_l_damp_wp2_using_em');
+ add_default($nl, 'clubb_l_godunov_upwind_wpxp_ta');
+ add_default($nl, 'clubb_l_godunov_upwind_xpyp_ta');
+ add_default($nl, 'clubb_l_use_shear_Richardson');
+ add_default($nl, 'clubb_l_use_tke_in_wp3_pr_turb_term');
+ add_default($nl, 'clubb_l_use_tke_in_wp2_wp3_K_dfsn');
+ add_default($nl, 'clubb_l_smooth_Heaviside_tau_wpxp');
+ add_default($nl, 'clubb_l_do_expldiff_rtm_thlm');
+
+ #CLUBB+MF options
add_default($nl, 'do_clubb_mf');
add_default($nl, 'do_clubb_mf_diag');
add_default($nl, 'clubb_mf_L0');
diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index 8366f2d9b7..b5ce306c32 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -1823,9 +1823,6 @@
.false.
.false.
- .false.
- .true.
- .false.
.false.
1.0D0
@@ -1836,12 +1833,17 @@
150.0D0
75.0D0
+
+ .false.
+
1.0
1.0
1.0
1.0
1.3
5.2
+ 0.3
+ 0.3
4.0
6.0
1.0
@@ -1856,52 +1858,73 @@
0.35D0
2.2D0
1.6D0
+ 0.4
+ 0.75
+ 0.125
+ 5.0
+ 1.25
0.25
20.0
0.5
0.3
.false.
60.0
- 0.308
- 0.280
- 0.270
- 0.32
- 2.4
- 0.04
- 0.1
- 1.0D0
- 0.0
- 4.5
- 2.0
- 0.0
- 8.0D-6
- 25.0D-6
- 238.15D0
-
+ 1.0
+ 0.1
+ 0.02
+ 0.1
+ 0.2
+ 0.2
+ 0.0
+ 0.0
+ 0.308
+ 0.280
+ 0.270
+ 0.32
+ 2.4
+ 0.04
+ 0.1
+ 1.0D0
+ 0.0
+ 4.5
+ 2.0
+ 0.0
+ 8.0D-6
+ 25.0D-6
+ 238.15D0
+ 1
+
+ .true.
.false.
.true.
.false.
.false.
- .false.
- .false.
+ .true.
+ .true.
.false.
.false.
.true.
.false.
.false.
+ .false.
+ .false.
.true.
.false.
.false.
+ .false.
.true.
- .false.
.false.
.true.
- .false.
.false.
+ .false.
+ .false.
+ .false.
+ .false.
+ .false.
+ .false.
.true.
-
0.2
0.2
0.2
@@ -1911,7 +1934,7 @@
0.02
0.5
0.5
- 1.0
+ 0.5
0.25
20.0
2.0
@@ -1924,7 +1947,7 @@
1.5
4.0
10.0
- 4.0
+ 4.0
0.0
.true.
@@ -1943,7 +1966,7 @@
.true.
.false.
.false.
- .true.
+ .false.
.false.
@@ -2250,6 +2273,17 @@
0.0
0.0
+ .true.
+ .false.
+ .false.
+ .true.
+ .true.
+ .false.
+ .true.
+ .true.
+ .true.
+ .false.
+ .true.
NONE
diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml
index 8a89f7a76f..96a10f616a 100644
--- a/bld/namelist_files/namelist_definition.xml
+++ b/bld/namelist_files/namelist_definition.xml
@@ -3273,6 +3273,61 @@ Intercept of linear equation that calculates precribed in-cloud ice mixing ratio
Intercept of linear equation that calculates precribed in-cloud ice concentration ratio [N_i'^2] / [N_i]^2 [-]
+
+Enables importance sampling for SILHS subcolumns
+
+
+
+Enables calculation of Lscale_vert_avg, used to generate SILHS samples.
+
+
+
+Enables straight Monte Carlo sampling, this overrides l_lh_importance_sampling.
+
+
+
+Enables the "new" SILHS importance sampling scheme with prescribed probabilities. Requires l_lh_importance_sampling.
+
+
+
+Determine starting SILHS first sampling level (k_lh_start) based on maximum within-cloud rcm. If false, and if l_random_k_lh_start is also false, then the SILHS first sampling level is the column maximum of liquid cloud water.
+
+
+
+Determine starting SILHS first sampling level (k_lh_start) based on random choice. Overrides l_rcm_in_cloud_k_lh_start if true.
+
+
+
+Assumption of maximum vertical overlap when grid-box rcm exceeds cloud threshold.
+
+
+
+Produces "instantaneous" variance-covariance microphysical source terms, ignoring discretization effects.
+
+
+
+Limit SILHS sample point weights for stability.
+
+
+
+Prescribe variance fractions.
+
+
+
+Scale sample point weights to sum to num_samples (the "ratio estimate").
+
+
-
-Explicit diffusion on temperature and moisture when CLUBB is on
-Default: .false.
-
+
+Option for the placement of the call to CLUBB's PDF closure. The options include: ipdf_pre_advance_fields (1) calls the PDF closure before advancing prognostic fields. ipdf_post_advance_fields (2) calls after advancing prognostic fields, and ipdf_pre_post_advance_fields (3) calls both before and after advancing prognostic fields.
+Default: 1
+
+
Limiting value of C1 when skewness of w (vertical velocity) is small in
@@ -3583,6 +3639,16 @@ C4 coefficient in the wp2 return-to-isotropy term. A higher value of C4
tends wp2 more towards the value of subgrid TKE.
+
+Coefficient in the wp2 (variance of vertical velocity) pressure terms opposing shear production.
+
+
+
+Coefficient in the wp2 (variance of vertical velocity) pressure terms opposing buoyancy production.
+
+
Low Skewness in C7 Skw. Function
@@ -3605,11 +3671,45 @@ the damping of CLUBB's wp3 when skewness of w (vertical velocity) is large in
magnitude.
+
+Coefficient in the pressure-turbulence term of CLUBB's wp3 predictive equation.
+
+
+
+Coefficient of Kh_zm (diffusivity on momentum grid levels) in the wp2 (variance
+of vertical velocity) predictive equation.
+Default: 0.75
+
+
+
+Coefficient of Kh_zm (diffusivity on momentum grid levels) in the scalar
+variance predictive equations (e.g. rtp2, variance of total water).
+Default: 0.125
+
+
+
+Constant in the diffusivity term in the scalar variance predictive equations
+(e.g. rtp2, variance of total water).
+Default: 5.0
+
+
+
+Coefficient of Kh_zt (diffusivity on thermodynamic grid levels) in the wp3
+(third-order moment of vertical velocity) predictive equation.
+Default: 1.25
+
+
Coefficient of Kh_zm (diffusivity on momentum grid levels) in the up2 (variance
of the west-east wind component) and vp2 (variance of the south-north wind
component) predictive equations.
+Default: 0.25
CLUBB tunable parameter - Lscale threshold: damp C6 and C7 (units: m)
+Default: 60.0
+
+Coefficient of inverse tau term contributed by background constant value (units: none)
+Default: 1.0
+
+
+
+Coefficient of inverse tau term contributed by surface log law (units: none)
+Default: 0.1
+
+
+
+Coefficient of inverse tau term contributed by vertical wind shear (units: none)
+Default: 0.02
+
+
+
+Coefficient of inverse tau term contributed by Brunt Vaisala frequency (units: none)
+Default: 0.1
+
+
+
+Coefficient of inverse tau term contributed by Brunt Vaisala frequency but for wp3_wp2 (units: none)
+Default: 0.2
+
+
+
+Coefficient of inverse tau term contributed by Brunt Vaisala frequency but for xp2_wpxp (units: none)
+Default: 0.2
+
+
+
+Coefficient of inverse tau term contributed by Brunt Vaisala frequency but for xm_wpxp (units: none)
+Default: 0.0
+
+
+
+Coefficient of inverse tau term contributed by Brunt Vaisala frequency but for wp3 (units: none)
+Default: 0.0
+
+
-Low Skw.: gamma coef. Skw. Fnct.
+Low Skewness in gamma coefficient Skewness Function (units: none)
+Default: Changes depending on grid and physics options
-
Factor used in calculating the surface values of up2 (variance of the u wind
component) and vp2 (variance of the v wind component). Increasing
-clubb_up2_vp2_factor increases the values of up2 and vp2 at the surface.
+clubb_up2_sfc_coef increases the values of up2 and vp2 at the surface.
+Default: 2.0
Coefficient for gustiness near ground.
+Default: 0.0
+
+Flag to use shear in the calculation of Richardson number.
+Default: .false.
+
+
Flag to allow cloud fraction and mean cloud water at adjacent vertical grid
levels influence the amount of cloudiness and amount of cloud water in a
grid box.
-
-
-
-Include the effects of ice latent heating in turbulence terms
-Default: .false.
+Default: .true.
Flag to use mean theta-v in the calculation of Brunt-Vaisala frequency.
+Default: .false.
Flag that, when it is enabled, automatically enables CLUBB's
l_trapezoidal_rule_zt, l_trapezoidal_rule_zm, and l_call_pdf_closure_twice.
+Default: .true.
+
+
+
+Flag to apply Linear Multistep Method (LMM) stepping in CLUBB.
+Default: .false.
+
+
+
+Flag to run CLUBB with E3SM settings.
+Default: .true.
+
+Flag to use Total Kenetic Energy (TKE) in eddy diffusion for wp2 and wp3.
+Default: .false.
+
+
+
+Flag to use Total Kenetic Energy (TKE) formulation for wp3 pr_turb (turbulent
+production) term.
+Default: .false.
+
+
+
+Flag to use smooth Heaviside 'Peskin' in computation of invrs_tau.
+Default: .false.
+
+
+
+This flag determines whether we want to use an upwind differencing approximation
+rather than a centered differencing for turbulent advection terms. It affects
+wpxp only.
+Default: .false.
+
+
+
+This flag determines whether we want to use an upwind differencing approximation
+rather than a centered differencing for turbulent advection terms. It affects
+xpyp only.
+Default: .false.
+
+
Flag to use a dissipation formula of -(2/3)*em/tau_zm, as in Bougeault (1981),
in the wp2 (variance of vertical velocity) predictive equation.
+Default: .false.
+
+
+
+Explicit diffusion on temperature and moisture by CLUBB, in addition to CLUBB's
+normal prognostic equations for rtm and thlm.
+Default: .false.
-
+
diff --git a/cime_config/testdefs/testmods_dirs/cam/silhs/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/silhs/user_nl_cam
index 2c1d851a57..17185beed9 100644
--- a/cime_config/testdefs/testmods_dirs/cam/silhs/user_nl_cam
+++ b/cime_config/testdefs/testmods_dirs/cam/silhs/user_nl_cam
@@ -27,7 +27,8 @@ fincl1 = 'U:A','PS:A','T:A','V:A','OMEGA:A','Z3:A','PRECT:A',
'rtm_tacl', 'rtm_cl', 'rtm_forcing', 'rtm_sdmp','rtm_mc', 'rtm_pd', 'rvm_mc', 'rcm_mc', 'rcm_sd_mg_morr', 'thlm_bt', 'thlm_ma', 'thlm_ta', 'thlm_mfl',
'thlm_tacl', 'thlm_cl', 'thlm_forcing', 'thlm_sdmp','thlm_mc', 'thlm_old', 'thlm_without_ta', 'thlm_mfl_min', 'thlm_mfl_max', 'thlm_enter_mfl', 'thlm_exit_mfl',
'rtm_old', 'rtm_without_ta', 'rtm_mfl_min', 'rtm_mfl_max', 'rtm_enter_mfl', 'rtm_exit_mfl', 'um_bt', 'um_ma', 'um_gf', 'um_cf', 'um_ta', 'um_f', 'um_sdmp',
-'um_ndg', 'vm_bt', 'vm_ma', 'vm_gf', 'vm_cf', 'vm_ta', 'vm_f', 'vm_sdmp', 'vm_ndg', 'wp3_bt', 'wp3_ma', 'wp3_ta', 'wp3_tp', 'wp3_ac', 'wp3_bp1', 'wp3_bp2',
+'um_ndg', 'vm_bt', 'vm_ma', 'vm_gf', 'vm_cf', 'vm_ta', 'vm_f', 'vm_sdmp', 'vm_ndg', 'wp3_bt', 'wp3_ma', 'wp3_ta', 'wp3_tp', 'wp3_ac', 'wp3_bp1', 'wp3_pr_turb',
+'wp3_pr_dfsn',
'wp3_pr1', 'wp3_pr2', 'wp3_dp1', 'wp3_cl', 'mixt_frac', 'w_1', 'w_2', 'varnce_w_1', 'varnce_w_2', 'thl_1', 'thl_2', 'varnce_thl_1', 'varnce_thl_2', 'rt_1',
'rt_2', 'varnce_rt_1', 'varnce_rt_2', 'rc_1', 'rc_2', 'rsatl_1', 'rsatl_2', 'cloud_frac_1', 'cloud_frac_2', 'a3_coef_zt', 'wp3_on_wp2_zt', 'chi_1', 'chi_2',
'stdev_chi_1', 'stdev_chi_2', 'stdev_eta_1', 'stdev_eta_2', 'covar_chi_eta_1', 'covar_chi_eta_2', 'corr_chi_eta_1', 'corr_chi_eta_2', 'corr_rt_thl_1', 'crt_1',
@@ -57,7 +58,8 @@ clubb_vars_zt ='thlm', 'thvm', 'rtm', 'rcm', 'rvm', 'um', 'vm', 'um_ref','vm_ref
'rtm_tacl', 'rtm_cl', 'rtm_forcing', 'rtm_sdmp','rtm_mc', 'rtm_pd', 'rvm_mc', 'rcm_mc', 'rcm_sd_mg_morr', 'thlm_bt', 'thlm_ma', 'thlm_ta', 'thlm_mfl',
'thlm_tacl', 'thlm_cl', 'thlm_forcing', 'thlm_sdmp','thlm_mc', 'thlm_old', 'thlm_without_ta', 'thlm_mfl_min', 'thlm_mfl_max', 'thlm_enter_mfl', 'thlm_exit_mfl',
'rtm_old', 'rtm_without_ta', 'rtm_mfl_min', 'rtm_mfl_max', 'rtm_enter_mfl', 'rtm_exit_mfl', 'um_bt', 'um_ma', 'um_gf', 'um_cf', 'um_ta', 'um_f', 'um_sdmp',
-'um_ndg', 'vm_bt', 'vm_ma', 'vm_gf', 'vm_cf', 'vm_ta', 'vm_f', 'vm_sdmp', 'vm_ndg', 'wp3_bt', 'wp3_ma', 'wp3_ta', 'wp3_tp', 'wp3_ac', 'wp3_bp1', 'wp3_bp2',
+'um_ndg', 'vm_bt', 'vm_ma', 'vm_gf', 'vm_cf', 'vm_ta', 'vm_f', 'vm_sdmp', 'vm_ndg', 'wp3_bt', 'wp3_ma', 'wp3_ta', 'wp3_tp', 'wp3_ac', 'wp3_bp1', 'wp3_pr_turb',
+'wp3_pr_dfsn',
'wp3_pr1', 'wp3_pr2', 'wp3_dp1', 'wp3_cl', 'mixt_frac', 'w_1', 'w_2', 'varnce_w_1', 'varnce_w_2', 'thl_1', 'thl_2', 'varnce_thl_1', 'varnce_thl_2', 'rt_1',
'rt_2', 'varnce_rt_1', 'varnce_rt_2', 'rc_1', 'rc_2', 'rsatl_1', 'rsatl_2', 'cloud_frac_1', 'cloud_frac_2', 'a3_coef_zt', 'wp3_on_wp2_zt', 'chi_1', 'chi_2',
'stdev_chi_1', 'stdev_chi_2', 'stdev_eta_1', 'stdev_eta_2', 'covar_chi_eta_1', 'covar_chi_eta_2', 'corr_chi_eta_1', 'corr_chi_eta_2', 'corr_rt_thl_1', 'crt_1',
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1dd6c47042..7fc345f09f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,10 +1,168 @@
+===============================================================
+Tag name: cam6_3_059
+Originator(s): katec,vlarson,huebleruwm,adamrher
+Date: 20 May 2022
+One-line Summary: Bringing in the new CLUBB and SILHS Externals. Fixes #515 #467 #461 #572
+Github PR URLs:
+ https://github.com/ESCOMP/CAM/pull/545
+
+Purpose of changes (include the issue number and title text for each relevant GitHub issue):
+ - Update to more recent CLUBB code including the inverse taus science and prognostic momentum improvements.
+ (https://github.com/ESCOMP/CAM/issues/515)
+ - Add new CLUBB invrs_tau coefs to be set via namelist (https://github.com/ESCOMP/CAM/issues/467)
+ - DP_FRAC and SH_FRAC not initialized in clubb_intr (https://github.com/ESCOMP/CAM/issues/461)
+ - CAM crashes when run with SILHS using SE core (https://github.com/ESCOMP/CAM/issues/572)
+
+Describe any changes made to build system:
+
+ - Changes the source of the CLUBB and SILHS external repos from NCAR managed github repos to UWM public release
+ repos using svn to pull only specific source code directories (changes in Externals_CAM.cfg)
+
+Describe any changes made to the namelist:
+
+- Add mechanism to set default values for several namelist values based on the value of clubb_Lscale_from_tau
+ in build-namelist
+- Added: clubb_do_energyfix, clubb_l_diag_Lscale_from_tau, clubb_C_wp3_pr_turb, clubb_c_K1, clubb_c_K2, clubb_nu2,
+ clubb_c_K8, clubb_up2_sfc_coef, clubb_ipdf_call_placement, clubb_l_lmm_stepping, clubb_l_e3sm_config,
+ clubb_l_godunov_upwind_wpxp_ta, clubb_l_godunov_upwind_xpyp_ta, clubb_l_use_shear_Richardson,
+ clubb_l_use_tke_in_wp3_pr_turb_term, clubb_l_use_tke_in_wp3_pr_turb_term, clubb_l_use_tke_in_wp2_wp3_K_dfsn,
+ clubb_l_smooth_Heaviside_tau_wpxp, clubb_l_do_expldiff_rtm_thlm, clubb_l_do_expldiff_rtm_thlm,
+ clubb_C_invrse_tau_bkgnd, clubb_C_invrs_tau_sfc, clubb_C_invrs_tau_shear, clubb_C_invrs_tau_N2,
+ clubb_C_invrs_tau_N2_wp2, clubb_C_invrs_tau_N2_xp2, clubb_C_invrs_tau_N2_wpxp,
+ clubb_C_invrs_tau_N2_clear_wp3, clubb_l_use_tke_in_wp3_pr_turb_term,
+ clubb_l_use_tke_in_wp2_wp3_K_dfsn, clubb_l_smooth_Heaviside_tau_wpxp
+- Removed: clubb_expldiff, clubb_up2_vp2_factor, clubb_l_use_ice_latent
+- Updated/fixed descriptions or changed default values for: clubb_C_uu_shr, clubb_C_uu_buoy, clubb_l_min_wp2_from_corr_wx,
+ clubb_l_min_xp2_from_corr_wx, clubb_c14 (silhs only), clubb_l_damp_wp2_using_em, subcol_silhs_l_lh_importance_sampling,
+ subcol_silhs_l_Lscale_vert_avg, subcol_silhs_l_lh_straight_mc, subcol_silhs_l_lh_clustered_sampling,
+ subcol_silhs_l_rcm_in_cloud_k_lh_start, subcol_silhs_l_random_k_lh_start, subcol_silhs_l_max_overlap_in_cloud,
+ subcol_silhs_l_lh_instant_var_covar_src, subcol_silhs_l_lh_limit_weights, subcol_silhs_l_lh_var_frac,
+ subcol_silhs_l_lh_normalize_weights, clubb_c_K9, clubb_nu9, clubb_wpxp_L_thresh, clubb_gamma_coef,
+ clubb_C_wp2_splat, clubb_l_call_pdf_closure_twice, clubb_l_rcm_supersat_adj, clubb_l_trapezoidal_rule_zt,
+ clubb_l_use_cloud_cover, clubb_l_use_thvm_in_bv_freq, clubb_l_vert_avg_closure, clubb_l_damp_wp2_using_em
+
+
+List any changes to the defaults for the boundary datasets: None
+
+Describe any substantial timing or memory changes:
+ No memory or compute time changes large enough to fail a compare test. TPUTCOMP changes between
+ +9.87% and -17.23% in cheyenne aux_cam test suite.
+
+Code reviewed by: gold2718, adamrher, huebleruwm, bstephens82, sjsprecious, zarzycki, cacraigucar, vlarson,
+ peverwhee, nusbaume
+
+List all files eliminated: None
+
+List all files added and what they do: None
+
+List all existing files that have been modified, and describe the changes:
+
+ - Externals_CAM.cfg: Point to new external code for src/physics/clubb and src/physics/silhs
+ - bld/build-namelist: Add method for setting defaults of many clubb namelist variables based on the value of
+ clubb_l_diag_Lscale_from_tau. Add default listing for new namelist parameters.
+ - bld/namelist_files/namelist_defaults_cam.xml: Updates and defaults for new namelist parameters.
+ - bld/namelist_files/namelist_definition.xml: Updates, typo fixes, better descriptors, and new entries for
+ new namelist values.
+ - cime_config/testdefs/testlist_cam.xml: Change mpasa480 test from izumi-intel to cheyenne-intel
+ - cime_config/testdefs/testmods_dirs/cam/silhs/user_nl_cam: Change output field wp3_bp2 to wp3_pr_turb
+ - src/physics/cam/clubb_intr.F90: All of the modifications for the new external, new namelist parameters,
+ updates to clubb_stats arrays, adding support for b4b restarts in pdf_post_placement, other code
+ refactoring changes.
+ NOTE: I attempted to add stat checks to all of the allocate calls in clubb_intr but found two nag
+ tests failed due to NaN values in state%q after this. This is just completely mystifying, and
+ likely some kind of compiler issue that may work its way out in the future.
+ - src/physics/cam/physpkg.F90: Check for use_subcol_microp and add init_state_subcol call for silhs
+ - src/physics/cam/subcol_SILHS.F90: update namelist variable names, new calls for api updates, some
+ refactoring, add init state subcol function, more bad configuration checks
+ - src/physics/cam_dev/physpkg.F90: Check for use_subcol_microp and add init_state_subcol call for silhs
+
+If there were any failures reported from running test_driver.sh on any test
+platform, and checkin with these failures has been OK'd by the gatekeeper,
+then copy the lines from the td.*.status files for the failed tests to the
+appropriate machine below. All failed tests must be justified.
+
+All tests pass with the exception of the following expected differences:
+
+izumi/nag/aux_cam:
+ DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL)
+ - Known/Existing Failure
+ ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_am (Overall: DIFF)
+ ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_convmic (Overall: DIFF)
+ ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_cospsathist (Overall: DIFF)
+ ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s (Overall: DIFF)
+ ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s (Overall: DIFF)
+ ERI_D_Ln18_Vnuopc.f19_f19_mg17.QPC6.izumi_nag.cam-ghgrmp_e8 (Overall: DIFF)
+ ERP_Ln9_Vmct.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: DIFF)
+ ERP_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_ba (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPMAM5.izumi_nag.cam-outfrq3s (Overall: DIFF)
+ SMS_P48x1_D_Ln3_Vnuopc.f09_f09_mg17.QPC6HIST.izumi_nag.cam-outfrq3s_co2cycle_usecase (Overall: DIFF)
+ - Namelist and baseline changes due to new CLUBB code
+
+izumi/gnu/aux_cam:
+ All Pass
+
+cheyenne/intel/aux_cam:
+
+ ERC_D_Ln9_P144x1_Vnuopc.ne16pg3_ne16pg3_mg17.QPC6HIST.cheyenne_intel.cam-outfrq3s_ttrac_usecase (Overall: DIFF)
+ ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq3s_cosp (Overall: DIFF)
+ ERP_D_Ln9_Vmct.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_D_Ln9_Vmct.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_D_Ln9_Vnuopc.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ld3_Vmct.f09_f09_mg17.HIST_CAM60%WCTS_CLM50%SP_CICE5%PRES_DOCN%DOM_MOSART_SGLC_SWAV.cheyenne_intel.cam-reduced_hist1d (Overall: DIFF)
+ ERP_Ld3_Vnuopc.f09_f09_mg17.FWHIST.cheyenne_intel.cam-reduced_hist1d (Overall: DIFF)
+ ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes (Overall: DIFF)
+ ERP_Ln9_Vmct.f09_f09_mg17.2000_CAM60_CLM50%SP_CICE5%PRES_DOCN%DOM_MOSART_SGLC_SWAV.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: DIFF)
+ ERP_Ln9_Vnuopc.f09_f09_mg17.F1850.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.f09_f09_mg17.F2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.f09_f09_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: DIFF)
+ ERP_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.f09_f09_mg17.FHIST_BDRD.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.f19_f19_mg17.FWsc1850.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.ne30_ne30_mg17.FCnudged.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 (Overall: DIFF)
+ ERS_Ln9_P288x1_Vnuopc.mpasa120_mpasa120.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa120 (Overall: DIFF)
+ ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_D_Ln9_Vmct.T42_T42.2000_CAM60%SCAM_CLM50%SP_CICE5%PRES_DOCN%DOM_SROF_SGLC_SWAV.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCts2nudged.cheyenne_intel.cam-outfrq9s_leapday (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCvbsxHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f09_f09_mg17.FSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC2000climo.cheyenne_intel.cam-outfrq3s_usecase (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s_refined_camchem (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_D_Ln9_Vnuopc.T42_T42.FSCAM.cheyenne_intel.cam-outfrq9s (Overall: DIFF)
+ SMS_Ld1_Vnuopc.f09_f09_mg17.FW2000climo.cheyenne_intel.cam-outfrq1d (Overall: DIFF)
+ SMS_Ld1_Vnuopc.ne30pg3_ne30pg3_mg17.FC2010climo.cheyenne_intel.cam-outfrq1d (Overall: DIFF)
+ SMS_Lm13_Vnuopc.f10_f10_mg37.F2000climo.cheyenne_intel.cam-outfrq1m (Overall: DIFF)
+ SMS_Ln9_Vmct.f09_f09_mg17.1850_CAM60%WCTS_CLM50%SP_CICE5%PRES_DOCN%DOM_MOSART_SGLC_SWAV.cheyenne_intel.cam-reduced_hist3s (Overall: DIFF)
+ SMS_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-nudging (Overall: DIFF)
+ SMS_Ln9_Vnuopc.f09_f09_mg17.FW1850.cheyenne_intel.cam-reduced_hist3s (Overall: DIFF)
+ SMS_Ln9_Vnuopc.f19_f19.F2000climo.cheyenne_intel.cam-silhs (Overall: DIFF)
+ SMS_Ln9_Vnuopc.f19_f19_mg17.FHIST.cheyenne_intel.cam-outfrq9s_nochem (Overall: DIFF)
+ - Expected namelist and baseline answer changes due to new CLUBB code
+
+ ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480 (Overall: DIFF)
+ - FAIL ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480 BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_058_caccopy: ERROR BFAIL baseline directory '/glade/p/cesm/amwg/cesm_baselines/cam6_3_058_caccopy/ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480' does not exist
+
+ SMS_Ld5_Vnuopc.f09_f09_mg17.PC6.cheyenne_intel.cam-cam6_port_f09 (Overall: NLFAIL)
+ - Differences due to new and changed CLUBB namelist variables
+
+Summarize any changes to answers:
+ Any compset that invokes CLUBB and/or SILHS code will see answer changes. The new parameterizations are not fully tuned and likely to degrade climate somewhat at this point.
+
===============================================================
Tag name: cam6_3_058
Originator(s): pel,duda,aherington,neale,jet
Date: 16 May 2022
One-line Summary: High priority science updates for mom6 coupled runs and bug fixes for issues #506 #530 #543 #551 #563
Github PR URLs:
- https://github.com/ESCOMP/CAM/pull/XXX
+ https://github.com/ESCOMP/CAM/pull/590
Purpose of changes (include the issue number and title text for each relevant GitHub issue):
- Noise in derived quantities in ne30pg3 configuration (https://github.com/ESCOMP/CAM/issues/551)
diff --git a/src/physics/cam/clubb_intr.F90 b/src/physics/cam/clubb_intr.F90
index fe263a70c7..7183c96696 100644
--- a/src/physics/cam/clubb_intr.F90
+++ b/src/physics/cam/clubb_intr.F90
@@ -29,12 +29,32 @@ module clubb_intr
use zm_conv_intr, only: zmconv_microp
#ifdef CLUBB_SGS
use clubb_api_module, only: pdf_parameter, implicit_coefs_terms
- use clubb_api_module, only: clubb_config_flags_type
+ use clubb_api_module, only: clubb_config_flags_type, grid, stats, nu_vertical_res_dep
+ use clubb_api_module, only: nparams
use clubb_mf, only: do_clubb_mf, do_clubb_mf_diag
use cloud_fraction, only: dp1, dp2
#endif
implicit none
+#ifdef CLUBB_SGS
+ ! Variables that contains all the statistics
+
+ type (stats), target, save :: stats_zt(pcols), & ! stats_zt grid
+ stats_zm(pcols), & ! stats_zm grid
+ stats_rad_zt(pcols), & ! stats_rad_zt grid
+ stats_rad_zm(pcols), & ! stats_rad_zm grid
+ stats_sfc(pcols) ! stats_sfc
+
+!$omp threadprivate(stats_zt, stats_zm, stats_rad_zt, stats_rad_zm, stats_sfc)
+
+ type(grid), target :: dummy_gr
+ type(nu_vertical_res_dep), private, save :: dummy_nu_vert_res_dep ! Vertical resolution dependent nu values
+ real(r8), private, save :: dummy_lmin
+
+!$omp threadprivate(dummy_gr)
+
+#endif
+
private
save
@@ -46,9 +66,10 @@ module clubb_intr
#ifdef CLUBB_SGS
! This utilizes CLUBB specific variables in its interface
stats_init_clubb, &
- init_clubb_config_flags, &
-#endif
+ stats_zt, stats_zm, stats_sfc, &
+ stats_rad_zt, stats_rad_zm, &
stats_end_timestep_clubb, &
+#endif
clubb_readnl, &
clubb_init_cnst, &
clubb_implements_cnst
@@ -63,6 +84,7 @@ module clubb_intr
#ifdef CLUBB_SGS
type(clubb_config_flags_type), public :: clubb_config_flags
+ real(r8), dimension(nparams), public :: clubb_params ! Adjustable CLUBB parameters (C1, C2 ...)
#endif
! ------------ !
@@ -73,7 +95,9 @@ module clubb_intr
grid_type = 3, & ! The 2 option specifies stretched thermodynamic levels
hydromet_dim = 0 ! The hydromet array in SAM-CLUBB is currently 0 elements
- real(r8), parameter, dimension(0) :: &
+ ! Even though sclr_dim is set to 0, the dimension here is set to 1 to prevent compiler errors
+ ! See github ticket larson-group/cam#133 for details
+ real(r8), parameter, dimension(1) :: &
sclr_tol = 1.e-8_r8 ! Total water in kg/kg
character(len=6) :: saturation_equation
@@ -99,6 +123,7 @@ module clubb_intr
rtpthlp_const = 0.01_r8 ! Constant to add to rtpthlp when moments are advected
real(r8), parameter :: unset_r8 = huge(1.0_r8)
+ integer, parameter :: unset_i = huge(1)
! Commonly used temperature for the melting temp of ice crystals [K]
real(r8), parameter :: meltpt_temp = 268.15_r8
@@ -125,10 +150,25 @@ module clubb_intr
real(r8) :: clubb_c11 = unset_r8
real(r8) :: clubb_c11b = unset_r8
real(r8) :: clubb_c14 = unset_r8
+ real(r8) :: clubb_C_wp3_pr_turb = unset_r8
+ real(r8) :: clubb_c_K1 = unset_r8
+ real(r8) :: clubb_c_K2 = unset_r8
+ real(r8) :: clubb_nu2 = unset_r8
+ real(r8) :: clubb_c_K8 = unset_r8
real(r8) :: clubb_c_K9 = unset_r8
real(r8) :: clubb_nu9 = unset_r8
real(r8) :: clubb_c_K10 = unset_r8
real(r8) :: clubb_c_K10h = unset_r8
+ real(r8) :: clubb_C_invrs_tau_bkgnd = unset_r8
+ real(r8) :: clubb_C_invrs_tau_sfc = unset_r8
+ real(r8) :: clubb_C_invrs_tau_shear = unset_r8
+ real(r8) :: clubb_C_invrs_tau_N2 = unset_r8
+ real(r8) :: clubb_C_invrs_tau_N2_wp2 = unset_r8
+ real(r8) :: clubb_C_invrs_tau_N2_xp2 = unset_r8
+ real(r8) :: clubb_C_invrs_tau_N2_wpxp = unset_r8
+ real(r8) :: clubb_C_invrs_tau_N2_clear_wp3 = unset_r8
+ real(r8) :: clubb_C_uu_shr = unset_r8
+ real(r8) :: clubb_C_uu_buoy = unset_r8
real(r8) :: clubb_gamma_coef = unset_r8
real(r8) :: clubb_gamma_coefb = unset_r8
real(r8) :: clubb_beta = unset_r8
@@ -137,31 +177,129 @@ module clubb_intr
real(r8) :: clubb_mult_coef = unset_r8
real(r8) :: clubb_Skw_denom_coef = unset_r8
real(r8) :: clubb_skw_max_mag = unset_r8
- real(r8) :: clubb_up2_vp2_factor = unset_r8
+ real(r8) :: clubb_up2_sfc_coef = unset_r8
real(r8) :: clubb_C_wp2_splat = unset_r8
real(r8) :: clubb_wpxp_L_thresh = unset_r8
real(r8) :: clubb_detliq_rad = unset_r8
real(r8) :: clubb_detice_rad = unset_r8
real(r8) :: clubb_detphase_lowtemp = unset_r8
- logical :: clubb_l_brunt_vaisala_freq_moist = .false.
- logical :: clubb_l_call_pdf_closure_twice = .false.
- logical :: clubb_l_damp_wp3_Skw_squared = .false.
- logical :: clubb_l_min_wp2_from_corr_wx = .false.
- logical :: clubb_l_min_xp2_from_corr_wx = .false.
- logical :: clubb_l_predict_upwp_vpwp = .false.
- logical :: clubb_l_rcm_supersat_adj = .false.
- logical :: clubb_l_stability_correct_tau_zm = .false.
- logical :: clubb_l_trapezoidal_rule_zt = .false.
- logical :: clubb_l_trapezoidal_rule_zm = .false.
- logical :: clubb_l_upwind_xpyp_ta = .false.
- logical :: clubb_l_use_C7_Richardson = .false.
- logical :: clubb_l_use_C11_Richardson = .false.
- logical :: clubb_l_use_cloud_cover = .false.
- logical :: clubb_l_use_thvm_in_bv_freq = .false.
- logical :: clubb_l_vert_avg_closure = .false.
- logical :: clubb_l_diag_Lscale_from_tau = .false.
- logical :: clubb_l_damp_wp2_using_em = .false.
+
+ integer :: &
+ clubb_iiPDF_type, & ! Selected option for the two-component normal
+ ! (double Gaussian) PDF type to use for the w, rt,
+ ! and theta-l (or w, chi, and eta) portion of
+ ! CLUBB's multivariate, two-component PDF.
+ clubb_ipdf_call_placement = unset_i ! Selected option for the placement of the call to
+ ! CLUBB's PDF.
+
+ logical :: &
+ clubb_l_use_precip_frac, & ! Flag to use precipitation fraction in KK microphysics. The
+ ! precipitation fraction is automatically set to 1 when this
+ ! flag is turned off.
+ clubb_l_predict_upwp_vpwp, & ! Flag to predict and along with and
+ ! alongside the advancement of