From f9d83fd2301e2e331d557aea9e27138fbb29149c Mon Sep 17 00:00:00 2001 From: Brian Groenke <brian.groenke@awi.de> Date: Wed, 1 Jan 2025 19:50:34 +0100 Subject: [PATCH] Add uutility functions for humidity --- src/Physics/Surface/SEB/seb_utils.jl | 23 +++++++++++++++++++++++ src/Physics/Surface/Surface.jl | 1 + 2 files changed, 24 insertions(+) create mode 100755 src/Physics/Surface/SEB/seb_utils.jl diff --git a/src/Physics/Surface/SEB/seb_utils.jl b/src/Physics/Surface/SEB/seb_utils.jl new file mode 100755 index 00000000..a1a1bd56 --- /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 4bcf47e3..08458577 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 -- GitLab