SUBROUTINE ACEVOLET (  KIDIA,  KFDIA,  KLON,  KTDIAT, KTDIAN, KLEV,&
 !-----------------------------------------------------------------------
 ! - INPUT  2D .
 & PAPHI,  PAPHIF, PAPRS, PAPRSF, PECT, &
 & PKUROV, PR,PT,  PU, PV, PUSLE, PPRODTH,&
 ! - INPUT  1D .
 & PKCLS,  PECTCLS,&
 ! - OUTPUT 2D .
 & PFECT, PECT1, &
 ! - LOCK ARGUMENTS .
 & CDLOCK)

!**** *ACEVOLET* - EVOLUTION DE L'ENERGIE CINETIQUE TURBULENTE.

!     Sujet.
!     ------
!     - ROUTINE DE CALCUL ACTIF .
!       CALCUL DES DIFFERENTS FACTEURS INTERVENANT DANS L'EQUATION
!       D'EVOLUTION DE l'ENERGIE CINETIQUE TURBULENTE (DIMENSION M2/S3)

!**   Interface.
!     ----------
!        *CALL* *ACEVOLET*

!-----------------------------------------------------------------------
! WARNING: THE ENGLISH VERSION OF VARIABLES' NAMES IS TO BE READ IN THE
!          "APLPAR" CODE, EXCEPT FOR KTDIAT AND KTDIAN.
!-----------------------------------------------------------------------

! -   ARGUMENTS D'ENTREE.
!     -------------------

! - NOM DES PARAMETRES DE DIMENSIONNEMENT DE LA PHYSIQUE.

! KIDIA      : INDICE DE DEPART DES BOUCLES VECTORISEES SUR L'HORIZONT..
! KFDIA      : INDICE DE FIN DES BOUCLES VECTORISEES SUR L'HORIZONTALE.
! KLON       : DIMENSION HORIZONTALE DES TABLEAUX.
! KTDIAT     : INDICE DE DEPART DES BOUCLES VERTICALES (1 EN GENERAL)
!              POUR LES CALCULS DE TURBULENCE.
! KTDIAN     : INDICE DE DEPART DES BOUCLES VERTICALES (1 EN GENERAL)
!              POUR LES CALCULS DE TURBULENCE + NEBULOSITE.
! KLEV       : DIMENSION VERTICALE DES TABLEAUX "FULL LEVEL".

! - NOM DES VARIABLES DE LA PHYSIQUE (PAR ORDRE ALPHABETIQUE DANS CHAQUE
!   CATEGORIE).

! - 2D (0:KLEV) .

! PAPHI      : GEOPOTENTIEL AUX DEMI-NIVEAUX.
! PAPRS      : PRESSION AUX DEMI-NIVEAUX.
! PKUROV     : COEFFICIENT D'ECHANGE VERTICAL DE U ET V EN KG/(M*M*S).

! - 2D (1:KLEV) .

! PAPHIF     : GEOPOTENTIEL AUX NIVEAUX DES COUCHES.
! PLSCPE     : RAPPORT EFECTIF DES L ET CP EN CONDENSATION/EVAPORATION.
! PAPRSF     : PRESSION AU NIVEAU DES COUCHES.
! PR         : CONSTANTE DES GAZ POUR L'AIR.
! PT         : TEMPERATURE.
! PU         : COMPOSANTE EN X DU VENT.
! PUSLE      : INVERSE DE G FOIS * LONGUEUR DE MELANGE.
! PV         : COMPOSANTE EN Y DU VENT.
! PPRODTH    : LA PRODUCTION THERMIQUE : +(g/T)*(w'X') avec X=(THETA)vl

! - 1D (DIAGNOSTIQUE) .

! PKCLS      : G FOIS LE COEFFICIENT D'ECHANGE DANS LA C.L.S.
! PECTCLS    : ENERGIE CINETIQUE TURBULENTE DANS LA C.L.S.

!-----------------------------------------------------------------------

! -   ARGUMENTS DE SORTIE.
!     --------------------

! - NOM DES VARIABLES DE LA PHYSIQUE (PAR ORDRE ALPHABETIQUE DANS CHAQUE
!   CATEGORIE).

! - 2D (0:KLEV) .

