Soil Water Balance (SWB2)
Loading...
Searching...
No Matches
meteorological_calculations.F90
Go to the documentation of this file.
2!! Algorithms to estimate dewpoint, vapor pressure, and other values
3!! given input air temperature or solar radiation values.
4
5 use iso_c_binding, only : c_int, c_float, c_double, c_bool
7 implicit none
8
9contains
10
11elemental function sat_vapor_pressure__e_0(rT) result (re_0)
12 !! Calculate saturation vapor pressure
13 !! @note Implemented as equation 11 in:
14 !! Allen, R.G., and others, 1998, FAO Irrigation and Drainage Paper No. 56,
15 !! Crop Evapotranspiration (Guidelines for computing crop water
16 !! requirements), Food and Agriculture Organization, Rome, Italy.
17
18 real (c_float), intent(in) :: rt
19 !! Air temperature in °C
20 real (c_float) :: re_0
21 !! Saturation vapor pressure at given air temperature, in kilopascals
22
23 re_0 = 0.6108_c_double * exp(17.27_c_double * rt &
24 / ( rt + 237.3_c_double) )
25
26end function sat_vapor_pressure__e_0
27
28!--------------------------------------------------------------------------
29
30elemental function dewpoint_vapor_pressure__e_a(fTMin) result (fe_a)
31 !! Estimate dewpoint vapor pressure given a minimum daily air temperature value
32
33 real (c_float), intent(in) :: ftmin
34 !! Minimum daily air temperature, in °C
35 real (c_double) :: fe_a
36 !! Dewpoint vapor pressure at given air temperature, in kiloPascals
37
38 fe_a = 0.6108_c_double * exp( 17.27_c_double * f_to_c(ftmin) &
39 / ( f_to_c(ftmin) + 237.3_c_double) )
40
42
43!--------------------------------------------------------------------------
44
45elemental function equivalent_evaporation(rR) result(rR_ET)
46 !! Calculate a radiation value in terms of equivalent evaporation (depth of water
47 !! that would be evaporated for a given radiation value)
48
49 real (c_double), intent(in) :: rr
50 !! Input radiation, in \‍(\frac{MJ}{m^2 \cdot day}\‍)
51 real (c_double) :: rr_et
52 !! Radiation expressed as equivalent evaporation, in \‍(\frac{mm}{day}\‍)
53
54 rr_et = rr * 0.408_c_double
55
56end function equivalent_evaporation
57
58
59
This module contains physical constants and convenience functions aimed at performing unit conversion...
elemental real(c_double) function equivalent_evaporation(rr)
elemental real(c_double) function dewpoint_vapor_pressure__e_a(ftmin)
elemental real(c_float) function sat_vapor_pressure__e_0(rt)