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

Diff of /trunk/Sources/phylmd/cv_driver.f

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

revision 139 by guez, Tue May 26 17:46:03 2015 UTC revision 183 by guez, Wed Mar 16 14:42:58 2016 UTC
# Line 4  module cv_driver_m Line 4  module cv_driver_m
4    
5  contains  contains
6    
7    SUBROUTINE cv_driver(t1, q1, qs1, u1, v1, p1, ph1, iflag1, ft1, &    SUBROUTINE cv_driver(t1, q1, qs1, u1, v1, p1, ph1, iflag1, ft1, fq1, fu1, &
8         fq1, fu1, fv1, precip1, VPrecip1, cbmf1, sig1, w01, icb1, inb1, delt, &         fv1, precip1, VPrecip1, sig1, w01, icb1, inb1, delt, Ma1, upwd1, &
9         Ma1, upwd1, dnwd1, dnwd01, qcondc1, wd1, cape1, da1, phi1, mp1)         dnwd1, dnwd01, qcondc1, wd1, cape1, da1, phi1, mp1)
10    
11      ! From LMDZ4/libf/phylmd/cv_driver.F, version 1.3, 2005/04/15 12:36:17      ! From LMDZ4/libf/phylmd/cv_driver.F, version 1.3, 2005/04/15 12:36:17
12      ! Main driver for convection      ! Main driver for convection
# Line 14  contains Line 14  contains
14    
15      ! Several modules corresponding to different physical processes      ! Several modules corresponding to different physical processes
16    
     ! Several versions of convect may be used:  
     ! - iflag_con = 3: version lmd  
     ! - iflag_con = 4: version 4.3b  
   
     use clesphys2, only: iflag_con  
17      use cv3_compress_m, only: cv3_compress      use cv3_compress_m, only: cv3_compress
18      use cv3_feed_m, only: cv3_feed      use cv3_feed_m, only: cv3_feed
19      use cv3_mixing_m, only: cv3_mixing      use cv3_mixing_m, only: cv3_mixing
# Line 26  contains Line 21  contains
21      use cv3_prelim_m, only: cv3_prelim      use cv3_prelim_m, only: cv3_prelim
22      use cv3_tracer_m, only: cv3_tracer      use cv3_tracer_m, only: cv3_tracer
23      use cv3_uncompress_m, only: cv3_uncompress      use cv3_uncompress_m, only: cv3_uncompress
24        use cv3_undilute2_m, only: cv3_undilute2
25      use cv3_unsat_m, only: cv3_unsat      use cv3_unsat_m, only: cv3_unsat
26      use cv3_yield_m, only: cv3_yield      use cv3_yield_m, only: cv3_yield
     use cv_feed_m, only: cv_feed  
     use cv_uncompress_m, only: cv_uncompress  
27      USE dimphy, ONLY: klev, klon      USE dimphy, ONLY: klev, klon
28    
29      real, intent(in):: t1(klon, klev) ! temperature      real, intent(in):: t1(klon, klev) ! temperature
# Line 46  contains Line 40  contains
40      real, intent(out):: fv1(klon, klev) ! v-wind tend      real, intent(out):: fv1(klon, klev) ! v-wind tend
41      real, intent(out):: precip1(klon) ! precipitation      real, intent(out):: precip1(klon) ! precipitation
42    
43      real, intent(out):: VPrecip1(klon, klev+1)      real, intent(out):: VPrecip1(klon, klev + 1)
44      ! vertical profile of precipitation      ! vertical profile of precipitation
45    
     real, intent(inout):: cbmf1(klon) ! cloud base mass flux  
