/[lmdze]/trunk/libf/phylmd/FCTTRE.f90
ViewVC logotype

Contents of /trunk/libf/phylmd/FCTTRE.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 43 - (show annotations)
Fri Apr 8 12:43:31 2011 UTC (13 years, 1 month ago) by guez
File size: 2471 byte(s)
"start_init_phys" is now called directly by "etat0" instead of through
"start_init_dyn". "qsol_2d" is no longer a variable of module
"start_init_phys_m", it is an argument of
"start_init_phys". "start_init_dyn" now receives "tsol_2d" from
"etat0".

Split file "vlspltqs.f" into "vlspltqs.f90", "vlxqs.f90" and
""vlyqs.f90".

In "start_init_orog", replaced calls to "flin*" by calls to NetCDF95.

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, 20(12),
12 ! 1527.
13
14 implicit none
15
16 LOGICAL, PARAMETER:: thermcep= .TRUE.
17
18 contains
19
20 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, DEL
26
27 !-----------------------
28
29 FOEEW = EXP((R3LES * (1. - DEL) + R3IES * DEL) * (T - RTT) &
30 / (T - (R4LES * (1. - DEL) + R4IES * DEL)))
31
32 end function FOEEW
33
34 !******************************************
35
36 REAL function FOEDE(T, DEL, P5ARG, QS, PCOARG)
37
38 use yoethf_m, only: R4LES, R4IES
39
40 REAL, intent(in):: T, DEL
41 real, intent(in):: P5ARG, QS, PCOARG
42
43 !-----------------------
44
45 FOEDE = QS*PCOARG*P5ARG / (T-(R4LES*(1.-DEL)+R4IES*DEL))**2
46
47 end function FOEDE
48
49 !******************************************
50
51 REAL function qsats(t)
52
53 REAL, intent(in):: T
54
55 !-----------------------
56
57 qsats = 100.0 * 0.622 &
58 * 10.**(2.07023 - 0.00320991 * t - 2484.896 / t + 3.56654 * LOG10(t))
59
60 end function qsats
61
62 !******************************************
63
64 REAL function qsatl(t)
65
66 REAL, intent(in):: T
67
68 !-----------------------
69
70 qsatl = 100.0 * 0.622 * 10.**(23.8319 - 2948.964 / t &
71 - 5.028 * LOG10(t) - 29810.16 * EXP(- 0.0699382 * t) &
72 + 25.21935 * EXP(- 2999.924 / t))
73
74 end function qsatl
75
76 !******************************************
77
78 REAL function dqsats(t, qs)
79
80 use SUPHEC_M, only: RLVTT, rcpd
81
82 REAL, intent(in):: T, qs
83
84 !-----------------------
85
86 dqsats = RLVTT / RCPD * qs * (3.56654/t &
87 +2484.896*LOG(10.)/t**2 - 0.00320991*LOG(10.))
88
89 end function dqsats
90
91 !******************************************
92
93 REAL function dqsatl(t, qs)
94
95 use SUPHEC_M, only: RLVTT, rcpd
96
97 REAL, intent(in):: T, qs
98
99 !-----------------------
100
101 dqsatl = RLVTT / RCPD * qs * LOG(10.) &
102 * (2948.964/t**2-5.028/LOG(10.)/t &
103 +25.21935*2999.924/t**2*EXP(-2999.924/t) &
104 +29810.16*0.0699382*EXP(-0.0699382*t))
105
106 end function dqsatl
107
108 end module FCTTRE

  ViewVC Help
Powered by ViewVC 1.1.21