pro ice_equilib,p_in,t_in,q_h2o,t_ice,p_ice,voli ;------------------------------------------------------- ; purpose: ; ; Routine computes the frost point temperature, saturation vapor ; pressure over ice at T_in, and volume of condensed ice. ; ; The Goff-Gratch formulations are used to compute ; saturation vapor pressures (Smithsonian Met. Tables): ; ; p_ice = 10.0^( -9.09718*(273.16/T-1.)-3.56654*alog10(273.16/T)+$ ; 0.876793*(1.-T/273.16)+alog10(6.1071) ) ; ; input: ; t_in....temp, K ; p_in....pressure, mb ; q_h2o...h2o mixing ratio, ppmv ; ; output: ; t_ice...frost point temperature, K ; p_ice...saturation vapor pressure over ice at T_in, mb ; voli....volume of condensed ice, um3/cm3 ; ; requires goff_gratch_ice.pro ; ; source: Mark Hervig ;------------------------------------------------------------- Mww = 18.0 ; molec wt. h2o, g/mol di = 0.91 ; density ice, g/cm3 R = 8.314 ; J/mol/K p_h2o = p_in * q_h2o *1.e-6 ; h2o partial pressure, mb dpmin = 0.07 * p_h2o ; find t_ice to 7% of vap pres t_ice = -999. p_ice = -999. voli = 0. if (t_in gt 273.15) then return ;---- find the frost point temperature t_ice. Use the fact that ; a linear relationship exists between 1/T and alog10(p_h2o). ; Do a linear interpolation between some hi and low temps t1 = 173.15 t2 = 273.15 p1 = alog10(goff_gratch_ice(t1)) p2 = alog10(goff_gratch_ice(t2)) ta = 1./t1 tb = 1./t2 tc = 1./t_in dsds = (p2 - alog10(p_h2o) ) / (p2 - p1) t_ice = 1. / ( tb - dsds * (tb - ta) ) ;--- get the saturation vapor pressure at t_in p_ice = goff_gratch_ice(t_in) ;---- if saturated, find condendsed (equilibrium) ice volume q_xs = q_h2o*1.e-6 - p_ice/p_in ; excess h2o mix ratio ns = p_in *100.0 *(q_xs)/(R*t_in) ; mols h2o per m3 air if (q_xs gt 0.0) then voli = 1.0e6 * (ns * Mww) / di return end