diff --git a/arch/MERCATOR/arch-X64_AA_INTEL_OMPI.fcm b/arch/MERCATOR/arch-X64_AA_INTEL_OMPI.fcm
new file mode 100644
index 0000000000000000000000000000000000000000..2e8a3139941ccc5df7a6d8812d3df486dfb0acb3
--- /dev/null
+++ b/arch/MERCATOR/arch-X64_AA_INTEL_OMPI.fcm
@@ -0,0 +1,62 @@
+# compiler options for AA (using INTEL compiler & OpenMPI)
+#
+# module purge
+# module use /home/ar0s/modules
+# module load prgenv/intel intel/2021.4.0 openmpi/4.1.1.1 hdf5-parallel/1.10.6 netcdf4-parallel/4.7.4 xios/trunk/rev2320-nmpi
+#
+#
+# NCDF_INC    netcdf4 include file
+# NCDF_LIB    netcdf4 library
+# XIOS_INC    xios include file    (taken into accound only if key_xios is activated)
+# XIOS_LIB    xios library         (taken into accound only if key_xios is activated)
+# OASIS_INC   oasis include file   (taken into accound only if key_oasis3 is activated)
+# OASIS_LIB   oasis library        (taken into accound only if key_oasis3 is activated)
+#
+# FC          Fortran compiler command
+# FCFLAGS     Fortran compiler flags
+# FFLAGS      Fortran 77 compiler flags
+# LD          linker
+# LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries
+# FPPFLAGS    pre-processing flags
+# AR          assembler
+# ARFLAGS     assembler flags
+# MK          make
+# USER_INC    complete list of include files
+# USER_LIB    complete list of libraries to pass to the linker
+# CC          C compiler used to compile conv for AGRIF
+# CFLAGS      compiler flags used with CC
+#
+# Note that:
+#  - unix variables "$..." are accpeted and will be evaluated before calling fcm.
+#  - fcm variables are starting with a % (and not a $)
+#
+#---------------------------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------
+# All NETCDF and HDF paths are empty as they are automatically defined through environment
+# variables by the load of modules
+#---------------------------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------
+#
+#
+%NCDF_INC            ${NETCDF4_INCLUDE}
+%NCDF_LIB            ${NETCDF4_LIB} -L${HDF5_DIR}/lib -Wl,-rpath,${HDF5_DIR}/lib -lhdf5_hl -lhdf5 -lz
+%XIOS_INC            -I${XIOS_INC}
+%XIOS_LIB            -L${XIOS_LIB} -lxios -lstdc++
+%OASIS_INC           -I${OASIS_DIR}/build/lib/mct -I${OASIS_DIR}/build/lib/psmile.MPI1
+%OASIS_LIB           -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip
+
+%CPP                 cpp
+%FC                  mpifort -c -cpp
+%FCFLAGS             -march=core-avx2 -i4 -r8 -O3 -fp-model strict -fno-alias -align array64byte
+%FFLAGS              %FCFLAGS
+%LD                  mpifort
+%LDFLAGS             
+%FPPFLAGS            -P -traditional
+%AR                  ar
+%ARFLAGS             rs
+%MK                  gmake
+%USER_INC            %XIOS_INC %OASIS_INC %NCDF_INC
+%USER_LIB            %XIOS_LIB %OASIS_LIB %NCDF_LIB
+
+%CC                  mpicc
+%CFLAGS              -O0
diff --git a/arch/MERCATOR/arch-X64_AA_INTEL_OMPI_DEBUG.fcm b/arch/MERCATOR/arch-X64_AA_INTEL_OMPI_DEBUG.fcm
new file mode 100644
index 0000000000000000000000000000000000000000..dd0994798d826bada2dced97f0a2527dea176e61
--- /dev/null
+++ b/arch/MERCATOR/arch-X64_AA_INTEL_OMPI_DEBUG.fcm
@@ -0,0 +1,62 @@
+# compiler options for AA (using INTEL compiler & OpenMPI)
+#
+# module purge
+# module use /home/ar0s/modules
+# module load prgenv/intel intel/2021.4.0 openmpi/4.1.1.1 hdf5-parallel/1.10.6 netcdf4-parallel/4.7.4 xios/trunk/rev2320-nmpi
+#
+#
+# NCDF_INC    netcdf4 include file
+# NCDF_LIB    netcdf4 library
+# XIOS_INC    xios include file    (taken into accound only if key_xios is activated)
+# XIOS_LIB    xios library         (taken into accound only if key_xios is activated)
+# OASIS_INC   oasis include file   (taken into accound only if key_oasis3 is activated)
+# OASIS_LIB   oasis library        (taken into accound only if key_oasis3 is activated)
+#
+# FC          Fortran compiler command
+# FCFLAGS     Fortran compiler flags
+# FFLAGS      Fortran 77 compiler flags
+# LD          linker
+# LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries
+# FPPFLAGS    pre-processing flags
+# AR          assembler
+# ARFLAGS     assembler flags
+# MK          make
+# USER_INC    complete list of include files
+# USER_LIB    complete list of libraries to pass to the linker
+# CC          C compiler used to compile conv for AGRIF
+# CFLAGS      compiler flags used with CC
+#
+# Note that:
+#  - unix variables "$..." are accpeted and will be evaluated before calling fcm.
+#  - fcm variables are starting with a % (and not a $)
+#
+#---------------------------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------
+# All NETCDF and HDF paths are empty as they are automatically defined through environment
+# variables by the load of modules
+#---------------------------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------
+#
+#
+%NCDF_INC            ${NETCDF4_INCLUDE}
+%NCDF_LIB            ${NETCDF4_LIB} -L${HDF5_DIR}/lib -Wl,-rpath,${HDF5_DIR}/lib -lhdf5_hl -lhdf5 -lz
+%XIOS_INC            -I${XIOS_INC}
+%XIOS_LIB            -L${XIOS_LIB} -lxios -lstdc++
+%OASIS_INC           -I${OASIS_DIR}/build/lib/mct -I${OASIS_DIR}/build/lib/psmile.MPI1
+%OASIS_LIB           -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip
+
+%CPP                 cpp
+%FC                  mpifort -c -cpp
+%FCFLAGS             -march=core-avx2 -i4 -r8 -g -O0 -debug all -traceback -fp-model strict -ftrapuv -check all,noarg_temp_created -fpe-all0 -ftz -init=arrays,snan,huge
+%FFLAGS              %FCFLAGS
+%LD                  mpifort
+%LDFLAGS             
+%FPPFLAGS            -P -traditional
+%AR                  ar
+%ARFLAGS             rs
+%MK                  gmake
+%USER_INC            %XIOS_INC %OASIS_INC %NCDF_INC
+%USER_LIB            %XIOS_LIB %OASIS_LIB %NCDF_LIB
+
+%CC                  mpicc
+%CFLAGS              -O0
diff --git a/arch/MERCATOR/arch-X64_BELENOS_INTEL_MVAP_DEBUG.fcm b/arch/MERCATOR/arch-X64_BELENOS_INTEL_MVAP_DEBUG.fcm
new file mode 100644
index 0000000000000000000000000000000000000000..4ec5587d320d34ac132ea03dfea97a76238ec544
--- /dev/null
+++ b/arch/MERCATOR/arch-X64_BELENOS_INTEL_MVAP_DEBUG.fcm
@@ -0,0 +1,70 @@
+# compiler options for BELENOS/TARANIS (using INTEL compiler + Intel MPI)
+#
+# --------------------------------
+# INTEL_IMPI (NEMO 4.0 + XIOS-2.5)
+# --------------------------------
+# module use /home/ext/mr/smer/samsong/modules
+# module load intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/2.5/rev1903
+#
+# ----------------------------------
+# INTEL_IMPI (NEMO 4.2 + XIOS-TRUNK)
+# ----------------------------------
+# module use /home/ext/mr/smer/samsong/modules
+# module load gcc/9.2.0 intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/trunk/rev2134
+#
+#
+# NCDF_INC    netcdf4 include file
+# NCDF_LIB    netcdf4 library
+# XIOS_INC    xios include file    (taken into accound only if key_xios is activated)
+# XIOS_LIB    xios library         (taken into accound only if key_xios is activated)
+# OASIS_INC   oasis include file   (taken into accound only if key_oasis3 is activated)
+# OASIS_LIB   oasis library        (taken into accound only if key_oasis3 is activated)
+#
+# FC          Fortran compiler command
+# FCFLAGS     Fortran compiler flags
+# FFLAGS      Fortran 77 compiler flags
+# LD          linker
+# LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries
+# FPPFLAGS    pre-processing flags
+# AR          assembler
+# ARFLAGS     assembler flags
+# MK          make
+# USER_INC    complete list of include files
+# USER_LIB    complete list of libraries to pass to the linker
+# CC          C compiler used to compile conv for AGRIF
+# CFLAGS      compiler flags used with CC
+#
+# Note that:
+#  - unix variables "$..." are accpeted and will be evaluated before calling fcm.
+#  - fcm variables are starting with a % (and not a $)
+#
+#---------------------------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------
+# All NETCDF and HDF paths are empty as they are automatically defined through environment
+# variables by the load of modules
+#---------------------------------------------------------------------------------------------
+#---------------------------------------------------------------------------------------------
+#
+#
+%NCDF_INC            -I${NETCDF_INC}
+%NCDF_LIB            -L${NETCDF_LIB} -lnetcdff -lnetcdf -L${PHDF5_LIB_DIR} -lhdf5_hl -lhdf5
+%XIOS_INC            -I${XIOS_INC}
+%XIOS_LIB            -L${XIOS_LIB} -lxios -lstdc++
+%OASIS_INC           -I${OASIS_DIR}/include
+%OASIS_LIB           -L${OASIS_DIR}/lib -lpsmile.MPI1 -lmct -lmpeu -lscrip
+
+%CPP                 cpp
+%FC                  mpiifort -c -cpp
+%FCFLAGS             -march=core-avx2 -i4 -r8 -g -O0 -debug all -traceback -fp-model strict -ftrapuv -check all,noarg_temp_created -fpe-all0 -ftz -init=arrays,snan,huge
+%FFLAGS              %FCFLAGS
+%LD                  mpiifort
+%LDFLAGS             
+%FPPFLAGS            -P -traditional
+%AR                  ar
+%ARFLAGS             rs
+%MK                  gmake
+%USER_INC            %XIOS_INC %OASIS_INC %NCDF_INC
+%USER_LIB            %XIOS_LIB %OASIS_LIB %NCDF_LIB
+
+%CC                  mpiicc
+%CFLAGS              -O0
diff --git a/arch/MERCATOR/arch-X64_BELENOS_INTEL_OMPI_DEBUG.fcm b/arch/MERCATOR/arch-X64_BELENOS_INTEL_OMPI_DEBUG.fcm
new file mode 120000
index 0000000000000000000000000000000000000000..43aab11434e9921cdf8f32e0bead519434f2ece6
--- /dev/null
+++ b/arch/MERCATOR/arch-X64_BELENOS_INTEL_OMPI_DEBUG.fcm
@@ -0,0 +1 @@
+arch-X64_BELENOS_INTEL_IMPI_DEBUG.fcm
\ No newline at end of file
diff --git a/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg b/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg
index c8353d3ad6ea8628ec7d3748dc60578b8b9c2cd3..4b17c10299ec87c10936d1ed936390a783d0f3e3 100644
--- a/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg
+++ b/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg
@@ -117,6 +117,7 @@
 !-----------------------------------------------------------------------
 &namsbc_abl    !   Atmospheric Boundary Layer formulation           (ln_abl = T)
 !-----------------------------------------------------------------------
