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

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

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

revision 69 by guez, Wed Aug 29 14:47:17 2012 UTC revision 70 by guez, Mon Jun 24 15:39:52 2013 UTC
# Line 4  module flxmain_m Line 4  module flxmain_m
4    
5  contains  contains
6    
7    SUBROUTINE flxmain(pdtime, pten, pqen, pqsen, pqhfl, pap, paph, pgeo, &    SUBROUTINE flxmain(dtime, pt, pqen, pqsen, pqhfl, pap, paph, pgeo, ldland, &
8         ldland, ptte, pqte, pvervel, prsfc, pssfc, kcbot, kctop, kdtop, pmfu, &         ptte, pqte, pvervel, prsfc, pssfc, kcbot, kctop, kdtop, pmfu, pmfd, &
9         pmfd, pen_u, pde_u, pen_d, pde_d, dt_con, dq_con, pmflxr, pmflxs)         pen_u, pde_u, pen_d, pde_d, dt_con, dq_con, pmflxr, pmflxs)
10    
11      USE dimphy, ONLY: klev, klon      USE dimphy, ONLY: klev, klon
12        use flxasc_m, only: flxasc
13        use flxflux_m, only: flxflux
14        use flxini_m, only: flxini
15      USE suphec_m, ONLY: rcpd, retv, rg, rlvtt      USE suphec_m, ONLY: rcpd, retv, rg, rlvtt
     USE yoethf_m, ONLY: r4les, r5les  
16      USE yoecumf, ONLY: flxsetup, cmfdeps, entrpen, entrscv, lmfdd      USE yoecumf, ONLY: flxsetup, cmfdeps, entrpen, entrscv, lmfdd
17        USE yoethf_m, ONLY: r4les, r5les
18    
19      REAL, intent(in):: pdtime      REAL, intent(in):: dtime
20      REAL pten(klon,klev), pqen(klon,klev), pqsen(klon,klev)      REAL, intent(in):: pt(klon, klev)
21      REAL ptte(klon,klev)      real pqen(klon, klev)
22      REAL pqte(klon,klev)      real, intent(inout):: pqsen(klon, klev)
23      REAL pvervel(klon,klev)      REAL, intent(in):: pqhfl(klon)
24      REAL pgeo(klon,klev), pap(klon,klev), paph(klon,klev+1)      real pap(klon, klev), paph(klon, klev+1)
25      REAL pqhfl(klon)      REAL, intent(in):: pgeo(klon, klev)
26        LOGICAL ldland(klon)
27      REAL ptu(klon,klev), pqu(klon,klev), plu(klon,klev)      REAL ptte(klon, klev)
28      REAL plude(klon,klev)      REAL pqte(klon, klev)
29      REAL pmfu(klon,klev)      REAL pvervel(klon, klev)
30      REAL prsfc(klon), pssfc(klon)      REAL prsfc(klon), pssfc(klon)
31      INTEGER kcbot(klon), kctop(klon), ktype(klon)      INTEGER kcbot(klon), kctop(klon)
32      LOGICAL ldland(klon), ldcum(klon)      INTEGER kdtop(klon)
33        REAL pmfu(klon, klev)
34        real pmfd(klon, klev)
35        REAL pen_u(klon, klev), pde_u(klon, klev)
36        REAL pen_d(klon, klev), pde_d(klon, klev)
37        REAL dt_con(klon, klev), dq_con(klon, klev)
38        REAL pmflxr(klon, klev+1)
39        REAL pmflxs(klon, klev+1)
40    
41        ! Local:
42        REAL ptu(klon, klev), pqu(klon, klev), plu(klon, klev)
43        REAL plude(klon, klev)
44        INTEGER ktype(klon)
45        LOGICAL ldcum(klon)
46    
47      REAL ztenh(klon,klev), zqenh(klon,klev), zqsenh(klon,klev)      REAL ztenh(klon, klev), zqenh(klon, klev), zqsenh(klon, klev)
48      REAL zgeoh(klon,klev)      REAL zgeoh(klon, klev)
49      REAL zmfub(klon), zmfub1(klon)      REAL zmfub(klon), zmfub1(klon)
50      REAL zmfus(klon,klev), zmfuq(klon,klev), zmful(klon,klev)      REAL zmfus(klon, klev), zmfuq(klon, klev), zmful(klon, klev)
51      REAL zdmfup(klon,klev), zdpmel(klon,klev)      REAL zdmfup(klon, klev), zdpmel(klon, klev)
52      REAL zentr(klon), zhcbase(klon)      REAL zentr(klon), zhcbase(klon)
53      REAL zdqpbl(klon), zdqcv(klon), zdhpbl(klon)      REAL zdqpbl(klon), zdqcv(klon), zdhpbl(klon)
54      REAL zrfl(klon)      REAL zrfl(klon)
55      REAL pmflxr(klon,klev+1)      INTEGER ilab(klon, klev), ictop0(klon)
     REAL pmflxs(klon,klev+1)  
     INTEGER ilab(klon,klev), ictop0(klon)  
