/[lmdze]/trunk/phylmd/Conflx/flxdtdq.f90
ViewVC logotype

Contents of /trunk/phylmd/Conflx/flxdtdq.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 328 - (show annotations)
Thu Jun 13 14:40:06 2019 UTC (4 years, 11 months ago) by guez
File size: 2337 byte(s)
Change all `.f` suffixes to `.f90`. (The opposite was done in revision
82.)  Because of change of philosopy in GNUmakefile: we already had a
rewritten rule for `.f`, so it does not make the makefile longer to
replace it by a rule for `.f90`. And it spares us options of
makedepf90 and of the compiler. Also we prepare the way for a simpler
`CMakeLists.txt`.

1 module flxdtdq_m
2
3 IMPLICIT none
4
5 contains
6
7 SUBROUTINE flxdtdq(ktopm2, paph, ldcum, pten, pmfus, pmfds, pmfuq, pmfdq, &
8 pmful, pdmfup, pdmfdp, pdpmel, dt_con, dq_con)
9
10 USE dimphy, ONLY: klev, klon
11 USE suphec_m, ONLY: rcpd, rg, rlmlt, rlstt, rlvtt, rtt
12
13 !----------------------------------------------------------------------
14 ! calculer les tendances T et Q
15 !----------------------------------------------------------------------
16 ! -----------------------------------------------------------------
17 LOGICAL llo1
18 !
19 REAL, intent(in):: pten(klon,klev), paph(klon,klev+1)
20 REAL, intent(in):: pmfus(klon,klev), pmfuq(klon,klev), pmful(klon,klev)
21 REAL pmfds(klon,klev), pmfdq(klon,klev)
22 REAL pdmfup(klon,klev)
23 REAL pdmfdp(klon,klev)
24 REAL pdpmel(klon,klev)
25 LOGICAL ldcum(klon)
26 REAL dt_con(klon,klev), dq_con(klon,klev)
27 !
28 INTEGER ktopm2
29 !
30 INTEGER i, k
31 REAL zalv, zdtdt, zdqdt
32 !
33 DO k=ktopm2,klev-1
34 DO i = 1, klon
35 IF (ldcum(i)) THEN
36 llo1 = (pten(i,k)-RTT).GT.0.
37 zalv = RLSTT
38 IF (llo1) zalv = RLVTT
39 zdtdt=RG/(paph(i,k+1)-paph(i,k))/RCPD &
40 *(pmfus(i,k+1)-pmfus(i,k) &
41 +pmfds(i,k+1)-pmfds(i,k) &
42 -RLMLT*pdpmel(i,k) &
43 -zalv*(pmful(i,k+1)-pmful(i,k)-pdmfup(i,k)-pdmfdp(i,k)) &
44 )
45 dt_con(i,k)=zdtdt
46 zdqdt=RG/(paph(i,k+1)-paph(i,k)) &
47 *(pmfuq(i,k+1)-pmfuq(i,k) &
48 +pmfdq(i,k+1)-pmfdq(i,k) &
49 +pmful(i,k+1)-pmful(i,k)-pdmfup(i,k)-pdmfdp(i,k))
50 dq_con(i,k)=zdqdt
51 ENDIF
52 end DO
53 end DO
54 !
55 k = klev
56 DO i = 1, klon
57 IF (ldcum(i)) THEN
58 llo1 = (pten(i,k)-RTT).GT.0.
59 zalv = RLSTT
60 IF (llo1) zalv = RLVTT
61 zdtdt=-RG/(paph(i,k+1)-paph(i,k))/RCPD &
62 *(pmfus(i,k)+pmfds(i,k)+RLMLT*pdpmel(i,k) &
63 -zalv*(pmful(i,k)+pdmfup(i,k)+pdmfdp(i,k)))
64 dt_con(i,k)=zdtdt
65 zdqdt=-RG/(paph(i,k+1)-paph(i,k)) &
66 *(pmfuq(i,k)+pmfdq(i,k)+pmful(i,k) &
67 +pdmfup(i,k)+pdmfdp(i,k))
68 dq_con(i,k)=zdqdt
69 ENDIF
70 end DO
71
72 END SUBROUTINE flxdtdq
73
74 end module flxdtdq_m

  ViewVC Help
Powered by ViewVC 1.1.21