source: LMDZ5/branches/testing/libf/phylmd/concvl.F90 @ 2791

Last change on this file since 2791 was 2488, checked in by Laurent Fairhead, 9 years ago

Merged trunk changes r2457:2487 into testing branch

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