56      LOGICAL llo1      LOGICAL llo1
     REAL dt_con(klon,klev), dq_con(klon,klev)  
57      REAL zmfmax, zdh      REAL zmfmax, zdh
58      real zqumqe, zdqmin, zalvdcp, zhsat, zzz      real zqumqe, zdqmin, zalvdcp, zhsat, zzz
59      REAL zhhat, zpbmpt, zgam, zeps, zfac      REAL zhhat, zpbmpt, zgam, zeps, zfac
60      INTEGER i, k, ikb, itopm2, kcum      INTEGER i, k, ikb, itopm2, kcum
61    
     REAL pen_u(klon,klev), pde_u(klon,klev)  
     REAL pen_d(klon,klev), pde_d(klon,klev)  
62    
63      REAL ptd(klon,klev), pqd(klon,klev), pmfd(klon,klev)      REAL ptd(klon, klev), pqd(klon, klev)
64      REAL zmfds(klon,klev), zmfdq(klon,klev), zdmfdp(klon,klev)      REAL zmfds(klon, klev), zmfdq(klon, klev), zdmfdp(klon, klev)
     INTEGER kdtop(klon)  
65      LOGICAL lddraf(klon)      LOGICAL lddraf(klon)
66    
67      LOGICAL:: firstcal = .TRUE.      LOGICAL:: firstcal = .TRUE.
# Line 68  contains Line 78  contains
78      ENDDO      ENDDO
79      DO k = 1, klev      DO k = 1, klev
80         DO i = 1, klon         DO i = 1, klon
81            dt_con(i,k) = 0.0            dt_con(i, k) = 0.0
82            dq_con(i,k) = 0.0            dq_con(i, k) = 0.0
83         ENDDO         ENDDO
84      ENDDO      ENDDO
85    
86      ! initialiser les variables et faire l'interpolation verticale      ! initialiser les variables et faire l'interpolation verticale
87    
88      CALL flxini(pten, pqen, pqsen, pgeo, &      CALL flxini(pt, pqen, pqsen, pgeo, paph, zgeoh, ztenh, zqenh, zqsenh, &
89           paph, zgeoh, ztenh, zqenh, zqsenh, &           ptu, pqu, ptd, pqd, pmfd, zmfds, zmfdq, zdmfdp, pmfu, zmfus, zmfuq, &
90           ptu, pqu, ptd, pqd, pmfd, zmfds, zmfdq, zdmfdp, &           zdmfup, zdpmel, plu, plude, ilab, pen_u, pde_u, pen_d, pde_d)
          pmfu, zmfus, zmfuq, zdmfup, &  
          zdpmel, plu, plude, ilab, pen_u, pde_u, pen_d, pde_d)  
