C Software for calculation of moisture variables in COADS 14 Jun 1991 C C ============================================================================ C C The following is excerpted from "Comprehensive Ocean-Atmosphere Data Set; C Release 1," pg. A18. C ---------------------------------------------------------------------------- C C 4.4 Moisture Variables C C The derived moisture variables (Q, R, and QS) are computed using the C FORTRAN functions that are given in [10] and referenced as follows: C Q = SSH(P,A - DP) C R = HUM(A,A - DP) C QS = SSH(P,S) C Inside SSH the mixing ratio is approximated by function WMR. The method C of computing vapor pressure differs in the untrimmed and trimmed C summaries. Function ESLO was used in the untrimmed summaries. C Unfortunately, ESLO is unreliable at physically unrealistic conditions, C although tests have demonstrated that, at least, no R exceeded 100%. C Function ES was used instead in the trimmed summaries. These algorithms C were chosen because of their accuracy and computational efficiency. For C more detailed information including the original source of these C techniques see [10]. C C [10] Schlatter, T. W., and D. V. Baker, 1981: Algorithms for thermodynamic C calculations. NOAA/ERL PROFS Program Office, Boulder, CO, 34 pp. C C ============================================================================ C C The following text and code is extracted from a later version of [10], C which differs for these routines only in that some comment lines have C been updated. In addition, the original code used functions ESAT and C ESW in HUM and WMR, respectively. The COADS (trimmed) implementation C substituted ES for ESAT or ESW. C ---------------------------------------------------------------------------- C C These algorithms were collected, edited, commented, and tested by Thomas W. C Schlatter and Donald V. Baker from August to October 1981 in the PROFS Program C Office, NOAA Environmental Research Laboratories, Boulder, Colorado. Where C possible, credit has been given to the original author of the algorithm and a C reference provided. C FUNCTION ESLO(T) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE SATURATION VAPOR PRESSURE OVER LIQUID C WATER ESLO (MILLIBARS) GIVEN THE TEMPERATURE T (CELSIUS). THE C FORMULA IS DUE TO LOWE, PAUL R.,1977: AN APPROXIMATING POLYNOMIAL C FOR THE COMPUTATION OF SATURATION VAPOR PRESSURE, JOURNAL OF APPLIED C METEOROLOGY, VOL 16, NO. 1 (JANUARY), PP. 100-103. C THE POLYNOMIAL COEFFICIENTS ARE A0 THROUGH A6. DATA A0,A1,A2,A3,A4,A5,A6 1 /6.107799961, 4.436518521E-01, 1.428945805E-02, 2 2.650648471E-04, 3.031240396E-06, 2.034080948E-08, 3 6.136820929E-11/ ES = A0+T*(A1+T*(A2+T*(A3+T*(A4+T*(A5+A6*T))))) IF (ES.LT.0.) ES = 0. ESLO = ES RETURN END FUNCTION ES(T) C THIS FUNCTION RETURNS THE SATURATION VAPOR PRESSURE ES (MB) OVER C LIQUID WATER GIVEN THE TEMPERATURE T (CELSIUS). THE FORMULA APPEARS C IN BOLTON, DAVID, 1980: "THE COMPUTATION OF EQUIVALENT POTENTIAL C TEMPERATURE," MONTHLY WEATHER REVIEW, VOL. 108, NO. 7 (JULY), C P. 1047, EQ.(10). THE QUOTED ACCURACY IS 0.3% OR BETTER FOR C -35 < T < 35C. C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C ES0 = SATURATION VAPOR PRESSURE OVER LIQUID WATER AT 0C DATA ES0/6.1121/ ES = ES0*EXP(17.67*T/(T+243.5)) RETURN END FUNCTION HUM(T,TD) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C G.S. Stipanuk 1973 Original version. C Reference Stipanuk paper entitled: C "ALGORITHMS FOR GENERATING A SKEW-T, LOG P C DIAGRAM AND COMPUTING SELECTED METEOROLOGICAL C QUANTITIES." C ATMOSPHERIC SCIENCES LABORATORY C U.S. ARMY ELECTRONICS COMMAND C WHITE SANDS MISSILE RANGE, NEW MEXICO 88002 C 33 PAGES C Baker, Schlatter 17-MAY-1982 C THIS FUNCTION RETURNS RELATIVE HUMIDITY (%) GIVEN THE C TEMPERATURE T AND DEW POINT TD (CELSIUS). AS CALCULATED HERE, C RELATIVE HUMIDITY IS THE RATIO OF THE ACTUAL VAPOR PRESSURE TO C THE SATURATION VAPOR PRESSURE. HUM= 100.*(ES(TD)/ES(T)) RETURN END FUNCTION SSH(P,T) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS SATURATION SPECIFIC HUMIDITY SSH (GRAMS OF C WATER VAPOR PER KILOGRAM OF MOIST AIR) GIVEN THE PRESSURE P C (MILLIBARS) AND THE TEMPERATURE T (CELSIUS). THE EQUATION IS GIVEN C IN STANDARD METEOROLOGICAL TEXTS. IF T IS DEW POINT (CELSIUS), THEN C SSH RETURNS THE ACTUAL SPECIFIC HUMIDITY. C COMPUTE THE DIMENSIONLESS MIXING RATIO. W = .001*WMR(P,T) C COMPUTE THE DIMENSIONLESS SATURATION SPECIFIC HUMIDITY. Q = W/(1.+W) SSH = 1000.*Q RETURN END FUNCTION WMR(P,T) C THIS FUNCTION APPROXIMATES THE MIXING RATIO WMR (GRAMS OF WATER C VAPOR PER KILOGRAM OF DRY AIR) GIVEN THE PRESSURE P (MB) AND THE C TEMPERATURE T (CELSIUS). THE FORMULA USED IS GIVEN ON P. 302 OF THE C SMITHSONIAN METEOROLOGICAL TABLES BY ROLAND LIST (6TH EDITION). C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C EPS = RATIO OF THE MEAN MOLECULAR WEIGHT OF WATER (18.016 G/MOLE) C TO THAT OF DRY AIR (28.966 G/MOLE) DATA EPS/0.62197/ C THE NEXT TWO LINES CONTAIN A FORMULA BY HERMAN WOBUS FOR THE C CORRECTION FACTOR WFW FOR THE DEPARTURE OF THE MIXTURE OF AIR C AND WATER VAPOR FROM THE IDEAL GAS LAW. THE FORMULA FITS VALUES C IN TABLE 89, P. 340 OF THE SMITHSONIAN METEOROLOGICAL TABLES, C BUT ONLY FOR TEMPERATURES AND PRESSURES NORMALLY ENCOUNTERED IN C IN THE ATMOSPHERE. X = 0.02*(T-12.5+7500./P) WFW = 1.+4.5E-06*P+1.4E-03*X*X FWESW = WFW*ES(T) R = EPS*FWESW/(P-FWESW) C CONVERT R FROM A DIMENSIONLESS RATIO TO GRAMS/KILOGRAM. WMR = 1000.*R RETURN END