1 |
guez |
3 |
module FCTTRE |
2 |
|
|
|
3 |
|
|
! From phylmd/FCTTRE.inc,v 1.2 2004/06/22 11:45:32 |
4 |
|
|
|
5 |
|
|
! This COMDECK includes the Thermodynamical functions for the cy39 |
6 |
|
|
! ECMWF Physics package. |
7 |
|
|
! Consistent with YOMCST Basic physics constants, assuming the |
8 |
|
|
! partial pressure of water vapour is given by a first order |
9 |
|
|
! Taylor expansion of Qs(T) w.r.t. to Temperature, using constants |
10 |
|
|
! in YOETHF |
11 |
|
|
|
12 |
|
|
implicit none |
13 |
|
|
|
14 |
|
|
LOGICAL, PARAMETER:: thermcep=.TRUE. |
15 |
|
|
|
16 |
|
|
contains |
17 |
|
|
|
18 |
|
|
REAL function FOEEW ( PTARG,PDELARG ) |
19 |
|
|
|
20 |
|
|
use yoethf, only: R3LES, R3IES, R4LES, R4IES |
21 |
|
|
use YOMCST, only: rtt |
22 |
|
|
|
23 |
|
|
REAL, intent(in):: PTARG, PDELARG |
24 |
|
|
|
25 |
|
|
!----------------------- |
26 |
|
|
|
27 |
|
|
FOEEW = EXP ((R3LES*(1.-PDELARG)+R3IES*PDELARG) * (PTARG-RTT) & |
28 |
|
|
/ (PTARG-(R4LES*(1.-PDELARG)+R4IES*PDELARG)) ) |
29 |
|
|
|
30 |
|
|
end function FOEEW |
31 |
|
|
|
32 |
|
|
!****************************************** |
33 |
|
|
|
34 |
|
|
REAL function FOEDE(PTARG,PDELARG,P5ARG,PQSARG,PCOARG) |
35 |
|
|
|
36 |
|
|
use yoethf, only: R4LES, R4IES |
37 |
|
|
|
38 |
|
|
REAL, intent(in):: PTARG, PDELARG |
39 |
|
|
real, intent(in):: P5ARG, PQSARG, PCOARG |
40 |
|
|
|
41 |
|
|
!----------------------- |
42 |
|
|
|
43 |
|
|
FOEDE = PQSARG*PCOARG*P5ARG / (PTARG-(R4LES*(1.-PDELARG)+R4IES*PDELARG))**2 |
44 |
|
|
|
45 |
|
|
end function FOEDE |
46 |
|
|
|
47 |
|
|
!****************************************** |
48 |
|
|
|
49 |
|
|
REAL function qsats(ptarg) |
50 |
|
|
|
51 |
|
|
REAL, intent(in):: PTARG |
52 |
|
|
|
53 |
|
|
!----------------------- |
54 |
|
|
|
55 |
|
|
qsats = 100.0 * 0.622 * 10.0 & |
56 |
|
|
** (2.07023 - 0.00320991 * ptarg & |
57 |
|
|
- 2484.896 / ptarg + 3.56654 * LOG10(ptarg)) |
58 |
|
|
|
59 |
|
|
end function qsats |
60 |
|
|
|
61 |
|
|
!****************************************** |
62 |
|
|
|
63 |
|
|
REAL function qsatl(ptarg) |
64 |
|
|
|
65 |
|
|
REAL, intent(in):: PTARG |
66 |
|
|
|
67 |
|
|
!----------------------- |
68 |
|
|
|
69 |
|
|
qsatl = 100.0 * 0.622 * 10.0 & |
70 |
|
|
** (23.8319 - 2948.964 / ptarg & |
71 |
|
|
- 5.028 * LOG10(ptarg) & |
72 |
|
|
- 29810.16 * EXP( - 0.0699382 * ptarg) & |
73 |
|
|
+ 25.21935 * EXP( - 2999.924 / ptarg)) |
74 |
|
|
|
75 |
|
|
end function qsatl |
76 |
|
|
|
77 |
|
|
!****************************************** |
78 |
|
|
|
79 |
|
|
REAL function dqsats(ptarg,pqsarg) |
80 |
|
|
|
81 |
|
|
use YOMCST, only: RLVTT, rcpd |
82 |
|
|
|
83 |
|
|
REAL, intent(in):: PTARG, pqsarg |
84 |
|
|
|
85 |
|
|
!----------------------- |
86 |
|
|
|
87 |
|
|
dqsats = RLVTT/RCPD*pqsarg * (3.56654/ptarg & |
88 |
|
|
+2484.896*LOG(10.)/ptarg**2 & |
89 |
|
|
-0.00320991*LOG(10.)) |
90 |
|
|
|
91 |
|
|
end function dqsats |
92 |
|
|
|
93 |
|
|
!****************************************** |
94 |
|
|
|
95 |
|
|
REAL function dqsatl(ptarg,pqsarg) |
96 |
|
|
|
97 |
|
|
use YOMCST, only: RLVTT, rcpd |
98 |
|
|
|
99 |
|
|
REAL, intent(in):: PTARG, pqsarg |
100 |
|
|
|
101 |
|
|
!----------------------- |
102 |
|
|
|
103 |
|
|
dqsatl = RLVTT/RCPD*pqsarg*LOG(10.)* & |
104 |
|
|
(2948.964/ptarg**2-5.028/LOG(10.)/ptarg & |
105 |
|
|
+25.21935*2999.924/ptarg**2*EXP(-2999.924/ptarg) & |
106 |
|
|
+29810.16*0.0699382*EXP(-0.0699382*ptarg)) |
107 |
|
|
|
108 |
|
|
end function dqsatl |
109 |
|
|
|
110 |
|
|
end module FCTTRE |