Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/cam_development' into feature/…
Browse files Browse the repository at this point in the history
…geoschem_14.3

# Conflicts:
#	Externals.cfg
#	bld/configure
#	doc/ChangeLog
  • Loading branch information
lizziel committed Apr 23, 2024
2 parents 4cf5083 + 776400d commit 07d88b3
Show file tree
Hide file tree
Showing 46 changed files with 1,463 additions and 12,294 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ src/physics/pumas
src/physics/pumas-frozen
src/physics/rrtmgp/data
src/physics/rrtmgp/ext
src/dynamics/fv3/atmos_cubed_sphere
src/dynamics/fv3
libraries/FMS
libraries/mct
libraries/parallelio
Expand Down
7 changes: 3 additions & 4 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ externals = Externals.cfg
required = True

[cmeps]
tag = cmeps0.14.49
tag = cmeps0.14.59
protocol = git
repo_url = https://github.com/ESCOMP/CMEPS.git
local_path = components/cmeps
required = True

[cdeps]
tag = cdeps1.0.26
tag = cdeps1.0.31
protocol = git
repo_url = https://github.com/ESCOMP/CDEPS.git
local_path = components/cdeps
Expand Down Expand Up @@ -87,8 +87,7 @@ externals = Externals_CLM.cfg
required = True

[fms]
# Older tag than CESM as there is a compilation error mismatch
tag = fi_20211011
tag = fi_230818
protocol = git
repo_url = https://github.com/ESCOMP/FMS_interface
local_path = libraries/FMS
Expand Down
13 changes: 7 additions & 6 deletions 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 All @@ -50,17 +50,18 @@ tag = ALI_ARMS_v1.0.1
required = True

[atmos_phys]
tag = atmos_phys0_02_000
tag = atmos_phys0_02_006
protocol = git
repo_url = https://github.com/ESCOMP/atmospheric_physics
required = True
local_path = src/atmos_phys

[atmos_cubed_sphere]
tag = fv3_cesm.04
[fv3]
tag = fv3int_022824
protocol = git
repo_url = https://github.com/ESCOMP/FV3_CESM.git
local_path = src/dynamics/fv3/atmos_cubed_sphere
repo_url = https://github.com/ESCOMP/CAM_FV3_interface.git
local_path = src/dynamics/fv3
externals = Externals_FV3.cfg
required = True

[mpas]
Expand Down
3 changes: 3 additions & 0 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -3448,6 +3448,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 @@ -3512,6 +3513,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
7 changes: 4 additions & 3 deletions bld/configure
Original file line number Diff line number Diff line change
Expand Up @@ -2101,6 +2101,7 @@ sub write_fv3core_filepath
my $camsrcdir = $cfg_ref->get('cam_dir');
my $CASEROOT = "$ENV{'CASEROOT'}";
print $fh "$CASEROOT/SourceMods/src.cam\n";
print $fh "$camsrcdir/src/dynamics/fv3/src_override\n";
print $fh "$camsrcdir/src/dynamics/fv3/microphys\n";
print $fh "$camsrcdir/src/dynamics/fv3/atmos_cubed_sphere/model\n";
print $fh "$camsrcdir/src/dynamics/fv3/atmos_cubed_sphere/tools\n";
Expand Down Expand Up @@ -2168,7 +2169,7 @@ sub write_filepath

# Weak scaling fix. This has to come before physics/cam and before dycores
# It also has to come before utils (which is already near the end).
if ($dyn eq 'se' or $dyn eq 'mpas') {
if ($dyn eq 'se' or $dyn eq 'mpas' or $dyn eq 'fv3') {
print $fh "$camsrcdir/src/infrastructure\n";
}

Expand All @@ -2195,7 +2196,7 @@ sub write_filepath
}

# GEOS-Chem must be prior to Mozart
if ($chem_pkg =~ 'geoschem') {
if ($chem_pkg =~ 'geoschem') {
print $fh "$chem_src_dir/geoschem_src/GeosCore\n";
print $fh "$chem_src_dir/geoschem_src/GeosUtil\n";
print $fh "$chem_src_dir/geoschem_src/Headers\n";
Expand Down Expand Up @@ -2307,7 +2308,7 @@ sub write_filepath
print $fh "$camsrcdir/src/physics/cam\n";

#Add the CCPP'ized subdirectories
print $fh "$camsrcdir/src/atmos_phys/zm\n";
print $fh "$camsrcdir/src/atmos_phys/zhang_mcfarlane\n";

# Dynamics package and test utilities
print $fh "$camsrcdir/src/dynamics/$dyn\n";
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
Loading

0 comments on commit 07d88b3

Please sign in to comment.