diff --git a/components/eamxx/cime_config/namelist_defaults_scream.xml b/components/eamxx/cime_config/namelist_defaults_scream.xml index 1aafbe2af54..5344f04618d 100644 --- a/components/eamxx/cime_config/namelist_defaults_scream.xml +++ b/components/eamxx/cime_config/namelist_defaults_scream.xml @@ -208,6 +208,7 @@ be lost if SCREAM_HACK_XML is not enabled. 67.0 1.15 1.15 + 5.78 1.0 1.0 0.5 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 71c28dbb0bd..e25922df3a1 100644 --- a/components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp +++ b/components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp @@ -227,6 +227,7 @@ void P3Microphysics::initialize_impl (const RunType /* run_type */) 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); + runtime_options.p3_rain_selfcollection_prefactor = m_params.get("p3_rain_selfcollection_prefactor", 5.78); runtime_options.p3_mu_r_constant = m_params.get("p3_mu_r_constant", 1.0); runtime_options.p3_spa_to_nc = m_params.get("p3_spa_to_nc", 1.0); runtime_options.p3_eci = m_params.get("p3_eci", 0.5); diff --git a/components/eamxx/src/physics/p3/impl/p3_rain_self_collection_impl.hpp b/components/eamxx/src/physics/p3/impl/p3_rain_self_collection_impl.hpp index 079845c7f1b..0d53e83ff16 100644 --- a/components/eamxx/src/physics/p3/impl/p3_rain_self_collection_impl.hpp +++ b/components/eamxx/src/physics/p3/impl/p3_rain_self_collection_impl.hpp @@ -23,6 +23,7 @@ ::rain_self_collection( constexpr Scalar pi = C::Pi; const Scalar p3_d_breakup_cutoff = runtime_options.p3_d_breakup_cutoff; + const Scalar p3_rain_selfcollection_prefactor = runtime_options.p3_rain_selfcollection_prefactor; const auto qr_incld_not_small = qr_incld >= qsmall && context; @@ -38,7 +39,9 @@ ::rain_self_collection( dum.set(dum2_gt_dum1, 2 - exp(2300 * (dum2-p3_d_breakup_cutoff))); } - nr_selfcollect_tend.set(qr_incld_not_small, dum*sp(5.78)*nr_incld*qr_incld*rho); + nr_selfcollect_tend.set( + qr_incld_not_small, + dum * sp(p3_rain_selfcollection_prefactor) * nr_incld * qr_incld * rho); } } diff --git a/components/eamxx/src/physics/p3/p3_functions.hpp b/components/eamxx/src/physics/p3/p3_functions.hpp index bfa4737cbce..fc362717b17 100644 --- a/components/eamxx/src/physics/p3/p3_functions.hpp +++ b/components/eamxx/src/physics/p3/p3_functions.hpp @@ -116,6 +116,7 @@ struct Functions Scalar p3_accretion_prefactor = 67.0; Scalar p3_accretion_qc_exponent = 1.15; Scalar p3_accretion_qr_exponent = 1.15; + Scalar p3_rain_selfcollection_prefactor = 5.78; Scalar p3_mu_r_constant = 1.0; Scalar p3_spa_to_nc = 1.0; Scalar p3_eci = 0.5;