source: LMDZ5/trunk/libf/phylmd/concvl.F90 @ 2253

Last change on this file since 2253 was 2253, checked in by jyg, 9 years ago

1/ Introduction of two variables in the ".def" files: (i) cvl_sig2feed is
the top of the convective feeding layer in sigma coordinates (D=0.97);
(ii) cvl_comp_threshold is the threshold fraction of convective points
below which compression occurs (D=1.).
2/ Corrections of various bugs revealed by the changes in compression:

  • correct bugs in cv3a_uncompress.F90 for 3 fields used for convective

scavenging.

  • add a reset to zero of "sig" and "w0" for non-convective points

(cva_driver.F90).

  • in cv3_routines.F90, correct bounds of a few loops in cv3_undilute2,

correct the reset of the no-convection counter in cv3_yield.

  • in phys_output_write_mod.F90, correct output of wdtrainA and wdtrainM.

3/ Improve declarations in various subroutines.

Modified files:

conema3.h
cv3param.h
cv3p1_closure.F90
conf_phys_m.F90
cv3a_compress.F90
phys_output_write_mod.F90
cv3_routines.F90
concvl.F90
cva_driver.F90
cv3a_uncompress.F90

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