Skip to content

Commit

Permalink
Merge pull request #960 from Katetc/Kate/new_clubb_112923
Browse files Browse the repository at this point in the history
cam6_3_155:  Update CLUBB and SILHS externals
New code with some adjustments for the TAUs tuning options.

Could be a place to address or discuss #953

Possibly another UWM CLUBB branch tag coming in the next week or so, but no changes to CAM code will be required for that, so we should be able to start the code reviews now. This does change answers for all CAM6 and cam_dev compsets. I made a 1 year comparison run against cam6_3_145 to see the impact of the new external and it seems low:
Diagnostics Here

@bstephens82 would be good to keep abreast here.

Closes #956
Closes #971
Closes #953
  • Loading branch information
Katetc authored Apr 12, 2024
2 parents fdc6ea9 + d2662b4 commit f942c96
Show file tree
Hide file tree
Showing 11 changed files with 849 additions and 509 deletions.
2 changes: 1 addition & 1 deletion Externals_CAM.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ local_path = src/physics/clubb
protocol = git
repo_url = https://github.com/larson-group/clubb_release
sparse = ../.clubb_sparse_checkout
tag = clubb_4ncar_20221129_59cb19f_20230330_branchtag
tag = clubb_4ncar_20231115_5406350
required = True

[pumas]
Expand Down
3 changes: 3 additions & 0 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -3446,6 +3446,7 @@ if ($clubb_sgs =~ /$TRUE/io) {
add_default($nl, 'clubb_gamma_coefb');
}