91    
92      ! determiner les valeurs au niveau de base de la tour convective      ! determiner les valeurs au niveau de base de la tour convective
93    
# Line 94  contains Line 102  contains
102    
103      k=1      k=1
104      DO i = 1, klon      DO i = 1, klon
105         zdqcv(i) = pqte(i,k)*(paph(i,k+1)-paph(i,k))         zdqcv(i) = pqte(i, k)*(paph(i, k+1)-paph(i, k))
106         zdhpbl(i) = 0.0         zdhpbl(i) = 0.0
107         zdqpbl(i) = 0.0         zdqpbl(i) = 0.0
108      ENDDO      ENDDO
109    
110      DO k=2,klev      DO k=2, klev
111         DO i = 1, klon         DO i = 1, klon
112            zdqcv(i)=zdqcv(i)+pqte(i,k)*(paph(i,k+1)-paph(i,k))            zdqcv(i)=zdqcv(i)+pqte(i, k)*(paph(i, k+1)-paph(i, k))
113            IF (k.GE.kcbot(i)) THEN            IF (k.GE.kcbot(i)) THEN
114               zdqpbl(i)=zdqpbl(i)+pqte(i,k)*(paph(i,k+1)-paph(i,k))               zdqpbl(i)=zdqpbl(i)+pqte(i, k)*(paph(i, k+1)-paph(i, k))
115               zdhpbl(i)=zdhpbl(i)+(RCPD*ptte(i,k)+RLVTT*pqte(i,k)) &               zdhpbl(i)=zdhpbl(i)+(RCPD*ptte(i, k)+RLVTT*pqte(i, k)) &
116                    *(paph(i,k+1)-paph(i,k))                    *(paph(i, k+1)-paph(i, k))
117            ENDIF            ENDIF
118         ENDDO         ENDDO
119      ENDDO      ENDDO
120    
121      DO i = 1, klon      DO i = 1, klon
122         ktype(i) = 2         if (zdqcv(i) > MAX(0., - 1.5 * pqhfl(i) * RG)) then
123         if (zdqcv(i).GT.MAX(0.,-1.5*pqhfl(i)*RG)) ktype(i) = 1            ktype(i) = 1
124         !cc if (zdqcv(i).GT.MAX(0.,-1.1*pqhfl(i)*RG)) ktype(i) = 1         else
125              ktype(i) = 2
126           end if
127      ENDDO      ENDDO
128    
129      ! determiner le flux de masse entrant a travers la base.      ! Déterminer le flux de masse entrant à travers la base. On
130      ! on ignore, pour l'instant, l'effet du panache descendant      ! ignore, pour l'instant, l'effet du panache descendant
131    
132      DO i = 1, klon      DO i = 1, klon
133         ikb=kcbot(i)         ikb=kcbot(i)
134         zqumqe=pqu(i,ikb)+plu(i,ikb)-zqenh(i,ikb)         zqumqe=pqu(i, ikb)+plu(i, ikb)-zqenh(i, ikb)
135         zdqmin=MAX(0.01*zqenh(i,ikb),1.E-10)         zdqmin=MAX(0.01*zqenh(i, ikb), 1.E-10)
136         IF (zdqpbl(i).GT.0..AND.zqumqe.GT.zdqmin.AND.ldcum(i)) THEN         IF (zdqpbl(i) > 0..AND.zqumqe > zdqmin.AND.ldcum(i)) THEN
137            zmfub(i) = zdqpbl(i)/(RG*MAX(zqumqe,zdqmin))            zmfub(i) = zdqpbl(i)/(RG*MAX(zqumqe, zdqmin))
138         ELSE         ELSE
139            zmfub(i) = 0.01            zmfub(i) = 0.01
140            ldcum(i)=.FALSE.            ldcum(i)=.FALSE.
141         ENDIF         ENDIF
142         IF (ktype(i).EQ.2) THEN         IF (ktype(i) == 2) THEN
143            zdh = RCPD*(ptu(i,ikb)-ztenh(i,ikb)) + RLVTT*zqumqe            zdh = RCPD*(ptu(i, ikb)-ztenh(i, ikb)) + RLVTT*zqumqe
144            zdh = RG * MAX(zdh,1.0E5*zdqmin)            zdh = RG * MAX(zdh, 1.0E5*zdqmin)
145            IF (zdhpbl(i).GT.0..AND.ldcum(i))zmfub(i)=zdhpbl(i)/zdh            IF (zdhpbl(i) > 0..AND.ldcum(i))zmfub(i)=zdhpbl(i)/zdh
146         ENDIF         ENDIF
147         zmfmax = (paph(i,ikb)-paph(i,ikb-1)) / (RG*pdtime)         zmfmax = (paph(i, ikb)-paph(i, ikb-1)) / (RG*dtime)
148         zmfub(i) = MIN(zmfub(i),zmfmax)         zmfub(i) = MIN(zmfub(i), zmfmax)
149         zentr(i) = ENTRSCV         zentr(i) = ENTRSCV
150         IF (ktype(i).EQ.1) zentr(i) = ENTRPEN         IF (ktype(i) == 1) zentr(i) = ENTRPEN
151      ENDDO      ENDDO
152    
153      ! DETERMINE CLOUD ASCENT FOR ENTRAINING PLUME      ! DETERMINE CLOUD ASCENT FOR ENTRAINING PLUME
# Line 148  contains Line 158  contains
158    
159      DO i = 1, klon      DO i = 1, klon
160         ikb=kcbot(i)         ikb=kcbot(i)
161         zhcbase(i)=RCPD*ptu(i,ikb)+zgeoh(i,ikb)+RLVTT*pqu(i,ikb)         zhcbase(i)=RCPD*ptu(i, ikb)+zgeoh(i, ikb)+RLVTT*pqu(i, ikb)
162         ictop0(i)=kcbot(i)-1         ictop0(i)=kcbot(i)-1
163      ENDDO      ENDDO
164    
165      zalvdcp=RLVTT/RCPD      zalvdcp=RLVTT/RCPD
166      DO k=klev-1,3,-1      DO k=klev-1, 3, -1
167         DO i = 1, klon         DO i = 1, klon
168            zhsat=RCPD*ztenh(i,k)+zgeoh(i,k)+RLVTT*zqsenh(i,k)            zhsat=RCPD*ztenh(i, k)+zgeoh(i, k)+RLVTT*zqsenh(i, k)
169            zgam=R5LES*zalvdcp*zqsenh(i,k)/ &            zgam=R5LES*zalvdcp*zqsenh(i, k)/ &
170                 ((1.-RETV *zqsenh(i,k))*(ztenh(i,k)-R4LES)**2)                 ((1.-RETV *zqsenh(i, k))*(ztenh(i, k)-R4LES)**2)
171            zzz=RCPD*ztenh(i,k)*0.608            zzz=RCPD*ztenh(i, k)*0.608
172            zhhat=zhsat-(zzz+zgam*zzz)/(1.+zgam*zzz/RLVTT)* &            zhhat=zhsat-(zzz+zgam*zzz)/(1.+zgam*zzz/RLVTT)* &
173                 MAX(zqsenh(i,k)-zqenh(i,k),0.)                 MAX(zqsenh(i, k)-zqenh(i, k), 0.)
174            IF(k.LT.ictop0(i).AND.zhcbase(i).GT.zhhat) ictop0(i)=k            IF(k < ictop0(i).AND.zhcbase(i) > zhhat) ictop0(i)=k
175         ENDDO         ENDDO
176      ENDDO      ENDDO
177    
178      ! (B) calculer le panache ascendant      ! (B) calculer le panache ascendant
179    
180      CALL flxasc(pdtime,ztenh, zqenh, pten, pqen, pqsen, &      CALL flxasc(dtime, ztenh, zqenh, pt, pqen, pqsen, pgeo, zgeoh, pap, &
181           pgeo, zgeoh, pap, paph, pqte, pvervel, &           paph, pqte, pvervel, ldland, ldcum, ktype, ilab, ptu, pqu, plu, &
182           ldland, ldcum, ktype, ilab, &           pmfu, zmfub, zentr, zmfus, zmfuq, zmful, plude, zdmfup, kcbot, &
183           ptu, pqu, plu, pmfu, zmfub, zentr, &           kctop, ictop0, kcum, pen_u, pde_u)
          zmfus, zmfuq, zmful, plude, zdmfup, &  
          kcbot, kctop, ictop0, kcum, pen_u, pde_u)  
