Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a369161
CLUBB and ZM PPE namelist parameters
Katetc Nov 17, 2020
bff0ad1
added namelist for mg3 in cam
trudeeidhammer Jan 12, 2021
d36887f
Support for MG3 namelist changes
Katetc Feb 18, 2021
6d87152
Merge branch 'cam_dev_ppe' of https://github.com/PUMASDevelopment/CAM…
Katetc Feb 18, 2021
2ba0055
Merge remote-tracking branch 'origin/cam_development' into cam_dev_ppe
Katetc Feb 18, 2021
8ab8633
Merge up to optimization_pr_pt2
Katetc Feb 18, 2021
9bf2c66
Bug fixes to get things working
Katetc Feb 22, 2021
d38c23a
added namelist for aerosol runs
trudeeidhammer May 25, 2021
1cf49c9
added microp_aero_wsub_ namelist parameters
trudeeidhammer Jul 1, 2021
d94f9f3
added C6thl and C6thlb to namelist
trudeeidhammer Jul 5, 2021
0f384d9
Merge up to cam6_3_025
Katetc Jul 6, 2021
3f2bd43
Added newly made pumas tag v1.17
Katetc Jul 7, 2021
748387e
Addressed review comments on namelist param documentation and changes…
Katetc Jul 7, 2021
90f4357
Moved meltpt parameter to the top of the module rather than within ra…
Katetc Jul 7, 2021
6e1a11f
Fixed typo in cloud_fraction and addressed review comments in clubb_i…
Katetc Jul 9, 2021
8a3558d
A bit more cleanup
Katetc Jul 11, 2021
de057d5
Add check for NaNs so npccn_scale doesnot crash FXHIST test
Katetc Jul 12, 2021
25f4a06
Change mpi calls in microp_aero, remove parameter initialization in z…
Katetc Jul 12, 2021
ad6e666
Fixed problem with NaNs in npccn
Katetc Jul 13, 2021
66dafdd
More review suggestions
Katetc Jul 14, 2021
a3159d8
Found a couple extra answer changing changes to change. First draft C…
Katetc Jul 16, 2021
61dc01d
Update Changelog, fixed documentation for micro_mg_max_nicons
Katetc Jul 16, 2021
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
17 changes: 17 additions & 0 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -2881,11 +2881,28 @@ if ($cfg->get('microphys') =~ /^mg/) {
add_default($nl, 'micro_mg_do_graupel');
add_default($nl, 'graupel_in_rad');
add_default($nl, 'micro_do_massless_droplet_destroyer');
add_default($nl, 'micro_mg_accre_enhan_fact');
add_default($nl, 'micro_mg_autocon_fact');
add_default($nl, 'micro_mg_autocon_nd_exp');
add_default($nl, 'micro_mg_autocon_lwp_exp');
add_default($nl, 'micro_mg_homog_size');
add_default($nl, 'micro_mg_vtrmi_factor');
add_default($nl, 'micro_mg_effi_factor');
add_default($nl, 'micro_mg_iaccr_factor');
add_default($nl, 'micro_mg_max_nicons');

# For CESM2, the decision was made to set micro_do_sb_physics to false
add_default($nl, 'micro_do_sb_physics', 'val'=>'.false.');
}

# Aerosol Namelist options
add_default($nl, 'microp_aero_bulk_scale');
add_default($nl, 'microp_aero_npccn_scale');
add_default($nl, 'microp_aero_wsub_scale');
add_default($nl, 'microp_aero_wsubi_scale');
add_default($nl, 'microp_aero_wsub_min');
add_default($nl, 'microp_aero_wsubi_min');

