diff --git a/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh b/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh
index 75a1e988162c51f43b4b2cd1ca4cba5fa003c61a..06314a5ad79cff84b3237b03a051251fac5f747a 100755
--- a/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh
+++ b/LIBTOOLS/tools/lfi2cdf/scripts/lfi2cdfregex.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 #
 usage(){
diff --git a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90
index bb8534b6dedc4aa9b89775f7106dd6a45efef4ca..5abc98b1e2e5663dc251939d12f7067d84d7a6b4 100644
--- a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90
+++ b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90
@@ -13,6 +13,7 @@ program LFI2CDF
 
   USE MODE_FIELD,         ONLY: INI_FIELD_LIST
   USE MODE_IO,            ONLY: IO_Init, IO_Config_set
+  use mode_ll
   USE mode_options
   USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll
   USE mode_util
diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
index 7a4d853e97417d32893df6b8ba3d94a9d8af2e8a..bc20c05b2071d54f387c251078c5cc336e8f2322 100644
--- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
+++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
@@ -6,11 +6,12 @@
 ! Modifications:
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
 !  P. Wautelet 10/04/2019: use IO_Err_handle_nc4 to handle netCDF errors
+!  P. Wautelet 25/06/2019: add support for 3D integer arrays
 !-----------------------------------------------------------------
 MODULE mode_util
   USE MODD_IO,         ONLY: TFILE_ELT
   USE MODD_NETCDF,     ONLY: DIMCDF, CDFINT
-  USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX
+  USE MODD_PARAMETERS, ONLY: JPVEXT, NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX
   use modd_precision,  only: LFIINT
 
   USE MODE_FIELD
@@ -687,14 +688,15 @@ END DO
     INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMLEN
     logical,dimension(knaf)                  :: gtimedep_in, gtimedep_out
 
-    CHARACTER(LEN=:),       ALLOCATABLE :: YTAB0D
-    INTEGER,DIMENSION(:),   ALLOCATABLE :: ITAB1D, ITAB1D2
-    INTEGER,DIMENSION(:,:), ALLOCATABLE :: ITAB2D, ITAB2D2
-    LOGICAL,DIMENSION(:),   ALLOCATABLE :: GTAB1D
-    REAL,DIMENSION(:),      ALLOCATABLE :: XTAB1D, XTAB1D2
-    REAL,DIMENSION(:,:),    ALLOCATABLE :: XTAB2D, XTAB2D2
-    REAL,DIMENSION(:,:,:),  ALLOCATABLE :: XTAB3D, XTAB3D2
-    REAL,DIMENSION(:,:,:,:),ALLOCATABLE :: XTAB4D, XTAB4D2
+    CHARACTER(LEN=:),            ALLOCATABLE :: YTAB0D
+    INTEGER, DIMENSION(:),       ALLOCATABLE :: ITAB1D, ITAB1D2
+    INTEGER, DIMENSION(:,:),     ALLOCATABLE :: ITAB2D, ITAB2D2
+    INTEGER, DIMENSION(:,:,:),   ALLOCATABLE :: ITAB3D, ITAB3D2
+    LOGICAL, DIMENSION(:),       ALLOCATABLE :: GTAB1D
+    REAL,    DIMENSION(:),       ALLOCATABLE :: XTAB1D, XTAB1D2
+    REAL,    DIMENSION(:,:),     ALLOCATABLE :: XTAB2D, XTAB2D2
+    REAL,    DIMENSION(:,:,:),   ALLOCATABLE :: XTAB3D, XTAB3D2
+    REAL,    DIMENSION(:,:,:,:), ALLOCATABLE :: XTAB4D, XTAB4D2
     TYPE(DATE_TIME)                     :: TZDATE
 
 
@@ -742,6 +744,10 @@ END DO
           ALLOCATE(ITAB2D(IDIMLEN(1),IDIMLEN(2)))
           IF (tpreclist(ji)%calc) ALLOCATE(ITAB2D2(IDIMLEN(1),IDIMLEN(2)))
           CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D)
+        CASE (3)
+          ALLOCATE(ITAB3D(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3)))
+          IF (tpreclist(ji)%calc) ALLOCATE(ITAB3D2(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3)))
+          CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB3D)
         CASE DEFAULT
           CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' &
                          //TRIM(tpreclist(ISRC)%name)//' => ignored')
@@ -762,6 +768,9 @@ END DO
           CASE (2)
             CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D2)
             ITAB2D(:,:) = ITAB2D(:,:) + ITAB2D2(:,:)
+          CASE (3)
+            CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB3D2)
+            ITAB3D(:,:,:) = ITAB3D(:,:,:) + ITAB3D2(:,:,:)
           END SELECT
         END DO
 
@@ -779,6 +788,10 @@ END DO
           CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB2D)
           DEALLOCATE(ITAB2D)
           IF (tpreclist(ji)%calc) DEALLOCATE(ITAB2D2)
+        CASE (3)
+          CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB3D)
+          DEALLOCATE(ITAB3D)
+          IF (tpreclist(ji)%calc) DEALLOCATE(ITAB3D2)
         END SELECT
 
 
@@ -944,7 +957,7 @@ END DO
     USE MODD_GRID,          ONLY: XBETA, XRPK, XLAT0, XLON0, XLATORI, XLONORI
     USE MODD_GRID_n,        ONLY: LSLEVE, XXHAT, XYHAT, XZHAT
     USE MODD_IO,            ONLY: LIOCDF4
-    USE MODD_PARAMETERS,    ONLY: JPHEXT
+    USE MODD_PARAMETERS,    ONLY: JPHEXT, JPVEXT
     USE MODD_PARAMETERS_ll, ONLY: JPHEXT_ll=>JPHEXT, JPVEXT_ll=>JPVEXT
     USE MODD_TIME_n,        ONLY: TDTCUR, TDTMOD
 
diff --git a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz
index 8c58f036d916e50d373a78fdb34bd1abe4ef9d83..cdd9353330c9cbbd2c1e8dc7e18a868ac8fd3757 100755
--- a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz
@@ -1 +1,2 @@
+#!/bin/bash
 rm -f HYD2D.* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer
diff --git a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz
index 3370ae6d1d907443bd80be743423541df8257271..dc97915caa8693a820cd2bc7189341436bdcd66f 100755
--- a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz
index afe7735290fd98c4b946c7b43da8da22b4f007b3..51c66dcb4f8b3f09a0a3954b54ebeec3820267da 100755
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/clean_mesonh_xyz
@@ -1,2 +1,3 @@
+#!/bin/bash
 rm -f HYD2D* pipe_name PRESSURE file_for_xtransfer
 rm -f EXPER.1.HYD* OUT*
diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz
index 510af5cdbe9a531f19eb3ac56584a4116256586e..bdf21326021858792eaf90b73ca2512c97a6f0ff 100755
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/run_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia
index be8f5a09d1cbc43bd834f00b3fffc48189a1d263..b7471298dbe4522965b9351903c8fbf301b341e5 100755
--- a/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia
+++ b/MY_RUN/KTEST/001_2Drelief/003_convdia/clean_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 rm -f dirconv.elim  FICJD  LISTING_DIA  OUT_DIA  pipe_name 
 rm -f EXPER.1.HYD2D*                            
 
diff --git a/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia b/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia
index 5f9bd392bffead4ef1a83fc27c1238ddce17eb6d..b9a9c88712be5b10353d9b5475711b94cfda1bcd 100755
--- a/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia
+++ b/MY_RUN/KTEST/001_2Drelief/003_convdia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog b/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog
index 4c7ea944eb6cfff76cf612c468c75fcb7721c61b..fc74351aa873e3b64453331da8378d7fddf1b329 100755
--- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/001_2Drelief/004_diaprog/clean_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 rm -f EXPER.1.HYD2D*
 rm -f gmeta OUT*
 rm -f rm dir.*:*
diff --git a/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog b/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog
index 3f1b4cf41349998615a5b67b379c4d84633530f4..03431de5cdfd18131b22dd89fef23b6c6cd3c2c3 100755
--- a/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/001_2Drelief/004_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl b/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl
index 3898140e85e6709c3e6c73af6b43e25cd60fd79e..8b82cdb8e78561ded4ce43712ce50580c6423c07 100755
--- a/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl
+++ b/MY_RUN/KTEST/001_2Drelief/005_ncl/clean_ncl
@@ -1,2 +1,2 @@
-
+#!/bin/bash
 rm -f  *.nc *.ps *.png
diff --git a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl
index 392a13cbfb0da4a39f491ba806d7af46a2bd1759..7b7d112fe13bb04dc72ab09f57cdb0a1538f775e 100755
--- a/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl
+++ b/MY_RUN/KTEST/001_2Drelief/005_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief b/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief
index 70960894d0d07cc05a56b56721d0904a2c5f8cdc..6891e0e9d274f456ad57a8828de01e80ca380c44 100755
--- a/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief
+++ b/MY_RUN/KTEST/001_2Drelief/run_001_2Drelief
@@ -1,7 +1,8 @@
+#!/bin/bash
 #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.
 set -e
 make clean
-make
\ No newline at end of file
+make
diff --git a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz
index 3dd534c9e6ebd19c1d7134ae729c661c0676362a..c19ee1b8010a2c7cc9fe8c76240301b91601b5f9 100755
--- a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/clean_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 rm -f RELIEF3D* OUTPUT_LISTING* pipe* *.tex
 rm -f file_for_xtransfer
diff --git a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz
index 7170696e032756f3f2f125a8bfb73a491ebbc795..bc90ba158ca55ddc34eacb5967ad43934ab06116 100755
--- a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/run_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz
index faf1e21a67805a20cb2df4ea1b6bf456791a7b02..f0661c43847f05a7b686d9e7002deac8ec219357 100755
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f PRESSURE file_for_xtransfer
 rm -f RELIEF3D.*  
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz
index 97878c3aaab53f7da79e1c2c56aa2627a740b118..fb2bd77ecc2333a744bc4d3235fd2c378a6cf168 100755
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/run_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia b/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia
index 34ba07d92753189b788cdc1751d355f3eb1d6b7b..4736bbeef2a40269d80176c3795d819bb2a8878b 100755
--- a/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia
+++ b/MY_RUN/KTEST/002_3Drelief/003_convdia/clean_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f REL3D.1.EXP01.002.{des,lfi,nc} 
 rm -f REL3D.1.EXP01.002dg.{des,lfi,nc}
diff --git a/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia b/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia
index fe1aef7bdf51d66151a2b0ac76079b7175d586af..db41113751bf7e7148be1a6100d95fc55c5aa443 100755
--- a/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia
+++ b/MY_RUN/KTEST/002_3Drelief/003_convdia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog b/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog
index 39c5ad870531bc32e8d8328b25fd1b2ff4f3512b..f1904b54b7017b3dbb9cb024ff32bc31a2672c0e 100755
--- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/002_3Drelief/004_diaprog/clean_diaprog
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f dir.* gmeta REL3D* OUT_DIA
diff --git a/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog b/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog
index 6d362f528b9e97fd8366ed9d893a6650256da6f8..6fb30e42f4fd801ec4fff45781196b0530e9af1c 100755
--- a/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/002_3Drelief/004_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl
index 4017fe47c3e76ce54e5d1a6e887a20431f9b223d..233231e1eee2bac48853a70db7af884c517b70bd 100755
--- a/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl
+++ b/MY_RUN/KTEST/002_3Drelief/005_ncl/clean_ncl
@@ -1,2 +1,2 @@
-
+#!/bin/bash
 rm -f  *.nc *.ps 
diff --git a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl
index a087673baa375bd6505f5843cf76566725260137..59aa382501a8593f023111b9f1b3b02592554245 100755
--- a/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl
+++ b/MY_RUN/KTEST/002_3Drelief/005_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/002_3Drelief/Makefile b/MY_RUN/KTEST/002_3Drelief/Makefile
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief b/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief
index 59e5a7214bc778c55148fb589135fb85e31a2295..6891e0e9d274f456ad57a8828de01e80ca380c44 100755
--- a/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief
+++ b/MY_RUN/KTEST/002_3Drelief/run_002_3Drelief
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz
index 3411f209794ecc5506dce3eae7370e059fe9a0f4..38e2c32c39a84dcecfa82b88bbfc050daa9c446c 100755
--- a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/clean_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 rm -f KWRAIN.* OUTPUT_LISTING* pipe* *.tex
 rm -f file_for_xtransfer
diff --git a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz
index f32817c8b8b1e7144e1dc56535dce5c2cd5e8248..eb9d7425163ef27ad7c96ddec97675bac4a56ec0 100755
--- a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/run_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz
index 946d0c90ebea97a065833edc7910c122b9e21f9c..cbc42393069d9d6767596310cc23f24ab7036ff0 100755
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f PRESSURE 
 rm -f KWRAI* OUT* pipe_name file_for_xtransfer
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz
index e86549305e114ff5c83fbcbc2c90417a44c1d717..f7fb0365447af5a74bcdd92924e4f19e0d5aa99e 100755
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/run_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia b/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia
index 2d6705fe01b5d7545fd6bf3e56cebcb75a6b0cef..9ba04f4e6b5d7baf4a3832abff01338eaff2dac4 100755
--- a/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia
+++ b/MY_RUN/KTEST/003_KW78/003_convdia/clean_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f KWRAI.* 
 rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name
diff --git a/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia b/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia
index 5aa15dbbf32f023ed62b6af28e3a10ebf3449f6b..60db55d108f1af83689bf6ce9a86a3147c97af83 100755
--- a/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia
+++ b/MY_RUN/KTEST/003_KW78/003_convdia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog b/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog
index 1be3a1adaa7353fc8055c8c9aa97b768aa3677f4..f4e896519cb1fae63eb774815ca52c295b3e1c9a 100755
--- a/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/003_KW78/004_diaprog/clean_diaprog
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f dir.* gmeta KWRAI.1.SEG01.00*    OUT_DIA
diff --git a/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog b/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog
index f87f0b4fefecaa2bdb80712d93ad325e2cacb0ee..365ecc11eabe264469d38e41a4d1e10a743215ac 100755
--- a/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/003_KW78/004_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl
index 4017fe47c3e76ce54e5d1a6e887a20431f9b223d..233231e1eee2bac48853a70db7af884c517b70bd 100755
--- a/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl
+++ b/MY_RUN/KTEST/003_KW78/005_ncl/clean_ncl
@@ -1,2 +1,2 @@
-
+#!/bin/bash
 rm -f  *.nc *.ps 
diff --git a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl
index fe611614ef801d781cb98a6ae2e47f19b429795b..8c66c7cb4e74d54b38a589a9146ef9d0bb8f4fa8 100755
--- a/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl
+++ b/MY_RUN/KTEST/003_KW78/005_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz b/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz
index 6daf8d6753c4b000775465519d27c06ad7490999..19b1bf34eb5ca4964c57e9b503ef15a7e940213f 100755
--- a/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz
+++ b/MY_RUN/KTEST/003_KW78/006_diag/clean_diag_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex
 rm -f file_for_xtransfer
diff --git a/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz b/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz
index dae2b32d951a7dfac048db8131c2b54a6973ae4e..b36518443ebec0529cd0d53901f3adffe95dc551 100755
--- a/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz
+++ b/MY_RUN/KTEST/003_KW78/006_diag/run_diag_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz
index 6daf8d6753c4b000775465519d27c06ad7490999..19b1bf34eb5ca4964c57e9b503ef15a7e940213f 100755
--- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz
+++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_diag_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f KWRAI* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex
 rm -f file_for_xtransfer
diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl
index 9c04c2a804db6e7421b6de10a9e937f55d859447..cb8d15455b843f252abe2c6d262197c9e22d5352 100755
--- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl
+++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/clean_ncl
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
-rm -f KWRAI.1.SEG01.004* visu_KW78_diag.png
\ No newline at end of file
+rm -f KWRAI.1.SEG01.004* visu_KW78_diag.png
diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl
index 3b96c630eb395cf69794129acd8956b140ba3e37..ffd98523395dcc3395c9141c10cdaf375591f2b3 100755
--- a/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl
+++ b/MY_RUN/KTEST/003_KW78/007_ncl_diag/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/003_KW78/Makefile b/MY_RUN/KTEST/003_KW78/Makefile
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/003_KW78/run_003_KW78 b/MY_RUN/KTEST/003_KW78/run_003_KW78
index 59e5a7214bc778c55148fb589135fb85e31a2295..6891e0e9d274f456ad57a8828de01e80ca380c44 100755
--- a/MY_RUN/KTEST/003_KW78/run_003_KW78
+++ b/MY_RUN/KTEST/003_KW78/run_003_KW78
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files
index ad697a0fec8472a4dc685c03ee2412489677480c..851eb15f925868dc6980b315a04fac890ddaece3 100755
--- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files
+++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_get_pgd_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 PREP_PGD_FILES=$HOME/PREP_PGD_FILES_WWW ; export PREP_PGD_FILES
 [ ! -d "$PREP_PGD_FILES" ] && exit
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz
index 69644ac26b40631f3febbb88ea1ab16795fdc6ee..2e671ee0c7822ea2634a4038bf5b772ccfff534e 100755
--- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz
+++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/clean_prep_pgd_xyz
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f  *.dir *.hdr REUNION_PGD_1km5* OUTPUT_* pipe* *.tex file_for_xtransfer
diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files
index 56726933a0f7608e0c4918f42e80d5aea76b669d..8269e96732745a461aeb773d3325b42748b2fe12 100755
--- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files
+++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/get_pgd_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 #
 #     Modif
 #     J.Escobar 11/04/2014 get PGD files from 'dir_open' directory ( without psswd )
diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz
index 1787962045ad701bdc7e212d6d86fa512e745f2b..2f6d23ec608f25488aeff07e12f55bfecdc68973 100755
--- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz
+++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/run_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz
index a87860cf88aa14b24bbaf51ce6e4139389376cdc..214e8ee8a473d6d561b784fbfe08b1941cd8f708 100755
--- a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/clean_prep_ideal_case_xyz
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f REUNION_PGD_1km5* REUNION_IDEA* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer
diff --git a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz
index c25d2ad26361ecec027d5f2906f09e0c9683f0e0..1a5dea074c91dbb3f5f80feed6aebbd6ad873d62 100755
--- a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/run_prep_ideal_case_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz
index 9c6220241e1fe7810b212926efac89c841e783e9..7530099e2719a131467ac11606935b609be440ce 100755
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f PRESSURE      
 rm -f REUNION_IDEA.{des,lfi,nc} 
diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia b/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia
index e571b238cf6e1e0932a7be94a05bdf8abda4de10..d61f25f709fb56f668221fb1094f9ddfcd6b645e 100755
--- a/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia
+++ b/MY_RUN/KTEST/004_Reunion/004_convdia/clean_conv2dia
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f REUNI.1* dirconv FICJD LISTING_DIA OUT_DIA pipe_name
diff --git a/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia b/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia
index 370f6dd2ca28e09f7c92f3fe728eff823ad03777..2ce0351394da80ab713f896060faec8d52a9e013 100755
--- a/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia
+++ b/MY_RUN/KTEST/004_Reunion/004_convdia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog b/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog
index 3ad5c4b706c5b0905cb48fd1e87131517bc0329a..ab7c07966f324073a71267c1c2fb8bf016eb03e3 100755
--- a/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/004_Reunion/005_diaprog/clean_diaprog
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f dir.* gmeta* REUNI.1.00A20.00* OUT_DIA
diff --git a/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog b/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog
index 07ad8b77ff62f05cb3be3a9d92d9f015bcf7efaa..dd66c99643e3bc11d5f5d094efc44e307328c06e 100755
--- a/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/004_Reunion/005_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl
index 31ea1f3c641c770f8ce6d39ba80ffc880cce2132..3a0b73ae44942a2454ba2e68db4cb894106dd4f0 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 echo "!!!!  WARNING :: CLEAN_RANGS_FILES       !!!!"
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files
index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/get_ncl_highres_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 NCARG_RANGS=`pwd`
 export NCARG_RANGS
 echo 
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl
index 7c68abf3d2439ab6929d4aab86c94bbda30c4127..11c9cafb8e6bb391d7b232f92ead4fd1fc57a8c8 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_extractdia/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl
index 35c9be83a714d5a932cbbb248977960346883bce..bb0f6a460def102235c5996a0665357b2d569eb9 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 echo "!!!!  WARNING :: CLEAN_RANGS_FILES       !!!!"
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files
index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/get_ncl_highres_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 NCARG_RANGS=`pwd`
 export NCARG_RANGS
 echo 
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl
index 0ad8bf74f04e9e570848042926029ecd14bfd854..5fd22cf3b1afccbfa394a944179561dd47f401ee 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_lfi2cdf/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl
index b7b65292c989aa3eb58de39b1a6a0373feccf350..c40e649d92c62a6c76e7acaabe7b995d1b77937f 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 echo "!!!!  WARNING :: CLEAN_RANGS_FILES       !!!!"
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files
index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/get_ncl_highres_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 NCARG_RANGS=`pwd`
 export NCARG_RANGS
 echo 
diff --git a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl
index e7068fe4e122025f01a3ba630fb8323121c24d43..2916f43936c6c7f2b55c9c5325cc61b8b3fc8a57 100755
--- a/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl
+++ b/MY_RUN/KTEST/004_Reunion/005_ncl_nc4/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 #### Get highres coastline data for ncl
 # If you don't have internet connexion, comment the next line
diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl
index 4017fe47c3e76ce54e5d1a6e887a20431f9b223d..233231e1eee2bac48853a70db7af884c517b70bd 100755
--- a/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl
+++ b/MY_RUN/KTEST/004_Reunion/006_ncl/clean_ncl
@@ -1,2 +1,2 @@
-
+#!/bin/bash
 rm -f  *.nc *.ps 
diff --git a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl
index 1728e92ca8fb5f6213f90a02990fddcbd0455a92..4fc11d993821eeaaa02d0f78d0eaab29bc450176 100755
--- a/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl
+++ b/MY_RUN/KTEST/004_Reunion/006_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/004_Reunion/run_004_Reunion b/MY_RUN/KTEST/004_Reunion/run_004_Reunion
index 3cc7d58d1f9cf0c4e30ada0dd89d1526e7976ed9..12b10dcac4148e2eda95827d844e9bc15cc7aed5 100755
--- a/MY_RUN/KTEST/004_Reunion/run_004_Reunion
+++ b/MY_RUN/KTEST/004_Reunion/run_004_Reunion
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/005_ARM/001_prep_ideal/PRE_IDEA1.nam b/MY_RUN/KTEST/005_ARM/001_prep_ideal/PRE_IDEA1.nam
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz
index 3b366f16a364d5e93afd8362892e8a1fe5a744d2..66bc124ff209a0a0ff73cfd2d2f59b1f3ef9afa1 100755
--- a/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/005_ARM/001_prep_ideal/clean_prep_ideal_case_xyz
@@ -1 +1,2 @@
+#!/bin/bash
 rm -f eurocs* OUTPUT_LISTING* pipe* *.tex
diff --git a/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz b/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz
index 19645e4d7dfa514cb198a0da5ce86db95bac409c..0a0ec2fc0277aa449cce8a20e449cb20d083c37d 100755
--- a/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/005_ARM/001_prep_ideal/run_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 set -e
 rm -f eurocs* OUTPUT_LISTING* pipe* *.tex
diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/005_ARM/002_mesonh/EXSEG1.nam
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz
index 424f6d31b7911eafde793705860abb1a3ccdf66f..5bd665b8535e16da39e66854dbb55394bb027879 100755
--- a/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/005_ARM/002_mesonh/clean_mesonh_xyz
@@ -1,2 +1,3 @@
+#!/bin/bash
 rm -f ARM* pipe_name 
 rm -f eurocs* OUT*
diff --git a/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz
index c8aeaf943eb245dfe8a6a30ce98239465e9dd513..221ca5792ba6fa6057bded2d2bbb0ce670e89be2 100755
--- a/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/005_ARM/002_mesonh/run_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 set -e
 ln -fs ../001_prep_ideal/eurocs_noground.* .
diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog b/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog
index f02e522723fdbfb2454944760cbd686d255cd0f8..159c61110f80d5cc0e5800b4f3c94b6b5eeba74f 100755
--- a/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/005_ARM/003_diaprog/clean_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 rm -f ARM**
 rm -f gmeta OUT*
 rm -f rm dir.*:*
diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm b/MY_RUN/KTEST/005_ARM/003_diaprog/dir_arm
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog b/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog
index e5a25c963a2b55200180612ac3c128ba4dba50a8..15d55af0a576fae01a356cb2aea5ff3f42cc30b9 100755
--- a/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/005_ARM/003_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 set -e
 ln -sf ../002_mesonh/ARM__.1.CEN4T.000.* .
diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl
index ed94e798a01a78b92a53c5aac59fb97ed99380f6..12eeedc8e2098dd3b9af358058400b0dc719d700 100755
--- a/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl
+++ b/MY_RUN/KTEST/005_ARM/004_ncl/clean_ncl
@@ -1,2 +1,2 @@
-
+#!/bin/bash
 rm -f  ARM__.1.CEN4T.000* *.png 
diff --git a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl
index 31723fe2e450eb4c05f771c4afba434945a37b02..7fa36570be699763a33bdad50638a95b35f01eb7 100755
--- a/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl
+++ b/MY_RUN/KTEST/005_ARM/004_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/005_ARM/Makefile b/MY_RUN/KTEST/005_ARM/Makefile
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/005_ARM/run_005_ARM b/MY_RUN/KTEST/005_ARM/run_005_ARM
index 9917191a793a32316f7f34f8f9e1eee796fba2f7..1a1fa7e9599f8fc0cae01edd0b20aa0b35973807 100755
--- a/MY_RUN/KTEST/005_ARM/run_005_ARM
+++ b/MY_RUN/KTEST/005_ARM/run_005_ARM
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -e
 make clean
-make
\ No newline at end of file
+make
diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz
index 3aa9114f9d6f9903281fc98f0c564b45abff3948..d5ff0c093d5d5cb5102c233456545e70d51460e7 100755
--- a/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz
+++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/clean_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f *.dir *.hdr file_for_xtransfer
diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files b/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files
index 1c9492b8192eea729b74362a7e209ace3699af48..0940592c09302652cad274442648b8bc44602b31 100755
--- a/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files
+++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/get_pgd_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 #
 #     Modif
 #     J.Escobar 11/04/2014 get PGD files from 'dir_open' directory ( without psswd )
diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz
index 2876e061da763b24dadd1d6b0c3685942f087b01..70642944a892cf92eb4ac1c67ec6d36d14d426e6 100755
--- a/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz
+++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/run_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz
index 6b8e6bbbb0b529e3d7fad9862f20a66b7037783b..d0e358e6e84962d42ad924351adf8b45d8a3bf61 100755
--- a/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz
+++ b/MY_RUN/KTEST/007_16janvier/002_pgd2/clean_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f *.dir *.hdr file_for_xtransfer 
diff --git a/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz b/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz
index a11ba8192adcc384908cd29ab4997cd22c719fb4..771b1f116d9eae6a44e4cbcb358b1e9fd54f5698 100755
--- a/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz
+++ b/MY_RUN/KTEST/007_16janvier/002_pgd2/run_prep_pgd_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz b/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz
index 6b8e6bbbb0b529e3d7fad9862f20a66b7037783b..d0e358e6e84962d42ad924351adf8b45d8a3bf61 100755
--- a/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz
+++ b/MY_RUN/KTEST/007_16janvier/003_nest/clean_prep_nest_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f *.dir *.hdr file_for_xtransfer 
diff --git a/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz b/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz
index 0fd2608e42a3d08cce8824d79c3de533bbe22413..ef568d519e2c392f475319b7206b8b4f6d8b9dcc 100755
--- a/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz
+++ b/MY_RUN/KTEST/007_16janvier/003_nest/run_prep_nest_pgd_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz
index 49524a87187e61b1b05d5cfbd6357549cd4cf50f..3afd6667c28b37be242ca572942ede1a26605ff8 100755
--- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz
+++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/clean_arp2lfi_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex
diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz
index 26659113d21b4d6c1b6688abcb2c87428f1d9ca7..45d19104a20b70b4700d9bd4c888cf68f2631a54 100755
--- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz
+++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz
index dfa7e6b1fc72d6420184278a92d7d7121d61d07a..34cdd4bb3ce2fa90b4adc63e288e039c03b69d44 100755
--- a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz
+++ b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/clean_spawning_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex file_for_xtransfer
 
diff --git a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz
index 6a61075b38e2840c18899ebc49745628ca695884..8ab1e23a3360e7ac759d429354136136a9cc828d 100755
--- a/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz
+++ b/MY_RUN/KTEST/007_16janvier/005_spa_mod1_mod2/run_spawning_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz b/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz
index dfa7e6b1fc72d6420184278a92d7d7121d61d07a..34cdd4bb3ce2fa90b4adc63e288e039c03b69d44 100755
--- a/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz
+++ b/MY_RUN/KTEST/007_16janvier/006_preal/clean_preal_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex file_for_xtransfer
 
diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz b/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz
index 0c88f2ff30e0628198b3d83518dce5339db61e66..d85176e77f99e6238b7777bf001d025d171f688d 100755
--- a/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz
+++ b/MY_RUN/KTEST/007_16janvier/006_preal/run_preal_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz
index ec13918061efc54dee68856f501f2aa482b24747..5311f8a7dab9f2c6bdc2565bfa4cae145226e94c 100755
--- a/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex
 rm -f EXSEG?.nam PRESSURE file_for_xtransfer
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
index 654ba1e180deb107aac81bcbf4257e0c53b85f8b..77692f0f6cc8be019f7463931b40a9ed79072b3d 100755
--- a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz b/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz
index 948b5967789c0e9e0252a0dc65261ccdb048b2e8..ef0943262e809eb274f9059868e61c937691dbbe 100755
--- a/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz
+++ b/MY_RUN/KTEST/007_16janvier/009_diag/clean_diag_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f 16JAN* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex
 rm -f DIAG1.nam file_for_xtransfer
diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia b/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia
index 33bdd6e1dff1cc23f22e849106718dcf110dfdff..ef0cd032d0730ad98b606f17f6e976c12a32a6e4 100755
--- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia
+++ b/MY_RUN/KTEST/007_16janvier/010_conv2dia/clean_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f 16JAN* 
 rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name
diff --git a/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia b/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia
index 56888fa3a9fba4cf1ec0ac6cde9ba70794360d30..d6fd020632a5efe7e639b9019c633d7b0c51547c 100755
--- a/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia
+++ b/MY_RUN/KTEST/007_16janvier/010_conv2dia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog b/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog
index 1a9662d6ba2c51d7a06c9b5a2036865806ceff3e..c0d45814101d68a224c6868790970b0e139068be 100755
--- a/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/007_16janvier/011_diaprog/clean_diaprog
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f dir.* gmeta 16JAN* OUT_DIA
diff --git a/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog b/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog
index 5b51010db5fbaeacd2dfa5ffbc9e8807c66454e9..4fec27faf46c42c0b6e5203a548e8575110dd47b 100755
--- a/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/007_16janvier/011_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl
index 688cc8b2203a69b4a9f22c65ef1c4203115820e8..6315552cfe80a90710153aeb3028b2678b968ab9 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f 16JAN* 
 rm -f *.ps
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl
index 584bbad27cca2954aaa41b098ed973082bdbddd8..beb2e3605d766566b89aa01912aa5eab38354a73 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f visu_16j*.png
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl
index 31ea1f3c641c770f8ce6d39ba80ffc880cce2132..3a0b73ae44942a2454ba2e68db4cb894106dd4f0 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 echo "!!!!  WARNING :: CLEAN_RANGS_FILES       !!!!"
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files
index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/get_ncl_highres_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 NCARG_RANGS=`pwd`
 export NCARG_RANGS
 echo 
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl
index 58ba489064246f09101511409898ae08cbf9e70c..9174f368ac2931dfdf8614b102757af1fa2c14e1 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_extractdia/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl
index 35c9be83a714d5a932cbbb248977960346883bce..bb0f6a460def102235c5996a0665357b2d569eb9 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 echo "!!!!  WARNING :: CLEAN_RANGS_FILES       !!!!"
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files
index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/get_ncl_highres_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 NCARG_RANGS=`pwd`
 export NCARG_RANGS
 echo 
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl
index 9d74f9f4a93856cf938743558cbfadaa847d8c09..4ba228ec6df2a85b353847f2af4bc280b7a710fe 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_lfi2cdf/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl
index 33b4acd6e40b0389aae4cea13ec409135ce92f8d..fd14d4432591be2c055acdc24d3bd14661a83f1b 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 echo "!!!!  WARNING :: CLEAN_RANGS_FILES       !!!!"
 echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files
index b7808174e944cc90a66860019f62cd4c61e512d6..3b0e44937a9a0273c09a5f90f355d5601cb0011d 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/get_ncl_highres_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 NCARG_RANGS=`pwd`
 export NCARG_RANGS
 echo 
diff --git a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl
index fffa5e6ec8021bc7fe9fec30ed2d61eeb37997d5..186f6b1056c88923c36632248211d9333947934e 100755
--- a/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl
+++ b/MY_RUN/KTEST/007_16janvier/011_ncl_nc4/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 #### Get highres coastline data for ncl
 ./get_ncl_highres_files
diff --git a/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz b/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz
index a16961587ec4c7f71c6d07c246d9d8748fabba1c..831969ec46f1c7e79b3a8a184ef1a195e42f29bc 100755
--- a/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz
+++ b/MY_RUN/KTEST/007_16janvier/012_spectre/clean_spectre_xyz
@@ -1 +1,2 @@
+#!/bin/bash
 rm -f spectra* OUTPUT_LISTING* pipe* fort* 16JAN* *.bin
diff --git a/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz b/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz
index 00c54f2b99ff1c10326065e5b5b034a7e8762a18..c688a106fcafdda54041eecc657a3fc281979f0b 100755
--- a/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz
+++ b/MY_RUN/KTEST/007_16janvier/012_spectre/run_spectre_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier/012_spectre/trace_EC.sh b/MY_RUN/KTEST/007_16janvier/012_spectre/trace_EC.sh
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/007_16janvier/run_007_16janvier b/MY_RUN/KTEST/007_16janvier/run_007_16janvier
index 3cc7d58d1f9cf0c4e30ada0dd89d1526e7976ed9..12b10dcac4148e2eda95827d844e9bc15cc7aed5 100755
--- a/MY_RUN/KTEST/007_16janvier/run_007_16janvier
+++ b/MY_RUN/KTEST/007_16janvier/run_007_16janvier
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar
index 961a49ce91ff80f541fbe8e52a93715ef781dd7a..261fa777db5802132605ea27eabbfa57029eb921 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/confdollar
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 ##
 ##  Import Global Experiment Variables
 ##
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm
index 1644a0df0c8c48c848c021dfb83dba8a6b0d9913..b6f4eac8c64a183f0ecfa6d2f8afddfbfda2dae9 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/001_pgd1/run_prep_pgd_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMONO}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 ###############################################################
 # Script                                                      #
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar
index 40217a51d46df6ee0d78ccf91d000c77f1510e70..c2651025d9ce9d500ee4c83af16f7006a7a0edfa 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/confdollar
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 ##
 ##  Import Global Experiment Variables
 ##
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm
index 9874f46de28b1a5bc82e6d6a643c84aa7ee57c56..c2b90f85471659b3adfcadb5b7af2f3780f0d8b6 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/002_pgd2/run_prep_pgd_son_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMONO}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 ###############################################################
 # Script                                                      #
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar
index bb4f19056ec672b946d53eb1f9b92056a17021a0..5c4a7d6e827d816d6338db9a0657907f6cc00c95 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/confdollar
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 ##
 ##  Import Global Experiment Variables
 ##
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm
index 60b9a05bc45065bf80ff87649a82a3c782977ff6..6c8cf541e63e157ddedb884e16e43acf8855dc01 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/003_nest/run_prep_nest_pgd_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMONO}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 ###############################################################
 # Script                                                      #
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm
index 0804408ba4b2d7072cad3ef8a39ba719fd52926d..853940e51156b8a662927b0dfc84733f0643b916 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/004_arp2lfi/run_preal_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMONO}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 # Script                                                      #
 ###############################################################
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm
index 6fcffdc4c0b8e20c71f32eade3a9800b620d0445..5665775d27aa01c1372c80b4c87133ca8845c5b6 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/005_spa_mod1_mod2/run_spawning_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMONO}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 # Script                                                      #
 ###############################################################
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm
index 03b24e87e7c2e20ddca2168719dee4add0bc174b..b54f9122198d4297e242901d2394cd59a621d03f 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/006_preal/run_preal_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMONO}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 # Script                                                      #
 ###############################################################
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm
index a777ed883250f1fbd18e287e0b69d07b8b0a9099..c01d5ba68bd7ab7c0c3cb8b16c1089a9f78d02e6 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/008_run2/run_mesonh_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMULTI}
-#!/bin/sh
+#!/bin/bash
 
 ###############################################################
 # Script                                                      #
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm
index e951ee1e38ce8954119aa35263ed22c1f4236439..4392a6847e6acd94170b2c1b19f9a8e8c51eaade 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/009_diag/run_diag_xyz.ihm
@@ -1,5 +1,5 @@
 ${JOBMULTI}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 # Script                                                      #
 ###############################################################
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm
index 767129205e7312087cd9845c742f96a86a60f8aa..ebdb3da8a0df47751fa0bff332ce920ff3088aa7 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/010_conv2dia/run_conv2dia.ihm
@@ -1,5 +1,5 @@
 ${JOBFRONTAL}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 # Script                                                      #
 ###############################################################
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm b/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm
index 00128b669fe4ab325400aaa9892bf384d1e12e81..c10633ea2a714722088d6517b6a54730e10e794e 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/011_diaprog/run_diaprog.ihm
@@ -1,5 +1,5 @@
 ${JOBFRONTAL}
-#!/bin/sh
+#!/bin/bash
 ###############################################################
 # Script                                                      #
 ###############################################################
diff --git a/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101 b/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101
index 60ed7e0a5ea69f2418392eccfc9914c2b348ccad..b068b7c7be9aef16673d5ee8e5118f36ff25a225 100755
--- a/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101
+++ b/MY_RUN/KTEST/007_16janvier_scandollar/confdollar_4101
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 ##
 ## Run Parameter
 ##
diff --git a/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz b/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz
index 0f7d54649aa53ba9001529c8f774254b791bd1c0..efb1e1531241b383483bab9452d92fdf4fd5fa40 100755
--- a/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/001_pgd1/clean_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f *.dir *.hdr *.asc file_for_xtransfer
diff --git a/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files b/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files
index 6718c71c150ee540c8115e7a29d1a798092494e5..9027fa2c1bc80666dccdd3eab46d3a51f4702d5d 100755
--- a/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files
+++ b/MY_RUN/KTEST/009_ICARTT/001_pgd1/get_chimie_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 #
 #     Modif
 #     J.Escobar 11/04/2014 get CHIMIE files from 'dir_open' directory ( without psswd )
diff --git a/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz b/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz
index 4c10b3ecde693fd2f874ab8329043eda87636183..b44cf28d0f4c9ce59f442cde398a1ed74a7cccd6 100755
--- a/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/001_pgd1/run_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz
index 7f9655693757762526f676922fd296d4f3f5c4cd..d6ca4432f5bfc107c36219dc99e4d1b962cb6d9b 100755
--- a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/clean_arp2lfi_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f ICART* CPLCH* OUTPUT_LISTING* pipe* file_for_xtransfer 
diff --git a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz
index 532715ce63d033caf228a45474b8719441cd10ab..5c21c49d56f4abe7f53488e31d98bd99230610a1 100755
--- a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz
index fbb097f7b7e37dce7cb8427b6f20d559c2300e77..9db6cfa78a5a375dc8d1d257473e6f2dfd124cab 100755
--- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f ICART* CPLCH* OUTPUT_LISTING* pipe*
 rm -f EXSEG?.nam PRESSURE file_for_xtransfer 
