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

Annotation of /trunk/libf/phylmd/Conflx/flxdtdq.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 71 - (hide annotations)
Mon Jul 8 18:12:18 2013 UTC (10 years, 10 months ago) by guez
File size: 2337 byte(s)
No reason to call inidissip in ce0l.

In inidissip, set random seed to 1 beacuse PGI compiler does not
accept all zeros.

dq was computed needlessly in caladvtrac. Arguments masse and dq of
calfis not used.

Replaced real*8 by double precision.

Pass arrays with inverted order of vertical levels to conflx instead
of creating local variables for this inside conflx.

1 guez 71 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 guez 52 *(pmfus(i,k)+pmfds(i,k)+RLMLT*pdpmel(i,k) &
63 guez 71 -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