+   cn_dom           = 'dom_cfg_abl_L25Z10'
 /
 !-----------------------------------------------------------------------
 &namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T)
diff --git a/cfgs/SHARED/namelist_ref b/cfgs/SHARED/namelist_ref
index f146b16f520b78980d840f0ff104ac0b37d56a4a..28a67e4d54a5df21cc92367afbd896ee85a385ab 100644
--- a/cfgs/SHARED/namelist_ref
+++ b/cfgs/SHARED/namelist_ref
@@ -326,6 +326,7 @@
    nn_dyn_restore = 0         ! restoring option for dynamical ABL variables: = 0 no restoring
                               !                                               = 1 equatorial restoring
                               !                                               = 2 global restoring
+   rn_vfac       = 0.
    rn_ldyn_min   =  4.5       ! dynamics nudging magnitude inside the ABL [hour] (~3 rn_Dt)
    rn_ldyn_max   =  1.5       ! dynamics nudging magnitude above  the ABL [hour] (~1 rn_Dt)
    rn_ltra_min   =  4.5       ! tracers  nudging magnitude inside the ABL [hour] (~3 rn_Dt)
diff --git a/ext/AGRIF/AGRIF_FILES/modtypes.F90 b/ext/AGRIF/AGRIF_FILES/modtypes.F90
index 3651d7bc1df1da5ec3049a94083f7414b5eda0b0..d00cd3e8fa4b4ecdd8d04bb961593a51993a3292 100644
--- a/ext/AGRIF/AGRIF_FILES/modtypes.F90
+++ b/ext/AGRIF/AGRIF_FILES/modtypes.F90
@@ -378,7 +378,7 @@ end type Agrif_Variables_List
     integer               :: Agrif_Regridding = 10
     integer               :: Agrif_Minwidth
     real                  :: Agrif_Efficiency = 0.7
-    integer               :: MaxSearch = 10 
+    integer               :: MaxSearch = 3 
     real(kind=8), dimension(3)    :: Agrif_mind
 !> @}
 !> \name parameters for the interpolation of the child grids
diff --git a/mk/agrifpp.sh b/mk/agrifpp.sh
index 32f63a440bbc0e6c0588511b22856906183bb12c..308125ce8005c817aa0c3e0ad4223b5fa68e0f09 100755
--- a/mk/agrifpp.sh
+++ b/mk/agrifpp.sh
@@ -60,8 +60,8 @@ if [ "$MYFILE" == "agrif2model.f90" ];then
    if [ -d ${MYDIR}/${NEW_CONF}/WORK ]; then
       \cp ${MYDIR}/${NEW_CONF}/WORK/${MYFILE/.f90/.F90} ${MYDIR}/${NEW_CONF}/NEMOFILES/obj/$MYFILE
    else
-      \cp ${MYDIR}/${NEW_CONF}/src/${MYFILE/.f90/.F90} ${MYDIR}/${NEW_CONF}/NEMOFILES/obj/$MYFILE
+      \cp ${CONFIG_DIR}/${NEW_CONF}/WORK/${MYFILE/.f90/.F90} ${MYDIR}/${NEW_CONF}/NEMOFILES/obj/$MYFILE
    fi   
 else
 cd ${MYDIR}/${NEW_CONF}/NEMOFILES/ppsrc/nemo ; ${MYDIR}/${NEW_CONF}/NEMOFILES/conv ${MYDIR}/${NEW_CONF}/NEMOFILES/agrif_oce.in -rm -incdir ${MYDIR}/${NEW_CONF}/NEMOFILES/inc -comdirout ${MYDIR}/${NEW_CONF}/NEMOFILES/obj -convfile ${MYFILE} > /dev/null 
-fi
\ No newline at end of file
+fi
diff --git a/mk/bld.cfg b/mk/bld.cfg
index 1e596ae79a0f4df9e2917cd14a1825c9284b3280..67352be6cc9f0a0b9d8b098cbc89f15134996c13 100644
--- a/mk/bld.cfg
+++ b/mk/bld.cfg
@@ -14,7 +14,7 @@ search_src           1
 
 src::ioipsl               $MAIN_DIR/ext/IOIPSL/src
 src::agrif                $MAIN_DIR/ext/AGRIF/AGRIF_FILES
-src::nemo                 $CONFIG_DIR/$NEW_CONF/NEMOFILES/obj
+src::nemo                 $NEMO_TDIR/$NEW_CONF/NEMOFILES/obj
 src::ppr_1d               $MAIN_DIR/ext/PPR/src
 
 
@@ -41,7 +41,7 @@ bld::pp::ioipsl   1
 bld::pp::nemo     1
 bld::pp::agrif    1
 bld::pp::ppr_1d   1
-bld::tool::fppflags::nemo      %FPPFLAGS -I$CONFIG_DIR/$NEW_CONF/NEMOFILES/inc
+bld::tool::fppflags::nemo      %FPPFLAGS -I$NEMO_TDIR/$NEW_CONF/NEMOFILES/inc
 bld::tool::fppflags::ioipsl    %FPPFLAGS
 bld::tool::fppflags::agrif     %FPPFLAGS -include ${MAIN_DIR}/ext/AGRIF/nemo_mpi.h
 bld::tool::fppflags::ppr_1d    %FPPFLAGS
