diff --git a/src/arome/aux/mode_argslist_ll.F90 b/src/arome/aux/mode_argslist_ll.F90
index a01b2324990bdc736fc1884ed585fbf074677ecd..f80bc15fb3ae6e2d9ebdb0c7d3c6796127648e05 100644
--- a/src/arome/aux/mode_argslist_ll.F90
+++ b/src/arome/aux/mode_argslist_ll.F90
@@ -8,6 +8,17 @@ IMPLICIT NONE
     TYPE(LIST_ll),  POINTER :: TPLIST ! List of fields
     CALL ABORT
   END SUBROUTINE CLEANLIST_ll
+!
+  SUBROUTINE ADD2DFIELD_ll(TPLIST, PFIELD, HNAME)
+IMPLICIT NONE
+          
+    TYPE(LIST_ll), POINTER         :: TPLIST   ! list of fields
+    REAL, DIMENSION(:,:), TARGET :: PFIELD   ! field to be added to the list
+  !                                              of fields
+    character(len=*), intent(in) :: HNAME ! Name of the field to be added
+  !
+   CALL ABORT  
+END SUBROUTINE ADD2DFIELD_ll
 !
   SUBROUTINE ADD3DFIELD_ll(TPLIST, PFIELD, HNAME)
 IMPLICIT NONE