184    
185      IF (kcum /= 0) then      IF (kcum /= 0) then
186         ! verifier l'epaisseur de la convection et changer eventuellement         ! verifier l'epaisseur de la convection et changer eventuellement
187         ! le taux d'entrainement/detrainement         ! le taux d'entrainement/detrainement
188    
189         DO i = 1, klon         DO i = 1, klon
190            zpbmpt=paph(i,kcbot(i))-paph(i,kctop(i))            zpbmpt=paph(i, kcbot(i))-paph(i, kctop(i))
191            IF(ldcum(i).AND.ktype(i).EQ.1.AND.zpbmpt.LT.2.E4)ktype(i)=2            IF(ldcum(i) .AND. ktype(i) == 1 .AND. zpbmpt < 2E4) ktype(i) = 2
192            IF(ldcum(i)) ictop0(i)=kctop(i)            IF(ldcum(i)) ictop0(i)=kctop(i)
193            IF(ktype(i).EQ.2) zentr(i)=ENTRSCV            IF(ktype(i) == 2) zentr(i)=ENTRSCV
194         ENDDO         ENDDO
195    
196         IF (lmfdd) THEN ! si l'on considere le panache descendant         IF (lmfdd) THEN ! si l'on considere le panache descendant
197            ! calculer la precipitation issue du panache ascendant pour            ! calculer la precipitation issue du panache ascendant pour
198            ! determiner l'existence du panache descendant dans la convection            ! determiner l'existence du panache descendant dans la convection
199            DO i = 1, klon            DO i = 1, klon
200               zrfl(i)=zdmfup(i,1)               zrfl(i)=zdmfup(i, 1)
201            ENDDO            ENDDO
202            DO k=2,klev            DO k=2, klev
203               DO i = 1, klon               DO i = 1, klon
204                  zrfl(i)=zrfl(i)+zdmfup(i,k)                  zrfl(i)=zrfl(i)+zdmfup(i, k)
205               ENDDO               ENDDO
206            ENDDO            ENDDO
207    
# Line 217  contains Line 225  contains
225            DO i = 1, klon            DO i = 1, klon
226               IF (lddraf(i)) THEN               IF (lddraf(i)) THEN
227                  ikb = kcbot(i)                  ikb = kcbot(i)
228                  llo1 = PMFD(i,ikb).LT.0.                  llo1 = PMFD(i, ikb) < 0.
229                  zeps = 0.                  zeps = 0.
230                  IF ( llo1 ) zeps = CMFDEPS                  IF (llo1) zeps = CMFDEPS
231                  zqumqe = pqu(i,ikb)+plu(i,ikb)- &                  zqumqe = pqu(i, ikb)+plu(i, ikb)- &
232                       zeps*pqd(i,ikb)-(1.-zeps)*zqenh(i,ikb)                       zeps*pqd(i, ikb)-(1.-zeps)*zqenh(i, ikb)
233                  zdqmin = MAX(0.01*zqenh(i,ikb),1.E-10)                  zdqmin = MAX(0.01*zqenh(i, ikb), 1.E-10)
234                  zmfmax = (paph(i,ikb)-paph(i,ikb-1)) / (RG*pdtime)                  zmfmax = (paph(i, ikb)-paph(i, ikb-1)) / (RG*dtime)
235                  IF (zdqpbl(i).GT.0..AND.zqumqe.GT.zdqmin.AND.ldcum(i) &                  IF (zdqpbl(i) > 0..AND.zqumqe > zdqmin.AND.ldcum(i) &
236                       .AND.zmfub(i).LT.zmfmax) THEN                       .AND.zmfub(i) < zmfmax) THEN
237                     zmfub1(i) = zdqpbl(i) / (RG*MAX(zqumqe,zdqmin))                     zmfub1(i) = zdqpbl(i) / (RG*MAX(zqumqe, zdqmin))
238                  ELSE                  ELSE
239                     zmfub1(i) = zmfub(i)                     zmfub1(i) = zmfub(i)
240                  ENDIF                  ENDIF
241                  IF (ktype(i).EQ.2) THEN                  IF (ktype(i) == 2) THEN
242                     zdh = RCPD*(ptu(i,ikb)-zeps*ptd(i,ikb)- &                     zdh = RCPD*(ptu(i, ikb)-zeps*ptd(i, ikb)- &
243                          (1.-zeps)*ztenh(i,ikb))+RLVTT*zqumqe                          (1.-zeps)*ztenh(i, ikb))+RLVTT*zqumqe
244                     zdh = RG * MAX(zdh,1.0E5*zdqmin)                     zdh = RG * MAX(zdh, 1.0E5*zdqmin)
245                     IF (zdhpbl(i).GT.0..AND.ldcum(i))zmfub1(i)=zdhpbl(i)/zdh                     IF (zdhpbl(i) > 0..AND.ldcum(i))zmfub1(i)=zdhpbl(i)/zdh
246                  ENDIF                  ENDIF
247                  IF ( .NOT.((ktype(i).EQ.1.OR.ktype(i).EQ.2).AND. &                  IF (.NOT. ((ktype(i) == 1 .OR. ktype(i) == 2) .AND. &
248                       ABS(zmfub1(i)-zmfub(i)).LT.0.2*zmfub(i)) ) &                       ABS(zmfub1(i)-zmfub(i)) < 0.2*zmfub(i))) &
249                       zmfub1(i) = zmfub(i)                       zmfub1(i) = zmfub(i)
250               ENDIF               ENDIF
251            ENDDO            ENDDO
252            DO k = 1, klev            DO k = 1, klev
253               DO i = 1, klon               DO i = 1, klon
254                  IF (lddraf(i)) THEN                  IF (lddraf(i)) THEN
255                     zfac = zmfub1(i)/MAX(zmfub(i),1.E-10)                     zfac = zmfub1(i)/MAX(zmfub(i), 1.E-10)
256                     pmfd(i,k) = pmfd(i,k)*zfac                     pmfd(i, k) = pmfd(i, k)*zfac
257                     zmfds(i,k) = zmfds(i,k)*zfac                     zmfds(i, k) = zmfds(i, k)*zfac
258                     zmfdq(i,k) = zmfdq(i,k)*zfac                     zmfdq(i, k) = zmfdq(i, k)*zfac
259                     zdmfdp(i,k) = zdmfdp(i,k)*zfac                     zdmfdp(i, k) = zdmfdp(i, k)*zfac
260                     pen_d(i,k) = pen_d(i,k)*zfac                     pen_d(i, k) = pen_d(i, k)*zfac
261                     pde_d(i,k) = pde_d(i,k)*zfac                     pde_d(i, k) = pde_d(i, k)*zfac
262                  ENDIF                  ENDIF
263               ENDDO               ENDDO
264            ENDDO            ENDDO
# Line 261  contains Line 269  contains
269    
270         ! calculer de nouveau le panache ascendant         ! calculer de nouveau le panache ascendant
271    
272         CALL flxasc(pdtime,ztenh, zqenh, pten, pqen, pqsen, &         CALL flxasc(dtime, ztenh, zqenh, pt, pqen, pqsen, pgeo, zgeoh, pap, &
273              pgeo, zgeoh, pap, paph, pqte, pvervel, &              paph, pqte, pvervel, ldland, ldcum, ktype, ilab, ptu, pqu, plu, &
274              ldland, ldcum, ktype, ilab, &              pmfu, zmfub, zentr, zmfus, zmfuq, zmful, plude, zdmfup, kcbot, &
275              ptu, pqu, plu, pmfu, zmfub, zentr, &              kctop, ictop0, kcum, pen_u, pde_u)
             zmfus, zmfuq, zmful, plude, zdmfup, &  
             kcbot, kctop, ictop0, kcum, pen_u, pde_u)  