diff --git a/sette/BATCH_TEMPLATE/batch-X64_AA_INTEL_OMPI b/sette/BATCH_TEMPLATE/batch-X64_AA_INTEL_OMPI
new file mode 100644
index 0000000000000000000000000000000000000000..bdd075c6c25cfc14359dcc9eced3b355eed74968
--- /dev/null
+++ b/sette/BATCH_TEMPLATE/batch-X64_AA_INTEL_OMPI
@@ -0,0 +1,110 @@
+#!/usr/bin/env bash
+
+#SBATCH -J sette
+#SBATCH -o sette.%j.out
+#SBATCH -e sette.%j.err
+#SBATCH -N 1
+#SBATCH --time=0-00:20:00
+#SBATCH --account=frtomerc
+#SBATCH --partition=par
+#SBATCH --qos=np
+##SBATCH --ntasks=NPROCS
+#SBATCH --ntasks=TOTAL_NPROCS
+
+set -x
+
+# Test specific settings. Do not hand edit these lines; the fcm_job.sh script will set these
+# (via sed operating on this template job file). 
+#
+  echo " ";
+  OCORES=NPROCS
+  XCORES=NXIOPROCS
+  O_PER_NODE=32
+  X_PER_NODE=8
+  if [ $XCORES -le $X_PER_NODE ]; then X_PER_NODE=$XCORES; fi
+  if [ $OCORES -le $O_PER_NODE ]; then O_PER_NODE=$OCORES; fi
+  export SETTE_DIR=DEF_SETTE_DIR
+
+###############################################################
+#
+export MPIRUN="srun"
+#
+# load sette functions (only post_test_tidyup needed)
+#
+  . ${SETTE_DIR}/all_functions.sh
+###############################################################
+#
+# modules to load
+module purge &> /dev/null
+module use /home/ar5/modules
+module load prgenv/intel intel/2021.4.0 openmpi/4.1.1.1 hdf5-parallel/1.10.6 netcdf4-parallel/4.7.4 xios/trunk/r2320_intel-ompi
+module list
+
+# Don't remove neither change the following line
+# BODY
+#
+# Test specific settings. Do not hand edit these lines; the fcm_job.sh script will set these
+# (via sed operating on this template job file). Note that the number of compute nodes required
+# is also set by the fcm_job.sh on the PBS select header line above.
+#
+# These variables are needed by post_test_tidyup function in all_functions.sh
+#
+  export XIO_HOME=${XIOS_DIR}
+  export INPUT_DIR=DEF_INPUT_DIR
+  export CONFIG_DIR=DEF_CONFIG_DIR
+  export TOOLS_DIR=DEF_TOOLS_DIR
+  export NEMO_VALIDATION_DIR=DEF_NEMO_VALIDATION
+  export NEW_CONF=DEF_NEW_CONF
+  export CMP_NAM=DEF_CMP_NAM
+  export TEST_NAME=DEF_TEST_NAME
+  export EXE_DIR=DEF_EXE_DIR
+  ulimit -a
+  ulimit -s unlimited
+#
+# end of set up
+###############################################################
+#
+# change to the working directory 
+#
+  cd ${EXE_DIR}
+  echo Running on host `hostname`
+  echo Time is `date`
+  echo Directory is `pwd`
+  sed -i "s/one_file/multiple_file/" file_def_nemo-*.xml
+# 
+#  Run the parallel MPI executable 
+#
+  echo "Running time ${MPIRUN} ./nemo"
+#
+  if [ $XCORES -gt 0 ]; then
+#
+#  Run MPMD case
+#
+     #XIOS will run on a separate node so will run in parallel queue
+     if [ ! -f ./xios_server.exe ] && [ -f ${XIO_HOME}/bin/xios_server.exe ]; then
+        cp ${XIO_HOME}/bin/xios_server.exe .
+     fi
+     if [ ! -f ./xios_server.exe ]; then
+        echo "./xios_server.exe not found"
+        echo "run aborted"
+        exit
+     fi
+      cat > ./config.file <<-EOF
+0-$((OCORES-1)) ./nemo
+${OCORES}-$((TOTAL_NPROCS-1)) ./xios_server.exe
+EOF
+     $MPIRUN --ntasks=TOTAL_NPROCS --multi-prog config.file
+  else
+#
+# Run SPMD case
+#
+    time ./nemo
+  fi
+#
+
+#
+  post_test_tidyup
+
+# END_BODY
+# Don't remove neither change the previous line
+  exit
diff --git a/sette/BATCH_TEMPLATE/batch-X64_AA_INTEL_OMPI_DEBUG b/sette/BATCH_TEMPLATE/batch-X64_AA_INTEL_OMPI_DEBUG
new file mode 120000
index 0000000000000000000000000000000000000000..11d73e632c3fff46278fd7367d64fc4e216659e4
--- /dev/null
+++ b/sette/BATCH_TEMPLATE/batch-X64_AA_INTEL_OMPI_DEBUG
@@ -0,0 +1 @@
+batch-X64_AA_INTEL_OMPI
\ No newline at end of file
diff --git a/sette/BATCH_TEMPLATE/batch-X64_BELENOS_INTEL_IMPI b/sette/BATCH_TEMPLATE/batch-X64_BELENOS_INTEL_IMPI
index fb453c207cf8d8f2f4dce96e4125b9ed35820860..481b788c1d6ceee865d63bf757b61c42f2e367b2 100644
--- a/sette/BATCH_TEMPLATE/batch-X64_BELENOS_INTEL_IMPI
+++ b/sette/BATCH_TEMPLATE/batch-X64_BELENOS_INTEL_IMPI
@@ -12,11 +12,11 @@
 #SBATCH --time=01:00:00
 ##SBATCH --time=00:15:00
 
-#SBATCH -A smer
-##SBATCH -A cmems
+##SBATCH -A smer
+#SBATCH -A cmems
 
-#SBATCH --qos=normal
-##SBATCH --qos=coper
+##SBATCH --qos=normal
+#SBATCH --qos=coper
 
 
 # Test specific settings. Do not hand edit these lines; the fcm_job.sh script will set these
@@ -43,7 +43,6 @@
 module purge
 module use /home/ext/mr/smer/samsong/modules
 module load gcc/9.2.0 intel/2018.5.274 intelmpi/2018.5.274 phdf5/1.8.18 netcdf_par/4.7.1_V2 xios/trunk/rev2320-impi
-#module load xios-2.5_rev1903
 export XIO_HOME=${XIOS_DIR}
 
 # Don't remove neither change the following line
@@ -76,61 +75,6 @@ export XIO_HOME=${XIOS_DIR}
   echo Running on host `hostname`
   echo Time is `date`
   echo Directory is `pwd`
-# 
-#  Run the parallel MPI executable 
-#
-
-  # Comm/Fabric
-  # -----------
-  export DAPL_ACK_RETRY=7
-  export DAPL_ACK_TIMER=20
-  export DAPL_IB_SL=0
-  export DAPL_UCM_CQ_SIZE=8192
-  export DAPL_UCM_DREQ_RETRY=4
-  export DAPL_UCM_QP_SIZE=8192
-  export DAPL_UCM_REP_TIME=8000
-  export DAPL_UCM_RTU_TIME=8000
-  export DAPL_UCM_WAIT_TIME=10000
-  export I_MPI_CHECK_DAPL_PROVIDER_COMPATIBILITY=0
-  export I_MPI_CHECK_DAPL_PROVIDER_MISMATCH=none
-  export I_MPI_DAPL_RDMA_MIXED=enable
-  export I_MPI_DAPL_SCALABLE_PROGRESS=1
-  export I_MPI_DAPL_TRANSLATION_CACHE=1
-  export I_MPI_DAPL_UD_DIRECT_COPY_THRESHOLD=65536
-  export I_MPI_DAPL_UD=on
-  export I_MPI_FABRICS=shm:dapl
-  export I_MPI_DAPL_PROVIDER=ofa-v2-mlx5_0-1u
-  export I_MPI_FALLBACK=disable
-  export I_MPI_FALLBACK_DEVICE=disable
-  export I_MPI_DYNAMIC_CONNECTION=1
-  export I_MPI_FAST_COLLECTIVES=1
-  export I_MPI_LARGE_SCALE_THRESHOLD=8192
-  # File system
-  # -----------
-  export I_MPI_EXTRA_FILESYSTEM_LIST=lustre
-  export I_MPI_EXTRA_FILESYSTEM=on
-  # Slurm
-  # -----
-  export I_MPI_HYDRA_BOOTSTRAP=slurm
-  export I_MPI_SLURM_EXT=0
-  # Force kill job
-  # --------------
-  export I_MPI_JOB_SIGNAL_PROPAGATION=on
-  export I_MPI_JOB_ABORT_SIGNAL=9
-  # Extra
-  # -----
-  export I_MPI_LIBRARY_KIND=release_mt
-  export EC_MPI_ATEXIT=0
-  export EC_PROFILE_HEAP=0
-  # Process placement (cyclic)
-  # --------------------------
-  export I_MPI_JOB_RESPECT_PROCESS_PLACEMENT=off
-  export I_MPI_PERHOST=1
-  # Process pinning
-  # ---------------
-  export I_MPI_PIN=enable
-  export I_MPI_PIN_PROCESSOR_LIST="allcores:map=scatter" # map=spread
-
   if [ $XCORES -gt 0 ]; then
 #
 #  Run MPMD case
