!OPTIONS XOPT(NOEVAL)
SUBROUTINE ACNTCLSTL ( KIDIA,KFDIA,KLON,KTDIA,KLEV,&
 !-----------------------------------------------------------------------
 ! - TRAJECTORY .
 & PAPRS5,PAPRSF5,PCP5,PQ5,PT5,PU5,PV5,&
 & PCD5,PCDN5,PCDNH5,PCH5,PCPS5,PDPHI5,PQS5,PTS5,&
 ! - INPUT  2D .
 & PAPRS,PAPRSF,PCP,PQ,PT,PU,PV,&
 ! - INPUT  1D .
 & PCD,PCDN,PCDNH,PCH,PCPS,PDPHI,PDPHIT,PDPHIV,&
 & PQS,PSTAB,PTS,&
 ! - INPUT  LOGIQUE
 & LDZ0H,&
 ! - OUTPUT 1D .
 & PQCLS,PRHCLS,PTCLS,PUCLS,PVCLS,PUCLN,PVCLN,PZPCLS,&
 & PQCLS5,PRHCLS5,PTCLS5,PUCLS5,PVCLS5,PZPCLS5,&
 ! - LOCK ARGUMENTS .
 & CDLOCK)  

!**** *ACNTCLSTL * - INTERP. DES PARAMETRES U,V,T,Q AUX HAUTEURS CHOISIES.
!                    CODE TANGENT LINEAIRE DE ACNTCLS

!     Sujet.
!     ------

!     - ROUTINE DE CALCUL ACTIF .
!          INTERPOLATION DES TEMPERATURES, HUMIDITES (SPECIFIQUES ET
!          RELATIVES) ET VENTS AUX HAUTEURS "METEO" .

!          TEMPERATURE, MOISTURE (SPECIFIC AND RELATIVE) AND WIND
!          INTERPOLATION AT STANDARD "METEOROLOGICAL" LEVELS .

!**   Interface.
!     ----------
!        *CALL* *ACNTCLSTL*

!-----------------------------------------------------------------------
! WARNING: THE ENGLISH VERSION OF VARIABLES' NAMES IS TO BE READ IN THE
!          "APLPAR" CODE.
!-----------------------------------------------------------------------

! -   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.
! KTDIA      : INDICE DE DEPART DES BOUCLES VERTICALES (1 EN GENERAL).
! KLEV       : DIMENSION VERTICALE DES TABLEAUX "FULL LEVEL".

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

! - 2D (0:KLEV) .

! PAPRS      : PRESSION AUX DEMI-NIVEAUX.

! - 2D (1:KLEV) .

! PAPRSF     : PRESSION AUX NIVEAUX.
! PCP        : CHALEUR MASSIQUE A PRESSION CONSTANTE DE L'AIR.
! PQ         : HUMIDITE SPECIFIQUE DE LA VAPEUR D'EAU.
! PT         : TEMPERATURE.
! PU         : COMPOSANTE EN X DU VENT.
! PV         : COMPOSANTE EN Y DU VENT.

! - LOGIQUES .

! LDZ0H      : DIFFERENTES LONGUEURS DE RUGOSITE DYN/THER.

! - 1D (DIAGNOSTIQUE) .

! PCD        : COEFFICIENT D'ECHANGE EN SURFACE POUR U ET V.
! PCDN       : COEFFICIENT NEUTRE D'ECHANGE EN SURFACE.
! PCDNH      : COEFFICIENT THERMIQUE NEUTRE D'ECHANGE EN SURFACE.
! PCH        : COEFFICIENT D'ECHANGE EN SURFACE POUR T ET Q.
! PCPS       : CHALEUR MASSIQUE A PRESSION CONSTANTE DE L'AIR AU SOL.
! PQS        : HUMIDITE SPECIFIQUE DE SURFACE.
! PSTAB      : INDICE DE STABILITE A LA SURFACE.

! - 1D (PROGNOSTIQUE) .

! PTS        : TEMPERATURE DE SURFACE.

! - 1D (SPECIFIQUE) .