diff --git a/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz
index afab5d0c2bf5b5da297145f04e665d7ba38eb598..aa93687ef80aae310a25cbdd25e888a7e15901ea 100755
--- a/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/003_mesonh/run_mesonh_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz b/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz
index f92472050cb01176b14e2f67c89ffab23f94c768..95d739c1ad527ef8657e3fb98e79c11e15a12b1f 100755
--- a/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/004_diag/clean_diag_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f ICART* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex
 rm -f DIAG1.nam file_for_xtransfer
diff --git a/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz b/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz
index 4b41821542075f506452da5503707e583c1d9d5b..616ce39dd0300bf26457a60d39ecef78c4f40f0f 100755
--- a/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz
+++ b/MY_RUN/KTEST/009_ICARTT/004_diag/run_diag_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl
index f0711493d7bd2ccaee84e8924030d681a8a98bd7..5d5fb32b602cb7eb68f7c19161242a3e361832a9 100755
--- a/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl
+++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/clean_ncl
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f *.png *.nc
diff --git a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl
index af5b7a5b21fca82683f7407ddbba81fb9d5e7c1c..bbcf7df2e4bdfc0ea0a3c39ace71d1ea1075d80a 100755
--- a/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl
+++ b/MY_RUN/KTEST/009_ICARTT/006_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT b/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT
index 70960894d0d07cc05a56b56721d0904a2c5f8cdc..6891e0e9d274f456ad57a8828de01e80ca380c44 100755
--- a/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT
+++ b/MY_RUN/KTEST/009_ICARTT/run_009_ICARTT
@@ -1,7 +1,8 @@
+#!/bin/bash
 #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.
 set -e
 make clean
-make
\ No newline at end of file
+make
diff --git a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz
index 7c1f38fb90776d0315b956f4bb1aeb5d52b58b2a..d417ddca8c05fe7b4feb5eb9644e342b3fe61821 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/clean_prep_ideal_case_xyz
@@ -1,3 +1,3 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 rm -f KWRAIN* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer
diff --git a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz
index ec28f3148da3b4ed0a51629486fcffab1cec0917..8d16f98b3f00f10a7db286921d21c6ccf47c375b 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/011_KW78CHEM/001_prep_ideal_case/run_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz
index 20023250b2356369ac4c2f6489fa25a3ffe7fa6b..19de5885418090488fa7cbafc508eeb791fdbade 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f DATAE1 DATAJ1 DATAS1      
 rm -f KWRAI* OUT* pipe_name PRESSURE REMAP*
diff --git a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz
index 02331f2de19ab63b744dc80ea55cac5b6794448f..2fc3ad19b8da82c91fc8c6d9e9796610f37c99e8 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/011_KW78CHEM/002_mesonh/run_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia
index 95aac374d5c32fb14758d36253783fa7b07d1334..3e4536e706188a81078315a0f0efc8882bc454f9 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia
+++ b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/clean_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f KWRAI.1.SEGCH.004.* 
 rm -f KWRAI.1.SEGCH.004dg.*
diff --git a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia
index bed92be3998e9fed38bee3591fe8df203559c494..15dbc6fa0d9008ce67bf343024a9bffeb869442d 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia
+++ b/MY_RUN/KTEST/011_KW78CHEM/003_convdia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog
index c62daca2aef29a6cf8d9d965f1f714a8f67c4321..9a215110f909a7c8883a8e3d44abb5b8dbe50acb 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/clean_diaprog
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f dir.* gmeta KWRAI.1.SEGCH.00*    OUT_DIA
diff --git a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog
index 7890b3b087d0c6eaff7c29ddc63ccff122947987..307811a8f4af3792ad742348c6e0793551566777 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/011_KW78CHEM/004_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl
index 1e293b32b69251b001ffce188cda1b53ed5fc0f4..3f7a799f163d1faebcae30394e9e40a6de80898a 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl
+++ b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl
index b9830c1ecdd95dbb3464830c503a8ee787c63821..d4d91b3c1568fe65698b9519d9c40b8270cbe021 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl
+++ b/MY_RUN/KTEST/011_KW78CHEM/005_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/011_KW78CHEM/Makefile b/MY_RUN/KTEST/011_KW78CHEM/Makefile
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM b/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM
index 59e5a7214bc778c55148fb589135fb85e31a2295..6891e0e9d274f456ad57a8828de01e80ca380c44 100755
--- a/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM
+++ b/MY_RUN/KTEST/011_KW78CHEM/run_011_KW78CHEM
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz b/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz
index b3a82c753bc7e1c019dab1d49e3521bb74583cd0..309008c89f588566209a2624e042869315be1121 100755
--- a/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz
+++ b/MY_RUN/KTEST/012_dust/001_pgd1/clean_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f *.dir *.hdr file_for_xtransfer
diff --git a/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz b/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz
index 01d23865247540de73b3cebbce5e0a8db851186d..3448999d7113e03ec7dd78a506ae1c8aae4c2367 100755
--- a/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz
+++ b/MY_RUN/KTEST/012_dust/001_pgd1/run_prep_pgd_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 set -e
 #
diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz
index 510d6103185c6b3630ca6f15635ebc6e2de6c327..f66246e5a212839da5bd0fcfc41d5d6fad2bbc31 100755
--- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz
+++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/clean_ecmwf2lfi_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 
 rm -f S7* pgd* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex PRE_REAL1.nam
diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz
index cec646c907d63e85dcd99ba275d444432eea9a2e..9d85d71fbafd43690be45d1b7eac753d2ae3ba8c 100755
--- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz
+++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 set -e
 
diff --git a/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz b/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz
index e8ff5b3a67bf6a72c8d998808fd656ad237a6388..2d5ddd6554e83d41152e2d24dd478548b7672a4c 100755
--- a/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/012_dust/003_run/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f S7* DUST* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex PRESSURE core* pgd*
 rm -f file_for_xtransfer
diff --git a/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz b/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz
index 4a796137aef9f7996b8d27a945785bf69c364548..df0dbbe63c90e46f53a3eb7849d3ec2357c04cbd 100755
--- a/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz
+++ b/MY_RUN/KTEST/012_dust/003_run/run_mesonh_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 set -e
 rm -f DUST* OUT*  
diff --git a/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz b/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz
index e8ff5b3a67bf6a72c8d998808fd656ad237a6388..2d5ddd6554e83d41152e2d24dd478548b7672a4c 100755
--- a/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/012_dust/004_restart/clean_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f S7* DUST* OUTPUT_LISTING* OUTPUT_TRANSFER pipe* *.tex PRESSURE core* pgd*
 rm -f file_for_xtransfer
diff --git a/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz b/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz
index 33b709308a2ba3a73fa91c77bcf1b2293ccf7097..516ca5846e7e6eea5d846f10e42303088576eb74 100755
--- a/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz
+++ b/MY_RUN/KTEST/012_dust/004_restart/run_mesonh_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -x
 set -e
 rm -f DUST* OUT*  
diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia b/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia
index 8b4d94dca1a912db313af56c9ff367bb3f680b0e..9b1176bdf2cc5e00f1cc8d88dafbb5e00c1080eb 100755
--- a/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia
+++ b/MY_RUN/KTEST/012_dust/005_conv2dia/clean_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f DUST7* 
 rm -f dirconv FICJD LISTING_DIA OUT_DIA pipe_name
diff --git a/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia b/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia
index 0067ec59281084bb5a715da362656cbf0e4f9755..730b717dfaa9102e903c349f97b537be2fabc291 100755
--- a/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia
+++ b/MY_RUN/KTEST/012_dust/005_conv2dia/run_conv2dia
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 set -e
 ln -sf ../004_restart/DUST7.1.SEG02.004.lfi .
diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog b/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog
index b723e96a036b269f8d419bc6883e7c8f573271e7..b43ef143fa29d857798b07b0725c14c26f9b1d1c 100755
--- a/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog
+++ b/MY_RUN/KTEST/012_dust/006_diaprog/clean_diaprog
@@ -1,2 +1,3 @@
+#!/bin/bash
 set -x
 rm -f dir.* gmeta DUST* OUT_DIA
diff --git a/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog b/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog
index 32a1dda3982b22c9dec38f753a186f2acaf4ddcd..ab5bc445e57ea094c2b5079252a5c3939c5603ab 100755
--- a/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog
+++ b/MY_RUN/KTEST/012_dust/006_diaprog/run_diaprog
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 set -e
 ln -sf ../005_conv2dia/DUST7.1.SEG02.004_dia.lfi .
diff --git a/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl b/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl
index 88c9bf3061b047ad8b635831fded25bfdf511fbd..aa9f928147719870e032433d1a3ac85b8ed720d9 100755
--- a/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl
+++ b/MY_RUN/KTEST/012_dust/007_ncl/clean_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 rm -f *.nc 
 rm -f *.ps
diff --git a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl b/MY_RUN/KTEST/012_dust/007_ncl/run_ncl
index 153224ed0557d77066ba648357527acc6beb939e..533773346b6b442abeb5b03f0e53297bdb5c3f76 100755
--- a/MY_RUN/KTEST/012_dust/007_ncl/run_ncl
+++ b/MY_RUN/KTEST/012_dust/007_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 set -x
 ln -sf ../004_restart/DUST7.1.SEG02.004.nc .
 
diff --git a/MY_RUN/KTEST/012_dust/run_012_dust b/MY_RUN/KTEST/012_dust/run_012_dust
index 01e3bbc38ab9c3f2a5bc22f5cd7142d28f730b20..90042728b3b56c37a60e63138fc284888907fd22 100755
--- a/MY_RUN/KTEST/012_dust/run_012_dust
+++ b/MY_RUN/KTEST/012_dust/run_012_dust
@@ -1,3 +1,4 @@
+#!/bin/bash
 target=${1:-"all"}
 set -e
 make clean
diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_OCEAN b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_OCEAN
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_WAVE b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/EXSEG1.nam_WAVE
old mode 100755
new mode 100644
diff --git a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files
index 37c0a7a3fa58550335e74340b609d830d824d682..87a41a0271a3636f3ffb3a6184a1a489b7d5d4f9 100755
--- a/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files
+++ b/MY_RUN/KTEST/013_Iroise_ideal_case_coupling/1_INPUT_MNH/get_pgd_files
@@ -1,3 +1,4 @@
+#!/bin/bash
 #
 #     Modif
 #     J.Escobar 11/04/2014 get PGD files from 'dir_open' directory ( without psswd )
diff --git a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz
index 0d4a2f9bc3923e3a29e6e48da9c8d799360847b8..7c075de7c95751927747bc74ce5331a9e645eb16 100755
--- a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/clean_prep_ideal_case_xyz
@@ -1 +1,2 @@
+#!/bin/bash
 rm -f SCHAR-JUNGFRAU.* OUTPUT_LISTING* pipe* *.tex file_for_xtransfer
diff --git a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz
index 7cceb12bf853e6f64fb7b3b75281308b12c3106f..228ed37ae65e0acc6fc6afcf13643ca4bf3f6e6f 100755
--- a/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz
+++ b/MY_RUN/KTEST/014_LIMA/001_prep_ideal_case/run_prep_ideal_case_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz b/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz
index 837f7fae1e173c05fab37fbf4eaf8a07b5d60ac0..6cba405053453ae714987c5aa240bcfe9c293fe9 100755
--- a/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz
+++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/clean_mesonh_xyz
@@ -1,2 +1,3 @@
+#!/bin/bash
 rm -f SCHAR-JUNGFRAU* pipe_name PRESSURE file_for_xtransfer
 rm -f XPREF.1.SEG01* OUT*
diff --git a/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz
index 2217236add7c38348207e42bad84f08b787c44bb..77977e8ed7f45f28eaf5f5a3740979b3153e3558 100755
--- a/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/014_LIMA/002_mesonh/run_mesonh_xyz
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl
index 1238c9b0fc6bf2b92d06c8c83e49e35565b3ac08..ef83c16a5de17b683dd873050ef83dedfa0a005d 100755
--- a/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl
+++ b/MY_RUN/KTEST/014_LIMA/003_ncl/clean_ncl
@@ -1,2 +1,2 @@
-
+#!/bin/bash
 rm -f  *.nc *.png
