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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.70  
changed lines
  Added in v.71

  ViewVC Help
Powered by ViewVC 1.1.21