Skip to content
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
6a8a71f
roundoff merge of clubb-mf, loss of precision comes from order of ope…
jtruesdal Jun 9, 2026
a4c18bb
merge new clubbmf into cam6_4_180
jtruesdal Jun 10, 2026
e656abd
Potential fix for pull request finding
jtruesdal Jun 10, 2026
3ebb914
copilot suggested fixes
jtruesdal Jun 10, 2026
bee4e56
merge in copilot fixes
jtruesdal Jun 10, 2026
3ca97b8
Merge remote-tracking branch 'origin/clubbdev' into clubbdev
jtruesdal Jun 10, 2026
6b9ff96
added clubb_mf_cldfrac_fac and do_clubb_mf_aloft to namelist
jtruesdal Jun 10, 2026
819c4af
update prec_sh with clubb_mf
jtruesdal Jun 10, 2026
42bbb3f
put clubb_mf gate around mf additions of prec
jtruesdal Jun 10, 2026
e64cf8b
git rid of nonhydro flags
jtruesdal Jun 10, 2026
20c5b77
fix gt than roundoff error
jtruesdal Jun 16, 2026
5d62b25
fixed minor PR issues
jtruesdal Jun 30, 2026
192f90d
copilot spelling fixes
jtruesdal Jun 30, 2026
fcbaaf0
First part of Adams PR recommended changes.
jtruesdal Jul 2, 2026
87d0b66
second set of Adams PR changes.
jtruesdal Jul 6, 2026
c3b05dd
Merge remote-tracking branch 'upstream/clubbdev' into clubbdev.update
adamrher Jul 28, 2026
e3bd61a
cleaned up function arguments to integrate_mf
adamrher Jul 28, 2026
923dcbb
bug fixes needed to compile/run in debug mode
adamrher Jul 30, 2026
c1f4772
corrected upauto array to be on thermo levels -- changes are bfb
adamrher Jul 30, 2026
7845522
fix longstanding bug in initializing dnrr
adamrher Jul 30, 2026
0a1cd7e
fix awu output
adamrher Jul 30, 2026
f911cf4
remove xx_forcing variables from being flipped for clubb call
adamrher Jul 30, 2026
39958d2
fix bug added in last commit
adamrher Jul 31, 2026
981825f
mods to run clubb-mf w/ ascending + debug=T, although still not bfb w…
adamrher Aug 1, 2026
0169d49
fixed 2 bugs, recovering bfb clubb-mf for ascending/descending
adamrher Aug 2, 2026
11bdaf0
fix run time errors for top_lev>1 w/ clubb-mf. maintained bfb ascendi…
adamrher Aug 3, 2026
a2acd9e
Merge pull request #28 from adamrher/clubbdev.update
jtruesdal Aug 4, 2026
be230be
before removing flip arrays
jtruesdal Aug 6, 2026
35c3676
remove flip arrays, use array syntax
jtruesdal Aug 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 29 additions & 3 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -3685,15 +3685,41 @@ if ($clubb_sgs =~ /$TRUE/io) {
add_default($nl, 'clubb_wpxp_Ri_exp');
add_default($nl, 'clubb_z_displace');

#Turn on HB scheme where CLUBB not active
add_default($nl, 'do_hb_above_clubb');

#CLUBB+MF options
add_default($nl, 'do_clubb_mf');
add_default($nl, 'do_clubb_mf_diag');
add_default($nl, 'do_clubb_mf_rad');
add_default($nl, 'do_clubb_mf_precip');
add_default($nl, 'do_clubb_mf_addtke');
add_default($nl, 'clubb_mf_L0');
add_default($nl, 'clubb_mf_ent0');
add_default($nl, 'clubb_mf_alphturb');
add_default($nl, 'clubb_mf_Lopt');
add_default($nl, 'clubb_mf_a0');
add_default($nl, 'clubb_mf_b0');
add_default($nl, 'clubb_mf_nup');

#Turn on HB scheme where CLUBB not active
add_default($nl, 'do_hb_above_clubb');
add_default($nl, 'clubb_mf_max_L0');
add_default($nl, 'clubb_mf_fdd');
add_default($nl, 'do_clubb_mf_coldpool');
add_default($nl, 'clubb_mf_ddalph');
add_default($nl, 'clubb_mf_ddbeta');
add_default($nl, 'clubb_mf_pwfac');
add_default($nl, 'clubb_mf_ddexp');
add_default($nl, 'clubb_mf_cldfrac_fac');
add_default($nl, 'do_clubb_mf_ustar');
add_default($nl, 'do_clubb_mf_mixd');
add_default($nl, 'clubb_mf_up_ndt');
add_default($nl, 'clubb_mf_cp_ndt');
add_default($nl, 'do_clubb_mf_rhtke');
add_default($nl, 'do_clubb_mf_cmt');
add_default($nl, 'clubb_mf_kseed');
add_default($nl, 'do_clubb_mf_lscale_perplume');
add_default($nl, 'do_clubb_mf_coldpool_perplume');
add_default($nl, 'do_clubb_mf_coldpool_init');
Comment thread
jtruesdal marked this conversation as resolved.
add_default($nl, 'do_clubb_mf_aloft');
}

