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

Last change on this file since 2201 was 2201, checked in by crio, 10 years ago

Expérience du tube de dentifrice: Ajout d'un terme de grande-échelle dans
la fermeture du schéma de convection. La fraction de la convergence
grande-échelle de masse au LFC ajoutée au flux de masse à la base calculé
par la fermeture en ALP est controlée par coef_clos_ls lu dans physiq.def
(valeur comprise entre 0 et 1, 0 par défaut).
Tube of toothpaste experiment: Additional large-scale term in the closure
formulation of the deep convection scheme. The fraction of the large-scale
convergence of mass at LFC additioned to the cloud-base mass-flux given by
the ALP closure is controlled by coef_clos_ls read in physiq.def (value
between 0 and 1, 0 by default).

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