From schlatter@profsc.fsl.noaa.gov Wed Jun 12 16:25:46 1991 General information: -------------------- This is an index of the thermodynamic subprograms located in THERMO.OLB. They are listed according to the general type of calculation that is desired, divided into the following categories: (a) moisture parameters (b) latent heat (c) pressure (d) temperature (e) thickness These algorithms were collected, edited, commented, and tested by Thomas W. Schlatter and Donald V. Baker from August to October 1981 in the PROFS Program Office, NOAA Environmental Research Laboratories, Boulder, Colorado. Where possible, credit has been given to the original author of the algorithm and a reference provided. The input/output units are as follows: Temperature Celsius Pressure millibars Relative humidity percent Saturation specific humidity g vapor/kg moist air Mixing ratio g vapor/kg dry air Thickness meters Precipitable water centimeters Latent heat joules/kg The following symbols are used in subprogram calls: EW water vapor pressure EQPT equivalent potential temperature P pressure PC pressure at the convective condensation level PS surface pressure RH relative humidity T temperature TC temperature at the lifting condensation level TD dew point TH potential temperature (a dry adiabat) THW wet bulb potential temperature (a moist adiabat) W mixing ratio WBAR mean mixing ratio from surface to pressure pm Note: all routines are function subprograms except for "PTLCL", which is a subroutine. Index: routines available for various calculations --------------------------------------------------- (A) Moisture Parameters To Calculate: Available Routine(s): 1. Saturation mixing ratio 1. a) WMR(P,T) b) W(T,P) 2. Precipitable water 2. PRECPW(TD,P,N) (Td and P are dimensioned by N) 3. Relative humidity 3. HUM(T,TD) 4. Saturation specific humidity 4. SSH(P,T) (B) Latent Heat To Calculate Latent Heat Of: Available Routines: 1. Evaporization/Condensation 1. HEATL(1,T) 2. Melting/Freezing 2. HEATL(2,T) 3. Sublimation/Deposition 3. HEATL(3,T) (C) Pressure To Calculate: Available Routine(s): 1. Pressure at Lifting 1. a) ALCL(T,TD,P) Condensation Level b) PCON(P,T,TC) c) (subroutine) PTLCL(P,T,TD,PC,TC) 2. Saturation vapor pressure 2. a) ESW(T) over liquid water b) ES(T) c) ESAT(T) d) ESGG(T) e) ESRW(T) f) ESLO(T) 3. Saturation vapor pressure 3. a) ESICE(T) over ice b) ESILO(T) 4. Pressure at Convective 4. PCCL(PM,P,T,TD,WBAR,N) Condensation Level (P, T, and Td are dimensioned by N) (D) Temperature To Calculate: Available Routine(s): 1. Difference in Wet Bulb Poten- 1. WOBF(T) tial Temperatures for two parcels of air at the same temperature - one saturated and the other completely dry 2. Equivalent temperature 2. TE(T,TD,P) 3. Equivalent potential 3. a) OE(T,TD,P) temperature b) EPT(T,TD,P) c) OS(T,P) 4. Dew point 4. a) DPT(EW) b) DEWPT(EW) c) DWPT(T,RH) 5. Wet bulb potential 5. a) POWT(T,P,TD) temperature b) OW(T,TD,P) c) THM(W,P) 6. Potential temperature 6. O(T,P) 7. Convective temperature 7. CT(WBAR,PC,PS) 8. Virtual temperature 8. TV(T,TD,P) 9. Wet bulb temperature 9. TW(T,TD,P) 10. Temperature at Lifting 10. a) TCON(T,TD) Condensation Level b) TLCL(T,TD) c) (subroutine) PTLCL(P,T,TD,PC,TC) d) TLCL1(T,TD) 11. Temperature along moist 11. SATLFT(THW,P) adiabat at given pressure 12. Temperature on a dry adiabat 12. TDA(TH,P) at given pressure 13. Temperature on a moist adiabat 13. a) TSA(EQPT,P) corresponding to an Equivalent b) TMLAPS(EQPT,P) Potential Temperature "EQPT", at given pressure 14. Temperature on a mixing ratio 14. TMR(W,P) line at given pressure (E) Thickness To Calculate: Available Routine: 1. Thickness between the surface 1. Z(PT,P,T,TD,N) and any other pressure level PT in the sounding. (P,T, and Td are dimensioned by N.) Notes prepared by D. Baker, 24 Dec 86. ############################################################################### General information: -------------------- The following tables give results of the tests performed on routines in [BAKER.THERMO]THERM.FOR. These routines calculate thermo- dynamic parameters that are of interest when analyzing sound- ings. the "Smithsonian Meterological Tables" were utilized to test the accuracy of each routine where possible...otherwise, a Skew T-Log p chart was used. In cases where more than one routine calculates a given parameter, an efficiency test is also included. For the efficiency tests, a specified number of calcula- tions was done by each routine using identical input. After 10 trials, the average time needed by each routine was determined and is listed, thereby indicating which routine is most efficient. for further information involving any of the routines to follow, refer to documentation in [BAKER.THERMO]THERM.FOR. Computer used: VAX 11/780 @ NOAA/ERL/PROFS...Boulder, Colorado. Input/output units: Temperature............celsius Pressure...............millibars Mixing ratio...........gm vapor/kg dry air Relative humidity......percent Sat specific humidity..gm vapor/kg moist air Note: Smith = Smithsonian table value. Where these values do not appear, the routines have been verified using a Skew T- Log p chart due to lack of an applicable table. The number in parentheses next to "Smith" indicates the page number (6th revised edition) of the table used for the test. ############################################################################### TEST OF FUNCTIONS ESW,ES,ESAT,ESGG,ESRW,ESLO PURPOSE: CALCULATE SATURATION VAPOR PRESSURE OVER LIQUID WATER GIVEN TEMPERATURE. TEMP ESW ES ESAT ESGG ESRW ESLO SMITH.(340) ---- ----- ----- ------ ------ ------ ------ ------ -50 .06356 .06357 .06356 .06356 .06362 .06337 .06356 -30 .50878 .51036 .50878 .50880 .50843 .50877 .5088 -10 2.8627 2.8677 2.8626 2.8627 2.8625 2.8635 2.8627 0 6.1080 6.1121 6.1076 6.1078 6.1084 6.1078 6.1078 10 12.272 12.272 12.272 12.272 12.274 12.271 12.272 20 23.372 23.370 23.372 23.373 23.375 23.371 23.373 30 42.430 42.457 42.429 42.430 42.431 42.429 42.430 EFFICIENCY TEST: 5000 CALCULATIONS AT T=20C. FUNC. T(SEC) ---- ------ ESW 1.12 ES 0.88 ESAT 4.50 ESGG 4.63 ESRW 1.08 ESLO 0.64 ############################################################################### TEST OF FUNCTIONS WMR,W PURPOSE: CALCULATE MIXING RATIO GIVEN PRESSURE AND TEMPERATURE. PRES TEMP WMR W SMITH.(302) ---- ---- ------ ------ ------ 1000 30 27.699 27.560 27.69 1000 0 3.840 3.822 3.839 850 10 9.147 9.112 9.146 700 10 11.135 11.099 11.13 500 -20 1.568 1.564 1.568 400 -30 0.794 0.792 0.794 EFFICIENCY TEST: 2000 CALCULATIONS AT T=-10C, P=850MB. FUNC. T(SEC) ----- ------ WMR 0.82 W 1.86 ############################################################################### TEST OF FUNCTIONS TCON,TLCL,TLCL1 PURPOSE: CALCULATE TEMPERATURE AT THE LCL GIVEN TEMPERATURE AND DEW POINT. TEMP DWPT TCON TLCL TLCL1 SMITH.(329) ---- ---- ------ ------ ------ ------ 40 20 15.473 15.449 15.450 15.48 -20 -45 -48.703 -48.768 -48.689 -48.79 10 -20 -25.237 -25.295 -29.401 -25.29 0 -25 -29.277 -29.331 -29.401 -29.31 30 10 5.708 5.682 5.679 5.72 40 35 33.710 33.727 33.636 33.74 EFFICIENCY TEST: 5000 CALCULATIONS AT T=20C, TD= 10C. FUNC. T(SEC) ----- ------ TCON 0.65 TLCL 0.96 TLCL1 1.70 ############################################################################### TEST OF FUNCTION PCON PURPOSE: CALCULATE LCL PRESSURE GIVEN INITIAL TEMPERATURE, DEW POINT, AND LCL TEMPERATURE (TEML). PRES TEMP TEML PCON ---- ---- ---- ------ 1000 35 20 839.59 975 30 20 866.89 950 15 -10 691.24 900 10 -25 566.87 500 -20 -20 500.00 500 -20 -50 321.40 ############################################################################### TEST OF SUBROUTINE PTLCL, AND FUNCTION ALCL PURPOSE: GIVEN TEMPERATURE, DEW POINT, AND PRESSURE... PLTLCL ESTIMATES LCL TEMPERATURE AND PRESSURE; ALCL CALC- ULATES LCL PRESSURE ONLY. PRES TEMP DWPT PTLCL:P PTLCL:T ALCL ---- ---- ---- ------- ------- ------ 1000 35 20 811.46 16.63 806.71 900 25 20 837.04 18.83 840.12 1000 30 28 971.57 27.51 973.34 850 0 -30 544.92 -34.66 528.01 900 16 16 900.00 16.00 900.00 700 -10 -60 333.50 -65.69 300.97 ############################################################################### TEST OF FUNCTION WOBF PURPOSE: CALCULATE THE DIFFERENCE WBPTS-WBPTD (SEE NOTES IN [SCHLATTER]THERMO.FOR FOR EXPLANATION) GIVEN THE TEMPER- ATURE. IN THIS CASE, EQUIVALENT POTENTIAL TEMPERATURE WAS INPUT SO RESULTS COULD BE CHECKED USING THE SMITHSONIAN TABLES. EQPT WOBF(=EQPT-WBPT) SMITH.(319) ---- --------------- ------ 205.24 165.2104 165.24 161.04 125.0629 125.04 113.04 83.1266 83.04 70.34 48.8294 48.34 54.84 37.4419 36.84 42.14 28.6543 28.14 6.74 8.8176 8.74 ############################################################################### TEST OF FUNCTIONS POWT,OW PURPOSE: CALCULATE THE WET-BULB POTENTIAL TEMPERATURE GIVEN THE TEMPERATURE, DEW POINT, AND PRESSURE. TEMP DWPT PRES POWT OW ---- ---- ---- ----- ----- 35 25 1000 27.55 27.61 10 -15 1000 2.13 1.83 -10 -60 850 -4.64 -4.68 15 10 900 16.29 16.42 37 30 1050 29.98 30.13 -5 -5 500 22.05 22.22 EFFICIENCY TEST: 500 CALCULATIONS AT T=10C, TD=-10C, P=850MB. FUNC. T(SEC) ----- ------ POWT 0.53 OW 17.31 ############################################################################### TEST OF FUNCTIONS DPT,DEWPT PURPOSE: CALCULATE DEW POINT GIVEN SATURATION VAPOR PRESSURE. SAT.VP. DPT DEWPT SMITH.(351) ------- ------ ------ ------ 0.1891 -40.002 -40.025 -40 1.2540 -20.000 -20.032 -20 2.8627 -10.000 -10.022 -10 6.1078 0.000 -0.010 0 12.272 10.000 10.000 10 23.373 20.000 20.003 20 EFFICIENCY TEST: 3000 CALCULATIONS AT SVP=.1891MB. FUNC. T(SEC) ----- ------ DPT 1.92 DEWPT 0.59 ############################################################################### TEST OF FUNCTION SATLFT PURPOSE: CALCULATE TEMPERATURE WHERE A MOIST ADIABAT CROSSES A GIVEN PRESSURE GIVEN THE VALUE OF THE MOIST ADIABAT AND THE PRESSURE. PRES THETAW SATLFT SMITH. ----- ------ ------- ------ 204.3 34 -19.791 -20 200 20 -60.356 -62 1071.4 38 40.151 40 501 32 9.941 10 422.7 0 -51.876 -52 ############################################################################### TEST OF FUNCTION HUM PURPOSE: CALCULATE RELATIVE HUMIDITY GIVEN TEMPERATURE AND DEW POINT. TEMP DWPT HUM ---- ---- ----- 35 30 75.46 25 10 38.77 0 -15 31.18 20 -10 12.22 30 28 89.09 TEST OF FUNCTION TW PURPOSE: CALCULATE WET-BULB TEMPERATURE GIVEN TEMPERATURE, DEW POINT, AND PRESSURE. TEMP DWPT PRES TW ---- ---- ---- ----- 30 15 1000 19.99 0 -20 700 -6.05 10 0 850 5.11 -15 -25 500 -17.39 25 20 900 21.57 ############################################################################### TEST OF FUNCTIONS OE,EPT PURPOSE: CALCULATE EQUIVALENT POTENTIAL TEMPERATURE GIVEN TEMP- ERATURE, DEW POINT, AND PRESSURE. TEMP DWPT PRES OE EPT ---- ---- ---- ----- ----- 30 15 1000 62.24 62.49 0 -20 700 33.10 33.01 10 0 850 36.97 37.01 -15 -25 500 45.04 45.02 25 20 900 85.02 84.60 EFFICIENCY TEST: 1000 CALCULATIONS AT T=20C, TD=10C, P=1000MB. FUNC. T(SEC) ----- ------ OE 18.50 EPT 0.80 ############################################################################### TEST OF FUNCTION TE PURPOSE: CALCULATE EQUIVALENT TEMPERATURE GIVEN TEMPERATURE, DEW POINT, AND PRESSURE. TEMP DWPT PRES TE ---- ---- ---- ----- 30 15 1000 62.24 0 -20 700 3.31 10 0 850 22.88 -15 -25 500 -12.18 25 20 900 74.38 ############################################################################### TEST OF FUNCTION TDA PURPOSE: CALCULATE THE TEMPERATURE ON A DRY ADIABAT GIVEN THE VALUE OF THE DRY ADIABAT AND THE PRESSURE. THETA PRES TDA SMITH.(308) ----- ---- ------ ------ 132.74 250 -0.12 0 35.44 500 -20.05 -20 -14.66 1050 -11.03 -11 28.64 850 14.93 -15 18.24 700 -10.02 -10 ############################################################################### TEST OF FUNCTIONS TSA,TMLAPS PURPOSE: CALCULATE TEMPERATURE ON A MOIST ADIABAT GIVEN EQUIVALENT POTENTIAL TEMPERATURE AND PRESSURE. EQPT PRES TSA TMLAPS SMITH.(319) ------ ------ ------ ------- ------ 181.64 870.9 34.170 33.940 34 113.04 577.0 12.139 12.080 12 70.34 896.0 18.057 17.950 18 10.24 496.0 -41.766 -41.669 -42 54.84 309.5 -39.658 -39.600 -40 EFFICIENCY TEST: 500 CALCULATIONS AT EQPT=113.04, P=577MB FUNC. T(SEC) ----- ------ TSA 7.16 TMLAPS 6.81 ############################################################################### TEST OF FUNCTION O PURPOSE: CALCULATE POTENTIAL TEMPERATURE GIVEN TEMPERATURE AND PRESSURE. TEMP PRES O SMITH.(309) ---- ---- ----- ------ -35 850 -23.66 -23.66 -10 500 47.74 47.74 -20 950 -16.26 -16.26 10 1000 10.04 10.00 ############################################################################### TEST OF FUNCTION OS PURPOSE: CALCULATE EQUIVALENT POTENTIAL TEMPERATURE FOR AIR SAT- URATED AT GIVEN TEMPERATURE AND PRESSURE. TEMP PRES OS SMITH.(319) ---- ----- ------ ------- 0 275.3 179.88 181.64 -10 321.4 112.03 113.04 10 501.0 126.27 127.34 10 816.0 54.89 54.84 -50 282.7 47.63 48.14 ############################################################################### TEST OF FUNCTION TMR PURPOSE: CALCULATE THE TEMPERATURE ALONG A GIVEN MIXING RATIO LINE AT A GIVEN PRESSURE. W PRES TMR SMITH.(302) ----- ---- ----- ------ 9.146 850 10.07 10 1.120 700 -19.96 -20 7.710 500 0.03 0 1.960 400 -19.97 -20 14.95 1000 20.10 20 ############################################################################### TEST OF FUNCTION THM PURPOSE: CALCULATE WET-BULB POTENTIAL TEMPERATURE OF A PARCEL SATURATED AT A GIVEN TEMPERATURE AND PRESSURE. TEMP PRES THM SMITH.(319) ---- ------ ------ ------ 12 369.6 46.277 40 -32 188.2 41.376 32 38 1069.8 35.751 36 10 908. 14.205 14 -14 648. 7.841 8 -50 301.7 13.961 14 ############################################################################### TEST OF FUNCTION DWPT PURPOSE: CALCULATE DEW POINT GIVEN TEMPERATURE AND RELATIVE HUM- IDITY. TEMP REL.HUM. TD TD* ---- -------- ------ ----- 35 75.46 30.14 30 25 38.77 9.93 10 0 31.18 -15.19 -15 20 12.22 -10.16 -10 30 89.09 28.01 28 * INPUT RELATIVE HUMIDITY FROM OUTPUT OF FUNCTION HUM. EXPECT DEW POINT OUTPUT TO BE APPROX. DEW POINT INPUT USED IN "HUM". SEE TEST OF FUNCTION HUM FOR COMPARISON. ############################################################################### TEST OF FUNCTION SSH PURPOSE: CALCULATE SATURATION SPECIFIC HUMIDITY GIVEN THE PRESSURE AND TEMPERATURE. PRES TEMP SSH !CHECKED ON HAND CALCULATOR. ---- ---- ----- 1000 10 7.70 1000 0 3.82 850 -10 2.11 700 0 5.46 500 -20 1.57 300 -30 1.06 ############################################################################### TEST OF FUNCTION TV PURPOSE: CALCULATE VIRTUAL TEMPERATURE GIVEN TEMPERATURE, DEW POINT, AND PRESSURE. TEMP DWPT PRES TV !CHECKED ON HAND CALCULATOR. ---- ---- ---- ----- 30 25 1000 33.69 20 0 1000 20.68 10 -10 850 10.36 0 -10 700 0.42 -20 -30 500 -19.90 -40 -60 300 -39.99 ############################################################################### TEST OF FUNCTIONS ESICE,ESILO PURPOSE: CALCULATE SATURATION VAPOR PRESSURE OVER ICE GIVEN TEMP- ERATURE. TEMP ESICE ESILO SMITH.(360) ---- ------- ------- ------ -50 .03935 .03963 .03935 -40 .1283 .1283 .1283 -30 .3798 .3796 .3798 -20 1.032 1.032 1.032 -10 2.597 2.596 2.597 EFFICIENCY TEST: 2000 CALCULATIONS AT T=-10C. FUNC. T(SEC) ----- ------ ESICE 1.10 ESILO 0.39 ############################################################################### TEST OF FUNCTION HEATL PURPOSE: GIVEN TEMPERATURE, TO CALCULATE..... 1) LATENT HEAT OF EVAPORATION/CONDENSATION (KEY=1) 2) LATENT HEAT OF FREEZING/MELTING (KEY=2) 3) LATENT HEAT OF SUBLIMATION/DEPOSITION (KEY=3) (RESULTS VERIFIED USING P.343, SMITH.) TEMP KEY=1 SMITH. KEY=2 SMITH. KEY=3 SMITH. ---- -------- ------- -------- ------ --------- ------ -100 674.2192 674.4 -80 676.1257 676.3 -60 677.3396 677.5 -50 628.1667 629.3 48.7133 48.6 -40 56.1209 56.3 677.8610 678.0 -30 615.5021 615.0 62.9107 63.0 -20 69.0828 69.0 677.6898 677.9 -10 603.2438 603.0 74.6372 74.5 677.3444 677.5 0 597.2670 597.3 79.5740 79.7 676.8259 677.0 10 591.3918 591.7 20 585.6181 586.0 40 574.3755 574.7 50 568.9066 569.0 NOTE: HEATL IS DESIGNED TO RETURN THE LATENT HEATS IN UNITS OF JOULES/KG. TO MAKE RESULTS COMPATIBLE WITH VALUES IN THE SMITHSONIAN TABLES (IT-CAL/GRAM), ANSWERS WERE MULTIPLIED BY THE CORRECTION FACTOR 2.3884E-04 TO OBTAIN THOSE SHOWN ABOVE. ############################################################################### USER_DEV:[GULIB.THERMOSRC]ALCL_TG.FOR;1 FUNCTION ALCL(T,TD,P) 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 THE PRESSURE ALCL (MB) OF THE LIFTING CONDEN- C SATION LEVEL (LCL) FOR A PARCEL INITIALLY AT TEMPERATURE T (CELSIUS) C DEW POINT TD (CELSIUS) AND PRESSURE P (MILLIBARS). ALCL IS COMPUTED C BY AN ITERATIVE PROCEDURE DESCRIBED BY EQS. 8-12 IN STIPANUK (1973), C PP.13-14. C DETERMINE THE MIXING RATIO LINE THROUGH TD AND P. AW = W(TD,P) C DETERMINE THE DRY ADIABAT THROUGH T AND P. AO = O(T,P) C ITERATE TO LOCATE PRESSURE PI AT THE INTERSECTION OF THE TWO C CURVES. PI HAS BEEN SET TO P FOR THE INITIAL GUESS. 3 CONTINUE PI = P DO 4 I= 1,10 X= .02*(TMR(AW,PI)-TDA(AO,PI)) IF (ABS(X).LT.0.01) GO TO 5 4 PI= PI*(2.**(X)) 5 ALCL= PI RETURN ENTRY ALCLM(T,TD,P) C FOR ENTRY ALCLM ONLY, T IS THE MEAN POTENTIAL TEMPERATURE (CELSIUS) C AND TD IS THE MEAN MIXING RATIO (G/KG) OF THE LAYER CONTAINING THE C PARCEL. AW = TD AO = T GO TO 3 END USER_DEV:[GULIB.THERMOSRC]CT_TG.FOR;1 FUNCTION CT(WBAR,PC,PS) 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 THE CONVECTIVE TEMPERATURE CT (CELSIUS) C GIVEN THE MEAN MIXING RATIO WBAR (G/KG) IN THE SURFACE LAYER, C THE PRESSURE PC (MB) AT THE CONVECTIVE CONDENSATION LEVEL (CCL) C AND THE SURFACE PRESSURE PS (MB). C COMPUTE THE TEMPERATURE (CELSIUS) AT THE CCL. TC= TMR(WBAR,PC) C COMPUTE THE POTENTIAL TEMPERATURE (CELSIUS), I.E., THE DRY C ADIABAT AO THROUGH THE CCL. AO= O(TC,PC) C COMPUTE THE SURFACE TEMPERATURE ON THE SAME DRY ADIABAT AO. CT= TDA(AO,PS) RETURN END USER_DEV:[GULIB.THERMOSRC]DEWPT_TG.FOR;1 FUNCTION DEWPT(EW) C THIS FUNCTION YIELDS THE DEW POINT DEWPT (CELSIUS), GIVEN THE C WATER VAPOR PRESSURE EW (MILLIBARS). C THE EMPIRICAL FORMULA APPEARS IN BOLTON, DAVID, 1980: C "THE COMPUTATION OF EQUIVALENT POTENTIAL TEMPERATURE," C MONTHLY WEATHER REVIEW, VOL. 108, NO. 7 (JULY), P. 1047, EQ.(11). C THE QUOTED ACCURACY IS 0.03C OR LESS FOR -35 < DEWPT < 35C. C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. ENL = ALOG(EW) DEWPT = (243.5*ENL-440.8)/(19.48-ENL) RETURN END USER_DEV:[GULIB.THERMOSRC]DPT_TG.FOR;1 FUNCTION DPT(EW) C THIS FUNCTION RETURNS THE DEW POINT DPT (CELSIUS), GIVEN THE C WATER VAPOR PRESSURE EW (MILLIBARS). C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. DATA ES0/6.1078/ C ES0 = SATURATION VAPOR PRESSURE (MB) OVER WATER AT 0C C RETURN A FLAG VALUE IF THE VAPOR PRESSURE IS OUT OF RANGE. IF (EW.GT..06.AND.EW.LT.1013.) GO TO 5 DPT = 9999. RETURN 5 CONTINUE C APPROXIMATE DEW POINT BY MEANS OF TETEN'S FORMULA. C THE FORMULA APPEARS AS EQ.(8) IN BOLTON, DAVID, 1980: C "THE COMPUTATION OF EQUIVALENT POTENTIAL TEMPERATURE," C MONTHLY WEATHER REVIEW, VOL 108, NO. 7 (JULY), P.1047. C THE FORMULA IS EW(T) = ES0*10**(7.5*T/(T+237.3)) C OR EW(T) = ES0*EXP(17.269388*T/(T+237.3)) C THE INVERSE FORMULA IS USED BELOW. X = ALOG(EW/ES0) DNM = 17.269388-X T = 237.3*X/DNM FAC = 1./(EW*DNM) C LOOP FOR ITERATIVE IMPROVEMENT OF THE ESTIMATE OF DEW POINT 10 CONTINUE C GET THE PRECISE VAPOR PRESSURE CORRESPONDING TO T. EDP = ESW(T) C ESTIMATE THE CHANGE IN TEMPERATURE CORRESPONDING TO (EW-EDP) C ASSUME THAT THE DERIVATIVE OF TEMPERATURE WITH RESPECT TO C VAPOR PRESSURE (DTDEW) IS GIVEN BY THE DERIVATIVE OF THE C INVERSE TETEN FORMULA. DTDEW = (T+237.3)*FAC DT = DTDEW*(EW-EDP) T = T+DT IF (ABS(DT).GT.1.E-04) GO TO 10 DPT = T RETURN END USER_DEV:[GULIB.THERMOSRC]DWPT_TG.FOR;1 FUNCTION DWPT(T,RH) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE DEW POINT (CELSIUS) GIVEN THE TEMPERATURE C (CELSIUS) AND RELATIVE HUMIDITY (%). THE FORMULA IS USED IN THE C PROCESSING OF U.S. RAWINSONDE DATA AND IS REFERENCED IN PARRY, H. C DEAN, 1969: "THE SEMIAUTOMATIC COMPUTATION OF RAWINSONDES," C TECHNICAL MEMORANDUM WBTM EDL 10, U.S. DEPARTMENT OF COMMERCE, C ENVIRONMENTAL SCIENCE SERVICES ADMINISTRATION, WEATHER BUREAU, C OFFICE OF SYSTEMS DEVELOPMENT, EQUIPMENT DEVELOPMENT LABORATORY, C SILVER SPRING, MD (OCTOBER), PAGE 9 AND PAGE II-4, LINE 460. X = 1.-0.01*RH C COMPUTE DEW POINT DEPRESSION. DPD =(14.55+0.114*T)*X+((2.5+0.007*T)*X)**3+(15.9+0.117*T)*X**14 DWPT = T-DPD RETURN END USER_DEV:[GULIB.THERMOSRC]EPT_TG.FOR;1 FUNCTION EPT(T,TD,P) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE EQUIVALENT POTENTIAL TEMPERATURE EPT C (CELSIUS) FOR A PARCEL OF AIR INITIALLY AT TEMPERATURE T (CELSIUS), C DEW POINT TD (CELSIUS) AND PRESSURE P (MILLIBARS). THE FORMULA USED C IS EQ.(43) IN BOLTON, DAVID, 1980: "THE COMPUTATION OF EQUIVALENT C POTENTIAL TEMPERATURE," MONTHLY WEATHER REVIEW, VOL. 108, NO. 7 C (JULY), PP. 1046-1053. THE MAXIMUM ERROR IN EPT IN 0.3C. IN MOST C CASES THE ERROR IS LESS THAN 0.1C. C C COMPUTE THE MIXING RATIO (GRAMS OF WATER VAPOR PER KILOGRAM OF C DRY AIR). W = WMR(P,TD) C COMPUTE THE TEMPERATURE (CELSIUS) AT THE LIFTING CONDENSATION LEVEL. TLCL = TCON(T,TD) TK = T+273.15 TL = TLCL+273.15 PT = TK*(1000./P)**(0.2854*(1.-0.00028*W)) EPTK = PT*EXP((3.376/TL-0.00254)*W*(1.+0.00081*W)) EPT= EPTK-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]ESAT_TG.FOR;1 FUNCTION ESAT(T) 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 THE SATURATION VAPOR PRESSURE OVER C WATER (MB) GIVEN THE TEMPERATURE (CELSIUS). C THE ALGORITHM IS DUE TO NORDQUIST, W.S.,1973: "NUMERICAL APPROXIMA- C TIONS OF SELECTED METEORLOLGICAL PARAMETERS FOR CLOUD PHYSICS PROB- C LEMS," ECOM-5475, ATMOSPHERIC SCIENCES LABORATORY, U.S. ARMY C ELECTRONICS COMMAND, WHITE SANDS MISSILE RANGE, NEW MEXICO 88002. TK = T+273.15 P1 = 11.344-0.0303998*TK P2 = 3.49149-1302.8844/TK C1 = 23.832241-5.02808*ALOG10(TK) ESAT = 10.**(C1-1.3816E-7*10.**P1+8.1328E-3*10.**P2-2949.076/TK) RETURN END USER_DEV:[GULIB.THERMOSRC]ESGG_TG.FOR;1 FUNCTION ESGG(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 ESGG (MILLIBARS) GIVEN THE TEMPERATURE T (CELSIUS). THE C FORMULA USED, DUE TO GOFF AND GRATCH, APPEARS ON P. 350 OF THE C SMITHSONIAN METEOROLOGICAL TABLES, SIXTH REVISED EDITION, 1963, C BY ROLAND LIST. DATA CTA,EWS,TS/273.15,1013.246,373.15/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURES C EWS = SATURATION VAPOR PRESSURE (MB) OVER LIQUID WATER AT 100C C TS = BOILING POINT OF WATER (K) DATA C1, C2, C3, C4, C5, C6 1 / 7.90298, 5.02808, 1.3816E-7, 11.344, 8.1328E-3, 3.49149 / TK = T+CTA C GOFF-GRATCH FORMULA RHS = -C1*(TS/TK-1.)+C2*ALOG10(TS/TK)-C3*(10.**(C4*(1.-TK/TS)) 1 -1.)+C5*(10.**(-C6*(TS/TK-1.))-1.)+ALOG10(EWS) ESW = 10.**RHS IF (ESW.LT.0.) ESW = 0. ESGG = ESW RETURN END USER_DEV:[GULIB.THERMOSRC]ESICE_TG.FOR;2 FUNCTION ESICE(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 WITH RESPECT TO C ICE ESICE (MILLIBARS) GIVEN THE TEMPERATURE T (CELSIUS). C THE FORMULA USED IS BASED UPON THE INTEGRATION OF THE CLAUSIUS- C CLAPEYRON EQUATION BY GOFF AND GRATCH. THE FORMULA APPEARS ON P.350 C OF THE SMITHSONIAN METEOROLOGICAL TABLES, SIXTH REVISED EDITION, C 1963. DATA CTA,EIS/273.15,6.1071/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURE C EIS = SATURATION VAPOR PRESSURE (MB) OVER A WATER-ICE MIXTURE AT 0C DATA C1,C2,C3/9.09718,3.56654,0.876793/ C C1,C2,C3 = EMPIRICAL COEFFICIENTS IN THE GOFF-GRATCH FORMULA IF (T.LE.0.) GO TO 5 ESICE = 99999. WRITE(6,3)ESICE UNLOCK (6) 3 FORMAT(' SATURATION VAPOR PRESSURE FOR ICE CANNOT BE COMPUTED', 1 /' FOR TEMPERATURE > 0C. ESICE =',F7.0) RETURN 5 CONTINUE C FREEZING POINT OF WATER (K) TF = CTA TK = T+CTA C GOFF-GRATCH FORMULA RHS = -C1*(TF/TK-1.)-C2*ALOG10(TF/TK)+C3*(1.-TK/TF)+ALOG10(EIS) ESI = 10.**RHS IF (ESI.LT.0.) ESI = 0. ESICE = ESI RETURN END USER_DEV:[GULIB.THERMOSRC]ESILO_TG.FOR;2 FUNCTION ESILO(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 ICE C ESILO (MILLIBARS) GIVEN THE TEMPERATURE T (CELSIUS). THE FORMULA C IS DUE TO LOWE, PAUL R., 1977: AN APPROXIMATING POLYNOMIAL FOR C 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.109177956, 5.034698970E-01, 1.886013408E-02, 2 4.176223716E-04, 5.824720280E-06, 4.838803174E-08, 3 1.838826904E-10/ IF (T.LE.0.) GO TO 5 ESILO = 9999. WRITE(6,3)ESILO UNLOCK (6) 3 FORMAT(' SATURATION VAPOR PRESSURE OVER ICE IS UNDEFINED FOR', 1 /' TEMPERATURE > 0C. ESILO =',F6.0) RETURN 5 CONTINUE ESILO = A0+T*(A1+T*(A2+T*(A3+T*(A4+T*(A5+A6*T))))) RETURN END USER_DEV:[GULIB.THERMOSRC]ESLO_TG.FOR;1 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 USER_DEV:[GULIB.THERMOSRC]ESRW_TG.FOR;1 FUNCTION ESRW(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 ESRW (MILLIBARS) GIVEN THE TEMPERATURE T (CELSIUS). THE C FORMULA USED IS DUE TO RICHARDS, J.M., 1971: SIMPLE EXPRESSION C FOR THE SATURATION VAPOUR PRESSURE OF WATER IN THE RANGE -50 TO C 140C, BRITISH JOURNAL OF APPLIED PHYSICS, VOL. 4, PP.L15-L18. C THE FORMULA WAS QUOTED MORE RECENTLY BY WIGLEY, T.M.L.,1974: C COMMENTS ON 'A SIMPLE BUT ACCURATE FORMULA FOR THE SATURATION C VAPOR PRESSURE OVER LIQUID WATER,' JOURNAL OF APPLIED METEOROLOGY, C VOL. 13, NO. 5 (AUGUST) P.606. DATA CTA,TS,EWS/273.15,373.15,1013.25/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURE C TS = TEMPERATURE OF THE BOILING POINT OF WATER (K) C EWS = SATURATION VAPOR PRESSURE OVER LIQUID WATER AT 100C DATA C1, C2, C3, C4 1 / 13.3185,-1.9760,-0.6445,-0.1299 / TK = T+CTA X = 1.-TS/TK PX = X*(C1+X*(C2+X*(C3+C4*X))) VP = EWS*EXP(PX) IF (VP.LT.0) VP = 0. ESRW = VP RETURN END USER_DEV:[GULIB.THERMOSRC]ESW_TG.FOR;1 FUNCTION ESW(T) C THIS FUNCTION RETURNS THE SATURATION VAPOR PRESSURE ESW (MILLIBARS) C OVER LIQUID WATER GIVEN THE TEMPERATURE T (CELSIUS). THE POLYNOMIAL C APPROXIMATION BELOW IS DUE TO HERMAN WOBUS, A MATHEMATICIAN WHO C WORKED AT THE NAVY WEATHER RESEARCH FACILITY, NORFOLK, VIRGINIA, C BUT WHO IS NOW RETIRED. THE COEFFICIENTS OF THE POLYNOMIAL WERE C CHOSEN TO FIT THE VALUES IN TABLE 94 ON PP. 351-353 OF THE SMITH- C SONIAN METEOROLOGICAL TABLES BY ROLAND LIST (6TH EDITION). THE C APPROXIMATION IS VALID FOR -50 < T < 100C. C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C C ES0 = SATURATION VAPOR RESSURE OVER LIQUID WATER AT 0C DATA ES0/6.1078/ POL = 0.99999683 + T*(-0.90826951E-02 + 1 T*(0.78736169E-04 + T*(-0.61117958E-06 + 2 T*(0.43884187E-08 + T*(-0.29883885E-10 + 3 T*(0.21874425E-12 + T*(-0.17892321E-14 + 4 T*(0.11112018E-16 + T*(-0.30994571E-19))))))))) ESW = ES0/POL**8 RETURN END USER_DEV:[GULIB.THERMOSRC]ES_TG.FOR;1 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 USER_DEV:[GULIB.THERMOSRC]HEATL_TG.FOR;1 FUNCTION HEATL(KEY,T) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE LATENT HEAT OF C EVAPORATION/CONDENSATION FOR KEY=1 C MELTING/FREEZING FOR KEY=2 C SUBLIMATION/DEPOSITION FOR KEY=3 C FOR WATER. THE LATENT HEAT HEATL (JOULES PER KILOGRAM) IS A C FUNCTION OF TEMPERATURE T (CELSIUS). THE FORMULAS ARE POLYNOMIAL C APPROXIMATIONS TO THE VALUES IN TABLE 92, P. 343 OF THE SMITHSONIAN C METEOROLOGICAL TABLES, SIXTH REVISED EDITION, 1963 BY ROLAND LIST. C THE APPROXIMATIONS WERE DEVELOPED BY ERIC SMITH AT COLORADO STATE C UNIVERSITY. C POLYNOMIAL COEFFICIENTS DATA A0,A1,A2/ 3337118.5,-3642.8583, 2.1263947/ DATA B0,B1,B2/-1161004.0, 9002.2648,-12.931292/ DATA C0,C1,C2/ 2632536.8, 1726.9659,-3.6248111/ HLTNT = 0. TK = T+273.15 IF (KEY.EQ.1) HLTNT=A0+A1*TK+A2*TK*TK IF (KEY.EQ.2) HLTNT=B0+B1*TK+B2*TK*TK IF (KEY.EQ.3) HLTNT=C0+C1*TK+C2*TK*TK HEATL = HLTNT RETURN END USER_DEV:[GULIB.THERMOSRC]HUM_TG.FOR;1 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.*(ESAT(TD)/ESAT(T)) RETURN END USER_DEV:[GULIB.THERMOSRC]OE_TG.FOR;1 FUNCTION OE(T,TD,P) 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 EQUIVALENT POTENTIAL TEMPERATURE OE (CELSIUS) C OF A PARCEL OF AIR GIVEN ITS TEMPERATURE T (CELSIUS), DEW POINT C TD (CELSIUS) AND PRESSURE P (MILLIBARS). C FIND THE WET BULB TEMPERATURE OF THE PARCEL. ATW = TW(T,TD,P) C FIND THE EQUIVALENT POTENTIAL TEMPERATURE. OE = OS(ATW,P) RETURN END USER_DEV:[GULIB.THERMOSRC]OS_TG.FOR;1 FUNCTION OS(T,P) 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 THE EQUIVALENT POTENTIAL TEMPERATURE OS C (CELSIUS) FOR A PARCEL OF AIR SATURATED AT TEMPERATURE T (CELSIUS) C AND PRESSURE P (MILLIBARS). DATA B/2.6518986/ C B IS AN EMPIRICAL CONSTANT APPROXIMATELY EQUAL TO THE LATENT HEAT C OF VAPORIZATION FOR WATER DIVIDED BY THE SPECIFIC HEAT AT CONSTANT C PRESSURE FOR DRY AIR. TK = T+273.15 OSK= TK*((1000./P)**.286)*(EXP(B*W(T,P)/TK)) OS= OSK-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]OW_TG.FOR;1 FUNCTION OW(T,TD,P) 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 THE WET-BULB POTENTIAL TEMPERATURE OW C (CELSIUS) GIVEN THE TEMPERATURE T (CELSIUS), DEW POINT TD C (CELSIUS), AND PRESSURE P (MILLIBARS). THE CALCULATION FOR OW IS C VERY SIMILAR TO THAT FOR WET BULB TEMPERATURE. SEE P.13 STIPANUK (1973). C FIND THE WET BULB TEMPERATURE OF THE PARCEL ATW = TW(T,TD,P) C FIND THE EQUIVALENT POTENTIAL TEMPERATURE OF THE PARCEL. AOS= OS(ATW,P) C FIND THE WET-BULB POTENTIAL TEMPERATURE. OW= TSA(AOS,1000.) RETURN END USER_DEV:[GULIB.THERMOSRC]O_TG.FOR;1 FUNCTION O(T,P) 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 POTENTIAL TEMPERATURE (CELSIUS) GIVEN C TEMPERATURE T (CELSIUS) AND PRESSURE P (MB) BY SOLVING THE POISSON C EQUATION. TK= T+273.15 OK= TK*((1000./P)**.286) O= OK-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]PCCL_TG.FOR;1 FUNCTION PCCL(PM,P,T,TD,WBAR,N) 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 THE PRESSURE AT THE CONVECTIVE CONDENSATION C LEVEL GIVEN THE APPROPRIATE SOUNDING DATA. C ON INPUT: C P = PRESSURE (MILLIBARS). NOTE THAT P(I).GT.P(I+1). C T = TEMPERATURE (CELSIUS) C TD = DEW POINT (CELSIUS) C N = NUMBER OF LEVELS IN THE SOUNDING AND THE DIMENSION OF C P, T AND TD C PM = PRESSURE (MILLIBARS) AT UPPER BOUNDARY OF THE LAYER FOR C COMPUTING THE MEAN MIXING RATIO. P(1) IS THE LOWER C BOUNDARY. C ON OUTPUT: C PCCL = PRESSURE (MILLIBARS) AT THE CONVECTIVE CONDENSATION LEVEL C WBAR = MEAN MIXING RATIO (G/KG) IN THE LAYER BOUNDED BY C PRESSURES P(1) AT THE BOTTOM AND PM AT THE TOP C THE ALGORITHM IS DECRIBED ON P.17 OF STIPANUK, G.S.,1973: C "ALGORITHMS FOR GENERATING A SKEW-T LOG P DIAGRAM AND COMPUTING C SELECTED METEOROLOGICAL QUANTITIES," ATMOSPHERIC SCIENCES LABORA- C TORY, U.S. ARMY ELECTRONICS COMMAND, WHITE SANDS MISSILE RANGE, NEW C MEXICO 88002. DIMENSION T(1),P(1),TD(1) IF (PM.NE.P(1)) GO TO 5 WBAR= W(TD(1),P(1)) PC= PM IF (ABS(T(1)-TD(1)).LT.0.05) GO TO 45 GO TO 25 5 CONTINUE WBAR= 0. K= 0 10 CONTINUE K = K+1 IF (P(K).GT.PM) GO TO 10 K= K-1 J= K-1 IF(J.LT.1) GO TO 20 C COMPUTE THE AVERAGE MIXING RATIO....ALOG = NATURAL LOG DO 15 I= 1,J L= I+1 15 WBAR= (W(TD(I),P(I))+W(TD(L),P(L)))*ALOG(P(I)/P(L)) * +WBAR 20 CONTINUE L= K+1 C ESTIMATE THE DEW POINT AT PRESSURE PM. TQ= TD(K)+(TD(L)-TD(K))*(ALOG(PM/P(K)))/(ALOG(P(L)/P(K))) WBAR= WBAR+(W(TD(K),P(K))+W(TQ,PM))*ALOG(P(K)/PM) WBAR= WBAR/(2.*ALOG(P(1)/PM)) C FIND LEVEL AT WHICH THE MIXING RATIO LINE WBAR CROSSES THE C ENVIRONMENTAL TEMPERATURE PROFILE. 25 CONTINUE DO 30 J= 1,N I= N-J+1 IF (P(I).LT.300.) GO TO 30 C TMR = TEMPERATURE (CELSIUS) AT PRESSURE P (MB) ALONG A MIXING C RATIO LINE GIVEN BY WBAR (G/KG) X= TMR(WBAR,P(I))-T(I) IF (X.LE.0.) GO TO 35 30 CONTINUE PCCL= 0.0 RETURN C SET UP BISECTION ROUTINE 35 L = I I= I+1 DEL= P(L)-P(I) PC= P(I)+.5*DEL A= (T(I)-T(L))/ALOG(P(L)/P(I)) DO 40 J= 1,10 DEL= DEL/2. X= TMR(WBAR,PC)-T(L)-A*(ALOG(P(L)/PC)) C THE SIGN FUNCTION REPLACES THE SIGN OF THE FIRST ARGUMENT C WITH THAT OF THE SECOND. 40 PC= PC+SIGN(DEL,X) 45 PCCL = PC RETURN END USER_DEV:[GULIB.THERMOSRC]PCON_TG.FOR;1 FUNCTION PCON(P,T,TC) C THIS FUNCTION RETURNS THE PRESSURE PCON (MB) AT THE LIFTED CONDENSA- C TION LEVEL, GIVEN THE INITIAL PRESSURE P (MB) AND TEMPERATURE T C (CELSIUS) OF THE PARCEL AND THE TEMPERATURE TC (CELSIUS) AT THE C LCL. THE ALGORITHM IS EXACT. IT MAKES USE OF THE FORMULA FOR THE C POTENTIAL TEMPERATURES CORRESPONDING TO T AT P AND TC AT PCON. C THESE TWO POTENTIAL TEMPERATURES ARE EQUAL. C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C DATA AKAPI/3.5037/ C AKAPI = (SPECIFIC HEAT AT CONSTANT PRESSURE FOR DRY AIR) / C (GAS CONSTANT FOR DRY AIR) C CONVERT T AND TC TO KELVIN TEMPERATURES. TK = T+273.15 TCK = TC+273.15 PCON = P*(TCK/TK)**AKAPI RETURN END USER_DEV:[GULIB.THERMOSRC]POWT_TG.FOR;1 FUNCTION POWT(T,P,TD) C THIS FUNCTION YIELDS WET-BULB POTENTIAL TEMPERATURE POWT C (CELSIUS), GIVEN THE FOLLOWING INPUT: C T = TEMPERATURE (CELSIUS) C P = PRESSURE (MILLIBARS) C TD = DEW POINT (CELSIUS) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. DATA CTA,AKAP/273.15,0.28541/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURES C AKAP = (GAS CONSTANT FOR DRY AIR) / (SPECIFIC HEAT AT C CONSTANT PRESSURE FOR DRY AIR) C COMPUTE THE POTENTIAL TEMPERATURE (CELSIUS) PT = (T+CTA)*(1000./P)**AKAP-CTA C COMPUTE THE LIFTING CONDENSATION LEVEL (LCL). TC = TCON(T,TD) C FOR THE ORIGIN OF THE FOLLOWING APPROXIMATION, SEE THE DOCUMEN- C TATION FOR THE WOBUS FUNCTION. POWT = PT-WOBF(PT)+WOBF(TC) RETURN END USER_DEV:[GULIB.THERMOSRC]PRECPW_TG.FOR;1 FUNCTION PRECPW(TD,P,N) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION COMPUTES TOTAL PRECIPITABLE WATER PRECPW (CM) IN A C VERTICAL COLUMN OF AIR BASED UPON SOUNDING DATA AT N LEVELS: C TD = DEW POINT (CELSIUS) C P = PRESSURE (MILLIBARS) C CALCULATIONS ARE DONE IN CGS UNITS. DIMENSION TD(N),P(N) C G = ACCELERATION DUE TO THE EARTH'S GRAVITY (CM/S**2) DATA G/980.616/ C INITIALIZE VALUE OF PRECIPITABLE WATER PW = 0. NL = N-1 C CALCULATE THE MIXING RATIO AT THE LOWEST LEVEL. WBOT = WMR(P(1),TD(1)) DO 5 I=1,NL WTOP = WMR(P(I+1),TD(I+1)) C CALCULATE THE LAYER-MEAN MIXING RATIO (G/KG). W = 0.5*(WTOP+WBOT) C MAKE THE MIXING RATIO DIMENSIONLESS. WL = .001*W C CALCULATE THE SPECIFIC HUMIDITY. QL = WL/(WL+1.) C THE FACTOR OF 1000. BELOW CONVERTS FROM MILLIBARS TO DYNES/CM**2. DP = 1000.*(P(I)-P(I+1)) PW = PW+(QL/G)*DP WBOT = WTOP 5 CONTINUE PRECPW = PW RETURN END USER_DEV:[GULIB.THERMOSRC]PTLCL_TG.FOR;1 SUBROUTINE PTLCL(P,T,TD,PC,TC) C THIS SUBROUTINE ESTIMATES THE PRESSURE PC (MB) AND THE TEMPERATURE C TC (CELSIUS) AT THE LIFTED CONDENSATION LEVEL (LCL), GIVEN THE C INITIAL PRESSURE P (MB), TEMPERATURE T (CELSIUS) AND DEW POINT C (CELSIUS) OF THE PARCEL. THE APPROXIMATION IS THAT LINES OF C CONSTANT POTENTIAL TEMPERATURE AND CONSTANT MIXING RATIO ARE C STRAIGHT ON THE SKEW T/LOG P CHART. C TETEN'S FORMULA FOR SATURATION VAPOR PRESSURE AS A FUNCTION OF C PRESSURE WAS USED IN THE DERIVATION OF THE FORMULA BELOW. FOR C ADDITIONAL DETAILS, SEE MATH NOTES BY T. SCHLATTER DATED 8 SEP 81. C T. SCHLATTER, NOAA/ERL/PROFS PROGRAM OFFICE, BOULDER, COLORADO, C WROTE THIS SUBROUTINE. C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C AKAP = (GAS CONSTANT FOR DRY AIR) / (SPECIFIC HEAT AT CONSTANT C PRESSURE FOR DRY AIR) C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURES DATA AKAP,CTA/0.28541,273.15/ C1 = 4098.026/(TD+237.3)**2 C2 = 1./(AKAP*(T+CTA)) PC = P*EXP(C1*C2*(T-TD)/(C2-C1)) TC = T+C1*(T-TD)/(C2-C1) RETURN END USER_DEV:[GULIB.THERMOSRC]SATLFT_TG.FOR;1 FUNCTION SATLFT(THW,P) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C INPUT: THW = WET-BULB POTENTIAL TEMPERATURE (CELSIUS). C THW DEFINES A MOIST ADIABAT. C P = PRESSURE (MILLIBARS) C OUTPUT: SATLFT = TEMPERATURE (CELSIUS) WHERE THE MOIST ADIABAT C CROSSES P DATA CTA,AKAP/273.15,0.28541/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURES C AKAP = (GAS CONSTANT FOR DRY AIR) / (SPECIFIC HEAT AT CONSTANT C PRESSURE FOR DRY AIR) C THE ALGORITHM BELOW CAN BEST BE UNDERSTOOD BY REFERRING TO A C SKEW-T/LOG P CHART. IT WAS DEVISED BY HERMAN WOBUS, A MATHEMATI- C CIAN FORMERLY AT THE NAVY WEATHER RESEARCH FACILITY BUT NOW RETIRED. C THE VALUE RETURNED BY SATLFT CAN BE CHECKED BY REFERRING TO TABLE C 78, PP.319-322, SMITHSONIAN METEOROLOGICAL TABLES, BY ROLAND LIST C (6TH REVISED EDITION). C IF (P.NE.1000.) GO TO 5 SATLFT = THW RETURN 5 CONTINUE C COMPUTE TONE, THE TEMPERATURE WHERE THE DRY ADIABAT WITH VALUE THW C (CELSIUS) CROSSES P. PWRP = (P/1000.)**AKAP TONE = (THW+CTA)*PWRP-CTA C CONSIDER THE MOIST ADIABAT EW1 THROUGH TONE AT P. USING THE DEFINI- C TION OF THE WOBUS FUNCTION (SEE DOCUMENTATION ON WOBF), IT CAN BE C SHOWN THAT EONE = EW1-THW. EONE = WOBF(TONE)-WOBF(THW) RATE = 1. GO TO 15 C IN THE LOOP BELOW, THE ESTIMATE OF SATLFT IS ITERATIVELY IMPROVED. 10 CONTINUE C RATE IS THE RATIO OF A CHANGE IN T TO THE CORRESPONDING CHANGE IN C E. ITS INITIAL VALUE WAS SET TO 1 ABOVE. RATE = (TTWO-TONE)/(ETWO-EONE) TONE = TTWO EONE = ETWO 15 CONTINUE C TTWO IS AN IMPROVED ESTIMATE OF SATLFT. TTWO = TONE-EONE*RATE C PT IS THE POTENTIAL TEMPERATURE (CELSIUS) CORRESPONDING TO TTWO AT P PT = (TTWO+CTA)/PWRP-CTA C CONSIDER THE MOIST ADIABAT EW2 THROUGH TTWO AT P. USING THE DEFINI- C TION OF THE WOBUS FUNCTION, IT CAN BE SHOWN THAT ETWO = EW2-THW. ETWO = PT+WOBF(TTWO)-WOBF(PT)-THW C DLT IS THE CORRECTION TO BE SUBTRACTED FROM TTWO. DLT = ETWO*RATE IF (ABS(DLT).GT.0.1) GO TO 10 SATLFT = TTWO-DLT RETURN END USER_DEV:[GULIB.THERMOSRC]SSH_TG.FOR;1 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 USER_DEV:[GULIB.THERMOSRC]TCON_TG.FOR;1 FUNCTION TCON(T,D) C THIS FUNCTION RETURNS THE TEMPERATURE TCON (CELSIUS) AT THE LIFTING C CONDENSATION LEVEL, GIVEN THE TEMPERATURE T (CELSIUS) AND THE C DEW POINT D (CELSIUS). C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C C COMPUTE THE DEW POINT DEPRESSION S. S = T-D C THE APPROXIMATION BELOW, A THIRD ORDER POLYNOMIAL IN S AND T, C IS DUE TO HERMAN WOBUS. THE SOURCE OF DATA FOR FITTING THE C POLYNOMIAL IS UNKNOWN. DLT = S*(1.2185+1.278E-03*T+ 1 S*(-2.19E-03+1.173E-05*S-5.2E-06*T)) TCON = T-DLT RETURN END USER_DEV:[GULIB.THERMOSRC]TDA_TG.FOR;1 FUNCTION TDA(O,P) 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 THE TEMPERATURE TDA (CELSIUS) ON A DRY ADIABAT C AT PRESSURE P (MILLIBARS). THE DRY ADIABAT IS GIVEN BY C POTENTIAL TEMPERATURE O (CELSIUS). THE COMPUTATION IS BASED ON C POISSON'S EQUATION. OK= O+273.15 TDAK= OK*((P*.001)**.286) TDA= TDAK-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]TE_TG.FOR;1 FUNCTION TE(T,TD,P) 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 THE EQUIVALENT TEMPERATURE TE (CELSIUS) OF A C PARCEL OF AIR GIVEN ITS TEMPERATURE T (CELSIUS), DEW POINT (CELSIUS) C AND PRESSURE P (MILLIBARS). C CALCULATE EQUIVALENT POTENTIAL TEMPERATURE. AOE = OE(T,TD,P) C USE POISSONS'S EQUATION TO CALCULATE EQUIVALENT TEMPERATURE. TE= TDA(AOE,P) RETURN END USER_DEV:[GULIB.THERMOSRC]THM_TG.FOR;1 FUNCTION THM(T,P) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE WET-BULB POTENTIAL TEMPERATURE THM C (CELSIUS) CORRESPONDING TO A PARCEL OF AIR SATURATED AT C TEMPERATURE T (CELSIUS) AND PRESSURE P (MILLIBARS). F(X) = 1.8199427E+01+X*( 2.1640800E-01+X*( 3.0716310E-04+X* 1 (-3.8953660E-06+X*( 1.9618200E-08+X*( 5.2935570E-11+X* 2 ( 7.3995950E-14+X*(-4.1983500E-17))))))) THM = T IF (P.EQ.1000.) RETURN C COMPUTE THE POTENTIAL TEMPERATURE (CELSIUS). THD = (T+273.15)*(1000./P)**.286-273.15 THM = THD+6.071*(EXP(T/F(T))-EXP(THD/F(THD))) RETURN END USER_DEV:[GULIB.THERMOSRC]TLCL1_TG.FOR;1 FUNCTION TLCL1(T,TD) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE TEMPERATURE TLCL1 (CELSIUS) OF THE LIFTING C CONDENSATION LEVEL (LCL) GIVEN THE INITIAL TEMPERATURE T (CELSIUS) C AND DEW POINT TD (CELSIUS) OF A PARCEL OF AIR. C ERIC SMITH AT COLORADO STATE UNIVERSITY HAS USED THE FORMULA C BELOW, BUT ITS ORIGIN IS UNKNOWN. DATA CTA/273.15/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURE TK = T+CTA C COMPUTE THE PARCEL VAPOR PRESSURE (MB). ES = ESLO(TD) TLCL = 2840./(3.5*ALOG(TK)-ALOG(ES)-4.805)+55. TLCL1 = TLCL-CTA RETURN END USER_DEV:[GULIB.THERMOSRC]TLCL_TG.FOR;1 FUNCTION TLCL(T,TD) C THIS FUNCTION YIELDS THE TEMPERATURE TLCL (CELSIUS) OF THE LIFTING C CONDENSATION LEVEL, GIVEN THE TEMPERATURE T (CELSIUS) AND THE C DEW POINT TD (CELSIUS). THE FORMULA USED IS IN BOLTON, DAVID, C 1980: "THE COMPUTATION OF EQUIVALENT POTENTIAL TEMPERATURE," C MONTHLY WEATHER REVIEW, VOL. 108, NO. 7 (JULY), P. 1048, EQ.(15). C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C CONVERT FROM CELSIUS TO KELVIN DEGREES. TK = T+273.15 TDK = TD+273.15 A = 1./(TDK-56.) B = ALOG(TK/TDK)/800. TC = 1./(A+B)+56. TLCL = TC-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]TMLAPS_TG.FOR;1 FUNCTION TMLAPS(THETAE,P) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE TEMPERATURE TMLAPS (CELSIUS) AT PRESSURE C P (MILLIBARS) ALONG THE MOIST ADIABAT CORRESPONDING TO AN EQUIVALENT C POTENTIAL TEMPERATURE THETAE (CELSIUS). C THE ALGORITHM WAS WRITTEN BY ERIC SMITH AT COLORADO STATE C UNIVERSITY. DATA CRIT/0.1/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURES. C CRIT = CONVERGENCE CRITERION (DEGREES KELVIN) EQ0 = THETAE C INITIAL GUESS FOR SOLUTION TLEV = 25. C COMPUTE THE SATURATION EQUIVALENT POTENTIAL TEMPERATURE CORRESPON- C DING TO TEMPERATURE TLEV AND PRESSURE P. EQ1 = EPT(TLEV,TLEV,P) DIF = ABS(EQ1-EQ0) IF (DIF.LT.CRIT) GO TO 3 IF (EQ1.GT.EQ0) GO TO 1 C DT IS THE INITIAL STEPPING INCREMENT. DT = 10. I = -1 GO TO 2 1 DT = -10. I = 1 2 TLEV = TLEV+DT EQ1 = EPT(TLEV,TLEV,P) DIF = ABS(EQ1-EQ0) IF (DIF.LT.CRIT) GO TO 3 J = -1 IF (EQ1.GT.EQ0) J=1 IF (I.EQ.J) GO TO 2 C THE SOLUTION HAS BEEN PASSED. REVERSE THE DIRECTION OF SEARCH C AND DECREASE THE STEPPING INCREMENT. TLEV = TLEV-DT DT = DT/10. GO TO 2 3 TMLAPS = TLEV RETURN END USER_DEV:[GULIB.THERMOSRC]TMR_TG.FOR;1 FUNCTION TMR(W,P) 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 THE TEMPERATURE (CELSIUS) ON A MIXING C RATIO LINE W (G/KG) AT PRESSURE P (MB). THE FORMULA IS GIVEN IN C TABLE 1 ON PAGE 7 OF STIPANUK (1973). C C INITIALIZE CONSTANTS DATA C1/.0498646455/,C2/2.4082965/,C3/7.07475/ DATA C4/38.9114/,C5/.0915/,C6/1.2035/ X= ALOG10(W*P/(622.+W)) TMRK= 10.**(C1*X+C2)-C3+C4*((10.**(C5*X)-C6)**2.) TMR= TMRK-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]TSA_TG.FOR;1 FUNCTION TSA(OS,P) 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 THE TEMPERATURE TSA (CELSIUS) ON A SATURATION C ADIABAT AT PRESSURE P (MILLIBARS). OS IS THE EQUIVALENT POTENTIAL C TEMPERATURE OF THE PARCEL (CELSIUS). SIGN(A,B) REPLACES THE C ALGEBRAIC SIGN OF A WITH THAT OF B. C B IS AN EMPIRICAL CONSTANT APPROXIMATELY EQUAL TO 0.001 OF THE LATENT C HEAT OF VAPORIZATION FOR WATER DIVIDED BY THE SPECIFIC HEAT AT CONSTANT C PRESSURE FOR DRY AIR. DATA B/2.6518986/ A= OS+273.15 C TQ IS THE FIRST GUESS FOR TSA. TQ= 253.15 C D IS AN INITIAL VALUE USED IN THE ITERATION BELOW. D= 120. C ITERATE TO OBTAIN SUFFICIENT ACCURACY....SEE TABLE 1, P.8 C OF STIPANUK (1973) FOR EQUATION USED IN ITERATION. DO 1 I= 1,12 TQK= TQ-273.15 D= D/2. X= A*EXP(-B*W(TQK,P)/TQ)-TQ*((1000./P)**.286) IF (ABS(X).LT.1E-7) GO TO 2 TQ= TQ+SIGN(D,X) 1 CONTINUE 2 TSA= TQ-273.15 RETURN END USER_DEV:[GULIB.THERMOSRC]TV_TG.FOR;1 FUNCTION TV(T,TD,P) C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C THIS FUNCTION RETURNS THE VIRTUAL TEMPERATURE TV (CELSIUS) OF C A PARCEL OF AIR AT TEMPERATURE T (CELSIUS), DEW POINT TD C (CELSIUS), AND PRESSURE P (MILLIBARS). THE EQUATION APPEARS C IN MOST STANDARD METEOROLOGICAL TEXTS. DATA CTA,EPS/273.15,0.62197/ C CTA = DIFFERENCE BETWEEN KELVIN AND CELSIUS TEMPERATURES. C EPS = RATIO OF THE MEAN MOLECULAR WEIGHT OF WATER (18.016 G/MOLE) C TO THAT OF DRY AIR (28.966 G/MOLE) TK = T+CTA C CALCULATE THE DIMENSIONLESS MIXING RATIO. W = .001*WMR(P,TD) TV = TK*(1.+W/EPS)/(1.+W)-CTA RETURN END USER_DEV:[GULIB.THERMOSRC]TW_TG.FOR;1 FUNCTION TW(T,TD,P) 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 THE WET-BULB TEMPERATURE TW (CELSIUS) C GIVEN THE TEMPERATURE T (CELSIUS), DEW POINT TD (CELSIUS) C AND PRESSURE P (MB). SEE P.13 IN STIPANUK (1973), REFERENCED C ABOVE, FOR A DESCRIPTION OF THE TECHNIQUE. C C C DETERMINE THE MIXING RATIO LINE THRU TD AND P. AW = W(TD,P) C C DETERMINE THE DRY ADIABAT THRU T AND P. AO = O(T,P) PI = P C ITERATE TO LOCATE PRESSURE PI AT THE INTERSECTION OF THE TWO C CURVES . PI HAS BEEN SET TO P FOR THE INITIAL GUESS. DO 4 I= 1,10 X= .02*(TMR(AW,PI)-TDA(AO,PI)) IF (ABS(X).LT.0.01) GO TO 5 4 PI= PI*(2.**(X)) C FIND THE TEMPERATURE ON THE DRY ADIABAT AO AT PRESSURE PI. 5 TI= TDA(AO,PI) C THE INTERSECTION HAS BEEN LOCATED...NOW, FIND A SATURATION C ADIABAT THRU THIS POINT. FUNCTION OS RETURNS THE EQUIVALENT C POTENTIAL TEMPERATURE (C) OF A PARCEL SATURATED AT TEMPERATURE C TI AND PRESSURE PI. AOS= OS(TI,PI) C FUNCTION TSA RETURNS THE WET-BULB TEMPERATURE (C) OF A PARCEL AT C PRESSURE P WHOSE EQUIVALENT POTENTIAL TEMPERATURE IS AOS. TW = TSA(AOS,P) RETURN END USER_DEV:[GULIB.THERMOSRC]WMR_TG.FOR;1 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*ESW(T) R = EPS*FWESW/(P-FWESW) C CONVERT R FROM A DIMENSIONLESS RATIO TO GRAMS/KILOGRAM. WMR = 1000.*R RETURN END USER_DEV:[GULIB.THERMOSRC]WOBF_TG.FOR;1 FUNCTION WOBF(T) C THIS FUNCTION CALCULATES THE DIFFERENCE OF THE WET-BULB POTENTIAL C TEMPERATURES FOR SATURATED AND DRY AIR GIVEN THE TEMPERATURE. C INCLUDE 'LIB_DEV:[GUDOC]EDFVAXBOX.FOR/LIST' C Baker, Schlatter 17-MAY-1982 Original version. C LET WBPTS = WET-BULB POTENTIAL TEMPERATURE FOR SATURATED C AIR AT TEMPERATURE T (CELSIUS). LET WBPTD = WET-BULB POTENTIAL C TEMPERATURE FOR COMPLETELY DRY AIR AT THE SAME TEMPERATURE T. C THE WOBUS FUNCTION WOBF (IN DEGREES CELSIUS) IS DEFINED BY C WOBF(T) = WBPTS-WBPTD. C ALTHOUGH WBPTS AND WBPTD ARE FUNCTIONS OF BOTH PRESSURE AND C TEMPERATURE, THEIR DIFFERENCE IS A FUNCTION OF TEMPERATURE ONLY. C TO UNDERSTAND WHY, CONSIDER A PARCEL OF DRY AIR AT TEMPERA- C TURE T AND PRESSURE P. THE THERMODYNAMIC STATE OF THE PARCEL IS C REPRESENTED BY A POINT ON A PSEUDOADIABATIC CHART. THE WET-BULB C POTENTIAL TEMPERATURE CURVE (MOIST ADIABAT) PASSING THROUGH THIS C POINT IS WBPTS. NOW T IS THE EQUIVALENT TEMPERATURE FOR ANOTHER C PARCEL SATURATED AT SOME LOWER TEMPERATURE TW, BUT AT THE SAME C PRESSURE P. TO FIND TW, ASCEND ALONG THE DRY ADIABAT THROUGH C (T,P). AT A GREAT HEIGHT, THE DRY ADIABAT AND SOME MOIST C ADIABAT WILL NEARLY COINCIDE. DESCEND ALONG THIS MOIST ADIABAT C BACK TO P. THE PARCEL TEMPERATURE IS NOW TW. THE WET-BULB C POTENTIAL TEMPERATURE CURVE (MOIST ADIABAT) THROUGH (TW,P) IS WBPTD. C THE DIFFERENCE (WBPTS-WBPTD) IS PROPORTIONAL TO THE HEAT IMPARTED C TO A PARCEL SATURATED AT TEMPERATURE TW IF ALL ITS WATER VAPOR C WERE CONDENSED. SINCE THE AMOUNT OF WATER VAPOR A PARCEL CAN C HOLD DEPENDS UPON TEMPERATURE ALONE, (WBPTD-WBPTS) MUST DEPEND C ON TEMPERATURE ALONE. C THE WOBUS FUNCTION IS USEFUL FOR EVALUATING SEVERAL THERMO- C DYNAMIC QUANTITIES. BY DEFINITION: C WOBF(T) = WBPTS-WBPTD. (1) C IF T IS AT 1000 MB, THEN T IS A POTENTIAL TEMPERATURE PT AND C WBPTS = PT. THUS C WOBF(PT) = PT-WBPTD. (2) C IF T IS AT THE CONDENSATION LEVEL, THEN T IS THE CONDENSATION C TEMPERATURE TC AND WBPTS IS THE WET-BULB POTENTIAL TEMPERATURE C WBPT. THUS C WOBF(TC) = WBPT-WBPTD. (3) C IF WBPTD IS ELIMINATED FROM (2) AND (3), THERE RESULTS C WBPT = PT-WOBF(PT)+WOBF(TC). C IF WBPTD IS ELIMINATED FROM (1) AND (2), THERE RESULTS C WBPTS = PT-WOBF(PT)+WOBF(T). C IF T IS AN EQUIVALENT POTENTIAL TEMPERATURE EPT (IMPLYING C THAT THE AIR AT 1000 MB IS COMPLETELY DRY), THEN WBPTS = EPT C AND WBPTD = WBPT. THUS C WOBF(EPT) = EPT-WBPT. C THIS FORM IS THE BASIS FOR A POLYNOMIAL APPROXIMATION TO WOBF. C IN TABLE 78 ON PP.319-322 OF THE SMITHSONIAN METEOROLOGICAL C TABLES BY ROLAND LIST (6TH REVISED EDITION), ONE FINDS WET-BULB C POTENTIAL TEMPERATURES AND THE CORRESPONDING EQUIVALENT POTENTIAL C TEMPERATURES LISTED TOGETHER. HERMAN WOBUS, A MATHEMATICIAN FOR- C MERLY AT THE NAVY WEATHER RESEARCH FACILITY, NORFOLK, VIRGINIA, C AND NOW RETIRED, COMPUTED THE COEFFICIENTS FOR THE POLYNOMIAL C APPROXIMATION FROM NUMBERS IN THIS TABLE. C C NOTES BY T.W. SCHLATTER C NOAA/ERL/PROFS PROGRAM OFFICE C AUGUST 1981 X = T-20. IF (X.GT.0.) GO TO 10 POL = 1. +X*(-8.8416605E-03 1 +X*( 1.4714143E-04 +X*(-9.6719890E-07 2 +X*(-3.2607217E-08 +X*(-3.8598073E-10))))) WOBF = 15.130/POL**4 RETURN 10 CONTINUE POL = 1. +X*( 3.6182989E-03 1 +X*(-1.3603273E-05 +X*( 4.9618922E-07 2 +X*(-6.1059365E-09 +X*( 3.9401551E-11 3 +X*(-1.2588129E-13 +X*( 1.6688280E-16))))))) WOBF = 29.930/POL**4+0.96*X-14.8 RETURN END USER_DEV:[GULIB.THERMOSRC]W_TG.FOR;1 FUNCTION W(T,P) 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 THE MIXING RATIO (GRAMS OF WATER VAPOR PER C KILOGRAM OF DRY AIR) GIVEN THE DEW POINT (CELSIUS) AND PRESSURE C (MILLIBARS). IF THE TEMPERTURE IS INPUT INSTEAD OF THE C DEW POINT, THEN SATURATION MIXING RATIO (SAME UNITS) IS RETURNED. C THE FORMULA IS FOUND IN MOST METEOROLOGICAL TEXTS. X= ESAT(T) W= 622.*X/(P-X) RETURN END USER_DEV:[GULIB.THERMOSRC]Z_TG.FOR;1 FUNCTION Z(PT,P,T,TD,N) 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 THE THICKNESS OF A LAYER BOUNDED BY PRESSURE C P(1) AT THE BOTTOM AND PRESSURE PT AT THE TOP. C ON INPUT: C P = PRESSURE (MB). NOTE THAT P(I).GT.P(I+1). C T = TEMPERATURE (CELSIUS) C TD = DEW POINT (CELSIUS) C N = NUMBER OF LEVELS IN THE SOUNDING AND THE DIMENSION OF C P, T AND TD C ON OUTPUT: C Z = GEOMETRIC THICKNESS OF THE LAYER (M) C THE ALGORITHM INVOLVES NUMERICAL INTEGRATION OF THE HYDROSTATIC C EQUATION FROM P(1) TO PT. IT IS DESCRIBED ON P.15 OF STIPANUK C (1973). DIMENSION T(1),P(1),TD(1),TK(100) C C1 = .001*(1./EPS-1.) WHERE EPS = .62197 IS THE RATIO OF THE C MOLECULAR WEIGHT OF WATER TO THAT OF C DRY AIR. THE FACTOR 1000. CONVERTS THE C MIXING RATIO W FROM G/KG TO A DIMENSION- C LESS RATIO. C C2 = R/(2.*G) WHERE R IS THE GAS CONSTANT FOR DRY AIR C (287 KG/JOULE/DEG K) AND G IS THE ACCELERATION C DUE TO THE EARTH'S GRAVITY (9.8 M/S**2). THE C FACTOR OF 2 IS USED IN AVERAGING TWO VIRTUAL C TEMPERATURES. DATA C1/.0006078/,C2/14.64285/ DO 5 I= 1,N TK(I)= T(I)+273.15 5 CONTINUE Z= 0.0 IF (PT.LT.P(N)) GO TO 20 I= 0 10 I= I+1 J= I+1 IF (PT.GE.P(J)) GO TO 15 A1= TK(J)*(1.+C1*W(TD(J),P(J))) A2= TK(I)*(1.+C1*W(TD(I),P(I))) Z= Z+C2*(A1+A2)*(ALOG(P(I)/P(J))) GO TO 10 15 CONTINUE A1= TK(J)*(1.+C1*W(TD(J),P(J))) A2= TK(I)*(1.+C1*W(TD(I),P(I))) Z= Z+C2*(A1+A2)*(ALOG(P(I)/PT)) RETURN 20 Z= -1.0 RETURN END