diff --git a/src/common/turb/mode_compute_bl89_ml.F90 b/src/common/turb/mode_compute_bl89_ml.F90
index 78fce621f169d4d6d32bbf976d28c99f346232fb..16a202a3cc38802683b26801910346a705bff8a0 100644
--- a/src/common/turb/mode_compute_bl89_ml.F90
+++ b/src/common/turb/mode_compute_bl89_ml.F90
@@ -23,6 +23,7 @@ CONTAINS
 !!     R.Honnert Oct 2016 : Update with AROME
 !!     Q.Rodier  01/2019 : support RM17 mixing length as in bl89.f90 
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 17/12/2021: bugfix: KK instead of JKK
 !!
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index 1603c35e20573eb1d8490d7da9558ae7c9b95902..51cb03b5a202d0bb279453fbb4ff62f3f47919cc 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -527,7 +527,7 @@ ZEXPL = 1.- PIMPL
 ZRVORD= CST%XRV / CST%XRD
 !
 !Copy data into ZTHLM and ZRM only if needed
-IF (HTURBLEN=='BL89' .OR. HTURBLEN=='RM17' .OR. ORMC01) THEN
+IF (HTURBLEN=='BL89' .OR. HTURBLEN=='RM17' .OR. HTURBLEN=='ADAP' .OR. ORMC01) THEN
   ZTHLM(IIB:IIE,IJB:IJE,1:D%NKT) = PTHLT(IIB:IIE,IJB:IJE,1:D%NKT)
   ZRM(IIB:IIE,IJB:IJE,1:D%NKT,:) = PRT(IIB:IIE,IJB:IJE,1:D%NKT,:)
 END IF
diff --git a/src/mesonh/ext/phys_paramn.f90 b/src/mesonh/ext/phys_paramn.f90
index bb5cb44670e2be26f2048b13b2bb66459ad2f18b..6d6035e5b38e28d67cc9134fc1197052647550ac 100644
--- a/src/mesonh/ext/phys_paramn.f90
+++ b/src/mesonh/ext/phys_paramn.f90
@@ -695,6 +695,7 @@ IF (.NOT. OCLOUD_ONLY .AND. KTCOUNT /= 1)  THEN
          NDLON,NFLEV,CAER,NAER,NSTATM,                             &
          XSINDEL,XCOSDEL,XTSIDER,XCORSOL,                          &
          XSTATM,XOZON, XAER)
+  XAER_CLIM = XAER
  END IF
 END IF
 !
diff --git a/src/mesonh/micro/lima_adjust.f90 b/src/mesonh/micro/lima_adjust.f90
index 949fabf42b62e7240d2806dc6eaada110ff037f0..31ea1fefa3f64de70ef37019f48128354ae84871 100644
--- a/src/mesonh/micro/lima_adjust.f90
+++ b/src/mesonh/micro/lima_adjust.f90
@@ -137,6 +137,7 @@ END MODULE MODI_LIMA_ADJUST
 !  P. Wautelet 28/05/2020: bugfix: correct array start for PSVT and PSVS
 !  P. Wautelet 01/02/2021: bugfix: add missing CEDS source terms for SV budgets
 !  B. Vie         06/2020: fix PSRCS
+!  P. Wautelet 23/07/2021: replace non-standard FLOAT function by REAL function
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -694,9 +695,9 @@ IF( IMICRO >= 1 ) THEN
       ALLOCATE(ZZW2(IMICRO))
       ALLOCATE(ZVEC1(IMICRO))
       ALLOCATE(IVEC1(IMICRO))
-      ZVEC1(:) = MAX( 1.0001, MIN( FLOAT(NAHEN)-0.0001, XAHENINTP1 * ZZT(:) + XAHENINTP2 ) )
+      ZVEC1(:) = MAX( 1.0001, MIN( REAL(NAHEN)-0.0001, XAHENINTP1 * ZZT(:) + XAHENINTP2 ) )
       IVEC1(:) = INT( ZVEC1(:) )
-      ZVEC1(:) = ZVEC1(:) - FLOAT( IVEC1(:) )
+      ZVEC1(:) = ZVEC1(:) - REAL( IVEC1(:) )
       ZS(:) = ZRVS(:)*PTSTEP / ZRVSATW(:) - 1.
       ZZW(:) = ZCCS(:)*PTSTEP/(XLBC*ZCCS(:)/ZRCS(:))**XLBEXC
       ZZW2(:) = XAHENG3(IVEC1(:)+1)*ZVEC1(:)-XAHENG3(IVEC1(:))*(ZVEC1(:)-1.)
