Home > atmlab > h2o > thermodynamics > e2T_eq_ice.m

e2T_eq_ice

PURPOSE ^

E2T_EQ_ICE estimates temperature from equilibrium water vapor pressure

SYNOPSIS ^

function T = e2T_eq_ice(ei)

DESCRIPTION ^

 E2T_EQ_ICE estimates temperature from equilibrium water vapor pressure
            over ice

 Calculate the equilibrium water vapor pressure over a plane surface
 of ice according to Sonntag, 1994. For details see the <e_eq_ice>.
 
 The temperature of 0C corresponds to 273.15K. (Not 273.16K, as stated
 in the Leiterer paper.)
  
 The Sonntag method is to estimate ei from temperaure as follows:
 ei(T) = exp[ a/T + b + cT + dT^2 + e Ln(T) ]
 for the temperatures range between -100 and 100 C, Ln(T) ranges
 between 5.1542 and 5.922. The mean value of Ln(T) which is for T = 273.15
 is equal to 5.61. First, the mean value of Ln(T) is used to help to solve
 the equation analytically. Matlab function 'toots' is used to calculate
 roots of the resulted function. 
 In normal range of the temperature, estimated T differs about 5 K but
 outside this range the difference is much more. In the next step, a loop 
 is used to adjust T.

 FORMAT   T = e2T_eq_ice(ei)

 OUT    T  = Temperature in [K]. 
 IN    ei = Equilibrium water vapor pressure in [Pa].
            It must be a scalar.

 EXAMPLE:
       T = e2T_eq_ice(1500)
       Te = 284.5150

 ACCURACY: The accuracy was checked using e_eq_ice(T). I calculated ei
           using e_eq_ice for a given T then used ei as input of e2T_eq_ice and
           afterwards compared the output of this function to the original T:
           T1 = [150:0.1:370]
           ei = e_eq_ice(T1)
           for i=1:1:length(T1), T2(i) = e2T_eq_ice(ei(i)); end
           max(abs(T2 - T1)) = 0.0014
           min(abs(T2 - T1)) = 2.3542e-05
           mean(abs(T2 - T1)) = 2.9150e-04

 References:
 
 Sonntag, D., Advancements in the field of hygrometry, Meteorologische
 Zeitschrift, 3, 51-66, 1994.
 
 Helten, M. et al, In-flight comparison of MOZAIC and POLINAT water
 vapor measurements, JGR, 104, 26.087-26.096, 1999.
 
 Leiterer U. et al, Improvements in Radiosonde Humidity Profiles Using
 RS80/RS90 Radiosondes of Vaisala, Beitr. Phys. Atmosph., 70(4),
 319-336, 1997. 

 2009-08-27 Created by Isaac Moradi

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

DOWNLOAD ^

e2T_eq_ice.m

SOURCE CODE ^

0001 function T = e2T_eq_ice(ei)
0002 % E2T_EQ_ICE estimates temperature from equilibrium water vapor pressure
0003 %            over ice
0004 %
0005 % Calculate the equilibrium water vapor pressure over a plane surface
0006 % of ice according to Sonntag, 1994. For details see the <e_eq_ice>.
0007 %
0008 % The temperature of 0C corresponds to 273.15K. (Not 273.16K, as stated
0009 % in the Leiterer paper.)
0010 %
0011 % The Sonntag method is to estimate ei from temperaure as follows:
0012 % ei(T) = exp[ a/T + b + cT + dT^2 + e Ln(T) ]
0013 % for the temperatures range between -100 and 100 C, Ln(T) ranges
0014 % between 5.1542 and 5.922. The mean value of Ln(T) which is for T = 273.15
0015 % is equal to 5.61. First, the mean value of Ln(T) is used to help to solve
0016 % the equation analytically. Matlab function 'toots' is used to calculate
0017 % roots of the resulted function.
0018 % In normal range of the temperature, estimated T differs about 5 K but
0019 % outside this range the difference is much more. In the next step, a loop
0020 % is used to adjust T.
0021 %
0022 % FORMAT   T = e2T_eq_ice(ei)
0023 %
0024 % OUT    T  = Temperature in [K].
0025 % IN    ei = Equilibrium water vapor pressure in [Pa].
0026 %            It must be a scalar.
0027 %
0028 % EXAMPLE:
0029 %       T = e2T_eq_ice(1500)
0030 %       Te = 284.5150
0031 %
0032 % ACCURACY: The accuracy was checked using e_eq_ice(T). I calculated ei
0033 %           using e_eq_ice for a given T then used ei as input of e2T_eq_ice and
0034 %           afterwards compared the output of this function to the original T:
0035 %           T1 = [150:0.1:370]
0036 %           ei = e_eq_ice(T1)
0037 %           for i=1:1:length(T1), T2(i) = e2T_eq_ice(ei(i)); end
0038 %           max(abs(T2 - T1)) = 0.0014
0039 %           min(abs(T2 - T1)) = 2.3542e-05
0040 %           mean(abs(T2 - T1)) = 2.9150e-04
0041 %
0042 % References:
0043 %
0044 % Sonntag, D., Advancements in the field of hygrometry, Meteorologische
0045 % Zeitschrift, 3, 51-66, 1994.
0046 %
0047 % Helten, M. et al, In-flight comparison of MOZAIC and POLINAT water
0048 % vapor measurements, JGR, 104, 26.087-26.096, 1999.
0049 %
0050 % Leiterer U. et al, Improvements in Radiosonde Humidity Profiles Using
0051 % RS80/RS90 Radiosondes of Vaisala, Beitr. Phys. Atmosph., 70(4),
0052 % 319-336, 1997.
0053 %
0054 % 2009-08-27 Created by Isaac Moradi
0055 
0056 % Coefficients for Ei:
0057 a = -6024.5282;
0058 b = 29.32707;
0059 c = 1.0613868e-2;
0060 d = -1.3198825e-5;
0061 e = -0.49382577;
0062 
0063 % set initial temperature as 273.15
0064 T = 273.15;
0065 T1 = T - 100; % just to allow loop to start
0066 
0067 % continue the loop until the difference between the temperatures calculated
0068 % at two consequent steps is less than 0.05 K
0069 while abs(T1 - T) > 0.05    
0070     T1 = T;
0071     % calculate coefficients of the cubic function
0072     f = e .* log(T1) + b - log(ei);
0073 
0074     % coefficients for the cubic function which is
0075     % d .* ei^3 + c  .* ei^2 + f .* ei + a
0076     p = [d c f a];
0077 
0078     % roots of the mentioned cubic function
0079     T = roots(p);
0080 
0081     % pick the real number
0082     T = T(3);
0083 end
0084

Generated on Mon 15-Sep-2014 13:31:28 by m2html © 2005