! PFECT      : FLUX DE E.C.T.
! PECT1      : NOUVELLE ECT (UTILISE QUE SI LECTFL EST TRUE DANS ACTKE)

!-----------------------------------------------------------------------

! -   ARGUMENTS IMPLICITES.
!     ---------------------

! COMMON/YOMCST /
! COMMON/YOMPHY0/
! COMMON/YOMPHY2/

!-----------------------------------------------------------------------

!     Externes.
!     ---------

!     Methode.
!     --------

!     Auteur.
!     -------
!      1993-02, P. Lacarrere (from PERIDOT-RECHERCHE)
!              - - - - - - - - - - - - - - - - - - - - - - - - - - -
!               This cade have been tested by C. Bossuet in
!               1997/98 using an Eulerian T42 Arpege GCM, then 
!               improved and tested by P. Marquet with the next 
!               versions of Arpege GCM (semi-lagrangian, SCM,
!               EUROCS Shallow convection case, with the use of
!               the new ideas coming from Meso-NH developments).
!              - - - - - - - - - - - - - - - - - - - - - - - - - - -

!     Modifications.
!     --------------
!     (93-> 98, C. Bossuet   : developments in ACEVOLET)
!      1998-01, C. Bossuet - Integration dans Arpege
!      1999-01  P. Marquet - Nettoyage des arguments inutiles
!      1999-01  P. Marquet - PFTKE en flux de 0 a KLEV (->CPTEND)
!      1999-11  P. Marquet - Nouvelle Production Thermique "humide" ZD3
!      1999-12  P. Marquet - Pas d'evolution entre KTDIAN et KTDIAT
!      2000-05  P. Marquet - Nouvelle formulation de la diffusion avec
!                  -d/dz(Rho*G*Ke*(de/dp)) -> -d/dp(Rho*G*Ke*(de/dz))
!      2001-01  P. Marquet - Debug : ZDPHI in "low level resolution"
!      2004-05  P. Marquet - Change KTDIAT into KTDIAN (at the end)
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
!      2007-04  Y. Bouteloup - a debug for ZD2 computations

!-----------------------------------------------------------------------

USE PARKIND1  ,ONLY : JPIM     ,JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

USE YOMCST   , ONLY : RG       
USE YOMPHY0  , ONLY : ADISE     ,ADISI    ,ALPHAE   ,&
 & ECTMIN 
USE YOMPHY2  , ONLY : TSPHY

IMPLICIT NONE

