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

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

Improved diagnostics: pmflxr and pmflxs are now
the true vertical profiles of liquid and solid
convective precipitation (previously they where
merely diagnosed through a test on temperature).
The convective scheme internal variable for ice
precipitation is Vprecipi.

  • 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, 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 total precipitation (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  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  include "iniprint.h"
218!jyg<
219  include "conema3.h"
220!>jyg
221
222  IF (first) THEN
223! Allocate some variables LF 04/2008
224
225!IM/JYG allocate(cbmf(klon))
226    ALLOCATE (ql(klon,klev))
227    ALLOCATE (t1(klon,klev))
228    ALLOCATE (q1(klon,klev))
229    itap = 0
230    igout = klon/2 + 1/klon
231  END IF
232! Incrementer le compteur de la physique
233  itap = itap + 1
234
235! Copy T into Tconv
236  DO k = 1, klev
237    DO i = 1, klon
238      Tconv(i, k) = t(i, k)
239    END DO
240  END DO
241
242  IF (if_ebil>=1) THEN
243    DO i = 1, klon
244      ztsol(i) = t(i, 1)
245      zero_v(i) = 0.
246      DO k = 1, klev
247        ql(i, k) = 0.
248      END DO
249    END DO
250  END IF
251
252! ym
253  snow(:) = 0
254
255! IF (ifrst .EQ. 0) THEN
256! ifrst = 1
257  IF (first) THEN
258    first = .FALSE.
259
260! ===========================================================================
261! READ IN PARAMETERS FOR THE CLOSURE AND THE MIXING DISTRIBUTION
262! ===========================================================================
263
264    IF (iflag_con==3) THEN
265!      CALL cv3_inicp()
266      CALL cv3_inip()
267    END IF
268
269! ===========================================================================
270! READ IN PARAMETERS FOR CONVECTIVE INHIBITION BY TROPOS. DRYNESS
271! ===========================================================================
272
273! c$$$         open (56,file='supcrit.data')
274! c$$$         read (56,*) Supcrit1, Supcrit2
275! c$$$         close (56)
276
277    IF (prt_level>=10) WRITE (lunout, *) 'supcrit1, supcrit2', supcrit1, supcrit2
278
279! ===========================================================================
280! Initialisation pour les bilans d'eau et d'energie
281! ===========================================================================
282    IF (if_ebil>=1) d_h_vcol_phy = 0.
283
284    DO i = 1, klon
285      cbmf(i) = 0.
286!!          plcl(i) = 0.
287      sigd(i) = 0.
288    END DO
289  END IF !(ifrst .EQ. 0)
290
291! Initialisation a chaque pas de temps
292  plfc(:) = 0.
293  wbeff(:) = 100.
294  plcl(:) = 0.
295
296  DO k = 1, klev + 1
297    DO i = 1, klon
298      em_ph(i, k) = paprs(i, k)/100.0
299      pmflxr(i, k) = 0.
300      pmflxs(i, k) = 0.
301    END DO
302  END DO
303
304  DO k = 1, klev
305    DO i = 1, klon
306      em_p(i, k) = pplay(i, k)/100.0
307    END DO
308  END DO
309
310
311! Feeding layer
312
313  em_sig1feed = 1.
314!jyg<
315!  em_sig2feed = 0.97
316  em_sig2feed = cvl_sig2feed
317!>jyg
318! em_sig2feed = 0.8
319! Relative Weight densities
320  DO k = 1, klev
321    em_wght(k) = 1.
322  END DO
323!CRtest: couche alim des tehrmiques ponderee par a*
324! DO i = 1, klon
325! do k=1,lalim_conv(i)
326! em_wght(k)=wght_th(i,k)
327! print*,'em_wght=',em_wght(k),wght_th(i,k)
328! end do
329! END DO
330
331  IF (iflag_con==4) THEN
332    DO k = 1, klev
333      DO i = 1, klon
334        zx_t = t(i, k)
335        zdelta = max(0., sign(1.,rtt-zx_t))
336        zx_qs = min(0.5, r2es*foeew(zx_t,zdelta)/em_p(i,k)/100.0)
337        zcor = 1./(1.-retv*zx_qs)
338        qs(i, k) = zx_qs*zcor
339      END DO
340      DO i = 1, klon
341        zx_t = t_wake(i, k)
342        zdelta = max(0., sign(1.,rtt-zx_t))
343        zx_qs = min(0.5, r2es*foeew(zx_t,zdelta)/em_p(i,k)/100.0)
344        zcor = 1./(1.-retv*zx_qs)
345        qs_wake(i, k) = zx_qs*zcor
346      END DO
347    END DO
348  ELSE ! iflag_con=3 (modif de puristes qui fait la diffce pour la convergence numerique)
349    DO k = 1, klev
350      DO i = 1, klon
351        zx_t = t(i, k)
352        zdelta = max(0., sign(1.,rtt-zx_t))
353        zx_qs = r2es*foeew(zx_t, zdelta)/em_p(i, k)/100.0
354        zx_qs = min(0.5, zx_qs)
355        zcor = 1./(1.-retv*zx_qs)
356        zx_qs = zx_qs*zcor
357        qs(i, k) = zx_qs
358      END DO
359      DO i = 1, klon
360        zx_t = t_wake(i, k)
361        zdelta = max(0., sign(1.,rtt-zx_t))
362        zx_qs = r2es*foeew(zx_t, zdelta)/em_p(i, k)/100.0
363        zx_qs = min(0.5, zx_qs)
364        zcor = 1./(1.-retv*zx_qs)
365        zx_qs = zx_qs*zcor
366        qs_wake(i, k) = zx_qs
367      END DO
368    END DO
369  END IF ! iflag_con
370
371! ------------------------------------------------------------------
372
373! Main driver for convection:
374!                   iflag_con=3 -> nvlle version de KE (JYG)
375!                   iflag_con = 30  -> equivAlent to convect3
376!                   iflag_con = 4  -> equivAlent to convect1/2
377
378
379  IF (iflag_con==30) THEN
380
381! print *, '-> cv_driver'      !jyg
382    CALL cv_driver(klon, klev, klevp1, ntra, iflag_con, &
383                   t, q, qs, u, v, tra, &
384                   em_p, em_ph, iflag, &
385                   d_t, d_q, d_u, d_v, d_tra, rain, &
386                   Vprecip, cbmf, sig1, w01, & !jyg
387                   kbas, ktop, &
388                   dtime, Ma, upwd, dnwd, dnwdbis, qcondc, wd, cape, &
389                   da, phi, mp, phi2, d1a, dam, sij, clw, elij, &       !RomP
390                   evap, ep, epmlmMm, eplaMm, &                         !RomP
391                   wdtrainA, wdtrainM)                                  !RomP
392!           print *, 'cv_driver ->'      !jyg
393
394    DO i = 1, klon
395      cbmf(i) = Ma(i, kbas(i))
396    END DO
397
398!RL
399    wght(:, :) = 0.
400    DO i = 1, klon
401      wght(i, 1) = 1.
402    END DO
403!RL
404
405  ELSE
406
407!LF   necessary for gathered fields
408    nloc = klon
409    CALL cva_driver(klon, klev, klev+1, ntra, nloc, k_upper_cv, &
410                    iflag_con, iflag_mix, iflag_ice_thermo, &
411                    iflag_clos, ok_conserv_q, dtime, cvl_comp_threshold, &
412                    t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, tra, &
413                    em_p, em_ph, &
414                    Ale, Alp, omega, &
415                    em_sig1feed, em_sig2feed, em_wght, &
416                    iflag, d_t, d_q, d_u, d_v, d_tra, rain, kbas, ktop, &
417                    cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, &
418                    Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, &
419                    cape, cin, tvp, &
420                    dd_t, dd_q, plim1, plim2, asupmax, supmax0, &
421                    asupmaxmin, lalim_conv, &
422!AC!+!RomP+jyg
423!!                   da,phi,mp,phi2,d1a,dam,sij,clw,elij, &               ! RomP
424!!                   evap,ep,epmlmMm,eplaMm,                              ! RomP
425                    da, phi, mp, phi2, d1a, dam, sij, wght, &           ! RomP+RL
426                    clw, elij, evap, ep, epmlmMm, eplaMm, &             ! RomP+RL
427                    wdtrainA, wdtrainM, qtc, sigt, &
428                    tau_cld_cv, coefw_cld_cv)                           ! RomP,AJ
429!AC!+!RomP+jyg
430  END IF
431! ------------------------------------------------------------------
432  IF (prt_level>=10) WRITE (lunout, *) ' cva_driver -> cbmf,plcl,plfc,wbeff ', &
433                                         cbmf(1), plcl(1), plfc(1), wbeff(1)
434
435  DO i = 1, klon
436    rain(i) = rain(i)/86400.
437    rflag(i) = iflag(i)
438  END DO
439
440  DO k = 1, klev
441    DO i = 1, klon
442      d_t(i, k) = dtime*d_t(i, k)
443      d_q(i, k) = dtime*d_q(i, k)
444      d_u(i, k) = dtime*d_u(i, k)
445      d_v(i, k) = dtime*d_v(i, k)
446    END DO
447  END DO
448
449  IF (iflag_con==30) THEN
450    DO itra = 1, ntra
451      DO k = 1, klev
452        DO i = 1, klon
453!RL!            d_tra(i,k,itra) =dtime*d_tra(i,k,itra)
454          d_tra(i, k, itra) = 0.
455        END DO
456      END DO
457    END DO
458  END IF
459
460!!AC!
461  IF (iflag_con==3) THEN
462    DO itra = 1, ntra
463      DO k = 1, klev
464        DO i = 1, klon
465!RL!            d_tra(i,k,itra) =dtime*d_tra(i,k,itra)
466          d_tra(i, k, itra) = 0.
467        END DO
468      END DO
469    END DO
470  END IF
471!!AC!
472
473  DO k = 1, klev
474    DO i = 1, klon
475      t1(i, k) = t(i, k) + d_t(i, k)
476      q1(i, k) = q(i, k) + d_q(i, k)
477    END DO
478  END DO
479!                                                     !jyg
480  IF (iflag_con == 30 .OR. iflag_ice_thermo ==0) THEN
481! --Separation neige/pluie (pour diagnostics)         !jyg
482    DO k = 1, klev                                    !jyg
483      DO i = 1, klon                                  !jyg
484        IF (t1(i,k)<rtt) THEN                         !jyg
485          pmflxs(i, k) = Vprecip(i, k)                !jyg
486        ELSE                                          !jyg
487          pmflxr(i, k) = Vprecip(i, k)                !jyg
488        END IF                                        !jyg
489      END DO                                          !jyg
490    END DO                                            !jyg
491  ELSE
492    DO k = 1, klev                                    !jyg
493      DO i = 1, klon                                  !jyg
494        pmflxs(i, k) = Vprecipi(i, k)                 !jyg
495        pmflxr(i, k) = Vprecip(i, k)-Vprecipi(i, k)   !jyg
496      END DO                                          !jyg
497    END DO                                            !jyg
498  ENDIF
499
500! c      IF (if_ebil.ge.2) THEN
501! c        ztit='after convect'
502! c        CALL diagetpq(paire,ztit,ip_ebil,2,2,dtime
503! c     e      , t1,q1,ql,qs,u,v,paprs,pplay
504! c     s      , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec)
505! c         call diagphy(paire,ztit,ip_ebil
506! c     e      , zero_v, zero_v, zero_v, zero_v, zero_v
507! c     e      , zero_v, rain, zero_v, ztsol
508! c     e      , d_h_vcol, d_qt, d_ec
509! c     s      , fs_bound, fq_bound )
510! c      END IF
511
512
513! les traceurs ne sont pas mis dans cette version de convect4:
514  IF (iflag_con==4) THEN
515    DO itra = 1, ntra
516      DO k = 1, klev
517        DO i = 1, klon
518          d_tra(i, k, itra) = 0.
519        END DO
520      END DO
521    END DO
522  END IF
523! print*, 'concvl->: dd_t,dd_q ',dd_t(1,1),dd_q(1,1)
524
525  DO k = 1, klev
526    DO i = 1, klon
527      dtvpdt1(i, k) = 0.
528      dtvpdq1(i, k) = 0.
529    END DO
530  END DO
531  DO i = 1, klon
532    dplcldt(i) = 0.
533    dplcldr(i) = 0.
534  END DO
535
536  IF (prt_level>=20) THEN
537    DO k = 1, klev
538! print*,'physiq apres_add_con i k it d_u d_v d_t d_q qdl0',igout, &
539!         k,itap,d_u_con(igout,k) ,d_v_con(igout,k), d_t_con(igout,k), &
540!         d_q_con(igout,k),dql0(igout,k)
541! print*,'phys apres_add_con itap Ma cin ALE ALP wak t q undi t q', &
542!         itap,Ma(igout,k),cin(igout),ALE(igout), ALP(igout), &
543!         t_wake(igout,k),q_wake(igout,k),t_undi(igout,k),q_undi(igout,k)
544! print*,'phy apres_add_con itap CON rain snow EMA wk1 wk2 Vpp mip', &
545!         itap,rain_con(igout),snow_con(igout),ema_work1(igout,k), &
546!         ema_work2(igout,k),Vprecip(igout,k), mip(igout,k)
547! print*,'phy apres_add_con itap upwd dnwd dnwd0 cape tvp Tconv ', &
548!         itap,upwd(igout,k),dnwd(igout,k),dnwd0(igout,k),cape(igout), &
549!         tvp(igout,k),Tconv(igout,k)
550! print*,'phy apres_add_con itap dtvpdt dtvdq dplcl dplcldr qcondc', &
551!         itap,dtvpdt1(igout,k),dtvpdq1(igout,k),dplcldt(igout), &
552!         dplcldr(igout),qcondc(igout,k)
553! print*,'phy apres_add_con itap wd pmflxr Kpmflxr Kp1 Kpmflxs Kp1', &
554!         itap,wd(igout),pmflxr(igout,k),pmflxr(igout,k+1),pmflxs(igout,k), &
555!         pmflxs(igout,k+1)
556! print*,'phy apres_add_con itap da phi mp ftd fqd lalim wgth', &
557!         itap,da(igout,k),phi(igout,k,k),mp(igout,k),ftd(igout,k), &
558!         fqd(igout,k),lalim_conv(igout),wght_th(igout,k)
559    END DO
560  END IF !(prt_level.EQ.20) THEN
561
562  RETURN
563END SUBROUTINE concvl
564
Note: See TracBrowser for help on using the repository browser.