The problem was that I had no idea if the values made any sense. Therefore, I added a computation to find the relative humidity (%RH) associated with that mixing ratio. I was surprised to learn that the mixing ratio for 60%RH at the surface (15°C) would be over 2,000%RH at -30°C. I was also concerned that the "over water" equation would provide the wrong value at -30°C. (Not much liquid at that temperature.) It was while investigating the "over ice" algorithm that I discovered that there were many models to compute the saturation vapor pressure.
In addition, I found the following very confusing - when discussing the RH over ice formulations
|The [RH over ice] equations discussed here are mostly of interest for frost-point measurements using chilled mirror hygrometers, since these instruments directly measure the temperature at which a frost layer and the overlying vapor are in equilibrium. In meteorological practice, relative humidity is given over liquid water ... and care needs to be taken to consider this difference. [ref]|
Prior to 1948, saturation vapor pressure was calculated with respect to ice. Since 1948, saturation vapor pressure has been calculated with respect to water. In 1969 and 1981 new humidity algorithms were introduced.
These programs were written to
In the following programs (calculators) the temperature values are limited to display only 2 decimal places. To use additional precision, type the value into the Kelvin field. The only time I have needed this is when checking the *new* boiling point of water at 1 atm - the old standard was 100°C and the new value is 99.974°C .. because the standard temperature scale was redefined in 1990!
Placing these algorithms in a separate module simplifies reusing them in various programs and guarantees that the computations will be the same.
For temperatures below 145 K (-128°C), the partial pressures are so low that they might as well be zero. Also, some of the algorithms produce errors with lower temperatures. As a result, the program just returns a partial pressure of zero for temperatures below 145 K.
From Review of the vapour pressures of ice and supercooled water for atmospheric applications by D. M. Murphy and T. Koop, 29 Dec 2006
The vapour pressure of both ice and liquid water at the triple point is
Pt = 611.657 ± 0.01 Pa at temperature Tt = 273.16 K
(Guildner et al. 1976, Vapor pressure of water at its triple point. J. Res. Natl. Bur. Stand., 80A, 505-521)
The second calibration point is a problem - ref
Perhaps 2 of the formulations have been modified to take this into account
By the way, there is no requirement that a good algorithm has to intersect one, or both, calibration points (though it would be nice). "Improved Magnus` form approximation of saturation vapor pressure" argues that a formulation that produces the smallest maximum error may be "better" than the algorithm with the smallest overall error (determined by, for example, a least squares fit) if the tail values are off by a large amount.
Various hints and notes are displayed in the status bar when the mouse is placed over certain fields.
The initial threshold is ± 0.5% (which you can change) - values outside that range are colored light red. A checkbox will disable the color.
The basic Magnus equation (1844) is used in many programs, online calculators, and journal papers. However, there are many sets of coefficients! Way too many to include them all in a general calculator. (My programs implement 4.) For example, the purpose of Review of the vapour pressures of ice and supercooled water for atmospheric applications by D. M. Murphy and T. Koop, 29 Dec 2006, was to find new Magnus coefficients, and several sets were found. At any rate, I have provided a way for you to compare the odd stuff to the 19 over liquid water formulations provided. Note that the temperature used is in degrees-C and that some formulations use Kelvin in a way that simply subtracting 273.15 will not produce the expected result. For example, for the MagnusTetens formulation, you need to subtract 273.16 and add 0.01 to the C parameter. Here are a few Other Formulas (Careful - A, B, C are in a different order).
Once I had code to compute the saturation vapor pressure - the rest of the code was simple and very straight forward.
Water_Vapor.html was written to
Assuming the RH is known
Mixing_Ratio = Saturation_Mixing_Ratio * RH / 100;
RH = Mixing_Ratio / Saturation_Mixing_Ratio * 100;
Saturation_Mixing_Ratio = Saturation_Partial_Pressure / Pressure * 1e6;
The temperature inputs are rounded to 2 decimal points. Most other fields are rounded to 5. As a result, some numbers may not match exactly.
The program computes the dew point and the frost point - the temperatures where RH reaches 100%. Obviously, frost points above freezing are of no value. However, dew points below freezing are useful - they could indicate the possibility of a freezing rain event, a condition where super cooled liquid water freezes on impact - and occur on a regular basis.
When the mouse is over a temperature, pressure, or altitude control (other than the temperature selector), appropriate conversions will be displayed in the status bar.
The fields with white backgrounds can be edited by the user. Those with grey backgrounds are readonly computed values - they can be copied to the clipboard .. but you can not enter new data.
On the form, several parameters are tightly linked - radio buttons are provided to select which one to hold constant as other values are changed.
Temperatures are limited to those below the critical temperature - 647.096 K - and above 140 K.
||x ||x ||0.0001
||x ||x ||x
Some of the fields have hard limits
(degrees-K won't go below zero)
and others will turn red outside the expected range
|mcSaturationVaporPressure.js||The main program, it contains most of the formulations.|
|mcWaterVapor.js||Computes Dewpoint, RH, mixing ratio, calls mcSaturationVaporPressure.js|
|Displays the 3 temperature values and converts between them|