! PDPHIT     : HAUTEUR D INTERPOLATION POUR T ET Q (EN GEOPOTENTIEL).
! PDPHIT     : HAUTEUR D INTERPOLATION POUR T ET Q (EN GEOPOTENTIEL).
! PDPHIV     : HAUTEUR D INTERPOLATION POUR U ET V (EN GEOPOTENTIEL).

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

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

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

! - 1D (DIAGNOSTIQUE) .

! PQCLS      : SORTIE DIAGNOSTIQUE DE L'HUMIDITE SPECIFIQUE A HTQ METEO.
! PRHCLS     : SORTIE DIAGNOSTIQUE DE L'HUMIDITE RELATIVE A HTQ METEO.
! PTCLS      : SORTIE DIAGNOSTIQUE DE LA TEMPERATURE A HTQ METEO.
! PUCLS      : SORTIE DIAGNOSTIQUE DU VENT EN X A HUV METEO.
! PVCLS      : SORTIE DIAGNOSTIQUE DU VENT EN Y A HUV METEO.
! PUCLN      : SORTIE DIAGNOSTIQUE DU VENT NEUTRE EN X A HUV METEO.
! PVCLN      : SORTIE DIAGNOSTIQUE DU VENT NEUTRE EN Y A HUV METEO.
! PZPCLS     : SORTIE DIAGNOSTIQUE DE PRESSION A HTQ METEO.

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

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

! COMMON/YOMPHY /
! COMMON/YOMCST /
! COMMON/YOMPHY0/
! COMMON/FCTTRM /

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

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

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

!     Auteur.
!     -------
!        99-07, F. Bouyssel.

!     Modifications.
!     --------------
!      2008-11, C. Payan, Neutral Wind.

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

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

USE YOMPHY   , ONLY : LNEIGE, LBLVAR
USE YOMCST   , ONLY : RV       ,RCPD     ,RCPV     ,RETV     ,&
 & RCW      ,RCS      ,RLVTT    ,RLSTT    ,RTT      ,&
 & RALPW    ,RBETW    ,RGAMW    ,RALPS    ,RBETS    ,&
 & RGAMS    ,RALPD    ,RBETD    ,RGAMD  
