13 amrex::Real ws10m = umm*std::log(10./1e-4) / std::log(zref/1e-4);
14 amrex::Real Czc = 0.011 + 0.007*std::min(std::max((ws10m-10.)/8., 0.), 1.0);
15 amrex::Real z0 = (Czc /
CONST_GRAV) * ustar * ustar;
17 return std::min(std::max(z0, 1.27e-7), 2.85e-3);
31 constexpr amrex::Real ozo{1.59e-5};
32 amrex::Real zw = std::min(std::pow(ustar/1.06, 0.3),1.0);
33 amrex::Real zn1 = 0.011*ustar*ustar/
CONST_GRAV + ozo;
34 amrex::Real zn2 = 10.*std::exp(-9.5*std::pow(ustar, -.3333))
35 + 0.11*1.5e-5/std::max(ustar,0.01);
36 amrex::Real z0 = (1.0-zw) * zn1 + zw * zn2;
38 return std::min(std::max(z0, 1.27e-7), 2.85e-3);
constexpr amrex::Real CONST_GRAV
Definition: ERF_Constants.H:21
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Donelan_roughness(amrex::Real ustar)
Definition: ERF_MOSTRoughness.H:29
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real COARE3_roughness(amrex::Real zref, amrex::Real umm, amrex::Real ustar)
Definition: ERF_MOSTRoughness.H:9