Calculate virtual temperature

.get_Tv(Temp, p, P, epsilon, unitless)

Arguments

Temp

Temperature in Kelvin

p

water vapour pressure in kPa

P

Atmospheric pressure in kPa

epsilon

ratio of water to air molar masses (unitless)

unitless

Logical. Should function use parameters with units? The function is faster when FALSE, but input must be in correct units or else results will be incorrect without any warning.

Value

Value in K of class units

Details

$$T_\mathrm{v} = T / [1 - (1 - \epsilon) (p / P)]$$

Eq. 2.35 in Monteith & Unsworth (2013)

SymbolRDescriptionUnitsDefault
\(\epsilon\)epsilonratio of water to air molar massesunitless0.622
\(p\)pwater vapour pressurekPacalculated
\(P\)Patmospheric pressurekPa101.3246

References

Monteith JL, Unsworth MH. 2013. Principles of Environmental Physics. 4th edition. Academic Press, London.

Examples


library(tealeaves)

cs <- make_constants()
ep <- make_enviropar()
lp <- make_leafpar()

T_leaf <- set_units(298.15, K)
p <- ep$RH * tealeaves:::.get_ps(T_leaf, ep$P, FALSE)
tealeaves:::.get_Tv(T_leaf, p, ep$P, cs$epsilon, FALSE)
#> 299.9208 [K]