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

Last change on this file since 2820 was 2481, checked in by fhourdin, 9 years ago

Introduction d'une dependance epmax=f(Cape) sur proposition de Camille Risi

  • 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
RevLine 
[2007]1SUBROUTINE concvl(iflag_clos, &
[2259]2                  dtime, paprs, pplay, k_upper_cv, &
[2007]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
[2205]17                  wdtrainA, wdtrainM, wght, qtc, sigt, &
[2481]18                  tau_cld_cv, coefw_cld_cv, &                           ! RomP+RL, AJ
[2007]19!RomP <<<
[2481]20                  epmax_diag) ! epmax_cape
[2007]21! **************************************************************
22! *
23! CONCVL                                                      *
24! *
25! *
26! written by   : Sandrine Bony-Lena, 17/05/2003, 11.16.04    *
27! modified by :                                               *
28! **************************************************************
[1849]29
[1334]30
[1992]31  USE dimphy
[2320]32  USE infotrac_phy, ONLY: nbtr
[2201]33  USE phys_local_var_mod, ONLY: omega
[2311]34  USE print_control_mod, ONLY: prt_level, lunout
[1992]35  IMPLICIT NONE
[2007]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)
[1334]49
[2007]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
[766]54
[2007]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)
[2306]64! Vprecip----output-R-vertical profile of total precipitation (kg/m2/s)
[2007]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! ======================================================================
[879]84
[524]85
[1992]86  include "clesphys.h"
[1574]87
[1992]88  INTEGER iflag_clos
89
90  REAL dtime, paprs(klon, klev+1), pplay(klon, klev)
[2259]91  INTEGER k_upper_cv
[1992]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)
[2007]99  REAL Ale(klon), Alp(klon)
[1992]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
[2007]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
[2306]112  REAL Vprecipi(klon, klev+1)                                      !jyg
[2007]113  REAL wght(klon, klev)                                            !RL
[1992]114
115  REAL da(klon, klev), phi(klon, klev, klev), mp(klon, klev)
[2007]116! RomP >>>
[1992]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)
[2007]120  REAL wdtrainA(klon, klev), wdtrainM(klon, klev)
[1992]121  REAL evap(klon, klev), ep(klon, klev)
[2007]122  REAL epmlmMm(klon, klev, klev), eplaMm(klon, klev)
123! RomP <<<
[1992]124  REAL cape(klon), cin(klon), tvp(klon, klev)
[2007]125  REAL Tconv(klon, klev)
[1992]126
[2007]127!CR:test: on passe lentr et alim_star des thermiques
[1992]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
[2007]133!on enleve le save
134! SAVE em_sig1feed,em_sig2feed,em_wght
[1992]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)
[2205]142  REAL qtc(klon, klev)
143  REAL sigt(klon, klev)
[1992]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
[2205]150  REAL tau_cld_cv, coefw_cld_cv
[2481]151  REAL epmax_diag(klon) ! epmax_cape
[1992]152
[2007]153!   INTEGER iflag_mix
154!   SAVE iflag_mix
[1992]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)
[2007]159!LF          SAVE cbmf
160!IM/JYG      REAL, SAVE, ALLOCATABLE :: cbmf(:)
161!!!$OMP THREADPRIVATE(cbmf)!
[1992]162  REAL cbmflast(klon)
163  INTEGER ifrst
164  SAVE ifrst
165  DATA ifrst/0/
[2007]166!$OMP THREADPRIVATE(ifrst)
[1992]167
168
[2007]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./
[1992]177  REAL, SAVE, ALLOCATABLE :: ql(:, :), q1(:, :), t1(:, :)
[2007]178!$OMP THREADPRIVATE(ql, q1, t1)
[1992]179
[2007]180! Variables liees au bilan d'energie et d'enthAlpi
[1992]181  REAL ztsol(klon)
[2007]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)
[1992]194  CHARACTER *15 ztit
[2007]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
[1992]204  REAL d_t_ec(klon, klev) ! tendance du a la conersion Ec -> E thermique
205  REAL zrcpd
[2007]206!-jld ec_conser
207!LF
[1992]208  INTEGER nloc
[2007]209  LOGICAL, SAVE            :: first = .TRUE.
210!$OMP THREADPRIVATE(first)
211  INTEGER, SAVE            :: itap, igout
212!$OMP THREADPRIVATE(itap, igout)
[1992]213
[2205]214
[1992]215  include "YOMCST.h"
216  include "YOMCST2.h"
217  include "YOETHF.h"
218  include "FCTTRE.h"
[2253]219!jyg<
220  include "conema3.h"
221!>jyg
[1992]222
223  IF (first) THEN
[2007]224! Allocate some variables LF 04/2008
[1992]225
[2007]226!IM/JYG allocate(cbmf(klon))
[1992]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
[2007]233! Incrementer le compteur de la physique
[1992]234  itap = itap + 1
235
[2007]236! Copy T into Tconv
[1992]237  DO k = 1, klev
238    DO i = 1, klon
[2007]239      Tconv(i, k) = t(i, k)
[1992]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.
[524]247      DO k = 1, klev
[1992]248        ql(i, k) = 0.
249      END DO
250    END DO
251  END IF
[524]252
[2007]253! ym
[1992]254  snow(:) = 0
255
[2007]256! IF (ifrst .EQ. 0) THEN
257! ifrst = 1
[1992]258  IF (first) THEN
259    first = .FALSE.
260
[2007]261! ===========================================================================
262! READ IN PARAMETERS FOR THE CLOSURE AND THE MIXING DISTRIBUTION
263! ===========================================================================
[1992]264
265    IF (iflag_con==3) THEN
[2007]266!      CALL cv3_inicp()
[1992]267      CALL cv3_inip()
268    END IF
269
[2007]270! ===========================================================================
271! READ IN PARAMETERS FOR CONVECTIVE INHIBITION BY TROPOS. DRYNESS
272! ===========================================================================
[1992]273
[2007]274! c$$$         open (56,file='supcrit.data')
275! c$$$         read (56,*) Supcrit1, Supcrit2
276! c$$$         close (56)
[1992]277
[2007]278    IF (prt_level>=10) WRITE (lunout, *) 'supcrit1, supcrit2', supcrit1, supcrit2
[1992]279
[2007]280! ===========================================================================
281! Initialisation pour les bilans d'eau et d'energie
282! ===========================================================================
[1992]283    IF (if_ebil>=1) d_h_vcol_phy = 0.
284
285    DO i = 1, klon
286      cbmf(i) = 0.
[2007]287!!          plcl(i) = 0.
[1992]288      sigd(i) = 0.
289    END DO
290  END IF !(ifrst .EQ. 0)
291
[2007]292! Initialisation a chaque pas de temps
[1992]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
[2007]312! Feeding layer
[1992]313
314  em_sig1feed = 1.
[2253]315!jyg<
316!  em_sig2feed = 0.97
317  em_sig2feed = cvl_sig2feed
318!>jyg
[2007]319! em_sig2feed = 0.8
320! Relative Weight densities
[1992]321  DO k = 1, klev
322    em_wght(k) = 1.
323  END DO
[2007]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
[1992]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
[2007]349  ELSE ! iflag_con=3 (modif de puristes qui fait la diffce pour la convergence numerique)
[1992]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
[2007]372! ------------------------------------------------------------------
[1992]373
[2007]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
[1992]378
379
380  IF (iflag_con==30) THEN
381
[2007]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
[2481]392                   wdtrainA, wdtrainM, &                                !RomP
393                   epmax_diag) ! epmax_cape
[2007]394!           print *, 'cv_driver ->'      !jyg
[1992]395
396    DO i = 1, klon
[2007]397      cbmf(i) = Ma(i, kbas(i))
[1992]398    END DO
399
[2007]400!RL
401    wght(:, :) = 0.
402    DO i = 1, klon
403      wght(i, 1) = 1.
404    END DO
405!RL
406
[1992]407  ELSE
408
[2007]409!LF   necessary for gathered fields
[1992]410    nloc = klon
[2259]411    CALL cva_driver(klon, klev, klev+1, ntra, nloc, k_upper_cv, &
[2007]412                    iflag_con, iflag_mix, iflag_ice_thermo, &
[2253]413                    iflag_clos, ok_conserv_q, dtime, cvl_comp_threshold, &
[2007]414                    t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, tra, &
415                    em_p, em_ph, &
[2201]416                    Ale, Alp, omega, &
[2007]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, &
[2306]420                    Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, &
[2007]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
[2205]429                    wdtrainA, wdtrainM, qtc, sigt, &
[2481]430                    tau_cld_cv, coefw_cld_cv, &                         ! RomP,AJ
[2007]431!AC!+!RomP+jyg
[2481]432                    epmax_diag) ! epmax_cape
[1992]433  END IF
[2007]434! ------------------------------------------------------------------
435  IF (prt_level>=10) WRITE (lunout, *) ' cva_driver -> cbmf,plcl,plfc,wbeff ', &
436                                         cbmf(1), plcl(1), plfc(1), wbeff(1)
[1992]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
[524]454      DO k = 1, klev
455        DO i = 1, klon
[2007]456!RL!            d_tra(i,k,itra) =dtime*d_tra(i,k,itra)
457          d_tra(i, k, itra) = 0.
[1992]458        END DO
459      END DO
460    END DO
461  END IF
462
[2007]463!!AC!
[1992]464  IF (iflag_con==3) THEN
465    DO itra = 1, ntra
[524]466      DO k = 1, klev
467        DO i = 1, klon
[2007]468!RL!            d_tra(i,k,itra) =dtime*d_tra(i,k,itra)
469          d_tra(i, k, itra) = 0.
[1992]470        END DO
471      END DO
472    END DO
473  END IF
[2007]474!!AC!
[524]475
[1992]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
[2306]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
[524]502
[2007]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
[524]514
515
[2007]516! les traceurs ne sont pas mis dans cette version de convect4:
[1992]517  IF (iflag_con==4) THEN
518    DO itra = 1, ntra
[524]519      DO k = 1, klev
520        DO i = 1, klon
[1992]521          d_tra(i, k, itra) = 0.
522        END DO
523      END DO
524    END DO
525  END IF
[2007]526! print*, 'concvl->: dd_t,dd_q ',dd_t(1,1),dd_q(1,1)
[879]527
[1992]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
[1650]538
[1992]539  IF (prt_level>=20) THEN
540    DO k = 1, klev
[2007]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)
[1992]562    END DO
563  END IF !(prt_level.EQ.20) THEN
[879]564
[1992]565  RETURN
566END SUBROUTINE concvl
567
Note: See TracBrowser for help on using the repository browser.