Index: LMDZ5/trunk/libf/phylmd/concvl.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/concvl.F90	(revision 2824)
+++ LMDZ5/trunk/libf/phylmd/concvl.F90	(revision 2853)
@@ -13,5 +13,5 @@
 !RomP >>>
 !!     .             da,phi,mp,dd_t,dd_q,lalim_conv,wght_th)
-                  da, phi, mp, phi2, d1a, dam, sij, clw, elij, &     ! RomP
+                  da, phi, mp, phii, d1a, dam, sij, clw, elij, &     ! RomP
                   dd_t, dd_q, lalim_conv, wght_th, &                 ! RomP
                   evap, ep, epmlmMm, eplaMm, &                       ! RomP
@@ -87,84 +87,92 @@
   include "clesphys.h"
 
-  INTEGER iflag_clos
-
-  REAL dtime, paprs(klon, klev+1), pplay(klon, klev)
-  INTEGER k_upper_cv
-  REAL t(klon, klev), q(klon, klev), u(klon, klev), v(klon, klev)
-  REAL t_wake(klon, klev), q_wake(klon, klev)
-  REAL s_wake(klon)
-  REAL tra(klon, klev, nbtr)
-  INTEGER ntra
-  REAL sig1(klon, klev), w01(klon, klev), ptop2(klon)
-  REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1)
-  REAL Ale(klon), Alp(klon)
-
-  REAL d_t(klon, klev), d_q(klon, klev), d_u(klon, klev), d_v(klon, klev)
-  REAL dd_t(klon, klev), dd_q(klon, klev)
-  REAL d_tra(klon, klev, nbtr)
-  REAL rain(klon), snow(klon)
-
-  INTEGER kbas(klon), ktop(klon)
-  REAL em_ph(klon, klev+1), em_p(klon, klev)
-  REAL upwd(klon, klev), dnwd(klon, klev), dnwdbis(klon, klev)
-
-!!       REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev)     !jyg
-  REAL Ma(klon, klev), mip(klon, klev), Vprecip(klon, klev+1)      !jyg
-  REAL Vprecipi(klon, klev+1)                                      !jyg
-  REAL wght(klon, klev)                                            !RL
-
-  REAL da(klon, klev), phi(klon, klev, klev), mp(klon, klev)
+  INTEGER, INTENT(IN)                           :: iflag_clos
+  REAL, INTENT(IN)                              :: dtime
+  REAL, DIMENSION(klon,klev),   INTENT(IN)      :: pplay
+  REAL, DIMENSION(klon,klev+1), INTENT(IN)      :: paprs
+  INTEGER,                      INTENT(IN)      :: k_upper_cv
+  REAL, DIMENSION(klon,klev),   INTENT(IN)      :: t, q, u, v
+  REAL, DIMENSION(klon,klev),   INTENT(IN)      :: t_wake, q_wake
+  REAL, DIMENSION(klon),        INTENT(IN)      :: s_wake
+  REAL, DIMENSION(klon,klev, nbtr),INTENT(IN)   :: tra
+  INTEGER,                      INTENT(IN)      :: ntra
+  REAL, DIMENSION(klon),        INTENT(IN)      :: Ale, Alp
+!CR:test: on passe lentr et alim_star des thermiques
+  INTEGER, DIMENSION(klon),     INTENT(IN)      :: lalim_conv
+  REAL, DIMENSION(klon,klev),   INTENT(IN)      :: wght_th
+
+  REAL, DIMENSION(klon,klev),   INTENT(INOUT)   :: sig1, w01
+
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: d_t, d_q, d_u, d_v
+  REAL, DIMENSION(klon,klev, nbtr),INTENT(OUT)  :: d_tra
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: rain, snow
+
+  INTEGER, DIMENSION(klon),     INTENT(OUT)     :: kbas, ktop
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: sigd
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: cbmf, plcl, plfc, wbeff
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: convoccur
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: upwd, dnwd, dnwdbis
+
+!!       REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev)                    !jyg
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: Ma, mip 
+  REAL, DIMENSION(klon,klev+1), INTENT(OUT)     :: Vprecip                        !jyg
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: cape, cin
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: tvp
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: Tconv
+  INTEGER, DIMENSION(klon),     INTENT(OUT)     :: iflag
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: pbase, bbase
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: dtvpdt1, dtvpdq1
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: dplcldt, dplcldr
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: qcondc
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: wd
+  REAL, DIMENSION(klon,klev+1), INTENT(OUT)     :: pmflxr, pmflxs
+
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: da, mp
+  REAL, DIMENSION(klon,klev,klev),INTENT(OUT)   :: phi
 ! RomP >>>
-  REAL phi2(klon, klev, klev)
-  REAL d1a(klon, klev), dam(klon, klev)
-  REAL sij(klon, klev, klev), clw(klon, klev), elij(klon, klev, klev)
-  REAL wdtrainA(klon, klev), wdtrainM(klon, klev)
-  REAL evap(klon, klev), ep(klon, klev)
-  REAL epmlmMm(klon, klev, klev), eplaMm(klon, klev)
+  REAL, DIMENSION(klon,klev,klev),INTENT(OUT)   :: phii
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: d1a, dam
+  REAL, DIMENSION(klon,klev,klev),INTENT(OUT)   :: sij, elij
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: clw
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: dd_t, dd_q
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: evap, ep
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: eplaMm
+  REAL, DIMENSION(klon,klev,klev), INTENT(OUT)  :: epmlmMm
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: wdtrainA, wdtrainM
 ! RomP <<<