diff --git a/src/arome/turb/modi_update_lm.F90 b/src/arome/turb/modi_update_lm.F90
deleted file mode 100644
index d2a31786e9a15acb0f239ed06035cbba5a160ac8..0000000000000000000000000000000000000000
--- a/src/arome/turb/modi_update_lm.F90
+++ /dev/null
@@ -1,18 +0,0 @@
-!     ######spl
-      MODULE MODI_UPDATE_LM
-!     ###################
-INTERFACE
-!
-SUBROUTINE UPDATE_LM(HLBCX,HLBCY,PLM,PLEPS)
-!
-CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X boundary type
-CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y boundary type
-!
-REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLM   ! mixing length
-REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLEPS ! dissipative length
-!
-END SUBROUTINE UPDATE_LM
-!
-END INTERFACE
-!
-END MODULE MODI_UPDATE_LM
diff --git a/src/common/turb/mode_rotate_wind.F90 b/src/common/turb/mode_rotate_wind.F90
new file mode 100644
index 0000000000000000000000000000000000000000..e117b95f81770e26771aee5999a8ef9aedaef688
--- /dev/null
+++ b/src/common/turb/mode_rotate_wind.F90
@@ -0,0 +1,204 @@
+!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC for details. version 1.
+!    #######################  
+     MODULE MODE_ROTATE_WIND
+!    #######################
+IMPLICIT NONE
+CONTAINS
+!     ###########################################################
+      SUBROUTINE ROTATE_WIND(PU,PV,PW,                          &
+                             PDIRCOSXW, PDIRCOSYW, PDIRCOSZW,   &
+                             PCOSSLOPE,PSINSLOPE,               &
+                             PDXX,PDYY,PDZZ,                    &
+                             PUSLOPE,PVSLOPE                    )
+!     ###########################################################
+!
+!
+!!****  *ROTATE_WIND* - computes the wind components along the maximum slope 
+!!               direction and its normal direction in the first mass level.
+!!
+!!    PURPOSE
+!!    -------
+!!**** 
+!        The purpose of this routine is to compute the wind component parallel 
+!     to the orography at the first mass level. The exact location where these
+!     components are computed is the point of intersection between the normal 
+!     to the orography and the first mass-level hyper-plane at PDZZ(:,:,IKB)/2 
+!        
+!!**  METHOD
+!!    ------
+!!       The values of the 3 cartesian components of the wind are determined
+!!    by a bilinear interpolation between the 4 nearest points in the first 
+!!    mass-level hyper-plane. These points are found according to the signs of 
+!!    the slopes' sinus and cosinus. For each direction of interpolation, the 
+!!    two different localizations (mass or flux grids) are used to avoid 
+!!    lateral boundary problems.  
+!!       Then, the rotation is performed for the wind components. The rotation 
+!!    angle is the angle between the x axe and the maximum slope direction 
+!!    defined by the slope vector (dZs/dx , dZs/dy).
+!!        Finally, the horizontal components are set at the marginal points 
+!!    according to cyclic boundary conditions because this is the only case
+!!    where these points can be considered.
+!!
+!!    EXTERNAL
+!!    --------
+!!       NONE
+!!
+!!    IMPLICIT ARGUMENTS 
+!!    ------------------
+!!
+!!       MODD_CONF      : L2D   switch for 2D model version
+!!
+!!
+!!    REFERENCE
+!!    ---------
+!!      Book 1 of documentation (Chapter: Turbulence)
+!!
+!!    AUTHOR
+!!    ------
+!!      Joel Stein              * Meteo-France *
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original         14/11/95
+!!      Modifications:   15/05/96, (N. wood)
+!!                                 take into account no slip conditions 
+!!                                 at the surface
+!!                       14/02/01  (V. Masson)
+!!                                 Slip condition at the surface restored
+!!
+!! --------------------------------------------------------------------------
+!       
+!*      0. DECLARATIONS
+!          ------------
+USE MODD_PARAMETERS
+!
+IMPLICIT NONE
+!
+!
+!*      0.1  declarations of arguments
+!
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PU,PV,PW        ! cartesian components
+                                 ! of the wind
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PDIRCOSXW, PDIRCOSYW, PDIRCOSZW
+! Director Cosinus along x, y and z directions at surface w-point
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PCOSSLOPE       ! cosinus of the angle 
+                                 ! between i and the slope vector
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSINSLOPE       ! sinus of the angle 
+                                 ! between i and the slope vector
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PDXX, PDYY, PDZZ
+                                 ! Metric coefficients
+REAL, DIMENSION(:,:),   INTENT(OUT)  ::  PUSLOPE         ! wind component along 
+                                 ! the maximum slope direction
+REAL, DIMENSION(:,:),   INTENT(OUT)  ::  PVSLOPE         ! wind component along
+                                 !  the direction normal to the maximum slope one
+!
+!-------------------------------------------------------------------------------
+!
+!       0.2  declaration of local variables
+!
+INTEGER, DIMENSION(SIZE(PDIRCOSXW,1),SIZE(PDIRCOSXW,2)) :: ILOC,JLOC
+              ! shift index to find the 4 nearest points in x and y directions
+REAL,    DIMENSION(SIZE(PDIRCOSXW,1),SIZE(PDIRCOSXW,2)) :: ZCOEFF,ZCOEFM,     &
+              ! interpolation weigths for flux and mass locations
+                                                           ZUINT,ZVINT,ZWINT, &
+              ! intermediate values of the cartesian components after x interp.
+                                                           ZUFIN,ZVFIN,ZWFIN, &
+              ! final values of the cartesian components after the 2 interp.
+                                                           ZWGROUND
+              ! vertical velocity at the surface                                                            
+INTEGER     :: IIB,IIE,IJB,IJE,IKB
+              ! index values for the Beginning or the End of the physical 
+              ! domain in x,y and z directions
+INTEGER     :: IIU,IJU
+              ! arrays' sizes for i and j indices
+INTEGER     :: JI,JJ
+!      
+!----------------------------------------------------------------------------
+!
+!*      1.    PRELIMINARIES
+!             -------------
+!
+PUSLOPE=0.
+PVSLOPE=0.
+!
+IIB = 2
+IJB = 2
+IIU = SIZE(PU,1)
+IJU = SIZE(PU,2)
+IIE = IIU - 1
+IJE = IJU - 1
+IKB = 1+JPVEXT
+!
+ZWGROUND(:,:) = PW(:,:,IKB)
+!
+!*      2.    INTERPOLATE THE CARTESIAN COMPONENTS
+!             ------------------------------------
+!
+ILOC(:,:)=NINT(SIGN(1.,-PCOSSLOPE(:,:)))
+JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:)))
+!
+! interpolation in x direction
+!
+DO JJ = 1,IJU
+  DO JI = IIB,IIE 
+    ZCOEFF(JI,JJ) =                                                  &
+      (0.5*PDXX(JI,JJ,IKB) + 0.5*PDZZ(JI,JJ,IKB)*PDIRCOSXW(JI,JJ) )  & 
+      * 2. / (PDXX(JI,JJ,IKB)+PDXX(JI+1,JJ,IKB))
+    ZUINT(JI,JJ) = ZCOEFF(JI,JJ)      * PU(JI+1,JJ,IKB)  +           &
+                   (1.-ZCOEFF(JI,JJ)) * PU(JI,JJ,IKB)
+    !
+    ZCOEFM(JI,JJ) = 1. - 0.5 * PDZZ(JI,JJ,IKB) * ABS(PDIRCOSXW(JI,JJ))      & 
+                             / PDXX(JI+(ILOC(JI,JJ)+1)/2,JJ,IKB)
+    ZVINT(JI,JJ) = ZCOEFM(JI,JJ)      * PV(JI,JJ,IKB)              +        &
+                   (1.-ZCOEFM(JI,JJ)) * PV(JI+ILOC(JI,JJ),JJ,IKB)
+    !
+    ZWINT(JI,JJ) = ZCOEFM(JI,JJ)  * (PW(JI,JJ,IKB+1)+ZWGROUND(JI,JJ)) * 0.5    &
+              + (1.-ZCOEFM(JI,JJ))                                             &
+               *(PW(JI+ILOC(JI,JJ),JJ,IKB+1)+ZWGROUND(JI+ILOC(JI,JJ),JJ)) * 0.5
+  END DO
+END DO
+!
+! interpolation in y direction
+!
+DO JJ = IJB,IJE
+  DO JI = IIB,IIE
+    ZCOEFF(JI,JJ) =                                                     &
+      (0.5*PDYY(JI,JJ,IKB) + 0.5*PDZZ(JI,JJ,IKB)*PDIRCOSYW(JI,JJ) )     & 
+      * 2. / (PDYY(JI,JJ,IKB)+PDYY(JI+1,JJ,IKB))
+    ZVFIN(JI,JJ) = ZCOEFF(JI,JJ)      * ZVINT(JI,JJ+1)  +               &
+                   (1.-ZCOEFF(JI,JJ)) * ZVINT(JI,JJ)
+    !
+    ZCOEFM(JI,JJ) = 1. - 0.5 * PDZZ(JI,JJ,IKB) * ABS(PDIRCOSYW(JI,JJ))   & 
+                             / PDYY(JI,JJ+(JLOC(JI,JJ)+1)/2,IKB)
+    ZUFIN(JI,JJ) = ZCOEFM(JI,JJ)      * ZUINT(JI,JJ)                +    &
+                   (1.-ZCOEFM(JI,JJ)) * ZUINT(JI,JJ+JLOC(JI,JJ))
+    ZWFIN(JI,JJ) = ZCOEFM(JI,JJ)      * ZWINT(JI,JJ)                +    &
+                   (1.-ZCOEFM(JI,JJ)) * ZWINT(JI,JJ+JLOC(JI,JJ))
+  END DO
+END DO
+!
+!*      3.    ROTATE THE WIND
+!             ---------------
+!
+!
+DO JJ = IJB,IJE 
+  DO JI = IIB,IIE
+    PUSLOPE(JI,JJ) = PCOSSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) * ZUFIN(JI,JJ) +   &
+                     PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) * ZVFIN(JI,JJ) +   &
+                            SQRT(1.-PDIRCOSZW(JI,JJ)**2) * ZWFIN(JI,JJ)
+    !              
+    PVSLOPE(JI,JJ) =-PSINSLOPE(JI,JJ)                    * ZUFIN(JI,JJ) +   &
+                     PCOSSLOPE(JI,JJ)                    * ZVFIN(JI,JJ)
+    !
+  END DO
+END DO
+!
+!
+!
+!----------------------------------------------------------------------------
+!
+END SUBROUTINE ROTATE_WIND
+END MODULE MODE_ROTATE_WIND
diff --git a/src/common/turb/mode_update_lm.F90 b/src/common/turb/mode_update_lm.F90
new file mode 100644
index 0000000000000000000000000000000000000000..d5ab737b0b7d15fd55afbec372f9990a33654f2a
--- /dev/null
+++ b/src/common/turb/mode_update_lm.F90
@@ -0,0 +1,119 @@
+!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
+      MODULE MODE_UPDATE_LM
+IMPLICIT NONE
+CONTAINS
+SUBROUTINE UPDATE_LM(HLBCX,HLBCY,PLM,PLEPS)
+!     #################################################################
+!
+!!****  *UPDATE_LM* - routine to set external points for mixing length
+!!
+!!    PURPOSE
+!!    -------
+!
+!!**  METHOD
+!!    ------
+!!   
+!!    EXTERNAL
+!!    --------   
+!!
+!!    IMPLICIT ARGUMENTS
+!!    ------------------ 
+!!        
+!!    REFERENCE
+!!    ---------
+!!      Book2 of documentation (routine UPDATE_LM)
+!!
+!!    AUTHOR
+!!    ------
+!!	V. Masson        * Meteo France *
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original    april 2006
+!!       V.Masson : Exchange of East and North sides
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!         
+USE MODD_CONF
+USE MODD_PARAMETERS
+!
+USE MODE_ll
+USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+!
+IMPLICIT NONE
+!
+!
+!*       0.1   declarations of arguments
+!
+CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X boundary type
+CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y boundary type
+!
+REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLM   ! mixing length
+REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLEPS ! dissipative length
+!
+!*       0.2   declarations of local variables
+!
+INTEGER             :: IIB      ! First physical index in x direction
+INTEGER             :: IJB      ! First physical index in y direction
+INTEGER             :: IIE      ! last  physical index in x direction
+INTEGER             :: IJE      ! last  physical index in y direction
+INTEGER             :: JI       ! loop index
+!
+TYPE(LIST_ll), POINTER :: TZLM_ll   ! list of fields to exchange
+INTEGER                :: IINFO_ll       ! return code of parallel routine
+!
+!-------------------------------------------------------------------------------
+!
+!*       1.    COMPUTE DIMENSIONS OF ARRAYS :
+!              ----------------------------
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
+NULLIFY(TZLM_ll)
+!
+!-------------------------------------------------------------------------------
+!
+!*       2.  UPDATE HALOs :
+!            -------------
+!
+!
+!!$IF(NHALO == 1) THEN
+  CALL ADD3DFIELD_ll( TZLM_ll, PLM,   'UPDATE_LM::PLM'   )
+  CALL ADD3DFIELD_ll( TZLM_ll, PLEPS, 'UPDATE_LM::PLEPS' )
+  CALL UPDATE_HALO_ll(TZLM_ll,IINFO_ll)
+  CALL CLEANLIST_ll(TZLM_ll)
+!!$END IF
+!
+!-------------------------------------------------------------------------------
+!
+!*       3.  UPDATE EXTERNAL POINTS OF GLOBAL DOMAIN:
+!            ---------------------------------------
+!
+IF ( HLBCX(1) /= "CYCL" .AND. LWEST_ll()) THEN
+  PLM  (IIB-1,:,:) = PLM  (IIB,:,:)
+  PLEPS(IIB-1,:,:) = PLEPS(IIB,:,:)
+END IF
+IF ( HLBCX(2) /= "CYCL" .AND. LEAST_ll()) THEN
+  PLM  (IIE+1,:,:) = PLM  (IIE,:,:)
+  PLEPS(IIE+1,:,:) = PLEPS(IIE,:,:)
+END IF
+IF ( HLBCY(1) /= "CYCL" .AND. LSOUTH_ll()) THEN
+  DO JI=1,SIZE(PLM,1)
+    PLM  (JI,IJB-1,:) = PLM  (JI,IJB,:)
+    PLEPS(JI,IJB-1,:) = PLEPS(JI,IJB,:)
+  END DO
+END IF
+IF ( HLBCY(2) /= "CYCL" .AND. LNORTH_ll()) THEN
+  DO JI=1,SIZE(PLM,1)
+    PLM  (JI,IJE+1,:) = PLM  (JI,IJE,:)
+    PLEPS(JI,IJE+1,:) = PLEPS(JI,IJE,:)
+  END DO
+END IF
+!-----------------------------------------------------------------------------
+END SUBROUTINE UPDATE_LM
+END MODULE MODE_UPDATE_LM
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index 2e97d63c673ebe1703d8079c6907c4b0903eb740..5ba9ab49c565f40cf5231e71195c5378f441b077 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -211,11 +211,24 @@
 !!                     06/2011 (J.escobar ) Bypass Bug with ifort11/12 on  HLBCX,HLBC
 !!                     2012-02 Y. Seity,  add possibility to run with reversed
 !!                                          vertical levels