diff --git a/sette/BATCH_TEMPLATE/batch-mpmd-X64_AA_INTEL_OMPI b/sette/BATCH_TEMPLATE/batch-mpmd-X64_AA_INTEL_OMPI
new file mode 120000
index 0000000000000000000000000000000000000000..11d73e632c3fff46278fd7367d64fc4e216659e4
--- /dev/null
+++ b/sette/BATCH_TEMPLATE/batch-mpmd-X64_AA_INTEL_OMPI
@@ -0,0 +1 @@
+batch-X64_AA_INTEL_OMPI
\ No newline at end of file
diff --git a/sette/BATCH_TEMPLATE/batch-mpmd-X64_AA_INTEL_OMPI_DEBUG b/sette/BATCH_TEMPLATE/batch-mpmd-X64_AA_INTEL_OMPI_DEBUG
new file mode 120000
index 0000000000000000000000000000000000000000..178a7f6eabe69471382e8fb0df6d9c58be6d6fd3
--- /dev/null
+++ b/sette/BATCH_TEMPLATE/batch-mpmd-X64_AA_INTEL_OMPI_DEBUG
@@ -0,0 +1 @@
+batch-X64_AA_INTEL_OMPI_DEBUG
\ No newline at end of file
diff --git a/sette/all_functions.sh b/sette/all_functions.sh
index d9f87067d7baef11909247a459e203179bcc5348..c86feff15d2a4ba3894a70483f283d7d6a45cc6e 100755
--- a/sette/all_functions.sh
+++ b/sette/all_functions.sh
@@ -153,12 +153,12 @@ clean_config() {
       echo '-------------------------------------------------------------------------------'
       echo '                         CLEANING CONFIGURATION                                '
       echo ''
-      echo "./makenemo -n $lCFG -a/-r $lREF clean"
+      echo "./makenemo -n $lCFG -a/-r $lREF -t ${CMP_DIR:-${CONFIG_DIR0}} clean"
       echo ''
       if [ ${lTYP} == 'tests' ]; then
-         ./makenemo -n $lCFG -a $lREF clean
+         ./makenemo -n $lCFG -t ${CMP_DIR:-${CONFIG_DIR0}} -a $lREF clean
       elif [ ${lTYP} == 'cfgs' ]; then
-         ./makenemo -n $lCFG -r $lREF clean
+         ./makenemo -n $lCFG -t ${CMP_DIR:-${CONFIG_DIR0}} -r $lREF clean
       else
          echo 'ERROR in the cleaning process'; exit 42
       fi
diff --git a/sette/input_ORCA2_ICE_PISCES.cfg b/sette/input_ORCA2_ICE_PISCES.cfg
index 33408e69681d5afcf5d866425d24609f1145c717..55d14cd32c9a52a95cf4b6a56ff716f348683973 100644
--- a/sette/input_ORCA2_ICE_PISCES.cfg
+++ b/sette/input_ORCA2_ICE_PISCES.cfg
@@ -1 +1,2 @@
 ORCA2_ICE_v4.2.0.tar.gz ORCA2_ICE_v4.2.0
+ORCA2_ABL_v4.2.0.tar.gz ORCA2_ABL_v4.2.0
diff --git a/sette/prepare_exe_dir.sh b/sette/prepare_exe_dir.sh
index 1be9693fb337178140688848929f353fe14e1b6c..5e6b1a01153ad605471529ae4e740b58990ff551 100755
--- a/sette/prepare_exe_dir.sh
+++ b/sette/prepare_exe_dir.sh
@@ -69,7 +69,6 @@ set -o posix
 if [ -z "${CUSTOM_DIR}" ]; then
   export EXE_DIR=${CONFIG_DIR}/${NEW_CONF}/${TEST_NAME}
 else
-  NEMO_REV=$( git rev-parse --short HEAD 2> /dev/null )
   export EXE_DIR=${CUSTOM_DIR}/${SETTE_SUB_VAL}_${NEMO_REV}/${NEW_CONF}/${TEST_NAME}
 fi
 mkdir -p ${EXE_DIR}
@@ -86,6 +85,7 @@ echo "requested by the command          : "$cmd $cmdargs          >> ./sette_con
 echo "on branch                         : "$SETTE_THIS_BRANCH     >> ./sette_config
 printf "%-33s : %s\n" USING_TIMING $USING_TIMING                  >> ./sette_config
 printf "%-33s : %s\n" USING_ICEBERGS $USING_ICEBERGS              >> ./sette_config
+printf "%-33s : %s\n" USING_ABL $USING_ABL                        >> ./sette_config
 printf "%-33s : %s\n" USING_EXTRA_HALO $USING_EXTRA_HALO          >> ./sette_config
 printf "%-33s : %s\n" USING_TILING $USING_TILING                  >> ./sette_config
 printf "%-33s : %s\n" USING_COLLECTIVES $USING_COLLECTIVES        >> ./sette_config
diff --git a/sette/sette.sh b/sette/sette.sh
index 4b816f34dea2998f181975f2c3c70e614a6a3be7..da7e291452053a16334fa77cc5e93e91362708cb 100755
--- a/sette/sette.sh
+++ b/sette/sette.sh
@@ -12,6 +12,7 @@ NO_REPORT=0
 #
 export USING_TIMING='yes'      # Default: yes => set ln_timing=.true.   ; use -T to disable
 export USING_ICEBERGS='yes'    # Default: yes => set ln_icebergs=.true. ; use -i to disable
+export USING_ABL='no'          # Default: no  => set ln_abl=.false.     ; use -a to set ln_abl=.true.
 export USING_EXTRA_HALO='yes'  # Default: yes => set nn_hls=2           ; use -e to set nn_hls=1
 export USING_COLLECTIVES='yes' # Default: yes => set nn_comm=2          ; use -C to set nn_comm=1
 export USING_NOGATHER='yes'    # Default: yes => set ln_nnogather=.true.; use -N to set ln_nnogather=.false.
@@ -64,7 +65,7 @@ fi
 
 # Parse command-line arguments
 if [ $# -gt 0 ]; then
-  while getopts n:x:v:g:cdrshTqQteiACFNXu option; do 
+  while getopts n:x:v:g:cdrshTqQteiACFNXua option; do 
      case $option in
         c) export SETTE_CLEAN_CONFIGS='yes'
            export SETTE_SYNC_CONFIGS='yes'
@@ -112,6 +113,9 @@ if [ $# -gt 0 ]; then
         i) export USING_ICEBERGS='no'
            echo "-i: ln_icebergs will be set to false"
            echo "";;
+        a) export USING_ABL='yes'
+           echo "-a: ln_abl will be set to true"
+           echo "";;
         C) export USING_COLLECTIVES='no'
            echo "-C: nn_comm will be set to 1"
            echo "";;
@@ -142,6 +146,7 @@ if [ $# -gt 0 ]; then
                echo '-t set ln_tile false in all tests that support it (default: true)'
                echo '-e set nn_hls=1 (default: nn_hls=2)'
                echo '-i set ln_icebergs false (default: true)'
+               echo '-a set ln_abl true (default: false)'
                echo '-C set nn_comm=1 (default: nn_comm=2 ==> use MPI3 collective comms)'
                echo '-N set ln_nnogather false for ORCA2 configurations (default: true)'
                echo '-q to remove the key_qco key (default: added)'
@@ -262,6 +267,7 @@ echo "requested by the command          : "$cmd $cmdargs
 echo "on branch                         : "$SETTE_THIS_BRANCH
 printf "%-33s : %s\n" USING_TIMING $USING_TIMING
 printf "%-33s : %s\n" USING_ICEBERGS $USING_ICEBERGS
+printf "%-33s : %s\n" USING_ABL $USING_ABL
 printf "%-33s : %s\n" USING_EXTRA_HALO $USING_EXTRA_HALO
 printf "%-33s : %s\n" USING_TILING $USING_TILING
 printf "%-33s : %s\n" USING_COLLECTIVES $USING_COLLECTIVES
diff --git a/sette/sette_reference-configurations.sh b/sette/sette_reference-configurations.sh
index 9c10991568137f3cab0f78a4e5b56bedba8cfe57..b79c4d79fb89accf7d09a6f8e9d1b62f6e7055f0 100755
--- a/sette/sette_reference-configurations.sh
+++ b/sette/sette_reference-configurations.sh
@@ -110,8 +110,12 @@ fi
 # Directory to run the tests
 CONFIG_DIR0=${MAIN_DIR}/cfgs
 TOOLS_DIR=${MAIN_DIR}/tools
-
+if [ -n "${CUSTOM_DIR}" ]; then
+  NEMO_REV=$( git rev-parse --short HEAD 2> /dev/null )
+  CMP_DIR=${CUSTOM_DIR}/${SETTE_SUB_VAL}_${NEMO_REV}
+fi
 CMP_NAM=${1:-$COMPILER}
+
 # Copy job_batch_COMPILER file for specific compiler into job_batch_template
 cd ${SETTE_DIR}
 cp BATCH_TEMPLATE/${JOB_PREFIX}-${COMPILER} job_batch_template || exit
@@ -149,7 +153,7 @@ if [ ${config} == "GYRE_PISCES" ] ;  then
     clean_config GYRE_PISCES ${SETTE_CONFIG} 'cfgs'
     #
     # GYRE uses linssh so remove key_qco if added by default
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r GYRE_PISCES -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r GYRE_PISCES -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "GYRE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests for GYRE_PISCES
@@ -295,7 +299,7 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] ;  then
     sync_config  ORCA2_ICE_PISCES ${SETTE_CONFIG} 'cfgs'
     clean_config ORCA2_ICE_PISCES ${SETTE_CONFIG} 'cfgs'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_ICE_PISCES -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_ICE_PISCES -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests for ORCA2_ICE_PISCES