add_default($nl, 'clubb_bv_efold');
add_default($nl, 'clubb_C7');
add_default($nl, 'clubb_C7b');
add_default($nl, 'clubb_c_K1');
Expand Down Expand Up @@ -3510,6 +3511,8 @@ if ($clubb_sgs =~ /$TRUE/io) {
add_default($nl, 'clubb_tridiag_solve_method');
add_default($nl, 'clubb_up2_sfc_coef');
add_default($nl, 'clubb_wpxp_L_thresh');
add_default($nl, 'clubb_wpxp_Ri_exp');
add_default($nl, 'clubb_z_displace');

#CLUBB+MF options
add_default($nl, 'do_clubb_mf');
Expand Down
21 changes: 19 additions & 2 deletions bld/namelist_files/namelist_defaults_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2113,6 +2113,7 @@

<!-- CLUBB options -->
<clubb_beta > 2.4 </clubb_beta>
<clubb_bv_efold > 5.0 </clubb_bv_efold>
<clubb_c1 > 1.0 </clubb_c1>
<clubb_c1b > 1.0 </clubb_c1b>
<clubb_c11 > 0.7D0 </clubb_c11>
Expand Down Expand Up @@ -2169,13 +2170,20 @@
<clubb_lambda0_stability_coef > 0.04 </clubb_lambda0_stability_coef>
<clubb_lmin_coef > 0.1 </clubb_lmin_coef>
<clubb_l_brunt_vaisala_freq_moist > .false. </clubb_l_brunt_vaisala_freq_moist>
<clubb_l_C2_cloud_frac > .false. </clubb_l_C2_cloud_frac>
<clubb_l_calc_thlp2_rad > .true. </clubb_l_calc_thlp2_rad>
<clubb_l_calc_w_corr > .false. </clubb_l_calc_w_corr>
<clubb_l_call_pdf_closure_twice > .true. </clubb_l_call_pdf_closure_twice>
<clubb_l_const_Nc_in_cloud > .false. </clubb_l_const_Nc_in_cloud>
<clubb_l_damp_wp2_using_em > .false. </clubb_l_damp_wp2_using_em>
<clubb_l_damp_wp3_Skw_squared > .false. </clubb_l_damp_wp3_Skw_squared>
<clubb_l_diagnose_correlations > .false. </clubb_l_diagnose_correlations>
<clubb_l_diffuse_rtm_and_thlm > .false. </clubb_l_diffuse_rtm_and_thlm>
<clubb_l_do_expldiff_rtm_thlm > .false. </clubb_l_do_expldiff_rtm_thlm>
<clubb_l_do_expldiff_rtm_thlm phys="cam_dev" > .true. </clubb_l_do_expldiff_rtm_thlm>
<clubb_l_e3sm_config > .false. </clubb_l_e3sm_config>
<clubb_l_enable_relaxed_clipping > .false. </clubb_l_enable_relaxed_clipping>
<clubb_l_fix_w_chi_eta_correlations > .true. </clubb_l_fix_w_chi_eta_correlations>
<clubb_l_godunov_upwind_wpxp_ta > .false. </clubb_l_godunov_upwind_wpxp_ta>
<clubb_l_godunov_upwind_xpyp_ta > .false. </clubb_l_godunov_upwind_xpyp_ta>
<clubb_l_intr_sfc_flux_smooth > .false. </clubb_l_intr_sfc_flux_smooth>
Expand All @@ -2192,16 +2200,22 @@
<clubb_l_partial_upwind_wp3 > .false. </clubb_l_partial_upwind_wp3>
<clubb_l_predict_upwp_vpwp > .false. </clubb_l_predict_upwp_vpwp>
<clubb_l_predict_upwp_vpwp phys="cam_dev" > .true. </clubb_l_predict_upwp_vpwp>
<clubb_l_prescribed_avg_deltaz > .false. </clubb_l_prescribed_avg_deltaz>
<clubb_l_rcm_supersat_adj > .false. </clubb_l_rcm_supersat_adj>
<clubb_l_rtm_nudge > .false. </clubb_l_rtm_nudge>
<clubb_l_smooth_Heaviside_tau_wpxp > .false. </clubb_l_smooth_Heaviside_tau_wpxp>
<clubb_l_standard_term_ta > .false. </clubb_l_standard_term_ta>
<clubb_l_stability_correct_tau_zm > .true. </clubb_l_stability_correct_tau_zm>
<clubb_l_trapezoidal_rule_zm > .true. </clubb_l_trapezoidal_rule_zm>
<clubb_l_trapezoidal_rule_zt > .true. </clubb_l_trapezoidal_rule_zt>
<clubb_l_stability_correct_Kh_N2_zm > .false. </clubb_l_stability_correct_Kh_N2_zm>
<clubb_l_tke_aniso > .true. </clubb_l_tke_aniso>
<clubb_l_trapezoidal_rule_zm > .true. </clubb_l_trapezoidal_rule_zm>
<clubb_l_trapezoidal_rule_zt > .true. </clubb_l_trapezoidal_rule_zt>
<clubb_l_upwind_xm_ma > .true. </clubb_l_upwind_xm_ma>
<clubb_l_upwind_xpyp_ta > .true. </clubb_l_upwind_xpyp_ta>
<clubb_l_use_C11_Richardson > .false. </clubb_l_use_C11_Richardson>
<clubb_l_use_C7_Richardson > .false. </clubb_l_use_C7_Richardson>
<clubb_l_use_cloud_cover > .true. </clubb_l_use_cloud_cover>
<clubb_l_use_precip_frac > .true. </clubb_l_use_precip_frac>
<clubb_l_use_shear_Richardson > .false. </clubb_l_use_shear_Richardson>
<clubb_l_use_thvm_in_bv_freq > .false. </clubb_l_use_thvm_in_bv_freq>
<clubb_l_use_tke_in_wp2_wp3_K_dfsn > .false. </clubb_l_use_tke_in_wp2_wp3_K_dfsn>
Expand All @@ -2217,6 +2231,8 @@
<clubb_tridiag_solve_method > 1 </clubb_tridiag_solve_method>
<clubb_up2_sfc_coef > 2.0 </clubb_up2_sfc_coef>
<clubb_wpxp_L_thresh > 60.0 </clubb_wpxp_L_thresh>
<clubb_wpxp_Ri_exp > 0.5 </clubb_wpxp_Ri_exp>
<clubb_z_displace > 25.0 </clubb_z_displace>
<do_hb_above_clubb >.false. </do_hb_above_clubb>
<do_hb_above_clubb phys="cam_dev" >.true. </do_hb_above_clubb>
<do_hb_above_clubb phys="cam6" >.true. </do_hb_above_clubb>
Expand Down Expand Up @@ -2264,6 +2280,7 @@
<clubb_l_diag_Lscale_from_tau silhs="1" > .false. </clubb_l_diag_Lscale_from_tau>
<clubb_l_damp_wp2_using_em silhs="1" > .false. </clubb_l_damp_wp2_using_em>


<!-- CLUBB+MF options -->
<do_clubb_mf > .false. </do_clubb_mf>
<do_clubb_mf_diag > .false. </do_clubb_mf_diag>
Expand Down
102 changes: 102 additions & 0 deletions bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3771,6 +3771,11 @@ air is supersaturated with respect to ice.
Plume widths for theta_l and rt
</entry>

<entry id="clubb_bv_efold" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
E-folding parameter for mixed Brunt Vaisala Frequency
</entry>

<entry id="clubb_c1" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
Limiting value of C1 when skewness of w (vertical velocity) is small in
Expand Down Expand Up @@ -4010,6 +4015,15 @@ Gaussian PDF, and also decreases the difference between the means of w from
each Gaussian.
</entry>

<entry id="clubb_iiPDF_type" type="integer" category="pblrad"
group="clubb_params_nl" valid_values="1,2,3,4,5,6,7" >
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.
iiPDF_ADG1 = 1 (ADG1 PDF), iiPDF_ADG2 = 2 (ADG2 PDF), iiPDF_3D_Luhar = 3 (3D Luhar PDF),
iiPDF_new = 4 (new PDF), iiPDF_TSDADG = 5 (TSDADG PDF), iiPDF_LY93 = 6 (Lewellen and Yoh (1993)),
iiPDF_new_hybrid = 7 (new hybrid PDF)
</entry>

<entry id="clubb_ipdf_call_placement" type="integer" category="pblrad"
group="clubb_params_nl" valid_values="1,2,3" >
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.
Expand All @@ -4033,13 +4047,34 @@ Flag to uses an alternate equation to calculate the Brunt-Vaisala frequency.
This equation calculates an in-cloud Brunt-Vaisala frequency.
</entry>

<entry id="clubb_l_C2_cloud_frac" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use cloud fraction to adjust the value of the
turbulent dissipation coefficient, C2.
</entry>

<entry id="clubb_l_calc_thlp2_rad" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Include the contribution of radiation to thlp2
</entry>

<entry id="clubb_l_calc_w_corr" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Calculate the correlations between w and the hydrometeors
</entry>

<entry id="clubb_l_call_pdf_closure_twice" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to call CLUBB's PDF closure at both thermodynamic and momentum vertical
grid levels. When this flag is turned off, CLUBB's PDF closure is only called
on thermodynamic grid levels.
</entry>

<entry id="clubb_l_const_Nc_in_cloud" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Use a constant cloud droplet conc. within cloud
</entry>

<entry id="clubb_l_damp_wp2_using_em" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use a dissipation formula of -(2/3)*em/tau_zm, as in Bougeault (1981),
Expand All @@ -4061,6 +4096,17 @@ is turned off, Lscale is calculated first, and then dissipation time-scale tau
is calculated as tau = Lscale / sqrt(tke).
</entry>

<entry id="clubb_l_diagnose_correlations" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Diagnose correlations instead of using fixed ones
</entry>

<entry id="clubb_l_diffuse_rtm_and_thlm" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Implicit diffusion on moisture and temperature, implemented within CLUBB's
matrix equations for wprtp/rtm and wpthlp/thlm.
</entry>

<entry id="clubb_l_do_expldiff_rtm_thlm" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Explicit diffusion on temperature and moisture by CLUBB, in addition to CLUBB's
Expand All @@ -4077,6 +4123,11 @@ Flag to run CLUBB with E3SM settings.
Flag to relax clipping on wpxp in xm_wpxp_clipping_and_stats.
</entry>

<entry id="clubb_l_fix_w_chi_eta_correlations" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Use a fixed correlation for s and t Mellor(chi/eta)
</entry>

<entry id="clubb_l_godunov_upwind_wpxp_ta" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
This flag determines whether we want to use an upwind differencing approximation
Expand Down Expand Up @@ -4171,6 +4222,11 @@ horizontal winds um and vm. When this flag is turned off, upwp and vpwp are
calculated by down-gradient diffusion.
</entry>

<entry id="clubb_l_prescribed_avg_deltaz" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
used in adj_low_res_nu. If .true., avg_deltaz = deltaz
</entry>

<entry id="clubb_l_rcm_supersat_adj" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to take any remaining supersaturation after CLUBB PDF call and add it to
Expand All @@ -4180,6 +4236,11 @@ levels and the momentum grid levels and variables are interpolated between the
two grid level types.
</entry>

<entry id="clubb_l_rtm_nudge" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Turn on (true) and off (false) rtm nudging.
</entry>

<entry id="clubb_l_smooth_Heaviside_tau_wpxp" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use smooth Heaviside 'Peskin' in computation of invrs_tau.
Expand All @@ -4192,13 +4253,25 @@ Use the standard discretization for the turbulent advection terms. Setting to
advance_wp2_wp3_module.F90 and in advance_xp2_xpyp_module.F90.
</entry>

<entry id="clubb_l_stability_correct_Kh_N2_zm" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Whether or not we want CLUBB to apply a stability correction Kh_N2_zm.
</entry>

<entry id="clubb_l_stability_correct_tau_zm" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use a stability corrected version of CLUBB's time scale (tau_zm). This
creates a time scale that provides stronger damping at altitudes where
Brunt-Vaisala frequency is large.
</entry>

<entry id="clubb_l_tke_aniso" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Use anisotropic turbulent kinetic energy in the CLUBB higher order closure, i.e.
calculate TKE = 1/2 (u'^2 + v'^2 + w'^2). This improves the simulation of complex
turbulence but at a greater cost than running without.
</entry>

<entry id="clubb_l_trapezoidal_rule_zm" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag that uses the trapezoidal rule to adjust fields calculated by CLUBB's PDF
Expand All @@ -4215,6 +4288,13 @@ adjacent vertical grid level. The clubb_l_trapezoidal_rule_zt flag applies this
adjustment to PDF fields calculated on thermodynamic vertical grid levels.
</entry>

<entry id="clubb_l_upwind_xm_ma" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
This flag determines whether we want to use an upwind differencing approximation
rather than a centered differencing for turbulent or mean advection terms. It
affects rtm, thlm, sclrm, um and vm.
</entry>

<entry id="clubb_l_upwind_xpyp_ta" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use "upwind" discretization in the turbulent advection term in the
Expand All @@ -4224,6 +4304,11 @@ potential temperature). When this flag is turned off, centered discretization
is used.
</entry>

<entry id="clubb_l_uv_nudge" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Turn on (true) or off (false) uv wind speed nudging.
</entry>

<entry id="clubb_l_use_C11_Richardson" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to calculate the value of CLUBB's C11 based on Richardson number, where
Expand All @@ -4246,6 +4331,13 @@ levels influence the amount of cloudiness and amount of cloud water in a
grid box.
</entry>

<entry id="clubb_l_use_precip_frac" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use precipitation fraction in KK microphysics. The
precipitation fraction is automatically set to 1 when this
flag is turned off.
</entry>

<entry id="clubb_l_use_shear_Richardson" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to use shear in the calculation of Richardson number.
Expand Down Expand Up @@ -4331,6 +4423,16 @@ clubb_up2_sfc_coef increases the values of up2 and vp2 at the surface.
CLUBB tunable parameter - Lscale threshold: damp C6 and C7 (units: m)
</entry>

<entry id="clubb_wpxp_Ri_exp" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
Exponent for Richardson number in calculation of invrs_tau_wpxp term
</entry>

<entry id="clubb_z_displace" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
Displacement of log law profile above ground (units: m)
</entry>

<!-- for CLUBB+MF -->
<entry id="do_clubb_mf" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
Expand Down
4 changes: 2 additions & 2 deletions cime_config/testdefs/testlist_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -262,14 +262,14 @@
<option name="wallclock">00:10:00</option>
</options>
</test>
<test compset="QSC6" grid="f09_f09_mg17" name="ERP_D_Ln9" testmods="cam/outfrq9s">
<test compset="QSC6" grid="f09_f09_mg17" name="ERP_D_Ln9_P64x2" testmods="cam/outfrq9s">
<machines>
<machine name="derecho" compiler="intel" category="aux_cime_baselines"/>
<machine name="derecho" compiler="intel" category="prealpha"/>
<machine name="derecho" compiler="intel" category="aux_cam"/>
</machines>
<options>
<option name="wallclock">00:10:00</option>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test compset="QPC6" grid="ne30_ne30_mg17" name="ERP_Ln9" testmods="cam/outfrq9s">
Expand Down
Loading

0 comments on commit f942c96

Please sign in to comment.