+!!                     10/2012 (J. Colin) Correct bug in DearDoff for dry simulations
+!!                     10/2012 J.Escobar Bypass PGI bug , redefine some allocatable array inplace of automatic
 !!                     2014-11 Y. Seity,  add output terms for TKE DDHs budgets
 !!                     July 2015 (Wim de Rooy)  modifications to run with RACMO
 !!                                              turbulence (LHARAT=TRUE)
-!! --------------------------------------------------------------------------
-!       
+!!                     04/2016  (C.Lac) correction of negativity for KHKO
+!  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
+!  Q. Rodier      01/2018: introduction of RM17
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!  P. Wautelet    02/2020: use the new data structures and subroutines for budgets
+!  B. Vie         03/2020: LIMA negativity checks after turbulence, advection and microphysics budgets
+!  P. Wautelet 11/06/2020: bugfix: correct PRSVS array indices
+!  P. Wautelet + Benoit Vié 06/2020: improve removal of negative scalar variables + adapt the corresponding budgets
+!  P. Wautelet 30/06/2020: move removal of negative scalar variables to Sources_neg_correct
+!  R. Honnert/V. Masson 02/2021: new mixing length in the grey zone
+!  J.L. Redelsperger 03/2021: add Ocean LES case
+! --------------------------------------------------------------------------
+!
 !*      0. DECLARATIONS
 !          ------------
 !