46      real, intent(inout):: sig1(klon, klev) ! section adiabatic updraft      real, intent(inout):: sig1(klon, klev) ! section adiabatic updraft
47    
48      real, intent(inout):: w01(klon, klev)      real, intent(inout):: w01(klon, klev)
# Line 60  contains Line 53  contains
53      real, intent(in):: delt ! time step      real, intent(in):: delt ! time step
54      real Ma1(klon, klev)      real Ma1(klon, klev)
55      ! Ma1 Real Output mass flux adiabatic updraft      ! Ma1 Real Output mass flux adiabatic updraft
56      real, intent(out):: upwd1(klon, klev) ! total upward mass flux (adiab+mixed)  
57        real, intent(out):: upwd1(klon, klev)
58        ! total upward mass flux (adiab + mixed)
59    
60      real, intent(out):: dnwd1(klon, klev) ! saturated downward mass flux (mixed)      real, intent(out):: dnwd1(klon, klev) ! saturated downward mass flux (mixed)
61      real, intent(out):: dnwd01(klon, klev) ! unsaturated downward mass flux      real, intent(out):: dnwd01(klon, klev) ! unsaturated downward mass flux
62    
# Line 74  contains Line 70  contains
70      real, intent(inout):: da1(klon, klev), phi1(klon, klev, klev)      real, intent(inout):: da1(klon, klev), phi1(klon, klev, klev)
71      real, intent(inout):: mp1(klon, klev)      real, intent(inout):: mp1(klon, klev)
72    
73      ! --- ARGUMENTS      ! ARGUMENTS
74    
75      ! --- On input:      ! On input:
76    
77      ! t: Array of absolute temperature (K) of dimension KLEV, with first      ! t: Array of absolute temperature (K) of dimension KLEV, with first
78      ! index corresponding to lowest model level. Note that this array      ! index corresponding to lowest model level. Note that this array
# Line 104  contains Line 100  contains
100      ! index corresponding to lowest model level. Must be defined      ! index corresponding to lowest model level. Must be defined
101      ! at same grid levels as T.      ! at same grid levels as T.
102    
103      ! ph: Array of pressure (mb) of dimension KLEV+1, with first index      ! ph: Array of pressure (mb) of dimension KLEV + 1, with first index
104      ! corresponding to lowest level. These pressures are defined at      ! corresponding to lowest level. These pressures are defined at
105      ! levels intermediate between those of P, T, Q and QS. The first      ! levels intermediate between those of P, T, Q and QS. The first
106      ! value of PH should be greater than (i.e. at a lower level than)      ! value of PH should be greater than (i.e. at a lower level than)
# Line 115  contains Line 111  contains
111    
112      ! delt: The model time step (sec) between calls to CONVECT      ! delt: The model time step (sec) between calls to CONVECT
113    
114      ! --- On Output:      ! On Output:
115    
116      ! iflag: An output integer whose value denotes the following:      ! iflag: An output integer whose value denotes the following:
117      ! VALUE INTERPRETATION      ! VALUE INTERPRETATION
# Line 205  contains Line 201  contains
201      integer iflag(klon), nk(klon), icb(klon)      integer iflag(klon), nk(klon), icb(klon)
202      integer nent(klon, klev)      integer nent(klon, klev)
203      integer icbs(klon)      integer icbs(klon)
204      integer inb(klon), inbis(klon)      integer inb(klon)
205    
206      real cbmf(klon), plcl(klon), tnk(klon), qnk(klon), gznk(klon)      real plcl(klon), tnk(klon), qnk(klon), gznk(klon)
207      real t(klon, klev), q(klon, klev), qs(klon, klev)      real t(klon, klev), q(klon, klev), qs(klon, klev)
208      real u(klon, klev), v(klon, klev)      real u(klon, klev), v(klon, klev)
209      real gz(klon, klev), h(klon, klev), lv(klon, klev), cpn(klon, klev)      real gz(klon, klev), h(klon, klev), lv(klon, klev), cpn(klon, klev)
210      real p(klon, klev), ph(klon, klev+1), tv(klon, klev), tp(klon, klev)      real p(klon, klev), ph(klon, klev + 1), tv(klon, klev), tp(klon, klev)
211      real clw(klon, klev)      real clw(klon, klev)
     real dph(klon, klev)  
212      real pbase(klon), buoybase(klon), th(klon, klev)      real pbase(klon), buoybase(klon), th(klon, klev)
213      real tvp(klon, klev)      real tvp(klon, klev)
214      real sig(klon, klev), w0(klon, klev)      real sig(klon, klev), w0(klon, klev)
215      real hp(klon, klev), ep(klon, klev), sigp(klon, klev)      real hp(klon, klev), ep(klon, klev), sigp(klon, klev)
216      real frac(klon), buoy(klon, klev)      real buoy(klon, klev)
217      real cape(klon)      real cape(klon)
218      real m(klon, klev), ment(klon, klev, klev), qent(klon, klev, klev)      real m(klon, klev), ment(klon, klev, klev), qent(klon, klev, klev)
219      real uent(klon, klev, klev), vent(klon, klev, klev)      real uent(klon, klev, klev), vent(klon, klev, klev)
# Line 230  contains Line 225  contains
225      real fu(klon, klev), fv(klon, klev)      real fu(klon, klev), fv(klon, klev)
226      real upwd(klon, klev), dnwd(klon, klev), dnwd0(klon, klev)      real upwd(klon, klev), dnwd(klon, klev), dnwd0(klon, klev)
227      real Ma(klon, klev), mike(klon, klev), tls(klon, klev)      real Ma(klon, klev), mike(klon, klev), tls(klon, klev)
228      real tps(klon, klev), qprime(klon), tprime(klon)      real tps(klon, klev)
229      real precip(klon)      real precip(klon)
230      real VPrecip(klon, klev+1)      real VPrecip(klon, klev + 1)
231      real qcondc(klon, klev) ! cld      real qcondc(klon, klev) ! cld
232      real wd(klon) ! gust      real wd(klon) ! gust
233    
234      !-------------------------------------------------------------------      !-------------------------------------------------------------------
     ! --- SET CONSTANTS AND PARAMETERS  