diff --git a/src/mesonh/micro/lima_adjust_split.f90 b/src/mesonh/micro/lima_adjust_split.f90
index 985c6654706550f4c499bf0089205af98ddca72b..1b31b825dcb5bd6b95178e34661906f737723c1d 100644
--- a/src/mesonh/micro/lima_adjust_split.f90
+++ b/src/mesonh/micro/lima_adjust_split.f90
@@ -141,6 +141,7 @@ END MODULE MODI_LIMA_ADJUST_SPLIT
 !!    MODIFICATIONS
 !!    -------------
 !!      Original             06/2021 forked from lima_adjust.f90 
+!  P. Wautelet 23/07/2021: replace non-standard FLOAT function by REAL function
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -599,9 +600,9 @@ DO JITER =1,ITERMAX
             ALLOCATE(ZZW2(IMICRO))
             ALLOCATE(ZVEC1(IMICRO))
             ALLOCATE(IVEC1(IMICRO))
-            ZVEC1(:) = MAX( 1.0001, MIN( FLOAT(NAHEN)-0.0001, XAHENINTP1 * ZZT(:) + XAHENINTP2 ) )
+            ZVEC1(:) = MAX( 1.0001, MIN( REAL(NAHEN)-0.0001, XAHENINTP1 * ZZT(:) + XAHENINTP2 ) )
             IVEC1(:) = INT( ZVEC1(:) )
-            ZVEC1(:) = ZVEC1(:) - FLOAT( IVEC1(:) )
+            ZVEC1(:) = ZVEC1(:) - REAL( IVEC1(:) )
             ZS(:) = ZRVS(:)*PTSTEP / ZRVSATW(:) - 1.
             ZZW(:) = ZCCS(:)*PTSTEP/(XLBC*ZCCS(:)/ZRCS(:))**XLBEXC
             ZZW2(:) = XAHENG3(IVEC1(:)+1)*ZVEC1(:)-XAHENG3(IVEC1(:))*(ZVEC1(:)-1.)
diff --git a/src/mesonh/micro/rain_ice_elec.f90 b/src/mesonh/micro/rain_ice_elec.f90
index 69721492d16057037ea4d126ce6ce6801f23f372..b82bed489109f0474b87bf53e43671787df81599 100644
--- a/src/mesonh/micro/rain_ice_elec.f90
+++ b/src/mesonh/micro/rain_ice_elec.f90
@@ -3227,7 +3227,7 @@ IMPLICIT NONE
 
   if ( lbudget_rs ) call Budget_store_add( tbudgets(NBUDGET_RS), 'CMEL', &
                                            Unpack( -zzw(:) * zrhodj(:), mask = gmicro(:, :, :), field = 0. ) )
