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

Contents of /trunk/phylmd/FCTTRE.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 103 - (show annotations)
Fri Aug 29 13:00:05 2014 UTC (9 years, 8 months ago) by guez
File size: 2587 byte(s)
Renamed module cvparam to cv_param. Deleted procedure
cv_param. Changed variables of module cv_param into parameters.

In procedures cv_driver, cv_uncompress and cv3_uncompress, removed
some arguments giving dimensions and used module variables klon and
klev instead.

In procedures gradiv2, laplacien_gam and laplacien, changed
declarations of local variables because klevel is not always klev.

Removed code for nudging surface pressure.

Removed arguments pim and pjm of tau2alpha. Added assignment of false
to variable first.

Replaced real argument del of procedures foeew and FOEDE by logical
argument.

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

  ViewVC Help
Powered by ViewVC 1.1.21