-  REAL cape(klon), cin(klon), tvp(klon, klev)
-  REAL Tconv(klon, klev)
-
-!CR:test: on passe lentr et alim_star des thermiques
-  INTEGER lalim_conv(klon)
-  REAL wght_th(klon, klev)
-  REAL em_sig1feed ! sigma at lower bound of feeding layer
-  REAL em_sig2feed ! sigma at upper bound of feeding layer
-  REAL em_wght(klev) ! weight density determining the feeding mixture
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: wght                       !RL
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: qtc
+  REAL, DIMENSION(klon,klev),   INTENT(OUT)     :: sigt
+  REAL,                         INTENT(OUT)     :: tau_cld_cv, coefw_cld_cv
+  REAL, DIMENSION(klon),        INTENT(OUT)     :: epmax_diag                ! epmax_cape
+
+!
+!  Local
+!  ----
+  REAL, DIMENSION(klon,klev)                    :: em_p
+  REAL, DIMENSION(klon,klev+1)                  :: em_ph
+  REAL                                          :: em_sig1feed ! sigma at lower bound of feeding layer
+  REAL                                          :: em_sig2feed ! sigma at upper bound of feeding layer
+  REAL, DIMENSION(klev)                         :: em_wght ! weight density determining the feeding mixture
+  REAL, DIMENSION(klon,klev+1)                  :: Vprecipi                       !jyg
 !on enleve le save
 ! SAVE em_sig1feed,em_sig2feed,em_wght
 
-  INTEGER iflag(klon)
-  REAL rflag(klon)
-  REAL pbase(klon), bbase(klon)
-  REAL dtvpdt1(klon, klev), dtvpdq1(klon, klev)
-  REAL dplcldt(klon), dplcldr(klon)
-  REAL qcondc(klon, klev)
-  REAL qtc(klon, klev)
-  REAL sigt(klon, klev)
-  REAL wd(klon)
-  REAL plim1(klon), plim2(klon), asupmax(klon, klev)
-  REAL supmax0(klon), asupmaxmin(klon)
-
-  REAL sigd(klon)
-  REAL zx_t, zdelta, zx_qs, zcor
-  REAL tau_cld_cv, coefw_cld_cv
-  REAL epmax_diag(klon) ! epmax_cape
-
+  REAL, DIMENSION(klon)                         :: rflag
+  REAL, DIMENSION(klon)                         :: plim1, plim2
+  REAL, DIMENSION(klon)                         :: ptop2
+  REAL, DIMENSION(klon,klev)                    :: asupmax
+  REAL, DIMENSION(klon)                         :: supmax0, asupmaxmin
+  REAL                                          :: zx_t, zdelta, zx_qs, zcor
+!
 !   INTEGER iflag_mix
 !   SAVE iflag_mix
-  INTEGER noff, minorig
-  INTEGER i, k, itra
-  REAL qs(klon, klev), qs_wake(klon, klev)
-  REAL cbmf(klon), plcl(klon), plfc(klon), wbeff(klon)
-  REAL convoccur(klon)
+  INTEGER                                       :: noff, minorig
+  INTEGER                                       :: i,j, k, itra
+  REAL, DIMENSION(klon,klev)                    :: qs, qs_wake
 !LF          SAVE cbmf
 !IM/JYG      REAL, SAVE, ALLOCATABLE :: cbmf(:)
 !!!$OMP THREADPRIVATE(cbmf)!
-  REAL cbmflast(klon)
-  INTEGER ifrst
-  SAVE ifrst
-  DATA ifrst/0/
-!$OMP THREADPRIVATE(ifrst)
+  REAL, DIMENSION(klon)                         :: cbmflast
 
 
@@ -259,6 +267,4 @@
   snow(:) = 0
 
-! IF (ifrst .EQ. 0) THEN
-! ifrst = 1
   IF (first) THEN
     first = .FALSE.
@@ -293,5 +299,5 @@
       sigd(i) = 0.
     END DO
-  END IF !(ifrst .EQ. 0)
+  END IF !(first)
 
 ! Initialisation a chaque pas de temps
@@ -393,5 +399,5 @@
                    kbas, ktop, &
                    dtime, Ma, upwd, dnwd, dnwdbis, qcondc, wd, cape, &
-                   da, phi, mp, phi2, d1a, dam, sij, clw, elij, &       !RomP
+                   da, phi, mp, phii, d1a, dam, sij, clw, elij, &       !RomP
                    evap, ep, epmlmMm, eplaMm, &                         !RomP
                    wdtrainA, wdtrainM, &                                !RomP
@@ -428,7 +434,7 @@
                     asupmaxmin, lalim_conv, &
 !AC!+!RomP+jyg
-!!                   da,phi,mp,phi2,d1a,dam,sij,clw,elij, &               ! RomP
+!!                   da,phi,mp,phii,d1a,dam,sij,clw,elij, &               ! RomP
 !!                   evap,ep,epmlmMm,eplaMm,                              ! RomP
-                    da, phi, mp, phi2, d1a, dam, sij, wght, &           ! RomP+RL
+                    da, phi, mp, phii, d1a, dam, sij, wght, &           ! RomP+RL
                     clw, elij, evap, ep, epmlmMm, eplaMm, &             ! RomP+RL
                     wdtrainA, wdtrainM, qtc, sigt, &