@@ -240,8 +253,7 @@ USE MODD_NSV
 !
 USE MODE_BL89, ONLY: BL89
 USE MODE_TURB_VER, ONLY : TURB_VER
-!!MODIF AROME
-!USE MODI_ROTATE_WIND
+USE MODE_ROTATE_WIND, ONLY: ROTATE_WIND
 USE MODE_TURB_HOR_SPLT, ONLY: TURB_HOR_SPLT
 USE MODE_TKE_EPS_SOURCES, ONLY: TKE_EPS_SOURCES
 USE MODI_SHUMAN, ONLY : MZF, MXF, MYF
@@ -253,7 +265,7 @@ USE MODI_LES_MEAN_SUBGRID
 USE MODE_RMC01, ONLY: RMC01
 USE MODI_GRADIENT_W
 USE MODE_TM06, ONLY: TM06
-USE MODI_UPDATE_LM
+USE MODE_UPDATE_LM, ONLY: UPDATE_LM
 !
 USE MODE_BUDGET,         ONLY: BUDGET_STORE_INIT, BUDGET_STORE_END
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
@@ -736,8 +748,7 @@ IF (HTURBLEN=='ADAP') ZLEPS = MIN(ZLEPS,ZLMW*XCADAP)
 !           ----------------------------------------------------------
 !
 IF (HTURBDIM=="3DIM") THEN