diff --git a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl
index e4da2340c321aa464d7e891ee56364e2fabbe473..63e7d910aeb3ee2c8763ff8b970ea94992e1ddbd 100755
--- a/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl
+++ b/MY_RUN/KTEST/014_LIMA/003_ncl/run_ncl
@@ -1,3 +1,4 @@
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_aeropc_default b/conf/post/confdollar_aeropc_default
index d3098464496ad7f966858b1331f8cd6847671fd4..9f48f71ffe717b200dab635542d99bc328684f69 100755
--- a/conf/post/confdollar_aeropc_default
+++ b/conf/post/confdollar_aeropc_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_babel_default b/conf/post/confdollar_babel_default
index f4e621f2510411171683876ecd6961972a757feb..def43a3948591e9feeb4845e50ea852ebb39aa32 100755
--- a/conf/post/confdollar_babel_default
+++ b/conf/post/confdollar_babel_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_brodie_default b/conf/post/confdollar_brodie_default
index 69b9fdf40fce715cee3e83f0773213869b43e467..a5df9201519f7190e595291c2bfef01f5e44afa0 100755
--- a/conf/post/confdollar_brodie_default
+++ b/conf/post/confdollar_brodie_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_c1a_default b/conf/post/confdollar_c1a_default
index be07b4b1a8aa80ad637063e160366cf2bb518e5b..ec80ed44fd5f656be1176e5082256eb7fc51d649 100755
--- a/conf/post/confdollar_c1a_default
+++ b/conf/post/confdollar_c1a_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_cnrmpc_default b/conf/post/confdollar_cnrmpc_default
index 1ca5a914ec7b01affadb25bdce8b642301029af6..5bf51d02bce359ee79fed59fb8bc647d9566eedc 100644
--- a/conf/post/confdollar_cnrmpc_default
+++ b/conf/post/confdollar_cnrmpc_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_dsinec_default b/conf/post/confdollar_dsinec_default
index 3463e294c8a156ce83a4736e8b82b7447bdd1f43..6cbb81e1e1928a8d462897d9b11d105bdfc70c44 100755
--- a/conf/post/confdollar_dsinec_default
+++ b/conf/post/confdollar_dsinec_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_eos_default b/conf/post/confdollar_eos_default
index 51adf76e8480cc66522089b8bf865bda1e51bf67..82c376ebf1a22e8ebe0bc61041bb8ed6f7991cf6 100755
--- a/conf/post/confdollar_eos_default
+++ b/conf/post/confdollar_eos_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_jade_default b/conf/post/confdollar_jade_default
index 21b6ba10bd265f98f92f76684efd86a14eee3dc9..b46a4ca3674d0cc60844b849c636b52c01811a5d 100755
--- a/conf/post/confdollar_jade_default
+++ b/conf/post/confdollar_jade_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_occigen_default b/conf/post/confdollar_occigen_default
index f69527eb587f170557dd59efb285c6db0a40cebf..04dd9654a2a92937b7e4bc0b752c4bcb657bd6e0 100755
--- a/conf/post/confdollar_occigen_default
+++ b/conf/post/confdollar_occigen_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_titane_default b/conf/post/confdollar_titane_default
index e75b9c37830a7209dbbd6c05d734cb497f1cc956..8cd933af1adad36acd3aa6d7cd312662c4d4eb3d 100755
--- a/conf/post/confdollar_titane_default
+++ b/conf/post/confdollar_titane_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_turing_default b/conf/post/confdollar_turing_default
index 6a44a25de1c3d0e941b5348e04e5cad6282c7a01..c2d3fd56b0a6c07b1caa95cbaf6961f8904fc0e0 100755
--- a/conf/post/confdollar_turing_default
+++ b/conf/post/confdollar_turing_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/conf/post/confdollar_vargas_default b/conf/post/confdollar_vargas_default
index a56463ba054dcd69762d6275eb731f250bc4c0d6..e58ab2373afae94e677acd99322994fce7252b10 100755
--- a/conf/post/confdollar_vargas_default
+++ b/conf/post/confdollar_vargas_default
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #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  
diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
deleted file mode 100644
index 86da117ed5743c6b1d1d05930909fccdd400e71a..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
+++ /dev/null
@@ -1,1428 +0,0 @@
-!MNH_LIC Copyright 1998-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.
-!-----------------------------------------------------------------
-!!    Authors
-!!    -------
-!
-!     R. Guivarch, D. Lugato    * CERFACS *
-!     Ph. Kloos                 * CERFACS - CNRM *
-!
-!!    Modifications
-!!    -------------
-!     Original 01/05/98
-!     Juan 19/08/2005:  modification INTENT -> INTENT(INOUT)
-!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
-!-----------------------------------------------------------------
-
-!
-!!     #################################################
-       SUBROUTINE ADD_FIELD2_ll( TPLIST_ll, TPHALO2_ll )
-!!     #################################################
-!
-  USE MODE_ARGSLIST2_ll, ONLY : E_ADD_FIELD2_ll => ADD_FIELD2_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll
-!
-  TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll
-  TYPE(HALO2_ll), TARGET      :: TPHALO2_ll
-!
-  CALL E_ADD_FIELD2_ll( TPLIST_ll, TPHALO2_ll )
-!
-       END SUBROUTINE ADD_FIELD2_ll
-!
-!!     ########################################################
-       SUBROUTINE DEL_FIELD2_ll( TPLIST_ll, TPHALO2_ll, KINFO )
-!!     ########################################################
-!
-  USE MODE_ARGSLIST2_ll, ONLY : E_DEL_FIELD2_ll => DEL_FIELD2_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll
-!
-  TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll
-  TYPE(HALO2_ll), TARGET      :: TPHALO2_ll
-  INTEGER                     :: KINFO
-!
-  CALL E_DEL_FIELD2_ll( TPLIST_ll, TPHALO2_ll, KINFO )
-!
-       END SUBROUTINE DEL_FIELD2_ll
-
-!
-!!     #######################################################
-       SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME )
-!!     #######################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_ADD1DFIELD_ll => ADD1DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
-!
-  CHARACTER(LEN=1), INTENT(IN) :: HDIR
-  TYPE(LIST1D_ll), POINTER     :: TPLIST
-  REAL, DIMENSION(:), TARGET   :: PFIELD
-  character(len=*), intent(in) :: HNAME ! Name of the field to be added
-!
-  CALL E_ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME )
-!
-       END SUBROUTINE ADD1DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME )
-!!     #################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_ADD2DFIELD_ll => ADD2DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER       :: TPLIST
-  REAL, DIMENSION(:,:), TARGET :: PFIELD
-  character(len=*), intent(in) :: HNAME ! Name of the field to be added
-!
-  CALL E_ADD2DFIELD_ll( TPLIST, PFIELD, HNAME )
-!
-       END SUBROUTINE ADD2DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME )
-!!     #################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_ADD3DFIELD_ll => ADD3DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER         :: TPLIST
-  REAL, DIMENSION(:,:,:), TARGET :: PFIELD
-  character(len=*), intent(in) :: HNAME ! Name of the field to be added
-!
-  CALL E_ADD3DFIELD_ll( TPLIST, PFIELD, HNAME )
-!
-       END SUBROUTINE ADD3DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME )
-!!     #################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_ADD4DFIELD_ll => ADD4DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  type(list_ll), pointer   :: tplist   ! list of fields
-  real, dimension(:,:,:,:),   intent(in) :: pfield   ! field to be added to the list of fields
-  character(len=*), intent(in) :: hname ! name of the field to be added
-!
-  CALL E_ADD4DFIELD_ll( TPLIST, PFIELD, HNAME )
-!
-       END SUBROUTINE ADD4DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE DEL1DFIELD_ll( TPLIST, PFIELD, KINFO )
-!!     #################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_DEL1DFIELD_ll => DEL1DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
-!
-  TYPE(LIST1D_ll), POINTER     :: TPLIST
-  REAL, DIMENSION(:), TARGET   :: PFIELD
-  INTEGER, INTENT(OUT)         :: KINFO
-!
-  CALL E_DEL1DFIELD_ll( TPLIST, PFIELD, KINFO )
-!
-       END SUBROUTINE DEL1DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE DEL2DFIELD_ll( TPLIST, PFIELD, KINFO )
-!!     #################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_DEL2DFIELD_ll => DEL2DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER       :: TPLIST
-  REAL, DIMENSION(:,:), TARGET :: PFIELD
-  INTEGER, INTENT(OUT)         :: KINFO
-!
-  CALL E_DEL2DFIELD_ll( TPLIST, PFIELD, KINFO )
-!
-       END SUBROUTINE DEL2DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE DEL3DFIELD_ll( TPLIST, PFIELD, KINFO )
-!!     #################################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_DEL3DFIELD_ll => DEL3DFIELD_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER         :: TPLIST
-  REAL, DIMENSION(:,:,:), TARGET :: PFIELD
-  INTEGER, INTENT(OUT)           :: KINFO
-!
-  CALL E_DEL3DFIELD_ll( TPLIST, PFIELD, KINFO )
-!
-       END SUBROUTINE DEL3DFIELD_ll
-!
-!!     #################################
-       SUBROUTINE CLEANLIST_ll( TPLIST )
-!!     #################################
-!
-  USE MODE_ARGSLIST_ll, ONLY : E_CLEANLIST_ll => CLEANLIST_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER     :: TPLIST
-!
-  CALL E_CLEANLIST_ll( TPLIST )
-!
-       END SUBROUTINE CLEANLIST_ll
-!
-!!     ##################################
-       SUBROUTINE END_PARA_ll( KINFO_ll )
-!!     ##################################
-!
-  USE MODE_INIT_ll, ONLY : E_END_PARA_ll => END_PARA_ll
-!
-  INTEGER, INTENT(OUT) :: KINFO_ll
-!
-  CALL E_END_PARA_ll( KINFO_ll )
-!
-       END SUBROUTINE END_PARA_ll
-!
-!!     ##################################################
-       SUBROUTINE  GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM )
-!!     ##################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_DIM_EXT_ll => GET_DIM_EXT_ll
-!
-  CHARACTER(len=1), INTENT(IN) :: HSPLIT
-  INTEGER, INTENT(OUT)    :: KXDIM, KYDIM
-!
-  CALL E_GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM )
-!
-       END SUBROUTINE GET_DIM_EXT_ll
-!
-!!     ###################################################
-       SUBROUTINE  GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM )
-!!     ###################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_DIM_PHYS_ll => GET_DIM_PHYS_ll
-!
-  CHARACTER(len=1), INTENT(IN) :: HSPLIT
-  INTEGER, INTENT(OUT)    :: KXDIM, KYDIM
-!
-  CALL E_GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM )
-!
-       END SUBROUTINE GET_DIM_PHYS_ll
-!
-!!     ##########################################
-       SUBROUTINE GET_OR_ll( HSPLIT, KXOR, KYOR )
-!!     ##########################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_OR_ll => GET_OR_ll
-!
-  CHARACTER(len=1), INTENT(IN) :: HSPLIT
-  INTEGER, INTENT(OUT)    :: KXOR, KYOR
-!
-  CALL E_GET_OR_ll( HSPLIT, KXOR, KYOR )
-!
-       END SUBROUTINE GET_OR_ll
-!
-!!     ####################################################
-       SUBROUTINE GET_INDICE_ll( KXOR, KYOR, KXEND, KYEND )
-!!     ####################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_INDICE_ll => GET_INDICE_ll
-!
-  INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND
-!
-  CALL E_GET_INDICE_ll( KXOR, KYOR, KXEND, KYEND )
-!
-       END SUBROUTINE GET_INDICE_ll
-!
-!!     ############################################
-       SUBROUTINE GET_GLOBALDIMS_ll( KIMAX, KJMAX )
-!!     ############################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_GLOBALDIMS_ll => GET_GLOBALDIMS_ll
-!
-  INTEGER, INTENT(OUT) :: KIMAX, KJMAX
-!
-  CALL E_GET_GLOBALDIMS_ll( KIMAX, KJMAX )
-!
-       END SUBROUTINE GET_GLOBALDIMS_ll
-!
-!!     ######################################################
-       SUBROUTINE GET_PHYSICAL_ll( KXOR, KYOR, KXEND, KYEND )
-!!     ######################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_PHYSICAL_ll => GET_PHYSICAL_ll
-!
-  INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND
-!
-  CALL E_GET_PHYSICAL_ll( KXOR, KYOR, KXEND, KYEND )
-!
-       END SUBROUTINE GET_PHYSICAL_ll
-!
-!!     ###############################################################
-       SUBROUTINE GET_INTERSECTION_ll( KXOR, KYOR, KXEND, KYEND, &
-                                       KXORI, KYORI, KXENDI, KYENDI, &
-                                       HDOM, KINFO, KIP )
-!!     ###############################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_INTERSECTION_ll => GET_INTERSECTION_ll
-!
-  CHARACTER(LEN=4), INTENT(IN)  :: HDOM
-  INTEGER, INTENT(IN)           :: KXOR, KYOR, KXEND, KYEND
-  INTEGER, INTENT(OUT)          :: KXORI, KYORI, KXENDI, KYENDI
-  INTEGER, INTENT(OUT)          :: KINFO
-  INTEGER, INTENT(IN), OPTIONAL :: KIP
-!
-  CALL E_GET_INTERSECTION_ll( KXOR, KYOR, KXEND, KYEND, &
-                              KXORI, KYORI, KXENDI, KYENDI, &
-                              HDOM, KINFO, KIP )
-!
-       END SUBROUTINE GET_INTERSECTION_ll
-!
-!!  ####################################################################
-    SUBROUTINE GET_1DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, &
-                                     KB, KE, KERR )
-!!  ####################################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_1DGLOBALSLICE_ll => GET_1DGLOBALSLICE_ll
-!
-  REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY
-  CHARACTER(LEN=1), INTENT(IN)             :: HDIR
-  INTEGER, INTENT(IN)                      :: KLOC
-  REAL, DIMENSION(:), INTENT(OUT)          :: PGLOBALSLICE
-  INTEGER, OPTIONAL                        :: KB, KE, KERR
-!
-  CALL E_GET_1DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, KB, KE, KERR )
-!
-       END SUBROUTINE GET_1DGLOBALSLICE_ll
-!
-!!  ####################################################################
-    SUBROUTINE GET_2DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, &
-                                     KB, KE, KKB, KKE, KERR )
-!!  ####################################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_2DGLOBALSLICE_ll => GET_2DGLOBALSLICE_ll
-!
-  REAL, DIMENSION(:,:,:) :: PARRAY
-  CHARACTER(LEN=1)       :: HDIR
-  INTEGER                :: KLOC
-  REAL, DIMENSION(:,:)   :: PGLOBALSLICE
-  INTEGER, OPTIONAL      :: KB, KE, KKB, KKE, KERR
-!
-  CALL E_GET_2DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, &
-                               KB, KE, KKB, KKE, KERR )
-!
-       END SUBROUTINE GET_2DGLOBALSLICE_ll
-!
-!!  #####################################################################
-    SUBROUTINE GET_1DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, KB, KE, KERR )
-!!  #####################################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_1DSLICE_ll => GET_1DSLICE_ll
-!
-  REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY
-  CHARACTER(LEN=1), INTENT(IN)             :: HDIR
-  INTEGER, INTENT(IN)                      :: KLOC
-  REAL, DIMENSION(:), INTENT(OUT)          :: PSLICE
-  INTEGER, OPTIONAL                        :: KB, KE, KERR
-!
-  CALL E_GET_1DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, KB, KE, KERR )
-!
-       END SUBROUTINE GET_1DSLICE_ll
-!
-!!  ########################################################
-    SUBROUTINE GET_2DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, &
-                               KB, KE, KKB, KKE, KERR )
-!!  ########################################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_GET_2DSLICE_ll => GET_2DSLICE_ll
-!
-  REAL, DIMENSION(:,:,:) :: PARRAY
-  CHARACTER(LEN=1)       :: HDIR
-  INTEGER                :: KLOC
-  REAL, DIMENSION(:,:)   :: PSLICE
-  INTEGER, OPTIONAL      :: KB, KE, KKB, KKE, KERR
-!
-  CALL E_GET_2DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, &
-                         KB, KE, KKB, KKE, KERR )
-!
-       END SUBROUTINE GET_2DSLICE_ll
-!
-!!     ##################################
-       SUBROUTINE INI_PARA_ll( KINFO_ll )
-!!     ##################################
-!
-  USE MODE_INIT_ll, ONLY : E_INI_PARA_ll => INI_PARA_ll
-!
-  INTEGER, INTENT(OUT) :: KINFO_ll
-!
-  CALL E_INI_PARA_ll( KINFO_ll )
-!
-       END SUBROUTINE INI_PARA_ll
-!
-!     #########################################
-      SUBROUTINE SET_SPLITTING_ll( HSPLITTING )
-!     #########################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_SPLITTING_ll=>SET_SPLITTING_ll
-!
-  CHARACTER(LEN=*) :: HSPLITTING
-!
-  CALL E_SET_SPLITTING_ll(HSPLITTING)
-!
-       END SUBROUTINE SET_SPLITTING_ll
-!
-!     ##################################
-      SUBROUTINE SET_LBX_ll( KLBX, KMI )
-!     ##################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_LBX_ll=>SET_LBX_ll
-!
-  CHARACTER(LEN=*) :: KLBX
-  INTEGER          :: KMI
-!
-  CALL E_SET_LBX_ll(KLBX, KMI)
-!
-       END SUBROUTINE SET_LBX_ll
-!
-!     ##################################
-      SUBROUTINE SET_LBY_ll( KLBY, KMI )
-!     ###################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_LBY_ll=>SET_LBY_ll
-!
-  CHARACTER(LEN=*) :: KLBY
-  INTEGER          :: KMI
-!
-  CALL E_SET_LBY_ll(KLBY, KMI)
-!
-       END SUBROUTINE SET_LBY_ll
-!
-!     ############################################
-      SUBROUTINE SET_LBSIZEX_ll( KNBRIM, KRIMTAB )
-!     ############################################
-!
-  USE MODE_LB_ll, ONLY : E_SET_LBSIZEX_ll => SET_LBSIZEX_ll
-!
-  INTEGER               :: KNBRIM
-  INTEGER, DIMENSION(:) :: KRIMTAB
-!
-  CALL E_SET_LBSIZEX_ll(KNBRIM, KRIMTAB)
-!
-       END SUBROUTINE SET_LBSIZEX_ll
-!
-!     ############################################
-      SUBROUTINE SET_LBSIZEY_ll( KNBRIM, KRIMTAB )
-!     ############################################
-!
-  USE MODE_LB_ll, ONLY : E_SET_LBSIZEY_ll => SET_LBSIZEY_ll
-!
-  INTEGER               :: KNBRIM
-  INTEGER, DIMENSION(:) :: KRIMTAB
-!
-  CALL E_SET_LBSIZEY_ll(KNBRIM, KRIMTAB)
-!
-       END SUBROUTINE SET_LBSIZEY_ll
-!
-!     ###################################
-      SUBROUTINE SET_DIM_ll( KX, KY, KZ )
-!     ###################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_DIM_ll=>SET_DIM_ll
-!
-  INTEGER :: KX,KY,KZ
-!
-  CALL E_SET_DIM_ll(KX, KY, KZ)
-!
-       END SUBROUTINE SET_DIM_ll
-!
-!     #######################################################
-      SUBROUTINE SET_JP_ll( KMODELMAX, KHEXT, KVEXT, KPHALO )
-!     #######################################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_JP_ll=>SET_JP_ll
-  IMPLICIT NONE 
-!
-  INTEGER :: KMODELMAX, KHEXT, KVEXT, KPHALO
-!
-  CALL E_SET_JP_ll(KMODELMAX, KHEXT, KVEXT, KPHALO)
-!
-       END SUBROUTINE SET_JP_ll
-!
-!     ########################################
-      SUBROUTINE SET_XRATIO_ll( KXRATIO, KMI )
-!     ########################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_XRATIO_ll=>SET_XRATIO_ll
-!
-  INTEGER :: KXRATIO, KMI
-!
-  CALL E_SET_XRATIO_ll(KXRATIO, KMI)
-!
-       END SUBROUTINE SET_XRATIO_ll
-!
-!     ########################################
-      SUBROUTINE SET_YRATIO_ll( KYRATIO, KMI )
-!     ########################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_YRATIO_ll=>SET_YRATIO_ll
-!
- INTEGER :: KYRATIO, KMI
-!
-  CALL E_SET_YRATIO_ll(KYRATIO, KMI)
-!
-       END SUBROUTINE SET_YRATIO_ll
-!
-!     ##################################
-      SUBROUTINE SET_DAD_ll( KDAD, KMI )
-!     ##################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_DAD_ll=>SET_DAD_ll
-!
-  INTEGER :: KDAD, KMI
-!
-  CALL E_SET_DAD_ll(KDAD, KMI)
-!
-       END SUBROUTINE SET_DAD_ll
-!
-!     ##################################
-      SUBROUTINE SET_XOR_ll( KXOR, KMI )
-!     ##################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_XOR_ll=>SET_XOR_ll
-!
-  INTEGER :: KXOR, KMI
-!
-  CALL E_SET_XOR_ll(KXOR, KMI)
-!
-       END SUBROUTINE SET_XOR_ll
-!
-!     ####################################
-      SUBROUTINE SET_XEND_ll( KXEND, KMI )
-!     ####################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_XEND_ll=>SET_XEND_ll
-!
-  INTEGER :: KXEND, KMI
-!
-  CALL E_SET_XEND_ll(KXEND, KMI)
-! 
-       END SUBROUTINE SET_XEND_ll
-!
-!     ##################################
-      SUBROUTINE SET_YOR_ll( KYOR, KMI )
-!     ##################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_YOR_ll=>SET_YOR_ll
-!
-  INTEGER :: KYOR, KMI
-!
-  CALL E_SET_YOR_ll(KYOR, KMI)
-!
-       END SUBROUTINE SET_YOR_ll
-!
-!     ####################################
-      SUBROUTINE SET_YEND_ll( KYEND, KMI )
-!     ####################################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_YEND_ll=>SET_YEND_ll
-!
-  INTEGER :: KYEND, KMI
-!
-  CALL E_SET_YEND_ll(KYEND, KMI)
-!
-       END SUBROUTINE SET_YEND_ll
-!
-!     ########################
-      SUBROUTINE SET_DAD0_ll()
-!     ########################
-!
-  USE MODE_INIT_ll, ONLY : E_SET_DAD0_ll=>SET_DAD0_ll
-!
-  CALL E_SET_DAD0_ll()
-!
-       END SUBROUTINE SET_DAD0_ll
-!
-!     #######################
-      SUBROUTINE INIT_LB_ll()
-!     #######################
-!
-  USE MODE_LB_ll, ONLY : E_INIT_LB_ll => INIT_LB_ll
-!
-  CALL E_INIT_LB_ll()
-!
-       END SUBROUTINE INIT_LB_ll
-!
-!     #######################
-      SUBROUTINE SET_LB_FIELD_ll(HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, &
-        SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH )
-!     #######################
-!
-  USE MODE_LB_ll, ONLY : E_SET_LB_FIELD_ll => SET_LB_FIELD_ll
-!
-  CHARACTER(LEN=*),INTENT(IN) :: HLBTYPE ! LB type : 'LB','LBU'
-  REAL, DIMENSION(:,:,:), INTENT(IN)  :: PFIELD      ! field on the whole domain (or subdomain)
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBXFIELD    ! LB field - X direction
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBYFIELD    ! LB field - Y direction
-  !beginning and end of the local physical subdomain
-  INTEGER, INTENT(IN)   :: IIB            ! indice I Beginning in x direction
-  INTEGER, INTENT(IN)   :: IJB            ! indice J Beginning in y direction
-  INTEGER, INTENT(IN)   :: IIE            ! indice I End       in x direction
-  INTEGER, INTENT(IN)   :: IJE            ! indice J End       in y direction
-  INTEGER, INTENT(IN)   :: SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ! shifting applied to the indices copied from PFIELD in each direction
-                                                                        ! it is used for LBXUM et LBXVM
-                                                                        ! I do not know why...
-!
-  CALL E_SET_LB_FIELD_ll(HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, &
-        SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH )
-!
-       END SUBROUTINE SET_LB_FIELD_ll
-!
-!!     ###################################
-       FUNCTION LNORTH_ll( K, HSPLITTING )
-!!     ###################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_LNORTH_ll => LNORTH_ll
-!
-  LOGICAL                           :: LNORTH_ll
-  INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
-!
-  LNORTH_ll=E_LNORTH_ll( K, HSPLITTING )
-!
-       END FUNCTION LNORTH_ll
-!
-!!     ##################################
-       FUNCTION LWEST_ll( K, HSPLITTING )
-!!     ##################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_LWEST_ll => LWEST_ll
-!
-  LOGICAL                           :: LWEST_ll  
-  INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
-!
-  LWEST_ll=E_LWEST_ll( K, HSPLITTING )
-!
-       END FUNCTION LWEST_ll
-!
-!!     ##################################
-       FUNCTION LEAST_ll( K, HSPLITTING )
-!!     ##################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_LEAST_ll => LEAST_ll
-!
-  LOGICAL                           :: LEAST_ll
-  INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
-!
-  LEAST_ll=E_LEAST_ll( K, HSPLITTING )
-!
-       END FUNCTION LEAST_ll
-!
-!!     ###########################################
-       FUNCTION LSOUTH_ll( K, HSPLITTING )
-!!     ###########################################
-!
-  USE MODE_TOOLS_ll, ONLY : E_LSOUTH_ll => LSOUTH_ll
-!
-  LOGICAL                           :: LSOUTH_ll
-  INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
-!
-  LSOUTH_ll=E_LSOUTH_ll( K, HSPLITTING )
-!
-       END FUNCTION LSOUTH_ll
-!
-!     ###############################################
-      SUBROUTINE GET_MODEL_NUMBER_ll( KMODEL_NUMBER )
-!     ###############################################
-!
-  USE MODE_NEST_ll, ONLY : E_GET_MODEL_NUMBER_ll => GET_MODEL_NUMBER_ll
-!
-  INTEGER :: KMODEL_NUMBER
-!
-  CALL E_GET_MODEL_NUMBER_ll( KMODEL_NUMBER )
-!
-      END SUBROUTINE GET_MODEL_NUMBER_ll
-!
-!     ####################################################
-      SUBROUTINE GET_CHILD_DIM_ll( KCHILD, KX, KY, KINFO )
-!     ####################################################
-!
-  USE MODE_NEST_ll, ONLY : E_GET_CHILD_DIM_ll => GET_CHILD_DIM_ll
-!
-  INTEGER, INTENT(IN) :: KCHILD
-!
-  INTEGER, INTENT(OUT) :: KX, KY
-!
-  INTEGER, INTENT(OUT) :: KINFO
-!
-  CALL E_GET_CHILD_DIM_ll( KCHILD, KX, KY, KINFO )
-!
-       END SUBROUTINE GET_CHILD_DIM_ll
-!
-!     ###################################################################
-      SUBROUTINE GET_FEEDBACK_COORD_ll( KXOR, KYOR, KXEND, KYEND, KINFO )
-!     ###################################################################
-!
-  USE MODE_NEST_ll, ONLY : E_GET_FEEDBACK_COORD_ll => GET_FEEDBACK_COORD_ll
-!
-  INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND
-  INTEGER, INTENT(OUT) :: KINFO
-!
-  CALL E_GET_FEEDBACK_COORD_ll( KXOR, KYOR, KXEND, KYEND, KINFO )
-!
-       END SUBROUTINE GET_FEEDBACK_COORD_ll
-!
-!     #############################################################
-      SUBROUTINE SET_LS2DFIELD_1WAY_ll( P2DFIELD, PTFIELD, KMODEL )
-!     #############################################################
-!
-  USE MODE_LS_ll, ONLY : E_SET_LS2DFIELD_1WAY_ll => SET_LS2DFIELD_1WAY_ll
-!
-  REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD
-  INTEGER, INTENT(IN)                      :: KMODEL
-!
-  CALL E_SET_LS2DFIELD_1WAY_ll( P2DFIELD, PTFIELD, KMODEL )
-!
-       END SUBROUTINE SET_LS2DFIELD_1WAY_ll
-!
-!     #############################################################
-      SUBROUTINE SET_LS3DFIELD_1WAY_ll( P3DFIELD, PTFIELD, KMODEL )
-!     #############################################################
-!
-  USE MODE_LS_ll, ONLY : E_SET_LS3DFIELD_1WAY_ll => SET_LS3DFIELD_1WAY_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD
-  INTEGER, INTENT(IN)                        :: KMODEL
-!
-  CALL E_SET_LS3DFIELD_1WAY_ll( P3DFIELD, PTFIELD, KMODEL )
-!
-       END SUBROUTINE SET_LS3DFIELD_1WAY_ll
-!
-!     ##################################
-      SUBROUTINE UNSET_LSFIELD_1WAY_ll()
-!     ##################################
-!
-  USE MODE_LS_ll, ONLY : E_UNSET_LSFIELD_1WAY_ll => UNSET_LSFIELD_1WAY_ll
-!
-  CALL E_UNSET_LSFIELD_1WAY_ll()
-!
-       END SUBROUTINE UNSET_LSFIELD_1WAY_ll
-!
-!     #####################################################
-      SUBROUTINE SET_LS2DFIELD_2WAY_ll( P2DFIELD, PTFIELD )
-!     #####################################################
-!
-  USE MODE_LS_ll, ONLY : E_SET_LS2DFIELD_2WAY_ll => SET_LS2DFIELD_2WAY_ll
-!
-  REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD
-!
-  CALL E_SET_LS2DFIELD_2WAY_ll( P2DFIELD, PTFIELD )
-!
-       END SUBROUTINE SET_LS2DFIELD_2WAY_ll
-!
-!     #####################################################
-      SUBROUTINE SET_LS3DFIELD_2WAY_ll( P3DFIELD, PTFIELD )
-!     #####################################################
-!
-  USE MODE_LS_ll, ONLY : E_SET_LS3DFIELD_2WAY_ll => SET_LS3DFIELD_2WAY_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD
-!
-  CALL E_SET_LS3DFIELD_2WAY_ll( P3DFIELD, PTFIELD )
-!
-       END SUBROUTINE SET_LS3DFIELD_2WAY_ll
-!
-!     ##########################################
-      SUBROUTINE UNSET_LSFIELD_2WAY_ll( KMODEL )
-!     ##########################################
-!
-  USE MODE_LS_ll, ONLY : E_UNSET_LSFIELD_2WAY_ll => UNSET_LSFIELD_2WAY_ll
-!
-  INTEGER, INTENT(IN) :: KMODEL
-!
-  CALL E_UNSET_LSFIELD_2WAY_ll( KMODEL )
-!
-       END SUBROUTINE UNSET_LSFIELD_2WAY_ll
-!
-!     #########################################
-      SUBROUTINE LS_FORCING_ll( KCHILD, KINFO, OEXTRAPOL, OCYCLIC_EXTRAPOL )
-!     #########################################
-!
-  USE MODE_LS_ll, ONLY : E_LS_FORCING_ll => LS_FORCING_ll
-!
-  INTEGER, INTENT(IN)  :: KCHILD
-  INTEGER, INTENT(OUT) :: KINFO
-  LOGICAL, OPTIONAL, INTENT(IN) :: OEXTRAPOL
-  LOGICAL, OPTIONAL, INTENT(IN) :: OCYCLIC_EXTRAPOL
-!
-  IF ( PRESENT(OEXTRAPOL) .AND. PRESENT(OCYCLIC_EXTRAPOL) ) THEN
-    CALL E_LS_FORCING_ll(  KCHILD, KINFO, OEXTRAPOL, OCYCLIC_EXTRAPOL )
-  ELSEIF ( PRESENT(OEXTRAPOL) ) THEN
-    CALL E_LS_FORCING_ll(  KCHILD, KINFO, OEXTRAPOL )
-  ELSE
-    CALL E_LS_FORCING_ll(  KCHILD, KINFO )
-  ENDIF
-!
-       END SUBROUTINE LS_FORCING_ll
-!
-!     ###################################
-      SUBROUTINE LS_FEEDBACK_ll( KINFO  )
-!     ###################################
-!
-  USE MODE_LS_ll, ONLY : E_LS_FEEDBACK_ll => LS_FEEDBACK_ll
-!
-  INTEGER, INTENT(OUT) :: KINFO
-!
-  CALL E_LS_FEEDBACK_ll( KINFO )
-!
-       END SUBROUTINE LS_FEEDBACK_ll
-!
-!     ##############################################################
-      SUBROUTINE SET_LB2DFIELD_ll( P2DFIELD, PTFIELD, KFINELBSIZE, &
-                                   HSIDE, KMODEL )
-!     ##############################################################
-!
-  USE MODE_LB_ll, ONLY : E_SET_LB2DFIELD_ll => SET_LB2DFIELD_ll
-!
-  REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD
-  INTEGER, INTENT(IN)                      :: KFINELBSIZE, KMODEL
-  CHARACTER(LEN=*), INTENT(IN)             :: HSIDE
-!
-  CALL E_SET_LB2DFIELD_ll( P2DFIELD, PTFIELD, KFINELBSIZE, &
-                           HSIDE, KMODEL ) 
-!
-       END SUBROUTINE SET_LB2DFIELD_ll
-!
-!     ##############################################################
-      SUBROUTINE SET_LB3DFIELD_ll( P3DFIELD, PTFIELD, KFINELBSIZE, &
-                                   HSIDE, KMODEL )
-!     ##############################################################
-!
-  USE MODE_LB_ll, ONLY : E_SET_LB3DFIELD_ll => SET_LB3DFIELD_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD
-  INTEGER, INTENT(IN)                        :: KFINELBSIZE, KMODEL
-  CHARACTER(LEN=*), INTENT(IN)               :: HSIDE
-!
-  CALL E_SET_LB3DFIELD_ll( P3DFIELD, PTFIELD, KFINELBSIZE, &
-                           HSIDE, KMODEL )
-!
-       END SUBROUTINE SET_LB3DFIELD_ll
-!
-!     #############################
-      SUBROUTINE UNSET_LBFIELD_ll()
-!     #############################
-!
-  USE MODE_LB_ll, ONLY : E_UNSET_LBFIELD_ll => UNSET_LBFIELD_ll
-!
-  CALL E_UNSET_LBFIELD_ll()
-!
-       END SUBROUTINE UNSET_LBFIELD_ll
-!
-!     #########################################
-      SUBROUTINE LB_FORCING_ll( KCHILD, KINFO )
-!     #########################################
-!
-  USE MODE_LB_ll, ONLY : E_LB_FORCING_ll => LB_FORCING_ll
-!
-  INTEGER, INTENT(IN)  :: KCHILD
-  INTEGER, INTENT(OUT) :: KINFO
-!
-   CALL E_LB_FORCING_ll( KCHILD, KINFO )
-!
-       END SUBROUTINE LB_FORCING_ll
-!
-!!     ###########################################################
-       FUNCTION LBFINE2COARSE( KRATIO, KLBSIZE ) RESULT( KCOARSE )
-!!     ###########################################################
-!
-  USE MODE_NEST_ll, ONLY : E_LBFINE2COARSE => LBFINE2COARSE
-  IMPLICIT NONE
-!
-  INTEGER :: KCOARSE
-  INTEGER :: KRATIO, KLBSIZE
-!
-  KCOARSE = E_LBFINE2COARSE( KRATIO, KLBSIZE )
-!
-       END FUNCTION LBFINE2COARSE
-!
-!     #########################################
-      SUBROUTINE GO_TOMODEL_ll( KMODEL, KINFO )
-!     #########################################
-!
-  USE MODE_NEST_ll, ONLY : E_GO_TOMODEL_ll => GO_TOMODEL_ll
-  IMPLICIT NONE
-!
-  INTEGER :: KMODEL, KINFO
-!
-  CALL E_GO_TOMODEL_ll( KMODEL, KINFO )
-!
-       END SUBROUTINE GO_TOMODEL_ll
-!
-!!     ########################################################
-       SUBROUTINE REMAP_2WAY_X_ll( PFIELDIN, PFIELDOUT, KINFO )
-!!     ########################################################
-!
-  USE MODE_EXCHANGE_ll, ONLY : E_REMAP_2WAY_X_ll => REMAP_2WAY_X_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(INOUT)  :: PFIELDIN
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT
-  INTEGER                             :: KINFO
-!
-  CALL E_REMAP_2WAY_X_ll( PFIELDIN, PFIELDOUT, KINFO )
-!
-       END SUBROUTINE REMAP_2WAY_X_ll
-!
-!     ########################################################
-      SUBROUTINE REMAP_X_2WAY_ll( PFIELDIN, PFIELDOUT, KINFO )
-!     ########################################################
-!
-  USE MODE_EXCHANGE_ll, ONLY : E_REMAP_X_2WAY_ll => REMAP_X_2WAY_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(INOUT)  :: PFIELDIN
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT
-  INTEGER                             :: KINFO
-!
-  CALL E_REMAP_X_2WAY_ll( PFIELDIN, PFIELDOUT, KINFO )
-!
-       END SUBROUTINE REMAP_X_2WAY_ll
-!
-!     #####################################################
-      SUBROUTINE REMAP_X_Y_ll( PFIELDIN, PFIELDOUT, KINFO )
-!     #####################################################
-!
-  USE MODE_EXCHANGE_ll, ONLY : E_REMAP_X_Y_ll => REMAP_X_Y_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(INOUT)  :: PFIELDIN
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT
-  INTEGER                             :: KINFO
-!
-  CALL E_REMAP_X_Y_ll( PFIELDIN, PFIELDOUT, KINFO )
-!
-       END SUBROUTINE REMAP_X_Y_ll
-!
-!     #####################################################
-      SUBROUTINE REMAP_Y_X_ll( PFIELDIN, PFIELDOUT, KINFO )
-!     #####################################################
-!
-  USE MODE_EXCHANGE_ll, ONLY : E_REMAP_Y_X_ll => REMAP_Y_X_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(INOUT)  :: PFIELDIN
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFIELDOUT
-  INTEGER                             :: KINFO
-!
-  CALL E_REMAP_Y_X_ll( PFIELDIN, PFIELDOUT, KINFO )
-!
-       END SUBROUTINE REMAP_Y_X_ll
-!
-!!     #######################################################
-       FUNCTION EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                            KXEND, KYEND, KZEND )
-!!     #######################################################
-!
-  USE MODE_SUM_ll, ONLY : E_EXTRACT_ll => EXTRACT_ll
-!
-  REAL, DIMENSION(:,:,:), POINTER    :: EXTRACT_ll
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  INTEGER, INTENT(OUT)               :: KINFO
-  INTEGER, OPTIONAL, INTENT(IN)      :: KXOR, KYOR, KZOR, &
-                                        KXEND, KYEND, KZEND
-!
-  EXTRACT_ll => E_EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                              KXEND, KYEND, KZEND )
-!
-       END FUNCTION EXTRACT_ll
-!
-!!     ###########################################################
-       FUNCTION SUM1D_ll( PFIELD, KDIR, KINFO, KXOR, KYOR, KZOR, &
-                           KXEND, KYEND, KZEND )
-!!     ###########################################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUM1D_ll => SUM1D_ll
-!
-  REAL, DIMENSION(:,:), POINTER      :: SUM1D_ll
-  INTEGER, INTENT(IN)                :: KDIR
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  INTEGER, INTENT(OUT)               :: KINFO
-  INTEGER, OPTIONAL, INTENT(IN)      :: KXOR, KYOR, KZOR, &
-                                        KXEND, KYEND, KZEND
-!
-  SUM1D_ll => E_SUM1D_ll( PFIELD, KDIR, KINFO, KXOR, KYOR, KZOR, &
-                        KXEND, KYEND, KZEND )
-!
-       END FUNCTION SUM1D_ll
-!
-!!     ###################################################################
-       FUNCTION SUM2D_ll( PFIELD, KDIR1, KDIR2, KINFO, KXOR, KYOR, KZOR, &
-                          KXEND, KYEND, KZEND )
-!!     ###################################################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUM2D_ll => SUM2D_ll
-!
-  REAL, DIMENSION(:), POINTER        :: SUM2D_ll
-  INTEGER, INTENT(IN)                :: KDIR1, KDIR2
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  INTEGER, INTENT(OUT)               :: KINFO
-  INTEGER, OPTIONAL, INTENT(IN)      :: KXOR, KYOR, KZOR, &
-                                        KXEND, KYEND, KZEND
-!
-  SUM2D_ll => E_SUM2D_ll( PFIELD, KDIR1, KDIR2, KINFO, KXOR, KYOR, KZOR, &
-                          KXEND, KYEND, KZEND )
-!
-       END FUNCTION SUM2D_ll
-!
-!!     #####################################################
-       FUNCTION SUM3D_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                          KXEND, KYEND, KZEND )
-!!     #####################################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUM3D_ll => SUM3D_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  INTEGER, INTENT(OUT)               :: KINFO
-  INTEGER, OPTIONAL, INTENT(IN)      :: KXOR, KYOR, KZOR, &
-                                        KXEND, KYEND, KZEND
-!
-  SUM3D_ll = E_SUM3D_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                          KXEND, KYEND, KZEND )
-!
-       END FUNCTION SUM3D_ll
-!
-!!     #######################################################################
-       FUNCTION SUM_1DFIELD_ll( PFIELD, HDIR, KOR, KEND, KERR ) RESULT( ZSUM )
-!!     #######################################################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUM_1DFIELD_ll => SUM_1DFIELD_ll
-!
-  REAL, DIMENSION(:), INTENT(IN) :: PFIELD
-  CHARACTER(LEN=1)               :: HDIR
-  INTEGER, OPTIONAL, INTENT(OUT) :: KERR
-  INTEGER, OPTIONAL, INTENT(IN)  :: KOR, KEND
-  REAL                           :: ZSUM
-!
-  ZSUM = E_SUM_1DFIELD_ll( PFIELD, HDIR, KOR, KEND, KERR )
-!
-       END FUNCTION SUM_1DFIELD_ll
-!
-!!     ###################################################
-       FUNCTION MAX_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                             KXEND, KYEND, KZEND )
-!!     ###################################################
-!
-  USE MODE_SUM_ll, ONLY : E_MAX_ll => MAX_ll
-!
-  REAL                               :: MAX_ll
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  INTEGER, INTENT(OUT)               :: KINFO
-  INTEGER, OPTIONAL, INTENT(IN)      :: KXOR, KYOR, KZOR, &
-                                        KXEND, KYEND, KZEND
-!
-  MAX_ll = E_MAX_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                     KXEND, KYEND, KZEND )
-!
-       END FUNCTION MAX_ll
-!
-!!     ###################################################
-       FUNCTION MIN_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                             KXEND, KYEND, KZEND )
-!!     ###################################################
-!
-  USE MODE_SUM_ll, ONLY : E_MIN_ll => MIN_ll
-!
-  REAL                               :: MIN_ll
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  INTEGER, INTENT(OUT)               :: KINFO
-  INTEGER, OPTIONAL, INTENT(IN)      :: KXOR, KYOR, KZOR, &
-                                         KXEND, KYEND, KZEND
-!
-  MIN_ll = E_MIN_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                             KXEND, KYEND, KZEND )
-!
-       END FUNCTION MIN_ll
-!
-!!     ###########################################
-       FUNCTION SUMMASK_ll( PFIELD, OMASK, KINFO )
-!!     ###########################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUMMASK_ll => SUMMASK_ll
-!
-  REAL, DIMENSION(:), POINTER         :: SUMMASK_ll
-  REAL, DIMENSION(:,:,:), INTENT(IN)  :: PFIELD
-  LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK
-  INTEGER, INTENT(OUT)                :: KINFO
-!
-  SUMMASK_ll => E_SUMMASK_ll( PFIELD, OMASK, KINFO )
-!
-       END FUNCTION SUMMASK_ll
-!
-!!     ###############################################
-       FUNCTION SUMMASKCOMP_ll( PFIELD, OMASK, KINFO )
-!!     ###############################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUMMASKCOMP_ll => SUMMASKCOMP_ll
-!
-  REAL                                :: SUMMASKCOMP_ll
-  REAL, DIMENSION(:,:,:), INTENT(IN)  :: PFIELD
-  LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK
-  INTEGER, INTENT(OUT)                :: KINFO
-!
-  SUMMASKCOMP_ll = E_SUMMASKCOMP_ll( PFIELD, OMASK, KINFO )
-!
-       END FUNCTION SUMMASKCOMP_ll
-!
-!!     #############################################
-       SUBROUTINE SUM_DIM1_ll( PFIELD, PRES, KINFO )
-!!     #############################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUM_DIM1_ll => SUM_DIM1_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  REAL, DIMENSION(:,:), INTENT(OUT)  :: PRES
-  INTEGER, INTENT(OUT)               :: KINFO
-!
-  CALL E_SUM_DIM1_ll( PFIELD, PRES, KINFO )
-!
-       END SUBROUTINE SUM_DIM1_ll
-!
-!!     #############################################
-       SUBROUTINE SUM_DIM2_ll( PFIELD, PRES, KINFO )
-!!     #############################################
-!
-  USE MODE_SUM_ll, ONLY : E_SUM_DIM2_ll => SUM_DIM2_ll
-!
-  REAL, DIMENSION(:), INTENT(IN)  :: PFIELD
-  REAL, DIMENSION(:), INTENT(OUT) :: PRES
-  INTEGER, INTENT(OUT)            :: KINFO
-!
-  CALL E_SUM_DIM2_ll( PFIELD, PRES, KINFO )
-!
-       END SUBROUTINE SUM_DIM2_ll
-!
-!!     #######################################################
-       FUNCTION GMAXLOC3D_ll( PARRAY, MASK ) RESULT( KMAXLOC )
-!!     #######################################################
-!
-  USE MODE_SUM2_ll, ONLY : E_GMAXLOC3D_ll => GMAXLOC3D_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN)              :: PARRAY
-  LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK
-  INTEGER, DIMENSION(3)                           :: KMAXLOC
-!
-  KMAXLOC = E_GMAXLOC3D_ll( PARRAY, MASK )
-!
-       END FUNCTION GMAXLOC3D_ll
-!
-!!     ##############################################################
-       FUNCTION GMAXLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC )
-!!     ##############################################################
-!
-  USE MODE_SUM2_ll, ONLY : E_GMAXLOC2D_ll => GMAXLOC2D_ll
-!
-  REAL, DIMENSION(:,:), INTENT(IN)              :: PARRAY
-  LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK
-  INTEGER, DIMENSION(2)                         :: KMAXLOC
-  INTEGER, DIMENSION(2), OPTIONAL               :: KDIMS
-!
-  KMAXLOC = E_GMAXLOC2D_ll( PARRAY, KDIMS, MASK )
-!
-       END FUNCTION GMAXLOC2D_ll
-!
-!!     ##############################################################
-       FUNCTION GMAXLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC )
-!!     ##############################################################
-!
-  USE MODE_SUM2_ll, ONLY : E_GMAXLOC1D_ll => GMAXLOC1D_ll
-!
-  REAL, DIMENSION(:), INTENT(IN)              :: PARRAY
-  LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK
-  INTEGER                                     :: KMAXLOC
-  INTEGER,  OPTIONAL                          :: KDIMS
-!
-  KMAXLOC = E_GMAXLOC1D_ll( PARRAY, KDIMS, MASK )
-!
-       END FUNCTION GMAXLOC1D_ll
-!
-!!     #######################################################
-       FUNCTION GMINLOC3D_ll( PARRAY, MASK ) RESULT( KMINLOC )
-!!     #######################################################
-!
-  USE MODE_SUM2_ll, ONLY : E_GMINLOC3D_ll => GMINLOC3D_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN)              :: PARRAY
-  LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK
-  INTEGER, DIMENSION(3)                           :: KMINLOC
-!
-  KMINLOC = E_GMINLOC3D_ll( PARRAY, MASK )
-!
-       END FUNCTION GMINLOC3D_ll
-!
-!!     ##############################################################
-       FUNCTION GMINLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT( KMINLOC )
-!!     ##############################################################
-!
-  USE MODE_SUM2_ll, ONLY : E_GMINLOC2D_ll => GMINLOC2D_ll
-!
-  REAL, DIMENSION(:,:), INTENT(IN)              :: PARRAY
-  LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK
-  INTEGER, DIMENSION(2)                         :: KMINLOC
-  INTEGER, DIMENSION(2), OPTIONAL               :: KDIMS
-!
-  KMINLOC = E_GMINLOC2D_ll( PARRAY, KDIMS, MASK )
-!
-       END FUNCTION GMINLOC2D_ll
-!
-!!     ##############################################################
-       FUNCTION GMINLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMINLOC )
-!!     ##############################################################
-!
-  USE MODE_SUM2_ll, ONLY : E_GMINLOC1D_ll => GMINLOC1D_ll
-!
-  REAL, DIMENSION(:), INTENT(IN)              :: PARRAY
-  LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK
-  INTEGER                                     :: KMINLOC
-  INTEGER,  OPTIONAL                          :: KDIMS
-!
-  KMINLOC = E_GMINLOC1D_ll( PARRAY, KDIMS, MASK )
-!
-       END FUNCTION GMINLOC1D_ll
-!
-
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_0DD_ll( PRES, KINFO )
-!!     ##########################################
-!
-         USE MODD_REPRO_SUM , ONLY : DOUBLE_DOUBLE
-         USE MODE_SUM_ll    , ONLY : E_REDUCE_SUM_0DD_ll => REDUCE_SUM_0DD_ll
-         !
-         TYPE(DOUBLE_DOUBLE) , INTENT(INOUT)  :: PRES
-         INTEGER             , INTENT(OUT)    :: KINFO 
-         !
-         CALL E_REDUCE_SUM_0DD_ll(PRES, KINFO)
-!
-       END SUBROUTINE REDUCE_SUM_0DD_ll
-
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_0D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_0D_ll => REDUCE_SUM_0D_ll
-!
-  REAL, INTENT(INOUT)  :: PRES
-  INTEGER, INTENT(OUT) :: KINFO
-!
-  CALL E_REDUCE_SUM_0D_ll(PRES, KINFO)
-!
-       END SUBROUTINE REDUCE_SUM_0D_ll
-!
-
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_1DD_ll( PRES, KINFO )
-!!     ##########################################
-!
-         USE MODD_REPRO_SUM  , ONLY :  DOUBLE_DOUBLE
-         USE MODE_SUM_ll     , ONLY : E_REDUCE_SUM_1DD_ll => REDUCE_SUM_1DD_ll
-         !
-         TYPE(DOUBLE_DOUBLE), DIMENSION(:), INTENT(INOUT) :: PRES
-         INTEGER                          , INTENT(OUT)   :: KINFO
-         !
-         CALL E_REDUCE_SUM_1DD_ll( PRES, KINFO )
-!
-
-       END SUBROUTINE REDUCE_SUM_1DD_ll
-
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_1D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_1D_ll => REDUCE_SUM_1D_ll
-!
-  REAL, DIMENSION(:), INTENT(INOUT) :: PRES
-  INTEGER, INTENT(OUT)              :: KINFO
-!
-  CALL E_REDUCE_SUM_1D_ll( PRES, KINFO )
-!
-       END SUBROUTINE REDUCE_SUM_1D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_2D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_2D_ll => REDUCE_SUM_2D_ll
-!
-  REAL, DIMENSION(:,:), INTENT(INOUT) :: PRES
-  INTEGER, INTENT(OUT)                :: KINFO
-!
-  CALL E_REDUCE_SUM_2D_ll( PRES, KINFO )
-!
-       END SUBROUTINE REDUCE_SUM_2D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_3D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_3D_ll => REDUCE_SUM_3D_ll
-!
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRES
-  INTEGER, INTENT(OUT)                  :: KINFO
-!
-  CALL E_REDUCE_SUM_3D_ll(PRES, KINFO)
-!
-       END SUBROUTINE REDUCE_SUM_3D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I0D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I0D_ll => REDUCE_SUM_I0D_ll
-!
-  INTEGER, INTENT(INOUT)  :: PRES
-  INTEGER, INTENT(OUT) :: KINFO
-!
-  CALL E_REDUCE_SUM_I0D_ll(PRES, KINFO)
-!
-       END SUBROUTINE REDUCE_SUM_I0D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I1D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I1D_ll => REDUCE_SUM_I1D_ll
-!
-  INTEGER, DIMENSION(:), INTENT(INOUT) :: PRES
-  INTEGER, INTENT(OUT)              :: KINFO
-!
-  CALL E_REDUCE_SUM_I1D_ll( PRES, KINFO )
-!
-       END SUBROUTINE REDUCE_SUM_I1D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I2D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I2D_ll => REDUCE_SUM_I2D_ll
-!
-  INTEGER, DIMENSION(:,:), INTENT(INOUT) :: PRES
-  INTEGER, INTENT(OUT)                :: KINFO
-!
-  CALL E_REDUCE_SUM_I2D_ll( PRES, KINFO )
-!
-       END SUBROUTINE REDUCE_SUM_I2D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I3D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODE_SUM_ll, ONLY : E_REDUCE_SUM_I3D_ll => REDUCE_SUM_I3D_ll
-!
-  INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: PRES
-  INTEGER, INTENT(OUT)                  :: KINFO
-!
-  CALL E_REDUCE_SUM_I3D_ll(PRES, KINFO)
-!
-       END SUBROUTINE REDUCE_SUM_I3D_ll
-!
-
-!!     ##########################################
-       SUBROUTINE UPDATE_HALO_ll( TPLIST, KINFO, HDIR )
-!!     ##########################################
-!
-  USE MODE_EXCHANGE_ll, ONLY : E_UPDATE_HALO_ll => UPDATE_HALO_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER :: TPLIST
-  INTEGER                :: KINFO
-  CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction
-!
-  CALL E_UPDATE_HALO_ll( TPLIST, KINFO, HDIR=HDIR )
-!
-       END SUBROUTINE UPDATE_HALO_ll
-!
-!!     ############################################
-       SUBROUTINE UPDATE_1DHALO_ll( TPLIST, KINFO )
-!!     ############################################
-!
-  USE MODE_EXCHANGE_ll, ONLY : E_UPDATE_1DHALO_ll => UPDATE_1DHALO_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
-!
-  TYPE(LIST1D_ll), POINTER :: TPLIST
-  INTEGER, INTENT(OUT)     :: KINFO
-!
-  CALL E_UPDATE_1DHALO_ll( TPLIST, KINFO )
-!
-       END SUBROUTINE UPDATE_1DHALO_ll
-!
-!!     ############################################################
-       SUBROUTINE UPDATE_BOUNDARIES_ll( HDIRECTION, TPLIST, KINFO )
-!!     ############################################################
-!
-  USE MODE_BOUNDARIES_ll, ONLY : E_UPDATE_BOUNDARIES_ll => UPDATE_BOUNDARIES_ll
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  CHARACTER(len=2), INTENT(IN) :: HDIRECTION
-  TYPE(LIST_ll), POINTER  :: TPLIST
-  INTEGER                 :: KINFO
-!
-  CALL E_UPDATE_BOUNDARIES_ll( HDIRECTION, TPLIST, KINFO )
-!
-       END SUBROUTINE UPDATE_BOUNDARIES_ll
-!
-!!     ####################################################################
-       SUBROUTINE INIT_HALO2_ll( TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ )
-!!     ####################################################################
-!
-  USE MODE_EXCHANGE2_ll, ONLY : E_INIT_HALO2_ll => INIT_HALO2_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
-!
-  TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST
-  INTEGER                     :: KNBVAR
-  INTEGER                     :: KDIMX, KDIMY, KDIMZ
-!
-  CALL E_INIT_HALO2_ll(TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ)
-!
-       END SUBROUTINE INIT_HALO2_ll
-!
-!!     ########################################################
-       SUBROUTINE UPDATE_HALO2_ll( TPLIST, TPLISTHALO2, KINFO )
-!!     ########################################################
-!
-  USE MODE_EXCHANGE2_ll, ONLY : E_UPDATE_HALO2_ll => UPDATE_HALO2_ll
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll,LIST_ll
-!
-  TYPE(LIST_ll), POINTER      :: TPLIST
-  TYPE(HALO2LIST_ll), POINTER :: TPLISTHALO2
-  INTEGER                     :: KINFO
-!
-  CALL E_UPDATE_HALO2_ll( TPLIST, TPLISTHALO2, KINFO )
-!
-       END SUBROUTINE UPDATE_HALO2_ll
-!
-!     #########################
-      SUBROUTINE SCATTER(P1,P2)
-!     #########################
-!
-USE MODE_SCATTER_ll
-USE MODD_MPIF
-USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD
-!
-IMPLICIT NONE
-!
-!  INCLUDE 'mpif.h'
-!
-REAL, DIMENSION(:,:),  INTENT(IN)    :: P1
-REAL, DIMENSION(:,:),  INTENT(OUT)   :: P2
-!
-CALL SCATTER_XYFIELD(P1,P2,1,NMNH_COMM_WORLD)
-!
-END SUBROUTINE SCATTER
diff --git a/src/LIB/SURCOUCHE/src/mode_double_double.f90 b/src/LIB/SURCOUCHE/src/mode_double_double.f90
index 809944ce84da22fcc09397b1a5ff0542bc96b098..b9e58898f24f8dd022c8f70c6dc6031f6e5427cc 100644
--- a/src/LIB/SURCOUCHE/src/mode_double_double.f90
+++ b/src/LIB/SURCOUCHE/src/mode_double_double.f90
@@ -1,18 +1,27 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !Correction :
 !  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 MODULE modd_repro_sum
+
+  implicit none
+
   TYPE DOUBLE_DOUBLE
      SEQUENCE
      REAL :: R , E
   END TYPE DOUBLE_DOUBLE
+
+  LOGICAL, save :: FIRST_CALL_DD     = .TRUE.
+  INTEGER, save :: MNH_DOUBLE_DOUBLE
+  INTEGER, save :: MNH_SUM_DD
+
 END MODULE modd_repro_sum
 
+
 MODULE mode_repro_sum
 
   USE MODD_MPIF 
@@ -20,9 +29,6 @@ MODULE mode_repro_sum
 
   IMPLICIT NONE
 
-  LOGICAL :: FIRST_CALL_DD     = .TRUE.
-  INTEGER :: MNH_DOUBLE_DOUBLE 
-  INTEGER :: MNH_SUM_DD  
 
 !!$  INTERFACE ADD   
 !!$     MODULE PROCEDURE RPDD 
@@ -42,66 +48,6 @@ MODULE mode_repro_sum
 
 CONTAINS
 
-  SUBROUTINE INIT_DD(KINFO)
-    use modd_precision, only: MNHREAL_MPI
-    IMPLICIT NONE
-    INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-    !
-    ! define the double-double for MPI
-    !
-    CALL MPI_TYPE_CONTIGUOUS(2, MNHREAL_MPI ,MNH_DOUBLE_DOUBLE , KINFO)
-    CALL MPI_TYPE_COMMIT(MNH_DOUBLE_DOUBLE , KINFO)
-    !
-    ! define the double-double sum = MNH_SUM_DD  for MPI 
-    !
-    CALL MPI_OP_CREATE(DDPDD, .TRUE., MNH_SUM_DD, KINFO)
-    FIRST_CALL_DD = .FALSE.
-    !
-  END SUBROUTINE INIT_DD
-  
-  PURE SUBROUTINE DDPDD (dda, ddb, len, itype)
-    !----------------------------------------------------------------------
-    ! 
-    ! Purpose: 
-    ! Modification of original codes written by David H. Bailey    
-    ! This subroutine computes ddb(i) = dda(i)+ddb(i)
-    ! for use with MPI_*_REDUCE
-    ! 
-    !----------------------------------------------------------------------
-    !
-    ! Arguments
-    !
-    INTEGER, INTENT(in)                :: len       ! array length
-    TYPE(DOUBLE_DOUBLE), INTENT(in)    :: dda(len)  ! input
-    TYPE(DOUBLE_DOUBLE), INTENT(inout) :: ddb(len)  ! result
-    INTEGER, INTENT(in)                :: itype     ! unused
-    !
-    ! Local workspace
-    !
-    REAL e, t1, t2
-    INTEGER i
-    !
-    !-----------------------------------------------------------------------
-    !
-    DO i = 1, len
-       !
-       !   Compute dda + ddb using Knuth's trick.
-       !
-       t1 = dda(i)%R + ddb(i)%R
-       e  = t1 - dda(i)%R
-       t2 = ((ddb(i)%R - e) + (dda(i)%R - (t1 - e))) &
-            + dda(i)%E + ddb(i)%E
-       !
-       !   The result is t1 + t2, after normalization.
-       !
-       ddb(i)%R = t1 + t2
-       ddb(i)%E = t2 - ((t1 + t2) - t1) 
-    ENDDO
-
-    RETURN
-
-  END SUBROUTINE DDPDD
-
   ELEMENTAL SUBROUTINE RPDD (a, ddb)
     !----------------------------------------------------------------------
     ! 
@@ -232,7 +178,7 @@ CONTAINS
     ! Could be inlined by compiler <=> elemental function
     ! 
     !----------------------------------------------------------------------
-    USE MODE_ll , ONLY : REDUCESUM_ll
+    USE mode_reduce_sum, ONLY: REDUCESUM_ll
     !
     ! Arguments
     !
@@ -277,7 +223,7 @@ CONTAINS
     ! This subroutine computes c(1:n2) = sum_dd(a(:,1:n2)) on all processors
     ! 
     !----------------------------------------------------------------------
-    USE MODE_ll , ONLY : REDUCESUM_ll
+    USE mode_reduce_sum, ONLY: REDUCESUM_ll
     !
     ! Arguments
     !
@@ -320,7 +266,7 @@ CONTAINS
     ! This subroutine computes c = sum_dd(a(:)) on all processors
     ! 
     !----------------------------------------------------------------------
-    USE MODE_ll , ONLY : REDUCESUM_ll
+    USE mode_reduce_sum, ONLY: REDUCESUM_ll
     !
     ! Arguments
     !
diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90
index 9deabd2e8617a6250c63868968075bd3f91d7c0d..c6eca9e5cb6ead4f09a051774327023c7d67cb5b 100644
--- a/src/LIB/SURCOUCHE/src/mode_field.f90
+++ b/src/LIB/SURCOUCHE/src/mode_field.f90
@@ -13,12 +13,13 @@
 !  P. Wautelet 06/03/2019: correct ZWS entry
 !  P. Wautelet 12/04/2019: added pointers for C1D, L1D, N1D, X5D and X6D structures in TFIELDDATA
 !  P. Wautelet 06/06/2019: bug correction in FIELDLIST_GOTO_MODEL (XLSTHM was overwritten if LUSERV=.FALSE. due to wrong IF block)
+!  P. Wautelet 19/06/2019: add Fieldlist_nmodel_resize subroutine + provide KMODEL to INI_FIELD_LIST when known
 !-----------------------------------------------------------------
 MODULE MODE_FIELD
 !
 USE MODD_CONF,      ONLY : CPROGRAM
 USE MODD_IO,        ONLY : NVERB_DEBUG, NVERB_INFO, NVERB_WARNING, NVERB_ERROR, NVERB_FATAL
-USE MODD_PARAMETERS
+USE MODD_PARAMETERS, only: JPMODELMAX, NGRIDUNKNOWN, NMNHNAMELGTMAX, NSTDNAMELGTMAX
 USE MODD_TYPE_DATE, ONLY : DATE_TIME
 #if defined(MNH_IOCDF4)
 USE NETCDF,         ONLY : NF90_FILL_INT, NF90_FILL_REAL
@@ -28,7 +29,21 @@ USE MODE_MSG
 !
 IMPLICIT NONE
 !
-INTEGER,PRIVATE,PARAMETER :: MAXFIELDS = 250
+#if 0
+!if enabled: crash of GCC 8.3 and 9.1 (and others?) in mode_io_field_read.f90
+private
+!
+public :: TYPEUNDEF, TYPEINT, TYPELOG, TYPEREAL, TYPECHAR, TYPEDATE
+public :: TFIELDDATA
+public :: TFIELDLIST
+public :: INI_FIELD_LIST
+public :: FIND_FIELD_ID_FROM_MNHNAME
+public :: ALLOC_FIELD_SCALARS
+public :: FIELDLIST_GOTO_MODEL
+public :: Fieldlist_nmodel_resize
+#endif
+!
+INTEGER,PARAMETER :: MAXFIELDS = 250
 INTEGER,PARAMETER :: TYPEUNDEF = -1, TYPEINT = 1, TYPELOG = 2, TYPEREAL = 3, TYPECHAR = 4, TYPEDATE = 5
 !
 TYPE TFIELDPTR_C0D
@@ -146,7 +161,8 @@ TYPE TFIELDDATA
   TYPE(TFIELDPTR_T0D),DIMENSION(:),ALLOCATABLE :: TFIELD_T0D !Pointer to the scalar date/time fields (one per nested mesh)
 END TYPE TFIELDDATA
 !
-LOGICAL,SAVE :: LFIELDLIST_ISINIT = .FALSE.
+integer, save :: NMODEL_ALLOCATED
+LOGICAL, SAVE :: LFIELDLIST_ISINIT = .FALSE.
 TYPE(TFIELDDATA),DIMENSION(MAXFIELDS),SAVE :: TFIELDLIST
 !
 CONTAINS
@@ -177,17 +193,22 @@ LFIELDLIST_ISINIT = .TRUE.
 IF (PRESENT(KMODEL)) THEN
   IMODEL = KMODEL
 ELSE
-  IF (NMODEL/=1) THEN
-    IMODEL = NMODEL
-  ELSE !NMODEL is not necessary known here => allocating for max allowed number of models
-    IMODEL = JPMODELMAX
-  END IF
+  !NMODEL is not necessary known here => allocating for max allowed number of models
+  !WARNING: if known, the value could change after this subroutine (ie for a restart
+  !         with more models) because READ_DESFM_n is called before READ_EXSEG_n
+  !Structures can be resized with a call to Fieldlist_nmodel_resize
+  IMODEL = JPMODELMAX
 END IF
+!
 IF (IMODEL==0) CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_FIELD_LIST','allocating fields for zero models not allowed')
+if ( imodel > JPMODELMAX ) &
+  call Print_msg( NVERB_FATAL, 'GEN', 'INI_FIELD_LIST', 'allocating fields for more than JPMODELMAX models not allowed' )
 !
 WRITE(YMSG,'("allocating fields for up to ",I4," model(s)")') IMODEL
 CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_LIST',YMSG)
 !
+NMODEL_ALLOCATED = IMODEL
+!
 IDX = 1
 !
 IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
@@ -4641,5 +4662,435 @@ END IF
 END IF !KFROM/=KTO
 !
 END SUBROUTINE FIELDLIST_GOTO_MODEL