@@ -321,6 +325,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
     set_namelist namelist_cfg ln_cdgw .false.
     set_namelist namelist_cfg ln_sdw  .true.
     set_namelist namelist_cfg ln_stcor .true.
+    if [ ${USING_ABL} == "yes" ]; then
+      set_namelist namelist_cfg nn_date0 20130101
+      set_namelist namelist_cfg ln_blk .false.
+      set_namelist namelist_cfg ln_abl .true.
+      set_namelist namelist_cfg ln_tair_pot .true.
+      sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
+              /sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg 
+      sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
+              /sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg 
+      sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
+              /sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg 
+      sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
+              /sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg 
+    fi
     #
     set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
     set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
@@ -356,6 +374,7 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
     set_namelist namelist_cfg nn_itend ${ITEND}
     set_namelist namelist_cfg nn_stock $(( ${ITEND} / 2 ))
     set_namelist namelist_cfg ln_rstart .true.
+    set_namelist namelist_cfg ln_rstart_abl .true.
     set_namelist namelist_cfg nn_rstctl 2
     set_namelist namelist_cfg jpni 4
     set_namelist namelist_cfg jpnj 8
@@ -366,6 +385,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
     set_namelist namelist_cfg ln_cdgw .false.
     set_namelist namelist_cfg ln_sdw  .true.
     set_namelist namelist_cfg ln_stcor .true.
+    if [ ${USING_ABL} == "yes" ]; then
+        set_namelist namelist_cfg nn_date0 20130101
+        set_namelist namelist_cfg ln_blk .false.
+        set_namelist namelist_cfg ln_abl .true.
+        set_namelist namelist_cfg ln_tair_pot .true.
+        sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
+                /sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg 
+        sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
+                /sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg 
+        sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
+                /sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg 
+        sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
+                /sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg 
+    fi
     #
     set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
     set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
@@ -381,6 +414,7 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
     set_namelist namelist_cfg cn_icbrst_in \"O2L3P_LONG_${ITRST}_restart_icb\"
     set_namelist namelist_top_cfg cn_trcrst_in \"O2L3P_LONG_${ITRST}_restart_trc\"
     set_namelist namelist_ice_cfg cn_icerst_in \"O2L3P_LONG_${ITRST}_restart_ice\"
+    set_namelist namelist_cfg cn_ablrst_in \"O2L3P_LONG_${ITRST}_restart_abl\"
     set_namelist namelist_top_cfg ln_trcbc  .false.
     # put ln_ironsed, ln_hydrofe to false
     # if not you need input files, and for tests is not necessary
@@ -396,6 +430,9 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
         ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_${L_NPROC}.nc .
         ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_trc_${L_NPROC}.nc .
         ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_ice_${L_NPROC}.nc .
+        if [ ${USING_ABL} == "yes" ]; then
+            ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_abl_${L_NPROC}.nc .
+        fi
         if [ ${USING_ICEBERGS} == "yes" ]
             then
              ln -sf ../LONG/O2L3P_LONG_${ITRST}_restart_icb_${L_NPROC}.nc O2L3P_LONG_${ITRST}_restart_icb_${L_NPROC}.nc
@@ -433,7 +470,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_REPRO} == "1" ] ;  then
     set_namelist namelist_cfg ln_cdgw .false.
     set_namelist namelist_cfg ln_sdw  .true.
     set_namelist namelist_cfg ln_stcor .true.
-
+    if [ ${USING_ABL} == "yes" ]; then
+        set_namelist namelist_cfg nn_date0 20130101
+        set_namelist namelist_cfg ln_blk .false.
+        set_namelist namelist_cfg ln_abl .true.
+        set_namelist namelist_cfg ln_tair_pot .true.
+        sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
+                /sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg 
+        sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
+                /sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg 
+        sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
+                /sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg 
+        sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
+                /sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg 
+    fi
     set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
     set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
     set_namelist_opt namelist_cfg nn_comm ${USING_COLLECTIVES} 2 1
@@ -478,6 +528,20 @@ if [ ${config} == "ORCA2_ICE_PISCES" ] && [ ${DO_REPRO} == "1" ] ;  then
     set_namelist namelist_cfg ln_cdgw .false.
     set_namelist namelist_cfg ln_sdw  .true.
     set_namelist namelist_cfg ln_stcor .true.
+    if [ ${USING_ABL} == "yes" ]; then
+        set_namelist namelist_cfg nn_date0 20130101
+        set_namelist namelist_cfg ln_blk .false.
+        set_namelist namelist_cfg ln_abl .true.
+        set_namelist namelist_cfg ln_tair_pot .true.
+        sed -i "/sn_wndi/s/u_10.15JUNE2009_fill/uwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndi/s/ 6./24./; /sn_wndi/s/U_10_MOD/uwnd/; \
+                /sn_wndi/s/true/false/; /sn_wndi/s/yearly/monthly/; /sn_wndi/s/weights_core2_orca2_bicub//" namelist_cfg 
+        sed -i "/sn_wndj/s/v_10.15JUNE2009_fill/vwnd_ERAI_L25Z10_ORCA2_ana1d/; /sn_wndj/s/ 6./24./; /sn_wndj/s/V_10_MOD/vwnd/; \
+                /sn_wndj/s/true/false/; /sn_wndj/s/yearly/monthly/; /sn_wndj/s/weights_core2_orca2_bicub//" namelist_cfg 
+        sed -i "/sn_tair/s/t_10.15JUNE2009_fill/tair_ERAI_L25Z10_ORCA2_ana1d/; /sn_tair/s/ 6./24./; /sn_tair/s/T_10_MOD/tair/; \
+                /sn_tair/s/true/false/; /sn_tair/s/yearly/monthly/; /sn_tair/s/weights_core2_orca2_bilin//" namelist_cfg 
+        sed -i "/sn_humi/s/q_10.15JUNE2009_fill/humi_ERAI_L25Z10_ORCA2_ana1d/; /sn_humi/s/ 6./24./; /sn_humi/s/Q_10_MOD/humi/; \
+                /sn_humi/s/true/false/; /sn_humi/s/yearly/monthly/; /sn_humi/s/weights_core2_orca2_bilin//" namelist_cfg 
+    fi
 
     set_namelist_opt namelist_cfg ln_icebergs ${USING_ICEBERGS} .true. .false.
     set_namelist_opt namelist_cfg nn_hls ${USING_EXTRA_HALO} 2 1
@@ -523,7 +587,7 @@ if [ ${config} == "ORCA2_OFF_PISCES" ] ;  then
     clean_config ${SETTE_CONFIG} ORCA2_OFF_PISCES_ST 'cfgs'
     #
     # ORCA2_OFF_PISCES uses linssh so remove key_qco if added by default
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_OFF_PISCES -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_OFF_PISCES -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "ORCA2_OFF_PISCES" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests for ORCA2_OFF_PISCES
@@ -699,7 +763,7 @@ if [ ${config} == "AMM12" ] ;  then
     sync_config  AMM12 ${SETTE_CONFIG} 'cfgs'
     clean_config AMM12 ${SETTE_CONFIG} 'cfgs'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AMM12 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AMM12 -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "AMM12" ] && [ ${DO_RESTART} == "1" ] ;  then
     ## Restartability tests for AMM12