# Ice nucleation options
if (!$simple_phys) {
if ($chem =~ /_mam/) {
Expand Down
54 changes: 28 additions & 26 deletions bld/namelist_files/namelist_defaults_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1826,8 +1826,8 @@
<clubb_skw_max_mag > 4.5 </clubb_skw_max_mag>
<clubb_up2_vp2_factor > 2.0 </clubb_up2_vp2_factor>
<clubb_C_wp2_splat > 0.0 </clubb_C_wp2_splat>
<clubb_detliq_rad > 8.0e-6 </clubb_detliq_rad>
<clubb_detice_rad > 25.0e-6 </clubb_detice_rad>
<clubb_detliq_rad > 8.0D-6 </clubb_detliq_rad>
<clubb_detice_rad > 25.0D-6 </clubb_detice_rad>
<clubb_detphase_lowtemp > 238.15 </clubb_detphase_lowtemp>

<clubb_l_brunt_vaisala_freq_moist > .false. </clubb_l_brunt_vaisala_freq_moist>
Expand Down Expand Up @@ -1941,46 +1941,48 @@
<micro_mg_precip_frac_method > max_overlap </micro_mg_precip_frac_method>
<micro_mg_precip_frac_method clubb_sgs="1" > in_cloud </micro_mg_precip_frac_method>

<micro_mg_berg_eff_factor > 1.0D0 </micro_mg_berg_eff_factor>
<micro_mg_berg_eff_factor microphys="mg2" > 1.0D0 </micro_mg_berg_eff_factor>
<micro_mg_berg_eff_factor > 1.D0 </micro_mg_berg_eff_factor>
<micro_mg_berg_eff_factor microphys="mg2" > 1.D0 </micro_mg_berg_eff_factor>

<micro_mg_accre_enhan_fact > 1.0D0 </micro_mg_accre_enhan_fact>
<micro_mg_accre_enhan_fact microphys="mg2" > 1.0D0 </micro_mg_accre_enhan_fact>
<micro_mg_accre_enhan_fact > 1.D0 </micro_mg_accre_enhan_fact>
<micro_mg_accre_enhan_fact microphys="mg2" > 1.D0 </micro_mg_accre_enhan_fact>

<micro_mg_autocon_fact > 1.0D0 </micro_mg_autocon_fact>
<micro_mg_autocon_fact microphys="mg2" > 1.0D0 </micro_mg_autocon_fact>
<micro_mg_autocon_fact > 0.01D0 </micro_mg_autocon_fact>
<micro_mg_autocon_fact microphys="mg2" > 0.01D0 </micro_mg_autocon_fact>

<micro_mg_autocon_nd_exp > 1.0D0 </micro_mg_autocon_nd_exp>
<micro_mg_autocon_nd_exp microphys="mg2" > 1.0D0 </micro_mg_autocon_nd_exp>
<micro_mg_autocon_nd_exp > -1.1D0 </micro_mg_autocon_nd_exp>
<micro_mg_autocon_nd_exp microphys="mg2" > -1.1D0 </micro_mg_autocon_nd_exp>

<micro_mg_autocon_lwp_exp > 1.0D0 </micro_mg_autocon_lwp_exp>
<micro_mg_autocon_lwp_exp microphys="mg2" > 1.0D0 </micro_mg_autocon_lwp_exp>
<micro_mg_autocon_lwp_exp > 2.47D0 </micro_mg_autocon_lwp_exp>
<micro_mg_autocon_lwp_exp microphys="mg2" > 2.47D0 </micro_mg_autocon_lwp_exp>

<microp_aero_npccn_scale > 1.0D0 </microp_aero_npccn_scale>
<microp_aero_npccn_scale microphys="mg2" > 1.0D0 </microp_aero_npccn_scale>
<microp_aero_bulk_scale > 1.D0 </microp_aero_bulk_scale>

<microp_aero_wsub_scale > 1.0D0 </microp_aero_wsub_scale>
<microp_aero_npccn_scale > 1.D0 </microp_aero_npccn_scale>
<microp_aero_npccn_scale microphys="mg2" > 1.D0 </microp_aero_npccn_scale>

<microp_aero_wsubi_scale > 1.0D0 </microp_aero_wsubi_scale>
<microp_aero_wsub_scale > 1.D0 </microp_aero_wsub_scale>

<microp_aero_wsubi_scale > 1.D0 </microp_aero_wsubi_scale>

<microp_aero_wsub_min > 0.2D0 </microp_aero_wsub_min>

<microp_aero_wsubi_min > 0.001D0 </microp_aero_wsubi_min>

<micro_mg_homog_size > 25e-6 </micro_mg_homog_size>
<micro_mg_homog_size microphys="mg2" > 25e-6 </micro_mg_homog_size>
<micro_mg_homog_size > 25.D-6 </micro_mg_homog_size>
<micro_mg_homog_size microphys="mg2" > 25.D-6 </micro_mg_homog_size>

<micro_mg_vtrmi_factor > 1.0D0 </micro_mg_vtrmi_factor>
<micro_mg_vtrmi_factor microphys="mg2" > 1.0D0 </micro_mg_vtrmi_factor>
<micro_mg_vtrmi_factor > 1.D0 </micro_mg_vtrmi_factor>
<micro_mg_vtrmi_factor microphys="mg2" > 1.D0 </micro_mg_vtrmi_factor>

<micro_mg_effi_factor > 1.0D0 </micro_mg_effi_factor>
<micro_mg_effi_factor microphys="mg2" > 1.0D0 </micro_mg_effi_factor>
<micro_mg_effi_factor > 1.D0 </micro_mg_effi_factor>
<micro_mg_effi_factor microphys="mg2" > 1.D0 </micro_mg_effi_factor>

<micro_mg_iaccr_factor > 1.0D0 </micro_mg_iaccr_factor>
<micro_mg_iaccr_factor microphys="mg2" > 1.0D0 </micro_mg_iaccr_factor>
<micro_mg_iaccr_factor > 1.D0 </micro_mg_iaccr_factor>
<micro_mg_iaccr_factor microphys="mg2" > 1.D0 </micro_mg_iaccr_factor>

<micro_mg_max_nicons > 10000.e3_r8 </micro_mg_max_nicons>
<micro_mg_max_nicons microphys="mg2" > 10000.e3_r8 </micro_mg_max_nicons>
<micro_mg_max_nicons > 100000.D3 </micro_mg_max_nicons>
<micro_mg_max_nicons microphys="mg2" > 100000.D3 </micro_mg_max_nicons>


<cld_macmic_num_steps> 1 </cld_macmic_num_steps>
Expand Down
63 changes: 33 additions & 30 deletions bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2541,44 +2541,44 @@ Default: 1

<entry id="micro_mg_accre_enhan_fact" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Accretion enhancment factor
Unitless ratio to increase the accretion process in microphysics as a method of accounting for unrepresented subgridscale variability.
Default: 1
</entry>

<entry id="micro_mg_autocon_fact" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Autoconversion prefactor
Default: 0.001
Unitless ratio to directly scale the autoconversion process in microphysics as a method of accounting for unrepresented subgridscale variability.
Default: 0.01
</entry>

<entry id="micro_mg_autocon_nd_exp" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Autoconversion nd exponent
Unitless exponent of cloud number condensation in the KK autoconversion parameterization equation. See Khairoutdinov and Kogan, 2002.
Default: -1.1
</entry>

<entry id="micro_mg_autocon_lwp_exp" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Autoconversion lwp exponent
Unitless exponent of liquid water path in the KK autoconversion parameterization equation. See Khairoutdinov and Kogan, 2002.
Default: 2.47
</entry>

<entry id="micro_mg_homog_size" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Size of droplets feezing homogeneously
Default: 1
Mean volume radius of droplets used in the process of homogeneously freezing below -40C in (m). Default value is currently the previously assumed 25 microns.
Default: 25.e-6 m
</entry>

<entry id="micro_mg_vtrmi_factor" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Ice fall speed factor
Default: 1
Unitless scaling factor for ice fall speed to account for sub-grid scale ice crystal shape variability.
Default: 1.0
</entry>

<entry id="micro_mg_effi_factor" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Ice effective radius factor
Default: 25.e-6
Unitless scaling factor for ice effective radius as seen by radiation. This scaling factor adjusts for sub-grid scale ice crystal shape variability.
Default: 1.0
</entry>

<entry id="micro_mg_iaccr_factor" type="real" category="microphys"
Expand All @@ -2590,7 +2590,7 @@ Default: 1
<entry id="micro_mg_max_nicons" type="real" category="microphys"
group="micro_mg_nl" valid_values="" >
Maximum allowed ice number concentration
Default: 1000000.e3
Default: 1.0e9
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess as an example of "we shouldn't have defaults listed in two different places", should this say 1.0e8 instead?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is inconsistent with what is in namelist_defaults.xml
Which is correct?

</entry>

<entry id="micro_do_sb_physics" type="logical" category="microphys"
Expand Down Expand Up @@ -2740,31 +2740,31 @@ Default: 2

<entry id="microp_aero_npccn_scale" type="real" category="microphys"
group="microp_aero_nl" valid_values="" >
ccn activated number scale factor
Default: 1
Unitless scaling factor for the activated number concentration of cloud condensation nuclei.
Default: 1.0
</entry>

<entry id="microp_aero_wsub_scale" type="real" category="microphys"
group="microp_aero_nl" valid_values="" >
Scaling factor for subgrid vertical velocity (liquid)
Default: 1
Unitless scaling factor for the liquid droplet subgrid scale vertical velocity during aerosol activation.
Default: 1.0
</entry>

<entry id="microp_aero_wsubi_scale" type="real" category="microphys"
group="microp_aero_nl" valid_values="" >
Scaling factor for subgrid vertical velocity (ice)
Default: 1
Unitless scaling factor for ice droplet subgrid scale vertical velocity during aerosol activation.
Default: 1.0
</entry>

<entry id="microp_aero_wsub_min" type="real" category="microphys"
group="microp_aero_nl" valid_values="" >
Minimum subgrid vertical velocity (liquid) ms-1
Default: 0.2
Minimum subgrid vertical velocity for liquid droplets during aerosol activation with units of (ms-1).
Default: 0.2 ms-1
</entry>

<entry id="microp_aero_wsubi_min" type="real" category="microphys"
group="microp_aero_nl" valid_values="" >
Minimum subgrid vertical velocity (ice) ms-1
Minimum subgrid vertical velocity for ice droplets during aerosol activation with units of (ms-1).
Default: 0.001
</entry>

Expand Down Expand Up @@ -3031,20 +3031,20 @@ Default: =&gt; 1 for CAM6;

<entry id="zmconv_dmpdz" type="real" category="conv"
group="zmconv_nl" valid_values="" >
Tunable entrainment rate in ZM deep convection scheme.
Default: set by build-namelist
Tunable entrainment rate in ZM deep convection scheme in units of (1/m).
Default: -1.0e-3 1/m
</entry>

<entry id="zmconv_tiedke_add" type="real" category="conv"
group="zmconv_nl" valid_values="" >
Tunable parcel temperature perturbation in ZM deep convection scheme.
Default: set by build-namelist
Tunable parcel temperature perturbation in ZM deep convection scheme in units of (K).
Default: 0.5K perturbation
</entry>

<entry id="zmconv_capelmt" type="real" category="conv"
group="zmconv_nl" valid_values="" >
Tunable triggering threshold for convection in ZM deep scheme.
Default: set by build-namelist
Tunable triggering threshold for convection in ZM deep scheme in units of (J/kg).
Default: 70.0 J/kg
</entry>

<!-- Cloud sedimentation -->
Expand Down Expand Up @@ -3667,18 +3667,21 @@ Coefficient for gustiness near ground.

<entry id="clubb_detliq_rad" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
Radius of detrained liquid drops as they are used in the CLUBB parameterization.
Radius of detrained liquid drops as they are used in the CLUBB parameterization in units of (m).
Default: 8.0e-6 m
</entry>

<entry id="clubb_detice_rad" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
Radius of detrained ice drops as they are used in the CLUBB parameterization.
Radius of detrained ice drops as they are used in the CLUBB parameterization in units of (m).
Default: 25.0e-6 m
</entry>

<entry id="clubb_detphase_lowtemp" type="real" category="pblrad"
group="clubb_params_nl" valid_values="" >
Temperature at which detrained water is classified as entirely ice (no liquid)
in the CLUBB parameterization.
in the CLUBB parameterization in units of (K).
Default: 238.15 K
</entry>

<!-- CLUBB logical parameters -->
Expand Down
2 changes: 1 addition & 1 deletion cime_config/usermods_dirs/scam_twp06/user_nl_cam
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ scm_relax_linear = .true.
scm_relax_tau_bot_sec = 864000.
scm_relax_tau_top_sec = 172800.
iradlw = 1
iradsw = 1
iradsw = 1
4 changes: 3 additions & 1 deletion src/physics/cam/cloud_fraction.F90
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ module cloud_fraction
cldfrc_init, &! Inititialization of cloud_fraction run-time parameters
cldfrc_getparams, &! public access of tuning parameters
cldfrc, &! Computation of cloud fraction
cldfrc_fice ! Calculate fraction of condensate in ice phase (radiation partitioning)
cldfrc_fice, &! Calculate fraction of condensate in ice phase (radiation partitioning)
dp1, &! parameter for deep convection cloud fraction needed in clubb_intr
dp2 ! parameter for deep convection cloud fraction needed in clubb_intr

! Private data
real(r8), parameter :: unset_r8 = huge(1.0_r8)
Expand Down
14 changes: 9 additions & 5 deletions src/physics/cam/clubb_intr.F90
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ module clubb_intr
use clubb_api_module, only: pdf_parameter, implicit_coefs_terms
use clubb_api_module, only: clubb_config_flags_type
use clubb_mf, only: do_clubb_mf, do_clubb_mf_diag
use cloud_fraction, only: dp1, dp2
#endif

implicit none
Expand Down Expand Up @@ -98,6 +99,9 @@ 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)

! Commonly used temperature for the melting temp of ice crystals [K]
real(r8), parameter :: meltpt_temp = 268.15_r8

real(r8) :: clubb_timestep = unset_r8 ! Default CLUBB timestep, unless overwriten by namelist
real(r8) :: clubb_rnevap_effic = unset_r8
Expand Down Expand Up @@ -785,7 +789,7 @@ subroutine clubb_readnl(nlfile)
if(clubb_detliq_rad == unset_r8) call endrun(sub//": FATAL: clubb_detliq_rad not set")
if(clubb_detice_rad == unset_r8) call endrun(sub//": FATAL: clubb_detice_rad not set")
if(clubb_detphase_lowtemp == unset_r8) call endrun(sub//": FATAL: clubb_detphase_lowtemp not set")
if(clubb_detphase_lowtemp >= 268.15_r8) &
if(clubb_detphase_lowtemp >= meltpt_temp) &
call endrun(sub//": ERROR: clubb_detphase_lowtemp must be less than 268.15 K")

#endif
Expand Down Expand Up @@ -3122,12 +3126,12 @@ subroutine clubb_tend_cam( &

do k=1,pver
do i=1,ncol
if( state1%t(i,k) > 268.15_r8 ) then
if( state1%t(i,k) > meltpt_temp ) then
dum1 = 0.0_r8
elseif ( state1%t(i,k) < dt_low ) then
dum1 = 1.0_r8
else
dum1 = ( 268.15_r8 - state1%t(i,k) ) / ( 268.15_r8 - dt_low )
dum1 = ( meltpt_temp - state1%t(i,k) ) / ( meltpt_temp - dt_low )
endif

if (zmconv_microp) then
Expand All @@ -3150,7 +3154,7 @@ subroutine clubb_tend_cam( &
ptend_loc%q(i,k,ixnumice) = 3._r8 * ( max(0._r8, ( dlf(i,k) - dlf2(i,k) )) * dum1 ) &
/ (4._r8*3.14_r8*di_rad**3*500._r8) + & ! Deep Convection
3._r8 * ( dlf2(i,k) * dum1 ) &
/ (4._r8*3.14_r8*50.e-6**3*500._r8) ! Shallow Convection
/ (4._r8*3.14_r8*50.e-6_r8**3*500._r8) ! Shallow Convection
ptend_loc%s(i,k) = dlf(i,k) * dum1 * latice

dlf_liq_out(i,k) = dlf(i,k) * ( 1._r8 - dum1 )
Expand Down Expand Up @@ -3285,7 +3289,7 @@ subroutine clubb_tend_cam( &
! deep convective mass flux, read in from pbuf. Since shallow convection is never
! called, the shallow convective mass flux will ALWAYS be zero, ensuring that this cloud
! fraction is purely from deep convection scheme.
deepcu(i,k) = max(0.0_r8,min(0.1_r8*log(1.0_r8+500.0_r8*(cmfmc(i,k+1)-cmfmc_sh(i,k+1))),0.6_r8))
deepcu(i,k) = max(0.0_r8,min(dp1*log(1.0_r8+dp2*(cmfmc(i,k+1)-cmfmc_sh(i,k+1))),0.6_r8))
shalcu(i,k) = 0._r8

if (deepcu(i,k) <= frac_limit .or. dp_icwmr(i,k) < ic_limit) then
Expand Down
Loading