source: LMDZ5/branches/AI-cosp/libf/phylmd/concvl.F90 @ 5444

Last change on this file since 5444 was 2346, checked in by Ehouarn Millour, 9 years ago

Physics/dynamics separation:

  • remove all references to dimensions.h from physics. nbp_lon (==iim) , nbp_lat (==jjm+1) and nbp_lev (==llm) from mod_grid_phy_lmdz should be used instead.
  • added module regular_lonlat_mod in phy_common to store information about the global (lon-lat) grid cell boundaries and centers.

EM

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 18.3 KB
Line 
1SUBROUTINE concvl(iflag_clos, &
2                  dtime, paprs, pplay, k_upper_cv, &
3                  t, q, t_wake, q_wake, s_wake, u, v, tra, ntra, &
4                  Ale, Alp, sig1, w01, &
5                  d_t, d_q, d_u, d_v, d_tra, &
6                  rain, snow, kbas, ktop, sigd, &
7                  cbmf, plcl, plfc, wbeff, upwd, dnwd, dnwdbis, &
8                  Ma, mip, Vprecip, &
9                  cape, cin, tvp, Tconv, iflag, &
10                  pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, dplcldr, &
11                  qcondc, wd, pmflxr, pmflxs, &
12!RomP >>>
13!!     .             da,phi,mp,dd_t,dd_q,lalim_conv,wght_th)
14                  da, phi, mp, phi2, d1a, dam, sij, clw, elij, &     ! RomP
15                  dd_t, dd_q, lalim_conv, wght_th, &                 ! RomP
16                  evap, ep, epmlmMm, eplaMm, &                       ! RomP
17                  wdtrainA, wdtrainM, wght, qtc, sigt, &
18                  tau_cld_cv, coefw_cld_cv)                           ! RomP+RL, AJ
19!RomP <<<
20! **************************************************************
21! *
22! CONCVL                                                      *
23! *
24! *
25! written by   : Sandrine Bony-Lena, 17/05/2003, 11.16.04    *
26! modified by :                                               *
27! **************************************************************
28
29
30  USE dimphy
31  USE infotrac_phy, ONLY: nbtr
32  USE phys_local_var_mod, ONLY: omega
33  USE print_control_mod, ONLY: prt_level, lunout
34  IMPLICIT NONE
35! ======================================================================
36! Auteur(s): S. Bony-Lena (LMD/CNRS) date: ???
37! Objet: schema de convection de Emanuel (1991) interface
38! ======================================================================
39! Arguments:
40! dtime--input-R-pas d'integration (s)
41! s-------input-R-la vAleur "s" pour chaque couche
42! sigs----input-R-la vAleur "sigma" de chaque couche
43! sig-----input-R-la vAleur de "sigma" pour chaque niveau
44! psolpa--input-R-la pression au sol (en Pa)
45! pskapa--input-R-exponentiel kappa de psolpa
46! h-------input-R-enthAlpie potentielle (Cp*T/P**kappa)
47! q-------input-R-vapeur d'eau (en kg/kg)
48
49! work*: input et output: deux variables de travail,
50! on peut les mettre a 0 au debut
51! ALE--------input-R-energie disponible pour soulevement
52! ALP--------input-R-puissance disponible pour soulevement
53
54! d_h--------output-R-increment de l'enthAlpie potentielle (h)
55! d_q--------output-R-increment de la vapeur d'eau
56! rain-------output-R-la pluie (mm/s)
57! snow-------output-R-la neige (mm/s)
58! upwd-------output-R-saturated updraft mass flux (kg/m**2/s)
59! dnwd-------output-R-saturated downdraft mass flux (kg/m**2/s)
60! dnwd0------output-R-unsaturated downdraft mass flux (kg/m**2/s)
61! Ma---------output-R-adiabatic ascent mass flux (kg/m2/s)
62! mip--------output-R-mass flux shed by adiabatic ascent (kg/m2/s)
63! Vprecip----output-R-vertical profile of total precipitation (kg/m2/s)
64! Tconv------output-R-environment temperature seen by convective scheme (K)
65! Cape-------output-R-CAPE (J/kg)
66! Cin -------output-R-CIN  (J/kg)
67! Tvp--------output-R-Temperature virtuelle d'une parcelle soulevee
68! adiabatiquement a partir du niveau 1 (K)
69! deltapb----output-R-distance entre LCL et base de la colonne (<0 ; Pa)
70! Ice_flag---input-L-TRUE->prise en compte de la thermodynamique de la glace
71! dd_t-------output-R-increment de la temperature du aux descentes precipitantes
72! dd_q-------output-R-increment de la vapeur d'eau du aux desc precip
73! lalim_conv-
74! wght_th----
75! evap-------output-R
76! ep---------output-R
77! epmlmMm----output-R
78! eplaMm-----output-R
79! wdtrainA---output-R
80! wdtrainM---output-R
81! wght-------output-R
82! ======================================================================
83
84
85  include "clesphys.h"
86
87  INTEGER iflag_clos
88
89  REAL dtime, paprs(klon, klev+1), pplay(klon, klev)
90  INTEGER k_upper_cv
91  REAL t(klon, klev), q(klon, klev), u(klon, klev), v(klon, klev)
92  REAL t_wake(klon, klev), q_wake(klon, klev)
93  REAL s_wake(klon)
94  REAL tra(klon, klev, nbtr)
95  INTEGER ntra
96  REAL sig1(klon, klev), w01(klon, klev), ptop2(klon)
97  REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1)
98  REAL Ale(klon), Alp(klon)
99
100  REAL d_t(klon, klev), d_q(klon, klev), d_u(klon, klev), d_v(klon, klev)
101  REAL dd_t(klon, klev), dd_q(klon, klev)
102  REAL d_tra(klon, klev, nbtr)
103  REAL rain(klon), snow(klon)
104
105  INTEGER kbas(klon), ktop(klon)
106  REAL em_ph(klon, klev+1), em_p(klon, klev)
107  REAL upwd(klon, klev), dnwd(klon, klev), dnwdbis(klon, klev)
108
109!!       REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev)     !jyg
110  REAL Ma(klon, klev), mip(klon, klev), Vprecip(klon, klev+1)      !jyg
111  REAL Vprecipi(klon, klev+1)                                      !jyg
112  REAL wght(klon, klev)                                            !RL
113
114  REAL da(klon, klev), phi(klon, klev, klev), mp(klon, klev)
115! RomP >>>
116  REAL phi2(klon, klev, klev)
117  REAL d1a(klon, klev), dam(klon, klev)
118  REAL sij(klon, klev, klev), clw(klon, klev), elij(klon, klev, klev)
119  REAL wdtrainA(klon, klev), wdtrainM(klon, klev)
120  REAL evap(klon, klev), ep(klon, klev)
121  REAL epmlmMm(klon, klev, klev), eplaMm(klon, klev)
122! RomP <<<
123  REAL cape(klon), cin(klon), tvp(klon, klev)
124  REAL Tconv(klon, klev)
125
126!CR:test: on passe lentr et alim_star des thermiques
127  INTEGER lalim_conv(klon)
128  REAL wght_th(klon, klev)
129  REAL em_sig1feed ! sigma at lower bound of feeding layer
130  REAL em_sig2feed ! sigma at upper bound of feeding layer
131  REAL em_wght(klev) ! weight density determining the feeding mixture
132!on enleve le save
133! SAVE em_sig1feed,em_sig2feed,em_wght
134
135  INTEGER iflag(klon)
136  REAL rflag(klon)
137  REAL pbase(klon), bbase(klon)
138  REAL dtvpdt1(klon, klev), dtvpdq1(klon, klev)
139  REAL dplcldt(klon), dplcldr(klon)
140  REAL qcondc(klon, klev)
141  REAL qtc(klon, klev)
142  REAL sigt(klon, klev)
143  REAL wd(klon)
144  REAL plim1(klon), plim2(klon), asupmax(klon, klev)
145  REAL supmax0(klon), asupmaxmin(klon)
146
147  REAL sigd(klon)
148  REAL zx_t, zdelta, zx_qs, zcor
149  REAL tau_cld_cv, coefw_cld_cv
150
151!   INTEGER iflag_mix
152!   SAVE iflag_mix
153  INTEGER noff, minorig
154  INTEGER i, k, itra
155  REAL qs(klon, klev), qs_wake(klon, klev)
156  REAL cbmf(klon), plcl(klon), plfc(klon), wbeff(klon)
157!LF          SAVE cbmf
158!IM/JYG      REAL, SAVE, ALLOCATABLE :: cbmf(:)
159!!!$OMP THREADPRIVATE(cbmf)!
160  REAL cbmflast(klon)
161  INTEGER ifrst
162  SAVE ifrst
163  DATA ifrst/0/
164!$OMP THREADPRIVATE(ifrst)
165
166
167! Variables supplementaires liees au bilan d'energie
168! Real paire(klon)
169!LF      Real ql(klon,klev)
170! Save paire
171!LF      Save ql
172!LF      Real t1(klon,klev),q1(klon,klev)
173!LF      Save t1,q1
174! Data paire /1./
175  REAL, SAVE, ALLOCATABLE :: ql(:, :), q1(:, :), t1(:, :)
176!$OMP THREADPRIVATE(ql, q1, t1)
177
178! Variables liees au bilan d'energie et d'enthAlpi
179  REAL ztsol(klon)
180  REAL        h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot, &
181              h_qs_tot, qw_tot, ql_tot, qs_tot, ec_tot
182  SAVE        h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot, &
183              h_qs_tot, qw_tot, ql_tot, qs_tot, ec_tot
184!$OMP THREADPRIVATE(h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot)
185!$OMP THREADPRIVATE(h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot)
186  REAL        d_h_vcol, d_h_dair, d_qt, d_qw, d_ql, d_qs, d_ec
187  REAL        d_h_vcol_phy
188  REAL        fs_bound, fq_bound
189  SAVE        d_h_vcol_phy
190!$OMP THREADPRIVATE(d_h_vcol_phy)
191  REAL        zero_v(klon)
192  CHARACTER *15 ztit
193  INTEGER     ip_ebil ! PRINT level for energy conserv. diag.
194  SAVE        ip_ebil
195  DATA        ip_ebil/2/
196!$OMP THREADPRIVATE(ip_ebil)
197  INTEGER     if_ebil ! level for energy conserv. dignostics
198  SAVE        if_ebil
199  DATA        if_ebil/2/
200!$OMP THREADPRIVATE(if_ebil)
201!+jld ec_conser
202  REAL d_t_ec(klon, klev) ! tendance du a la conersion Ec -> E thermique
203  REAL zrcpd
204!-jld ec_conser
205!LF
206  INTEGER nloc
207  LOGICAL, SAVE            :: first = .TRUE.
208!$OMP THREADPRIVATE(first)
209  INTEGER, SAVE            :: itap, igout
210!$OMP THREADPRIVATE(itap, igout)
211
212
213  include "YOMCST.h"
214  include "YOMCST2.h"
215  include "YOETHF.h"
216  include "FCTTRE.h"
217!jyg<
218  include "conema3.h"
219!>jyg
220
221  IF (first) THEN
222! Allocate some variables LF 04/2008
223
224!IM/JYG allocate(cbmf(klon))
225    ALLOCATE (ql(klon,klev))
226    ALLOCATE (t1(klon,klev))
227    ALLOCATE (q1(klon,klev))
228    itap = 0
229    igout = klon/2 + 1/klon
230  END IF
231! Incrementer le compteur de la physique
232  itap = itap + 1
233
234! Copy T into Tconv
235  DO k = 1, klev
236    DO i = 1, klon
237      Tconv(i, k) = t(i, k)
238    END DO
239  END DO
240
241  IF (if_ebil>=1) THEN
242    DO i = 1, klon
243      ztsol(i) = t(i, 1)
244      zero_v(i) = 0.
245      DO k = 1, klev
246        ql(i, k) = 0.
247      END DO
248    END DO
249  END IF
250
251! ym
252  snow(:) = 0
253
254! IF (ifrst .EQ. 0) THEN
255! ifrst = 1
256  IF (first) THEN
257    first = .FALSE.
258
259! ===========================================================================
260! READ IN PARAMETERS FOR THE CLOSURE AND THE MIXING DISTRIBUTION
261! ===========================================================================
262
263    IF (iflag_con==3) THEN
264!      CALL cv3_inicp()
265      CALL cv3_inip()
266    END IF
267
268! ===========================================================================
269! READ IN PARAMETERS FOR CONVECTIVE INHIBITION BY TROPOS. DRYNESS
270! ===========================================================================
271
272! c$$$         open (56,file='supcrit.data')
273! c$$$         read (56,*) Supcrit1, Supcrit2
274! c$$$         close (56)
275
276    IF (prt_level>=10) WRITE (lunout, *) 'supcrit1, supcrit2', supcrit1, supcrit2
277
278! ===========================================================================
279! Initialisation pour les bilans d'eau et d'energie
280! ===========================================================================
281    IF (if_ebil>=1) d_h_vcol_phy = 0.
282
283    DO i = 1, klon
284      cbmf(i) = 0.
285!!          plcl(i) = 0.
286      sigd(i) = 0.
287    END DO
288  END IF !(ifrst .EQ. 0)
289
290! Initialisation a chaque pas de temps
291  plfc(:) = 0.
292  wbeff(:) = 100.
293  plcl(:) = 0.
294
295  DO k = 1, klev + 1
296    DO i = 1, klon
297      em_ph(i, k) = paprs(i, k)/100.0
298      pmflxr(i, k) = 0.
299      pmflxs(i, k) = 0.
300    END DO
301  END DO
302
303  DO k = 1, klev
304    DO i = 1, klon
305      em_p(i, k) = pplay(i, k)/100.0
306    END DO
307  END DO
308
309
310! Feeding layer
311
312  em_sig1feed = 1.
313!jyg<
314!  em_sig2feed = 0.97
315  em_sig2feed = cvl_sig2feed
316!>jyg
317! em_sig2feed = 0.8
318! Relative Weight densities
319  DO k = 1, klev
320    em_wght(k) = 1.
321  END DO
322!CRtest: couche alim des tehrmiques ponderee par a*
323! DO i = 1, klon
324! do k=1,lalim_conv(i)
325! em_wght(k)=wght_th(i,k)
326! print*,'em_wght=',em_wght(k),wght_th(i,k)
327! end do
328! END DO
329
330  IF (iflag_con==4) THEN
331    DO k = 1, klev
332      DO i = 1, klon
333        zx_t = t(i, k)
334        zdelta = max(0., sign(1.,rtt-zx_t))
335        zx_qs = min(0.5, r2es*foeew(zx_t,zdelta)/em_p(i,k)/100.0)
336        zcor = 1./(1.-retv*zx_qs)
337        qs(i, k) = zx_qs*zcor
338      END DO
339      DO i = 1, klon
340        zx_t = t_wake(i, k)
341        zdelta = max(0., sign(1.,rtt-zx_t))
342        zx_qs = min(0.5, r2es*foeew(zx_t,zdelta)/em_p(i,k)/100.0)
343        zcor = 1./(1.-retv*zx_qs)
344        qs_wake(i, k) = zx_qs*zcor
345      END DO
346    END DO
347  ELSE ! iflag_con=3 (modif de puristes qui fait la diffce pour la convergence numerique)
348    DO k = 1, klev
349      DO i = 1, klon
350        zx_t = t(i, k)
351        zdelta = max(0., sign(1.,rtt-zx_t))
352        zx_qs = r2es*foeew(zx_t, zdelta)/em_p(i, k)/100.0
353        zx_qs = min(0.5, zx_qs)
354        zcor = 1./(1.-retv*zx_qs)
355        zx_qs = zx_qs*zcor
356        qs(i, k) = zx_qs
357      END DO
358      DO i = 1, klon
359        zx_t = t_wake(i, k)
360        zdelta = max(0., sign(1.,rtt-zx_t))
361        zx_qs = r2es*foeew(zx_t, zdelta)/em_p(i, k)/100.0
362        zx_qs = min(0.5, zx_qs)
363        zcor = 1./(1.-retv*zx_qs)
364        zx_qs = zx_qs*zcor
365        qs_wake(i, k) = zx_qs
366      END DO
367    END DO
368  END IF ! iflag_con
369
370! ------------------------------------------------------------------
371
372! Main driver for convection:
373!                   iflag_con=3 -> nvlle version de KE (JYG)
374!                   iflag_con = 30  -> equivAlent to convect3
375!                   iflag_con = 4  -> equivAlent to convect1/2
376
377
378  IF (iflag_con==30) THEN
379
380! print *, '-> cv_driver'      !jyg
381    CALL cv_driver(klon, klev, klevp1, ntra, iflag_con, &
382                   t, q, qs, u, v, tra, &
383                   em_p, em_ph, iflag, &
384                   d_t, d_q, d_u, d_v, d_tra, rain, &
385                   Vprecip, cbmf, sig1, w01, & !jyg
386                   kbas, ktop, &
387                   dtime, Ma, upwd, dnwd, dnwdbis, qcondc, wd, cape, &
388                   da, phi, mp, phi2, d1a, dam, sij, clw, elij, &       !RomP
389                   evap, ep, epmlmMm, eplaMm, &                         !RomP
390                   wdtrainA, wdtrainM)                                  !RomP
391!           print *, 'cv_driver ->'      !jyg
392
393    DO i = 1, klon
394      cbmf(i) = Ma(i, kbas(i))
395    END DO
396
397!RL
398    wght(:, :) = 0.
399    DO i = 1, klon
400      wght(i, 1) = 1.
401    END DO
402!RL
403
404  ELSE
405
406!LF   necessary for gathered fields
407    nloc = klon
408    CALL cva_driver(klon, klev, klev+1, ntra, nloc, k_upper_cv, &
409                    iflag_con, iflag_mix, iflag_ice_thermo, &
410                    iflag_clos, ok_conserv_q, dtime, cvl_comp_threshold, &
411                    t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, tra, &
412                    em_p, em_ph, &
413                    Ale, Alp, omega, &
414                    em_sig1feed, em_sig2feed, em_wght, &
415                    iflag, d_t, d_q, d_u, d_v, d_tra, rain, kbas, ktop, &
416                    cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, &
417                    Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, &
418                    cape, cin, tvp, &
419                    dd_t, dd_q, plim1, plim2, asupmax, supmax0, &
420                    asupmaxmin, lalim_conv, &
421!AC!+!RomP+jyg
422!!                   da,phi,mp,phi2,d1a,dam,sij,clw,elij, &               ! RomP
423!!                   evap,ep,epmlmMm,eplaMm,                              ! RomP
424                    da, phi, mp, phi2, d1a, dam, sij, wght, &           ! RomP+RL
425                    clw, elij, evap, ep, epmlmMm, eplaMm, &             ! RomP+RL
426                    wdtrainA, wdtrainM, qtc, sigt, &
427                    tau_cld_cv, coefw_cld_cv)                           ! RomP,AJ
428!AC!+!RomP+jyg
429  END IF
430! ------------------------------------------------------------------
431  IF (prt_level>=10) WRITE (lunout, *) ' cva_driver -> cbmf,plcl,plfc,wbeff ', &
432                                         cbmf(1), plcl(1), plfc(1), wbeff(1)
433
434  DO i = 1, klon
435    rain(i) = rain(i)/86400.
436    rflag(i) = iflag(i)
437  END DO
438
439  DO k = 1, klev
440    DO i = 1, klon
441      d_t(i, k) = dtime*d_t(i, k)
442      d_q(i, k) = dtime*d_q(i, k)
443      d_u(i, k) = dtime*d_u(i, k)
444      d_v(i, k) = dtime*d_v(i, k)
445    END DO
446  END DO
447
448  IF (iflag_con==30) THEN
449    DO itra = 1, ntra
450      DO k = 1, klev
451        DO i = 1, klon
452!RL!            d_tra(i,k,itra) =dtime*d_tra(i,k,itra)
453          d_tra(i, k, itra) = 0.
454        END DO
455      END DO
456    END DO
457  END IF
458
459!!AC!
460  IF (iflag_con==3) THEN
461    DO itra = 1, ntra
462      DO k = 1, klev
463        DO i = 1, klon
464!RL!            d_tra(i,k,itra) =dtime*d_tra(i,k,itra)
465          d_tra(i, k, itra) = 0.
466        END DO
467      END DO
468    END DO
469  END IF
470!!AC!
471
472  DO k = 1, klev
473    DO i = 1, klon
474      t1(i, k) = t(i, k) + d_t(i, k)
475      q1(i, k) = q(i, k) + d_q(i, k)
476    END DO
477  END DO
478!                                                     !jyg
479  IF (iflag_con == 30 .OR. iflag_ice_thermo ==0) THEN
480! --Separation neige/pluie (pour diagnostics)         !jyg
481    DO k = 1, klev                                    !jyg
482      DO i = 1, klon                                  !jyg
483        IF (t1(i,k)<rtt) THEN                         !jyg
484          pmflxs(i, k) = Vprecip(i, k)                !jyg
485        ELSE                                          !jyg
486          pmflxr(i, k) = Vprecip(i, k)                !jyg
487        END IF                                        !jyg
488      END DO                                          !jyg
489    END DO                                            !jyg
490  ELSE
491    DO k = 1, klev                                    !jyg
492      DO i = 1, klon                                  !jyg
493        pmflxs(i, k) = Vprecipi(i, k)                 !jyg
494        pmflxr(i, k) = Vprecip(i, k)-Vprecipi(i, k)   !jyg
495      END DO                                          !jyg
496    END DO                                            !jyg
497  ENDIF
498
499! c      IF (if_ebil.ge.2) THEN
500! c        ztit='after convect'
501! c        CALL diagetpq(paire,ztit,ip_ebil,2,2,dtime
502! c     e      , t1,q1,ql,qs,u,v,paprs,pplay
503! c     s      , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec)
504! c         call diagphy(paire,ztit,ip_ebil
505! c     e      , zero_v, zero_v, zero_v, zero_v, zero_v
506! c     e      , zero_v, rain, zero_v, ztsol
507! c     e      , d_h_vcol, d_qt, d_ec
508! c     s      , fs_bound, fq_bound )
509! c      END IF
510
511
512! les traceurs ne sont pas mis dans cette version de convect4:
513  IF (iflag_con==4) THEN
514    DO itra = 1, ntra
515      DO k = 1, klev
516        DO i = 1, klon
517          d_tra(i, k, itra) = 0.
518        END DO
519      END DO
520    END DO
521  END IF
522! print*, 'concvl->: dd_t,dd_q ',dd_t(1,1),dd_q(1,1)
523
524  DO k = 1, klev
525    DO i = 1, klon
526      dtvpdt1(i, k) = 0.
527      dtvpdq1(i, k) = 0.
528    END DO
529  END DO
530  DO i = 1, klon
531    dplcldt(i) = 0.
532    dplcldr(i) = 0.
533  END DO
534
535  IF (prt_level>=20) THEN
536    DO k = 1, klev
537! print*,'physiq apres_add_con i k it d_u d_v d_t d_q qdl0',igout, &
538!         k,itap,d_u_con(igout,k) ,d_v_con(igout,k), d_t_con(igout,k), &
539!         d_q_con(igout,k),dql0(igout,k)
540! print*,'phys apres_add_con itap Ma cin ALE ALP wak t q undi t q', &
541!         itap,Ma(igout,k),cin(igout),ALE(igout), ALP(igout), &
542!         t_wake(igout,k),q_wake(igout,k),t_undi(igout,k),q_undi(igout,k)
543! print*,'phy apres_add_con itap CON rain snow EMA wk1 wk2 Vpp mip', &
544!         itap,rain_con(igout),snow_con(igout),ema_work1(igout,k), &
545!         ema_work2(igout,k),Vprecip(igout,k), mip(igout,k)
546! print*,'phy apres_add_con itap upwd dnwd dnwd0 cape tvp Tconv ', &
547!         itap,upwd(igout,k),dnwd(igout,k),dnwd0(igout,k),cape(igout), &
548!         tvp(igout,k),Tconv(igout,k)
549! print*,'phy apres_add_con itap dtvpdt dtvdq dplcl dplcldr qcondc', &
550!         itap,dtvpdt1(igout,k),dtvpdq1(igout,k),dplcldt(igout), &
551!         dplcldr(igout),qcondc(igout,k)
552! print*,'phy apres_add_con itap wd pmflxr Kpmflxr Kp1 Kpmflxs Kp1', &
553!         itap,wd(igout),pmflxr(igout,k),pmflxr(igout,k+1),pmflxs(igout,k), &
554!         pmflxs(igout,k+1)
555! print*,'phy apres_add_con itap da phi mp ftd fqd lalim wgth', &
556!         itap,da(igout,k),phi(igout,k,k),mp(igout,k),ftd(igout,k), &
557!         fqd(igout,k),lalim_conv(igout),wght_th(igout,k)
558    END DO
559  END IF !(prt_level.EQ.20) THEN
560
561  RETURN
562END SUBROUTINE concvl
563
Note: See TracBrowser for help on using the repository browser.