235    
236      ! -- set simulation flags:      ! SET CONSTANTS AND PARAMETERS
     ! (common cvflag)  
237    
238        ! set simulation flags:
239        ! (common cvflag)
240      CALL cv_flag      CALL cv_flag
241    
242      ! -- set thermodynamical constants:      ! set thermodynamical constants:
243      ! (common cvthermo)      ! (common cvthermo)
   
244      CALL cv_thermo      CALL cv_thermo
245    
246      ! -- set convect parameters      ! set convect parameters
   
247      ! includes microphysical parameters and parameters that      ! includes microphysical parameters and parameters that
248      ! control the rate of approach to quasi-equilibrium)      ! control the rate of approach to quasi-equilibrium)
249      ! (common cvparam)      ! (common cvparam)
250    
251      if (iflag_con == 3) CALL cv3_param(klev, delt)      CALL cv3_param(klev, delt)
252    
253      ! --- INITIALIZE OUTPUT ARRAYS AND PARAMETERS      ! INITIALIZE OUTPUT ARRAYS AND PARAMETERS
254    
255      do k = 1, klev      do k = 1, klev
256         do i = 1, klon         do i = 1, klon
# Line 268  contains Line 261  contains
261            tvp1(i, k) = 0.0            tvp1(i, k) = 0.0
262            tp1(i, k) = 0.0            tp1(i, k) = 0.0
263            clw1(i, k) = 0.0            clw1(i, k) = 0.0
           !ym  
264            clw(i, k) = 0.0            clw(i, k) = 0.0
265            gz1(i, k) = 0.            gz1(i, k) = 0.
266            VPrecip1(i, k) = 0.            VPrecip1(i, k) = 0.
# Line 285  contains Line 277  contains
277         iflag1(i) = 0         iflag1(i) = 0
278         wd1(i) = 0.0         wd1(i) = 0.0
279         cape1(i) = 0.0         cape1(i) = 0.0
280         VPrecip1(i, klev+1) = 0.0         VPrecip1(i, klev + 1) = 0.0
281      end do      end do
282    
283      if (iflag_con == 3) then      do il = 1, klon
284         do il = 1, klon         sig1(il, klev) = sig1(il, klev) + 1.
285            sig1(il, klev) = sig1(il, klev) + 1.         sig1(il, klev) = min(sig1(il, klev), 12.1)
286            sig1(il, klev) = min(sig1(il, klev), 12.1)      enddo
287         enddo  
288      endif      ! CALCULATE ARRAYS OF GEOPOTENTIAL, HEAT CAPACITY & STATIC ENERGY
289        CALL cv3_prelim(klon, klev, klev + 1, t1, q1, p1, ph1, lv1, cpn1, tv1, &
290      ! --- CALCULATE ARRAYS OF GEOPOTENTIAL, HEAT CAPACITY & STATIC ENERGY           gz1, h1, hm1, th1)
291    
292      if (iflag_con == 3) then      ! CONVECTIVE FEED
293         CALL cv3_prelim(klon, klev, klev + 1, t1, q1, p1, ph1, lv1, cpn1, tv1, &      CALL cv3_feed(klon, klev, t1, q1, qs1, p1, ph1, gz1, nk1, icb1, &
294              gz1, h1, hm1, th1)           icbmax, iflag1, tnk1, qnk1, gznk1, plcl1) ! klev->na
     else  
        ! iflag_con == 4  
        CALL cv_prelim(klon, klev, klev + 1, t1, q1, p1, ph1, lv1, cpn1, tv1, &  
             gz1, h1, hm1)  
     endif  
   
     ! --- CONVECTIVE FEED  
   
     if (iflag_con == 3) then  
        CALL cv3_feed(klon, klev, t1, q1, qs1, p1, ph1, hm1, gz1, nk1, icb1, &  
             icbmax, iflag1, tnk1, qnk1, gznk1, plcl1) ! klev->na  
     else  
        ! iflag_con == 4  
        CALL cv_feed(klon, klev, t1, q1, qs1, p1, hm1, gz1, nk1, icb1, icbmax, &  
             iflag1, tnk1, qnk1, gznk1, plcl1)  
     endif  
