/[lmdze]/trunk/Sources/phylmd/FCTTRE.f
ViewVC logotype

Annotation of /trunk/Sources/phylmd/FCTTRE.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (hide annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years, 1 month ago) by guez
File size: 2592 byte(s)
Sources inside, compilation outside.
1 guez 3 module FCTTRE
2    
3 guez 78 ! From phylmd/FCTTRE.inc, version 1.2, 2004/06/22 11:45:32
4 guez 3
5 guez 43 ! This module includes the thermodynamical functions for the cycle
6 guez 78 ! 39 ECMWF physics package. Consistent with "SUPHEC_M" basic
7 guez 43 ! physical constants, assuming the partial pressure of water vapour
8     ! is given by a first order Taylor expansion of "Qs(T)" with respect
9     ! to temperature, using constants in "yoethf_m".
10 guez 3
11 guez 70 ! Probably from Buck, 1981, Journal of Applied Meteorology, volume
12     ! 20, number 12, page 1527.
13 guez 43
14 guez 3 implicit none
15    
16 guez 103 LOGICAL, PARAMETER:: thermcep = .TRUE.
17 guez 3
18     contains
19    
20 guez 109 elemental REAL function FOEEW(T, ICE)
21 guez 3
22 guez 38 use yoethf_m, only: R3LES, R3IES, R4LES, R4IES
23     use SUPHEC_M, only: rtt
24 guez 3
25 guez 70 REAL, intent(in):: T
26 guez 109 logical, intent(in):: ICE ! else liquid
27 guez 3
28     !-----------------------
29    
30 guez 109 FOEEW = exp(merge(R3IES / (T - R4IES), R3lES / (T - R4lES), ice) &
31 guez 103 * (T - RTT))
32 guez 3
33     end function FOEEW
34    
35     !******************************************
36    
37 guez 109 REAL function FOEDE(T, ICE, P5ARG, QS, PCOARG)
38 guez 3
39 guez 38 use yoethf_m, only: R4LES, R4IES
40 guez 3
41 guez 103 REAL, intent(in):: T
42 guez 109 logical, intent(in):: ICE ! else liquid
43 guez 37 real, intent(in):: P5ARG, QS, PCOARG
44 guez 3
45     !-----------------------
46    
47 guez 109 FOEDE = QS * PCOARG * P5ARG / (T - merge(R4IES, R4lES, ice))**2
48 guez 3
49     end function FOEDE
50    
51     !******************************************
52    
53 guez 103 elemental REAL function qsats(t)
54 guez 3
55 guez 37 REAL, intent(in):: T
56 guez 3
57     !-----------------------
58    
59 guez 103 qsats = 100. * 0.622 &
60 guez 37 * 10.**(2.07023 - 0.00320991 * t - 2484.896 / t + 3.56654 * LOG10(t))
61 guez 3
62     end function qsats
63    
64     !******************************************
65    
66 guez 103 elemental REAL function qsatl(t)
67 guez 3
68 guez 37 REAL, intent(in):: T
69 guez 3
70     !-----------------------
71    
72 guez 103 qsatl = 100. * 0.622 * 10.**(23.8319 - 2948.964 / t &
73 guez 37 - 5.028 * LOG10(t) - 29810.16 * EXP(- 0.0699382 * t) &
74     + 25.21935 * EXP(- 2999.924 / t))
75 guez 3
76     end function qsatl
77    
78     !******************************************
79    
80 guez 37 REAL function dqsats(t, qs)
81 guez 3
82 guez 38 use SUPHEC_M, only: RLVTT, rcpd
83 guez 3
84 guez 37 REAL, intent(in):: T, qs
85 guez 3
86     !-----------------------
87    
88 guez 37 dqsats = RLVTT / RCPD * qs * (3.56654/t &
89     +2484.896*LOG(10.)/t**2 - 0.00320991*LOG(10.))
90 guez 3
91     end function dqsats
92    
93     !******************************************
94    
95 guez 37 REAL function dqsatl(t, qs)
96 guez 3
97 guez 38 use SUPHEC_M, only: RLVTT, rcpd
98 guez 3
99 guez 37 REAL, intent(in):: T, qs
100 guez 3
101     !-----------------------
102    
103 guez 104 dqsatl = RLVTT / RCPD * qs * LOG(10.) * (2948.964 / t**2 - 5.028 &
104     / LOG(10.) / t + 25.21935 * 2999.924 / t**2 * EXP(- 2999.924 / t) &
105     + 29810.16 * 0.0699382 * EXP(- 0.0699382 * t))
106 guez 3
107     end function dqsatl
108    
109     end module FCTTRE

  ViewVC Help
Powered by ViewVC 1.1.21