-!
+
+
+subroutine Fieldlist_nmodel_resize( kmodelnew )
+
+implicit none
+
+integer, intent(in) :: kmodelnew
+
+character(len=10) :: ymsg
+integer           :: imodelmax
+integer           :: ji, jj
+type(tfieldptr_c0d), dimension(:), allocatable :: tfield_save_c0d
+type(tfieldptr_c1d), dimension(:), allocatable :: tfield_save_c1d
+type(tfieldptr_l0d), dimension(:), allocatable :: tfield_save_l0d
+type(tfieldptr_l1d), dimension(:), allocatable :: tfield_save_l1d
+type(tfieldptr_n0d), dimension(:), allocatable :: tfield_save_n0d
+type(tfieldptr_n1d), dimension(:), allocatable :: tfield_save_n1d
+type(tfieldptr_n2d), dimension(:), allocatable :: tfield_save_n2d
+type(tfieldptr_n3d), dimension(:), allocatable :: tfield_save_n3d
+type(tfieldptr_x0d), dimension(:), allocatable :: tfield_save_x0d
+type(tfieldptr_x1d), dimension(:), allocatable :: tfield_save_x1d
+type(tfieldptr_x2d), dimension(:), allocatable :: tfield_save_x2d
+type(tfieldptr_x3d), dimension(:), allocatable :: tfield_save_x3d
+type(tfieldptr_x4d), dimension(:), allocatable :: tfield_save_x4d
+type(tfieldptr_x5d), dimension(:), allocatable :: tfield_save_x5d
+type(tfieldptr_x6d), dimension(:), allocatable :: tfield_save_x6d
+type(tfieldptr_t0d), dimension(:), allocatable :: tfield_save_t0d
+
+write( ymsg, '( i4,"->",i4 )') nmodel_allocated, kmodelnew
+call Print_msg( NVERB_DEBUG, 'GEN', 'Fieldlist_nmodel_resize', trim( ymsg ) )
+
+!Nothing to do
+if ( kmodelnew == nmodel_allocated ) return
+
+imodelmax = max( kmodelnew, nmodel_allocated )
+
+allocate( tfield_save_c0d( imodelmax ) )
+allocate( tfield_save_c1d( imodelmax ) )
+allocate( tfield_save_l0d( imodelmax ) )
+allocate( tfield_save_l1d( imodelmax ) )
+allocate( tfield_save_n0d( imodelmax ) )
+allocate( tfield_save_n1d( imodelmax ) )
+allocate( tfield_save_n2d( imodelmax ) )
+allocate( tfield_save_n3d( imodelmax ) )
+allocate( tfield_save_x0d( imodelmax ) )
+allocate( tfield_save_x1d( imodelmax ) )
+allocate( tfield_save_x2d( imodelmax ) )
+allocate( tfield_save_x3d( imodelmax ) )
+allocate( tfield_save_x4d( imodelmax ) )
+allocate( tfield_save_x5d( imodelmax ) )
+allocate( tfield_save_x6d( imodelmax ) )
+allocate( tfield_save_t0d( imodelmax ) )
+
+do ji = 1, imodelmax
+  tfield_save_c0d(ji)%data => null()
+  tfield_save_c1d(ji)%data => null()
+  tfield_save_l0d(ji)%data => null()
+  tfield_save_l1d(ji)%data => null()
+  tfield_save_n0d(ji)%data => null()
+  tfield_save_n1d(ji)%data => null()
+  tfield_save_n2d(ji)%data => null()
+  tfield_save_n3d(ji)%data => null()
+  tfield_save_x0d(ji)%data => null()
+  tfield_save_x1d(ji)%data => null()
+  tfield_save_x2d(ji)%data => null()
+  tfield_save_x3d(ji)%data => null()
+  tfield_save_x4d(ji)%data => null()
+  tfield_save_x5d(ji)%data => null()
+  tfield_save_x6d(ji)%data => null()
+  tfield_save_t0d(ji)%data => null()
+end do
+
+do ji = 1, size( tfieldlist )
+  if ( allocated( tfieldlist(ji)%tfield_c0d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_c0d(jj)%data => tfieldlist(ji)%tfield_c0d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_c0d )
+    allocate(   tfieldlist(ji)%tfield_c0d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_c0d(jj)%data => tfield_save_c0d(jj)%data
+      tfield_save_c0d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_c0d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_c0d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_c1d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_c1d(jj)%data => tfieldlist(ji)%tfield_c1d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_c1d )
+    allocate(   tfieldlist(ji)%tfield_c1d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_c1d(jj)%data => tfield_save_c1d(jj)%data
+      tfield_save_c1d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_c1d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_c1d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_l0d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_l0d(jj)%data => tfieldlist(ji)%tfield_l0d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_l0d )
+    allocate(   tfieldlist(ji)%tfield_l0d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_l0d(jj)%data => tfield_save_l0d(jj)%data
+      tfield_save_l0d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_l0d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_l0d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_l1d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_l1d(jj)%data => tfieldlist(ji)%tfield_l1d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_l1d )
+    allocate(   tfieldlist(ji)%tfield_l1d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_l1d(jj)%data => tfield_save_l1d(jj)%data
+      tfield_save_l1d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_l1d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_l1d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_n0d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_n0d(jj)%data => tfieldlist(ji)%tfield_n0d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_n0d )
+    allocate(   tfieldlist(ji)%tfield_n0d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_n0d(jj)%data => tfield_save_n0d(jj)%data
+      tfield_save_n0d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_n0d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_n0d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_n1d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_n1d(jj)%data => tfieldlist(ji)%tfield_n1d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_n1d )
+    allocate(   tfieldlist(ji)%tfield_n1d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_n1d(jj)%data => tfield_save_n1d(jj)%data
+      tfield_save_n1d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_n1d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_n1d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_n2d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_n2d(jj)%data => tfieldlist(ji)%tfield_n2d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_n2d )
+    allocate(   tfieldlist(ji)%tfield_n2d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_n2d(jj)%data => tfield_save_n2d(jj)%data
+      tfield_save_n2d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_n2d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_n2d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_n3d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_n3d(jj)%data => tfieldlist(ji)%tfield_n3d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_n3d )
+    allocate(   tfieldlist(ji)%tfield_n3d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_n3d(jj)%data => tfield_save_n3d(jj)%data
+      tfield_save_n3d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_n3d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_n3d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x0d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x0d(jj)%data => tfieldlist(ji)%tfield_x0d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x0d )
+    allocate(   tfieldlist(ji)%tfield_x0d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x0d(jj)%data => tfield_save_x0d(jj)%data
+      tfield_save_x0d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x0d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x0d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x1d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x1d(jj)%data => tfieldlist(ji)%tfield_x1d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x1d )
+    allocate(   tfieldlist(ji)%tfield_x1d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x1d(jj)%data => tfield_save_x1d(jj)%data
+      tfield_save_x1d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x1d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x1d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x2d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x2d(jj)%data => tfieldlist(ji)%tfield_x2d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x2d )
+    allocate(   tfieldlist(ji)%tfield_x2d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x2d(jj)%data => tfield_save_x2d(jj)%data
+      tfield_save_x2d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x2d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x2d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x3d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x3d(jj)%data => tfieldlist(ji)%tfield_x3d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x3d )
+    allocate(   tfieldlist(ji)%tfield_x3d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x3d(jj)%data => tfield_save_x3d(jj)%data
+      tfield_save_x3d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x3d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x3d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x4d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x4d(jj)%data => tfieldlist(ji)%tfield_x4d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x4d )
+    allocate(   tfieldlist(ji)%tfield_x4d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x4d(jj)%data => tfield_save_x4d(jj)%data
+      tfield_save_x4d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x4d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x4d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x5d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x5d(jj)%data => tfieldlist(ji)%tfield_x5d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x5d )
+    allocate(   tfieldlist(ji)%tfield_x5d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x5d(jj)%data => tfield_save_x5d(jj)%data
+      tfield_save_x5d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x5d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x5d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_x6d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_x6d(jj)%data => tfieldlist(ji)%tfield_x6d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_x6d )
+    allocate(   tfieldlist(ji)%tfield_x6d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_x6d(jj)%data => tfield_save_x6d(jj)%data
+      tfield_save_x6d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_x6d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_x6d(jj)%data => null()
+      end if
+    end do
+  end if
+
+  if ( allocated( tfieldlist(ji)%tfield_t0d ) ) then
+    !Save existing pointers to temporary structure
+    do jj = 1, nmodel_allocated
+      tfield_save_t0d(jj)%data => tfieldlist(ji)%tfield_t0d(jj)%data
+    end do
+    !Reallocate
+    deallocate( tfieldlist(ji)%tfield_t0d )
+    allocate(   tfieldlist(ji)%tfield_t0d(kmodelnew) )
+    !Restore pointers
+    do jj = 1, kmodelnew
+      tfieldlist(ji)%tfield_t0d(jj)%data => tfield_save_t0d(jj)%data
+      tfield_save_t0d(jj)%data => null()
+    end do
+    !Check no used pointers if nmodel is decreazed
+    do jj = kmodelnew + 1, nmodel_allocated
+      if ( associated(tfield_save_t0d(jj)%data ) ) then
+        call Print_msg( NVERB_ERROR, 'GEN', 'Fieldlist_nmodel_resize', 'data loss due to reduction in number of models' )
+        tfield_save_t0d(jj)%data => null()
+      end if
+    end do
+  end if
+
+end do
+
+nmodel_allocated = kmodelnew
+
+end subroutine Fieldlist_nmodel_resize
+
 END MODULE MODE_FIELD
diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90
index 0b68891388f7088c75bca9392ca291d6eb8d0c2e..8f717bce0cda430ec8cb752eab038973db07b230 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90
@@ -14,6 +14,7 @@
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
 !  P. Wautelet 12/04/2019: use MNHTIME for time measurement variables
 !  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
+!  P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_byname_N3 and IO_Field_read_byfield_N3)
 !-----------------------------------------------------------------
 
 MODULE MODE_IO_FIELD_READ
@@ -41,7 +42,7 @@ INTERFACE IO_Field_read
                     IO_Field_read_byname_X4, IO_Field_read_byname_X5,  &
                     IO_Field_read_byname_X6,                           &
                     IO_Field_read_byname_N0, IO_Field_read_byname_N1,  &
-                    IO_Field_read_byname_N2,                           &
+                    IO_Field_read_byname_N2, IO_Field_read_byname_N3,  &
                     IO_Field_read_byname_L0, IO_Field_read_byname_L1,  &
                     IO_Field_read_byname_C0,                           &
                     IO_Field_read_byname_T0,                           &
@@ -50,7 +51,7 @@ INTERFACE IO_Field_read
                     IO_Field_read_byfield_X4,IO_Field_read_byfield_X5, &
                     IO_Field_read_byfield_X6,                          &
                     IO_Field_read_byfield_N0,IO_Field_read_byfield_N1, &
-                    IO_Field_read_byfield_N2,                          &
+                    IO_Field_read_byfield_N2,IO_Field_read_byfield_N3, &
                     IO_Field_read_byfield_L0,IO_Field_read_byfield_L1, &
                     IO_Field_read_byfield_C0,                          &
                     IO_Field_read_byfield_T0
@@ -325,9 +326,10 @@ END SUBROUTINE IO_Field_read_byname_X2
 
 SUBROUTINE IO_Field_read_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING)
 !
-USE MODD_IO,           ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-USE MODD_TIMEZ,        ONLY: TIMEZ
+USE MODD_IO,            ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll, ONLY: JPHEXT
+USE MODD_STRUCTURE_ll,  ONLY: ZONE_ll
+USE MODD_TIMEZ,         ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
 #ifdef MNH_GA
@@ -491,6 +493,7 @@ END SUBROUTINE IO_Field_read_byname_X3
 SUBROUTINE IO_Field_read_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP)
 !
 USE MODD_IO,               ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll,    ONLY: JPHEXT
 USE MODD_TIMEZ,            ONLY: TIMEZ
 USE MODD_VAR_ll,           ONLY: MNH_STATUSES_IGNORE
 !
@@ -557,8 +560,7 @@ IF (IRESP==0) THEN
     IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN
       ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:)
     ELSE IF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN
-      ALLOCATE (ZFIELDP(SIZE(PFIELD,1),1,SIZE(PFIELD,3)))
-      GALLOC = .TRUE.
+      ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:)
     ELSE
       ZFIELDP=>PFIELD(:,:,:)
     END IF
@@ -572,7 +574,7 @@ IF (IRESP==0) THEN
     IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN
       PFIELD(:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT)
     ELSE IF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN
-      PFIELD(:,:,:)=SPREAD(ZFIELDP(:,1,:),DIM=2,NCOPIES=IHEXTOT)
+      PFIELD(:,:,:)=SPREAD(PFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT)
     END IF
   ELSE IF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR == '--' ) THEN ! multiprocesses execution & 1 IO proc
     IF (ISP == TPFILE%NMASTER_RANK)  THEN
@@ -830,10 +832,6 @@ END SUBROUTINE IO_Field_read_byfield_X3
 
 SUBROUTINE IO_Field_read_byname_X4(TPFILE,HNAME,PFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),        INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),       INTENT(IN)    :: HNAME    ! name of the field to write
 REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD   ! array containing the data field
@@ -854,8 +852,8 @@ END SUBROUTINE IO_Field_read_byname_X4
 
 SUBROUTINE IO_Field_read_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP)
 !
-USE MODD_IO,             ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll,   ONLY: ZONE_ll
+USE MODD_IO,             ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll,  ONLY: JPHEXT
 USE MODD_TIMEZ,          ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
@@ -955,10 +953,6 @@ END SUBROUTINE IO_Field_read_byfield_X4
 
 SUBROUTINE IO_Field_read_byname_X5(TPFILE,HNAME,PFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),         INTENT(IN)    :: HNAME    ! name of the field to write
 REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD   ! array containing the data field
@@ -979,8 +973,8 @@ END SUBROUTINE IO_Field_read_byname_X5
 
 SUBROUTINE IO_Field_read_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP)
 !
-USE MODD_IO,             ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll,   ONLY: ZONE_ll
+USE MODD_IO,             ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll,  ONLY: JPHEXT
 USE MODD_TIMEZ,          ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
@@ -1080,10 +1074,6 @@ END SUBROUTINE IO_Field_read_byfield_X5
 
 SUBROUTINE IO_Field_read_byname_X6(TPFILE,HNAME,PFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),            INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),           INTENT(IN)    :: HNAME    ! name of the field to write
 REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD   ! array containing the data field
@@ -1104,8 +1094,8 @@ END SUBROUTINE IO_Field_read_byname_X6
 
 SUBROUTINE IO_Field_read_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP)
 !
-USE MODD_IO,             ONLY: GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D
-USE MODD_STRUCTURE_ll,   ONLY: ZONE_ll
+USE MODD_IO,             ONLY: GSMONOPROC,ISP,LPACK,L1D,L2D
+USE MODD_PARAMETERS_ll,  ONLY: JPHEXT
 USE MODD_TIMEZ,          ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
@@ -1357,10 +1347,6 @@ END SUBROUTINE IO_Field_read_byfield_N1
 
 SUBROUTINE IO_Field_read_byname_N2(TPFILE,HNAME,KFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),       INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),      INTENT(IN)    :: HNAME    ! name of the field to write
 INTEGER,DIMENSION(:,:),INTENT(INOUT) :: KFIELD   ! array containing the data field
@@ -1381,9 +1367,9 @@ END SUBROUTINE IO_Field_read_byname_N2
 
 SUBROUTINE IO_Field_read_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-USE MODD_TIMEZ,        ONLY: TIMEZ
+USE MODD_IO,            ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll, ONLY: JPHEXT
+USE MODD_TIMEZ,         ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
 USE MODE_SCATTER_ll
@@ -1482,6 +1468,129 @@ IF (PRESENT(KRESP)) KRESP = IRESP
 END SUBROUTINE IO_Field_read_byfield_N2
 
 
+SUBROUTINE IO_Field_read_byname_N3(TPFILE,HNAME,KFIELD,KRESP)
+!
+TYPE(TFILEDATA),         INTENT(IN)    :: TPFILE
+CHARACTER(LEN=*),        INTENT(IN)    :: HNAME    ! name of the field to write
+INTEGER,DIMENSION(:,:,:),INTENT(INOUT) :: KFIELD   ! array containing the data field
+INTEGER,OPTIONAL,        INTENT(OUT)   :: KRESP    ! return-code
+!
+INTEGER :: ID    ! Index of the field
+INTEGER :: IRESP ! return_code
+!
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME))
+!
+CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP)
+!
+IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP)
+!
+IF (PRESENT(KRESP)) KRESP = IRESP
+!
+END SUBROUTINE IO_Field_read_byname_N3
+
+SUBROUTINE IO_Field_read_byfield_N3(TPFILE,TPFIELD,KFIELD,KRESP)
+!
+USE MODD_IO,            ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll, ONLY: JPHEXT
+USE MODD_TIMEZ,         ONLY: TIMEZ
+!
+USE MODE_ALLOCBUFFER_ll
+USE MODE_SCATTER_ll
+!
+TYPE(TFILEDATA),                INTENT(IN)    :: TPFILE
+TYPE(TFIELDDATA),               INTENT(INOUT) :: TPFIELD
+INTEGER,DIMENSION(:,:,:),TARGET,INTENT(INOUT) :: KFIELD   ! array containing the data field
+INTEGER, OPTIONAL,              INTENT(OUT)   :: KRESP    ! return-code
+!
+INTEGER                           :: IERR
+INTEGER,DIMENSION(:,:,:),POINTER  :: IFIELDP
+LOGICAL                           :: GALLOC
+INTEGER                           :: IRESP
+INTEGER                           :: IHEXTOT
+!
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
+!
+GALLOC = .FALSE.
+IRESP = 0
+IFIELDP => NULL()
+!
+IHEXTOT = 2*JPHEXT+1
+CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N3',IRESP)
+!
+IF (IRESP==0) THEN
+  IF (GSMONOPROC) THEN ! sequential execution
+    IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN
+      IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:)
+    ELSE IF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN
+      IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1,:)
+    ELSE
+      IFIELDP=>KFIELD(:,:,:)
+    END IF
+    IF (TPFILE%CFORMAT=='NETCDF4') THEN
+      CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP)
+    ELSE IF (TPFILE%CFORMAT=='LFI') THEN
+      CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP)
+    ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN
+      CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP)
+    END IF
+    IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN
+      KFIELD(:,:,:)=SPREAD(SPREAD(KFIELD(JPHEXT+1,JPHEXT+1,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT)
+    ELSE IF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN
+      KFIELD(:,:,:)=SPREAD(KFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT)
+    END IF
+  ELSE
+    IF (ISP == TPFILE%NMASTER_RANK)  THEN
+      ! I/O process case
+      CALL ALLOCBUFFER_ll(IFIELDP,KFIELD,TPFIELD%CDIR,GALLOC)
+      IF (TPFILE%CFORMAT=='NETCDF4') THEN
+         CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP)
+      ELSE IF (TPFILE%CFORMAT=='LFI') THEN
+         CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP)
+      ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN
+        CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP)
+      END IF
+    ELSE
+      !Not really necessary but useful to suppress alerts with Valgrind
+      ALLOCATE(IFIELDP(0,0,0))
+      GALLOC = .TRUE.
+    END IF
+    !
+    CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR)
+    !
+    !Broadcast header only if IRESP==-111
+    !because metadata of field has been modified in IO_Field_read_xxx
+    IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD)
+    !
+    IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN
+      ! XX or YY Scatter Field
+      CALL SCATTER_XXFIELD(TPFIELD%CDIR,IFIELDP,KFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM)
+      ! Broadcast Field
+      CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR)
+    ELSE IF (TPFIELD%CDIR == 'XY') THEN
+      IF (LPACK .AND. L2D) THEN
+        ! 2D compact case
+        CALL SCATTER_XXFIELD('XX',IFIELDP(:,1,:),KFIELD(:,JPHEXT+1,:),TPFILE%NMASTER_RANK,TPFILE%NMPICOMM)
+        KFIELD(:,:,:) = SPREAD(KFIELD(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT)
+      ELSE
+        ! XY Scatter Field
+        CALL SCATTER_XYFIELD(IFIELDP,KFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM)
+      END IF
+    ELSE
+      IF (ISP == TPFILE%NMASTER_RANK) KFIELD = IFIELDP
+      CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR)
+    END IF
+  END IF
+END IF
+!
+IF (GALLOC) DEALLOCATE (IFIELDP)
+!
+IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed)
+!
+IF (PRESENT(KRESP)) KRESP = IRESP
+!
+END SUBROUTINE IO_Field_read_byfield_N3
+
+
 SUBROUTINE IO_Field_read_byname_L0(TPFILE,HNAME,OFIELD,KRESP)
 !
 TYPE(TFILEDATA),  INTENT(IN)    :: TPFILE
@@ -1708,7 +1817,9 @@ END SUBROUTINE IO_Field_read_byfield_C0
 
 
 SUBROUTINE IO_Field_read_byname_T0(TPFILE,HNAME,TPDATA,KRESP)
-!
+
+use modd_type_date, only: DATE_TIME
+
 TYPE(TFILEDATA),  INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*), INTENT(IN)    :: HNAME    ! name of the field to write
 TYPE (DATE_TIME), INTENT(INOUT) :: TPDATA   ! array containing the data field
@@ -1729,7 +1840,8 @@ END SUBROUTINE IO_Field_read_byname_T0
 
 SUBROUTINE IO_Field_read_byfield_T0(TPFILE,TPFIELD,TPDATA,KRESP)
 !
-USE MODD_IO, ONLY: ISP, GSMONOPROC
+use modd_io,        only: ISP, GSMONOPROC
+use modd_type_date, only: DATE_TIME
 !
 TYPE(TFILEDATA),  INTENT(IN)    :: TPFILE
 TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
index 88ce5e5fa7cbb6e743a72f83b3d952eb6720fccc..63dcb3b9ed7598f6a92809d99094aeeae88ff4ae 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
@@ -18,15 +18,17 @@
 
 MODULE MODE_IO_FIELD_WRITE
 
-  USE MODD_IO,        ONLY: TFILEDATA, TOUTBAK
+  USE MODD_IO,         ONLY: TFILEDATA, TOUTBAK
   USE MODD_MPIF
-  use modd_precision, only: MNHINT_MPI, MNHREAL_MPI, MNHTIME
+  use modd_parameters, only: NMNHNAMELGTMAX
+  use modd_precision,  only: MNHINT_MPI, MNHREAL_MPI, MNHTIME
 
   USE MODE_FIELD
   USE MODE_IO_WRITE_LFI
 #if defined(MNH_IOCDF4)
   USE MODE_IO_WRITE_NC4
 #endif
+  use mode_msg
 
   IMPLICIT NONE 
 
@@ -2264,6 +2266,7 @@ CONTAINS
 
 
   SUBROUTINE IO_Field_write_byname_T0(TPFILE,HNAME,TFIELD,KRESP)
+    USE MODD_TYPE_DATE, only: DATE_TIME
     !
     !*      0.1   Declarations of arguments
     !
@@ -2290,7 +2293,7 @@ CONTAINS
 
   SUBROUTINE IO_Field_write_byfield_T0(TPFILE,TPFIELD,TFIELD,KRESP)
     USE MODD_IO, ONLY: GSMONOPROC, ISP
-    USE MODD_TYPE_DATE
+    USE MODD_TYPE_DATE, only: DATE_TIME
     !
     !*      0.    DECLARATIONS
     !             ------------
diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90
index 525930eefaaacc6ab5082f76e814085488220ca2..01b03897d2134c902a7b0aa0c1384771bdc04557 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90
@@ -9,6 +9,7 @@
 !  P. Wautelet 14/12/2018: split fmreadwrit.f90
 !  P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file
 !  P. Wautelet 05/03/2019: rename IO subroutines and modules
+!  P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_lfi_N3)
 !-----------------------------------------------------------------
 module mode_io_read_lfi
 !
@@ -34,7 +35,7 @@ INTERFACE IO_Field_read_lfi
                     IO_Field_read_lfi_X4, IO_Field_read_lfi_X5, &
                     IO_Field_read_lfi_X6,                       &
                     IO_Field_read_lfi_N0, IO_Field_read_lfi_N1, &
-                    IO_Field_read_lfi_N2,                       &
+                    IO_Field_read_lfi_N2, IO_Field_read_lfi_N3, &
                     IO_Field_read_lfi_L0, IO_Field_read_lfi_L1, &
                     IO_Field_read_lfi_C0,                       &
                     IO_Field_read_lfi_T0
@@ -387,6 +388,40 @@ IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK)
 END SUBROUTINE IO_Field_read_lfi_N2
 !
 !
+SUBROUTINE IO_Field_read_lfi_N3(TPFILE,TPFIELD,KFIELD,KRESP)
+USE MODE_MSG
+!
+IMPLICIT NONE
+!
+!*      0.1   Declarations of arguments
+!
+TYPE(TFILEDATA),         INTENT(IN)    :: TPFILE
+TYPE(TFIELDDATA),        INTENT(INOUT) :: TPFIELD
+INTEGER,DIMENSION(:,:,:),INTENT(INOUT) :: KFIELD  ! array containing the data field
+INTEGER,                 INTENT(OUT)   :: KRESP   ! return-code if problems occured
+!
+!*      0.2   Declarations of local variables
+!
+INTEGER(KIND=LFIINT)                     :: IRESP,ITOTAL
+INTEGER                                  :: ILENG
+INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK
+LOGICAL                                  :: GGOOD
+!
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
+!
+ILENG = SIZE(KFIELD)
+!
+CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD)
+!
+IF (GGOOD) KFIELD(:,:,:) = RESHAPE(IWORK(IWORK(2)+3:),SHAPE(KFIELD))
+!
+KRESP=IRESP
+!
+IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK)
+!
+END SUBROUTINE IO_Field_read_lfi_N3
+!
+!
 SUBROUTINE IO_Field_read_lfi_L0(TPFILE,TPFIELD,OFIELD,KRESP)
 USE MODE_MSG
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
index 3aaed8fb95ca02eccf016fb1b8256d33b3dc435f..74c69fbcf0a9f2d061d80c7e7d554c61dad7c846 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
@@ -11,6 +11,7 @@
 !  P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages
 !  P. Wautelet 21/02/2019: bugfix: intent of read fields: OUT->INOUT to keep initial value if not found in file
 !  P. Wautelet 05/03/2019: rename IO subroutines and modules
+!  P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_nc4_N3)
 !-----------------------------------------------------------------
 #if defined(MNH_IOCDF4)
 module mode_io_read_nc4
@@ -39,7 +40,7 @@ INTERFACE IO_Field_read_nc4
                     IO_Field_read_nc4_X4,IO_Field_read_nc4_X5, &
                     IO_Field_read_nc4_X6,                      &
                     IO_Field_read_nc4_N0,IO_Field_read_nc4_N1, &
-                    IO_Field_read_nc4_N2,                      &
+                    IO_Field_read_nc4_N2,IO_Field_read_nc4_N3, &
                     IO_Field_read_nc4_L0,IO_Field_read_nc4_L1, &
                     IO_Field_read_nc4_C0,                      &
                     IO_Field_read_nc4_T0
@@ -968,6 +969,77 @@ KRESP = IRESP
 
 END SUBROUTINE IO_Field_read_nc4_N2
 
+SUBROUTINE IO_Field_read_nc4_N3(TPFILE, TPFIELD, KFIELD, KRESP)
+TYPE(TFILEDATA),           INTENT(IN)    :: TPFILE
+TYPE(TFIELDDATA),          INTENT(INOUT) :: TPFIELD
+INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: KFIELD
+INTEGER,                   INTENT(OUT)   :: KRESP  ! return-code
+
+INTEGER(KIND=CDFINT)                              :: STATUS
+INTEGER(KIND=CDFINT)                              :: INCID
+INTEGER(KIND=CDFINT)                              :: IVARID
+INTEGER(KIND=CDFINT)                              :: ITYPE   ! variable type
+INTEGER(KIND=CDFINT)                              :: IDIMS   ! number of dimensions
+INTEGER(KIND=CDFINT),DIMENSION(NF90_MAX_VAR_DIMS) :: IVDIMS
+CHARACTER(LEN=30)                                 :: YVARNAME
+INTEGER(KIND=CDFINT),DIMENSION(3)                 :: IDIMLEN
+INTEGER                                           :: IRESP
+
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME))
+
+IRESP = 0
+! Get the Netcdf file ID
+INCID = TPFILE%NNCID
+
+CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME)
+
+! Get variable ID, NDIMS and TYPE
+STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID)
+IF (STATUS /= NF90_NOERR) THEN
+  CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQ_VARID',TRIM(YVARNAME),IRESP)
+  GOTO 1000
+END IF
+STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS)
+IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME))
+
+!Neglect the time dimension (of size 1)
+IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1
+
+!NF90_INT1 is for the case a boolean was written
+IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN
+  ! Check size of variable before reading
+  STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1))
+  IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME))
+  STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2))
+  IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME))
+  STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3))
+  IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME))
+
+  IF (IDIMLEN(1) == SIZE(KFIELD,1) .AND. IDIMLEN(2) == SIZE(KFIELD,2) .AND. IDIMLEN(3) == SIZE(KFIELD,3)) THEN
+    ! Read variable
+    STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD)
+    IF (STATUS /= NF90_NOERR) THEN
+      CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N3','NF90_GET_VAR',TRIM(YVARNAME),IRESP)
+      GOTO 1000
+    END IF
+    ! Read and check attributes of variable
+    CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP)
+  ELSE
+    CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// &
+                                                           ' not read (wrong size)')
+    IRESP = -3
+  END IF
+ELSE
+  CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// &
+                                                         ' not read (wrong number of dimensions or wrong type)')
+  IRESP = -3
+END IF
+
+1000 CONTINUE
+KRESP = IRESP
+
+END SUBROUTINE IO_Field_read_nc4_N3
+
 SUBROUTINE IO_Field_read_nc4_L0(TPFILE, TPFIELD, OFIELD, KRESP)
 TYPE(TFILEDATA),  INTENT(IN)    :: TPFILE
 TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90
index df07aafd0efd670325b161dc2f29b47c427cfc57..eff5ff16498bf22ab1a3bd24253e08c96fb52f00 100644
--- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90
@@ -1809,7 +1809,7 @@
 !*       0.     DECLARATIONS
 !               ------------
 !
-  USE MODE_ll
+  USE MODE_TOOLS_ll, only: LWEST_ll, LEAST_ll
   !
   IMPLICIT NONE
   !
@@ -1846,7 +1846,7 @@
 !*       0.     DECLARATIONS
 !               ------------
 !
-  USE MODE_ll
+  USE MODE_TOOLS_ll, only: LNORTH_ll, LSOUTH_ll
   !
   IMPLICIT NONE
   !
diff --git a/src/LIB/SURCOUCHE/src/mode_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ll.f90
index 30bf677904825aa22ab4e4a1907455e9dd6d5c40..b40ef97c3865d171b53f3577ed7cc52b5d0c83ac 100644
--- a/src/LIB/SURCOUCHE/src/mode_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_ll.f90
@@ -1,20 +1,14 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2005-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
+! Modifications
+!  P. Wautelet 14/06/2019: use mode_* instead of modi_*
 !-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ##############
-      MODULE MODE_ll
-!     ##############
+!#############
+MODULE MODE_ll
+!#############
 !
 !!     Purpose
 !!     -------
@@ -23,24 +17,21 @@
 !      of the user interface
 !
 !------------------------------------------------------------------------------
-! 
-  USE MODD_ARGSLIST_ll
-!
-  USE MODI_INIT_ll
-!
-  USE MODI_ADDnDFIELD_ll
-  USE MODI_DELnDFIELD_ll
-!
-  USE MODI_ADDDELFIELD2_ll
 !
-  USE MODI_UPDATE_ll
-  USE MODI_REMAP_ll
-!
-  USE MODI_SUM_ll 
-!
-  USE MODI_GET_ll 
-  USE MODI_LOCATION_ll 
-!
-  USE MODI_NEST_ll 
-! 
+use modd_argslist_ll
+
+use mode_argslist_ll
+use mode_argslist2_ll
+use mode_exchange_ll
+use mode_exchange2_ll
+use mode_gather_ll
+use mode_init_ll
+use mode_lb_ll
+use mode_ls_ll
+use mode_nest_ll
+use mode_reduce_sum
+use mode_scatter_ll
+use mode_sum_ll
+use mode_tools_ll
+
 END MODULE MODE_ll
diff --git a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90
index 5c0a214647c187c66834f224504bfb8495187782..053f3fb527933efcebcac4b6a7eaab4f4f33bac3 100644
--- a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90
@@ -54,11 +54,21 @@
 !
 !------------------------------------------------------------------------------
 !
-  USE MODD_STRUCTURE_ll
+USE MODD_STRUCTURE_ll
 
-  use mode_msg
-!
-  CONTAINS
+use mode_msg
+
+implicit none
+
+interface SET_LSFIELD_1WAY_ll
+  module procedure SET_LS2DFIELD_1WAY_ll, SET_LS3DFIELD_1WAY_ll
+end interface
+
+interface SET_LSFIELD_2WAY_ll
+  module procedure SET_LS2DFIELD_2WAY_ll, SET_LS3DFIELD_2WAY_ll
+end interface
+
+CONTAINS
 !
 !     ###########################################################
       SUBROUTINE SET_LS2DFIELD_1WAY_ll(P2DFIELD, PTFIELD, KMODEL)
diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90
index 6eb4ccecccceebeb52f891cc8e07c689d2a04415..db7752c9124099ea5c11f50bbc5b990c39ffcbd3 100644
--- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90
+++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90
@@ -25,6 +25,7 @@ MODULE MODE_MPPDB
 !
   use ISO_FORTRAN_ENV, only: OUTPUT_UNIT
 
+  use MODE_TOOLS_ll, only: GET_GLOBALDIMS_ll, GET_INDICE_ll
   use mode_msg
 
   use modi_tools_c
@@ -1788,7 +1789,6 @@ MODULE MODE_MPPDB
     use modd_precision,     only: MNHINT_MPI, MNHREAL_MPI
 
     USE MODE_DISTRIB_LB
-    USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll
 
     IMPLICIT NONE
 
@@ -2202,6 +2202,7 @@ MODULE MODE_MPPDB
     !
     USE MODD_MPIF,          ONLY: MPI_LAND
     use modd_precision,     only: MNHLOG_MPI
+    USE MODE_TOOLS_ll,      ONLY: GET_DIM_EXT_ll
     !
     IMPLICIT NONE
     !
diff --git a/src/LIB/SURCOUCHE/src/mode_msg.f90 b/src/LIB/SURCOUCHE/src/mode_msg.f90
index 287dac1580ce59e12f9c567607e3e2173df1c0e6..6532afab8cc57e2d8df00593cb0bd3b520c9408f 100644
--- a/src/LIB/SURCOUCHE/src/mode_msg.f90
+++ b/src/LIB/SURCOUCHE/src/mode_msg.f90
@@ -8,6 +8,7 @@
 ! Modifications:
 !  P. Wautelet 27/02/2019: module extracted from mode_io.f90
 !  P. Wautelet 04/04/2019: force write on stderr for all processes in print_msg if abort
+!  P. Wautelet 02/07/2019: flush messages also for files opened with newunit (logical unit can be negative)
 !-----------------------------------------------------------------
 MODULE MODE_MSG
 !
@@ -114,11 +115,11 @@ IF (KVERB<=IABORTLEVEL) THEN
   WRITE(UNIT=ERROR_UNIT,FMT="(A8,': ',A9,A30,A)") ADJUSTL(YPRC),YPRE,YSUBR,HMSG
   WRITE(UNIT=ERROR_UNIT,FMT="(A8,': ',A)")        ADJUSTL(YPRC),'ABORT asked by application '//TRIM(CPROGRAM)
 #if 0
-  !Problem: loop dependency between MODE_MSG and MODE_IO_FILE (IO_File_close call PRINT_MSG)
+  !Problem: loop dependency between MODE_MSG and MODE_FM (IO_FILE_CLOSE_ll call PRINT_MSG)
   NIO_VERB = 0 !To not get further messages (ABORT should be the last for readability)
-  IF (ILU>0) CALL IO_File_close(TFILE_OUTPUTLISTING) !To flush it
+  IF ( ILU /= -1 ) CALL IO_FILE_CLOSE_ll(TFILE_OUTPUTLISTING) !To flush it
 #else
-  IF (ILU>0) FLUSH(UNIT=ILU) !OK in F2003
+  IF ( ILU /= -1 ) FLUSH(UNIT=ILU) !OK in F2003
   IF (ASSOCIATED(TLUOUT0)) FLUSH(UNIT=TLUOUT0%NLU)
 #endif
   !Add a sleep to ensure that the process(es) that have to write to stderr and to file
