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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 104 - (hide annotations)
Thu Sep 4 10:05:52 2014 UTC (9 years, 8 months ago) by guez
Original Path: trunk/phylmd/FCTTRE.f
File size: 2602 byte(s)
Removed procedure sortvarc0. Called sortvarc with an additional
argument resetvarc instead. (Following LMDZ.) Moved current time
computations and some printing statements from sortvarc to
caldyn. Could then remove arguments itau and time_0 of sortvarc, and
could remove "use dynetat0". Better to keep "dynetat0.f" as a gcm-only
file.

Moved some variables from module ener to module sortvarc.

Split file "mathelp.f" into single-procedure files.

Removed unused argument nadv of adaptdt. Removed dimension arguments
of bernoui.

Removed unused argument nisurf of interfoce_lim. Changed the size of
argument lmt_sst of interfoce_lim from klon to knon. Removed case when
newlmt is false.

dynredem1 is called only once in each run, either ce0l or gcm. So
variable nb in call to nf95_put_var was always 1. Removed variable nb.

Removed dimension arguments of calcul_fluxs. Removed unused arguments
precip_rain, precip_snow, snow of calcul_fluxs. Changed the size of
all the arrays in calcul_fluxs from klon to knon.

Removed dimension arguments of fonte_neige. Changed the size of all
the arrays in fonte_neige from klon to knon.

Changed the size of arguments tsurf and tsurf_new of interfsurf_hq
from klon to knon. Changed the size of argument ptsrf of soil from
klon to knon.

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 103 elemental 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 70 REAL, intent(in):: T
26 guez 103 logical, intent(in):: DEL ! ice, else liquid
27 guez 3
28     !-----------------------
29    
30 guez 103 FOEEW = exp(merge(R3IES / (T - R4IES), R3lES / (T - R4lES), del) &
31     * (T - RTT))
32 guez 3
33     end function FOEEW
34    
35     !******************************************
36    
37 guez 37 REAL function FOEDE(T, DEL, 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     logical, intent(in):: DEL ! ice, else liquid
43 guez 37 real, intent(in):: P5ARG, QS, PCOARG
44 guez 3
45     !-----------------------
46    
47 guez 103 FOEDE = QS * PCOARG * P5ARG / (T - merge(R4IES, R4lES, del))**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