@@ -834,7 +898,7 @@ if [ ${config} == "SAS" ] ;  then
     clean_config ORCA2_SAS_ICE ${SETTE_CONFIG} 'cfgs'
     #
     # ORCA2_SAS_ICE uses linssh so remove key_qco if added by default
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_SAS_ICE -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_SAS_ICE -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "SAS" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests
@@ -981,7 +1045,7 @@ if [ ${config} == "ORCA2_ICE_OBS" ] ;  then
     sync_config  ORCA2_ICE_PISCES ${SETTE_CONFIG} 'cfgs'
     clean_config ORCA2_ICE_PISCES ${SETTE_CONFIG} 'cfgs'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_ICE_PISCES -d "OCE ICE"  -j ${CMPL_CORES} add_key "key_asminc ${ADD_KEYS}" del_key "key_top ${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r ORCA2_ICE_PISCES -d "OCE ICE" -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "key_asminc ${ADD_KEYS}" del_key "key_top ${DEL_KEYS}"
 fi
 if [ ${config} == "ORCA2_ICE_OBS" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Reproducibility tests
@@ -1107,7 +1171,7 @@ if [ ${config} == "AGRIF" ] ;  then
     #
     # AGRIF_DEMO does not yet support nn_hls=2 => key_loop_fusion can not be used
 #    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AGRIF_DEMO -j ${CMPL_CORES} add_key "${ADD_KEYS/key_loop_fusion}" del_key "${DEL_KEYS}"
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AGRIF_DEMO -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AGRIF_DEMO -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "AGRIF" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests
@@ -1423,7 +1487,7 @@ if [ ${config} == "AGRIF" ] && [ ${DO_CORRUPT} == "1" ] ;  then
     clean_config AGRIF_DEMO ${SETTE_CONFIG} 'cfgs'
     #
     # AGRIF_DEMO does not yet support nn_hls=2 => key_loop_fusion can not be used
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AGRIF_DEMO -j ${CMPL_CORES} add_key "${ADD_KEYS/key_loop_fusion}" del_key "key_agrif ${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r AGRIF_DEMO -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_loop_fusion}" del_key "key_agrif ${DEL_KEYS}"
     cd ${SETTE_DIR}
     . ./prepare_exe_dir.sh
     set_valid_dir
@@ -1471,7 +1535,7 @@ if [ ${config} == "WED025" ] ;  then
     clean_config WED025 ${SETTE_CONFIG} 'cfgs'
     #
     # WED025 uses ln_hpg_isf so remove key_qco if added by default
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r WED025 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -r WED025 -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "WED025" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests
diff --git a/sette/sette_test-cases.sh b/sette/sette_test-cases.sh
index 40073dca722168ab18dd7cf8fdc81ad7dad7b03c..629fa0def4c953b4e9b77140b27489f0813dcd65 100755
--- a/sette/sette_test-cases.sh
+++ b/sette/sette_test-cases.sh
@@ -111,6 +111,10 @@ fi
 CONFIG_DIR0=${MAIN_DIR}/cfgs
 TOOLS_DIR=${MAIN_DIR}/tools
 
+if [ -n "${CUSTOM_DIR}" ]; then
+  NEMO_REV=$( git rev-parse --short HEAD 2> /dev/null )
+  CMP_DIR=${CUSTOM_DIR}/${SETTE_SUB_VAL}_${NEMO_REV}
+fi
 CMP_NAM=${1:-$COMPILER}
 # Copy job_batch_COMPILER file for specific compiler into job_batch_template
 cd ${SETTE_DIR}
@@ -149,7 +153,7 @@ if [ ${config} == "OVERFLOW" ] ;  then
     #
     sync_config  OVERFLOW ${SETTE_CONFIG} 'tests'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a OVERFLOW -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a OVERFLOW -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "OVERFLOW" ] && [ ${DO_RESTART} == "1" ] ;  then
     ## Restartability tests for OVERFLOW
@@ -266,7 +270,7 @@ if [ ${config} == "LOCK_EXCHANGE" ] ;  then
     #
     sync_config  LOCK_EXCHANGE ${SETTE_CONFIG} 'tests'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a LOCK_EXCHANGE -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a LOCK_EXCHANGE -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "LOCK_EXCHANGE" ] && [ ${DO_RESTART} == "1" ] ;  then
     ## Restartability tests for LOCK_EXCHANGE
@@ -385,7 +389,7 @@ if [ ${config} == "VORTEX" ] ;  then
     #
     sync_config  VORTEX ${SETTE_CONFIG} 'tests'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a VORTEX -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a VORTEX -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "VORTEX" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests for VORTEX
@@ -580,7 +584,7 @@ if [ ${config} == "ICE_AGRIF" ] ;  then
     sync_config  ICE_AGRIF ${SETTE_CONFIG} 'tests'
     #
     # ICE_AGRIF uses linssh so remove key_qco if added by default
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ICE_AGRIF -j ${CMPL_CORES}  add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ICE_AGRIF -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES}  add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "ICE_AGRIF" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests for ICE_AGRIF
@@ -778,7 +782,7 @@ if [ ${config} == "ISOMIP+" ] ;  then
     sync_config  ISOMIP+ ${SETTE_CONFIG} 'tests'
     #
     # ISOMIP+ uses ln_hpg_isf so remove key_qco if added by default
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ISOMIP+ -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a ISOMIP+ -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES} add_key "${ADD_KEYS/key_qco/}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "ISOMIP+" ] && [ ${DO_RESTART} == "1" ] ;  then
 ## Restartability tests
@@ -922,7 +926,7 @@ if [ ${config} == "SWG" ] && [ ${USING_QCO} == "yes" ] ;  then
     #
     sync_config  SWG ${SETTE_CONFIG} 'tests'
     #
-    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a SWG -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
+    . ./makenemo -m ${CMP_NAM} -n ${SETTE_CONFIG} -a SWG -t ${CMP_DIR:-${CONFIG_DIR0}} -k 0 -j ${CMPL_CORES}  add_key "${ADD_KEYS}" del_key "${DEL_KEYS}"
 fi
 if [ ${config} == "SWG" ] && [ ${DO_RESTART} == "1" ] && [ ${USING_QCO} == "yes" ] ;  then
 ## Restartability tests for SWG
diff --git a/src/ABL/ablrst.F90 b/src/ABL/ablrst.F90
index 29445c5985be1e0fa186dc278f3aa465ca29da76..925234b3e73663d1aeeba26e750649f20f3ab062 100644
--- a/src/ABL/ablrst.F90
+++ b/src/ABL/ablrst.F90
@@ -200,15 +200,15 @@ CONTAINS
          &                   '   control of time parameter  nrstdt' )
 
       ! --- mandatory fields --- ! 
-      CALL iom_get( numrar, jpdom_auto,   'u_abl',   u_abl(:,:,:,nt_n      ), cd_type = 'U', psgn = -1._wp )
-      CALL iom_get( numrar, jpdom_auto,   'v_abl',   v_abl(:,:,:,nt_n      ), cd_type = 'V', psgn = -1._wp )
-      CALL iom_get( numrar, jpdom_auto,   't_abl',  tq_abl(:,:,:,nt_n,jp_ta) )
+      CALL iom_get( numrar, jpdom_auto,   'u_abl',   u_abl(:,:,:,nt_n      ), cd_type = 'T', psgn = -1._wp )
+      CALL iom_get( numrar, jpdom_auto,   'v_abl',   v_abl(:,:,:,nt_n      ), cd_type = 'T', psgn = -1._wp )
+      CALL iom_get( numrar, jpdom_auto,   't_abl',  tq_abl(:,:,:,nt_n,jp_ta), kfill = jpfillcopy )
       CALL iom_get( numrar, jpdom_auto,   'q_abl',  tq_abl(:,:,:,nt_n,jp_qa) )
       CALL iom_get( numrar, jpdom_auto, 'tke_abl', tke_abl(:,:,:,nt_n      ) )
-      CALL iom_get( numrar, jpdom_auto, 'avm_abl', avm_abl(:,:,:           ) )
+      CALL iom_get( numrar, jpdom_auto, 'avm_abl', avm_abl(:,:,:           ), kfill = jpfillcopy )
       CALL iom_get( numrar, jpdom_auto, 'avt_abl', avt_abl(:,:,:           ) )
-      CALL iom_get( numrar, jpdom_auto,'mxld_abl',mxld_abl(:,:,:           ) )
-      CALL iom_get( numrar, jpdom_auto,    'pblh',    pblh(:,:             ) )
+      CALL iom_get( numrar, jpdom_auto,'mxld_abl',mxld_abl(:,:,:           ), kfill = jpfillcopy )
+      CALL iom_get( numrar, jpdom_auto,    'pblh',    pblh(:,:             ), kfill = jpfillcopy )
 
       IF(.NOT.lrxios) CALL iom_delay_rst( 'READ', 'ABL', numrar )   ! read only abl delayed global communication variables
 
diff --git a/src/ABL/sbcabl.F90 b/src/ABL/sbcabl.F90
index cd771f978c5dc566915c866f214bbda24edda2d4..d0eac5483d1a9caeda3b34add824131d3b7d6b2e 100644
--- a/src/ABL/sbcabl.F90
+++ b/src/ABL/sbcabl.F90
@@ -272,6 +272,11 @@ CONTAINS
       nt_n = 1; nt_a = 2
 
       ! initialize ABL from data or restart