-  if ( lbudget_rg ) call Budget_store_end( tbudgets(NBUDGET_RG), 'CMEL', &
+  if ( lbudget_rg ) call Budget_store_add( tbudgets(NBUDGET_RG), 'CMEL', &
                                            Unpack(  zzw(:) * zrhodj(:), mask = gmicro(:, :, :), field = 0. ) )
   if ( lbudget_sv ) then
     call Budget_store_end( tbudgets(NBUDGET_SV1 - 1 + nsv_elecbeg + 4 ), 'CMEL', &
diff --git a/src/mesonh/turb/ini_cturb.f90 b/src/mesonh/turb/ini_cturb.f90
index 9fc3c4a94329738f2d1d03744d297dab6ba7fe0b..ea3f0c70d937df63992fde48dba3347e5f6b5fd4 100644
--- a/src/mesonh/turb/ini_cturb.f90
+++ b/src/mesonh/turb/ini_cturb.f90
@@ -225,7 +225,7 @@ XCPR5= XCPR2
 !         3. MINIMUM VALUES 
 !            --------------
 !
-XTKEMIN=0.01
+XTKEMIN=0.01 ! This value is replaced by XKEMIN in &NAM_TURBn
 !
 !XLINI=10.   ! BL mixing length
 XLINI=0.1   ! BL mixing length
diff --git a/tools/check_commit_mesonh.sh b/tools/check_commit_mesonh.sh
index ff13abe7b90a12abec8472ee8b8e914d4d585851..dcd9ef33f0bc9014942ac59c17e8eb4f3945c71f 100755
--- a/tools/check_commit_mesonh.sh
+++ b/tools/check_commit_mesonh.sh
@@ -8,7 +8,7 @@ set -e
 # Repertoire où MNH-V5-5-0_PHYEX.tar.gz modifie pour accueillir PHYEX se trouve
 #TARGZDIR=$HOME
 
-availTests="007_16janvier/008_run2, 007_16janvier/008_run2_turb3D, COLD_BUBBLE/002_mesonh"
+availTests="007_16janvier/008_run2, 007_16janvier/008_run2_turb3D, COLD_BUBBLE/002_mesonh, ARMLES/RUN, COLD_BUBBLE_3D/002_mesonh,"
 defaultTest="007_16janvier/008_run2"
 separator='_' #- be carrefull, gmkpack (at least on belenos) has multiple allergies (':', '.', '@')
               #- seprator must be in sync with prep_code.sh separator
@@ -220,6 +220,10 @@ if [ $compilation -eq 1 ]; then
   # Supress some files if they are not used anymore
   ! grep -i MODI_COMPUTE_ENTR_DETR $(ls MNH/*compute_updraft* PHYEX/turb/*compute_updraft* 2>/dev/null) && rm -f MNH/compute_entr_detr.f90
   ! grep -i MODI_TH_R_FROM_THL_RT_ $(ls MNH/compute_entr_detr.f90 MNH/compute_entr_detr.f90 PHYEX/turb/mode_compute_updraft*.f90 MNH/ice_adjust_bis.f90 MNH/prep_ideal_case.f90 MNH/set_rsou.f90 2>/dev/null)  > /dev/null && rm -f MNH/th_r_from_thl_rt_1d.f90 MNH/th_r_from_thl_rt_2d.f90 MNH/th_r_from_thl_rt_3d.f90
+  # Routine that changed names (if mode_budget.f90 is present)
+  set +e
+  mv -f PHYEX/aux/mode_budget.f90 MNH/budget.f90
+  set -e
 
   #Configure and compilation
   command -v module && modulelist=$(module -t list 2>&1 | tail -n +2) #save loaded modules
@@ -284,6 +288,12 @@ if [ $check -eq 1 ]; then
     elif   [ $t == COLD_BUBBLE/002_mesonh ]; then
       path_user=$path_user_beg/MY_RUN/KTEST/COLD_BUBBLE/002_mesonh$path_user_end
       path_ref=$path_ref_beg/MY_RUN/KTEST/COLD_BUBBLE/002_mesonh$path_ref_end
+    elif   [ $t == COLD_BUBBLE_3D/002_mesonh ]; then
+      path_user=$path_user_beg/MY_RUN/KTEST/COLD_BUBBLE_3D/002_mesonh$path_user_end
+      path_ref=$path_ref_beg/MY_RUN/KTEST/COLD_BUBBLE_3D/002_mesonh$path_ref_end
+    elif   [ $t == ARMLES/RUN ]; then
+      path_user=$path_user_beg/MY_RUN/KTEST/ARMLES/RUN$path_user_end
+      path_ref=$path_ref_beg/MY_RUN/KTEST/ARMLES/RUN$path_ref_end
     else
       echo "cas $t non reconnu"
     fi
@@ -340,7 +350,63 @@ if [ $check -eq 1 ]; then
       echo "Compare with ncdump..."
       if [ -f $file1 -a -f $file2 ]; then
         set +e
-        diff <(ncdump $file1 | head -c 27350) <(ncdump $file2 | head -c 27350)
+        diff <(ncdump $file1 | head -c 27300) <(ncdump $file2 | head -c 27300)
+        t=$?
+        set -e
+        allt=$(($allt+$t))
+      else
+        [ ! -f $file1 ] && echo "  $file1 is missing"
+        [ ! -f $file2 ] && echo "  $file2 is missing"
+        allt=$(($allt+1))
+      fi
+    fi
+
+    if [ $case == COLD_BUBBLE_3D ]; then
+      echo "Compare with python..."
+      # Compare variable of both Synchronous and Diachronic files with printing difference
+      file1=$path_user/BUBBL.1.CEN4T.001.nc
+      file2=$path_ref/BUBBL.1.CEN4T.001.nc
+      file3=$path_user/BUBBL.1.CEN4T.000.nc
+      file4=$path_ref/BUBBL.1.CEN4T.000.nc
+      set +e
+      $PHYEXTOOLSDIR/compare.py --f1 $file1 --f2 $file2 --f3 $file3 --f4 $file4
+      t=$?
+      set -e
+      allt=$(($allt+$t))
+
+      #Check bit-repro before date of creation of Synchronous file from ncdump of all values (pb with direct .nc file checks)
+      echo "Compare with ncdump..."
+      if [ -f $file1 -a -f $file2 ]; then
+        set +e
+        diff <(ncdump $file1 | head -c 27300) <(ncdump $file2 | head -c 27300)
+        t=$?
+        set -e
+        allt=$(($allt+$t))
+      else
+        [ ! -f $file1 ] && echo "  $file1 is missing"
+        [ ! -f $file2 ] && echo "  $file2 is missing"
+        allt=$(($allt+1))
+      fi
+    fi
+
+    if [ $case == ARMLES ]; then
+      echo "Compare with python..."
+      # Compare variable of both Synchronous and Diachronic files with printing difference
+      file1=$path_user/ARM__.1.CEN4T.001.nc
+      file2=$path_ref/ARM__.1.CEN4T.001.nc
+      file3=$path_user/ARM__.1.CEN4T.000.nc
+      file4=$path_ref/ARM__.1.CEN4T.000.nc
+      set +e
+      $PHYEXTOOLSDIR/compare.py --f1 $file1 --f2 $file2 --f3 $file3 --f4 $file4
+      t=$?
+      set -e
+      allt=$(($allt+$t))
+
+      #Check bit-repro before date of creation of Synchronous file from ncdump of all values (pb with direct .nc file checks)
+      echo "Compare with ncdump..."
+      if [ -f $file1 -a -f $file2 ]; then
+        set +e
+        diff <(ncdump $file1 | head -c 62889) <(ncdump $file2 | head -c 62889)
         t=$?
         set -e
         allt=$(($allt+$t))
diff --git a/tools/compare.py b/tools/compare.py
index 55176ed1e3bfcb6ae159fd5548b71f406f8a266d..7d335da9545d0e9ab2a11e5b061346e218683e9f 100755
--- a/tools/compare.py
+++ b/tools/compare.py
@@ -2,6 +2,32 @@
 
 import xarray as xr
 
+avail_groups=['Stations/sta1',
+'LES_budgets/Miscellaneous/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/Miscellaneous/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/Mean/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/Mean/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/Resolved/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/Resolved/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/Subgrid/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/Subgrid/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/Surface/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/Surface/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_KE/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_KE/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_THL2/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_THL2/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_WTHL/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_WTHL/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_RT2/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_RT2/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_WRT/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_WRT/Cartesian/Time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_THLR/Cartesian/Not_time_averaged/Not_normalized/cart/',
+'LES_budgets/BU_THLR/Cartesian/Time_averaged/Not_normalized/cart/']
+
+
+
 def compareBACKUPFiles(file_user, file_ref):
   status = 0
   da = xr.open_dataset(file_user)
@@ -56,6 +82,26 @@ def compareTSERIESFiles(file_user, file_ref):
         print(var, ecart_min, ecart_moy, ecart_max)
     except:
       pass
+  # Groups comparison
+  for grp in avail_groups:
+    try:
+      nk=len(da['level_les'])
+      da = xr.open_dataset(file_user, group=grp)
+      da2 = xr.open_dataset(file_ref, group=grp)
+      variables = list(da.keys())
+      print(grp)
+      for var in variables:
+        try:
+          ecart_min = float(da2[var][:,:nk-JPVEXT].min())-float(da[var][:,:nk-JPVEXT].min())
+          ecart_moy = float(da2[var][:,:nk-JPVEXT].mean())-float(da[var][:,:nk-JPVEXT].mean())
+          ecart_max = float(da2[var][:,:nk-JPVEXT].max())-float(da[var][:,:nk-JPVEXT].max())
+          if (ecart_min !=0 or ecart_moy !=0 or ecart_max !=0):
+            status += 1
+            print(var, ecart_min, ecart_moy, ecart_max)
+        except:
+          pass
+    except:
+      pass
   return status
 
 if __name__ == "__main__":