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

Annotation of /trunk/phylmd/FCTTRE.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 43 - (hide annotations)
Fri Apr 8 12:43:31 2011 UTC (13 years, 1 month ago) by guez
Original Path: trunk/libf/phylmd/FCTTRE.f90
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 guez 3 module FCTTRE
2    
3 guez 37 ! 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     ! 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 guez 3
11 guez 43 ! Probably from Buck, 1981, Journal of Applied Meteorology, 20(12),
12     ! 1527.
13    
14 guez 3 implicit none
15    
16 guez 37 LOGICAL, PARAMETER:: thermcep= .TRUE.
17 guez 3
18     contains
19    
20 guez 37 REAL function FOEEW(T, DEL)
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 37 REAL, intent(in):: T, DEL
26 guez 3
27     !-----------------------
28    
29 guez 37 FOEEW = EXP((R3LES * (1. - DEL) + R3IES * DEL) * (T - RTT) &
30     / (T - (R4LES * (1. - DEL) + R4IES * DEL)))
31 guez 3
32     end function FOEEW
33    
34     !******************************************
35    
36 guez 37 REAL function FOEDE(T, DEL, P5ARG, QS, PCOARG)
37 guez 3
38 guez 38 use yoethf_m, only: R4LES, R4IES
39 guez 3
40 guez 37 REAL, intent(in):: T, DEL
41     real, intent(in):: P5ARG, QS, PCOARG
42 guez 3
43     !-----------------------
44    
45 guez 37 FOEDE = QS*PCOARG*P5ARG / (T-(R4LES*(1.-DEL)+R4IES*DEL))**2
46 guez 3
47     end function FOEDE
48    
49     !******************************************
50    
51 guez 37 REAL function qsats(t)
52 guez 3
53 guez 37 REAL, intent(in):: T
54 guez 3
55     !-----------------------
56    
57 guez 37 qsats = 100.0 * 0.622 &
58     * 10.**(2.07023 - 0.00320991 * t - 2484.896 / t + 3.56654 * LOG10(t))
59 guez 3
60     end function qsats
61    
62     !******************************************
63    
64 guez 37 REAL function qsatl(t)
65 guez 3
66 guez 37 REAL, intent(in):: T
67 guez 3
68     !-----------------------
69    
70 guez 37 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 guez 3
74     end function qsatl
75    
76     !******************************************
77    
78 guez 37 REAL function dqsats(t, qs)
79 guez 3
80 guez 38 use SUPHEC_M, only: RLVTT, rcpd
81 guez 3
82 guez 37 REAL, intent(in):: T, qs
83 guez 3
84     !-----------------------
85    
86 guez 37 dqsats = RLVTT / RCPD * qs * (3.56654/t &
87     +2484.896*LOG(10.)/t**2 - 0.00320991*LOG(10.))
88 guez 3
89     end function dqsats
90    
91     !******************************************
92    
93 guez 37 REAL function dqsatl(t, qs)
94 guez 3
95 guez 38 use SUPHEC_M, only: RLVTT, rcpd
96 guez 3
97 guez 37 REAL, intent(in):: T, qs
98 guez 3
99     !-----------------------
100    
101 guez 37 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 guez 3
106     end function dqsatl
107    
108     end module FCTTRE

  ViewVC Help
Powered by ViewVC 1.1.21