+      u_abl  (:,:,:,nt_a     ) = 0._wp
+      v_abl  (:,:,:,nt_a     ) = 0._wp
+      tq_abl (:,:,:,nt_a,:   ) = 0._wp
+      tke_abl(:,:,:,nt_a     ) = 0._wp
+
       IF( ln_rstart_abl ) THEN
          CALL abl_rst_read
       ELSE
@@ -281,16 +286,10 @@ CONTAINS
           v_abl(:,:,:,nt_n      ) = sf(jp_wndj)%fnow(:,:,:)
          tq_abl(:,:,:,nt_n,jp_ta) = sf(jp_tair)%fnow(:,:,:)
          tq_abl(:,:,:,nt_n,jp_qa) = sf(jp_humi)%fnow(:,:,:)
-
          tke_abl(:,:,:,nt_n     ) = tke_min
          avm_abl(:,:,:          ) = avm_bak
          avt_abl(:,:,:          ) = avt_bak
          pblh   (:,:            ) = ghw_abl( 3 )  !<-- assume that the pbl contains 3 grid points
-         u_abl  (:,:,:,nt_a     ) = 0._wp
-         v_abl  (:,:,:,nt_a     ) = 0._wp
-         tq_abl (:,:,:,nt_a,:   ) = 0._wp
-         tke_abl(:,:,:,nt_a     ) = 0._wp
-
          mxlm_abl(:,:,:         ) = mxl_min
          mxld_abl(:,:,:         ) = mxl_min
       ENDIF
diff --git a/src/NST/agrif_ice_interp.F90 b/src/NST/agrif_ice_interp.F90
index e51c386844126ab8bf05acf41d9028d62d503124..5952bc8425cf105c426cd4fb403cfe0cf5802374 100644
--- a/src/NST/agrif_ice_interp.F90
+++ b/src/NST/agrif_ice_interp.F90
@@ -26,13 +26,17 @@ MODULE agrif_ice_interp
    USE phycst , ONLY: rt0
    USE icevar
    USE sbc_ice, ONLY : tn_ice
-   USE lbclnk  
+   USE lbclnk
+   USE iceistate, ONLY : rsshadj
+   USE traqsr, ONLY : ln_traqsr
+   USE lib_mpp  
  
    IMPLICIT NONE
    PRIVATE
 
-   PUBLIC   agrif_interp_ice   ! called by agrif_user.F90
-   PUBLIC   agrif_istate_ice   ! called by icerst.F90
+   PUBLIC   agrif_interp_ice     ! called by agrif_user.F90
+   PUBLIC   agrif_istate_ice     ! called by icerst.F90
+   PUBLIC   agrif_istate_icevol  ! called by restart.F90
 
    !!----------------------------------------------------------------------
    !! NEMO/NST 4.0 , NEMO Consortium (2018)
@@ -57,6 +61,7 @@ CONTAINS
       ! Set a_i, v_i, v_s, sv_i, oa_i, a_ip, v_ip, t_su, e_s, e_i:
       Agrif_SpecialValue    = -9999.
       Agrif_UseSpecialValue = .TRUE.
+      CALL Agrif_Set_MaskMaxSearch(10)
       CALL Agrif_init_variable(tra_iceini_id,procname=interp_tra_ice)
       !
       CALL lbc_lnk( 'agrif_istate_ice', a_i,'T',1._wp,  v_i,'T',1._wp, &
@@ -76,6 +81,7 @@ CONTAINS
       CALL Agrif_init_variable(v_iceini_id  ,procname=interp_v_ice)
       use_sign_north = .FALSE.
       Agrif_UseSpecialValue = .FALSE.
+      CALL Agrif_Set_MaskMaxSearch(3)
       ! 
       CALL lbc_lnk( 'agrif_istate_ice', u_ice, 'U', -1._wp, v_ice, 'V', -1._wp )
       !
@@ -83,6 +89,60 @@ CONTAINS
       !
    END SUBROUTINE agrif_istate_ice
 
+
+   SUBROUTINE agrif_istate_icevol( Kbb, Kmm, Kaa )
+      !!-----------------------------------------------------------------------
+      !!           *** ROUTINE agrif_istate_icevol  ***
+      !!
+      !!  ** Method  : Set initial ssh over child grids from the ice volume
+      !!               computed over the parent grid.
+      !!               This routine is call only if nn_ice/=2 (no ice), over
+      !!               the child grid, hence it needs to know nn_ice
+      !!
+      !!-----------------------------------------------------------------------
+      INTEGER, INTENT(in) ::   Kbb, Kmm, Kaa   ! ocean time level indices
+      !
+      INTEGER ::   ios
+      !!
+      NAMELIST/namsbc/ nn_fsbc  ,                                                    &
+         &             ln_usr   , ln_flx   , ln_blk   , ln_abl,                      &
+         &             ln_cpl   , ln_mixcpl, nn_components,                          &
+         &             nn_ice   , ln_ice_embd,                                       &
+         &             ln_traqsr, ln_dm2dc ,                                         &
+         &             ln_rnf   , nn_fwb     , ln_ssr   , ln_apr_dyn,                &
+         &             ln_wave  , nn_lsm
+      !!----------------------------------------------------------------------
+      !
+      IF ( Agrif_Root() ) RETURN
+      !
+      !                       !**  read Surface Module namelist
+      !                       (we only need nn_ice actually which is unknown at the 
+      !                        time this subroutine is called)
+      READ  ( numnam_ref, namsbc, IOSTAT = ios, ERR = 901)
+901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsbc in reference namelist' )
+      READ  ( numnam_cfg, namsbc, IOSTAT = ios, ERR = 902 )
+902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc in configuration namelist' )
+      !
+      IF ( (nn_ice/=2).AND.((Agrif_Parent(nn_ice)==2).AND.           &
+                  &   (.NOT.(Agrif_Parent(ln_rstart)                 & 
+                  &     .OR.(Agrif_Parent(nn_iceini_file)==2))).AND. &
+                  &   (.NOT.Agrif_Parent(ln_ice_embd))               &
+                  &  )) THEN
+
+         IF(lwp) WRITE(numout,*) ' ' 
+         IF(lwp) WRITE(numout,*) 'Agrif_istate_icevol : Add an ssh increment coming from the parent grid sea-ice volume'
+         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~'
+         IF(lwp) WRITE(numout,*) ' '
+
+         WHERE( ssmask(:,:) == 1._wp )
+             ssh(:,:,Kmm) = ssh(:,:,Kmm) - Agrif_Parent(rsshadj)
+             ssh(:,:,Kbb) = ssh(:,:,Kbb) - Agrif_Parent(rsshadj) 
+         ENDWHERE
+      ENDIF
+      !
+   END SUBROUTINE agrif_istate_icevol
+
+
    SUBROUTINE agrif_interp_ice( cd_type, kiter, kitermax )
       !!-----------------------------------------------------------------------
       !!                 *** ROUTINE agrif_interp_ice  ***
diff --git a/src/NST/agrif_oce_interp.F90 b/src/NST/agrif_oce_interp.F90
index 6649f60b403db34975ffa60884974cbf69b2b8ca..d98bbe1d50045fa66db342b76ea0e4258cc51f5a 100644
--- a/src/NST/agrif_oce_interp.F90
+++ b/src/NST/agrif_oce_interp.F90
@@ -87,6 +87,7 @@ CONTAINS
       Agrif_SpecialValue    = 0.0_wp
       Agrif_UseSpecialValue = .TRUE.
       l_vremap              = ln_vert_remap
+      CALL Agrif_Set_MaskMaxSearch(10)
 
       ts(:,:,:,:,Kbb) = 0.0_wp
       uu(:,:,:,Kbb)   = 0.0_wp
@@ -106,6 +107,7 @@ CONTAINS
       Agrif_UseSpecialValue = .FALSE.
       l_ini_child           = .FALSE.
       l_vremap              = .FALSE. 
+      CALL Agrif_Set_MaskMaxSearch(3)
 
       Krhs_a = Kaa   ;   Kmm_a = Kmm
 
diff --git a/src/OCE/DOM/domain.F90 b/src/OCE/DOM/domain.F90
index 5288311db4074a8562c078b2621038823e97efd2..dbbe4a9031aa13452c7ef3a83f7ad708b72407d1 100644
--- a/src/OCE/DOM/domain.F90
+++ b/src/OCE/DOM/domain.F90
@@ -36,6 +36,9 @@ MODULE domain
 #endif
 #if defined key_agrif
    USE agrif_oce_interp, ONLY : Agrif_istate_ssh ! ssh interpolated from parent
+#if defined key_si3
+   USE agrif_ice_interp, ONLY : agrif_istate_icevol ! ssh increment from ice
+#endif
 #endif
    USE sbc_oce        ! surface boundary condition: ocean
    USE trc_oce        ! shared ocean & passive tracers variab
@@ -176,6 +179,11 @@ CONTAINS
       ELSEIF( .NOT.Agrif_root() .AND.    &
          &     ln_init_chfrpar ) THEN        !* Interpolate initial ssh from parent
          CALL Agrif_istate_ssh( Kbb, Kmm, Kaa )
+#if defined key_si3
+         ! Possibly add ssh increment from parent grid
+         ! only if there is no ice model in the child grid
+         CALL Agrif_istate_icevol( Kbb, Kmm, Kaa ) 
+#endif
 #endif
       ELSE                                   !* Read in restart file or set by user
          CALL rst_read_ssh( Kbb, Kmm, Kaa )
diff --git a/src/OCE/IOM/restart.F90 b/src/OCE/IOM/restart.F90
index 32e23127996f4c17c31f755174c50a24875e7eb4..f39619ad225e08fc3ac32af8872370330c933db7 100644
--- a/src/OCE/IOM/restart.F90
+++ b/src/OCE/IOM/restart.F90
@@ -31,6 +31,9 @@ MODULE restart
    USE trdmxl_oce     ! ocean active mixed layer tracers trends variables
    USE diu_bulk       ! ???
 #if defined key_agrif
+#if defined key_si3
+   USE agrif_ice_interp
+#endif
    USE agrif_oce_interp
 #endif
    !
@@ -435,7 +438,15 @@ CONTAINS
          ENDIF
 #if defined key_agrif
          ! Set ghosts points from parent 
-         IF (.NOT.Agrif_Root()) CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. )
+         IF (.NOT.Agrif_Root()) THEN 
+            ! Set ghosts points from parent 
+            CALL Agrif_istate_ssh( Kbb, Kmm, Kaa, .true. ) 
+#if defined key_si3
+            ! Possibly add ssh increment from parent grid
+            ! only if there is no ice model in the child grid
+            CALL Agrif_istate_icevol( Kbb, Kmm, Kaa ) 
+#endif
+         ENDIF
 #endif
          !
          ssh(:,:,Kmm) = ssh(:,:,Kbb)              !* set now values from to before ones