INTEGER(KIND=JPIM),INTENT(IN)    :: KLON 
INTEGER(KIND=JPIM),INTENT(IN)    :: KLEV 
INTEGER(KIND=JPIM),INTENT(IN)    :: KIDIA 
INTEGER(KIND=JPIM),INTENT(IN)    :: KFDIA 
INTEGER(KIND=JPIM),INTENT(IN)    :: KTDIAT 
INTEGER(KIND=JPIM),INTENT(IN)    :: KTDIAN 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPHI(KLON,0:KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPHIF(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRS(KLON,0:KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRSF(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PKUROV(KLON,0:KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PR(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PT(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PU(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PV(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PUSLE(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PPRODTH(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PKCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PECTCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFECT(KLON,0:KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PECT(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PECT1(KLON,KLEV) 
CHARACTER(LEN=8)  ,INTENT(IN)    :: CDLOCK

REAL(KIND=JPRB) ::ZANKP1(KLON)

REAL(KIND=JPRB) :: ZA(KLON,KLEV),ZE(KLON,KLEV),ZPA(KLON,KLEV)&
 & ,ZGKU(KLON,0:KLEV),ZDET (KLON,KLEV),ZFET (KLON,0:KLEV)&
 & ,ZPRDY(KLON,KLEV),  ZPRTH(KLON,KLEV)&
 & ,ZDISS(KLON,KLEV),  ZDIF (KLON,KLEV),ZGKEF (KLON,KLEV)

INTEGER(KIND=JPIM) :: JLEV, JLON

REAL(KIND=JPRB) :: ZB, ZCIS, ZD, ZD1,&
 & ZD2, ZD3, ZDPAPRS, ZDPHI, ZDPHISRO, &
 & ZGSDP, ZMDP, ZRHOF, ZRTI, ZUSGDT, ZX, ZY, &
 & ZZDIS, ZZGKEF, ZDPHI2

REAL(KIND=JPRB) :: ZHOOK_HANDLE

#include "abor1.intfb.h"

!*
!-----------------------------------------------------------------------
!     CHECK RELIABILITY OF INPUT ARGUMENTS.
!-----------------------------------------------------------------------

IF (LHOOK) CALL DR_HOOK('ACEVOLET',0,ZHOOK_HANDLE)
IF(CDLOCK /= 'ACEVOLET') CALL ABOR1('BAD NUMBER OF ARGUMENTS!')

!*
!-----------------------------------------------------------------------
!     I - CALCULS UTILES
!-----------------------------------------------------------------------

!          - - - - - - - - - - - - - - - - - - - -
!     I-1  ON MULTIPLIE "PKUROV" PAR D(PHI)/ RHO
!          IL RESTE : ZGKU = RG * KU
!          - - - - - - - - - - - - - - - - - - - -

ZUSGDT=1.0_JPRB/(RG*TSPHY)

DO JLEV=KTDIAN,KLEV-1
  DO JLON=KIDIA,KFDIA
    ZDPHI=PAPHIF(JLON,JLEV)-PAPHIF(JLON,JLEV+1)
    ZRTI=0.5_JPRB*(PR(JLON,JLEV)  *PT(JLON,JLEV)&
     & +PR(JLON,JLEV+1)*PT(JLON,JLEV+1))  
    ZDPHISRO=ZDPHI*ZRTI/PAPRS(JLON,JLEV)
    ZGKU(JLON,JLEV)=PKUROV(JLON,JLEV)*ZDPHISRO
  ENDDO ! JLON
ENDDO   ! JLEV

!          - - - - - - - - - - -
!     I.2  MISE A ZERO DES FLUX
!          - - - - - - - - - - -
 
ZPRDY(:,:)=0.0_JPRB
ZPRTH(:,:)=0.0_JPRB
ZDIF(:,:)=0.0_JPRB
ZDISS(:,:)=0.0_JPRB
 
DO JLEV=KTDIAT-1,KLEV
  DO JLON=KIDIA,KFDIA
    PFECT(JLON,JLEV)=0.0_JPRB
    ZFET (JLON,JLEV)=0.0_JPRB
  ENDDO ! JLON
ENDDO   ! JLEV

!-----------------------------------------------------------------------
!     II - CALCUL DES COEFFICIENTS ET INVERSION DE LA MATRICE
!-----------------------------------------------------------------------

!          ON ECRIT L'EQUATION D(ET)/DT*(DELTA PHI)/G AU NIVEAU K SOUS
!          LA FORME SUIVANTE

!          A(K)*ECT(K-1) + B(K)*ECT(K) + C(K)*ECT(K+1) = D(K)

!          CE SYSTEME EST RESOLU PAR LES RELATIONS DE RECURRENCES
!          AVEC UNE DESCENTE ET UNE MONTE

!        --------------
!        POUR   K = 0 :
!        --------------
!        E(0) = F(0) = A(1) = 0
!        --------------------
!        POUR   K = 1 , N-2 :
!        --------------------
!        E(K)     = -C(K) / ( B(K) + A(K) * E(K-1) )
!        F(K)     = ( D(K) - A(K) * F(K-1) ) / ( B(K) + A(K) * E(K-1) )
!        -----------------------------------------
!        POUR   K = N-1 AVEC ECT(N)=ECTCLS CONNU :
!        -----------------------------------------
!        ECT(N-1) = D(N-1) - A(N-1) * F(N-2) - C(N-1)*ECT(N)
!        --------------------
!        POUR   K = N-2 , 1 :
!        --------------------
!        ECT(K)   = E(K) * ECT(K+1) + F(K)

!-----------------------------------------------------------------------

!          CALCUL DES DEUX PREMIERES RECURRENCES

DO JLON=KIDIA,KFDIA
  ZA(JLON,KTDIAN)=0.0_JPRB
  ZA(JLON,KTDIAN+1)=0.0_JPRB
  ZE(JLON,KTDIAN)=0.0_JPRB
  ZPA(JLON,KTDIAN)=0.0_JPRB
ENDDO ! JLON

!     ICI : ZA(JLEV+1) = A(K) = (Rho*G*Ke)/d(Phi)

DO JLEV=KTDIAN+1,KLEV-1
  DO JLON=KIDIA,KFDIA
    ZGKEF(JLON,JLEV)=ALPHAE*(ZGKU(JLON,JLEV)+ZGKU(JLON,JLEV-1))/2.0_JPRB
  ENDDO ! JLON
ENDDO   ! JLEV

DO JLEV=KTDIAN+1,KLEV-1
  DO JLON=KIDIA,KFDIA
    ZDPHI =PAPHI(JLON,JLEV-1)-PAPHI(JLON,JLEV)
    ZRHOF =PAPRSF(JLON,JLEV)/(PR(JLON,JLEV)*PT(JLON,JLEV))
    ZA(JLON,JLEV+1)=ZGKEF(JLON,JLEV)*ZRHOF/ZDPHI
    ZPA(JLON,JLEV) =ZA(JLON,JLEV+1)
  ENDDO ! JLON
ENDDO   ! JLEV

!     - - - - - - - - - - - - - - - - - -
!       ZD2 : LA PRODUCTION DYNAMIQUE :

!       ZD3 : LA PRODUCTION THERMIQUE
!     - - - - - - - - - - - - - - - - - - 

DO JLEV=KTDIAN,KLEV-2
  DO JLON=KIDIA,KFDIA

    ZMDP=PAPRSF(JLON,JLEV)-PAPRSF(JLON,JLEV+1)
    ZDPHI2=(PAPHIF(JLON,JLEV)-PAPHIF(JLON,JLEV+1))**2
    ZGSDP=RG/ZMDP
    ZX   =ZMDP*ZUSGDT
    ZZDIS=PUSLE(JLON,JLEV)*SQRT(PECT(JLON,JLEV))*ZMDP
    ZB   =ZX - ZA(JLON,JLEV+1)-ZA(JLON,JLEV+2)+ADISI*ZZDIS
    ZY   =1.0_JPRB/( ZB+ZA(JLON,JLEV+1)*ZE(JLON,JLEV) )
    ZE(JLON,JLEV+1)=-ZA(JLON,JLEV+2)*ZY
    ZCIS =(PU(JLON,JLEV+1)-PU(JLON,JLEV))**2 &
     & +(PV(JLON,JLEV+1)-PV(JLON,JLEV))**2  
    ZD1  = PECT   (JLON,JLEV)*(ZX-ADISE*ZZDIS)
    ZD2  = ZGKU   (JLON,JLEV)*ZCIS*ZMDP/ZDPHI2
    ZD3  = PPRODTH(JLON,JLEV)/ZGSDP

    ZD = ZD1+ZD2+ZD3

    ZA(JLON,JLEV+1)=(ZD-ZA(JLON,JLEV+1)*ZA(JLON,JLEV))*ZY

!         - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
!         ON RANGE 4 DES TERMES QUI COMPOSENT L'EVOLUTION DE L'ECT
!         -> PROD.dyn,  PROD.ther,  ADVEC.vert,  DISSIP(1)
!         - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    ZPRDY(JLON,JLEV)=    ZD2*ZGSDP
    ZPRTH(JLON,JLEV)=    ZD3*ZGSDP
    ZDISS(JLON,JLEV)= -ZZDIS*ZGSDP

  ENDDO ! JLON
ENDDO   ! JLEV

!*
!-----------------------------------------------------------------------
!     III RESOLUTION AU NIVEAU INFERIEUR
!-----------------------------------------------------------------------

!         SI ON VEUT IMPOSER UNE CONDITION A LA LIMITE INFERIEURE A
!         FLUX NUL IL SUFFIT DE METTRE A ZERO PKCLS

!       ZD2 : LA PRODUCTION DYNAMIQUE :

!       ZD3 : LA PRODUCTION THERMIQUE

!-----------------------------------------------------------------------

DO JLON=KIDIA,KFDIA

!       CALCUL DE LA DIFFUSION VERTICALE DE L'ECT

  ZDPHI =PAPHI(JLON,KLEV-1)-PAPHI(JLON,KLEV)
  ZDPHI2=(PAPHIF(JLON,KLEV-1)-PAPHIF(JLON,KLEV))**2
  ZRHOF =PAPRSF(JLON,KLEV)/(PR(JLON,KLEV)*PT(JLON,KLEV))
  ZZGKEF=ALPHAE*PKCLS(JLON)
  ZANKP1(JLON)=ZZGKEF*ZRHOF/ZDPHI

  ZMDP=PAPRSF(JLON,KLEV-1)-PAPRSF(JLON,KLEV)
  ZGSDP=RG/ZMDP
  ZX   =ZMDP*ZUSGDT
  ZZDIS=PUSLE(JLON,KLEV-1)*SQRT(PECT(JLON,KLEV-1))*ZMDP
  ZB   =ZX - ZA(JLON,KLEV)-ZANKP1(JLON)+ADISI*ZZDIS
  ZY   =1.0_JPRB/( ZB+ZA(JLON,KLEV)*ZE(JLON,KLEV-1) )
  ZCIS =(PU(JLON,KLEV)-PU(JLON,KLEV-1))**2+(PV(JLON,KLEV)-PV(JLON,KLEV-1))**2
  ZD1  = PECT   (JLON,KLEV-1)*(ZX-ADISE*ZZDIS)
  ZD2  = ZGKU   (JLON,KLEV-1)*ZCIS*ZMDP/ZDPHI2
  ZD3  = PPRODTH(JLON,KLEV-1)/ZGSDP

  ZD = ZD1+ZD2+ZD3-ZANKP1(JLON)*PECTCLS(JLON)

  ZA(JLON,KLEV)=(ZD-ZA(JLON,KLEV)*ZA(JLON,KLEV-1))*ZY

!       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
!       ON RANGE 3 DES TERMES QUI COMPOSENT L'EVOLUTION DE L'ECT
!         -> PROD.dyn,  PROD.ther,  DISSIP(1)
!       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  ZPRDY(JLON,KLEV-1)=    ZD2*ZGSDP
  ZPRTH(JLON,KLEV-1)=    ZD3*ZGSDP
  ZDISS(JLON,KLEV-1)= -ZZDIS*ZGSDP*(ADISI* ZA (JLON,KLEV)&
   & + ADISE*PECT(JLON,KLEV-1))  

ENDDO ! JLON

!*
!-----------------------------------------------------------------------
!     IV  RESOLUTION DE LA TROISIEME RECURENCE
!         -> les termes ZA et ZDISS(2)
!-----------------------------------------------------------------------

DO JLEV= KLEV-2,KTDIAN,-1
  DO JLON=KIDIA,KFDIA
    ZA(JLON,JLEV+1)=ZE(JLON,JLEV+1)*ZA(JLON,JLEV+2)+ZA(JLON,JLEV+1)
    ZDISS(JLON,JLEV)=ZDISS(JLON,JLEV)*(ADISI* ZA (JLON,JLEV+1)&
     & +ADISE*PECT(JLON,JLEV))  
  ENDDO ! JLON
ENDDO   ! JLEV
!*
!-----------------------------------------------------------------------
!     V   CALCUL DE LA DIFFUSION VERTICALE -D/DP ( K D/DZ (ECT) )
!          -> le terme ZDIF.
!-----------------------------------------------------------------------

DO JLON=KIDIA,KFDIA
  ZGSDP=RG/(PAPRSF(JLON,KLEV-1)-PAPRSF(JLON,KLEV))
  ZDIF(JLON,KLEV-1)=( ZPA(JLON,KLEV-1)*(ZA(JLON,KLEV)-ZA(JLON,KLEV-1))&
   & -ZANKP1(JLON)    *(PECTCLS(JLON)-ZA(JLON,KLEV))&
   & )*ZGSDP  
ENDDO ! JLON

DO JLEV=KLEV-2,KTDIAN,-1
  DO JLON=KIDIA,KFDIA
    ZGSDP=RG/(PAPRSF(JLON,JLEV)-PAPRSF(JLON,JLEV+1))
    ZDIF(JLON,JLEV)=( ZPA(JLON,JLEV)  *(ZA(JLON,JLEV+1)-ZA(JLON,JLEV))&
     & -ZPA(JLON,JLEV+1)*(ZA(JLON,JLEV+2)-ZA(JLON,JLEV+1))&
     & )*ZGSDP  
  ENDDO ! JLON
ENDDO   ! JLEV

!*
!-----------------------------------------------------------------------
!     VI CALCUL DES TENDANCES POUR L'EVOLUTION DE L'ECT.
!        ON OBTIENT LA TENDANCE POUR L'INSTANT CONSIDERE
!        EN S'ASSURANT QUE LE RESULTAT FINAL SERA SUPERIEUR
!        A "ECTMIN" (CE QUI EVITE D'ECRETER "PET1" DANS
!        "CPUTQY" EN GARDANT UN "MAX(PECT,ECTMIN)" EN ENTREE
!        DE ACCOEFKE(n) ET ACEVOLET).

!      -> KLEV  : CALCUL DE LA TENDANCE FICTIVE QUI REVIENT A
!                 REMPLACER "PECT" PAR "PECTCLS" EN UN TEMPS "TSPHY"

!      -> AUTRE : AJOUT DE TOUS LES TERMES SOURCES ET PUITS CALCULES.
!                 (ZDIF+ZDISS+ZPRDY+ZPRTH)

!-----------------------------------------------------------------------

DO JLON = KIDIA,KFDIA
  ZDET(JLON,KLEV) = MAX( (   ECTMIN    -PECT(JLON,KLEV))/TSPHY ,&
                &        (PECTCLS(JLON)-PECT(JLON,KLEV))/TSPHY   )
ENDDO ! JLON

DO JLEV = KTDIAN,KLEV-1
  DO JLON = KIDIA,KFDIA
    ZDET(JLON,JLEV) = MAX( (ECTMIN-PECT(JLON,JLEV))/TSPHY ,&
                    &       ZDIF (JLON,JLEV)+ZDISS(JLON,JLEV)&
                    &      +ZPRDY(JLON,JLEV)+ZPRTH(JLON,JLEV))
  ENDDO ! JLON
ENDDO   ! JLEV

DO JLEV = KTDIAT,KTDIAN-1
  DO JLON = KIDIA,KFDIA
    ZDET(JLON,JLEV) = 0.0_JPRB
  ENDDO ! JLON
ENDDO   ! JLEV

DO JLEV = KTDIAT,KLEV
  DO JLON = KIDIA,KFDIA
    PECT1(JLON,JLEV) = PECT(JLON,JLEV) + TSPHY*ZDET(JLON,JLEV)
  ENDDO ! JLON
ENDDO   ! JLEV

!*
!-----------------------------------------------------------------------
!     VII CALCUL DU FLUX PAR INTEGRATION DE LA TENDANCE DE HAUTS EN BAS
!         LES FLUX SONT SUPPOSES NULS AU PREMIER NIVEAU (KTDIA) DE
!         CALCUL (FLUX AU NIVEAU DU MODELE).
!         DANS LE CAS DES SOUS-PAS DE TEMPS, ON REALISE L'EVOLUTION
!         DE PECT DIRECTEMENT, AVEC UN CUMUL DES FLUX POUR QUE, LORS
!         DE LA DERNIERE ITERATION, ON PUISSE DONNER LES BONS FLUX
!         A CPTEND, PUIS LES BONNES TENDANCES A CPUTQY, AFIN DE FAIRE
!         EVOLUER LE TABLEAU ZET9->ZET1 EN ENTREE DE CPUTQY.

!         1) ON CALCULE LES FLUX PAR INTEGRATION DE LA TENDANCE (ZDET),
!         EN PARTANT DU HAUT (FLUX <--> PAS DE TEMPS "TSPHY")

!         2) ON CALCULE LE CUMUL DES FLUX (PAS DE TEMPS NORMAL : TSPHY)
!-----------------------------------------------------------------------

DO JLEV = KTDIAN,KLEV
  DO JLON = KIDIA,KFDIA
    ZDPAPRS=PAPRS(JLON,JLEV)-PAPRS(JLON,JLEV-1)
    ZFET(JLON,JLEV)=ZFET(JLON,JLEV-1)- ZDET(JLON,JLEV)*ZDPAPRS/RG
  ENDDO ! JLON
ENDDO   ! JLEV
 
DO JLEV = KTDIAN,KLEV
  DO JLON = KIDIA,KFDIA
    PFECT(JLON,JLEV)=PFECT(JLON,JLEV)+ZFET(JLON,JLEV)
  ENDDO ! JLON
ENDDO   ! JLEV

IF (LHOOK) CALL DR_HOOK('ACEVOLET',1,ZHOOK_HANDLE)
END SUBROUTINE ACEVOLET
