diff --git a/src/Physics/Surface/SEB/seb_utils.jl b/src/Physics/Surface/SEB/seb_utils.jl new file mode 100755 index 0000000000000000000000000000000000000000..a1a1bd568e7a465ffb8cdd060fd6f6fea519aa5f --- /dev/null +++ b/src/Physics/Surface/SEB/seb_utils.jl @@ -0,0 +1,23 @@ +""" + relative_to_specific_humidity(r_h, pr, Ts, Tair) + +Derives specific humidity from measured relative humidity, air pressure, and soil/air temperatures. +""" +relative_to_specific_humidity(r_h, pr, Ts, Tair) = 0.622*(r_h/100)*vapor_pressure(Tair, Ts) / pr + +# saturation vapor pressure +""" + vapor_pressure(T, aâ‚, aâ‚‚, a₃) + +Saturation vapor pressure as a function of air temperature with empirical +coefficients aâ‚, aâ‚‚, and a₃. +""" +vapor_pressure(T, aâ‚, aâ‚‚, a₃) = aâ‚*exp(aâ‚‚*T/(T+a₃)) + +# saturation vapor pressure for frozen vs. unfrozen conditions +""" + vapor_pressure(Tair, Ts) + +Saturation vapor pressure from air and soil temperature, accounting for both frozen (<0°C) and unfrozen conditions. +""" +vapor_pressure(Tair, Ts) = Ts < zero(Ts) ? vapor_pressure(Tair, 611.0, 22.46, 272.62) : vapor_pressure(Tair, 611.0, 17.62, 243.12) diff --git a/src/Physics/Surface/Surface.jl b/src/Physics/Surface/Surface.jl index 4bcf47e359d649a0611c6ab75e6f21f5c483f596..08458577b24e8e60f17e07ddce75fd986924e0f6 100644 --- a/src/Physics/Surface/Surface.jl +++ b/src/Physics/Surface/Surface.jl @@ -17,6 +17,7 @@ import Flatten # Surface energy balance export SurfaceEnergyBalance, SEBParams +export relative_to_specific_humidity, vapor_pressure include("SEB/seb.jl") export SurfaceWaterBalance