Skip to content

Commit

Permalink
added nl parameter for radius of newly formed rain drops from autocon…
Browse files Browse the repository at this point in the history
…version
  • Loading branch information
hassanbeydoun committed Oct 4, 2024
1 parent e3b223c commit 7895945
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
1 change: 1 addition & 0 deletions components/eamxx/cime_config/namelist_defaults_scream.xml
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ be lost if SCREAM_HACK_XML is not enabled.
<p3_autoconversion_prefactor type="real" doc="P3 autoconversion_prefactor (scale factor in autoconversion)">1350.0</p3_autoconversion_prefactor>
<p3_autoconversion_qc_exp type="real" doc="P3 autoconversion qc exponent">2.47</p3_autoconversion_qc_exp>
<p3_autoconversion_nc_exp type="real" doc="P3 autoconversion nc exponent">1.79</p3_autoconversion_nc_exp>
<p3_autoconversion_radius type="real" doc="P3 autoconversion radius of new rain drops">0.000025</p3_autoconversion_radius>
<p3_accretion_qc_exp type="real" doc="P3 accretion qc exponent">1.15</p3_accretion_qc_exp>
<p3_accretion_qr_exp type="real" doc="P3 accretion qr exponent">1.15</p3_accretion_qr_exp>
<p3_mu_r_constant type="real" doc="P3 mu_r_constant (rain shape parameter in gamma drop-size distribution)">1.0</p3_mu_r_constant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@ ::cloud_water_autoconversion(

// Khroutdinov and Kogan (2000)
const auto qc_not_small = qc_incld >= 1e-8 && context;
constexpr Scalar CONS3 = C::CONS3;
// constexpr Scalar CONS3 = C::CONS3;
constexpr Scalar CONS2 = C::CONS2;

const Scalar p3_autoconversion_prefactor = p3constants.p3_autoconversion_prefactor;
const Scalar p3_autoconversion_qc_exp = p3constants.p3_autoconversion_qc_exp;
const Scalar p3_autoconversion_nc_exp = p3constants.p3_autoconversion_nc_exp;
const Scalar p3_autoconversion_radius = p3constants.p3_autoconversion_radius;


//printf(" hey inside AAAAAAAAAAAAAAAA %13.6f \n", p3_autoconversion_factor);
Expand All @@ -37,7 +39,7 @@ ::cloud_water_autoconversion(
qc2qr_autoconv_tend.set(qc_not_small,
sgs_var_coef*p3_autoconversion_prefactor*pow(qc_incld,sp(p3_autoconversion_qc_exp))*pow(nc_incld*sp(1.e-6)*rho,sp(-p3_autoconversion_nc_exp)));
// note: ncautr is change in Nr; nc2nr_autoconv_tend is change in Nc
ncautr.set(qc_not_small, qc2qr_autoconv_tend*CONS3);
ncautr.set(qc_not_small, qc2qr_autoconv_tend/(CONS2*pow(p3_autoconversion_radius,3.0)));
nc2nr_autoconv_tend.set(qc_not_small, qc2qr_autoconv_tend*nc_incld/qc_incld);
}

Expand Down
8 changes: 8 additions & 0 deletions components/eamxx/src/physics/share/physics_constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ struct P3_Constants
Scalar p3_autoconversion_prefactor = 1350.0;
Scalar p3_autoconversion_qc_exp = 2.47;
Scalar p3_autoconversion_nc_exp = 1.79;
Scalar p3_autoconversion_radius = 0.000025;
Scalar p3_accretion_qc_exp = 1.15;
Scalar p3_accretion_qr_exp = 1.15;
Scalar p3_mu_r_constant = 1.0;
Expand Down Expand Up @@ -158,6 +159,10 @@ struct P3_Constants
if(params.isParameter(nname))
p3_autoconversion_nc_exp = params.get<double>(nname);

nname = "p3_autoconversion_radius";
if(params.isParameter(nname))
p3_autoconversion_radius = params.get<double>(nname);

nname = "p3_accretion_qc_exp";
if(params.isParameter(nname))
p3_accretion_qc_exp = params.get<double>(nname);
Expand Down Expand Up @@ -228,6 +233,9 @@ struct P3_Constants
nname = "p3_autoconversion_nc_exp";
logger->info(std::string("P3 ") + nname + std::string(" = ") + std::to_string(p3_autoconversion_nc_exp));

nname = "p3_autoconversion_radius";
logger->info(std::string("P3 ") + nname + std::string(" = ") + std::to_string(p3_autoconversion_radius));

nname = "p3_accretion_qc_exp";
logger->info(std::string("P3 ") + nname + std::string(" = ") + std::to_string(p3_autoconversion_qc_exp));

Expand Down

0 comments on commit 7895945

Please sign in to comment.