diff --git a/src/OCE/SBC/sbcmod.F90 b/src/OCE/SBC/sbcmod.F90
index 78e2e3aeaaae7265949b30ced2b8bc29b0d0b2c9..82d0dd6e9e17f3fb0ff28639b74048c7b155ea78 100644
--- a/src/OCE/SBC/sbcmod.F90
+++ b/src/OCE/SBC/sbcmod.F90
@@ -418,31 +418,28 @@ CONTAINS
       !
       !                                            !==  sbc formulation  ==!
       !
+      IF( ln_blk .OR. ln_abl ) THEN
+         IF( ll_sas  )         CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OCE-SAS coupling: SAS receiving fields from OCE
+         IF( ln_wave ) THEN
+            IF ( lk_oasis )    CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OCE-wave coupling
+                               CALL sbc_wave ( kt, Kmm )
+         ENDIF
+      ENDIF
+      !
       SELECT CASE( nsbc )                                ! Compute ocean surface boundary condition
       !                                                  ! (i.e. utau,vtau, qns, qsr, emp, sfx)
-      CASE( jp_usr   )     ;   CALL usrdef_sbc_oce( kt, Kbb )                         ! user defined formulation
-      CASE( jp_flx     )   ;   CALL sbc_flx       ( kt )                              ! flux formulation
-      CASE( jp_blk     )
-         IF( ll_sas    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OCE-SAS coupling: SAS receiving fields from OCE
-!!!!!!!!!!! ATTENTION:ln_wave is not only used for oasis coupling !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-         IF( ln_wave )   THEN
-             IF ( lk_oasis )   CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OCE-wave coupling
-                               CALL sbc_wave      ( kt, Kmm )
-         ENDIF
-                               CALL sbc_blk       ( kt )                              ! bulk formulation for the ocean
-                               !
-      CASE( jp_abl     )
-         IF( ll_sas    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OCE-SAS coupling: SAS receiving fields from OCE
-                               CALL sbc_abl       ( kt )                              ! ABL  formulation for the ocean
-                               !
-      CASE( jp_purecpl )   ;   CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! pure coupled formulation
+      CASE( jp_usr     )   ;   CALL usrdef_sbc_oce( kt, Kbb )                        ! user defined formulation
+      CASE( jp_flx     )   ;   CALL sbc_flx       ( kt )                             ! flux formulation
+      CASE( jp_blk     )   ;   CALL sbc_blk       ( kt )                             ! bulk formulation for the ocean
+      CASE( jp_abl     )   ;   CALL sbc_abl       ( kt )                             ! ABL  formulation for the ocean
+      CASE( jp_purecpl )   ;   CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )  ! pure coupled formulation
       CASE( jp_none    )
          IF( ll_opa    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OCE-SAS coupling: OCE receiving fields from SAS
       END SELECT
       !
       IF( ln_mixcpl )          CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! forced-coupled mixed formulation after forcing
       !
-      IF( ln_wave .AND. ln_tauoc )  THEN            ! Wave stress reduction
+      IF( ln_wave .AND. ln_tauoc ) THEN             ! Wave stress reduction
          !
          DO_2D( 0, 0, 0, 0 )
             utau(ji,jj) = utau(ji,jj) * tauoc_wave(ji,jj)
diff --git a/src/OFF/dtadyn.F90 b/src/OFF/dtadyn.F90
index 253d699db5d2b13d0e708af11cfb31d1515b4c69..3a68e3128e1e596f150662a3e74f17d1e957059d 100644
--- a/src/OFF/dtadyn.F90
+++ b/src/OFF/dtadyn.F90
@@ -24,7 +24,7 @@ MODULE dtadyn
    USE dom_oce         ! ocean domain: variables
 #if defined key_qco 
    USE domqco          ! variable volume
-#else
+#elif ! defined key_linssh
    USE domvvl
 #endif
    USE zdf_oce         ! ocean vertical physics: variables
@@ -53,7 +53,7 @@ MODULE dtadyn
    PUBLIC   dta_dyn_init       ! called by nemo_init
    PUBLIC   dta_dyn            ! called by nemo_gcm
    PUBLIC   dta_dyn_atf        ! called by nemo_gcm
-#if ! defined key_qco
+#if ! defined key_qco && ! defined key_linssh
    PUBLIC   dta_dyn_sf_interp  ! called by nemo_gcm
 #endif
 #if defined key_sed_off
@@ -345,6 +345,7 @@ CONTAINS
            CALL iom_close( inum )                                        ! close file
         ENDIF
         !
+#if ! defined key_linssh
 #if defined key_qco
         CALL dom_qco_r3c( ssh(:,:,Kbb), r3t(:,:,Kbb), r3u(:,:,Kbb), r3v(:,:,Kbb) )
         CALL dom_qco_r3c( ssh(:,:,Kmm), r3t(:,:,Kmm), r3u(:,:,Kmm), r3v(:,:,Kmm) )
@@ -356,6 +357,7 @@ CONTAINS
 
         CALL dta_dyn_sf_interp( nit000, Kmm )
         CALL dta_dyn_sf_interp( nit000, Kbb )
+#endif
 #endif
       ENDIF
       !
@@ -390,7 +392,7 @@ CONTAINS
    END SUBROUTINE dta_dyn_atf
    
    
-#if ! defined key_qco  
+#if ! defined key_qco && ! defined key_linssh
 
    SUBROUTINE dta_dyn_sf_interp( kt, Kmm )
       !!---------------------------------------------------------------------
diff --git a/src/OFF/nemogcm.F90 b/src/OFF/nemogcm.F90
index 9cffd0190d1a01528c6ce0c37503905e632353d2..9e83a72731fbf1f2ad7821634dbb064606b0e729 100644
--- a/src/OFF/nemogcm.F90
+++ b/src/OFF/nemogcm.F90
@@ -62,7 +62,7 @@ MODULE nemogcm
    USE prtctl         ! Print control                    (prt_ctl_init routine)
    USE timing         ! Timing
    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)
-#if defined key_qco
+#if defined key_qco || defined key_linssh
    USE stpmlf , ONLY : Nbb, Nnn, Naa, Nrhs   ! time level indices
 #else
    USE step    , ONLY : Nbb, Nnn, Naa, Nrhs   ! time level indices
@@ -150,7 +150,7 @@ CONTAINS
          Nnn  = Naa
          Naa  = Nrhs
          !
-# if ! defined key_qco
+# if ! defined key_qco && ! defined key_linssh
          IF( .NOT.ln_linssh )   CALL dta_dyn_sf_interp( istp, Nnn )  ! calculate now grid parameters
 # endif