Helper function to calculate saturation vapor pressure for water or ice. This corresponds to the POLYSVP function in the Fortran code (line ~5580).
320 amrex::Real del_T =
T - 273.15;
325 const amrex::Real a0i = 6.11147274;
326 const amrex::Real a1i = 0.503160820;
327 const amrex::Real a2i = 0.188439774e-1;
328 const amrex::Real a3i = 0.420895665e-3;
329 const amrex::Real a4i = 0.615021634e-5;
330 const amrex::Real a5i = 0.602588177e-7;
331 const amrex::Real a6i = 0.385852041e-9;
332 const amrex::Real a7i = 0.146898966e-11;
333 const amrex::Real a8i = 0.252751365e-14;
335 polysvp = a0i + del_T*(a1i + del_T*(a2i + del_T*(a3i + del_T*(a4i + del_T*(a5i + del_T*(a6i + del_T*(a7i + a8i*del_T)))))));
339 polysvp = std::pow(10.0, (-9.09718*(273.16/
T-1.0) - 3.56654*std::log10(273.16/
T) +
340 0.876793*(1.0-
T/273.16) + std::log10(6.1071))) * 100.0;
346 const amrex::Real a0 = 6.11239921;
347 const amrex::Real a1 = 0.443987641;
348 const amrex::Real
a2 = 0.142986287e-1;
349 const amrex::Real
a3 = 0.264847430e-3;
350 const amrex::Real
a4 = 0.302950461e-5;
351 const amrex::Real a5 = 0.206739458e-7;
352 const amrex::Real a6 = 0.640689451e-10;
353 const amrex::Real a7 = -0.952447341e-13;
354 const amrex::Real a8 = -0.976195544e-15;
356 polysvp = a0 + del_T*(a1 + del_T*(
a2 + del_T*(
a3 + del_T*(
a4 + del_T*(a5 + del_T*(a6 + del_T*(a7 + a8*del_T)))))));
360 polysvp = std::pow(10.0, (-7.90298*(373.16/
T-1.0) + 5.02808*std::log10(373.16/
T) -
361 1.3816e-7*(std::pow(10.0, (11.344*(1.0-
T/373.16)))-1.0) +
362 8.1328e-3*(std::pow(10.0, (-3.49149*(373.16/
T-1.0)))-1.0) +
363 std::log10(1013.246))) * 100.0;
@ T
Definition: ERF_IndexDefines.H:110
real(c_double), parameter a2
Definition: ERF_module_model_constants.F90:95
real(c_double), parameter a3
Definition: ERF_module_model_constants.F90:96
real(c_double), parameter a4
Definition: ERF_module_model_constants.F90:97
real(c_double) function, public polysvp(T, TYPE)
Definition: ERF_module_mp_morr_two_moment.F90:4006