# Tuning for wet scavenging of modal aerosols
Expand Down
31 changes: 30 additions & 1 deletion bld/namelist_files/namelist_defaults_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2354,9 +2354,35 @@
<!-- CLUBB+MF options -->
<do_clubb_mf > .false. </do_clubb_mf>
<do_clubb_mf_diag > .false. </do_clubb_mf_diag>
<do_clubb_mf_precip > .false. </do_clubb_mf_precip>
<do_clubb_mf_rad > .false. </do_clubb_mf_rad>
<do_clubb_mf_addtke > .false. </do_clubb_mf_addtke>
<clubb_mf_L0 > 50.0 </clubb_mf_L0>
<clubb_mf_ent0 > 0.22 </clubb_mf_ent0>
<clubb_mf_ent0 > 0.22 </clubb_mf_ent0>
Comment thread
adamrher marked this conversation as resolved.
Outdated
<clubb_mf_alphturb > 0.0 </clubb_mf_alphturb>
<clubb_mf_Lopt > 0 </clubb_mf_Lopt>
<clubb_mf_a0 > 2.0 </clubb_mf_a0>
<clubb_mf_b0 > 0.5 </clubb_mf_b0>
<clubb_mf_nup > 10 </clubb_mf_nup>
<clubb_mf_max_L0 > 10.e3 </clubb_mf_max_L0>
Comment thread
adamrher marked this conversation as resolved.
Outdated
<clubb_mf_fdd > 0.0 </clubb_mf_fdd>
<do_clubb_mf_coldpool > .false. </do_clubb_mf_coldpool>
<clubb_mf_ddalph > 2.e2 </clubb_mf_ddalph>
<clubb_mf_ddbeta > 1.0 </clubb_mf_ddbeta>
<clubb_mf_pwfac > 1.0 </clubb_mf_pwfac>
<clubb_mf_ddexp > 3.0 </clubb_mf_ddexp>
<clubb_mf_cldfrac_fac > 1.0 </clubb_mf_cldfrac_fac>
<do_clubb_mf_ustar > .false. </do_clubb_mf_ustar>
<do_clubb_mf_mixd > .false. </do_clubb_mf_mixd>
<clubb_mf_up_ndt > 1 </clubb_mf_up_ndt>
<clubb_mf_cp_ndt > 1 </clubb_mf_cp_ndt>
<do_clubb_mf_rhtke > .false. </do_clubb_mf_rhtke>
<do_clubb_mf_cmt > .false. </do_clubb_mf_cmt>
<do_clubb_mf_lscale_perplume > .false. </do_clubb_mf_lscale_perplume>
<do_clubb_mf_coldpool_init > .false. </do_clubb_mf_coldpool_init>
<do_clubb_mf_coldpool_perplume > .false. </do_clubb_mf_coldpool_perplume>
<clubb_mf_kseed > 1 </clubb_mf_kseed>
<do_clubb_mf_aloft > .false. </do_clubb_mf_aloft>

<!-- Set radiation intervals based on mpas hgrids -->
<iradlw hgrid="mpasa15" > 10 </iradlw>
Expand Down Expand Up @@ -2469,6 +2495,9 @@
<cld_macmic_num_steps microphys="mg2" clubb_sgs="1" dtime="225" > 1 </cld_macmic_num_steps>
<cld_macmic_num_steps microphys="mg3" clubb_sgs="1" dtime="450" > 2 </cld_macmic_num_steps>
<cld_macmic_num_steps microphys="mg3" clubb_sgs="1" dtime="225" > 1 </cld_macmic_num_steps>
<!-- ARH - SCAM time-stepping -->
Comment thread
adamrher marked this conversation as resolved.
Outdated
<cld_macmic_num_steps microphys="mg2" clubb_sgs="1" scam="1" > 6 </cld_macmic_num_steps>
<cld_macmic_num_steps microphys="mg3" clubb_sgs="1" scam="1" > 6 </cld_macmic_num_steps>

<!-- Ice nucleation -->
<nucleate_ice_subgrid >1.0D0</nucleate_ice_subgrid>
Expand Down
168 changes: 162 additions & 6 deletions bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2530,47 +2530,47 @@ Default: none
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP ISCCP data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcells longitude (t_local = t_UTC longitude * 24/360).
gridcell's longitude (t_local = t_UTC - longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_MISR" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP MISR data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcells longitude (t_local = t_UTC longitude * 24/360).
gridcell's longitude (t_local = t_UTC - longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_MODIS" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP MODIS data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcells longitude (t_local = t_UTC longitude * 24/360).
gridcell's longitude (t_local = t_UTC - longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_CSCAL" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP CloudSat-CALIPSO data. The
sampling "local time" refers to a linear shift from UTC as a function of a
gridcells longitude (t_local = t_UTC longitude * 24/360).
gridcell's longitude (t_local = t_UTC - longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_PARASOL" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP PARASOL data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcells longitude (t_local = t_UTC longitude * 24/360).
gridcell's longitude (t_local = t_UTC - longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_ATLID" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP ATLID data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcells longitude (t_local = t_UTC longitude * 24/360).
gridcell's longitude (t_local = t_UTC - longitude * 24/360).
Default: none
</entry>