295    
296      ! --- UNDILUTE (ADIABATIC) UPDRAFT / 1st part      ! UNDILUTE (ADIABATIC) UPDRAFT / 1st part
297      ! (up through ICB for convect4, up through ICB+1 for convect3)      ! (up through ICB for convect4, up through ICB + 1 for convect3)
298      ! Calculates the lifted parcel virtual temperature at nk, the      ! Calculates the lifted parcel virtual temperature at nk, the
299      ! actual temperature, and the adiabatic liquid water content.      ! actual temperature, and the adiabatic liquid water content.
300        CALL cv3_undilute1(klon, klev, t1, q1, qs1, gz1, plcl1, p1, nk1, icb1, &
301             tp1, tvp1, clw1, icbs1) ! klev->na
302    
303      if (iflag_con == 3) then      ! TRIGGERING
304         CALL cv3_undilute1(klon, klev, t1, q1, qs1, gz1, plcl1, p1, nk1, icb1, &      CALL cv3_trigger(klon, klev, icb1, plcl1, p1, th1, tv1, tvp1, pbase1, &
305              tp1, tvp1, clw1, icbs1) ! klev->na           buoybase1, iflag1, sig1, w01) ! klev->na
     else  
        ! iflag_con == 4  
        CALL cv_undilute1(klon, klev, t1, q1, qs1, gz1, p1, nk1, icb1, icbmax, &  
             tp1, tvp1, clw1)  
     endif  
   
     ! --- TRIGGERING  
   
     if (iflag_con == 3) then  
        CALL cv3_trigger(klon, klev, icb1, plcl1, p1, th1, tv1, tvp1, pbase1, &  
             buoybase1, iflag1, sig1, w01) ! klev->na  
     else  
        ! iflag_con == 4  
        CALL cv_trigger(klon, klev, icb1, cbmf1, tv1, tvp1, iflag1)  
     end if  