diff --git a/src/LIB/SURCOUCHE/src/mode_reduce_sum.f90 b/src/LIB/SURCOUCHE/src/mode_reduce_sum.f90
new file mode 100644
index 0000000000000000000000000000000000000000..a0411f18362f28095cb9bf6a06798433aa19375b
--- /dev/null
+++ b/src/LIB/SURCOUCHE/src/mode_reduce_sum.f90
@@ -0,0 +1,742 @@
+!MNH_LIC Copyright 1998-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.
+!-----------------------------------------------------------------
+! Modifications:
+!  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
+!  P. Wautelet 21/06/2019: mode REDUCESUM_ll subroutine to mode_reduce_sum.f90 (to remove circular dependencies between modules)
+!-----------------------------------------------------------------
+module mode_reduce_sum
+
+USE MODD_MPIF
+use modd_precision, only: MNHINT_MPI, MNHREAL_MPI
+USE MODD_VAR_ll,    ONLY: NMNH_COMM_WORLD
+USE modd_repro_sum
+
+implicit none
+
+INTERFACE REDUCESUM_ll
+   MODULE PROCEDURE REDUCE_SUM_0DD_ll, REDUCE_SUM_1DD_ll,                                      &
+                    REDUCE_SUM_0D_ll,  REDUCE_SUM_1D_ll,  REDUCE_SUM_2D_ll,  REDUCE_SUM_3D_ll, &
+                    REDUCE_SUM_I0D_ll, REDUCE_SUM_I1D_ll, REDUCE_SUM_I2D_ll, REDUCE_SUM_I3D_ll
+END INTERFACE
+
+contains
+
+  SUBROUTINE INIT_DD(KINFO)
+    IMPLICIT NONE
+    INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+    !
+    ! define the double-double for MPI
+    !
+    CALL MPI_TYPE_CONTIGUOUS(2, MNHREAL_MPI ,MNH_DOUBLE_DOUBLE , KINFO)
+    CALL MPI_TYPE_COMMIT(MNH_DOUBLE_DOUBLE , KINFO)
+    !
+    ! define the double-double sum = MNH_SUM_DD  for MPI
+    !
+    CALL MPI_OP_CREATE(DDPDD, .TRUE., MNH_SUM_DD, KINFO)
+    FIRST_CALL_DD = .FALSE.
+    !
+  END SUBROUTINE INIT_DD
+
+  PURE SUBROUTINE DDPDD (dda, ddb, len, itype)
+    !----------------------------------------------------------------------
+    !
+    ! Purpose:
+    ! Modification of original codes written by David H. Bailey
+    ! This subroutine computes ddb(i) = dda(i)+ddb(i)
+    ! for use with MPI_*_REDUCE
+    !
+    !----------------------------------------------------------------------
+    !
+    ! Arguments
+    !
+    INTEGER, INTENT(in)                :: len       ! array length
+    TYPE(DOUBLE_DOUBLE), INTENT(in)    :: dda(len)  ! input
+    TYPE(DOUBLE_DOUBLE), INTENT(inout) :: ddb(len)  ! result
+    INTEGER, INTENT(in)                :: itype     ! unused
+    !
+    ! Local workspace
+    !
+    REAL e, t1, t2
+    INTEGER i
+    !
+    !-----------------------------------------------------------------------
+    !
+    DO i = 1, len
+       !
+       !   Compute dda + ddb using Knuth's trick.
+       !
+       t1 = dda(i)%R + ddb(i)%R
+       e  = t1 - dda(i)%R
+       t2 = ((ddb(i)%R - e) + (dda(i)%R - (t1 - e))) &
+            + dda(i)%E + ddb(i)%E
+       !
+       !   The result is t1 + t2, after normalization.
+       !
+       ddb(i)%R = t1 + t2
+       ddb(i)%E = t2 - ((t1 + t2) - t1)
+    ENDDO
+
+    RETURN
+
+  END SUBROUTINE DDPDD
+
+!     ########################################
+      SUBROUTINE REDUCE_SUM_0DD_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_0DD_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the scalar argument PRES on processors.
+!
+!     REDUCE_SUM_0Q_ll is the routine for scalar REAL*16 argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_0Q_ll, each processor
+!     computes its local sum PRES; in REDUCE_SUM_0Q_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable  REAL*16.
+!
+!!    External
+!!    --------
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!
+!!    Author
+!!    ------
+!     Ph. Kloos      * CNRM - CERFACS *
+!
+!!    Modifications
+!!    -------------
+!     Original 27/06/98
+!     R. Guivarch 09/07/98 Same argument PRES INOUT
+!
+!-----------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  TYPE(DOUBLE_DOUBLE), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  TYPE(DOUBLE_DOUBLE)  :: ZRES ! sum
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  IF (FIRST_CALL_DD) CALL INIT_DD(KINFO)
+  ZRES%R = 0.0 ;  ZRES%E = 0.0
+  CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNH_DOUBLE_DOUBLE , &
+                     MNH_SUM_DD, NMNH_COMM_WORLD, KINFO)
+
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+END SUBROUTINE REDUCE_SUM_0DD_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_0D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_0D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the scalar argument PRES on processors.
+!
+!     REDUCE_SUM_0D_ll is the routine for scalar argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_0D_ll, each processor
+!     computes its local sum PRES; in REDUCE_SUM_0D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!
+!!    Author
+!!    ------
+!     Ph. Kloos      * CNRM - CERFACS *
+!
+!!    Modifications
+!!    -------------
+!     Original 27/06/98
+!     R. Guivarch 09/07/98 Same argument PRES INOUT
+!
+!-----------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  REAL, INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  REAL :: ZRES ! Intermediate result
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHREAL_MPI, &
+                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_0D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_1DD_ll(PRES, KINFO)
+!     ########################################
+!
+
+!!    Author
+!!    ------
+!     J.Escobar 22/10/2010
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+   TYPE(DOUBLE_DOUBLE), DIMENSION(:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  TYPE(DOUBLE_DOUBLE), DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum
+
+!
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  IF (FIRST_CALL_DD) CALL INIT_DD(KINFO)
+  ZRES%R = 0.0 ;  ZRES%E = 0.0
+  CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES), MNH_DOUBLE_DOUBLE , &
+                     MNH_SUM_DD, NMNH_COMM_WORLD, KINFO)
+PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+END SUBROUTINE REDUCE_SUM_1DD_ll
+!
+
+!     ########################################
+      SUBROUTINE REDUCE_SUM_1D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_1D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the each entry of the one-dimensional vector PRES
+!     on all processors.
+!
+!     REDUCE_SUM_1D_ll is the routine for 1D argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_1D_ll, each processor
+!     computes its local 1D sum PRES; in REDUCE_SUM_1D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!
+!!    Author
+!!    ------
+!     Ph. Kloos      * CNRM - CERFACS *
+!
+!!    Modifications
+!!    -------------
+!     Original 27/06/98
+!     R. Guivarch 09/07/98 Same argument PRES INOUT
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  REAL, DIMENSION(:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  REAL, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHREAL_MPI, &
+                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_1D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_2D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_2D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the each entry of the two-dimensional vector PRES
+!     on all processors.
+!
+!     REDUCE_SUM_2D_ll is the routine for 2D argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_2D_ll, each processor
+!     computes its local 2D sum PRES; in REDUCE_SUM_2D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!
+!!    Author
+!!    ------
+!     Ph. Kloos      * CNRM - CERFACS *
+!
+!!    Modifications
+!!    -------------
+!     Original 27/06/98
+!     R. Guivarch 09/07/98 Same argument PRES INOUT
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  REAL, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum
+!
+  INTEGER :: IDIM
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  IDIM = SIZE(PRES,1) * SIZE(PRES,2)
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, &
+                     NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_2D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_3D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_3D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the each entry of the three-dimensional vector PRES
+!     on all processors.
+!
+!     REDUCE_SUM_3D_ll is the routine for 3D argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_3D_ll, each processor
+!     computes its local 3D sum PRES; in REDUCE_SUM_3D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!
+!!    Author
+!!    ------
+!     Ph. Kloos      * CNRM - CERFACS *
+!
+!!    Modifications
+!!    -------------
+!     Original 27/06/98
+!     R. Guivarch 09/07/98 Same argument PRES INOUT
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate
+                                                                  ! sum
+!
+  INTEGER :: IDIM
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3)
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, &
+                     NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_3D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_I0D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_I0D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the scalar argument PRES on processors.
+!
+!     REDUCE_SUM_I0D_ll is the routine for integer scalar argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_I0D_ll, each processor
+!     computes its local sum PRES; in REDUCE_SUM_I0D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Author
+!!    ------
+!     D. Gazen  * L.A. *
+!
+!!    Modifications
+!!    -------------
+!     Original 4/09/2000
+!
+!-----------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  INTEGER, INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  INTEGER :: ZRES ! Intermediate result
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHINT_MPI, &
+                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_I0D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_I1D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_I1D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the each entry of the one-dimensional vector PRES
+!     on all processors.
+!
+!     REDUCE_SUM_I1D_ll is the routine for integer 1D argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_I1D_ll, each processor
+!     computes its local 1D sum PRES; in REDUCE_SUM_I1D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Author
+!!    ------
+!     D. Gazen  * L.A. *
+!
+!!    Modifications
+!!    -------------
+!     Original 4/09/2000
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  INTEGER, DIMENSION(:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  INTEGER, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHINT_MPI, &
+                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_I1D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_I2D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_2D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the each entry of the two-dimensional vector PRES
+!     on all processors.
+!
+!     REDUCE_SUM_I2D_ll is the routine for integer 2D argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_I2D_ll, each processor
+!     computes its local 2D sum PRES; in REDUCE_SUM_I2D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Author
+!!    ------
+!     D. Gazen  * L.A. *
+!
+!!    Modifications
+!!    -------------
+!     Original 4/09/2000
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  INTEGER, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum
+!
+  INTEGER :: IDIM
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  IDIM = SIZE(PRES,1) * SIZE(PRES,2)
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, &
+                     NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_I2D_ll
+!
+!     ########################################
+      SUBROUTINE REDUCE_SUM_I3D_ll(PRES, KINFO)
+!     ########################################
+!
+!!****  *REDUCE_SUM_I3D_ll*-
+!
+!!    Purpose
+!!    -------
+!     This routine calculates the sum of the values
+!     of the each entry of the three-dimensional vector PRES
+!     on all processors.
+!
+!     REDUCE_SUM_I3D_ll is the routine for 3D argument
+!     of the generic routine REDUCESUM_ll.
+!
+!!    Method
+!!    ------
+!     Before the call to REDUCE_SUM_I3D_ll, each processor
+!     computes its local 3D sum PRES; in REDUCE_SUM_I3D_ll
+!     we reduce this values and return the global sum
+!     in the PRES variable.
+!
+!!    External
+!!    --------
+!
+!!    Author
+!!    ------
+!     D. Gazen  * L.A. *
+!
+!!    Modifications
+!!    -------------
+!     Original 4/09/2000
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!
+  IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate
+                                                                  ! sum
+!
+  INTEGER :: IDIM
+!
+!-------------------------------------------------------------------------------
+!
+!*       1. CALL THE MPI_ALLREDUCE ROUTINE
+!           ------------------------------
+!
+  IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3)
+!
+  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, &
+                     NMNH_COMM_WORLD, KINFO)
+!
+  PRES = ZRES
+!
+!-------------------------------------------------------------------------------
+!
+      END SUBROUTINE REDUCE_SUM_I3D_ll
+!
+!-------------------------------------------------------------------------------
+!
+end module mode_reduce_sum
diff --git a/src/LIB/SURCOUCHE/src/mode_scatter.f90 b/src/LIB/SURCOUCHE/src/mode_scatter.f90
index f16f8f6145411a02a68b86cfa0947bf777adbd92..32eaa729052794702023468e113cecabaa913449 100644
--- a/src/LIB/SURCOUCHE/src/mode_scatter.f90
+++ b/src/LIB/SURCOUCHE/src/mode_scatter.f90
@@ -6,6 +6,7 @@
 ! Modifications:
 !  J. Escobar  10/02/2012: bug in MPI_RECV: replace MPI_STATUSES_IGNORE with MPI_STATUS_IGNORE
 !  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
+!  P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (SCATTERXX_N3 and SCATTERXY_N3)
 !-----------------------------------------------------------------
 
 MODULE MODE_SCATTER_ll
@@ -19,14 +20,17 @@ IMPLICIT NONE
 PRIVATE
 
 INTERFACE SCATTER_XXFIELD
-  MODULE PROCEDURE SCATTERXX_X1,SCATTERXX_X2,SCATTERXX_X3&
-       & ,SCATTERXX_X4,SCATTERXX_X5,SCATTERXX_X6,&
-       & SCATTERXX_N1,SCATTERXX_N2 
+  MODULE PROCEDURE                            &
+    SCATTERXX_X1, SCATTERXX_X2, SCATTERXX_X3, &
+    SCATTERXX_X4, SCATTERXX_X5, SCATTERXX_X6, &
+    SCATTERXX_N1, SCATTERXX_N2, SCATTERXX_N3
 END INTERFACE
 
-INTERFACE SCATTER_XYFIELD  
-  MODULE PROCEDURE SCATTERXY_X2,SCATTERXY_X3,SCATTERXY_X4,&
-       & SCATTERXY_X5,SCATTERXY_X6,SCATTERXY_N2
+INTERFACE SCATTER_XYFIELD
+  MODULE PROCEDURE                            &
+                  SCATTERXY_X2, SCATTERXY_X3, &
+    SCATTERXY_X4, SCATTERXY_X5, SCATTERXY_X6, &
+                  SCATTERXY_N2, SCATTERXY_N3
 END INTERFACE
 
 PUBLIC SCATTER_XXFIELD,SCATTER_XYFIELD,GET_DOMREAD_ll
@@ -371,6 +375,44 @@ END IF
 
 END SUBROUTINE SCATTERXX_N2
 
+SUBROUTINE SCATTERXX_N3(HDIR,KSEND,KRECV,KROOT,KCOMM)
+USE MODD_IO, ONLY: ISP, ISNPROC
+
+CHARACTER(LEN=*),                 INTENT(IN)    :: HDIR
+INTEGER,DIMENSION(:,:,:), TARGET, INTENT(IN)    :: KSEND
+INTEGER,DIMENSION(:,:,:),         INTENT(INOUT) :: KRECV
+INTEGER,                          INTENT(IN)    :: KROOT
+INTEGER,                          INTENT(IN)    :: KCOMM
+
+INTEGER :: IERR
+INTEGER :: JI
+INTEGER :: IXO,IXE,IYO,IYE
+INTEGER,DIMENSION(:,:,:), POINTER :: TI2DP
+
+IF (ISP == KROOT) THEN
+  DO JI = 1,ISNPROC
+    CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE)
+    IF (HDIR == 'XX') THEN
+      TI2DP=>KSEND(IXO:IXE,:,:)
+    ELSE ! HDIR ='YY'
+      TI2DP=>KSEND(IYO:IYE,:,:)
+    END IF
+
+    IF (ISP /= JI) THEN
+      CALL MPI_BSEND(TI2DP,SIZE(TI2DP),MNHINT_MPI,JI-1,199+KROOT,KCOMM&
+           & ,IERR)
+    ELSE
+      KRECV(:,:,:) = TI2DP(:,:,:)
+    END IF
+  END DO
+ELSE
+  CALL MPI_RECV(KRECV,SIZE(KRECV),MNHINT_MPI,KROOT-1,199+KROOT,KCOMM&
+       & ,MPI_STATUS_IGNORE,IERR)
+END IF
+
+END SUBROUTINE SCATTERXX_N3
+
+
 SUBROUTINE SCATTERXY_X2(PSEND,PRECV,KROOT,KCOMM)
 USE MODD_IO,     ONLY: ISP, ISNPROC
 USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE
@@ -584,6 +626,39 @@ END IF
 
 END SUBROUTINE  SCATTERXY_N2
 
+SUBROUTINE SCATTERXY_N3(KSEND,KRECV,KROOT,KCOMM)
+USE MODD_IO, ONLY: ISP, ISNPROC
+
+INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN)    :: KSEND
+INTEGER,DIMENSION(:,:,:),       INTENT(INOUT) :: KRECV
+INTEGER,                        INTENT(IN)    :: KROOT
+INTEGER,                        INTENT(IN)    :: KCOMM
+
+INTEGER :: IERR
+INTEGER :: JI
+INTEGER :: IXO,IXE,IYO,IYE
+INTEGER,DIMENSION(:,:,:), POINTER :: TI3DP
+
+IF (ISP == KROOT) THEN
+  DO JI = 1,ISNPROC
+    CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE)
+    TI3DP=>KSEND(IXO:IXE,IYO:IYE,:)
+
+    IF (ISP /= JI) THEN
+      CALL MPI_BSEND(TI3DP,SIZE(TI3DP),MNHINT_MPI,JI-1,199+KROOT,KCOMM&
+           & ,IERR)
+    ELSE
+      KRECV(:,:,:) = TI3DP(:,:,:)
+    END IF
+  END DO
+ELSE
+  CALL MPI_RECV(KRECV,SIZE(KRECV),MNHINT_MPI,KROOT-1,199+KROOT,KCOMM&
+       & ,MPI_STATUS_IGNORE,IERR)
+END IF
+
+END SUBROUTINE SCATTERXY_N3
+
+
 SUBROUTINE GET_DOMREAD_ll(KIP,KXOR,KXEND,KYOR,KYEND)
 USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll
 USE MODD_VAR_ll,       ONLY: TCRRT_PROCONF
diff --git a/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90
index 77d08c6866ce897efa35164f450f5b2ed04e74b3..3ab67f7ba8364b8e0c4a5516bf4c44c4f99e0b15 100644
--- a/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_sum2_ll.f90
@@ -37,12 +37,18 @@
 !
 !------------------------------------------------------------------------------
 !
-   USE MODD_MPIF
-   !JUANZ
-   USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
-   !JUANZ
-!
-!  INCLUDE 'mpif.h'
+USE MODD_MPIF
+USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
+
+implicit none
+
+interface GMAXLOC_ll
+  module procedure GMAXLOC1D_ll, GMAXLOC2D_ll, GMAXLOC3D_ll
+end interface
+
+interface GMINLOC_ll
+  module procedure GMINLOC1D_ll, GMINLOC2D_ll, GMINLOC3D_ll
+end interface
 !
   CONTAINS
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90
index 6e9bfb3a5ec5955fb2e00360209d53ab23be3e4f..613d6c3eee38a2cc70052f92f6da957aceaacc8f 100644
--- a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-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.
@@ -6,6 +6,7 @@
 ! Modifications:
 !  J. Escobar  15/09/2015: WENO5 & JPHEXT <> 1
 !  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
+!  P. Wautelet 21/06/2019: mode REDUCESUM_ll subroutine to mode_reduce_sum.f90 (to remove circular dependencies between modules)
 !-----------------------------------------------------------------
 
 !     ##################
@@ -57,11 +58,15 @@
 !
 !------------------------------------------------------------------------------
 !
-   USE MODD_MPIF
-   use modd_precision, only: MNHINT_MPI, MNHREAL_MPI
-   USE MODD_VAR_ll,    ONLY: NMNH_COMM_WORLD
+USE MODD_MPIF
+use modd_precision, only: MNHINT_MPI, MNHREAL_MPI
+USE MODD_VAR_ll,    ONLY: NMNH_COMM_WORLD
+
+use mode_reduce_sum
+
+implicit none
 !
-  CONTAINS
+CONTAINS
 !
 !     #######################################################
       FUNCTION EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
@@ -118,7 +123,7 @@
 !
   USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT
   USE MODD_VAR_ll,        ONLY: TCRRT_COMDATA
-  USE MODE_TOOLS_ll,      ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   IMPLICIT NONE
 !
@@ -368,7 +373,7 @@
   USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT
   USE MODD_VAR_ll,        ONLY: TCRRT_COMDATA
 !
-  USE MODE_TOOLS_ll,      ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   IMPLICIT NONE
 !
@@ -670,7 +675,7 @@
   USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT
   USE MODD_VAR_ll,        ONLY: TCRRT_COMDATA
 !
-  USE MODE_TOOLS_ll,      ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   IMPLICIT NONE
 !
@@ -971,7 +976,7 @@
   USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT
   USE MODD_VAR_ll,        ONLY: TCRRT_COMDATA
 !
-  USE MODE_TOOLS_ll,      ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   USE MODE_TOOLS_ll
 !
@@ -1207,7 +1212,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll
   USE MODD_STRUCTURE_ll,  ONLY: MODELSPLITTING_ll
   USE MODD_VAR_ll,        ONLY: IP, TCRRT_COMDATA, TCRRT_PROCONF, NPROC
 !
-  USE MODE_TOOLS_ll,      ONLY:  LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY:  GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   IMPLICIT NONE
 !
@@ -1414,7 +1419,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll
   USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT
   USE MODD_VAR_ll,        ONLY: TCRRT_COMDATA
 !
-  USE MODE_TOOLS_ll,      ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   IMPLICIT NONE
 !
@@ -1626,7 +1631,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll
   USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT
   USE MODD_VAR_ll,        ONLY: TCRRT_COMDATA
 !
-  USE MODE_TOOLS_ll,      ONLY: LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
+  USE MODE_TOOLS_ll,      ONLY: GET_GLOBALDIMS_ll, LNORTH_ll, LSOUTH_ll, LEAST_ll, LWEST_ll
 !
   IMPLICIT NONE
 !
@@ -2379,664 +2384,4 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll
   
       END SUBROUTINE SUM_DIM1_ll
 !
-!     ########################################
-      SUBROUTINE REDUCE_SUM_0DD_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_0DD_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the scalar argument PRES on processors.
-!
-!     REDUCE_SUM_0Q_ll is the routine for scalar REAL*16 argument
-!     of the generic routine REDUCESUM_ll.
-!
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_0Q_ll, each processor
-!     computes its local sum PRES; in REDUCE_SUM_0Q_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable  REAL*16.
-!
-!!    External
-!!    --------
-!
-!!    Implicit Arguments
-!!    ------------------
-!
-!
-!!    Author
-!!    ------
-!     Ph. Kloos      * CNRM - CERFACS *
-!
-!!    Modifications
-!!    -------------
-!     Original 27/06/98
-!     R. Guivarch 09/07/98 Same argument PRES INOUT
-!
-!-----------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-  USE MODE_REPRO_SUM
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  TYPE(DOUBLE_DOUBLE), INTENT(INOUT) :: PRES ! sum 
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  TYPE(DOUBLE_DOUBLE)  :: ZRES ! sum 
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  IF (FIRST_CALL_DD) CALL INIT_DD(KINFO)
-  ZRES%R = 0.0 ;  ZRES%E = 0.0
-  CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNH_DOUBLE_DOUBLE , &
-                     MNH_SUM_DD, NMNH_COMM_WORLD, KINFO)
-
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE REDUCE_SUM_0DD_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_0D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_0D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the scalar argument PRES on processors.
-!
-!     REDUCE_SUM_0D_ll is the routine for scalar argument
-!     of the generic routine REDUCESUM_ll.
-!
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_0D_ll, each processor
-!     computes its local sum PRES; in REDUCE_SUM_0D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Implicit Arguments
-!!    ------------------
-!
-!
-!!    Author
-!!    ------
-!     Ph. Kloos      * CNRM - CERFACS *
-!
-!!    Modifications
-!!    -------------
-!     Original 27/06/98
-!     R. Guivarch 09/07/98 Same argument PRES INOUT
-!
-!-----------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  REAL, INTENT(INOUT) :: PRES ! sum 
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  REAL :: ZRES ! Intermediate result
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHREAL_MPI, &
-                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_0D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_1DD_ll(PRES, KINFO)
-!     ########################################
-!
-
-!!    Author
-!!    ------
-!     J.Escobar 22/10/2010
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-!
-        USE MODE_REPRO_SUM 
-
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-   TYPE(DOUBLE_DOUBLE), DIMENSION(:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  TYPE(DOUBLE_DOUBLE), DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum
-
-!
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  IF (FIRST_CALL_DD) CALL INIT_DD(KINFO)
-  ZRES%R = 0.0 ;  ZRES%E = 0.0
-  CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES), MNH_DOUBLE_DOUBLE , &
-                     MNH_SUM_DD, NMNH_COMM_WORLD, KINFO)
-PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE REDUCE_SUM_1DD_ll
-!
-
-!     ########################################
-      SUBROUTINE REDUCE_SUM_1D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_1D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the each entry of the one-dimensional vector PRES
-!     on all processors.
-! 
-!     REDUCE_SUM_1D_ll is the routine for 1D argument
-!     of the generic routine REDUCESUM_ll.
-! 
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_1D_ll, each processor
-!     computes its local 1D sum PRES; in REDUCE_SUM_1D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Implicit Arguments
-!!    ------------------
-!
-!
-!!    Author
-!!    ------
-!     Ph. Kloos      * CNRM - CERFACS *
-!
-!!    Modifications
-!!    -------------
-!     Original 27/06/98
-!     R. Guivarch 09/07/98 Same argument PRES INOUT
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  REAL, DIMENSION(:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  REAL, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHREAL_MPI, &
-                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_1D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_2D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_2D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the each entry of the two-dimensional vector PRES
-!     on all processors.
-! 
-!     REDUCE_SUM_2D_ll is the routine for 2D argument
-!     of the generic routine REDUCESUM_ll.
-! 
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_2D_ll, each processor
-!     computes its local 2D sum PRES; in REDUCE_SUM_2D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Implicit Arguments
-!!    ------------------
-!
-!
-!!    Author
-!!    ------
-!     Ph. Kloos      * CNRM - CERFACS *
-!
-!!    Modifications
-!!    -------------
-!     Original 27/06/98
-!     R. Guivarch 09/07/98 Same argument PRES INOUT
-!
-!-------------------------------------------------------------------------------
-! 
-!*       0.    DECLARATIONS 
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  REAL, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-! 
-  REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum
-!
-  INTEGER :: IDIM 
-! 
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  IDIM = SIZE(PRES,1) * SIZE(PRES,2)
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, &
-                     NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_2D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_3D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_3D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the each entry of the three-dimensional vector PRES
-!     on all processors.
-! 
-!     REDUCE_SUM_3D_ll is the routine for 3D argument
-!     of the generic routine REDUCESUM_ll.
-! 
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_3D_ll, each processor
-!     computes its local 3D sum PRES; in REDUCE_SUM_3D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Implicit Arguments
-!!    ------------------
-!
-!
-!!    Author
-!!    ------
-!     Ph. Kloos      * CNRM - CERFACS *
-!
-!!    Modifications
-!!    -------------
-!     Original 27/06/98
-!     R. Guivarch 09/07/98 Same argument PRES INOUT
-!
-!-------------------------------------------------------------------------------
-! 
-!*       0.    DECLARATIONS 
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-! 
-  REAL, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate
-                                                                  ! sum
-!
-  INTEGER :: IDIM
-! 
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3)
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHREAL_MPI, MPI_SUM, &
-                     NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_3D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_I0D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_I0D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the scalar argument PRES on processors.
-!
-!     REDUCE_SUM_I0D_ll is the routine for integer scalar argument
-!     of the generic routine REDUCESUM_ll.
-!
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_I0D_ll, each processor
-!     computes its local sum PRES; in REDUCE_SUM_I0D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Author
-!!    ------
-!     D. Gazen  * L.A. *
-!
-!!    Modifications
-!!    -------------
-!     Original 4/09/2000
-!
-!-----------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  INTEGER, INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  INTEGER :: ZRES ! Intermediate result
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, 1, MNHINT_MPI, &
-                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_I0D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_I1D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_I1D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the each entry of the one-dimensional vector PRES
-!     on all processors.
-!
-!     REDUCE_SUM_I1D_ll is the routine for integer 1D argument
-!     of the generic routine REDUCESUM_ll.
-!
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_I1D_ll, each processor
-!     computes its local 1D sum PRES; in REDUCE_SUM_I1D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Author
-!!    ------
-!     D. Gazen  * L.A. *
-!
-!!    Modifications
-!!    -------------
-!     Original 4/09/2000
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  INTEGER, DIMENSION(:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  INTEGER, DIMENSION(SIZE(PRES,1)) :: ZRES ! Intermediate sum
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, SIZE(PRES,1), MNHINT_MPI, &
-                     MPI_SUM, NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_I1D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_I2D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_2D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the each entry of the two-dimensional vector PRES
-!     on all processors.
-!
-!     REDUCE_SUM_I2D_ll is the routine for integer 2D argument
-!     of the generic routine REDUCESUM_ll.
-!
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_I2D_ll, each processor
-!     computes its local 2D sum PRES; in REDUCE_SUM_I2D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Author
-!!    ------
-!     D. Gazen  * L.A. *
-!
-!!    Modifications
-!!    -------------
-!     Original 4/09/2000
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  INTEGER, DIMENSION(:,:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2)) :: ZRES ! Intermediate sum
-!
-  INTEGER :: IDIM
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  IDIM = SIZE(PRES,1) * SIZE(PRES,2)
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, &
-                     NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_I2D_ll
-!
-!     ########################################
-      SUBROUTINE REDUCE_SUM_I3D_ll(PRES, KINFO)
-!     ########################################
-!
-!!****  *REDUCE_SUM_I3D_ll*-
-!
-!!    Purpose
-!!    -------
-!     This routine calculates the sum of the values
-!     of the each entry of the three-dimensional vector PRES
-!     on all processors.
-!
-!     REDUCE_SUM_I3D_ll is the routine for 3D argument
-!     of the generic routine REDUCESUM_ll.
-!
-!!    Method
-!!    ------
-!     Before the call to REDUCE_SUM_I3D_ll, each processor
-!     computes its local 3D sum PRES; in REDUCE_SUM_I3D_ll
-!     we reduce this values and return the global sum
-!     in the PRES variable.
-!
-!!    External
-!!    --------
-!
-!!    Author
-!!    ------
-!     D. Gazen  * L.A. *
-!
-!!    Modifications
-!!    -------------
-!     Original 4/09/2000
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!
-  IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-  INTEGER, DIMENSION(:,:,:), INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-!*       0.2   Declarations of local variables :
-!
-  INTEGER, DIMENSION(SIZE(PRES,1),SIZE(PRES,2),SIZE(PRES,3)) :: ZRES ! Intermediate
-                                                                  ! sum
-!
-  INTEGER :: IDIM
-!
-!-------------------------------------------------------------------------------
-!
-!*       1. CALL THE MPI_ALLREDUCE ROUTINE
-!           ------------------------------
-!
-  IDIM = SIZE(PRES,1) * SIZE(PRES,2) * SIZE(PRES,3)
-!
-  CALL MPI_ALLREDUCE(PRES, ZRES, IDIM, MNHINT_MPI, MPI_SUM, &
-                     NMNH_COMM_WORLD, KINFO)
-!
-  PRES = ZRES
-!
-!-------------------------------------------------------------------------------
-!
-      END SUBROUTINE REDUCE_SUM_I3D_ll
-!
-!-------------------------------------------------------------------------------
-!
 END MODULE MODE_SUM_ll
diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
index 8378386e1c732809ab0d9849611e476bbed47304..b5fbe7198a2e4bd55d549e75aa671f105bef252e 100644
--- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
@@ -47,16 +47,24 @@
 !     Juan/Didier 12/03/2009: array bound bug correction with 1proc/MPIVIDE
 !     J. Escobar  27/06/2011  correction for gridnesting with different SHAPE 
 ! 
-  USE MODD_MPIF
-  use modd_precision, only: MNHINT_MPI, MNHREAL_MPI
-  USE MODD_STRUCTURE_ll
-  !JUANZ
-  USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
-  !JUANZ
+USE MODD_MPIF
+use modd_precision, only: MNHINT_MPI, MNHREAL_MPI
+USE MODD_STRUCTURE_ll
+USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
 
-  use mode_msg
-!
-  CONTAINS
+use mode_msg
+
+implicit none
+
+interface GET_GLOBALSLICE_ll
+  module procedure GET_1DGLOBALSLICE_ll, GET_2DGLOBALSLICE_ll
+end interface
+
+interface GET_SLICE_ll
+  module procedure GET_1DSLICE_ll, GET_2DSLICE_ll
+end interface
+
+CONTAINS
 
   SUBROUTINE SLIDE_COORD(KDIM_DATA,KDIM_PROC,THIS_PROC,KOR,KEND)
 