Expand Down Expand Up @@ -4617,26 +4617,182 @@ If .true. add detailed budget terms to output by default. Note that do_clubb_mf
Default: .false.
</entry>

<entry id="do_clubb_mf_precip" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. turn on Suselj et al 2019 microphysics.
Default: .false.
</entry>

<entry id="do_clubb_mf_rad" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. couple MF plumes to radiation
Default: .false.
</entry>

<entry id="do_clubb_mf_addtke" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. add MF contribution to TKE pbuf variable
Default: .false.
</entry>

<entry id="clubb_mf_L0" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Entrainment length scale in meters for individual plumes. Not used if
do_clubb_mf=FALSE.
Default: 50.0
</entry>

<entry id="clubb_mf_Lopt" type="integer" category="conv"
group="clubb_mf_nl" valid_values="" >
Integer: dynamic entrainment length scale option
Default: 0
</entry>

<entry id="clubb_mf_a0" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: linear coefficient relating ztop/cape to entrainment length scale
Default: 2.0
</entry>

<entry id="clubb_mf_b0" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: exponential coefficient relating ztop/cape to entrainment length scale
Default: 0.5
</entry>
Comment thread
jtruesdal marked this conversation as resolved.

<entry id="clubb_mf_ent0" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Entrainment efficiency for individual plumes. Not used if
do_clubb_mf=FALSE.
Default: 0.22
Comment thread
adamrher marked this conversation as resolved.
Outdated
</entry>

<entry id="clubb_mf_alphturb" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Weighting factor for CLUBB TKE on plume entrainment
Default: 0.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="clubb_mf_nup" type="integer" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: number of plumes in mass flux ensemble
Default: 10
</entry>

<entry id="clubb_mf_max_L0" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: limiter on entrainmnet length scale + threshold to disable TKE enhanced entrainmnet
Default: 10.e3
Comment thread
adamrher marked this conversation as resolved.
Outdated
</entry>
Comment thread
jtruesdal marked this conversation as resolved.

<entry id="clubb_mf_fdd" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Fraction of autoconversion partitioned to downdrafts (zero means no downdrafts)
Default: 0.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="do_clubb_mf_coldpool" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. turn on cold pool feedback parameterizations
Default: .false.
</entry>

<entry id="clubb_mf_ddalph" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Linear enhancement factor to the downdrafts used for the cold pool calculations
Default: 200.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="clubb_mf_ddbeta" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Exponent enhancement factor to the downdrafts used for the cold pool calculations
Default: 1.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="clubb_mf_pwfac" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Enhancement factor for the near surface pressure drag term in downdraft equation
Default: 1.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="clubb_mf_ddexp" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Elevation power law exponent for downdrafts velocities in the subcloud layer
Default: 3.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="clubb_mf_cldfrac_fac" type="real" category="conv"
group="clubb_mf_nl" valid_values="" >
Factor to increase the ensemble MF plume cloud fractions
Default: 1.0
</entry>

Comment thread
jtruesdal marked this conversation as resolved.
<entry id="do_clubb_mf_ustar" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. use ustar for initializing the plume ensemble
Default: .false.
</entry>

<entry id="do_clubb_mf_mixd" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. use clubbmf mixing depth in place of the PBLH pbuf var
Default: .false.
</entry>

<entry id="clubb_mf_up_ndt" type="integer" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: number of time-steps for running average of the convective height scale
Default: 1
</entry>

<entry id="clubb_mf_cp_ndt" type="integer" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: number of time-steps for running average of cold pool effects
Default: 1
</entry>

<entry id="do_clubb_mf_rhtke" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. use relative humidity thresholds to turn off TKE enhanced entrainment
Default: .false.
</entry>

<entry id="do_clubb_mf_cmt" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. turn on convective momentum transport
Default: .false.
</entry>

<entry id="do_clubb_mf_lscale_perplume" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. set unique entrainment length scale for each plume member
Default: .false.
</entry>

<entry id="do_clubb_mf_coldpool_init" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. let cold pool feedback impact plume initialization
Default: .false.
</entry>
Comment thread
jtruesdal marked this conversation as resolved.

<entry id="do_clubb_mf_coldpool_perplume" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. set cold pool feedback to unique to each plume member
Default: .false.
</entry>

<entry id="clubb_mf_kseed" type="integer" category="conv"
group="clubb_mf_nl" valid_values="" >
Real: level position of state used to seed the random number generator
Default: 1
</entry>

<entry id="do_clubb_mf_aloft" type="logical" category="conv"
group="clubb_mf_nl" valid_values="" >
If .true. turn on elevated convective initialization
Default: .false.
</entry>
Comment thread
jtruesdal marked this conversation as resolved.

<!-- CARMA Sectional Microphysics -->

<entry id="carma_model" type="char*32" category="carma"
Expand Down
Loading