The Engineering ToolBox
pws = e(77.3450 + 0.0057 T - 7235 / T) / T8.2 T in kelvins |
T (C) GoffGratch (mb) EngToolBox (mb) -15 1.91 1.9 - 9 3.09 3.0 2 7.05 6.9 25 31.652 31.30 46 100.84 101.4 |
Unfortunately, they do not reference their source for this equation - it is merely presented as "a statement of fact".
A Google search for that equation returned numerous hits. Unfortunately, all the examples I checked are obviously just quoting The Engineering ToolBox - either an explicit reference or the identical text and formatting.
In addition, on their Dry Bulb, Wet Bulb and Dew Point Temperatures page they say
The SI unit is Kelvin (K). Zero Kelvin equals to -273°C. |
NASA Tech Note D-8401
log (eSW) = -4.9283 Log T - 2937.4/T + 22.5518 |
eSW = 10(c + b/T) Ta where eSW is the saturation water vapor pressure |
log(P) = A + B*T/(C+T) |
Their derivations of the constants - a, b, c - are provided in Appendix A. They always use 273 to convert between K and C (should be 273.15) and they use 2 vapor pressure calibration points - both are at 0°C (32°F).
Over water | Over Ice |
---|---|
6.11 mb | 6.107 mb |
Appendix A, Example 2 computes relative humidity from a dew point below freezing. Their value is 17.3%, my program, using MurphyKoop, computes 19.2% over water and 17.1% over ice. Example 3 uses 2 temperatures above freezing - they compute 84.6%, my program finds the same for most of the provided algorithms.
In addition, their definition of relative humidity (based on that giving in the Smithsonian Meteorological Tables, 1971) is a bit strange.
It is the ratio of the actual partial pressure of water vapor over ice or water (depending on whether the air temperature is above or below freezing) divided by the saturation pressure over water. |
New Magnus Coefficients
This paper argues that the standard Magnus coefficients should be replaced so that the Magnus equation can be used instead of the much more complex equations of Wexler (1976), Sonntag (1990), and Goff and Gratch (1946).
As an aside, these dates do not match those provided by Vömel - Wexler (1983), and Sonntag (1994) - and the MurphyKoop (2005) formulation was published after this paper.
Part of the justification of this approach is that atmospheric temperature is reported to only 0.1°C accuracy world wide and only 0.5°C in the US. That, plus the general inaccuracies of the reported humidity proxies (such as dew point) means that the true accuracy of any computation is low enough that several formulations produce calculated saturation pressures that are "the same" within some margin of error.
This is the general form of the Magnus formula.
P = C eAT/(B+T) where T is in °C |
Constant | MagnusTetens 1967 | Sonntag 1990 | Alduchov 1996 | |||
---|---|---|---|---|---|---|
Over | Water | Ice | Water | Ice | Water | Ice |
A | 17.269388 | 21.8745584 | 17.62 | 22.46 | 17.625 | 22.587 |
B | 237.3 | 265.5 | 243.12 | 272.62 | 243.04 | 273.86 |
C | 6.1078 | 6.1078 | 6.112 | 6.112 | 6.1094 | 6.1121 |
MagnusTetens (1967) via
Vömel
|
Full equations
Vömel - Goff Gratch 1946, 1984 Log10 ew = -7.90298 (373.16/T-1) + 5.02808 Log10(373.16/T) - 1.3816 10-7 (1011.344 (1-T/373.16) -1) + 8.1328 10-3 (10-3.49149 (373.16/T-1) -1) + Log10(1013.246) Alduchov - Goff Gratch 1945 Log10 ew = 7.90298 (1 - Ts/T) + 5.02808 Log10(Ts/T) + 1.3816 10-7 (1 - 1011.344 (1-T/Ts)) - 8.1328 10-3 (1 - 10-3.49149 (1-Ts/T)) + Log10(1013.246) Where Ts = 373.16 K the steam point at 1 atm |
10-3.49149 (Ts/T - 1) vs 10-3.49149 (1 - Ts/T) |
Wexler
This paper contains a good overview of the progress toward developing equations to compute saturation vapor pressure. It includes a modification to the Magnus equation by Bögel and 2 equations by Wexler.
Wexler
|
washington.edu skewt.js
function ESAT(t) { // Computes the saturation vapour pressure over water at temperature t. // ESAT in mb, t in K. Log to base 10 is needed for this function. // Dim a0 As Double, a1 As Double, a2 As Double a0 = 23.832241 - 5.02808 * Log10(t); a1 = 0.00000013816 * 10 ^ (11.344 - 0.0303998 * t); a2 = 0.0081328 * 10 ^ (3.49149 - 1302.8844 / t); ESAT = 10 ^ (a0 - a1 + a2 - 2949.076 / t); return ESAT; } |
Goff Gratch equation (Smithsonian Tables, 1984, after Goff and Gratch, 1946): Log10 ew = -7.90298 (373.16/T-1) + 5.02808 Log10(373.16/T) - 1.3816 10^-7 (10^[11.344 (1-T/373.16)] -1) + 8.1328 10^-3 (10^[-3.49149 (373.16/T-1)] -1) + Log10(1013.246) with T in [K] and ew in [hPa] voemel |
7.90298 * 373.16 = 2949.0760168 5.02808 * Log10(373.16) = 12.931694236 11.344 / 373.16 = 0.0303998285 3.49149 * 373.16 = 1302.8844084 Log10(1013.246) = 3.0057148979 7.90298 + 12.931694236 + 1.3816*10^-7 - 8.1328*10^-3 + 3.0057148979 = 23.8322564721 This is the only significant difference - 23.832241 vs 23.832256 |
Formula | -20 C | 0 C | 15 C | 30 C |
---|---|---|---|---|
Goff Gratch | 1.25292 | 6.10336 | 17.03281 | 42.40599 |
washington.edu | 1.252880448 | 6.1031443925 | 17.0322055233 | 42.4044797454 |
MurphyKoop | 1.25504 | 6.11213 | 17.0588 | 42.46814 |
MODTRAN
F(A) is saturated water vapor density at temp T A = 273.15/T F(A) = EXP(18.9766 - 14.9595*A - 2.43882*A*A) * A |
However, since this formula computes density (gm/m3), I need to use the gas law to get the pressure.
PV = nRT P = ρ/molWt RT Where ρ is F(A) in the program |
Via the engineeringtoolbox, the gas constant is
R = 8314.47 J/(kmol K) |
PV = nRT P = ρ/molWt RT P N/m2 = ρ (gm/m3)/[molWt (gm/mol)] * (R J/(kmol K) * T K) * (kmol/1000 mol) = ρ (gm/m3)/[molWt (gm/mol)] * (R (N m)/(kmol K) * T K) * (kmol/1000 mol) = 10-3 N/m2 1 bar/1000 mbar * 10^5 pascal/bar * 1 N/m2/1 pascal = 102 N/m2/mbar P mbar = 10-3 N/m2 / (102 N/m2/mbar) = ρ/molWt RT * 10-5 mbar |
Assuming T is in kelvin (it works), this table compares the adjusted MODTRAN formula with the MurphyKoop formulation as computed using my calculator.
Temperature | MurphyKoop mbar | MODTRAN | ||
---|---|---|---|---|
K | C | g/m3 | mbar | |
223.15 | -50 | 0.06317 | 0.0616191052 | 0.0634618288 |
273.15 | 0 | 6.11213 | 4.8466124646 | 6.109980215 |
300 | 26.85 | 35.36764 | 25.5441184444 | 35.3681609463 |
323.15 | 50 | 123.51983 | 83.1908557132 | 124.0737921266 |
They do not provide a formula for finding the relative humidity over ice.
More
EXP(18.9766 - 14.9595*A - 2.43882*A*A) |
This was very useful since it clearly stated that the MODTRAN formula computed density in g/m3 - the source code comments just said "density" and gave no units.
Vaisala
Ps = 6.11657 exp(-13.928169 [1 - (273.16/T)^1.5 ] + 34.707823[1 - (273.16/T)^1.25 ] ) // over ice -100 to 0.01°C |
The Hyland and Wexler formulation is used by Vaisala and is very similar to the formula by Sonntag. |
Lowe
In The Computation of Saturation Vapor Pressure (March 1974), Lowe argues for finding an algorithm with acceptable accuracy and a fast computation speed. The paper presents two 6th order polynomials for computing saturated water vapor over ice and liquid water that, he claims, run faster and are more accurate than Tetens.
In An Approximating Polynomial for the Computation of Saturated Vapor Pressure (1976), he repeats the polynomials and provides additional data supporting his claims.
These are just the coefficients for temperature in C and over water. The papers also contain coefficients for the temperature in kelvin over water and for over ice.
E_s = a0 + T(a1 + T(a2 + T(a3 + T(a4 + T(a5 + T(a6) ))))) a0 = 6.107799961 a1 = 4.436518521 E-1 a2 = 1.428945805 E-2 a3 = 2.650648471 E-4 a4 = 3.031240396 E-6 a5 = 2.034080948 E-8 a6 = 6.136820929 E-11 Range of validity: -50°C to +50°C over liquid water |
Accuracy
In Table 1, Lowe 1976 claims that Goff-Gratch computes the saturation pressure as 6.1078 mb at 0°C, but, according to my calculator, that is the pressure computed at 0.01°C (the triple point) and the Goff-Gratch value at 0.00°C is actually 6.10336 mb. Via a0 in the coefficients above, Lowe's formula sets the saturation pressure to 6.107799961 mb at 0.00°C. (The current standard is 6.11657 ± 0.0001 mbar at 273.16 K (0.01°C) - the triple point.)
I checked a number of Goff-Gratch and Tetens values in his table with those computed by my calculator - they do not match. One of us has an obvious math error.
Compared to voemel, there is only a slight difference in one of the Lowe 1976 Tetens formula coefficients, but a fairly significant difference in the values shown in Table 1.
Psat = 6.1078 * EXP(17.2693882*(Temp-273.16) /(Temp-35.86)) Temp in K Murray 1967 Psat = 6.1078 * EXP(17.269388 * (T_K-273.16) / (T_K-35.86)) T_K in K Voemel |
Values for Tetens formula | ||
---|---|---|
Temp | Voemel | Lowe |
-25 | 0.79856 | 0.79928 |
0 | 6.10336 | 6.1078 |
10 | 12.27069 | 12.2789 |
20 | 23.36647 | 23.3810 |
30 | 42.40202 | 42.4254 |
exp( [ ln(23.3664700) / 17.2693880 ] * 17.2693882 ) = 23.3664709 |
Whether or not these errors are significant depends on your application. But, in a peer-reviewed paper about algorithm accuracy, I expect better. On the other hand, this is an old paper and some of the standards and/or accepted calibration points have changed since then. As a result, his coefficients may need to be tweaked anyway.
At any rate, the Lowe paper is important since it is the main reference on the wikipedia Vapour pressure of water page and since these are the only formulations I've seen that use simple polynomials.
At some point, I want to compare the computation speeds and accuracies of all the formulations I have access to, in a manner similar to Lowe, but using MurphyKoop or HylandWexler as the accuracy standard.
Lowe 1976 mentions 3 other formulas I have not seen previously
log10(E_s) = 9.28603523 - 2.32237885(1000/T) log10(E_s) = 8.42926609 - 1.82717843(1000/T) - 0.071208271(1000/T)2 T is in kelvins |
E_s = 1013.25 exp(13.3185 S - 1.9760 S2 - 0.6445 S3 - 0.1299 S4) S = 1 - (373.16/T) T is in kelvins 373.16 K is identified as the steam point |
A number of formulations, including Goff-Gratch, identify 373.16 K as the steam point. However, before 1990 the steam point was actually 373.15 K, after 1990, it became 373.124 K.
The Richards 1971 formula is identical to the one used in Atmospheric Chemistry and Physics by Seinfeld and Pandis with the exception that they used 373.15 K and not 373.16 K.
CRC
There is no formula for finding the values - just tables.
The values in the "over water" table are from the NBS/NRC Steam Tables, 1984 and do not agree with any of the formulas used in my main program. I have not checked the values against those produced by formulas on this page.
The "over ice" values closely track MurphyKoop and HylandWexler from 0.01°C to -40°C and then they begin to diverge and follow Sonntag from -50°C to -80°C.
The tables do not cover "over water" below freezing.
Author: Robert Clemenzi