diff --git a/src/LIB/SURCOUCHE/src/modi_adddelfield2_ll.f90 b/src/LIB/SURCOUCHE/src/modi_adddelfield2_ll.f90
deleted file mode 100644
index 5d3722292a18f4bf1d3bd9fccbbbff34363a8c02..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_adddelfield2_ll.f90
+++ /dev/null
@@ -1,50 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ###########################
-      MODULE MODI_ADDDELFIELD2_ll
-!     ###########################
-!
-INTERFACE
-!
-!!     #################################################
-       SUBROUTINE ADD_FIELD2_ll( TPLIST_ll, TPHALO2_ll )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll
-!
-  TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll  ! list of HALO2
-  TYPE(HALO2_ll), TARGET      :: TPHALO2_ll ! HALO2 to be added
-!
-       END SUBROUTINE ADD_FIELD2_ll
-!
-!!     ########################################################
-       SUBROUTINE DEL_FIELD2_ll( TPLIST_ll, TPHALO2_ll, KINFO )
-!!     ########################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2_ll, HALO2LIST_ll
-!
-  TYPE(HALO2LIST_ll), POINTER :: TPLIST_ll ! list of fields
-  TYPE(HALO2_ll), TARGET      :: TPHALO2_ll! field to be deleted
-                                           ! from the list of fields
-  INTEGER                     :: KINFO     ! return status :
-                                           !   0 if PFIELD has been found
-                                           !   1 otherwise
-!
-       END SUBROUTINE DEL_FIELD2_ll
-!
-END INTERFACE
-!
-END MODULE MODI_ADDDELFIELD2_ll
-
diff --git a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 b/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90
deleted file mode 100644
index 043aa02d0f8ad3fd05de721e2429d5f4bff5969d..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90
+++ /dev/null
@@ -1,70 +0,0 @@
-!MNH_LIC Copyright 1998-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.
-!-----------------------------------------------------------------
-! Modifications:
-!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
-!-----------------------------------------------------------------
-!     #########################
-      MODULE MODI_ADDnDFIELD_ll
-!     #########################
-!
-INTERFACE
-!
-!!     #######################################################
-       SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME )
-!!     #######################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
-!
-  CHARACTER(LEN=1), INTENT(IN) :: HDIR   ! direction of the field
-                                         ! ("X" or "Y")
-  TYPE(LIST1D_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
-!
-       END SUBROUTINE ADD1DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  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
-!
-       END SUBROUTINE ADD2DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  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
-!
-       END SUBROUTINE ADD3DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  type(list_ll), pointer   :: tplist   ! list of fields
-  real, dimension(:,:,:,:),   intent(in) :: pfield   ! field to be added to the list of fields
-  character(len=*), intent(in) :: hname ! name of the field to be added
-!
-       END SUBROUTINE ADD4DFIELD_ll
-!
-END INTERFACE
-!
-END MODULE MODI_ADDnDFIELD_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_delndfield_ll.f90 b/src/LIB/SURCOUCHE/src/modi_delndfield_ll.f90
deleted file mode 100644
index dc4dbc89f353721f10ecc5291280c4c7803a0556..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_delndfield_ll.f90
+++ /dev/null
@@ -1,78 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ########################
-      MODULE MODI_DELnDFIELD_ll
-!     #########################
-!
-INTERFACE
-!
-!!     #################################################
-       SUBROUTINE DEL1DFIELD_ll( TPLIST, PFIELD, KINFO )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER     :: TPLIST ! list of fields
-  REAL, DIMENSION(:), TARGET :: PFIELD ! field to be deleted
-                                       ! from the list of fields
-  INTEGER, INTENT(OUT)       :: KINFO  ! return status :
-                                       !   0 if PFIELD has been found
-                                       !   1 otherwise.
-!
-       END SUBROUTINE DEL1DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE DEL2DFIELD_ll( TPLIST, PFIELD, KINFO )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER     :: TPLIST ! list of fields
-  REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be deleted
-                                       ! from the list of fields
-  INTEGER, INTENT(OUT)       :: KINFO  ! return status :
-                                       !   0 if PFIELD has been found
-                                       !   1 otherwise.
-!
-       END SUBROUTINE DEL2DFIELD_ll
-!
-!!     #################################################
-       SUBROUTINE DEL3DFIELD_ll( TPLIST, PFIELD, KINFO )
-!!     #################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER     :: TPLIST ! list of fields
-  REAL, DIMENSION(:,:,:), TARGET :: PFIELD ! field to be deleted
-                                       ! from the list of fields
-  INTEGER, INTENT(OUT)       :: KINFO  ! return status :
-                                       !   0 if PFIELD has been found
-                                       !   1 otherwise.
-!
-       END SUBROUTINE DEL3DFIELD_ll
-!
-!!     #################################
-       SUBROUTINE CLEANLIST_ll( TPLIST )
-!!     #################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER     :: TPLIST ! list of fields
-!
-       END SUBROUTINE CLEANLIST_ll
-!
-END INTERFACE
-!
-END MODULE MODI_DELnDFIELD_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_gather.f90 b/src/LIB/SURCOUCHE/src/modi_gather.f90
deleted file mode 100644
index edda3c46eb26e8e5dfb27db12f5dc57730f98d1e..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_gather.f90
+++ /dev/null
@@ -1,54 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-MODULE MODI_GATHER_ll
-!
-INTERFACE GATHERALL_FIELD_ll
-  SUBROUTINE GATHERALL_X1(HDIR,PSEND,PRECV,KRESP)
-  CHARACTER(LEN=*),  INTENT(IN) :: HDIR
-  REAL,DIMENSION(:), INTENT(IN) :: PSEND
-  REAL,DIMENSION(:), INTENT(INOUT):: PRECV
-  INTEGER,           INTENT(INOUT):: KRESP
-  END SUBROUTINE GATHERALL_X1
-  
-  SUBROUTINE GATHERALL_X2(HDIR,PSEND,PRECV,KRESP)
-  CHARACTER(LEN=*),    INTENT(IN) :: HDIR
-  REAL,DIMENSION(:,:), INTENT(IN) :: PSEND
-  REAL,DIMENSION(:,:), INTENT(INOUT):: PRECV
-  INTEGER,             INTENT(INOUT):: KRESP
-  END SUBROUTINE GATHERALL_X2
-  
-  SUBROUTINE GATHERALL_X3(HDIR,PSEND,PRECV,KRESP)
-  CHARACTER(LEN=*),      INTENT(IN) :: HDIR
-  REAL,DIMENSION(:,:,:), INTENT(IN) :: PSEND
-  REAL,DIMENSION(:,:,:), INTENT(INOUT):: PRECV
-  INTEGER,               INTENT(INOUT):: KRESP
-  END SUBROUTINE GATHERALL_X3
-  
-  SUBROUTINE GATHERALL_N1(HDIR,KSEND,KRECV,KRESP)
-  CHARACTER(LEN=*),     INTENT(IN) :: HDIR
-  INTEGER,DIMENSION(:), INTENT(IN) :: KSEND
-  INTEGER,DIMENSION(:), INTENT(INOUT):: KRECV
-  INTEGER,              INTENT(INOUT):: KRESP
-  END SUBROUTINE GATHERALL_N1
-  
-  SUBROUTINE GATHERALL_N2(HDIR,KSEND,KRECV,KRESP)
-  CHARACTER(LEN=*),       INTENT(IN) :: HDIR
-  INTEGER,DIMENSION(:,:), INTENT(IN) :: KSEND
-  INTEGER,DIMENSION(:,:), INTENT(INOUT):: KRECV
-  INTEGER,                INTENT(INOUT):: KRESP
-  END SUBROUTINE GATHERALL_N2
-END INTERFACE
-!
-END MODULE MODI_GATHER_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_get_ll.f90 b/src/LIB/SURCOUCHE/src/modi_get_ll.f90
deleted file mode 100644
index f77ebb3ea5899a9b0d8e4f078c1fe13bd40ca116..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_get_ll.f90
+++ /dev/null
@@ -1,143 +0,0 @@
-!MNH_LIC Copyright 1994-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 MODI_GET_ll 
-!     ##################
-!
-INTERFACE
-!
-!!     ##################################################
-       SUBROUTINE  GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM )
-!!     ##################################################
-!
-  CHARACTER(len=1), INTENT(IN) :: HSPLIT
-  INTEGER, INTENT(OUT) :: KXDIM, KYDIM
-!
-       END SUBROUTINE GET_DIM_EXT_ll
-!
-!!     ###################################################
-       SUBROUTINE  GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM )
-!!     ###################################################
-!
-  CHARACTER(len=1), INTENT(IN) :: HSPLIT
-  INTEGER, INTENT(OUT) :: KXDIM, KYDIM
-!
-       END SUBROUTINE GET_DIM_PHYS_ll
-!
-!!     ##########################################
-       SUBROUTINE GET_OR_ll( HSPLIT, KXOR, KYOR )
-!!     ##########################################
-!
-  CHARACTER(len=1), INTENT(IN) :: HSPLIT
-  INTEGER, INTENT(OUT) :: KXOR, KYOR
-!
-       END SUBROUTINE GET_OR_ll
-!
-!!     ####################################################
-       SUBROUTINE GET_INDICE_ll( KXOR, KYOR, KXEND, KYEND )
-!!     ####################################################
-!
-  INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND
-!
-       END SUBROUTINE GET_INDICE_ll
-!
-!!     ##########################################
-       SUBROUTINE GET_GLOBALDIMS_ll(KIMAX, KJMAX)
-!!     ##########################################
-!
-  INTEGER, INTENT(OUT) :: KIMAX, KJMAX ! current model dimensions
-!
-       END SUBROUTINE GET_GLOBALDIMS_ll
-!
-!!     ######################################################
-       SUBROUTINE GET_PHYSICAL_ll( KXOR, KYOR, KXEND, KYEND )
-!!     ######################################################
-!
-  INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND
-!
-       END SUBROUTINE GET_PHYSICAL_ll
-!
-!!     ###############################################################
-       SUBROUTINE GET_INTERSECTION_ll( KXOR, KYOR, KXEND, KYEND, &
-                                       KXORI, KYORI, KXENDI, KYENDI, &
-                                       HDOM, KINFO, KIP )
-!!     ###############################################################
-!
-  CHARACTER(LEN=4), INTENT(IN) :: HDOM    ! 'EXTE' for extended subdomain
-                                          ! 'PHYS' for physical subdomain
-  INTEGER, INTENT(IN)  :: KXOR, KYOR, &   ! Coordinates of the
-                          KXEND, KYEND    ! region
-!
-  INTEGER, INTENT(OUT) :: KXORI, KYORI, & ! Global Coordinates
-                          KXENDI, KYENDI  ! of the intersection
-  INTEGER, INTENT(OUT) :: KINFO           ! Returned Info
-  INTEGER, INTENT(IN), OPTIONAL:: KIP     ! Processor number
-                                          ! (or subdomain number)
-       END SUBROUTINE GET_INTERSECTION_ll
-!
-END INTERFACE
-!
-INTERFACE GET_GLOBALSLICE_ll
-!
-!!      ####################################################################
-        SUBROUTINE GET_1DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, &
-                                         KB, KE, KERR )
-!!      ####################################################################
-!
-  REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY
-  CHARACTER(LEN=1), INTENT(IN)      :: HDIR
-  INTEGER, INTENT(IN)               :: KLOC
-  REAL, DIMENSION(:), INTENT(OUT)   :: PGLOBALSLICE
-  INTEGER, OPTIONAL    :: KB, KE, KERR
-!
-       END SUBROUTINE GET_1DGLOBALSLICE_ll
-!
-!!     ####################################################################
-       SUBROUTINE GET_2DGLOBALSLICE_ll( PARRAY, HDIR, KLOC, PGLOBALSLICE, &
-                                        KB, KE, KKB, KKE, KERR )
-!!     ####################################################################
-!
-  REAL, DIMENSION(:,:,:) :: PARRAY
-  CHARACTER(LEN=1)       :: HDIR
-  INTEGER                :: KLOC
-  REAL, DIMENSION(:,:)   :: PGLOBALSLICE
-  INTEGER, OPTIONAL    :: KB, KE, KKB, KKE, KERR
-!
-       END SUBROUTINE GET_2DGLOBALSLICE_ll
-!
-END INTERFACE
-!
-INTERFACE GET_SLICE_ll
-!
-!!     #####################################################################
-       SUBROUTINE GET_1DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, KB, KE, KERR )
-!!     #####################################################################
-!
-  REAL, DIMENSION(:,:), TARGET, INTENT(IN) :: PARRAY
-  CHARACTER(LEN=1), INTENT(IN)      :: HDIR
-  INTEGER, INTENT(IN)               :: KLOC
-  REAL, DIMENSION(:), INTENT(OUT)   :: PSLICE
-  INTEGER, OPTIONAL    :: KB, KE, KERR
-!
-       END SUBROUTINE GET_1DSLICE_ll
-!
-!!     ########################################################
-       SUBROUTINE GET_2DSLICE_ll( PARRAY, HDIR, KLOC, PSLICE, &
-                                  KB, KE, KKB, KKE, KERR )
-!!     ########################################################
-!
-  REAL, DIMENSION(:,:,:) :: PARRAY
-  CHARACTER(LEN=1)       :: HDIR
-  INTEGER                :: KLOC
-  REAL, DIMENSION(:,:)   :: PSLICE
-  INTEGER, OPTIONAL    :: KB, KE, KKB, KKE, KERR
-!
-       END SUBROUTINE GET_2DSLICE_ll
-!
-END INTERFACE
-!
-END MODULE MODI_GET_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_init_ll.f90 b/src/LIB/SURCOUCHE/src/modi_init_ll.f90
deleted file mode 100644
index ecf09a18d3d3f1cc71bf7555cb7f11740f4007d5..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_init_ll.f90
+++ /dev/null
@@ -1,188 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ###################
-      MODULE MODI_INIT_ll
-!     ###################
-!!
-INTERFACE 
-!
-!      #########################################
-       SUBROUTINE SET_SPLITTING_ll( HSPLITTING )
-!      #########################################
-!
-  CHARACTER(LEN=*) :: HSPLITTING
-!
-       END SUBROUTINE SET_SPLITTING_ll
-!
-!      ##################################
-       SUBROUTINE SET_LBX_ll( KLBX, KMI )
-!      ##################################
-!
-  CHARACTER(LEN=*) :: KLBX
-  INTEGER :: KMI
-!
-       END SUBROUTINE SET_LBX_ll
-!
-!      ##################################
-       SUBROUTINE SET_LBY_ll( KLBY, KMI )
-!      ##################################
-!
-  CHARACTER(LEN=*) :: KLBY
-  INTEGER :: KMI
-!
-       END SUBROUTINE SET_LBY_ll
-!
-!      ############################################
-       SUBROUTINE SET_LBSIZEX_ll( KNBRIM, KRIMTAB )
-!      ############################################
-!
-  INTEGER :: KNBRIM
-  INTEGER, DIMENSION(:) :: KRIMTAB
-!
-       END SUBROUTINE SET_LBSIZEX_ll
-!
-!      ############################################
-       SUBROUTINE SET_LBSIZEY_ll( KNBRIM, KRIMTAB )
-!      ############################################
-!
-  INTEGER :: KNBRIM
-  INTEGER, DIMENSION(:) :: KRIMTAB
-!
-       END SUBROUTINE SET_LBSIZEY_ll
-!
-!      ###################################
-       SUBROUTINE SET_DIM_ll( KX, KY, KZ )
-!      ###################################
-!
- INTEGER :: KX,KY,KZ
-!
-        END SUBROUTINE SET_DIM_ll
-!
-!      #######################################################
-       SUBROUTINE SET_JP_ll( KMODELMAX, KHEXT, KVEXT, KPHALO )
-!      #######################################################
-!
-  INTEGER :: KMODELMAX, KHEXT, KVEXT, KPHALO
-!
-       END SUBROUTINE SET_JP_ll
-!
-!      ########################################
-       SUBROUTINE SET_XRATIO_ll( KXRATIO, KMI )
-!      ########################################
-!
-  INTEGER :: KXRATIO, KMI
-!
-       END SUBROUTINE SET_XRATIO_ll
-!
-!      ########################################
-       SUBROUTINE SET_YRATIO_ll( KYRATIO, KMI )
-!      ########################################
-!
-  INTEGER :: KYRATIO, KMI
-!
-       END SUBROUTINE SET_YRATIO_ll
-!
-!      ##################################
-       SUBROUTINE SET_DAD_ll( KDAD, KMI )
-!      ##################################
-!
-  INTEGER :: KDAD, KMI
-!
-       END SUBROUTINE SET_DAD_ll
-!
-!      ##################################
-       SUBROUTINE SET_XOR_ll( KXOR, KMI )
-!      ##################################
-!
-  INTEGER :: KXOR, KMI
-!
-       END SUBROUTINE SET_XOR_ll
-!
-!      ####################################
-       SUBROUTINE SET_XEND_ll( KXEND, KMI )
-!      ####################################
-!
-  INTEGER :: KXEND, KMI
-!
-       END SUBROUTINE SET_XEND_ll
-!
-!      ##################################
-       SUBROUTINE SET_YOR_ll( KYOR, KMI )
-!      ##################################
-!
-  INTEGER :: KYOR, KMI
-!
-       END SUBROUTINE SET_YOR_ll
-!
-!      ####################################
-       SUBROUTINE SET_YEND_ll( KYEND, KMI )
-!      ####################################
-!
-  INTEGER :: KYEND, KMI
-!
-       END SUBROUTINE SET_YEND_ll
-!
-!      ########################
-       SUBROUTINE SET_DAD0_ll()
-!      ########################
-!
-       END SUBROUTINE SET_DAD0_ll
-!
-!      #######################
-       SUBROUTINE INIT_LB_ll()
-!      #######################
-!
-       END SUBROUTINE INIT_LB_ll
-!
-!      #######################
-       SUBROUTINE SET_LB_FIELD_ll(HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, &
-        SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH )
-  !
-  CHARACTER(LEN=*),INTENT(IN) :: HLBTYPE ! LB type : 'LB','LBU'
-  REAL, DIMENSION(:,:,:), INTENT(IN)  :: PFIELD      ! field on the whole domain (or subdomain)
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBXFIELD    ! LB field - X direction
-  REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PLBYFIELD    ! LB field - Y direction
-  !beginning and end of the local physical subdomain
-  INTEGER, INTENT(IN)   :: IIB            ! indice I Beginning in x direction
-  INTEGER, INTENT(IN)   :: IJB            ! indice J Beginning in y direction
-  INTEGER, INTENT(IN)   :: IIE            ! indice I End       in x direction
-  INTEGER, INTENT(IN)   :: IJE            ! indice J End       in y direction
-  INTEGER, INTENT(IN)   :: SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ! shifting applied to the indices copied from PFIELD in each direction
-                                                                        ! it is used for LBXUM et LBXVM
-                                                                        ! I do not know why...
-  !
-!      #######################
-!
-       END SUBROUTINE SET_LB_FIELD_ll
-!
-!      ###################################
-        SUBROUTINE INI_PARA_ll( KINFO_ll )
-!      ###################################
-!
-  INTEGER, INTENT(OUT) :: KINFO_ll
-!
-       END SUBROUTINE INI_PARA_ll
-!
-!     ###################################
-       SUBROUTINE END_PARA_ll( KINFO_ll )
-!     ###################################
-!
-  INTEGER, INTENT(OUT) :: KINFO_ll
-!
-       END SUBROUTINE END_PARA_ll
-!
-END INTERFACE
-!
-END MODULE MODI_INIT_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_location_ll.f90 b/src/LIB/SURCOUCHE/src/modi_location_ll.f90
deleted file mode 100644
index 4f6e4cdea2fb14c649ed4ff0b1bb5c35e25358dd..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_location_ll.f90
+++ /dev/null
@@ -1,51 +0,0 @@
-!MNH_LIC Copyright 1994-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 MODI_LOCATION_ll
-!     #######################
-!
-INTERFACE
-!
-!!     ###########################################
-       LOGICAL FUNCTION LNORTH_ll( K, HSPLITTING )
-!!     ###########################################
-!
-  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
-!
-       END FUNCTION LNORTH_ll
-!
-!!     ##########################################
-       LOGICAL FUNCTION LWEST_ll( K, HSPLITTING )
-!!     ##########################################
-!
-  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
-!
-       END FUNCTION LWEST_ll
-!
-!!     ###########################################
-       LOGICAL FUNCTION LSOUTH_ll( K, HSPLITTING )
-!!     ###########################################
-!
-  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
-!
-       END FUNCTION LSOUTH_ll
-!
-!!     ##########################################
-       LOGICAL FUNCTION LEAST_ll( K, HSPLITTING )
-!!     ##########################################
-!
-  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
-!
-       END FUNCTION LEAST_ll
-!
-END INTERFACE
-!
-END MODULE MODI_LOCATION_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_nest_ll.f90 b/src/LIB/SURCOUCHE/src/modi_nest_ll.f90
deleted file mode 100644
index d4fc1b5f7af4e1d7f03128429c9e057974206a11..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_nest_ll.f90
+++ /dev/null
@@ -1,195 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ###################
-      MODULE MODI_NEST_ll
-!     ###################
-!
-INTERFACE
-!
-!     ###############################################
-      SUBROUTINE GET_MODEL_NUMBER_ll( KMODEL_NUMBER )
-!     ###############################################
-!
-  INTEGER :: KMODEL_NUMBER
-!
-      END SUBROUTINE GET_MODEL_NUMBER_ll
-!
-!     ####################################################
-      SUBROUTINE GET_CHILD_DIM_ll( KCHILD, KX, KY, KINFO )
-!     ####################################################
-!
-  INTEGER, INTENT(IN) :: KCHILD
-!
-  INTEGER, INTENT(OUT) :: KX, KY
-!
-  INTEGER, INTENT(OUT) :: KINFO
-!
-       END SUBROUTINE GET_CHILD_DIM_ll
-!
-!     ###################################################################
-      SUBROUTINE GET_FEEDBACK_COORD_ll( KXOR, KYOR, KXEND, KYEND, KINFO )
-!     ###################################################################
-!
-  INTEGER, INTENT(OUT) :: KXOR, KYOR, KXEND, KYEND
-!
-  INTEGER, INTENT(OUT) :: KINFO
-!
-       END SUBROUTINE GET_FEEDBACK_COORD_ll
-!
-!     ##################################
-      SUBROUTINE UNSET_LSFIELD_1WAY_ll()
-!     ##################################
-!
-      END SUBROUTINE UNSET_LSFIELD_1WAY_ll
-!
-!     ##########################################
-      SUBROUTINE UNSET_LSFIELD_2WAY_ll( KMODEL )
-!     ##########################################
-!
-  INTEGER, INTENT(IN) :: KMODEL
-!
-      END SUBROUTINE UNSET_LSFIELD_2WAY_ll
-!
-!     #########################################
-      SUBROUTINE LS_FORCING_ll( KCHILD, KINFO, OEXTRAPOL, OCYCLIC_EXTRAPOL )
-!     #########################################
-!
-  INTEGER, INTENT(IN) :: KCHILD 
-  INTEGER, INTENT(OUT) :: KINFO
-  LOGICAL, OPTIONAL, INTENT(IN) :: OEXTRAPOL
-  LOGICAL, OPTIONAL, INTENT(IN) :: OCYCLIC_EXTRAPOL
-!
-      END SUBROUTINE LS_FORCING_ll
-!
-!     ###################################
-      SUBROUTINE LS_FEEDBACK_ll( KINFO  )
-!     ###################################
-!
-  INTEGER, INTENT(OUT) :: KINFO
-!
-      END SUBROUTINE LS_FEEDBACK_ll
-!
-
-!     #############################
-      SUBROUTINE UNSET_LBFIELD_ll()
-!     #############################
-!
-      END SUBROUTINE UNSET_LBFIELD_ll
-!
-!     #########################################
-      SUBROUTINE LB_FORCING_ll( KCHILD, KINFO )
-!     #########################################
-!
-  INTEGER, INTENT(IN) :: KCHILD
-!
-  INTEGER, INTENT(OUT) :: KINFO
-!
-       END SUBROUTINE LB_FORCING_ll
-!
-!!     ###########################################################
-       FUNCTION LBFINE2COARSE( KRATIO, KLBSIZE ) RESULT( KCOARSE )
-!!     ###########################################################
-!
-  IMPLICIT NONE
-!
-  INTEGER :: KCOARSE
-!
-  INTEGER :: KRATIO, KLBSIZE
-!
-      END FUNCTION LBFINE2COARSE
-!
-!     #########################################
-      SUBROUTINE GO_TOMODEL_ll( KMODEL, KINFO )
-!     #########################################
-!
-INTEGER :: KMODEL, KINFO
-!
-      END SUBROUTINE GO_TOMODEL_ll
-!
-END INTERFACE
-!
-INTERFACE SET_LSFIELD_1WAY_ll
-!
-!     #############################################################
-      SUBROUTINE SET_LS2DFIELD_1WAY_ll( P2DFIELD, PTFIELD, KMODEL )
-!     #############################################################
-!
-  REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD
-  INTEGER, INTENT(IN) :: KMODEL
-!
-      END SUBROUTINE SET_LS2DFIELD_1WAY_ll
-!
-!     #############################################################
-      SUBROUTINE SET_LS3DFIELD_1WAY_ll( P3DFIELD, PTFIELD, KMODEL )
-!     #############################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD
-  INTEGER, INTENT(IN) :: KMODEL
-!
-      END SUBROUTINE SET_LS3DFIELD_1WAY_ll
-!
-END INTERFACE
-!
-INTERFACE SET_LSFIELD_2WAY_ll
-!
-!     #####################################################
-      SUBROUTINE SET_LS2DFIELD_2WAY_ll( P2DFIELD, PTFIELD )
-!     #####################################################
-!
-  REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD
-!
-      END SUBROUTINE SET_LS2DFIELD_2WAY_ll
-!
-!     #####################################################
-      SUBROUTINE SET_LS3DFIELD_2WAY_ll( P3DFIELD, PTFIELD )
-!     #####################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD
-!
-      END SUBROUTINE SET_LS3DFIELD_2WAY_ll
-!
-END INTERFACE
-!
-INTERFACE SET_LBFIELD_ll
-!
-!     ##############################################################
-      SUBROUTINE SET_LB2DFIELD_ll( P2DFIELD, PTFIELD, KFINELBSIZE, &
-                                   HSIDE, KMODEL )
-!     ##############################################################
-!
-  REAL, DIMENSION(:,:), INTENT(IN), TARGET :: P2DFIELD, PTFIELD
-!
-  INTEGER, INTENT(IN) :: KFINELBSIZE, KMODEL
-!
-  CHARACTER(LEN=*), INTENT(IN) :: HSIDE
-!
-      END SUBROUTINE SET_LB2DFIELD_ll
-!
-!     ##############################################################
-      SUBROUTINE SET_LB3DFIELD_ll( P3DFIELD, PTFIELD, KFINELBSIZE, &
-                                   HSIDE, KMODEL )
-!     ##############################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN), TARGET :: P3DFIELD, PTFIELD
-!
-  INTEGER, INTENT(IN) :: KFINELBSIZE, KMODEL
-!
-  CHARACTER(LEN=*), INTENT(IN) :: HSIDE
-!
-      END SUBROUTINE SET_LB3DFIELD_ll
-!
-END INTERFACE
-!
-END MODULE MODI_NEST_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_remap_ll.f90 b/src/LIB/SURCOUCHE/src/modi_remap_ll.f90
deleted file mode 100644
index ab47659f701fbf8b4ecd1c08ddcd1736d25f34d3..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_remap_ll.f90
+++ /dev/null
@@ -1,63 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ####################
-      MODULE MODI_REMAP_ll 
-!     ####################
-!
-INTERFACE
-!
-!!     ########################################################
-       SUBROUTINE REMAP_2WAY_X_ll( PFIELDIN, PFIELDOUT, KINFO )
-!!     ########################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent
-  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field
-  INTEGER :: KINFO ! return status
-!
-      END SUBROUTINE REMAP_2WAY_X_ll
-!
-!     ########################################################
-      SUBROUTINE REMAP_X_2WAY_ll( PFIELDIN, PFIELDOUT, KINFO )
-!     ########################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent
-  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field
-  INTEGER :: KINFO ! return status
-!
-      END SUBROUTINE REMAP_X_2WAY_ll
-!
-!     #####################################################
-      SUBROUTINE REMAP_X_Y_ll( PFIELDIN, PFIELDOUT, KINFO )
-!     #####################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent
-  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field
-  INTEGER :: KINFO ! return status
-!
-      END SUBROUTINE REMAP_X_Y_ll
-!
-!     #####################################################
-      SUBROUTINE REMAP_Y_X_ll( PFIELDIN, PFIELDOUT, KINFO )
-!     #####################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELDIN ! field to be sent
-  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PFIELDOUT ! reception field
-  INTEGER :: KINFO ! return status
-!
-      END SUBROUTINE REMAP_Y_X_ll
-!
-END INTERFACE
-!
-END MODULE MODI_REMAP_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_scatter.f90 b/src/LIB/SURCOUCHE/src/modi_scatter.f90
deleted file mode 100644
index c85b9f1f667699f290d7acbf1ef3096c7f666403..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_scatter.f90
+++ /dev/null
@@ -1,29 +0,0 @@
-!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.
-!-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
-!     ######spl
-      MODULE MODI_SCATTER
-!     #####################
-!
-INTERFACE
-      SUBROUTINE SCATTER(P1,P2)
-!
-REAL, DIMENSION(:,:),  INTENT(IN)    :: P1
-REAL, DIMENSION(:,:),  INTENT(OUT)   :: P2
-!
-END SUBROUTINE SCATTER
-!
-END INTERFACE
-!
-END MODULE MODI_SCATTER
diff --git a/src/LIB/SURCOUCHE/src/modi_sum_ll.f90 b/src/LIB/SURCOUCHE/src/modi_sum_ll.f90
deleted file mode 100644
index dfef9061dd6354c4ad9a237ff55f6384a0aa227e..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_sum_ll.f90
+++ /dev/null
@@ -1,365 +0,0 @@
-!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 MODI_SUM_ll
-!     ##################
-!
-INTERFACE
-!
-!!     #######################################################
-       FUNCTION EXTRACT_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                            KXEND, KYEND, KZEND )
-!!     #######################################################
-!
-  REAL, DIMENSION(:,:,:), POINTER :: EXTRACT_ll ! Result
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates
-                                   KXEND, KYEND, KZEND ! of the region
-!
-       END FUNCTION EXTRACT_ll
-!
-!!     ###########################################################
-       FUNCTION SUM1D_ll( PFIELD, KDIR, KINFO, KXOR, KYOR, KZOR, &
-                           KXEND, KYEND, KZEND )
-!!     ###########################################################
-!
-  REAL, DIMENSION(:,:), POINTER :: SUM1D_ll ! Result
-!
-  INTEGER, INTENT(IN) :: KDIR ! Summation direction (1, 2 or 3)
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates
-                                   KXEND, KYEND, KZEND ! of the region
-!
-       END FUNCTION SUM1D_ll
-!
-!!     ###################################################################
-       FUNCTION SUM2D_ll( PFIELD, KDIR1, KDIR2, KINFO, KXOR, KYOR, KZOR, &
-                          KXEND, KYEND, KZEND )
-!!     ###################################################################
-!
-  REAL, DIMENSION(:), POINTER :: SUM2D_ll ! Result
-!
-  INTEGER, INTENT(IN) :: KDIR1, KDIR2 ! Summation directions (1, 2 or 3)
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates
-                                   KXEND, KYEND, KZEND ! of the region
-!
-       END FUNCTION SUM2D_ll
-!
-!!     #####################################################
-       FUNCTION SUM3D_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                          KXEND, KYEND, KZEND )
-!!     #####################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates
-                                   KXEND, KYEND, KZEND ! of the region
-!
-       END FUNCTION SUM3D_ll
-!
-!!     #######################################################################
-       FUNCTION SUM_1DFIELD_ll( PFIELD, HDIR, KOR, KEND, KERR ) RESULT( ZSUM )
-!!     #######################################################################
-!
-  REAL, DIMENSION(:), INTENT(IN) :: PFIELD ! 1d Field
-!
-  CHARACTER(LEN=1) :: HDIR               ! direction of the 1D field
-!
-  INTEGER, OPTIONAL, INTENT(OUT) :: KERR ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KOR, KEND ! Coordinates of the region
-!
-  REAL :: ZSUM ! result
-!
-       END FUNCTION SUM_1DFIELD_ll
-!
-!!     ########################################################
-       REAL FUNCTION MAX_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                             KXEND, KYEND, KZEND )
-!!     ########################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates
-                                   KXEND, KYEND, KZEND ! of the region
-!
-       END FUNCTION MAX_ll
-!
-!!     ########################################################
-       REAL FUNCTION MIN_ll( PFIELD, KINFO, KXOR, KYOR, KZOR, &
-                             KXEND, KYEND, KZEND )
-!!     ########################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-  INTEGER, OPTIONAL, INTENT(IN) :: KXOR, KYOR, KZOR, & ! Coordinates
-                                   KXEND, KYEND, KZEND ! of the region
-!
-       END FUNCTION MIN_ll
-!
-!!     ###########################################
-       FUNCTION SUMMASK_ll( PFIELD, OMASK, KINFO )
-!!     ###########################################
-!
-  REAL, DIMENSION(:), POINTER :: SUMMASK_ll ! Result
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK ! 2d Mask
-!
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-       END FUNCTION SUMMASK_ll
-!
-!!     ####################################################
-       REAL FUNCTION SUMMASKCOMP_ll( PFIELD, OMASK, KINFO )
-!!     ####################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! 3d Field
-!
-  LOGICAL, DIMENSION(:,:), INTENT(IN) :: OMASK ! 2d Mask
-! 
-  INTEGER, INTENT(OUT) :: KINFO ! Returned Info
-!
-       END FUNCTION SUMMASKCOMP_ll
-!
-!!     #############################################
-       SUBROUTINE SUM_DIM1_ll( PFIELD, PRES, KINFO )
-!!     #############################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN) :: PFIELD
-  REAL, DIMENSION(:, :), INTENT(OUT) :: PRES
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE SUM_DIM1_ll
-!
-!!     #############################################
-       SUBROUTINE SUM_DIM2_ll( PFIELD, PRES, KINFO )
-!!     #############################################
-!
-  REAL, DIMENSION(:), INTENT(IN) :: PFIELD
-  REAL, DIMENSION(:), INTENT(OUT) :: PRES
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE SUM_DIM2_ll
-!
-END INTERFACE
-!
-INTERFACE GMAXLOC_ll
-!
-!!     #######################################################
-       FUNCTION GMAXLOC3D_ll( PARRAY, MASK ) RESULT( KMAXLOC )
-!!     #######################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN)              :: PARRAY   ! input array in
-                                    ! which the maximum is to be found
-!
-  LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK     ! mask 
-  INTEGER, DIMENSION(3)                           :: KMAXLOC  ! indices
-          ! of the maximum value on the whole domain (global coordinates)
-!
-       END FUNCTION GMAXLOC3D_ll
-!
-!!     ##############################################################
-       FUNCTION GMAXLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC )
-!!     ##############################################################
-!
-  REAL, DIMENSION(:,:), INTENT(IN)              :: PARRAY   ! input array in
-                                   ! which the maximum is to be found
-  LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK     ! mask 
-  INTEGER, DIMENSION(2)                         :: KMAXLOC  ! indices
-          ! of the maximum value on the whole domain (global coordinates)
-  INTEGER, DIMENSION(2), OPTIONAL               :: KDIMS
-!
-       END FUNCTION GMAXLOC2D_ll
-!
-!!     ##############################################################
-       FUNCTION GMAXLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMAXLOC )
-!!     ##############################################################
-!
-  REAL, DIMENSION(:), INTENT(IN)              :: PARRAY   ! input array in
-                                 ! which the maximum is to be found
-  LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK     ! mask 
-  INTEGER                                     :: KMAXLOC  ! indice
-          ! of the maximum value on the whole domain (global coordinates)
-  INTEGER,  OPTIONAL                          :: KDIMS
-!
-       END FUNCTION GMAXLOC1D_ll
-!
-END INTERFACE
-!
-INTERFACE GMINLOC_ll
-!
-!!     #######################################################
-       FUNCTION GMINLOC3D_ll( PARRAY, MASK ) RESULT( KMINLOC )
-!!     #######################################################
-!
-  REAL, DIMENSION(:,:,:), INTENT(IN)              :: PARRAY   ! input array in
-                                 ! which the minimum is to be found
-  LOGICAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: MASK     ! mask 
-  INTEGER, DIMENSION(3)                           :: KMINLOC  ! indices
-           ! of the minimum value on the whole domain (global coordinates)
-!
-       END FUNCTION GMINLOC3D_ll
-!
-!!     ##############################################################
-       FUNCTION GMINLOC2D_ll( PARRAY, KDIMS, MASK ) RESULT (KMINLOC )
-!!     ##############################################################
-!
-  REAL, DIMENSION(:,:), INTENT(IN)              :: PARRAY   ! input array in
-                                 ! which the minimum is to be found
-  LOGICAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: MASK     ! mask 
-  INTEGER, DIMENSION(2)                         :: KMINLOC  ! indices
-           ! of the minimum value on the whole domain (global coordinates)
-  INTEGER, DIMENSION(2), OPTIONAL               :: KDIMS
-!
-       END FUNCTION GMINLOC2D_ll
-!
-!!     ##############################################################
-       FUNCTION GMINLOC1D_ll( PARRAY, KDIMS, MASK ) RESULT( KMINLOC )
-!!     ##############################################################
-!
-  REAL, DIMENSION(:), INTENT(IN)              :: PARRAY   ! input array in
-                                 ! which the minimum is to be found
-  LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: MASK     ! mask 
-  INTEGER                                     :: KMINLOC  ! indice
-           ! of the minimum value on the whole domain (global coordinates)
-  INTEGER,  OPTIONAL                       :: KDIMS
-!
-       END FUNCTION GMINLOC1D_ll
-!
-END INTERFACE
-!
-INTERFACE REDUCESUM_ll
-!
-!!     ###########################################
-       SUBROUTINE REDUCE_SUM_0DD_ll( PRES, KINFO )
-!!     ###########################################
-!
-  USE MODD_REPRO_SUM  , ONLY          :  DOUBLE_DOUBLE
-!
-  TYPE(DOUBLE_DOUBLE) , INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER             , INTENT(OUT)   :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_0DD_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_0D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  REAL, INTENT(INOUT) :: PRES ! sum 
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_0D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_1DD_ll( PRES, KINFO )
-!!     ##########################################
-!
-  USE MODD_REPRO_SUM  , ONLY                     :  DOUBLE_DOUBLE
-!
-  TYPE(DOUBLE_DOUBLE),DIMENSION(:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER                   , INTENT(OUT)  :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_1DD_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_1D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  REAL,DIMENSION(:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_1D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_2D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  REAL,DIMENSION(:,:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_2D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_3D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  REAL, DIMENSION(:,:,:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_3D_ll
-!
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I0D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  INTEGER, INTENT(INOUT) :: PRES ! sum 
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_I0D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I1D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  INTEGER,DIMENSION(:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_I1D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I2D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  INTEGER,DIMENSION(:,:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_I2D_ll
-!
-!!     ##########################################
-       SUBROUTINE REDUCE_SUM_I3D_ll( PRES, KINFO )
-!!     ##########################################
-!
-  INTEGER, DIMENSION(:,:,:),INTENT(INOUT) :: PRES ! sum
-!
-  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
-!
-       END SUBROUTINE REDUCE_SUM_I3D_ll
-!
-END INTERFACE
-!
-END MODULE MODI_SUM_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_update_ll.f90 b/src/LIB/SURCOUCHE/src/modi_update_ll.f90
deleted file mode 100644
index 19479f91a80ccbda23799dfc55bdd65f61920905..0000000000000000000000000000000000000000
--- a/src/LIB/SURCOUCHE/src/modi_update_ll.f90
+++ /dev/null
@@ -1,77 +0,0 @@
-!MNH_LIC Copyright 1994-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 MODI_UPDATE_ll 
-!     #####################
-!
-INTERFACE
-!
-!!     ##########################################
-       SUBROUTINE UPDATE_HALO_ll( TPLIST, KINFO,  HDIR )
-!!     ##########################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields to be updated
-  INTEGER                :: KINFO  ! return status
-  CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction
-!
-       END SUBROUTINE UPDATE_HALO_ll
-!
-!!     ############################################
-       SUBROUTINE UPDATE_1DHALO_ll( TPLIST, KINFO )
-!!     ############################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
-!
-  TYPE(LIST1D_ll), POINTER :: TPLIST
-  INTEGER, INTENT(OUT) :: KINFO
-!
-       END SUBROUTINE UPDATE_1DHALO_ll
-!
-!!     ############################################################
-       SUBROUTINE UPDATE_BOUNDARIES_ll( HDIRECTION, TPLIST, KINFO )
-!!     ############################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-!
-  CHARACTER(len=2), INTENT(IN) :: HDIRECTION
-  TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields to be updated
-  INTEGER                :: KINFO  ! return status
-!
-       END SUBROUTINE UPDATE_BOUNDARIES_ll
-!
-!
-!!     ##################################################################
-       SUBROUTINE INIT_HALO2_ll(TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ)
-!!     ##################################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
-!
-  TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list of HALO2_lls
-  INTEGER                     :: KNBVAR      ! number of HALO2_lls to allocate
-  INTEGER        :: KDIMX, KDIMY, KDIMZ      ! dimensions of the HALO2_lls
-!
-       END SUBROUTINE INIT_HALO2_ll
-!
-!!     ########################################################
-       SUBROUTINE UPDATE_HALO2_ll( TPLIST, TPLISTHALO2, KINFO )
-!!     ########################################################
-!
-  USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll,LIST_ll
-!
-  TYPE(LIST_ll), POINTER      :: TPLIST      ! pointer to the list of 
-                                             ! fields to be sent
-  TYPE(HALO2LIST_ll), POINTER :: TPLISTHALO2 ! pointer to the list of
-                                             ! halo2 to be received
-  INTEGER                     :: KINFO       ! return status
-!
-       END SUBROUTINE UPDATE_HALO2_ll
-!
-END INTERFACE
-!
-END MODULE MODI_UPDATE_ll
diff --git a/src/LIB/SURCOUCHE/src/test_double_double.f90 b/src/LIB/SURCOUCHE/src/test_double_double.f90
index eb1d20fa04a3f08ac29562b456da3f8815d0aaac..59b0b2976b5efbf1a835a7da28bbf824b6354f7e 100644
--- a/src/LIB/SURCOUCHE/src/test_double_double.f90
+++ b/src/LIB/SURCOUCHE/src/test_double_double.f90
@@ -1,12 +1,14 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 PROGRAM TEST_DOUBLE_DOUBLE
   ! This code calculates the summation of an array of real numbers
   ! distributed on multiple processors using double-double precision.
 
   USE MODD_MPIF
+  use mode_reduce_sum
   USE mode_repro_sum
 
   IMPLICIT NONE
diff --git a/src/MNH/advec_4th_order_aux.f90 b/src/MNH/advec_4th_order_aux.f90
index fc56999ac43116470dadbdac2477333accd25bcc..a02a9bbbe3d0fe31f3e4210805e0ced089aaca55 100644
--- a/src/MNH/advec_4th_order_aux.f90
+++ b/src/MNH/advec_4th_order_aux.f90
@@ -111,7 +111,7 @@ USE MODD_CONF
 #ifdef _OPENACC
 USE MODE_DEVICE
 #endif
-use mode_ll,          only: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
+use mode_ll,          only: GET_INDICE_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/aer_monitorn.f90 b/src/MNH/aer_monitorn.f90
index 21f1f177fdb72649cc8f5074726840a36ea06626..97faca64cb603b8b904a8512a07a01a45f85f619 100644
--- a/src/MNH/aer_monitorn.f90
+++ b/src/MNH/aer_monitorn.f90
@@ -1,7 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2008-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
+!-----------------------------------------------------------------
 !!    ########################
       MODULE MODI_AER_MONITOR_n
 !!    ########################
@@ -120,7 +121,7 @@ USE MODD_CONF_n,    ONLY: LUSERC,&    ! Logical to use clouds
                           NRR         ! Total number of water variables
 USE MODD_PARAM_n,    ONLY: CCLOUD
 USE MODD_PRECIP_n, ONLY: XEVAP3D
-USE MODI_SUM_ll
+USE MODE_SUM_ll
 USE MODI_SEDIM_DUST
 USE MODI_SEDIM_SALT
 USE MODI_DUST_FILTER
diff --git a/src/MNH/bikhardt.f90 b/src/MNH/bikhardt.f90
index 1efebdc110d4eb558ebb4e10203fddeaebae9c7f..d1aef90e66f611cd6211de826c09ffdbce869a33 100644
--- a/src/MNH/bikhardt.f90
+++ b/src/MNH/bikhardt.f90
@@ -79,6 +79,8 @@ contains
 !               ------------
 !
 USE MODD_PARAMETERS       ! Declarative modules
+
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/ch_aer_mod_init.f90 b/src/MNH/ch_aer_mod_init.f90
index b5a2409aae881e642fc93e797a0c011284024e94..6c22e54432cd4063b7c3facf2a3dc74ede01c378 100644
--- a/src/MNH/ch_aer_mod_init.f90
+++ b/src/MNH/ch_aer_mod_init.f90
@@ -1,4 +1,4 @@
-!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
@@ -41,6 +41,7 @@ END MODULE MODI_CH_AER_MOD_INIT
 !!    -------------
 !!    20/03/03   P . Tulet (CNRM/GMEI)   add  initialization tabulation
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet: 07/06/2019: allocate weights only when needed
 !!
 !!    EXTERNAL
 !!    --------
@@ -83,6 +84,12 @@ TZFILE => NULL()
 !
 ! Initialize the mineral tabulation 
 IF (CMINERAL == 'NARES') THEN
+        ALLOCATE( W1IJA(100,100), W1JKA(100,100), W2IJA(100,100), W2JKA(100,100) )
+        ALLOCATE( W1IJB(100,100), W1JKB(100,100), W2IJB(100,100), W2JKB(100,100) )
+        ALLOCATE( W1IJC(100,100), W1JKC(100,100), W2IJC(100,100), W2JKC(100,100) )
+        ALLOCATE( X1MINA(2,100), X1MAXA(2,100), X1MODA(2,100), X2MINA(2,100), X2MAXA(2,100), X2MODA(2,100) )
+        ALLOCATE( X1MINB(2,100), X1MAXB(2,100), X1MODB(2,100), X2MINB(2,100), X2MAXB(2,100), X2MODB(2,100) )
+        ALLOCATE( X1MINC(2,100), X1MAXC(2,100), X1MODC(2,100), X2MINC(2,100), X2MAXC(2,100), X2MODC(2,100) )
 !       .. the file ares.w contains the weights of the model
         CALL IO_File_add2list(TZFILE,'ares1A.w','CHEMTAB','READ')
         CALL IO_File_open(TZFILE)
diff --git a/src/MNH/ch_aqueous_sedim1mom.f90 b/src/MNH/ch_aqueous_sedim1mom.f90
index bddef28fabab5eda5381b4c4acad12a3c03792e9..9b4e7c6c327a7146e172173aed5dc17d867c7b77 100644
--- a/src/MNH/ch_aqueous_sedim1mom.f90
+++ b/src/MNH/ch_aqueous_sedim1mom.f90
@@ -99,7 +99,8 @@ USE MODD_RAIN_ICE_PARAM,  ONLY : XFSEDR, XEXSEDR, &
                                  XFSEDG, XEXSEDG
 
 use mode_tools,           only: Countjv
-!
+use mode_tools_ll,        only: GET_INDICE_ll
+
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
diff --git a/src/MNH/ch_aqueous_tmicc2r2.f90 b/src/MNH/ch_aqueous_tmicc2r2.f90
index 463ce4238652ab665025bcec96199e685441306c..5009b65247fd7696a0cc62018e39858f2c03fc92 100644
--- a/src/MNH/ch_aqueous_tmicc2r2.f90
+++ b/src/MNH/ch_aqueous_tmicc2r2.f90
@@ -94,6 +94,7 @@ USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : XAUTO1, XAUTO2,               &
                                  XACCR_RSMALL1, XACCR_RSMALL2
 
 use mode_tools,                only: Countjv
+use mode_tools_ll,             only: GET_INDICE_ll
 
 IMPLICIT NONE
 !
diff --git a/src/MNH/ch_aqueous_tmicice.f90 b/src/MNH/ch_aqueous_tmicice.f90
index c0fc812219caa96684384ec073a03b668b8f0fbf..e51d52f374a2b6ff66cb7891b25af689cb400fd3 100644
--- a/src/MNH/ch_aqueous_tmicice.f90
+++ b/src/MNH/ch_aqueous_tmicice.f90
@@ -137,6 +137,7 @@ USE MODD_CH_ICE_n                            ! index for ice phase chemistry wit
 USE MODE_PACK_PGI
 #endif
 use mode_tools,           only: Countjv
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/ch_aqueous_tmickess.f90 b/src/MNH/ch_aqueous_tmickess.f90
index ff4a0bf33b81dee3b215e2632813b506884c16a6..5c57138b8eca55b20d4550a54c4fd2f3d88c325c 100644
--- a/src/MNH/ch_aqueous_tmickess.f90
+++ b/src/MNH/ch_aqueous_tmickess.f90
@@ -84,6 +84,7 @@ USE MODD_CLOUDPAR,        ONLY : XC1RC, XC2RC, &! autoconversion param.
                                  XCEXVT         ! constant in the rain drop fall velocity
 
 use mode_tools,           only: Countjv
+use mode_tools_ll,        only: GET_INDICE_ll
 
 IMPLICIT NONE
 !
diff --git a/src/MNH/ch_aqueous_tmickhko.f90 b/src/MNH/ch_aqueous_tmickhko.f90
index 7369be14eb357a3112c9f118dc42228bd90f8605..938565d212dcc3925fe8169f450aa6a397daba65 100644
--- a/src/MNH/ch_aqueous_tmickhko.f90
+++ b/src/MNH/ch_aqueous_tmickhko.f90
@@ -85,6 +85,7 @@ USE MODD_PARAMETERS,ONLY: JPHEXT,    &! number of horizontal External points
 USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN 
 
 use mode_tools,           only: Countjv
+use mode_tools_ll,        only: GET_INDICE_ll
 
 IMPLICIT NONE
 !
diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90
index c5357b6a18dd0e5275a5c866958cb60f0edba919..30ea347667318cda050a7dd246ab9396b5635e95 100644
--- a/src/MNH/ch_monitorn.f90
+++ b/src/MNH/ch_monitorn.f90
@@ -2,6 +2,7 @@
 !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 MODI_CH_MONITOR_n
 !!    ########################
@@ -133,7 +134,6 @@ USE MODI_CH_AQUEOUS_TMICKHKO
 USE MODI_CH_AQUEOUS_SEDIM1MOM
 USE MODI_CH_AQUEOUS_SEDIM2MOM
 USE MODI_CH_AQUEOUS_CHECK
-USE MODI_SUM_ll
 USE MODI_CH_AER_SEDIM_n
 USE MODI_CH_AER_WETDEP_n
 USE MODI_CH_ORILAM
@@ -145,6 +145,7 @@ USE MODI_CH_AER_DEPOS
 USE MODE_ll
 USE MODE_MODELN_HANDLER
 use mode_msg
+USE MODE_SUM_ll
 !
 USE MODI_WRITE_TS1D
 USE MODD_CST, ONLY : XMNH_TINY
diff --git a/src/MNH/change_gribex_var.f90 b/src/MNH/change_gribex_var.f90
index 0f4badbcd98c8f3280d2c46a7a704b8e51188ef8..a24b85dc832b2beaec76afa82d636023fbc7dabe 100644
--- a/src/MNH/change_gribex_var.f90
+++ b/src/MNH/change_gribex_var.f90
@@ -2,6 +2,7 @@
 !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 MODI_CHANGE_GRIBEX_VAR
 !     #############################
@@ -172,6 +173,7 @@ USE MODD_PARAMETERS
 USE MODD_REF
 !
 USE MODE_THERMO
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 USE MODI_SHUMAN
 USE MODI_WATER_SUM
diff --git a/src/MNH/convection.f90 b/src/MNH/convection.f90
index 84eb18803a7034d84f1845fa0c4020f698761b59..2738ac854fe50aabff8b02554b43b0c6f41b6c79 100644
--- a/src/MNH/convection.f90
+++ b/src/MNH/convection.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ######################
       MODULE MODI_CONVECTION
 !     ######################
@@ -166,6 +162,9 @@ END MODULE MODI_CONVECTION
 !
 USE MODD_PARAMETERS
 USE MODD_CST
+
+use mode_tools_ll,        only: GET_INDICE_ll
+
 USE MODI_SHUMAN
 USE MODI_DEEP_CONVECTION
 USE MODI_SHALLOW_CONVECTION
diff --git a/src/MNH/deallocate_model1.f90 b/src/MNH/deallocate_model1.f90
index 11a577e2e5a77f04b0ea4f0f24009235b5f51312..dc3107d54dd4857b1857c4a2692638d4e9a4c3c8 100644
--- a/src/MNH/deallocate_model1.f90
+++ b/src/MNH/deallocate_model1.f90
@@ -67,6 +67,7 @@ END MODULE MODI_DEALLOCATE_MODEL1
 !!                   10/2016 M.Mazoyer New KHKO output fields
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!                   02/2019 C.Lac add rain fraction as an output field
+!  P. Wautelet 07/06/2019: bugfix: deallocate XLSRVM only if allocated
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -306,7 +307,7 @@ IF ( KCALL == 3 ) THEN
   DEALLOCATE(XLSVM)
   DEALLOCATE(XLSWM)
   DEALLOCATE(XLSTHM)
-  DEALLOCATE(XLSRVM)
+  IF(ASSOCIATED(XLSRVM)) DEALLOCATE(XLSRVM)
   IF (ASSOCIATED(XLBXUM)) THEN
     DEALLOCATE(XLBXUM)
     DEALLOCATE(XLBYUM)
diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index 26d24db0e97d71b45f2bd9539ca23bfe86136846..38c7bba55cb86e02d0f9edc6ad19b085f384dacf 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -873,7 +873,6 @@ IF (KMI == 1) THEN
   NHTURBSV = 0
   NCHEMSV  = 0
   NNEGASV  = 0
-  NDEPOSV  = 0
   NDEPOTRSV  = 0
 !
 !
diff --git a/src/MNH/define_maskn.f90 b/src/MNH/define_maskn.f90
index abd56bf02b2932733f88c05d04b72af9265004f0..e7c927cb6105d71ce086710880d29681a7523602 100644
--- a/src/MNH/define_maskn.f90
+++ b/src/MNH/define_maskn.f90
@@ -68,7 +68,7 @@ USE MODE_MODELN_HANDLER
 !
 USE MODD_VAR_ll, ONLY : YSPLITTING
 USE MODD_STRUCTURE_ll, ONLY : ZONE_ll
-USE MODE_TOOLS_ll, ONLY : INTERSECTION
+USE MODE_TOOLS_ll, ONLY : GET_OR_ll, INTERSECTION
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/eddyUV_flux_one_wayn.f90 b/src/MNH/eddyUV_flux_one_wayn.f90
index 99a1fc6783a34ab406dd09980941479396b15c5a..1e8e7c51314655f7e99de4252bd3562d2722878f 100644
--- a/src/MNH/eddyUV_flux_one_wayn.f90
+++ b/src/MNH/eddyUV_flux_one_wayn.f90
@@ -69,6 +69,7 @@ USE MODD_NESTING
 !
 use mode_bikhardt
 USE MODE_FIELD, ONLY : TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/exchange.f90 b/src/MNH/exchange.f90
index fbf47a060f4524e611135ec95b0ba7a8293b0d5e..b6d8bb8b3a90378304d730c19fbdfeecb932cef2 100644
--- a/src/MNH/exchange.f90
+++ b/src/MNH/exchange.f90
@@ -1,14 +1,8 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/exchange.f90,v $ $Revision: 1.2.2.2.2.2.16.1.2.5.2.1 $ $Date: 2015/12/01 15:26:23 $
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 !     ####################
       MODULE MODI_EXCHANGE
 !     ####################
@@ -99,7 +93,7 @@ END MODULE MODI_EXCHANGE
 !*      0.   DECLARATIONS
 !            ------------
 !
-USE MODE_ll
+! USE MODE_ll
 !
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 USE MODD_GRID_n
@@ -108,7 +102,8 @@ USE MODD_BUDGET,      ONLY : LBUDGET_SV
 USE MODD_CST,         ONLY : XMNH_TINY
 USE MODD_LUNIT_n,     ONLY : TLUOUT
 USE MODI_SHUMAN
-USE MODI_SUM_ll
+use mode_exchange_ll, only: UPDATE_HALO_ll
+USE MODE_SUM_ll
 USE MODI_BUDGET
 USE MODD_CH_MNHC_n,   ONLY : LUSECHEM, LUSECHAQ, LUSECHIC
 USE MODD_CH_AEROSOL,  ONLY : LORILAM, NM6_AER
diff --git a/src/MNH/extend_grid_parameter_mnh.f90 b/src/MNH/extend_grid_parameter_mnh.f90
index 3d5fc09a13966b120e77dbb6db3755d0e3a69ed0..f83fc564f7c7a88f784331aab62369990f598531 100644
--- a/src/MNH/extend_grid_parameter_mnh.f90
+++ b/src/MNH/extend_grid_parameter_mnh.f90
@@ -22,7 +22,7 @@ USE MODD_MPIF
 use MODD_PRECISION,   only: MNHREAL_MPI
 USE MODD_VAR_ll,      ONLY: NPROC, IP, NMNH_COMM_WORLD
 !
-USE MODE_TOOLS_ll,    ONLY: INTERSECTION, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
+USE MODE_TOOLS_ll,    ONLY: GET_GLOBALDIMS_ll, GET_INDICE_ll, GET_OR_ll, INTERSECTION, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
 !
 USE MODI_UPDATE_NHALO1D
 !
diff --git a/src/MNH/fill_zsmtn.f90 b/src/MNH/fill_zsmtn.f90
index 6a8bb7556c4e9ae88049eefa66be4c7d37b4b0b1..0aec87f432255cf0c4b0a52bb87c1a7d23730c71 100644
--- a/src/MNH/fill_zsmtn.f90
+++ b/src/MNH/fill_zsmtn.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2005-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     ######################
@@ -70,6 +70,7 @@ USE MODI_INI_BIKHARDT_n
 USE MODI_SPAWN_ZS
 USE MODE_MODELN_HANDLER
 !
+use mode_nest_ll,      only: GO_TOMODEL_ll
 USE MODE_SPLITTING_ll, ONLY : SPLIT2, DEF_SPLITTING2
 USE MODD_VAR_ll, ONLY : NPROC, IP, YSPLITTING, NMNH_COMM_WORLD
 USE MODD_STRUCTURE_ll, ONLY : ZONE_ll
diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90
index 1d3e057e3b5745ca58136806b5248925ff85f90d..8774b548f230f23bd8ac2e48bfed340df491a843 100644
--- a/src/MNH/goto_model_wrapper.f90
+++ b/src/MNH/goto_model_wrapper.f90
@@ -118,6 +118,7 @@ USE MODD_ADVFRC_n
 USE MODD_CH_PRODLOSSTOT_n
 USE MODD_CH_BUDGET_n
 USE MODE_FIELD
+use mode_msg
 !
 IMPLICIT NONE 
 !
diff --git a/src/MNH/gps_zenith.f90 b/src/MNH/gps_zenith.f90
index 613ad8f2b6145570b8111a7ec83c5b251d675fdb..a11a074d6f511b7909c55934712aa9294cd0a3c2 100644
--- a/src/MNH/gps_zenith.f90
+++ b/src/MNH/gps_zenith.f90
@@ -86,7 +86,7 @@ USE MODD_PARAMETERS
 !
 USE MODE_IO_FILE,          ONLY: IO_File_close, IO_File_open
 USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list
-USE MODE_TOOLS_ll,         ONLY: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
+USE MODE_TOOLS_ll,         ONLY: GET_INDICE_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
 !
 USE MODI_INTERPOL_STATION
 !
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index e9e38431b8efa6cf0e9d939aef2ddf302a9b8bea..2e0a107b6f707f3c82045e9b89fa41225ba132c4 100644
--- a/src/MNH/ice_adjust.f90
+++ b/src/MNH/ice_adjust.f90
@@ -174,9 +174,10 @@ USE MODD_BUDGET
 USE MODD_CONF
 USE MODD_CST
 USE MODD_PARAMETERS
-!
+
 USE MODE_MPPDB
-!
+use mode_tools_ll,        only: GET_INDICE_ll
+
 #ifdef MNH_BITREP
 USE MODI_BITREP
 #endif
diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90
index 957781f1862a455d18478686f61a10eca718268a..8d802babf157138a461aeff09c479f519d42149b 100644
--- a/src/MNH/ice_adjust_elec.f90
+++ b/src/MNH/ice_adjust_elec.f90
@@ -179,7 +179,9 @@ USE MODD_BUDGET
 USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELECEND
 USE MODD_ELEC_DESCR, ONLY : XRTMIN_ELEC, XQTMIN, XFC, XFI, XECHARGE
 USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN, XBI
-!
+
+use mode_tools_ll,        only: GET_INDICE_ll
+
 USE MODI_CONDENSATION
 USE MODI_BUDGET
 USE MODI_GET_HALO
diff --git a/src/MNH/ini_aeroset1.f90 b/src/MNH/ini_aeroset1.f90
index 5048577ac1f123343beeb03f4764ea643a07fa55..869ade50617ff16582b5ca8bc0354aa4fe0f155e 100644
--- a/src/MNH/ini_aeroset1.f90
+++ b/src/MNH/ini_aeroset1.f90
@@ -1,4 +1,4 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
@@ -23,8 +23,13 @@ END MODULE MODI_INI_AEROSET1
 
 USE MODD_AEROSET
 
+use mode_msg
+
 IMPLICIT NONE
 
+if ( .not.allocated( POLYTAU ) ) &
+      call Print_msg( NVERB_FATAL, 'GEN', 'INI_AEROSET1', 'POLYTAU not allocated')
+
 POLYTAU(1, 1,1,1,1:13 )=(/     -733.61139,  -13649.90625,  -99755.00000, &
  -355288.34375, -608672.87500, -390948.84375,     -22.75222,     156.46201, &
     -340.26620,     315.24551,    -450.78485,     626.89001,       0.12454 /)
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index dad3e933933a55d6a761bae30c453cecf9a0e377..a7ff5457c1cfbe7464077149deef90d0492ec766 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -286,175 +286,177 @@ END MODULE MODI_INI_MODEL_n
 !  P. Wautelet 14/03/2019: correct ZWS when variable not present in file (set to XZWS_DEFAULT)
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
 !  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
+!  P. Wautelet 07/06/2019: allocate lookup tables for optical properties only when needed
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !
-#ifdef CPLOASIS
-  USE MODI_SFX_OASIS_READ_NAM
+#ifdef MNH_ECRAD
+USE YOERDI,                 only: RCCO2
 #endif
-!
-USE MODE_ll
-USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-USE MODE_IO
-USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list
-USE MODE_IO_FILE,          ONLY: IO_File_open
-USE MODE_IO_FIELD_READ,    only: IO_Field_read
-USE MODE_INI_ONE_WAY_n
-USE MODE_GATHER_ll
-USE MODE_MSG
-USE MODE_TYPE_ZDIFFU
-!
-USE MODD_NSV
-USE MODD_PARAMETERS
-USE MODD_CST
+
+USE MODD_2D_FRC
+USE MODD_ADVFRC_n
+USE MODD_ADV_n
+use MODD_AEROSET,           only: POLYTAU, POLYSSA, POLYG
+USE MODD_ARGSLIST_ll,       only: LIST_ll
+USE MODD_BIKHARDT_n
+USE MODD_BLOWSNOW
+USE MODD_BLOWSNOW_n
+USE MODD_BUDGET
+USE MODD_CH_AERO_n,         only: XSOLORG,XMI
+USE MODD_CH_AEROSOL,        only: LORILAM
+USE MODD_CH_BUDGET_n
+USE MODD_CH_FLX_n,          only: XCHFLX
+USE MODD_CH_M9_n,           only:NNONZEROTERMS
+USE MODD_CH_MNHC_n,         only: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
+                                  LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH
+USE MODD_CH_PH_n
+USE MODD_CH_PRODLOSSTOT_n
+USE MODD_CLOUD_MF_n
 USE MODD_CONF
+USE MODD_CONF_n
+USE MODD_CST
+USE MODD_CTURB
+USE MODD_CURVCOR_n
+USE MODD_DEEP_CONVECTION_n
+USE MODD_DEF_EDDY_FLUX_n   ! for VT and WT fluxes
+USE MODD_DEF_EDDYUV_FLUX_n ! FOR UV
+USE MODD_DIAG_FLAG,         only: LCHEMDIAG, CSPEC_BU_DIAG
+USE MODD_DIM_n
+USE MODD_DRAG_n
+USE MODD_DRAGTREE
 USE MODD_DUST
+use MODD_DUST_OPT_LKT,      only: NMAX_RADIUS_LKT_DUST=>NMAX_RADIUS_LKT, NMAX_SIGMA_LKT_DUST=>NMAX_SIGMA_LKT,               &
+                                  NMAX_WVL_SW_DUST=>NMAX_WVL_SW,                                                            &
+                                  XEXT_COEFF_WVL_LKT_DUST=>XEXT_COEFF_WVL_LKT, XEXT_COEFF_550_LKT_DUST=>XEXT_COEFF_550_LKT, &
+                                  XPIZA_LKT_DUST=>XPIZA_LKT, XCGA_LKT_DUST=>XCGA_LKT
 USE MODD_DYN
-USE MODD_DYNZD
-USE MODD_FRC
-USE MODD_REF
-USE MODD_SERIES, ONLY: LSERIES
-USE MODD_TIME
-USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI
-USE MODD_NESTING,       only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL
-USE MODD_PASPOL
-USE MODD_DRAGTREE
-USE MODD_METRICS_n
 USE MODD_DYN_n
+USE MODD_DYNZD
 USE MODD_DYNZD_n
+USE MODD_ELEC_n,            only: XCION_POS_FW, XCION_NEG_FW
 USE MODD_FIELD_n
-USE MODD_PAST_FIELD_n
-USE MODD_MEAN_FIELD_n
-USE MODD_MEAN_FIELD
-USE MODD_ADV_n
-USE MODD_LSFIELD_n
-USE MODD_GRID_n
-USE MODD_GRID, ONLY: XLONORI,XLATORI
-USE MODD_TIME_n
-USE MODD_REF_n
+#ifdef MNH_FOREFIRE
+USE MODD_FOREFIRE
+USE MODD_FOREFIRE_n
+#endif
+USE MODD_FRC
 USE MODD_FRC_n
-USE MODD_CURVCOR_n
-USE MODD_DIM_n
-USE MODD_BUDGET
-USE MODD_RADIATIONS_n
-USE MODD_SHADOWS_n
-USE MODD_PARAM_RAD_n,   ONLY: CAER, CLW
-USE MODD_VAR_ll,        ONLY : IP
-!
-USE MODD_STAND_ATM,     ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM
-USE MODD_CH_MNHC_n,     ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
-                              LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH
-USE MODD_CH_PH_n
-USE MODD_CH_AEROSOL, ONLY : LORILAM
-USE MODD_CH_AERO_n,  ONLY : XSOLORG,XMI
-USE MODD_CH_FLX_n,  ONLY : XCHFLX
+USE MODD_GET_n
+USE MODD_GRID_n
+USE MODD_GRID,              only: XLONORI,XLATORI
+USE MODD_IO,                only: CIO_DIR, TFILEDATA, TFILE_DUMMY
+USE MODD_IO_SURF_MNH,       only: IO_SURF_MNH_MODEL
+USE MODD_LATZ_EDFLX
+USE MODD_LBC_n,             only: CLBCX, CLBCY
+USE MODD_LSFIELD_n
+USE MODD_LUNIT_n
+USE MODD_MEAN_FIELD
+USE MODD_MEAN_FIELD_n
+USE MODD_METRICS_n
+USE MODD_MNH_SURFEX_n
+USE MODD_NESTING,           only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL
+USE MODD_NSV
+USE MODD_NSV
+USE MODD_NUDGING_n,         only: LNUDGING
+USE MODD_OUT_n
+USE MODD_PARAMETERS
 USE MODD_PARAM_KAFR_n
 USE MODD_PARAM_MFSHALL_n
-USE MODD_DEEP_CONVECTION_n
-USE MODD_OUT_n
-USE MODD_BIKHARDT_n
-USE MODD_NUDGING_n, ONLY : LNUDGING
-USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG, CSPEC_BU_DIAG
-USE MODD_CLOUD_MF_n
-USE MODD_NSV
-!
-USE MODD_ELEC_n, ONLY : XCION_POS_FW, XCION_NEG_FW
-
-USE MODD_LUNIT_n
-USE MODD_CONF_n
-USE MODD_GET_n
-USE MODD_TURB_n
-USE MODD_CTURB
-USE MODD_LBC_n,         only: CLBCX, CLBCY
+USE MODD_PARAM_n
+USE MODD_PARAM_RAD_n,       only: CAER, CAOP, CLW
+USE MODD_PASPOL
 USE MODD_PASPOL_n
-USE MODD_DRAG_n
-USE MODD_BLOWSNOW
-USE MODD_BLOWSNOW_n
-use modd_precision, only: LFIINT
-!
-!
-USE MODI_INI_BUDGET
-USE MODI_INI_SW_SETUP
-USE MODI_INI_LW_SETUP
-USE MODI_SET_GRID
-USE MODI_METRICS
-USE MODI_UPDATE_METRICS
-USE MODI_READ_FIELD
-USE MODI_SET_REF
-USE MODI_INI_DYNAMICS
-USE MODI_INI_TKE_EPS
-USE MODI_SET_DIRCOS
-USE MODI_INI_CPL
-USE MODI_INI_RADIATIONS
-USE MODI_INI_RADIATIONS_ECMWF
-USE MODI_INI_RADIATIONS_ECRAD
+USE MODD_PAST_FIELD_n
+use modd_precision,         only: LFIINT
+USE MODD_RADIATIONS_n
+USE MODD_REF
+USE MODD_REF_n
+USE MODD_RELFRC_n
+use MODD_SALT,              only: LSALT
+use MODD_SALT_OPT_LKT,      only: NMAX_RADIUS_LKT_SALT=>NMAX_RADIUS_LKT, NMAX_SIGMA_LKT_SALT=>NMAX_SIGMA_LKT,               &
+                                  NMAX_WVL_SW_SALT=>NMAX_WVL_SW,                                                            &
+                                  XEXT_COEFF_WVL_LKT_SALT=>XEXT_COEFF_WVL_LKT, XEXT_COEFF_550_LKT_SALT=>XEXT_COEFF_550_LKT, &
+                                  XPIZA_LKT_SALT=>XPIZA_LKT, XCGA_LKT_SALT=>XCGA_LKT
+USE MODD_SERIES,            only: LSERIES
+USE MODD_SHADOWS_n
+USE MODD_STAND_ATM,         only: XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM
+USE MODD_TIME
+USE MODD_TIME_n
+USE MODD_TURB_CLOUD,        only: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI
+USE MODD_TURB_n
+USE MODD_VAR_ll,            only: IP
+
+USE MODE_GATHER_ll
+USE MODE_INI_ONE_WAY_n
+USE MODE_IO
+USE MODE_IO_FIELD_READ,     only: IO_Field_read
+USE MODE_IO_FILE,           only: IO_File_open
+USE MODE_IO_MANAGE_STRUCT,  only: IO_File_add2list
+USE MODE_ll
+USE MODE_MODELN_HANDLER
+USE MODE_MPPDB
+USE MODE_MSG
+USE MODE_SPLITTINGZ_ll,     only: GET_DIM_EXTZ_ll
+USE MODE_TYPE_ZDIFFU
+
+USE MODI_CH_AER_MOD_INIT
+USE MODI_CH_INIT_BUDGET_n
 USE MODI_CH_INIT_FIELD_n
-USE MODI_INI_DEEP_CONVECTION
-USE MODI_INI_BIKHARDT_n
+USE MODI_CH_INIT_JVALUES
+USE MODI_CH_INIT_PRODLOSSTOT_n
 USE MODI_GET_SIZEX_LB
 USE MODI_GET_SIZEY_LB
-USE MODI_INI_SPAWN_LS_n
-USE MODI_INI_AIRCRAFT_BALLOON
-USE MODI_UPDATE_NSV
-USE MODI_INI_ELEC_n
-USE MODI_INI_MICRO_n
-USE MODI_INI_LG
-USE MODI_SURF_SOLAR_GEOM
-USE MODI_SUNPOS_n
-USE MODI_INI_SURF_RAD
-USE MODI_MNHGET_SURF_PARAM_n
-USE MODI_MNHREAD_ZS_DUMMY_n
-USE MODI_INIT_GROUND_PARAM_n
-USE MODI_INI_AIRCRAFT_BALLOON
-USE MODI_INI_SURFSTATION_n
-USE MODI_INI_POSPROFILER_n
-USE MODI_CH_INIT_JVALUES
-USE MODI_CH_AER_MOD_INIT
-!
-USE MODD_PARAM_n
-USE MODE_MODELN_HANDLER
-USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll
-!
 USE MODI_INI_AEROSET1
 USE MODI_INI_AEROSET2
 USE MODI_INI_AEROSET3
 USE MODI_INI_AEROSET4
 USE MODI_INI_AEROSET5
 USE MODI_INI_AEROSET6
+USE MODI_INI_AIRCRAFT_BALLOON
+USE MODI_INI_AIRCRAFT_BALLOON
+USE MODI_INI_BIKHARDT_n
+USE MODI_INI_BUDGET
+USE MODI_INI_CPL
+USE MODI_INI_DEEP_CONVECTION
 USE MODI_INI_DRAG
-!
-#ifdef MNH_FOREFIRE
-USE MODD_FOREFIRE
-USE MODD_FOREFIRE_n
-USE MODI_INIT_FOREFIRE_n
-#endif
+USE MODI_INI_DYNAMICS
+USE MODI_INI_ELEC_n
 USE MODI_INI_LES_N
-USE MODD_MNH_SURFEX_n
+USE MODI_INI_LG
+USE MODI_INI_LW_SETUP
+USE MODI_INI_MICRO_n
+USE MODI_INI_POSPROFILER_n
+USE MODI_INI_RADIATIONS
+USE MODI_INI_RADIATIONS_ECMWF
+USE MODI_INI_RADIATIONS_ECRAD
 USE MODI_INI_SERIES_N
-! Eddy fluxes  ! Ajout PP
-USE MODD_DEF_EDDY_FLUX_n   ! for VT and WT fluxes
-USE MODD_DEF_EDDYUV_FLUX_n ! FOR UV
-USE MODD_LATZ_EDFLX
-USE MODD_ADVFRC_n
-USE MODD_RELFRC_n
-USE MODD_2D_FRC
-USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL
-USE MODD_IO,       ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY
-!
-USE MODD_CH_PRODLOSSTOT_n
-USE MODI_CH_INIT_PRODLOSSTOT_n
-!
-USE MODD_CH_BUDGET_n
-USE MODI_CH_INIT_BUDGET_n
-USE MODD_CH_M9_n, ONLY:NNONZEROTERMS
-!
-USE MODE_MPPDB
+USE MODI_INI_SPAWN_LS_n
+USE MODI_INI_SURF_RAD
+USE MODI_INI_SURFSTATION_n
+USE MODI_INI_SW_SETUP
 USE MODI_INIT_AEROSOL_PROPERTIES
-#ifdef MNH_ECRAD
-USE YOERDI   , ONLY :RCCO2
+#ifdef MNH_FOREFIRE
+USE MODI_INIT_FOREFIRE_n
 #endif
+USE MODI_INIT_GROUND_PARAM_n
+USE MODI_INI_TKE_EPS
+USE MODI_METRICS
+USE MODI_MNHGET_SURF_PARAM_n
+USE MODI_MNHREAD_ZS_DUMMY_n
+USE MODI_READ_FIELD
+USE MODI_SET_DIRCOS
+USE MODI_SET_GRID
+USE MODI_SET_REF
+#ifdef CPLOASIS
+USE MODI_SFX_OASIS_READ_NAM
+#endif
+USE MODI_SUNPOS_n
+USE MODI_SURF_SOLAR_GEOM
+USE MODI_UPDATE_METRICS
+USE MODI_UPDATE_NSV
 !
 IMPLICIT NONE
 !
@@ -2249,6 +2251,20 @@ IF (CRAD   == 'ECMW') THEN
       ZTOWN(:,:) = 0.
       ZBARE(:,:) = 0.
     END IF
+!
+    IF ( CAOP=='EXPL' .AND. LDUST ) THEN
+      ALLOCATE( XEXT_COEFF_WVL_LKT_DUST( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST, NMAX_WVL_SW_DUST ) )
+      ALLOCATE( XEXT_COEFF_550_LKT_DUST( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST )                   )
+      ALLOCATE( XPIZA_LKT_DUST         ( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST, NMAX_WVL_SW_DUST ) )
+      ALLOCATE( XCGA_LKT_DUST          ( NMAX_RADIUS_LKT_DUST, NMAX_SIGMA_LKT_DUST, NMAX_WVL_SW_DUST ) )
+    END IF
+!
+    IF ( CAOP=='EXPL' .AND. LSALT ) THEN
+      ALLOCATE( XEXT_COEFF_WVL_LKT_SALT( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT, NMAX_WVL_SW_SALT ) )
+      ALLOCATE( XEXT_COEFF_550_LKT_SALT( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT )                   )
+      ALLOCATE( XPIZA_LKT_SALT         ( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT, NMAX_WVL_SW_SALT ) )
+      ALLOCATE( XCGA_LKT_SALT          ( NMAX_RADIUS_LKT_SALT, NMAX_SIGMA_LKT_SALT, NMAX_WVL_SW_SALT ) )
+    END IF
 !
     CALL INI_RADIATIONS_ECMWF (XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,       &
                                CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,   &
@@ -2399,12 +2415,17 @@ CALL INI_POSPROFILER_n(XTSTEP, TDTSEG, XSEGLEN, NRR, NSV,  &
 !*      26.     Prognostic aerosols          
 !              ------------------------
 !
-CALL INI_AEROSET1
-CALL INI_AEROSET2
-CALL INI_AEROSET3
-CALL INI_AEROSET4
-CALL INI_AEROSET5
-CALL INI_AEROSET6
+IF ( ( CRAD=='ECMW' .OR. CRAD=='ECRA' ) .AND. CAOP=='EXPL' .AND. LORILAM ) THEN
+  ALLOCATE(POLYTAU(6,10,8,6,13))
+  ALLOCATE(POLYSSA(6,10,8,6,13))
+  ALLOCATE(POLYG  (6,10,8,6,13))
+  CALL INI_AEROSET1
+  CALL INI_AEROSET2
+  CALL INI_AEROSET3
+  CALL INI_AEROSET4
+  CALL INI_AEROSET5
+  CALL INI_AEROSET6
+END IF
 #ifdef MNH_FOREFIRE
 ! 
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90
index 50cbf7ae92633f14d3579f961cc825188da6d148..582bcac1eedeaa9c95d03fcf22910247bccb5259 100644
--- a/src/MNH/ini_one_wayn.f90
+++ b/src/MNH/ini_one_wayn.f90
@@ -108,7 +108,9 @@ USE MODD_PARAM_n,        only: CCLOUD
 USE MODD_REF_n,          only: XRHODJ, XRHODREF
 !
 use mode_bikhardt
-use mode_ll,             only: LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, SET_LSFIELD_1WAY_ll
+use mode_ll,             only: GET_CHILD_DIM_ll, GET_DIM_EXT_ll, GO_TOMODEL_ll,         &
+                               LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, &
+                               SET_LSFIELD_1WAY_ll, UNSET_LSFIELD_1WAY_ll
 USE MODE_MODELN_HANDLER, only: GOTO_MODEL
 !
 USE MODI_SET_CHEMAQ_1WAY
diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90
index f02cd9c388ba086241e6cf773243827f0ea2b0fa..7f9e33802c3d1f812783407aba724084078871ac 100644
--- a/src/MNH/ini_prog_var.f90
+++ b/src/MNH/ini_prog_var.f90
@@ -127,6 +127,7 @@ USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list
 USE MODE_MODELN_HANDLER
 USE MODE_MSG
 USE MODE_POS
+use mode_tools_ll,         only: GET_INDICE_ll
 !
 USE MODI_CH_AER_INIT_SOA
 USE MODI_CH_INIT_SCHEME_n
diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90
index cf73ab385ef0dd904338bd818d644d3346b48fd2..b7188358438cab4e72bbd722068802212d4110ab 100644
--- a/src/MNH/ini_radiations_ecmwf.f90
+++ b/src/MNH/ini_radiations_ecmwf.f90
@@ -173,43 +173,45 @@ END MODULE MODI_INI_RADIATIONS_ECMWF
 !  P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables
 !  P. Wautelet 14/02/2019: remove HINIFILE dummy argument
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 07/06/2019: initialize dust and salt optical properties lookup tables only if necessary
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !ECMWF radiation scheme specific modules 
 !
-USE PARKIND1,  ONLY : JPRB
-USE YOEAERD  , ONLY : RCAEOPS  ,RCAEOPL  ,RCAEOPU  ,RCAEOPD  ,RCTRBGA  ,&
-     RCVOBGA  ,RCSTBGA  ,RCTRPT   ,RCAEADM  ,RCAEROS  ,&
-     RCAEADK
-USE OYOMCST , ONLY : RTT
-USE YOETHF , ONLY : RTICE
+USE OYOMCST,               ONLY: RTT
+USE PARKIND1,              ONLY: JPRB
+USE YOEAERD,               ONLY: RCAEOPS, RCAEOPL, RCAEOPU, RCAEOPD, RCTRBGA, &
+                                 RCVOBGA, RCSTBGA, RCTRPT,  RCAEADM, RCAEROS, &
+                                 RCAEADK
+USE YOETHF,                ONLY: RTICE
 !
 !MESO-NH modules
 !
-USE MODD_TYPE_DATE
-USE MODD_CONF
 USE MODD_CST
+USE MODD_CONF
+use MODD_DUST,             only: LDUST
 USE MODD_GRID
 USE MODD_PARAMETERS
+use MODD_PARAM_RAD_n,      only: CAOP, LFIX_DAT
+use MODD_SALT,             only: LSALT
 USE MODD_STAND_ATM
-USE MODD_PARAM_RAD_n,  ONLY: LFIX_DAT
+USE MODD_TYPE_DATE
 !
+USE MODE_CONSRAD
+USE MODE_DUSTOPT
 USE MODE_ll
+USE MODE_REPRO_SUM
+USE MODE_SALTOPT
 !
-USE MODI_INI_RADCONF
 USE MODI_INI_HOR_AERCLIM
-!
-USE MODE_DUSTOPT
-USE MODE_SALTOPT
-USE MODE_CONSRAD
-USE MODE_REPRO_SUM
+USE MODI_INI_RADCONF
 USE MODI_INI_STAND_ATM
-USE MODI_SUECOZC
+USE MODI_RADAER
 USE MODI_RADOZC
 USE MODI_SUAERV
-USE MODI_RADAER
+USE MODI_SUECOZC
 !
 IMPLICIT NONE
 !
@@ -698,29 +700,31 @@ END DO
 !        Read in look up tables of dust optical properties
 !No arguments, all look up tables are defined in module
 !modd_dust_opt_lkt
-CALL DUST_OPT_LKT_SET1()
-CALL DUST_OPT_LKT_SET2()
-CALL DUST_OPT_LKT_SET3()
-CALL DUST_OPT_LKT_SET4()
-CALL DUST_OPT_LKT_SET5()
-CALL DUST_OPT_LKT_SET6()
-CALL DUST_OPT_LKT_SET7()
-CALL DUST_OPT_LKT_SET8()
-CALL DUST_OPT_LKT_SET9()
-CALL DUST_OPT_LKT_SET10()
-
-CALL SALT_OPT_LKT_SET1()
-CALL SALT_OPT_LKT_SET2()
-CALL SALT_OPT_LKT_SET3()
-CALL SALT_OPT_LKT_SET4()
-CALL SALT_OPT_LKT_SET5()
-CALL SALT_OPT_LKT_SET6()
-CALL SALT_OPT_LKT_SET7()
-CALL SALT_OPT_LKT_SET8()
-CALL SALT_OPT_LKT_SET9()
-CALL SALT_OPT_LKT_SET10()
-
+IF ( LDUST .AND. CAOP=='EXPL' ) THEN
+  CALL DUST_OPT_LKT_SET1()
+  CALL DUST_OPT_LKT_SET2()
+  CALL DUST_OPT_LKT_SET3()
+  CALL DUST_OPT_LKT_SET4()
+  CALL DUST_OPT_LKT_SET5()
+  CALL DUST_OPT_LKT_SET6()
+  CALL DUST_OPT_LKT_SET7()
+  CALL DUST_OPT_LKT_SET8()
+  CALL DUST_OPT_LKT_SET9()
+  CALL DUST_OPT_LKT_SET10()
+END IF
 
+IF ( LSALT .AND. CAOP=='EXPL' ) THEN
+  CALL SALT_OPT_LKT_SET1()
+  CALL SALT_OPT_LKT_SET2()
+  CALL SALT_OPT_LKT_SET3()
+  CALL SALT_OPT_LKT_SET4()
+  CALL SALT_OPT_LKT_SET5()
+  CALL SALT_OPT_LKT_SET6()
+  CALL SALT_OPT_LKT_SET7()
+  CALL SALT_OPT_LKT_SET8()
+  CALL SALT_OPT_LKT_SET9()
+  CALL SALT_OPT_LKT_SET10()
+END IF
 !
 CALL INI_CONS_PROP_OP
 DEALLOCATE (ZPRES_HL) 
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 0abca384483c4f456109dc3b57d45dbd7a1a4dfd..1011b72700764cd6c65d9bc1ab2d183a2248b905 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -164,6 +164,7 @@ END MODULE MODI_INI_SEG_n
 !!                       07/2017   add GBLOWSNOW (V. Vionnet)
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list
 !  P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables
+!  P. Wautelet 19/06/2019: add Fieldlist_nmodel_resize subroutine + provide KMODEL to INI_FIELD_LIST when known
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -369,6 +370,8 @@ CALL READ_DESFM_n(KMI,TPINIFILE,YCONF,GFLAT,GUSERV,GUSERC,                  &
 IF (KMI==1) THEN !Do this only 1 time
   IF (CPROGRAM=='SPAWN ') THEN
     CALL INI_FIELD_LIST(2)
+  ELSE IF (CPROGRAM=='DIAG  ' .OR. CPROGRAM=='SPEC  ') THEN
+    CALL INI_FIELD_LIST(1)
   ELSE IF (CPROGRAM/='REAL  ' .AND. CPROGRAM/='IDEAL ' ) THEN
     CALL INI_FIELD_LIST()
   END IF
@@ -450,6 +453,9 @@ CALL READ_EXSEG_n(KMI,TZFILE_DES,YCONF,GFLAT,GUSERV,GUSERC,                 &
                 YTURB,YTOM,GRMC01,YRAD,YDCONV,YSCONV,YCLOUD,YELEC,YEQNSYS,  &
                 PTSTEP_ALL,CSTORAGE_TYPE,CINIFILEPGD_n                      )
 !
+if ( cprogram == 'MESONH' .and. kmi == 1 ) then !Do this only once
+  call Fieldlist_nmodel_resize(NMODEL)
+end if
 !
 IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='DIAG  ' .OR. CPROGRAM=='SPEC  '      &
      .OR. CPROGRAM=='REAL  ') THEN
diff --git a/src/MNH/ion_attach_elec.f90 b/src/MNH/ion_attach_elec.f90
index 90a6f300ec32d36d3ac48752d48f6deebcff4eed..bfecbd9a16f54dc039518c785c481438bda2e442 100644
--- a/src/MNH/ion_attach_elec.f90
+++ b/src/MNH/ion_attach_elec.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     ############################
       MODULE MODI_ION_ATTACH_ELEC
 !     ############################
@@ -92,7 +93,9 @@ USE MODD_RAIN_ICE_PARAM
 USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELEC
 USE MODD_BUDGET, ONLY : LBU_RSV
 USE MODD_REF,    ONLY : XTHVREFZ
-!
+
+use mode_tools_ll,        only: GET_INDICE_ll
+
 USE MODI_BUDGET
 USE MODI_MOMG
 !
diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90
index adf6eee1c10df71a80cf600d765cbdd291e023a9..806c6c9652e2dd3515a1657eb1444d864d687637 100644
--- a/src/MNH/khko_notadjust.f90
+++ b/src/MNH/khko_notadjust.f90
@@ -111,6 +111,7 @@ USE MODE_FIELD,           ONLY: TFIELDDATA,TYPEREAL
 USE MODE_IO_FIELD_WRITE,  only: IO_Field_write
 USE MODE_MSG
 use mode_tools,           only: Countjv
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 USE MODI_BUDGET
 USE MODI_PROGNOS
diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90
index 835da86854aa30a790446dcf70cc0143b516db98..976de3ca396061d429dbdb10531c45da38bfc020 100644
--- a/src/MNH/lidar.f90
+++ b/src/MNH/lidar.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2007-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !      #################
        MODULE MODI_LIDAR 
 !      #################
@@ -112,7 +113,9 @@ USE MODD_PARAM_LIMA_COLD, ONLY : UCCS=>XCCS, UCXS=>XCXS, ULBEXS=>XLBEXS, &
                                                          ULBS=>XLBS
 USE MODD_PARAM_LIMA_MIXED,ONLY : UCCG=>XCCG, UCXG=>XCXG, ULBEXG=>XLBEXG, &
                                                          ULBG=>XLBG
-!
+
+use mode_tools_ll,        only: GET_INDICE_ll
+
 USE MODI_BHMIE_WATER    ! Gamma or mono dispersed size distributions
 USE MODI_BHMIE_AEROSOLS ! Lognormal or mono dispersed size distributions
 !
diff --git a/src/MNH/mnhget_surf_paramn.f90 b/src/MNH/mnhget_surf_paramn.f90
index 238c9d4ae495de607bf0ea77ffb853acefb7952b..da6c4608943b601d01edfbb2a234079a68c551cb 100644
--- a/src/MNH/mnhget_surf_paramn.f90
+++ b/src/MNH/mnhget_surf_paramn.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2003-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 surfex 2006/10/24 10:43:18
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_MNHGET_SURF_PARAM_n
 !     #######################
@@ -88,6 +83,8 @@ USE MODD_PARAMETERS,     ONLY : XUNDEF
 !
 USE MODD_IO_SURF_MNH,    ONLY : NHALO
 !
+use mode_tools_ll,        only: GET_INDICE_ll
+
 USE MODI_GET_COVER_N
 USE MODI_GET_FRAC_N
 USE MODI_GET_JCOVER_N
diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90
index 3a89446e628078774236e93bcb5a944c48085ba6..2d0888f4515e3e1173ad26ad642f534893bc16d3 100644
--- a/src/MNH/mnhopen_aux_io_surf.f90
+++ b/src/MNH/mnhopen_aux_io_surf.f90
@@ -75,6 +75,7 @@ USE MODE_IO_FIELD_READ,    only: IO_Field_read
 USE MODE_IO_FILE,          ONLY: IO_File_open
 USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname
 USE MODE_MSG
+use MODE_TOOLS_ll,        only: GET_DIM_EXT_ll, GET_INDICE_ll
 !
 USE MODI_GET_1D_MASK
 USE MODI_MNH_SURF_GRID_IO_INIT
diff --git a/src/MNH/mnhopen_namelist.f90 b/src/MNH/mnhopen_namelist.f90
index d594b6e5ff0e60fda174f2a27a028318b8f633eb..81716add4fcd795d50b15a88814ae749dafc66a7 100644
--- a/src/MNH/mnhopen_namelist.f90
+++ b/src/MNH/mnhopen_namelist.f90
@@ -60,6 +60,7 @@ USE MODD_IO_NAM,           ONLY: TNAM
 USE MODE_IO_FILE,          ONLY: IO_File_open
 USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list
 USE MODE_MSG
+use mode_nest_ll,          only: GET_MODEL_NUMBER_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/modd_aeroset.f90 b/src/MNH/modd_aeroset.f90
index 9fe34721d690c9bf7dad011f45fde7f2a44d7346..311312bd47ff1efff93c1a33f04bd441e0f702f3 100644
--- a/src/MNH/modd_aeroset.f90
+++ b/src/MNH/modd_aeroset.f90
@@ -1,13 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!     ########################
        MODULE MODD_AEROSET
 !!     ########################
@@ -39,14 +34,15 @@
 !!     MODIFICATIONS
 !!     -------------
 !!
+!  P. Wautelet 07/06/2019: arrays are now ALLOCATABLE to save memory when not used
 !!--------------------------------------------------------------------
 !!     DECLARATIONS
 !!     ------------
 
   IMPLICIT NONE
 
-  REAL,SAVE,DIMENSION(6,10,8,6,13) ::POLYTAU
-  REAL,SAVE,DIMENSION(6,10,8,6,13) ::POLYSSA
-  REAL,SAVE,DIMENSION(6,10,8,6,13) ::POLYG
+  REAL,SAVE,DIMENSION(:,:,:,:,:),ALLOCATABLE ::POLYTAU
+  REAL,SAVE,DIMENSION(:,:,:,:,:),ALLOCATABLE ::POLYSSA
+  REAL,SAVE,DIMENSION(:,:,:,:,:),ALLOCATABLE ::POLYG
 
 END MODULE MODD_AEROSET
diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90
index 15a8191b3834948e5e3f338be1ea96acdd170ea8..14387e9f096dfadc2fa95b186c91d1bf6e299cfe 100644
--- a/src/MNH/modd_budget.f90
+++ b/src/MNH/modd_budget.f90
@@ -555,7 +555,6 @@ INTEGER, SAVE :: NDIFSV     ! numerical diffusion
 INTEGER, SAVE :: NRELSV     ! relaxation
 INTEGER, SAVE :: NDCONVSV   !  Deep CONVection
 INTEGER, SAVE :: NMAFLSV    ! mass flux            
-INTEGER, SAVE :: NDEPOSV    ! deposition on the ground
 INTEGER, SAVE :: NDEPOTRSV  ! deposition on tree    
 INTEGER, SAVE :: NHTURBSV   ! horizontal turbulence
 INTEGER, SAVE :: NVTURBSV   ! vertical turbulence
diff --git a/src/MNH/modd_ch_aerosol.f90 b/src/MNH/modd_ch_aerosol.f90
index e0019a581fbb165a4ee631c4bca6c7918c18cd96..4eb7fed5cc8a2c7f1fbe9a6820d1206842dfa513 100644
--- a/src/MNH/modd_ch_aerosol.f90
+++ b/src/MNH/modd_ch_aerosol.f90
@@ -1,13 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_ch_aerosol.f90,v $ $Revision: 1.1.2.2.2.1.2.1.2.1.2.2 $
-! MASDEV4_7 modd 2007/03/02 13:59:38
-!-----------------------------------------------------------------
 !!     ######################
        MODULE MODD_CH_AEROSOL
 !!     ######################
@@ -35,7 +30,8 @@
 !!     -------------
 !!     (30-01-01) P.Tulet (LA) * modifications for secondary biogenics aerosols
 !!     (25-08-16) M.Leriche (LA) * NM6_AER is now in SAVE and assign in ini_nsv
-!!
+!  P. Wautelet: 07/06/2019: allocate weights only when needed!!
+!
 !!--------------------------------------------------------------------
 !!     DECLARATIONS
 !!     ------------
@@ -231,12 +227,12 @@ REAL, SAVE, DIMENSION(:,:,:,:,:,:), ALLOCATABLE :: zf
 ! Declaration of  the neuronal coefficients
 
 !     .. weights 
-REAL, SAVE, DIMENSION(100,100) :: W1IJA,W1JKA,W2IJA,W2JKA
-REAL, SAVE, DIMENSION(100,100) :: W1IJB,W1JKB,W2IJB,W2JKB
-REAL, SAVE, DIMENSION(100,100) :: W1IJC,W1JKC,W2IJC,W2JKC
-REAL, SAVE, DIMENSION(2,100) :: X1MINA,X1MAXA,X1MODA,X2MINA,X2MAXA,X2MODA
-REAL, SAVE, DIMENSION(2,100) :: X1MINB,X1MAXB,X1MODB,X2MINB,X2MAXB,X2MODB
-REAL, SAVE, DIMENSION(2,100) :: X1MINC,X1MAXC,X1MODC,X2MINC,X2MAXC,X2MODC
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: W1IJA,W1JKA,W2IJA,W2JKA
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: W1IJB,W1JKB,W2IJB,W2JKB
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: W1IJC,W1JKC,W2IJC,W2JKC
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: X1MINA,X1MAXA,X1MODA,X2MINA,X2MAXA,X2MODA
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: X1MINB,X1MAXB,X1MODB,X2MINB,X2MAXB,X2MODB
+REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: X1MINC,X1MAXC,X1MODC,X2MINC,X2MAXC,X2MODC
 
 !     .. counters and indices
 INTEGER, SAVE :: I1IA,J1JA,K1KA,I2IA,J2JA,K2KA
diff --git a/src/MNH/modd_dust_opt_lkt.f90 b/src/MNH/modd_dust_opt_lkt.f90
index a8b88a9e194dea2e61735d94ba5b31bbc347c601..449fc2811f11b70aedc690bf90a6aba49c91a948 100644
--- a/src/MNH/modd_dust_opt_lkt.f90
+++ b/src/MNH/modd_dust_opt_lkt.f90
@@ -1,13 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!     ########################
        MODULE MODD_DUST_OPT_LKT
 !!     ########################
@@ -42,6 +37,7 @@
 !!     MODIFICATIONS
 !!     -------------
 !!
+!  P. Wautelet 07/06/2019: arrays are now ALLOCATABLE to save memory when not used
 !!--------------------------------------------------------------------
 !!     DECLARATIONS
 !!     ------------
@@ -54,10 +50,10 @@
   INTEGER, PARAMETER    :: NMAX_WVL_SW=6       !Max number of wavelengths in lkt
 
   !Declaration of the look up tables 
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XEXT_COEFF_WVL_LKT
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT)             :: XEXT_COEFF_550_LKT
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XPIZA_LKT
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XCGA_LKT
+  REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XEXT_COEFF_WVL_LKT
+  REAL, SAVE, DIMENSION(:,:),   ALLOCATABLE :: XEXT_COEFF_550_LKT
+  REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XPIZA_LKT
+  REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XCGA_LKT
 
   !Declaration of the max and min values taken into account in the tables
   REAL, PARAMETER      :: XRADIUS_LKT_MIN = 0.01  ![um] smallest number median radius taken into account
diff --git a/src/MNH/modd_salt_opt_lkt.f90 b/src/MNH/modd_salt_opt_lkt.f90
index d6b12b0b5b57b10796bc15b145f56e4e0c5825cb..702bc081bf1ba271c3e77752a40a7bb9e8189c89 100644
--- a/src/MNH/modd_salt_opt_lkt.f90
+++ b/src/MNH/modd_salt_opt_lkt.f90
@@ -1,13 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!     ########################
        MODULE MODD_SALT_OPT_LKT
 !!     ########################
@@ -42,6 +37,7 @@
 !!     MODIFICATIONS
 !!     -------------
 !!
+!  P. Wautelet 07/06/2019: arrays are now ALLOCATABLE to save memory when not used
 !!--------------------------------------------------------------------
 !!     DECLARATIONS
 !!     ------------
@@ -54,10 +50,10 @@
   INTEGER, PARAMETER    :: NMAX_WVL_SW=6       !Max number of wavelengths in lkt
 
   !Declaration of the look up tables 
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XEXT_COEFF_WVL_LKT
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT)             :: XEXT_COEFF_550_LKT
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XPIZA_LKT
-  REAL, DIMENSION(NMAX_RADIUS_LKT,NMAX_SIGMA_LKT,NMAX_WVL_SW) :: XCGA_LKT
+  REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XEXT_COEFF_WVL_LKT
+  REAL, SAVE, DIMENSION(:,:),   ALLOCATABLE :: XEXT_COEFF_550_LKT
+  REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XPIZA_LKT
+  REAL, SAVE, DIMENSION(:,:,:), ALLOCATABLE :: XCGA_LKT
 
   !Declaration of the max and min values taken into account in the tables
   REAL, PARAMETER      :: XRADIUS_LKT_MIN = 0.01  ![um] smallest number median radius taken into account
diff --git a/src/MNH/mode_dustopt.f90 b/src/MNH/mode_dustopt.f90
index 6a85251e3827ae1166526bd4049c775ac2964204..c9c78d1444921ee91149af7636e4d7d52fc38b4b 100644
--- a/src/MNH/mode_dustopt.f90
+++ b/src/MNH/mode_dustopt.f90
@@ -1,13 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/29 12:06:27
-!-----------------------------------------------------------------
 !        ###################
          MODULE MODE_DUSTOPT
 !        ###################
@@ -325,8 +320,13 @@ CONTAINS
 
     USE MODD_DUST_OPT_LKT
 
+    use mode_msg
+
     IMPLICIT NONE
-    
+
+    if ( .not.allocated( XEXT_COEFF_WVL_LKT ) ) &
+      call Print_msg( NVERB_FATAL, 'GEN', 'DUST_OPT_LKT_SET1', 'XEXT_COEFF_WVL_LKT not allocated')
+
     !Here are the output values from the mie program:
 XEXT_COEFF_WVL_LKT(1,1,1:6)=(/ 92.520000,37.760000,21.553000,5.277700,2.711100,1.337700 /)
 XPIZA_LKT(1,1,1:6)=(/ 0.431792,0.157096,0.049108,0.030213,0.005366,0.000659 /)
diff --git a/src/MNH/mode_elec_ll.f90 b/src/MNH/mode_elec_ll.f90
index 084db39dd5ecec2f1b48f1e743e95d9ef328d23c..32ba759ef5e0b8f1cffd1f5f0ac2f62cd4dc5bd4 100644
--- a/src/MNH/mode_elec_ll.f90
+++ b/src/MNH/mode_elec_ll.f90
@@ -28,7 +28,9 @@
 USE MODD_MPIF
 use modd_precision, only: MNHINT_MPI, MNHREAL_MPI
 USE MODD_VAR_ll,    ONLY: NMNH_COMM_WORLD
-!
+
+use MODE_TOOLS_ll,  only: GET_OR_ll
+
 IMPLICIT NONE
 !
 INTEGER, PARAMETER :: IFIRST_PROC = 0   ! 0/1 to increase numerotation of proc number 
diff --git a/src/MNH/mode_extrapol.f90 b/src/MNH/mode_extrapol.f90
index fe3cc9b664bbeca42953bca05f35b5801b61b8af..41d5268fbcbe5acef1f00965eac0332c2d6f8e1b 100644
--- a/src/MNH/mode_extrapol.f90
+++ b/src/MNH/mode_extrapol.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2011-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.
@@ -35,7 +35,7 @@ CONTAINS
 
   SUBROUTINE EXTRAPOL3D(HBORD,PTAB)
     USE MODD_LBC_n
-    USE MODE_ll
+    USE MODE_TOOLS_ll
     !
     IMPLICIT NONE
     !
@@ -93,7 +93,7 @@ CONTAINS
 
   SUBROUTINE EXTRAPOL2D(HBORD,PTAB)
     USE MODD_LBC_n
-    USE MODE_ll
+    USE MODE_TOOLS_ll
     !
     IMPLICIT NONE
     !
@@ -170,10 +170,12 @@ CONTAINS
 !!      J.Escobar 2/05/2016 : add STOP in case of problem with decomposition
 !-------------------------------------------------------------------------------
     USE MODD_LBC_n
+    use mode_argslist_ll,    only: ADD2DFIELD_ll, CLEANLIST_ll
     USE MODE_MODELN_HANDLER
-    USE MODE_ll
-    USE MODD_PARAMETERS, ONLY : JPHEXT
-    USE MODE_EXCHANGE_ll, ONLY : UPDATE_HALO_EXTENDED_ll
+    use mode_nest_ll,        only: GET_CHILD_DIM_ll, GO_TOMODEL_ll
+    USE MODE_TOOLS_ll
+    USE MODD_PARAMETERS,     ONLY: JPHEXT
+    USE MODE_EXCHANGE_ll,    ONLY: UPDATE_HALO_EXTENDED_ll
     !
     IMPLICIT NONE
     !
@@ -311,10 +313,12 @@ CONTAINS
 !!      J.Escobar 2/05/2016 : add STOP in case of problem with decomposition
 !-------------------------------------------------------------------------------
     USE MODD_LBC_n
+    use mode_argslist_ll,    only: ADD2DFIELD_ll, CLEANLIST_ll
     USE MODE_MODELN_HANDLER
-    USE MODE_ll
-    USE MODD_PARAMETERS, ONLY : JPHEXT
-    USE MODE_EXCHANGE_ll, ONLY : UPDATE_HALO_EXTENDED_ll
+    use mode_nest_ll,        only: GET_CHILD_DIM_ll, GO_TOMODEL_ll
+    USE MODE_TOOLS_ll
+    USE MODD_PARAMETERS,     ONLY: JPHEXT
+    USE MODE_EXCHANGE_ll,    ONLY: UPDATE_HALO_EXTENDED_ll
     !
     IMPLICIT NONE
     !
diff --git a/src/MNH/mode_mnh_zwork.f90 b/src/MNH/mode_mnh_zwork.f90
index 255953083f5fa5b2791354146a2a2df7a98e17ad..b21e9cce1a98f62b199e08077d6310cb8158a5a4 100644
--- a/src/MNH/mode_mnh_zwork.f90
+++ b/src/MNH/mode_mnh_zwork.f90
@@ -41,7 +41,7 @@ CONTAINS
 
   SUBROUTINE MNH_ALLOC_ZWORK(IMODEL)
 
-    USE MODE_TOOLS_ll, ONLY   : LWEST_ll,LEAST_ll, LSOUTH_ll, LNORTH_ll
+    USE MODE_TOOLS_ll, ONLY   : GET_DIM_EXT_ll, GET_INDICE_ll, LWEST_ll,LEAST_ll, LSOUTH_ll, LNORTH_ll
 
     USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF
     USE MODD_DIM_n,      ONLY : NKMAX
diff --git a/src/MNH/mode_saltopt.f90 b/src/MNH/mode_saltopt.f90
index d7fd28f3f1912d0a897de0aa93aebc050b6a761a..5cda0f3bbb19ac227b50ffd7b4bd9e814a50e2a6 100644
--- a/src/MNH/mode_saltopt.f90
+++ b/src/MNH/mode_saltopt.f90
@@ -1,11 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 !        ###################
          MODULE MODE_SALTOPT
 !        ###################
@@ -336,8 +333,13 @@ CONTAINS
 
     USE MODD_SALT_OPT_LKT
 
+    use mode_msg
+
     IMPLICIT NONE
-    
+
+    if ( .not.allocated( XEXT_COEFF_WVL_LKT ) ) &
+      call Print_msg( NVERB_FATAL, 'GEN', 'SALT_OPT_LKT_SET1', 'XEXT_COEFF_WVL_LKT not allocated')
+
     !Here are the output values from the mie program:
 XEXT_COEFF_WVL_LKT(1,1,1:6)=(/ 44.560000,11.638000,0.691110,0.260970,0.532810,132.670000 /)
 XPIZA_LKT(1,1,1:6)=(/ 0.236252,0.196169,0.900,0.900,0.900,0.000010 /)
diff --git a/src/MNH/mode_type_zdiffu.f90 b/src/MNH/mode_type_zdiffu.f90
index e6a4a6076278f31aab1bee492787dad0b45fc212..7083cb2629079100fcde90077cb4324b1c5cdb17 100644
--- a/src/MNH/mode_type_zdiffu.f90
+++ b/src/MNH/mode_type_zdiffu.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 MODULE MODE_TYPE_ZDIFFU
@@ -17,6 +17,8 @@ SUBROUTINE INIT_TYPE_ZDIFFU_HALO2(PTYPE_ZDIFFU_HALO2,KSIZE_ZERO)
 !              ------------
 USE MODD_PARAMETERS , ONLY : JPVEXT
 USE MODD_DIM_ll     , ONLY : NKMAX_TMP_ll
+
+use mode_tools_ll,   only: GET_DIM_EXT_ll, GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90
index 7fb6f12e714832d959136737f8fa584518c27537..8d83765590a09f58a926aa1ed985a733951cc0ce 100644
--- a/src/MNH/modn_budget.f90
+++ b/src/MNH/modn_budget.f90
@@ -313,7 +313,7 @@ NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NADVSV, NFRCSV, &
                      NDEPSQS, NAGGSQS, NAUTSQS, NRIMQS, NACCQS, NCMELQS, NWETGQS,          &
                      NDRYGQS, NNIISQS, NSEDIQS, NNEUTQS,                                   &
                      NDEPGQG, NRIMQG, NACCQG, NCMELQG, NCFRZQG, NWETGQG, NDRYGQG,          &
-                     NGMLTQG, NINDQG, NSEDIQG, NNEUTQG,NDEPOSV,NDEPOTRSV
+                     NGMLTQG, NINDQG, NSEDIQG, NNEUTQG, NDEPOTRSV
 ! must add budget for hail
 !
 END MODULE MODN_BUDGET
diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90
index f7bcfbd74eb3bf7ac1593cfba69ad864ede34ddf..8f922a418ec4e95d2703056d878e542c90953261 100644
--- a/src/MNH/one_wayn.f90
+++ b/src/MNH/one_wayn.f90
@@ -141,9 +141,12 @@ USE MODD_PARAM_n,        only: CCLOUD
 USE MODD_REF_n,          only: XRHODJ, XRHODREF, XRVREF, XTHVREF
 !
 use mode_bikhardt
-use mode_ll,             only: LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, SET_LSFIELD_1WAY_ll
+use mode_ll,             only: GET_CHILD_DIM_ll, GO_TOMODEL_ll,                         &
+                               LS_FORCING_ll, LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll, &
+                               SET_LSFIELD_1WAY_ll, UNSET_LSFIELD_1WAY_ll
 USE MODE_MODELN_HANDLER, only: GOTO_MODEL
 use mode_sum_ll,         only: SUM3D_ll
+use mode_tools_ll,       only: GET_DIM_EXT_ll
 !
 USE MODI_SET_CHEMAQ_1WAY
 USE MODI_SET_CONC_ICE_C1R3
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index 19602cccbb662c82974aeecd8a3b779c5d632925..14b2b23d9656a02d21026556004155021b827b07 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -699,7 +699,7 @@ CALL READ_PRE_IDEA_NAM_n(NLUPRE,NLUOUT)
 CALL POSNAM(NLUPRE,'NAM_AERO_PRE',GFOUND,NLUOUT)
 IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_AERO_PRE)
 !
-CALL INI_FIELD_LIST()
+CALL INI_FIELD_LIST(1)
 !
 CALL INI_FIELD_SCALARS()
 !
diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90
index 5b5a884f455416e1d7fd51e9ffc8677a7fc92f67..5f525bf935f0b31b2f263e957e3e42af5d598df8 100644
--- a/src/MNH/prep_nest_pgd.f90
+++ b/src/MNH/prep_nest_pgd.f90
@@ -197,7 +197,7 @@ CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.)
 !*       3.    READING OF THE GRIDS
 !              --------------------
 !
-CALL INI_FIELD_LIST()
+CALL INI_FIELD_LIST(NMODEL)
 !
 CALL SET_DAD0_ll()
 DO JPGD=1,NMODEL
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index 86b375631f93207762fa91052e5412c6c11d7679..4303b30728ee131ad0d8d1f6cd5a0eb4aafacd69 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -99,6 +99,7 @@ USE MODE_IO,               only: IO_Config_set, IO_Init
 USE MODE_IO_FIELD_WRITE,   only: IO_Field_write, IO_Header_write
 USE MODE_IO_FILE,          only: IO_File_close, IO_File_open
 USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print
+use mode_ll
 USE MODE_MODELN_HANDLER
 USE MODE_MSG
 USE MODE_POS
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index a499c20078af7eb38472eff996410dec58f15e04..564611d776d47cec051614a4d4a8bd7d3a1535b7 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -614,7 +614,7 @@ CALL INIT_NMLVAR
 CALL POSNAM(IPRE_REAL1,'NAM_REAL_CONF',GFOUND,ILUOUT0)
 IF (GFOUND) READ(IPRE_REAL1,NAM_REAL_CONF)
 !
-CALL INI_FIELD_LIST()
+CALL INI_FIELD_LIST(1)
 !
 CALL INI_FIELD_SCALARS()
 !
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index 97cc43d0a07feef1abaf31c176e29ecc8aa92a14..b4c3096c367839114be4329438e174c08f608d4c 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -239,6 +239,7 @@ USE MODD_VAR_ll,      ONLY: NMNH_COMM_WORLD , NPROC
 USE MODE_ll
 USE MODE_MPPDB
 USE MODE_MSG
+USE MODE_SUM2_ll,     ONLY: GMAXLOC_ll
 !
 USE MODI_BUDGET
 USE MODI_CONJGRAD
@@ -252,7 +253,6 @@ USE MODI_MASS_LEAK
 USE MODI_P_ABS
 USE MODI_RICHARDSON
 USE MODI_SHUMAN
-USE MODI_SUM_ll , ONLY : GMAXLOC_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/radar_simulator.f90 b/src/MNH/radar_simulator.f90
index 1d09ecc69198c2b91558b22c01081ffd166a8b43..b855afc924ed0d8a391fc7d21a9d572158c6fd7f 100644
--- a/src/MNH/radar_simulator.f90
+++ b/src/MNH/radar_simulator.f90
@@ -146,6 +146,8 @@ USE MODD_RADAR            , ONLY: XLAT_RAD,XLON_RAD,XALT_RAD,XDT_RAD,XELEV,&
 !
 USE MODE_INTERPOL_BEAM
 USE MODE_FGAU             , ONLY: GAULEG,GAUHER
+use mode_tools_ll,        only: GET_INDICE_ll
+
 USE MODI_RADAR_SCATTERING
 ! convective/stratiform
 USE MODI_SET_MSK 
diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90
index 531637f10cc37a1b65b4a345a40860d85a256822..8d47d4851fe307bbfa631489ad4fdbf10a128a7c 100644
--- a/src/MNH/radiations.f90
+++ b/src/MNH/radiations.f90
@@ -163,12 +163,13 @@ USE MODE_REPRO_SUM,      ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll
 USE MODE_PACK_PGI
 #endif
 USE MODE_SALTOPT
+USE MODE_SUM_ll,          ONLY: MIN_ll
+USE MODE_SUM2_ll,         ONLY: GMINLOC_ll
 USE MODE_THERMO
 !
 USE MODI_AEROOPT_GET
 USE MODI_ECMWF_RADIATION_VERS2
 USE MODI_ECRAD_INTERFACE
-USE MODI_SUM_ll,      ONLY: GMINLOC_ll, MIN_ll
 USE MODD_VAR_ll,      ONLY: IP
 !  
 IMPLICIT NONE
diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90
index dcd7c3206e7c9cb1b84ec22cb30ae4caa3bb449b..3be17cc22856c7714e0a7b66b8325961020f04cf 100644
--- a/src/MNH/rain_ice.f90
+++ b/src/MNH/rain_ice.f90
@@ -272,6 +272,7 @@ use mode_tools,                        only: Countjv
 #else
 use mode_tools,                        only: Countjv_device
 #endif
+use mode_tools_ll,                     only: GET_INDICE_ll
 
 #ifdef MNH_BITREP
 USE MODI_BITREP
diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90
index 047a7618837fe20f15acf3aa2ad4595b807d3bff..6ff7014b90c5d416e45fa2a60cda6fe5b8aaf16e 100644
--- a/src/MNH/read_all_data_grib_case.f90
+++ b/src/MNH/read_all_data_grib_case.f90
@@ -142,6 +142,7 @@ USE MODE_MSG
 USE MODE_TIME
 USE MODE_THERMO
 USE MODE_TOOLS, ONLY: UPCASE
+use mode_tools_ll,   only: GET_DIM_EXT_ll
 !
 USE MODI_READ_HGRID_n
 USE MODI_READ_VER_GRID
diff --git a/src/MNH/read_asc_latpress.f90 b/src/MNH/read_asc_latpress.f90
index 61745f0d15b225622ff7c647f17b122796e25dfe..af67b339779c1df773e1e56e8deaa0120b1790eb 100644
--- a/src/MNH/read_asc_latpress.f90
+++ b/src/MNH/read_asc_latpress.f90
@@ -1,8 +1,8 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-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 MODI_READ_ASC_LATPRESS
 !     ########################
@@ -52,8 +52,7 @@ END MODULE MODI_READ_ASC_LATPRESS
 !            -----------
 !
 !
-
-
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90
index 778b9e29c97c92e0e4d788fff847280ba6944660..b5e9923162403a4345ae638acf393c5419d115fa 100644
--- a/src/MNH/read_chem_data_netcdf_case.f90
+++ b/src/MNH/read_chem_data_netcdf_case.f90
@@ -117,6 +117,7 @@ USE MODE_MPPDB
 USE MODE_THERMO
 USE MODE_TIME
 USE MODE_TOOLS,      ONLY: UPCASE
+use mode_tools_ll,   only: GET_DIM_EXT_ll
 !
 USE MODI_CH_AER_INIT_SOA
 USE MODI_CH_INIT_SCHEME_n
diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90
index 26b9881e4dd96a27160ffd4aec883c38abc99446..ec9c7cd44834781c72dda2a054b4dbc66f2868d4 100644
--- a/src/MNH/read_hgrid.f90
+++ b/src/MNH/read_hgrid.f90
@@ -93,6 +93,8 @@ USE MODE_IO_FIELD_READ, only: IO_Field_read
 USE MODE_GRIDPROJ
 USE MODE_MSG
 USE MODE_MODELN_HANDLER
+use MODE_NEST_ll,        only: GO_TOMODEL_ll
+use MODE_TOOLS_ll,       only: GET_DIM_PHYS_ll
 !
 USE MODI_READ_HGRID_n
 !
diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90
index 0989fed5359ea361bf8667a872ea934124fa094d..04cf40b18a5e061db9bf11b1b3159d2dbe311ce9 100644
--- a/src/MNH/read_hgridn.f90
+++ b/src/MNH/read_hgridn.f90
@@ -92,6 +92,7 @@ USE MODE_IO,            only: IO_Pack_set
 USE MODE_IO_FIELD_READ, only: IO_Field_read
 USE MODE_MSG
 USE MODE_MODELN_HANDLER
+use MODE_TOOLS_ll,       only: GET_DIM_EXT_ll, GET_DIM_PHYS_ll, GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90
index b931fe38b25df299015f2528102b153cdf644489..954d6fb9607ae72667f10f5bfc57e2adaaf2fa28 100644
--- a/src/MNH/set_advfrc.f90
+++ b/src/MNH/set_advfrc.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-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.
@@ -93,6 +93,7 @@ USE MODD_REF
 USE MODE_DATETIME
 USE MODE_MSG
 USE MODE_THERMO
+use mode_tools_ll,        only: GET_INDICE_ll
 !
 USE MODI_HEIGHT_PRESS
 USE MODI_PRESS_HEIGHT
diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90
index ef30e87c56598b307c37c5061a9eff04d0071f3e..1f88a63cfff307d1dd499afd5f73d1d7d1f51d9e 100644
--- a/src/MNH/set_perturb.f90
+++ b/src/MNH/set_perturb.f90
@@ -115,15 +115,16 @@ USE MODD_LUNIT_n, ONLY: TLUOUT
 USE MODD_LSFIELD_n
 USE MODD_PARAMETERS
 USE MODD_REF_n
+USE MODD_VAR_ll , ONLY : NMNH_COMM_WORLD
 !
 USE MODE_GATHER_ll
 USE MODE_ll
 USE MODE_MPPDB
 USE MODE_POS
 USE MODE_REPRO_SUM
+use MODE_SCATTER_ll, only: SCATTER_XYFIELD
 !
 USE MODI_GET_HALO
-USE MODI_SCATTER
 !
 IMPLICIT NONE
 !
@@ -354,8 +355,8 @@ SELECT CASE(CPERT_KIND)
 !*       3.3   Add to the U and V fields :
 !
     ALLOCATE(ZPU(IIU,IJU),ZPV(IIU,IJU))
-    CALL SCATTER(ZPU_ll,ZPU)
-    CALL SCATTER(ZPV_ll,ZPV)
+    CALL SCATTER_XYFIELD(ZPU_ll,ZPU,1,NMNH_COMM_WORLD)
+    CALL SCATTER_XYFIELD(ZPV_ll,ZPV,1,NMNH_COMM_WORLD)
     DEALLOCATE(ZPU_ll,ZPV_ll)
     DO JI = 1,IIU
       DO JJ = 1,IJU
diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90
index 7c7fc25b1aeb15115d282bba56bd8f513ab701ab..6de7d389ec9698629325142cc2dbecdbd2532563 100644
--- a/src/MNH/set_relfrc.f90
+++ b/src/MNH/set_relfrc.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-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.
@@ -80,6 +80,7 @@ END MODULE MODI_SET_RELFRC
 !
 USE MODD_CONF
 USE MODD_CST 
+USE MODD_DIM_n
 USE MODD_FRC
 USE MODD_GRID
 USE MODD_GRID_n
@@ -92,8 +93,8 @@ USE MODD_RELFRC_n
 USE MODE_DATETIME
 USE MODE_MSG
 USE MODE_THERMO 
+use mode_tools_ll,        only: GET_INDICE_ll
 !
-USE MODD_DIM_n 
 USE MODI_HEIGHT_PRESS
 USE MODI_PRESS_HEIGHT
 USE MODI_READ_ASC_LATPRESS
diff --git a/src/MNH/spectre.f90 b/src/MNH/spectre.f90
index 22878e5a926e5263f3e868a0ef20357e13ea4179..545c60629410ef29c5a16bfd5289f96038c41e28 100644
--- a/src/MNH/spectre.f90
+++ b/src/MNH/spectre.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2011-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.
@@ -40,6 +40,7 @@ USE MODE_POS
 USE MODE_IO,               only: IO_Config_set, IO_Init
 USE MODE_IO_FILE,          only: IO_File_close, IO_File_open
 USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print
+use mode_init_ll,          only: END_PARA_ll
 USE MODE_MODELN_HANDLER
 !USE MODD_TYPE_DATE
 USE MODI_VERSION
diff --git a/src/MNH/spectre_arome.f90 b/src/MNH/spectre_arome.f90
index 81a83ebc2089429df9c56f7ecaa107e050d6d94e..c519472808d3a06c58144cd4596c1c28f8a0e0a1 100644
--- a/src/MNH/spectre_arome.f90
+++ b/src/MNH/spectre_arome.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2011-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.
@@ -30,6 +30,7 @@ SUBROUTINE SPECTRE_AROME(HINIFILE,HOUTFILE,PDELTAX,PDELTAY,KI,KJ,KK)
 !
 USE MODD_CONF
 USE MODE_IO, only: IO_Pack_set
+use mode_init_ll, only: SET_DAD0_ll, SET_JP_ll, SET_SPLITTING_ll
 USE MODD_SPECTRE
 USE MODI_COMPUTE_SPECTRE
 USE MODD_PARAMETERS
diff --git a/src/MNH/split_grid_parameter_mnh.f90 b/src/MNH/split_grid_parameter_mnh.f90
index fed28c271c66c42b89e5a22370edd23e29884dda..e859565f1512b167ef76f96a8a8c1856968428b8 100644
--- a/src/MNH/split_grid_parameter_mnh.f90
+++ b/src/MNH/split_grid_parameter_mnh.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2011-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     #############################################################
 #ifdef MNH_PARALLEL
       SUBROUTINE SPLIT_GRID_PARAMETERX1_MNH(HGRID,HREC,KDIM,KSIZE,KIMAX_ll,KJMAX_ll,KHALO,PFIELD,PFIELD_SPLIT)
@@ -21,6 +22,8 @@
 #else
 USE MODD_IO_SURF_MNH, ONLY : NHALO
 #endif
+
+use mode_tools_ll,        only: GET_INDICE_ll, GET_OR_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/surf_solar_slopes.f90 b/src/MNH/surf_solar_slopes.f90
index 9dd3fbe40e653dab6d3ced2f8c4d61a04e70bc3f..e7ea4ef2284690164c6c4c0679c8621f245ec5dd 100644
--- a/src/MNH/surf_solar_slopes.f90
+++ b/src/MNH/surf_solar_slopes.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 param 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !    #############################
      MODULE MODI_SURF_SOLAR_SLOPES 
 !    #############################
@@ -83,6 +78,7 @@ END MODULE MODI_SURF_SOLAR_SLOPES
 !              ------------
 !
 USE MODD_CST, ONLY : XPI, XMNH_TINY
+use mode_tools_ll, only: GET_INDICE_ll
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/turb_cloud_index.f90 b/src/MNH/turb_cloud_index.f90
index a224e27eb694ad36e42c8559521034e5de408996..abe8e0f24c2af29888c0d0517ea5d6d882e6e8a8 100644
--- a/src/MNH/turb_cloud_index.f90
+++ b/src/MNH/turb_cloud_index.f90
@@ -90,6 +90,7 @@ USE MODD_PARAMETERS,     ONLY: JPVEXT
 !
 USE MODE_FIELD,          ONLY: TFIELDDATA,TYPEREAL
 USE MODE_IO_FIELD_WRITE, only: IO_Field_write
+use mode_tools_ll,       only: GET_INDICE_ll
 !
 USE MODI_GRADIENT_M
 !
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 20aa0f4647beb92f0df37401df66e993e28eb2f0..6655d27e109d94115783b87e80f9edc5251e5616 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -240,6 +240,7 @@ USE MODE_IO_FIELD_WRITE,   only: IO_Field_write
 USE MODE_IO_FILE,          only: IO_File_close, IO_File_open
 USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list
 USE MODE_ll
+use mode_msg
 USE MODE_THERMO
 USE MODE_TOOLS,            ONLY: UPCASE
 USE MODE_MODELN_HANDLER
diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90
index de9025e0f7668d7f4d216f2741999e9c84d36aeb..7731c2dcf7524bf48901c17ce96a42f87633a309 100644
--- a/src/MNH/zsmt_pgd.f90
+++ b/src/MNH/zsmt_pgd.f90
@@ -75,7 +75,8 @@ USE MODE_IO_FIELD_READ,  only: IO_Field_read
 USE MODE_IO_FIELD_WRITE, only: IO_Field_write
 USE MODE_ll        , ONLY : GET_DIM_EXT_ll , ADD2DFIELD_ll , CLEANLIST_ll , UPDATE_HALO_ll
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll 
-USE MODI_SUM_ll
+USE MODE_SUM_ll
+use mode_tools_ll,        only: GET_INDICE_ll
 USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL
 !
 IMPLICIT NONE
diff --git a/src/Makefile b/src/Makefile
index 0e20e4a2ab02a54c4be1be985ac1ad7cc52bb84c..3d140df7dbd7a8f51c4368348d6cfc88219b8ee6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -408,7 +408,7 @@ $(OBJDIR_MASTER)/spll_lockoff.o $(OBJDIR_MASTER)/spll_lockon.o $(OBJDIR_MASTER)/
 $(OBJDIR_MASTER)/fswap8buff.o $(OBJDIR_MASTER)/spll_remark2.o
 
 libs4py.so : progmaster
-	$(CC) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS)
+	$(F90) -shared $(LDFLAGS) -o $(OBJDIR_MASTER)/$@ $(OBJ_S4PY) $(LIBS)
 endif
 ##########################################################
 #                                                        #
diff --git a/src/SURFEX/interpol_npts.F90 b/src/SURFEX/interpol_npts.F90
index 8f3d25e867dcf7d1228eabc9f75626622e820288..49953d7aec721500ede2b606426d15a99ff1ccfc 100644
--- a/src/SURFEX/interpol_npts.F90
+++ b/src/SURFEX/interpol_npts.F90
@@ -2,6 +2,7 @@
 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !SFX_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     #########
       SUBROUTINE INTERPOL_NPTS (UG, U, HPROGRAM,KLUOUT,KNPTS,KCODE,PX,PY,PFIELD,KNEAR_NBR)
 !     #########################################################
@@ -75,7 +76,7 @@ use modd_mpif
 use modd_precision,    only: MNHINT_MPI, MNHREAL_MPI
 USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
 USE MODE_GATHER_ll
-USE MODE_TOOLS_ll,     ONLY : GET_GLOBALDIMS_ll
+USE MODE_TOOLS_ll,     ONLY : GET_DIM_PHYS_ll, GET_GLOBALDIMS_ll
 USE MODD_PARAMETERS_ll,ONLY : JPHEXT
 !
 USE MODD_IO_SURF_MNH, ONLY : NIU, NJU