Index: /LMDZ6/trunk/libf/phylmd/thermcell_plume.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/thermcell_plume.F90	(revision 4092)
+++ /LMDZ6/trunk/libf/phylmd/thermcell_plume.F90	(revision 4093)
@@ -2,5 +2,5 @@
 ! $Id: thermcell_plume.F90 3074 2017-11-15 13:31:44Z fhourdin $
 !
-      SUBROUTINE thermcell_plume(itap,ngrid,klev,ptimestep,ztv,zthl,po,zl,rhobarz,  &
+      SUBROUTINE thermcell_plume(itap,ngrid,nlay,ptimestep,ztv,zthl,po,zl,rhobarz,  &
      &           zlev,pplev,pphi,zpspsk,alim_star,alim_star_tot,  &
      &           lalim,f0,detr_star,entr_star,f_star,csc,ztva,  &
@@ -21,4 +21,5 @@
 !   = 29 : an other way to compute the modified buoyancy (to be tested)
 !--------------------------------------------------------------------------
+
        USE thermcell_ini_mod, ONLY: prt_level,fact_thermals_ed_dz,iflag_thermals_ed,RLvCP,RETV,RG
        USE thermcell_ini_mod, ONLY: fact_epsilon, betalpha, afact, fact_shell
@@ -26,67 +27,57 @@
        USE thermcell_ini_mod, ONLY: mix0, thermals_flag_alim
 
-
        IMPLICIT NONE
 
-      INTEGER itap
-      INTEGER lunout1,igout
-      INTEGER ngrid,klev
-      REAL ptimestep
-      REAL ztv(ngrid,klev)
-      REAL zthl(ngrid,klev)
-      REAL po(ngrid,klev)
-      REAL zl(ngrid,klev)
-      REAL rhobarz(ngrid,klev)
-      REAL zlev(ngrid,klev+1)
-      REAL pplev(ngrid,klev+1)
-      REAL pphi(ngrid,klev)
-      REAL zpspsk(ngrid,klev)
-      REAL alim_star(ngrid,klev)
-      REAL f0(ngrid)
-      INTEGER lalim(ngrid)
-      integer lev_out                           ! niveau pour les print
-      integer nbpb
-    
-      real alim_star_tot(ngrid)
-
-      REAL ztva(ngrid,klev)
-      REAL ztla(ngrid,klev)
-      REAL zqla(ngrid,klev)
-      REAL zqta(ngrid,klev)
-      REAL zha(ngrid,klev)
-
-      REAL detr_star(ngrid,klev)
-      REAL coefc
-      REAL entr_star(ngrid,klev)
-      REAL detr(ngrid,klev)
-      REAL entr(ngrid,klev)
-
-      REAL csc(ngrid,klev)
-
-      REAL zw2(ngrid,klev+1)
-      REAL w_est(ngrid,klev+1)
-      REAL f_star(ngrid,klev+1)
-      REAL wa_moy(ngrid,klev+1)
-
-      REAL ztva_est(ngrid,klev)
-      REAL ztv_est(ngrid,klev)
-      REAL zqla_est(ngrid,klev)
-      REAL zqsatth(ngrid,klev)
-      REAL zta_est(ngrid,klev)
+      integer,intent(in) :: itap,lev_out,lunout1,igout,ngrid,nlay
+      real,intent(in) :: ptimestep
+      real,intent(in),dimension(ngrid,nlay) :: ztv
+      real,intent(in),dimension(ngrid,nlay) :: zthl
+      real,intent(in),dimension(ngrid,nlay) :: po
+      real,intent(in),dimension(ngrid,nlay) :: zl
+      real,intent(in),dimension(ngrid,nlay) :: rhobarz
+      real,intent(in),dimension(ngrid,nlay+1) :: zlev
+      real,intent(in),dimension(ngrid,nlay+1) :: pplev
+      real,intent(in),dimension(ngrid,nlay) :: pphi
+      real,intent(in),dimension(ngrid,nlay) :: zpspsk
+      real,intent(in),dimension(ngrid) :: f0
+
+      integer,intent(out) :: lalim(ngrid)
+      real,intent(out),dimension(ngrid,nlay) :: alim_star
+      real,intent(out),dimension(ngrid) :: alim_star_tot
+      real,intent(out),dimension(ngrid,nlay) :: detr_star
+      real,intent(out),dimension(ngrid,nlay) :: entr_star
+      real,intent(out),dimension(ngrid,nlay+1) :: f_star
+      real,intent(out),dimension(ngrid,nlay) :: csc
+      real,intent(out),dimension(ngrid,nlay) :: ztva
+      real,intent(out),dimension(ngrid,nlay) :: ztla
+      real,intent(out),dimension(ngrid,nlay) :: zqla
+      real,intent(out),dimension(ngrid,nlay) :: zqta
+      real,intent(out),dimension(ngrid,nlay) :: zha
+      real,intent(out),dimension(ngrid,nlay+1) :: zw2
+      real,intent(out),dimension(ngrid,nlay+1) :: w_est
+      real,intent(out),dimension(ngrid,nlay) :: ztva_est
+      real,intent(out),dimension(ngrid,nlay) :: zqsatth
+      integer,intent(out),dimension(ngrid) :: lmix(ngrid)
+      integer,intent(out),dimension(ngrid) :: lmix_bis(ngrid)
+      real,intent(out),dimension(ngrid) :: linter(ngrid)
+
+
+      REAL wa_moy(ngrid,nlay+1)
+      REAL entr(ngrid,nlay),detr(ngrid,nlay)
+      REAL ztv_est(ngrid,nlay)
+      REAL zqla_est(ngrid,nlay)
+      REAL zta_est(ngrid,nlay)
       REAL ztemp(ngrid),zqsat(ngrid)
       REAL zdw2,zdw2bis
       REAL zw2modif
       REAL zw2fact,zw2factbis
-      REAL zeps(ngrid,klev)
-
-      REAL linter(ngrid)
-      INTEGER lmix(ngrid)
-      INTEGER lmix_bis(ngrid)
+      REAL zeps(ngrid,nlay)
+
       REAL    wmaxa(ngrid)
 
-      INTEGER ig,l,k,lt,it,lm
-
-      real zdz,zbuoy(ngrid,klev),zalpha,gamma(ngrid,klev),zdqt(ngrid,klev),zw2m
-      real zbuoyjam(ngrid,klev),zdqtjam(ngrid,klev)
+      INTEGER ig,l,k,lt,it,lm,nbpb
+
+      real zdz,zbuoy(ngrid,nlay),zalpha,gamma(ngrid,nlay),zdqt(ngrid,nlay),zw2m
+      real zbuoyjam(ngrid,nlay),zdqtjam(ngrid,nlay)
       real zdz2,zdz3,lmel,entrbis,zdzbis
       real d_temp(ngrid)
@@ -103,5 +94,5 @@
 
 
-      REAL c2(ngrid,klev)
+      REAL c2(ngrid,nlay)
 
       if (ngrid==1) print*,'THERMCELL PLUME MODIFIE 2014/07/11'
@@ -166,5 +157,5 @@
                    ! du panache
 !  Cet appel pourrait être fait avant thermcell_plume dans thermcell_main
-      CALL thermcell_alim(thermals_flag_alim,ngrid,klev,ztv,d_temp,zlev,alim_star,lalim)
+      CALL thermcell_alim(thermals_flag_alim,ngrid,nlay,ztv,d_temp,zlev,alim_star,lalim)
 
 !------------------------------------------------------------------------------
@@ -195,5 +186,5 @@
 !boucle de calcul de la vitesse verticale dans le thermique
 !==============================================================================
-do l=2,klev-1
+do l=2,nlay-1
 !==============================================================================
 
@@ -442,11 +433,11 @@
 #undef wrgrads_thermcell
 #ifdef wrgrads_thermcell
-         call wrgradsfi(1,klev,entr_star(igout,1:klev),'esta      ','esta      ')
-         call wrgradsfi(1,klev,detr_star(igout,1:klev),'dsta      ','dsta      ')
-         call wrgradsfi(1,klev,zbuoy(igout,1:klev),'buoy      ','buoy      ')
-         call wrgradsfi(1,klev,zdqt(igout,1:klev),'dqt      ','dqt      ')
-         call wrgradsfi(1,klev,w_est(igout,1:klev),'w_est     ','w_est     ')
-         call wrgradsfi(1,klev,w_est(igout,2:klev+1),'w_es2     ','w_es2     ')
-         call wrgradsfi(1,klev,zw2(igout,1:klev),'zw2A      ','zw2A      ')
+         call wrgradsfi(1,nlay,entr_star(igout,1:nlay),'esta      ','esta      ')
+         call wrgradsfi(1,nlay,detr_star(igout,1:nlay),'dsta      ','dsta      ')
+         call wrgradsfi(1,nlay,zbuoy(igout,1:nlay),'buoy      ','buoy      ')
+         call wrgradsfi(1,nlay,zdqt(igout,1:nlay),'dqt      ','dqt      ')
+         call wrgradsfi(1,nlay,w_est(igout,1:nlay),'w_est     ','w_est     ')
+         call wrgradsfi(1,nlay,w_est(igout,2:nlay+1),'w_es2     ','w_es2     ')
+         call wrgradsfi(1,nlay,zw2(igout,1:nlay),'zw2A      ','zw2A      ')
 #endif
 