USE YOMPHY0  , ONLY : VKARMN

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)               :: KTDIA ! Argument NOT used
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRS5(KLON,0:KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRSF5(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCP5(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PQ5(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PT5(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PU5(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PV5(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCD5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCDN5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCDNH5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCH5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCPS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PDPHI5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PQS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRS(KLON,0:KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRSF(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCP(KLON,KLEV) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PQ(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)    :: PCD(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCDN(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCDNH(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCH(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PCPS(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PDPHI(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PDPHIT(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PDPHIV(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PQS(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PSTAB(KLON) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTS(KLON) 
LOGICAL           ,INTENT(IN)    :: LDZ0H 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PQCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PRHCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PUCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PVCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PUCLN(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PVCLN(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PZPCLS(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PQCLS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PRHCLS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTCLS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PUCLS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PVCLS5(KLON) 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PZPCLS5(KLON) 
CHARACTER(LEN=9)  ,INTENT(IN)    :: CDLOCK 
INTEGER(KIND=JPIM) :: JLON

REAL(KIND=JPRB) :: ZBD, ZBD5, ZBH, ZBH5, ZBN, ZBN5, ZBNH, ZBNH5,&
 & ZCORS, ZCORS5, ZCORU, ZCORU5, ZCPVMD, ZDELTA, &
 & ZEW, ZEW5, ZIV, ZIV5, ZLOGS, ZLOGS5, ZLOGU, &
 & ZLOGU5, ZRS, ZRS5, ZRU, ZRU5  
REAL(KIND=JPRB) :: ZHOOK_HANDLE

#include "abor1.intfb.h"

#include "fcttrm.h"
#include "fcttrmtl.h"

!     CHECK RELIABILITY OF INPUT ARGUMENTS.

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

!*
!     ------------------------------------------------------------------
!     I - CONSTANTES AUXILIAIRES.

!         AUXILIARY CONSTANTS.

ZCPVMD=RCPV-RCPD

!*
!     ------------------------------------------------------------------
!     II - INTERPOLATION.

!          INTERPOLATION.

DO JLON=KIDIA,KFDIA

!     CALCULS PREPARATOIRES.
!     PREPARATORY CALCULATIONS.

  ZBN=-VKARMN*PCDN(JLON)/(2.0_JPRB*PCDN5(JLON)*SQRT(PCDN5(JLON)))
  ZBN5=VKARMN/SQRT(PCDN5(JLON))

!     CALCULS DIFFERENTIES SELON QU'ON A UN OU DEUX Z0.
!     DIFFERENT COMPUTATIONS DEPENDING WHETHER WE HAVE ONE OR TWO Z0.

  IF (LDZ0H) THEN
    ZBNH=VKARMN*(PCDN(JLON)/(2.0_JPRB*PCDNH5(JLON)*SQRT(PCDN5(JLON)))&
     & -SQRT(PCDN5(JLON))*PCDNH(JLON)/PCDNH5(JLON)**2)  
    ZBNH5=VKARMN*SQRT(PCDN5(JLON))/PCDNH5(JLON)
  ELSE
    ZBNH=ZBN
    ZBNH5=ZBN5
  ENDIF

  ZBD=-VKARMN*PCD(JLON)/(2.0_JPRB*PCD5(JLON)*SQRT(PCD5(JLON)))
  ZBD5=VKARMN/SQRT(PCD5(JLON))

  ZBH=VKARMN*(PCD(JLON)/(2.0_JPRB*PCH5(JLON)*SQRT(PCD5(JLON)))&
   & -SQRT(PCD5(JLON))*PCH(JLON)/PCH5(JLON)**2)  
  ZBH5=VKARMN*SQRT(PCD5(JLON))/PCH5(JLON)

  ZRU=-PDPHIV(JLON)*PDPHI(JLON)/PDPHI5(JLON)**2
  ZRU5=PDPHIV(JLON)/PDPHI5(JLON)

  ZRS=-PDPHIT(JLON)*PDPHI(JLON)/PDPHI5(JLON)**2
  ZRS5=PDPHIT(JLON)/PDPHI5(JLON)

  ZLOGU=(ZRU*(EXP(ZBN5)-1.0_JPRB)+ZRU5*ZBN*EXP(ZBN5))&
   & /(1.0_JPRB+ZRU5*(EXP(ZBN5)-1.0_JPRB))  
  ZLOGU5=LOG(1.0_JPRB+ZRU5*(EXP(ZBN5)-1.0_JPRB))

  ZLOGS=(ZRS*(EXP(ZBNH5)-1.0_JPRB)+ZRS5*ZBNH*EXP(ZBNH5))&
   & /(1.0_JPRB+ZRS5*(EXP(ZBNH5)-1.0_JPRB))  
  ZLOGS5=LOG(1.0_JPRB+ZRS5*(EXP(ZBNH5)-1.0_JPRB))

  IF ((ZBN5-ZBD5) <= 0.0_JPRB) THEN
    ZCORU=PSTAB(JLON)*(ZRU5*(ZBN-ZBD)+ ZRU*(ZBN5-ZBD5))
  ELSE
    ZCORU=PSTAB(JLON)*(ZRU5*(ZBN-ZBD)+ ZRU*(ZBN5-ZBD5))&
     & +(1.0_JPRB-PSTAB(JLON))*(ZRU*(EXP(ZBN5-ZBD5)-1.0_JPRB)&
     & +ZRU5*(ZBN-ZBD)*EXP(ZBN5-ZBD5))&
     & /(1.0_JPRB+ZRU5*(EXP(ZBN5-ZBD5)-1.0_JPRB))  
  ENDIF
  ZCORU5=PSTAB(JLON)*ZRU5*(ZBN5-ZBD5)+(1.0_JPRB-PSTAB(JLON))&
   & *LOG(1.0_JPRB+ZRU5*(EXP(MAX(0.0_JPRB,ZBN5-ZBD5))-1.0_JPRB))  

  IF ((ZBNH5-ZBH5) <= 0.0_JPRB) THEN
    ZCORS=PSTAB(JLON)*(ZRS5*(ZBNH-ZBH)+ ZRS*(ZBNH5-ZBH5))
  ELSE
    ZCORS=PSTAB(JLON)*(ZRS5*(ZBNH-ZBH)+ ZRS*(ZBNH5-ZBH5))&
     & +(1.0_JPRB-PSTAB(JLON))*(ZRS*(EXP(ZBNH5-ZBH5)-1.0_JPRB)&
     & +ZRS5*(ZBNH-ZBH)*EXP(ZBNH5-ZBH5))&
     & /(1.0_JPRB+ZRS5*(EXP(ZBNH5-ZBH5)-1.0_JPRB))  
  ENDIF
  ZCORS5=PSTAB(JLON)*ZRS5*(ZBNH5-ZBH5)+(1.0_JPRB-PSTAB(JLON))&
   & *LOG(1.0_JPRB+ZRS5*(EXP(MAX(0.0_JPRB,ZBNH5-ZBH5))-1.0_JPRB))  

!     INTERPOLATION DES COMPOSANTES DU VENT.
!     INTERPOLATION OF WIND COMPONENTS.

  IF ((((ZLOGU5-ZCORU5)/ZBD5) > 0.0_JPRB).AND.&
     & (((ZLOGU5-ZCORU5)/ZBD5) < 1.0_JPRB)) THEN  
    ZIV=(ZLOGU-ZCORU)/ZBD5-(ZLOGU5-ZCORU5)*ZBD/ZBD5**2
  ELSE
    ZIV=0.0_JPRB
  ENDIF
  ZIV5=MAX(0.0_JPRB,MIN(1.0_JPRB,(ZLOGU5-ZCORU5)/ZBD5))

  PUCLS (JLON)=PU5(JLON,KLEV)*ZIV +PU(JLON,KLEV)*ZIV5
  PUCLS5(JLON)=PU5(JLON,KLEV)*ZIV5

  PVCLS (JLON)=PV5(JLON,KLEV)*ZIV +PV(JLON,KLEV)*ZIV5
  PVCLS5(JLON)=PV5(JLON,KLEV)*ZIV5

!     INTERPOLATION DES COMPOSANTES DU VENT NEUTRE.
!     INTERPOLATION OF NEUTRAL WIND COMPONENTS.

  IF (((ZLOGU5/ZBD5) > 0.0_JPRB).AND.&
     & ((ZLOGU5/ZBD5) < 1.0_JPRB)) THEN  
    ZIV=ZLOGU/ZBD5-ZLOGU5*ZBD/ZBD5**2
  ELSE
    ZIV=0.0_JPRB
  ENDIF
  ZIV5=MAX(0.0_JPRB,MIN(1.0_JPRB,ZLOGU5/ZBD5))

  PUCLN (JLON)=PU5(JLON,KLEV)*ZIV +PU(JLON,KLEV)*ZIV5
  PVCLN (JLON)=PV5(JLON,KLEV)*ZIV +PV(JLON,KLEV)*ZIV5


!     INTERPOLATION DES VARIABLES THERMODYNAMIQUES.
!     INTERPOLATION OF THERMODYNAMIC VARIABLES.

  IF ((((ZLOGS5-ZCORS5)/ZBH5) > 0.0_JPRB).AND.&
     & (((ZLOGS5-ZCORS5)/ZBH5) < 1.0_JPRB)) THEN  
    ZIV=(ZLOGS-ZCORS)/ZBH5-ZBH*(ZLOGS5-ZCORS5)/ZBH5**2
  ELSE
    ZIV=0.0_JPRB
  ENDIF
  ZIV5=MAX(0.0_JPRB,MIN(1.0_JPRB,(ZLOGS5-ZCORS5)/ZBH5))
   IF (LBLVAR) THEN
     PQCLS(JLON)=PQ(JLON,KLEV)
   ELSE
    PQCLS(JLON)=PQS(JLON)+ZIV*(PQ5(JLON,KLEV)-PQS5(JLON))&
     & +ZIV5*(PQ(JLON,KLEV)-PQS(JLON))  
   ENDIF
  PQCLS5(JLON)=PQS5(JLON)+ZIV5*(PQ5(JLON,KLEV)-PQS5(JLON))
 
  IF (LBLVAR) THEN
    PTCLS(JLON)=PT(JLON,KLEV)
  ELSE
  PTCLS(JLON)=(PCPS5(JLON)*PTS(JLON)+PCPS(JLON)*PTS5(JLON)&
   & +ZIV*(PCP5(JLON,KLEV)*PT5(JLON,KLEV)-PCPS5(JLON)&
   & *PTS5(JLON)+PDPHI5(JLON))+ZIV5*(PCP5(JLON,KLEV)&
   & *PT(JLON,KLEV)+PCP(JLON,KLEV)*PT5(JLON,KLEV)&
   & -PCPS5(JLON)*PTS(JLON)-PCPS(JLON)*PTS5(JLON)&
   & +PDPHI(JLON)))/(RCPD+ZCPVMD*PQCLS5(JLON))&
   & -ZCPVMD*PQCLS(JLON)*(PCPS5(JLON)*PTS5(JLON)&
   & +ZIV5*(PCP5(JLON,KLEV)*PT5(JLON,KLEV)&
   & -PCPS5(JLON)*PTS5(JLON)+PDPHI5(JLON))&
   & -PDPHIT(JLON))/(RCPD+ZCPVMD*PQCLS5(JLON))**2  
  ENDIF
  PTCLS5(JLON)=(PCPS5(JLON)*PTS5(JLON)+ZIV5*(PCP5(JLON,KLEV)&
   & *PT5(JLON,KLEV)-PCPS5(JLON)*PTS5(JLON)&
   & +PDPHI5(JLON))-PDPHIT(JLON))&
   & /(RCPD+ZCPVMD*PQCLS5(JLON))  

!     CALCUL DE L'HUMIDITE RELATIVE.
!     RELATIVE HUMIDITY COMPUTATION.

  IF (LNEIGE) THEN
    ZDELTA=MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTCLS5(JLON)))
  ELSE
    ZDELTA=0.0_JPRB
  ENDIF

  PZPCLS(JLON)=PAPRS(JLON,KLEV)&
   & +ZRS5*(PAPRSF(JLON,KLEV)-PAPRS(JLON,KLEV))&
   & +ZRS*(PAPRSF5(JLON,KLEV)-PAPRS5(JLON,KLEV))  
  PZPCLS5(JLON)=PAPRS5(JLON,KLEV)+ZRS5*(PAPRSF5(JLON,KLEV)-PAPRS5(JLON,KLEV))

  ZEW= FOEWTL (PTCLS(JLON),PTCLS5(JLON),ZDELTA)
  ZEW5= FOEW (PTCLS5(JLON),ZDELTA)

  PRHCLS(JLON)=((PZPCLS5(JLON)*PQCLS(JLON)&
   & +PZPCLS(JLON)*PQCLS5(JLON))*(RETV+1.0_JPRB))&
   & /(ZEW5*(1.0_JPRB+RETV*PQCLS5(JLON)))&
   & -(PZPCLS5(JLON)*PQCLS5(JLON)*(RETV+1.0_JPRB))&
   & *(ZEW*(1.0_JPRB+RETV*PQCLS5(JLON))+ZEW5*RETV*PQCLS(JLON))&
   & /(ZEW5*(1.0_JPRB+RETV*PQCLS5(JLON)))**2  
  PRHCLS5(JLON)=(PZPCLS5(JLON)*PQCLS5(JLON)*(RETV+1.0_JPRB))&
   & /(ZEW5*(1.0_JPRB+RETV*PQCLS5(JLON)))  
ENDDO

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