
pot_temp_equiv_tlcl
Compute equivalent potential temperature using the lifting condensation temperature.
Available in version 6.5.0 and later.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ; This library is automatically loaded ; from NCL V6.2.0 onward. ; No need for user to explicitly load. function pot_temp_equiv_tlcl ( p : numeric, t : numeric, tlcl : numeric, w : numeric, iounits [4] : integer ) return_val [dimsizes(t)] : float or double
Arguments
pScalar or array containing pressure levels (hPa, Pa, kPa).
tScalar or array containing temperatures (degC, degK, degF).
tlclScalar or array containing the lifting condensation level temperatures (Same units as t).
wScalar or array containing the mixing ratio (kg/kg, g/kg).
iounitsAn integer array of length 3 which specifies the units of the input t and w and returned enthalpy units.
- iounits(0)=0 input p is hPa
- iounits(0)=1 input p is Pa
- iounits(0)=2 input p is kPa
- iounits(1)=0 input t is degrees Celcius (degC)
- iounits(1)=1 input t is degrees Kelvin (degK)
- iounits(1)=2 input t is degrees Farenheit (degF)
- iounits(2)=0 input w are kg/kg
- iounits(2)=1 input w are g/kg
- iounits(3)=0 output theta_e is degrees Celcius (degC)
- iounits(3)=1 output theta_e is degrees Kelvin (degK)
- iounits(3)=2 output theta_e is degrees Farenheit (degF)
Return value
A multi-dimensional array of the same size and shape as t. The output will be double if t, p or w is of type double. All appropriate meta data is returned.
Description
Calculate the equivalent potential temperature (theta_e) as derived by Bolton (1980): specifically, equation 39. The results are essentially the same as those returned by the WRF function wrf_eth.
References: Bolton, D. (1980): The Computation of Equivalent Potential Temperature Monthly Weather Review, vol. 108, no. 7 (july), p. 1047 Wikipedia: Lifted Condensation Level
See Also
wrf_eth, tlcl_evp_bolton, tlcl_mixr_bolton, tlcl_rh_bolton, tlcl_td_bolton, mixhum_convert, pot_temp_equiv, Meteorology functions,
Examples
Example 1: Use NCL's (6.5.0) pot_temp_equiv_tlcl to calculate theta_e at constant pressure and relative humidity while varying both temperatures and mixing ratios. Compare with the NCL 6.4.0 pot_temp_equiv and WRF wrf_eth results.
tc = (/ 27, 28, 29, 30, 31 /) ; degC N = dimsizes (tc) w = (/ 0.0168645, 0.0178942, 0.0189793\ , 0.0201224, 0.0213262 /) ; kg/kg p = conform_dims ( N, 1000, -1 ) ; hPa; replicate rh = conform_dims ( N, 75, -1 ) ; % ; replicate t0 = 273.15 tk = tc + t0 ; Calculate 'theta_e' using the 6.4.0 pot_temp_equiv function. ; The source for the formulation used was Wikipedia. ; As noted in the documentation, this systematically underestimates the correct value(s). ; requires Pa, degK, kg/kg te_640 = pot_temp_equiv ((p*100), tk, w, -1, "r") ; degk ; Calculate the temperature at the lifting condensation level. For 'fun' return degC. tlcl = tlcl_rh_bolton (tc, rh, (/0,0/)) ; degC, degC ; Calculate 'theta_e' using the 6.5.0 pot_temp_equiv_tlcl function te_tlcl = pot_temp_equiv_tlcl (p, tc, tlcl, w, (/0,0,1,0/)) ; iounits ==> hPa, degC, kg/kg, degC ; Calculate 'theta_e' using the WRF 'wrf_eth' function. ; The WRF function requires a 3-or-4 dimensional array with variable units Pa, degK, kg/kg ; Use conform_dims to replicate the 1D-arrays to 3D arrays p3 = conform_dims ((/N,1,1/), p*100, 0) ; Pa (N,1,1) t3 = conform_dims ((/N,1,1/), tk , 0) ; degK (N,1,1) w3 = conform_dims ((/N,1,1/), w , 0) ; kg/kg (N,1,1) te_wrf = wrf_eth( w3, t3, p3) ; degK; [N] x [1] x [1] te_wrf := te_wrf(:,0,0)-t0 ; degC and redefine shape (convenience) diff = te_wrf - te_tlcl ; WRF - NCL_650 print (sprintf ("%5.2f",(te_640-t0))+sprintf("%9.2f",te_tlcl) \ +sprintf("%9.2f",te_wrf ) \ +sprintf("%9.2f",diff) )The slightly edited output:
te_640 te_tlcl te_wrf diff 69.13 76.56 76.60 0.04 72.71 80.83 80.87 0.04 76.42 85.30 85.35 0.05 80.27 89.99 90.06 0.07 84.28 94.92 95.00 0.08
Example 2: Compare with the WRF function, wrf_eth. Differences may be due to different algorithms and/or constants. Note that extra coding is necessary to replicate the one-dimensional (1D) arrays to 3D for use by the WRF function.
; pressure (Pa) p = (/ 97067.80, 96040.00, 94825.50, 93331.30, 91371.40, 88947.80, 86064.70, 82495.50 \ , 78140.20, 73035.40, 67383.70, 61327.50, 54994.70, 48897.30, 43034.60, 37495.20 \ , 32555.80, 28124.40, 24201.00, 20693.00, 17600.60, 14877.30, 12477.20, 10400.20 \ , 8553.98, 6984.69, 646.18 /) ; temperature (K) t = (/ 291.15, 291.60, 292.05, 292.13, 292.06, 291.17, 289.11, 287.49 \ , 286.25, 282.14, 277.42, 272.91, 266.99, 261.64, 254.40, 246.38 \ , 238.10, 229.76, 220.88, 213.65, 212.42, 212.58, 212.91, 213.34 \ , 213.73, 214.55, 216.59 /) ; specific humidity (kg/kg; dimensionless)) q = (/0.012258, 0.012111, 0.011914, 0.011483, 0.010575, 0.008992, 0.006021,0.002559 \ ,0.005169, 0.005746, 0.001608, 0.001645, 0.001382, 0.000235, 0.000094,0.000178 \ ,0.000136, 0.000079, 0.000050, 0.000025, 0.000023, 0.000023, 0.000014,0.000010 \ ,0.000008, 0.000007, 0.000007 /) ; 6.4.0 version does not use lifting condensation level temperature ept_640 = pot_temp_equiv(p, t, q, 0, "q") ; degk ; Convert specific humidity to mixing ratio for use in tlcl_mixr_bolton w = mixhum_convert(q, "w", (/0,0/)) ; kg/kg, kg/kg ; Compute temperature of the lifting condensation level tlcl = tlcl_mixr_bolton(t, w, p, (/1,0,1,1/)) ; (/ degK, kg/kg, Pa, degC /) ; 6.5.0 version; uses 'tlcl' ept_650 = pot_temp_equiv_tlcl(p, t, tlcl, w, (/1,1,1,1/) ) ; Compare with WRF function: wrf_eth which requires 3D or 4D input. ; Use conform_dims klvl = dimsizes(p) p3 = conform_dims((/klvl,1,1/), p, 0) ; Pa t3 = conform_dims((/klvl,1,1/), t, 0) ; degK w3 = conform_dims((/klvl,1,1/), w, 0) ; kg/kg ept_wrf = wrf_eth ( w3, t3, p3 ) ; [klvl] x [1] x [1] ept_dif = ept-ept_wrf(:,0,0) ; difference print(would yield (slightly edited):sprintf ("%8.2f", p) +" " \ +sprintf("%11.6f", w) \ +sprintf("%11.6f", q) \ +sprintf("%10.2f", t) \ +sprintf("%10.2f", tlcl) \ +sprintf("%10.2f", ept_640) \ +sprintf("%10.2f", ept_650) \ +sprintf("%10.2f", ept_wrf(:,0,0)) \ +sprintf("%9.2f", ept_dif) )
P (Pa) W(kg/kg) Q(kg/kg) t(K) tlcl ept ept_tlcl ept_wrf diff (0) 97067.80 0.012110 0.012258 291.15 289.06 324.91 328.34 328.35 -0.00 (1) 96040.00 0.011966 0.012111 291.60 288.53 325.97 329.50 329.50 -0.01 (2) 94825.50 0.011774 0.011914 292.05 287.87 327.10 330.71 330.72 -0.01 (3) 93331.30 0.011353 0.011483 292.13 286.87 327.55 331.15 331.16 -0.01 (4) 91371.40 0.010464 0.010575 292.06 284.99 327.09 330.57 330.59 -0.02 (5) 88947.80 0.008912 0.008992 291.17 281.79 324.52 327.65 327.68 -0.03 (6) 86064.70 0.005985 0.006021 289.11 274.74 317.57 319.93 319.98 -0.06 (7) 82495.50 0.002552 0.002559 287.49 260.89 310.51 311.85 311.93 -0.07 (8) 78140.20 0.005142 0.005169 286.25 271.19 321.08 323.18 323.26 -0.08 (9) 73035.40 0.005713 0.005746 282.14 272.64 324.44 326.47 326.55 -0.08 (10) 67383.70 0.001605 0.001608 277.42 253.14 315.05 315.89 315.99 -0.10 (11) 61327.50 0.001642 0.001645 272.91 252.94 318.56 319.35 319.46 -0.12 (12) 54994.70 0.001380 0.001382 266.99 250.14 320.83 321.44 321.57 -0.13 (13) 48897.30 0.000235 0.000235 261.64 228.50 321.70 321.82 321.94 -0.13 (14) 43034.60 0.000094 0.000094 254.40 219.03 324.00 324.00 324.14 -0.14 (15) 37495.20 0.000178 0.000178 246.38 225.04 326.67 326.69 326.86 -0.17 (16) 32555.80 0.000136 0.000136 238.10 222.13 328.57 328.54 328.73 -0.19 (17) 28124.40 0.000079 0.000079 229.76 216.76 330.41 330.33 330.54 -0.21 (18) 24201.00 0.000050 0.000050 220.88 212.55 331.47 331.35 331.59 -0.24 (19) 20693.00 0.000025 0.000025 213.65 206.39 335.20 335.05 335.32 -0.26 (20) 17600.60 0.000023 0.000023 212.42 204.59 349.04 348.86 349.17 -0.30 (21) 14877.30 0.000023 0.000023 212.58 203.26 366.49 366.29 366.63 -0.35 (22) 12477.20 0.000014 0.000014 212.91 198.19 385.94 385.70 386.10 -0.40 (23) 10400.20 0.000010 0.000010 213.34 194.50 407.35 407.07 407.53 -0.46 (24) 8553.98 0.000008 0.000008 213.73 191.64 431.52 431.20 431.72 -0.53 (25) 6984.69 0.000007 0.000007 214.55 189.38 458.99 458.62 459.23 -0.61 (26) 646.18 0.000007 0.000007 216.59 175.61 914.72 913.30 915.59 -2.2