diff --git a/components/eamxx/cime_config/namelist_defaults_scream.xml b/components/eamxx/cime_config/namelist_defaults_scream.xml
index 5344f04618d..d60646e423a 100644
--- a/components/eamxx/cime_config/namelist_defaults_scream.xml
+++ b/components/eamxx/cime_config/namelist_defaults_scream.xml
@@ -205,6 +205,7 @@ be lost if SCREAM_HACK_XML is not enabled.
1350.0
2.47
1.79
+ 25.0e-6
67.0
1.15
1.15
diff --git a/components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp b/components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp
index e25922df3a1..49b196286d3 100644
--- a/components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp
+++ b/components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp
@@ -224,6 +224,7 @@ void P3Microphysics::initialize_impl (const RunType /* run_type */)
runtime_options.p3_autoconversion_prefactor = m_params.get("p3_autoconversion_prefactor", 1350.0);
runtime_options.p3_autoconversion_qc_exponent = m_params.get("p3_autoconversion_qc_exponent", 2.47);
runtime_options.p3_autoconversion_nc_exponent = m_params.get("p3_autoconversion_nc_exponent", 1.79);
+ runtime_options.p3_autoconversion_radius = m_params.get("p3_autoconversion_radius", 25.0e-6);
runtime_options.p3_accretion_prefactor = m_params.get("p3_accretion_prefactor", 67.0);
runtime_options.p3_accretion_qc_exponent = m_params.get("p3_accretion_qc_exponent", 1.15);
runtime_options.p3_accretion_qr_exponent = m_params.get("p3_accretion_qr_exponent", 1.15);
diff --git a/components/eamxx/src/physics/p3/impl/p3_autoconversion_impl.hpp b/components/eamxx/src/physics/p3/impl/p3_autoconversion_impl.hpp
index 76cfbf4e439..b52913ba7c9 100644
--- a/components/eamxx/src/physics/p3/impl/p3_autoconversion_impl.hpp
+++ b/components/eamxx/src/physics/p3/impl/p3_autoconversion_impl.hpp
@@ -19,11 +19,19 @@ ::cloud_water_autoconversion(
// Khroutdinov and Kogan (2000)
const auto qc_not_small = qc_incld >= 1e-8 && context;
- constexpr Scalar CONS3 = C::CONS3;
const Scalar p3_autoconversion_prefactor = runtime_options.p3_autoconversion_prefactor;
const Scalar p3_autoconversion_qc_exponent = runtime_options.p3_autoconversion_qc_exponent;
const Scalar p3_autoconversion_nc_exponent = runtime_options.p3_autoconversion_nc_exponent;
+ const Scalar p3_autoconversion_radius = runtime_options.p3_autoconversion_radius;
+
+ // TODO: remove this conditional (and keep CONS3 defined as in else) once BFB reqs are satisfied
+ Scalar CONS3;
+ if(p3_autoconversion_radius == 25.0e-6) {
+ CONS3 = C::CONS3;
+ } else {
+ CONS3 = sp(1.0) / (C::CONS2 * pow(p3_autoconversion_radius, sp(3.0)));
+ }
if(qc_not_small.any()) {
Spack sgs_var_coef;
diff --git a/components/eamxx/src/physics/p3/p3_functions.hpp b/components/eamxx/src/physics/p3/p3_functions.hpp
index fc362717b17..d15100e3f56 100644
--- a/components/eamxx/src/physics/p3/p3_functions.hpp
+++ b/components/eamxx/src/physics/p3/p3_functions.hpp
@@ -113,6 +113,7 @@ struct Functions
Scalar p3_autoconversion_prefactor = 1350.0;
Scalar p3_autoconversion_qc_exponent = 2.47;
Scalar p3_autoconversion_nc_exponent = 1.79;
+ Scalar p3_autoconversion_radius = 25.0e-6;
Scalar p3_accretion_prefactor = 67.0;
Scalar p3_accretion_qc_exponent = 1.15;
Scalar p3_accretion_qr_exponent = 1.15;