276    
277         ! determiner les flux convectifs en forme finale, ainsi que         ! Déterminer les flux convectifs en forme finale, ainsi que la
278         ! la quantite des precipitations         ! quantité des précipitations
279    
280         CALL flxflux(pdtime, pqen, pqsen, ztenh, zqenh, pap, paph, &         CALL flxflux(dtime, pqen, pqsen, ztenh, zqenh, pap, paph, &
281              ldland, zgeoh, kcbot, kctop, lddraf, kdtop, ktype, ldcum, &              ldland, zgeoh, kcbot, kctop, lddraf, kdtop, ktype, ldcum, &
282              pmfu, pmfd, zmfus, zmfds, zmfuq, zmfdq, zmful, plude, &              pmfu, pmfd, zmfus, zmfds, zmfuq, zmfdq, zmful, plude, &
283              zdmfup, zdmfdp, pten, prsfc, pssfc, zdpmel, itopm2, &              zdmfup, zdmfdp, pt, prsfc, pssfc, zdpmel, itopm2, &
284              pmflxr, pmflxs)              pmflxr, pmflxs)
285    
286         ! calculer les tendances pour T et Q         ! calculer les tendances pour T et Q
287    
288         CALL flxdtdq(itopm2, paph, ldcum, pten, &         CALL flxdtdq(itopm2, paph, ldcum, pt, zmfus, zmfds, zmfuq, zmfdq, &
289              zmfus, zmfds, zmfuq, zmfdq, zmful, zdmfup, zdmfdp, zdpmel, &              zmful, zdmfup, zdmfdp, zdpmel, dt_con, dq_con)
             dt_con,dq_con)  
290      end IF      end IF
291    
292    END SUBROUTINE flxmain    END SUBROUTINE flxmain

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

  ViewVC Help
Powered by ViewVC 1.1.21