306    
307      ! --- IF THIS POINT IS REACHED, MOIST CONVECTIVE ADJUSTMENT IS NECESSARY      ! Moist convective adjustment is necessary
308    
309      ncum = 0      ncum = 0
310      do i = 1, klon      do i = 1, klon
311         if(iflag1(i) == 0)then         if (iflag1(i) == 0) then
312            ncum = ncum+1            ncum = ncum + 1
313            idcum(ncum) = i            idcum(ncum) = i
314         endif         endif
315      end do      end do
316    
317      IF (ncum > 0) THEN      IF (ncum > 0) THEN
318         ! --- COMPRESS THE FIELDS         ! COMPRESS THE FIELDS
319         ! (-> vectorization over convective gridpoints)         ! (-> vectorization over convective gridpoints)
320           CALL cv3_compress(klon, klon, ncum, klev, iflag1, nk1, icb1, icbs1, &
321                plcl1, tnk1, qnk1, gznk1, pbase1, buoybase1, t1, q1, qs1, u1, &
322                v1, gz1, th1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, &
323                sig1, w01, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, pbase, &
324                buoybase, t, q, qs, u, v, gz, th, h, lv, cpn, p, ph, tv, tp, &
325                tvp, clw, sig, w0)
326    
327           ! UNDILUTE (ADIABATIC) UPDRAFT / second part :
328           ! FIND THE REST OF THE LIFTED PARCEL TEMPERATURES
329           ! &
330           ! COMPUTE THE PRECIPITATION EFFICIENCIES AND THE
331           ! FRACTION OF PRECIPITATION FALLING OUTSIDE OF CLOUD
332           ! &
333           ! FIND THE LEVEL OF NEUTRAL BUOYANCY
334           CALL cv3_undilute2(klon, ncum, klev, icb, icbs, nk, tnk, qnk, gznk, &
335                t, qs, gz, p, h, tv, lv, pbase, buoybase, plcl, inb, tp, &
336                tvp, clw, hp, ep, sigp, buoy) !na->klev
337    
338           ! CLOSURE
339           CALL cv3_closure(klon, ncum, klev, icb, inb, pbase, p, ph, tv, &
340                buoy, sig, w0, cape, m) ! na->klev
341    
342           ! MIXING
343           CALL cv3_mixing(klon, ncum, klev, klev, icb, nk, inb, t, q, qs, u, &
344                v, h, lv, hp, ep, clw, m, sig, ment, qent, uent, vent, nent, &
345                sij, elij, ments, qents)
346    
347           ! UNSATURATED (PRECIPITATING) DOWNDRAFTS
348           CALL cv3_unsat(klon, ncum, klev, klev, icb, inb, t, q, qs, gz, u, &
349                v, p, ph, th, tv, lv, cpn, ep, sigp, clw, m, ment, elij, delt, &
350                plcl, mp, qp, up, vp, wt, water, evap, b)! na->klev
351    
352         if (iflag_con == 3) then         ! YIELD
           CALL cv3_compress(klon, klon, ncum, klev, iflag1, nk1, icb1, icbs1, &  
                plcl1, tnk1, qnk1, gznk1, pbase1, buoybase1, t1, q1, qs1, u1, &  
                v1, gz1, th1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, &  
                sig1, w01, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, pbase, &  
                buoybase, t, q, qs, u, v, gz, th, h, lv, cpn, p, ph, tv, tp, &  
                tvp, clw, sig, w0)  
        else  
           ! iflag_con == 4  
           CALL cv_compress(klon, klon, ncum, klev, iflag1, nk1, icb1, cbmf1, &  
                plcl1, tnk1, qnk1, gznk1, t1, q1, qs1, u1, v1, gz1, h1, lv1, &  
                cpn1, p1, ph1, tv1, tp1, tvp1, clw1, iflag, nk, icb, cbmf, &  
                plcl, tnk, qnk, gznk, t, q, qs, u, v, gz, h, lv, cpn, p, ph, &  
                tv, tp, tvp, clw, dph)  
        endif  
   
        ! --- UNDILUTE (ADIABATIC) UPDRAFT / second part :  
        ! --- FIND THE REST OF THE LIFTED PARCEL TEMPERATURES  
        ! --- &  
        ! --- COMPUTE THE PRECIPITATION EFFICIENCIES AND THE  
        ! --- FRACTION OF PRECIPITATION FALLING OUTSIDE OF CLOUD  
        ! --- &  
        ! --- FIND THE LEVEL OF NEUTRAL BUOYANCY  
   
        if (iflag_con == 3) then  
           CALL cv3_undilute2(klon, ncum, klev, icb, icbs, nk, tnk, qnk, gznk, &  
                t, q, qs, gz, p, h, tv, lv, pbase, buoybase, plcl, inb, tp, &  
                tvp, clw, hp, ep, sigp, buoy) !na->klev  
        else  
           ! iflag_con == 4  
           CALL cv_undilute2(klon, ncum, klev, icb, nk, tnk, qnk, gznk, t, q, &  
                qs, gz, p, dph, h, tv, lv, inb, inbis, tp, tvp, clw, hp, ep, &  
                sigp, frac)  
        endif  
   
        ! --- CLOSURE  
   
        if (iflag_con == 3) then  
           CALL cv3_closure(klon, ncum, klev, icb, inb, pbase, p, ph, tv, &  
                buoy, sig, w0, cape, m) ! na->klev  
        else  
           ! iflag_con == 4  
           CALL cv_closure(klon, ncum, klev, nk, icb, tv, tvp, p, ph, dph, &  
                plcl, cpn, iflag, cbmf)  
        endif  
   
        ! --- MIXING  
   
        if (iflag_con == 3) then  
           CALL cv3_mixing(klon, ncum, klev, klev, icb, nk, inb, ph, t, q, &  
                qs, u, v, h, lv, qnk, hp, tv, tvp, ep, clw, m, sig, ment, &  
                qent, uent, vent, nent, sij, elij, ments, qents)  
        else  
           ! iflag_con == 4  
           CALL cv_mixing(klon, ncum, klev, icb, nk, inb, inbis, ph, t, q, qs, &  
                u, v, h, lv, qnk, hp, tv, tvp, ep, clw, cbmf, m, ment, qent, &  
                uent, vent, nent, sij, elij)  
        endif  
   
        ! --- UNSATURATED (PRECIPITATING) DOWNDRAFTS  
   
        if (iflag_con == 3) then  
           CALL cv3_unsat(klon, ncum, klev, klev, icb, inb, t, q, qs, gz, u, &  
                v, p, ph, th, tv, lv, cpn, ep, sigp, clw, m, ment, elij, delt, &  
                plcl, mp, qp, up, vp, wt, water, evap, b)! na->klev  
        else  
           ! iflag_con == 4  
           CALL cv_unsat(klon, ncum, klev, inb, t, q, qs, gz, u, v, p, ph, h, &  
                lv, ep, sigp, clw, m, ment, elij, iflag, mp, qp, up, vp, wt, &  
                water, evap)  
        endif  
   
        ! --- YIELD  