-!****FOR AROME****
-!  CALL UPDATE_LM(HLBCX,HLBCY,ZLM,ZLEPS)
+  CALL UPDATE_LM(HLBCX,HLBCY,ZLM,ZLEPS)
 END IF
 !----------------------------------------------------------------------------
 !
@@ -747,65 +758,30 @@ END IF
 !
 !*      4.1 rotate the wind at time t
 !
-IF ( HINST_SFU == 'T' ) THEN
-!
-!
-  IF (CPROGRAM=='AROME ') THEN
-    ZUSLOPE=PUT(:,:,KKA)
-    ZVSLOPE=PVT(:,:,KKA)
-  ELSE
-!    CALL ROTATE_WIND(PUT,PVT,PWT,                       &
-!                     PDIRCOSXW, PDIRCOSYW, PDIRCOSZW,   &
-!                     PCOSSLOPE,PSINSLOPE,               &
-!                     PDXX,PDYY,PDZZ,                    &
-!                     ZUSLOPE,ZVSLOPE                    )
-!
-!    CALL UPDATE_ROTATE_WIND(ZUSLOPE,ZVSLOPE)
-  END IF
-!
-!
-!*      4.2 compute the proportionality coefficient between wind and stress
-!
-  ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) /               &
-                        (1.E-60 + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 )   &
-                      )
-!
-!*      4.3 rotate the wind at time t-delta t
 !
-  IF (CPROGRAM/='AROME ') THEN
-!    CALL ROTATE_WIND(PUT,PVT,PWT,                       &
-!                     PDIRCOSXW, PDIRCOSYW, PDIRCOSZW,   &
-!                     PCOSSLOPE,PSINSLOPE,               &
-!                     PDXX,PDYY,PDZZ,                    &
-!                     ZUSLOPE,ZVSLOPE                    )
 !
-!    CALL UPDATE_ROTATE_WIND(ZUSLOPE,ZVSLOPE)
-  END IF
+IF (CPROGRAM/='AROME ') THEN
+  CALL ROTATE_WIND(PUT,PVT,PWT,                       &
+                     PDIRCOSXW, PDIRCOSYW, PDIRCOSZW,   &
+                     PCOSSLOPE,PSINSLOPE,               &
+                     PDXX,PDYY,PDZZ,                    &
+                     ZUSLOPE,ZVSLOPE                    )
 !
