1 #ifndef ERF_STORM_DIAGNOSTICS_H_
2 #define ERF_STORM_DIAGNOSTICS_H_
15 int in0r,
int in0s,
int in0g,
int iliqskin)
17 using namespace amrex;
20 qra = std::max(qra,
Real(0.0));
21 qsn = std::max(qsn,
Real(0.0));
22 qgr = std::max(qgr,
Real(0.0));
54 * std::pow(rho_s / rhowat,
two) *
alpha;
56 * std::pow(rho_g / rhowat,
two) *
alpha;
63 if (iliqskin == 1 && tmk > celkel) {
64 factorb_s = factor_s /
alpha;
65 factorb_g = factor_g /
alpha;
74 sonv = std::min(
Real(2.0e8),
Real(2.0e6) * std::exp(-
Real(0.12) * temp_c));
80 gonv =
Real(2.38) * std::pow(
pi * rho_g / (rho_air * qgr),
Real(0.92));
81 gonv = std::max(
Real(1.e4), std::min(gonv, gon));
89 ronv = ron_const1r * std::tanh((ron_qr0 - qra) / ron_delqr0) + ron_const2r;
96 amrex::Real z_e = factor_r * std::pow(rho_air * qra,
Real(1.75)) / std::pow(ronv,
Real(0.75))
97 + factorb_s * std::pow(rho_air * qsn,
Real(1.75)) / std::pow(sonv,
Real(0.75))
98 + factorb_g * std::pow(rho_air * qgr,
Real(1.75)) / std::pow(gonv,
Real(0.75));
101 z_e = std::max(z_e,
Real(0.01));
106 return Real(10.0) * std::log10(z_e);
constexpr amrex::Real two
Definition: ERF_NumericalConstants.H:38
constexpr amrex::Real one
Definition: ERF_NumericalConstants.H:37
constexpr amrex::Real fourth
Definition: ERF_NumericalConstants.H:42
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real compute_max_reflectivity_dbz(amrex::Real rho_air, amrex::Real tmk, amrex::Real qra, amrex::Real qsn, amrex::Real qgr, int in0r, int in0s, int in0g, int iliqskin)
Definition: ERF_StormDiagnostics.H:13
@ alpha
Definition: ERF_SLM.H:151
Definition: ERF_ConsoleIO.cpp:17
real(c_double), parameter, private pi
Definition: ERF_module_mp_morr_two_moment.F90:100