353         ! (tendencies, precipitation, variables of interface with other         ! (tendencies, precipitation, variables of interface with other
354         ! processes, etc)         ! processes, etc)
355           CALL cv3_yield(klon, ncum, klev, klev, icb, inb, delt, t, q, u, v, &
356                gz, p, ph, h, hp, lv, cpn, th, ep, clw, m, tp, mp, qp, up, vp, &
357                wt, water, evap, b, ment, qent, uent, vent, nent, elij, sig, &
358                tv, tvp, iflag, precip, VPrecip, ft, fq, fu, fv, upwd, dnwd, &
359                dnwd0, ma, mike, tls, tps, qcondc, wd)! na->klev
360    
361         if (iflag_con == 3) then         ! passive tracers
362            CALL cv3_yield(klon, ncum, klev, klev, icb, inb, delt, t, q, u, v, &         CALL cv3_tracer(klon, ncum, klev, ment, sij, da, phi)
                gz, p, ph, h, hp, lv, cpn, th, ep, clw, m, tp, mp, qp, up, vp, &  
                wt, water, evap, b, ment, qent, uent, vent, nent, elij, sig, &  
                tv, tvp, iflag, precip, VPrecip, ft, fq, fu, fv, upwd, dnwd, &  
                dnwd0, ma, mike, tls, tps, qcondc, wd)! na->klev  
        else  
           ! iflag_con == 4  
           CALL cv_yield(klon, ncum, klev, nk, icb, inb, delt, t, q, u, v, gz, &  
                p, ph, h, hp, lv, cpn, ep, clw, frac, m, mp, qp, up, vp, wt, &  
                water, evap, ment, qent, uent, vent, nent, elij, tv, tvp, &  
                iflag, wd, qprime, tprime, precip, cbmf, ft, fq, fu, fv, Ma, &  
                qcondc)  
        endif  
   
        ! --- passive tracers  
   
        if (iflag_con == 3) CALL cv3_tracer(klon, ncum, klev, ment, sij, da, phi)  
363    
364         ! --- UNCOMPRESS THE FIELDS         ! UNCOMPRESS THE FIELDS
365    
366         ! set iflag1 = 42 for non convective points         ! set iflag1 = 42 for non convective points
367         do i = 1, klon         do i = 1, klon
368            iflag1(i) = 42            iflag1(i) = 42
369         end do         end do
370    
371         if (iflag_con == 3) then         CALL cv3_uncompress(idcum(:ncum), iflag, precip, VPrecip, sig, w0, &
372            CALL cv3_uncompress(idcum(:ncum), iflag, precip, VPrecip, sig, w0, &              ft, fq, fu, fv, inb, Ma, upwd, dnwd, dnwd0, qcondc, wd, cape, &
373                 ft, fq, fu, fv, inb, Ma, upwd, dnwd, dnwd0, qcondc, wd, cape, &              da, phi, mp, iflag1, precip1, VPrecip1, sig1, w01, ft1, fq1, &
374                 da, phi, mp, iflag1, precip1, VPrecip1, sig1, w01, ft1, fq1, &              fu1, fv1, inb1, Ma1, upwd1, dnwd1, dnwd01, qcondc1, wd1, &
375                 fu1, fv1, inb1, Ma1, upwd1, dnwd1, dnwd01, qcondc1, wd1, &              cape1, da1, phi1, mp1)
376                 cape1, da1, phi1, mp1)      ENDIF
        else  
           ! iflag_con == 4  
           CALL cv_uncompress(idcum(:ncum), iflag, precip, cbmf, ft, fq, fu, &  
                fv, Ma, qcondc, iflag1, precip1, cbmf1, ft1, fq1, fu1, fv1, &  
                Ma1, qcondc1)  
        endif  
     ENDIF ! ncum>0  
377    
378    end SUBROUTINE cv_driver    end SUBROUTINE cv_driver
379    

Legend:
Removed from v.139  
changed lines
  Added in v.183

  ViewVC Help
Powered by ViewVC 1.1.21