+  CALL UPDATE_ROTATE_WIND(ZUSLOPE,ZVSLOPE)
 ELSE
+  ZUSLOPE=PUT(:,:,KKA)
+  ZVSLOPE=PVT(:,:,KKA)
+END IF
 !
-!*      4.4 rotate the wind at time t-delta t
-!
-  IF (CPROGRAM=='AROME ') THEN
-    ZUSLOPE=PUT(:,:,KKA)
-    ZVSLOPE=PVT(:,:,KKA)
-  ELSE
-!
-!    CALL ROTATE_WIND(PUT,PVT,PWT,                       &
-!                     PDIRCOSXW, PDIRCOSYW, PDIRCOSZW,   &
-!                     PCOSSLOPE,PSINSLOPE,               &
-!                     PDXX,PDYY,PDZZ,                    &
-!                     ZUSLOPE,ZVSLOPE                    )
-!
-!    CALL UPDATE_ROTATE_WIND(ZUSLOPE,ZVSLOPE)
-  END IF
 !
-!*      4.5 compute the proportionality coefficient between wind and stress
+!*      4.2 compute the proportionality coefficient between wind and stress
 !
-  ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) /               &
-                        (1.E-60 + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 )   &
-                      )
-END IF
+ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) /               &
+#ifdef REPRO48
+                    (1.E-60 + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) )
+#else
+                    (XMNH_TINY + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) )
+#endif                      
 !
 !*       4.6 compute the surface tangential fluxes
 !
@@ -948,8 +924,10 @@ IF( LBUDGET_SV )  THEN
   END DO
 END IF
 !
-#ifdef REPRO48 !Les budgets des termes horizontaux de la turb sont présents dans AROME
-#else          ! alors que ces termes ne sont pas calculés
+!Les budgets des termes horizontaux de la turb sont présents dans AROME
+! alors que ces termes ne sont pas calculés
+#ifdef REPRO48 
+#else          
 IF( HTURBDIM == '3DIM' ) THEN
 #endif
   IF( LBUDGET_U  ) CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_U ), 'HTURB', PRUS  (:, :, :) )
@@ -985,7 +963,8 @@ IF( HTURBDIM == '3DIM' ) THEN
       CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'HTURB', PRSVS(:, :, :, JSV) )
     END DO
   END IF
-#ifdef REPRO48 !à supprimer une fois le précédent ifdef REPRO48 validé
+!à supprimer une fois le précédent ifdef REPRO48 validé
+#ifdef REPRO48
 #else
     CALL TURB_HOR_SPLT(KSPLIT, KRR, KRRL, KRRI, PTSTEP,        &
           HLBCX,HLBCY,OTURB_FLX,OSUBG_COND,                    &
@@ -1285,9 +1264,7 @@ IF (LHOOK) CALL DR_HOOK('TURB:UPDATE_ROTATE_WIND',0,ZHOOK_HANDLE)
 !
 NULLIFY(TZFIELDS_ll)
 !
-IIU=SIZE(PUSLOPE,1)
-IJU=SIZE(PUSLOPE,2)
-CALL GET_INDICE_ll (IIB,IJB,IIE,IJE,IIU,IJU)
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !         2 Update halo if necessary
 !
diff --git a/src/mesonh/turb/turb.f90 b/src/mesonh/turb/turb.f90
index 3c99d04e47d7d7fa434ddf95d2aea9da533132e1..2f2d6b193d6c800510eac1a08428b394a9cbd48c 100644
--- a/src/mesonh/turb/turb.f90
+++ b/src/mesonh/turb/turb.f90
@@ -335,6 +335,9 @@ END MODULE MODI_TURB
 !!                                          vertical levels
 !!                     10/2012 (J. Colin) Correct bug in DearDoff for dry simulations
 !!                     10/2012 J.Escobar Bypass PGI bug , redefine some allocatable array inplace of automatic
+!!                     2014-11 Y. Seity,  add output terms for TKE DDHs budgets
+!!                     July 2015 (Wim de Rooy)  modifications to run with RACMO
+!!                                              turbulence (LHARAT=TRUE)
 !!                     04/2016  (C.Lac) correction of negativity for KHKO
 !  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
 !  Q. Rodier      01/2018: introduction of RM17