Helper function to calculate saturation vapor pressure for water or ice. This corresponds to the POLYSVP function in the Fortran code (line ~5580).
451 amrex::Real del_T =
T - 273.15;
456 const amrex::Real a0i = 6.11147274;
457 const amrex::Real a1i = 0.503160820;
458 const amrex::Real a2i = 0.188439774e-1;
459 const amrex::Real a3i = 0.420895665e-3;
460 const amrex::Real a4i = 0.615021634e-5;
461 const amrex::Real a5i = 0.602588177e-7;
462 const amrex::Real a6i = 0.385852041e-9;
463 const amrex::Real a7i = 0.146898966e-11;
464 const amrex::Real a8i = 0.252751365e-14;
466 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)))))));
470 polysvp = std::pow(10.0, (-9.09718*(273.16/
T-1.0) - 3.56654*std::log10(273.16/
T) +
471 0.876793*(1.0-
T/273.16) + std::log10(6.1071))) * 100.0;
477 const amrex::Real a0 = 6.11239921;
478 const amrex::Real a1 = 0.443987641;
479 const amrex::Real
a2 = 0.142986287e-1;
480 const amrex::Real
a3 = 0.264847430e-3;
481 const amrex::Real
a4 = 0.302950461e-5;
482 const amrex::Real a5 = 0.206739458e-7;
483 const amrex::Real a6 = 0.640689451e-10;
484 const amrex::Real a7 = -0.952447341e-13;
485 const amrex::Real a8 = -0.976195544e-15;
487 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)))))));
491 polysvp = std::pow(10.0, (-7.90298*(373.16/
T-1.0) + 5.02808*std::log10(373.16/
T) -
492 1.3816e-7*(std::pow(10.0, (11.344*(1.0-
T/373.16)))-1.0) +
493 8.1328e-3*(std::pow(10.0, (-3.49149*(373.16/
T-1.0)))-1.0) +
494 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