From 820345e7a5b36d757d6f723d865dacaf5700f833 Mon Sep 17 00:00:00 2001
From: Juan Escobar <juan.escobar@aero.obs-mip.fr>
Date: Wed, 16 Sep 2015 14:33:15 +0000
Subject: [PATCH] Juan 15/09/2015: WENO5 & JPHEXT<>1 variable

---
 .../001_prep_ideal_case/PRE_IDEA1.nam         |   4 +-
 .../KTEST/001_2Drelief/002_mesonh/EXSEG1.nam  |   4 +-
 .../001_prep_ideal_case/PRE_IDEA1.nam         |   4 +-
 .../KTEST/002_3Drelief/002_mesonh/EXSEG1.nam  |   5 +-
 .../001_prep_ideal_case/PRE_IDEA1.nam         |   4 +-
 MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam   |   4 +-
 .../004_Reunion/001_prep_pgd/PRE_PGD1.nam     |   3 +
 .../002_prep_ideal_case/PRE_IDEA1.nam         |   4 +-
 .../KTEST/004_Reunion/003_mesonh/EXSEG1.nam   |   4 +-
 .../KTEST/007_16janvier/001_pgd1/PRE_PGD1.nam |   3 +
 .../KTEST/007_16janvier/002_pgd2/PRE_PGD1.nam |   3 +
 .../007_16janvier/003_nest/PRE_NEST_PGD1.nam  |   3 +
 .../007_16janvier/004_arp2lfi/PRE_REAL1.nam   |   3 +
 .../007_16janvier/006_preal/PRE_REAL1.nam     |   4 +-
 .../007_16janvier/008_run2/EXSEG1.nam.src     |   6 +-
 MY_RUN/KTEST/012_dust/001_pgd1/PRE_PGD1.nam   |   4 +
 .../002_ecmwf2lfi/PRE_REAL1.nam.20000924.00   |   3 +-
 .../002_ecmwf2lfi/PRE_REAL1.nam.20000924.12   |   3 +-
 .../002_ecmwf2lfi/PRE_REAL1.nam.20000925.00   |   3 +-
 .../012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz  |   2 +
 MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam      |   8 +-
 src/LIB/SURCOUCHE/src/fmread_ll.f90           |   9 +-
 src/LIB/SURCOUCHE/src/fmwrit_ll.f90           |  10 +-
 src/LIB/SURCOUCHE/src/mode_distriblb.f90      |  30 +-
 src/LIB/SURCOUCHE/src/mode_double_double.f90  | 102 ++---
 src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90   |  12 +-
 src/LIB/SURCOUCHE/src/mode_exchange_ll.f90    |  12 +-
 src/LIB/SURCOUCHE/src/mode_mppdb.f90          | 143 ++++---
 src/LIB/SURCOUCHE/src/mode_nest_ll.f90        |  76 ++--
 src/LIB/SURCOUCHE/src/mode_sum_ll.f90         | 177 ++++++++-
 src/LIB/SURCOUCHE/src/mode_tools_ll.f90       |  16 +-
 src/MNH/adv_boundaries.f90                    |  17 +-
 src/MNH/advec_3rd_order_aux.f90               | 138 ++++---
 src/MNH/advecmet_4th.f90                      |  27 +-
 src/MNH/advecscalar_4th.f90                   |  11 +-
 src/MNH/advection_metsv.f90                   |  12 +-
 src/MNH/advection_uvw.f90                     |   6 +-
 src/MNH/advecuvw_rk.f90                       | 226 +++++++----
 src/MNH/advecuvw_weno_k.f90                   | 129 +++----
 src/MNH/anel_balancen.f90                     |   3 +-
 src/MNH/bikhardt.f90                          |  29 +-
 src/MNH/boundaries.f90                        | 351 ++++++++++--------
 src/MNH/budget.f90                            |   3 +-
 src/MNH/call_rttov.f90                        |   7 +-
 src/MNH/ch_aqueous_sedim1mom.f90              |   6 +-
 src/MNH/ch_aqueous_sedimc2r2.f90              |   8 +-
 src/MNH/ch_aqueous_sedimkhko.f90              |   6 +-
 src/MNH/ch_aqueous_tmicc2r2.f90               |   8 +-
 src/MNH/ch_aqueous_tmicice.f90                |   6 +-
 src/MNH/ch_aqueous_tmickess.f90               |   6 +-
 src/MNH/ch_aqueous_tmickhko.f90               |   6 +-
 src/MNH/change_gribex_var.f90                 |  67 ++--
 src/MNH/check_zs.f90                          |   8 +-
 src/MNH/convection.f90                        |   7 +-
 src/MNH/define_maskn.f90                      |   6 +-
 src/MNH/dflux_corr.f90                        |  15 +-
 src/MNH/diag.f90                              |   7 +-
 src/MNH/dyn_sources.f90                       |  12 +-
 src/MNH/elec_trid.f90                         |   2 +-
 src/MNH/endstep.f90                           |   6 +-
 src/MNH/extract_vortex.f90                    |  10 +-
 src/MNH/fast_terms.f90                        |   5 +-
 src/MNH/fill_sonfieldn.f90                    |  10 +-
 src/MNH/flash_geom_elec.f90                   |   8 +-
 src/MNH/get_sizex_lb.f90                      |  24 +-
 src/MNH/get_sizey_lb.f90                      |  24 +-
 src/MNH/gradient_m.f90                        |  16 +-
 src/MNH/gravity.f90                           |   8 +-
 src/MNH/ice_adjust.f90                        |   8 +-
 src/MNH/ice_adjust_elec.f90                   |   8 +-
 src/MNH/ini_lb.f90                            |  58 +--
 src/MNH/ini_les_cart_maskn.f90                |   2 +-
 src/MNH/ini_modeln.f90                        |  61 +--
 src/MNH/ini_one_wayn.f90                      |  14 +-
 src/MNH/ini_prog_var.f90                      |  47 ++-
 src/MNH/ini_segn.f90                          |   2 +-
 src/MNH/ini_size_spawn.f90                    |  14 +-
 src/MNH/ini_sizen.f90                         |  23 +-
 src/MNH/ini_spawn_lsn.f90                     |  15 +-
 src/MNH/interp3d.f90                          |   8 +-
 src/MNH/ion_attach_elec.f90                   |   7 +-
 src/MNH/ion_bound4drift.f90                   |   6 +-
 src/MNH/ion_drift.f90                         |   6 +-
 src/MNH/khko_notadjust.f90                    |   7 +-
 src/MNH/lidar.f90                             |   7 +-
 src/MNH/mesonh.f90                            |   3 +-
 src/MNH/mnhopen_aux_io_surf.f90               |  13 +
 src/MNH/modd_conf.f90                         |   4 +-
 src/MNH/modd_parameters.f90                   |   8 +-
 src/MNH/mode_gridcart.f90                     |   9 +-
 src/MNH/mode_interpol_beam.f90                |  13 +-
 src/MNH/modeln.f90                            |  19 +-
 src/MNH/modn_conf.f90                         |   6 +-
 src/MNH/num_diff.f90                          | 274 +++++++-------
 src/MNH/one_wayn.f90                          |  22 +-
 src/MNH/open_nestpgd_files.f90                |  10 +-
 src/MNH/pgdfilter.f90                         |  17 +-
 src/MNH/polar_calc.f90                        |   9 +-
 src/MNH/polar_mean.f90                        |  16 +-
 src/MNH/prep_ideal_case.f90                   | 198 ++++++----
 src/MNH/prep_nest_pgd.f90                     |  50 ++-
 src/MNH/prep_pgd.f90                          |   9 +
 src/MNH/prep_real_case.f90                    |  10 +-
 src/MNH/pressure_in_prep.f90                  |   8 +-
 src/MNH/pressurez.f90                         |  54 +--
 src/MNH/qlap.f90                              |  46 ++-
 src/MNH/rad_bound.f90                         |  52 +--
 src/MNH/radar_simulator.f90                   |   6 +-
 src/MNH/radtr_satel.f90                       |   8 +-
 src/MNH/rain_c2r2_khko.f90                    |  16 +-
 src/MNH/rain_ice.f90                          |   8 +-
 src/MNH/rain_ice_elec.f90                     |   9 +-
 src/MNH/read_exsegn.f90                       |   9 +-
 src/MNH/read_hgridn.f90                       |  18 +
 src/MNH/read_prc_fmfile.f90                   |  90 ++---
 src/MNH/relaxation.f90                        |  45 ++-
 src/MNH/resolved_cloud.f90                    |  56 +--
 src/MNH/resolved_elecn.f90                    |   8 +-
 src/MNH/retrieve2_nest_infon.f90              |   6 +-
 src/MNH/series_cloud_elec.f90                 |   7 +-
 src/MNH/set_advfrc.f90                        |   6 +-
 src/MNH/set_cstn.f90                          |  18 +-
 src/MNH/set_dircos.f90                        |   2 +-
 src/MNH/set_mass.f90                          |  90 +++--
 src/MNH/set_msk.f90                           |   7 +-
 src/MNH/set_perturb.f90                       |   6 +-
 src/MNH/set_relfrc.f90                        |   6 +-
 src/MNH/set_rsou.f90                          |  15 +-
 src/MNH/shuman.f90                            |  47 ++-
 src/MNH/slow_terms.f90                        |   5 +-
 src/MNH/spawn_grid2.f90                       |  13 +-
 src/MNH/spawn_model2.f90                      |  87 ++---
 src/MNH/spawn_zs.f90                          |  76 ++--
 src/MNH/spawning.f90                          |   9 +
 src/MNH/tke_eps_sources.f90                   |  12 +-
 src/MNH/tridz.f90                             |  22 +-
 src/MNH/turb_hor_dyn_corr.f90                 |   8 +-
 src/MNH/turb_hor_splt.f90                     |   7 +-
 src/MNH/turb_ver_dyn_flux.f90                 |   8 +-
 src/MNH/two_wayn.f90                          | 143 +++----
 src/MNH/update_lm.f90                         |  12 +-
 src/MNH/update_metrics.f90                    |  35 +-
 src/MNH/ver_dyn.f90                           |  49 ++-
 src/MNH/ver_int_thermo.f90                    |   6 +-
 src/MNH/ver_interp_to_mixed_grid.f90          |   6 +-
 src/MNH/ver_prep_mesonh_case.f90              |  15 +-
 src/MNH/ver_thermo.f90                        |  65 ++--
 src/MNH/vert_coord.f90                        |  43 ++-
 src/MNH/write_lbn.f90                         |  23 +-
 src/MNH/write_lfifm1_for_diag_supp.f90        |   7 +-
 src/MNH/write_lfifmn_fordiachron.f90          |   9 +-
 src/MNH/write_lfin.f90                        |  15 +-
 src/MNH/write_seriesn.f90                     |   4 +-
 src/MNH/write_surf_mnh.f90                    |   8 +-
 src/MNH/zsect.f90                             |   6 +-
 src/MNH/zsmt_pgd.f90                          |  35 +-
 156 files changed, 2530 insertions(+), 1732 deletions(-)

diff --git a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/PRE_IDEA1.nam b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/PRE_IDEA1.nam
index 07695c089..dc7ea3553 100644
--- a/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/PRE_IDEA1.nam
+++ b/MY_RUN/KTEST/001_2Drelief/001_prep_ideal_case/PRE_IDEA1.nam
@@ -3,7 +3,9 @@
 &NAM_VER_GRID NKMAX=48 ZDZGRD=40., ZDZTOP=500.,
               ZZMAX_STRGRD=5000. , ZSTRGRD=10. , ZSTRTOP= 10. /
 &NAM_CONF_PRE LCARTESIAN=.TRUE., LBOUSS=.FALSE., NVERB=5,
-              CIDEAL='RSOU', CZS='BELL',LSHIFT=F /
+              CIDEAL='RSOU', CZS='BELL',LSHIFT=F 
+              !JPHEXT = 3 , NHALO = 3 
+              /
 &NAM_CONFn LUSERV=.TRUE. /
 &NAM_GRID_PRE XLAT0=43.29 /
 &NAM_GRIDH_PRE XDELTAX=5.E3, XDELTAY=5.E3,
diff --git a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam
index c516f48ec..7bd4ee0c5 100644
--- a/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/001_2Drelief/002_mesonh/EXSEG1.nam
@@ -11,7 +11,9 @@
 &NAM_TURBn XIMPL = 1., CTURBLEN = "DELT", CTURBDIM = "3DIM", 
 	   LTURB_DIAG = T, LTURB_FLX = T /
 &NAM_CONF CCONF = "START", LFLAT = F, NMODEL = 1, NVERB = 5, 
-          CEXP = "EXPER", CSEG = "HYD2D" /
+          CEXP = "EXPER", CSEG = "HYD2D" 
+          !JPHEXT=3 NHALO=3
+          /
 &NAM_DYN XSEGLEN =1080., XASSELIN = 0.2, LCORIO = F, 
          XALKTOP = 0.005, XALZBOT = 12570., LNUMDIFU =.T. /
 &NAM_FMOUT XFMOUT(1,1) = 360., XFMOUT(1,2) = 720., XFMOUT(1,3) = 1080. /
diff --git a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/PRE_IDEA1.nam b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/PRE_IDEA1.nam
index 5bd73e3e1..d11657a5e 100644
--- a/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/PRE_IDEA1.nam
+++ b/MY_RUN/KTEST/002_3Drelief/001_prep_ideal_case/PRE_IDEA1.nam
@@ -8,7 +8,9 @@
                           CEQNSYS='LHE'
                           CZS='BELL'
                           CIDEAL='CSTN'
-                          NVERB=1 /
+                          NVERB=1 
+                          !JPHEXT = 3 , NHALO = 3 
+                          /
 &NAM_CONFn LUSERV=.FALSE. LUSERC=.FALSE. LUSERR=.FALSE.
            LUSERI=.FALSE. LUSERS=.FALSE. LUSERG=.FALSE. LUSERH=.FALSE. /
 &NAM_GRID_PRE XLAT0=43.29 /
diff --git a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam
index 1dde7f08b..289c484be 100644
--- a/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/002_3Drelief/002_mesonh/EXSEG1.nam
@@ -12,8 +12,9 @@
 &NAM_LBCn  CLBCX = 2*"OPEN", CLBCY = 2*"OPEN" /
 &NAM_CONF  CCONF = "START", NMODEL = 1,
            CSPLIT='BSPLITTING' ,
-           NVERB = 5, CEXP = "REL3D", CSEG = "EXP01" ,
-             /
+           NVERB = 5, CEXP = "REL3D", CSEG = "EXP01"  
+           !JPHEXT=3 NHALO=3
+           /
 &NAM_DYN  XSEGLEN = 1000., XASSELIN = 0.2, LCORIO = F,
           XALKTOP = 0.005, XALZBOT = 12570.,
           LNUMDIFU =.F. /
diff --git a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/PRE_IDEA1.nam b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/PRE_IDEA1.nam
index 365356318..811e8fa86 100644
--- a/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/PRE_IDEA1.nam
+++ b/MY_RUN/KTEST/003_KW78/001_prep_ideal_case/PRE_IDEA1.nam
@@ -7,7 +7,9 @@
 	      CIDEAL='RSOU' CZS='FLAT' 
               LBOUSS=.FALSE.  LPERTURB=.TRUE. 
 	      CEQNSYS='LHE',LSHIFT=.TRUE.,
-	      NVERB=5 /
+	      NVERB=5 
+              !JPHEXT = 3 , NHALO = 3 
+              /
 &NAM_PERT_PRE CPERT_KIND= 'TH' , XAMPLITH= 1.5 ,
               LSET_RHU= .FALSE. , XAMPLIRV= 0. ,
               XCENTERZ= 1692.31
diff --git a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
index 675c5bed1..286625232 100644
--- a/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/003_KW78/002_mesonh/EXSEG1.nam
@@ -16,7 +16,9 @@
 &NAM_CONF  CCONF = "START", NMODEL = 1,
            LFLAT = T, NVERB = 5,
            CEXP = "KWRAI", CSEG = "SG520" ,
-           CSPLIT='BSPLITTING' /
+           CSPLIT='BSPLITTING' 
+           !JPHEXT=3 NHALO=3
+           /
 &NAM_DYN  XSEGLEN = 1800.,
           XASSELIN = 0.2, LCORIO = F,
           LNUMDIFU = T /
diff --git a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam
index fd71d7780..1316b5cf4 100644
--- a/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam
+++ b/MY_RUN/KTEST/004_Reunion/001_prep_pgd/PRE_PGD1.nam
@@ -1,4 +1,7 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
+&NAM_CONF_PGD
+ !JPHEXT = 3 , NHALO_MNH = 3
+/
 &NAM_CONFZ 
  ! NZ_VERB=5 , NB_PROCIO_W=8 
 /
diff --git a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam
index 593246928..fecdb796d 100644
--- a/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam
+++ b/MY_RUN/KTEST/004_Reunion/002_prep_ideal_case/PRE_IDEA1.nam
@@ -7,7 +7,9 @@
 &NAM_CONF_PRE LCARTESIAN= F
               LBOUSS= F  CEQNSYS='LHE'
               CIDEAL='CSTN'
-              NVERB=5 /
+              NVERB=5 
+              !JPHEXT = 3 , NHALO = 3 
+              /
 &NAM_CONFn LUSERV=T /
 &NAM_LUNITn CINIFILE = 'REUNION_IDEA_520',CINIFILEPGD = 'REUNION_PGD_1km5_520' /
 &NAM_DYNn_PRE 
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
index 76ae1d3bb..91cd055e3 100644
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
@@ -19,7 +19,9 @@
              NBJSLICE=1 NJSLICEL(1)=30 NJSLICEH(1)=35 /
 &NAM_CONF  CCONF = "START", NMODEL = 1,
            NVERB = 5, CEXP = "REUNI", CSEG = "00A20" ,
-           CSPLIT="BSPLITTING" /
+           CSPLIT="BSPLITTING" 
+           !JPHEXT =3 , NHALO = 3 
+           /
 &NAM_DYN  XSEGLEN = 40.,
           LCORIO = F, LNUMDIFU = F,
           XALKTOP = 0.01, XALZBOT = 14000. /
diff --git a/MY_RUN/KTEST/007_16janvier/001_pgd1/PRE_PGD1.nam b/MY_RUN/KTEST/007_16janvier/001_pgd1/PRE_PGD1.nam
index e13f0056d..1dfcd7809 100644
--- a/MY_RUN/KTEST/007_16janvier/001_pgd1/PRE_PGD1.nam
+++ b/MY_RUN/KTEST/007_16janvier/001_pgd1/PRE_PGD1.nam
@@ -1,4 +1,7 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
+&NAM_CONF_PGD  
+    !JPHEXT = 3 , NHALO_MNH = 3 
+    /
 &NAM_PGDFILE CPGDFILE='16JAN98_36km' /
 &NAM_CONF_PROJ XLAT0=50., XLON0=-2.8, XRPK=0.58, XBETA=0. /
 &NAM_CONF_PROJ_GRID XLATCEN=48.,  XLONCEN=-1.,
diff --git a/MY_RUN/KTEST/007_16janvier/002_pgd2/PRE_PGD1.nam b/MY_RUN/KTEST/007_16janvier/002_pgd2/PRE_PGD1.nam
index cb72d1781..13c2bc41a 100644
--- a/MY_RUN/KTEST/007_16janvier/002_pgd2/PRE_PGD1.nam
+++ b/MY_RUN/KTEST/007_16janvier/002_pgd2/PRE_PGD1.nam
@@ -1,4 +1,7 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
+&NAM_CONF_PGD 
+   ! JPHEXT = 3 , NHALO_MNH = 3 
+   /
 &NAM_PGDFILE CPGDFILE='16JAN98_9km' /
 &NAM_PGD_GRID YINIFILE='16JAN98_36km' YFILETYPE='MESONH' /
 &NAM_INIFILE_CONF_PROJ IXOR=10, IYOR=10, IXSIZE=10, IYSIZE=10, IDXRATIO=4, IDYRATIO=4 /
diff --git a/MY_RUN/KTEST/007_16janvier/003_nest/PRE_NEST_PGD1.nam b/MY_RUN/KTEST/007_16janvier/003_nest/PRE_NEST_PGD1.nam
index 0d51439c1..c19fd5959 100644
--- a/MY_RUN/KTEST/007_16janvier/003_nest/PRE_NEST_PGD1.nam
+++ b/MY_RUN/KTEST/007_16janvier/003_nest/PRE_NEST_PGD1.nam
@@ -1,4 +1,7 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
+&NAM_CONF_NEST 
+    !JPHEXT =3 , NHALO_MNH = 3 
+    /
 &NAM_PGD1 YPGD1 = '16JAN98_36km' /
 &NAM_PGD2 YPGD2 = '16JAN98_9km', IDAD = 1 /
 &NAM_NEST_PGD YNEST = 'e1' /
diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam
index bd6b5b907..681314cdd 100644
--- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam
+++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/PRE_REAL1.nam
@@ -2,6 +2,9 @@
 &NAM_CONFZ
   ! NZ_VERB=5 , NZ_PROC=0 , NB_PROCIO_R=1 , NB_PROCIO_W=1
 /
+&NAM_REAL_CONF NVERB=5 , CPRESOPT='ZRESI' 
+               !JPHEXT=3 , NHALO=3 
+               /
 &NAM_FILE_NAMES HATMFILE ='arpifs.AN.19980116.06' , HATMFILETYPE='GRIBEX',
                 HPGDFILE ='16JAN98_36km.neste1' , CINIFILE='16JAN_06_MNH' /
 &NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
diff --git a/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam b/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam
index d48201b85..963196cc0 100644
--- a/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam
+++ b/MY_RUN/KTEST/007_16janvier/006_preal/PRE_REAL1.nam
@@ -1,7 +1,9 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
 &NAM_FILE_NAMES HATMFILE ='16JAN_06_MNH.spa04' , HATMFILETYPE='MESONH',
                 HPGDFILE ='16JAN98_9km.neste1' , CINIFILE='16JAN_06_MNH2' /
-&NAM_REAL_CONF NVERB=5 /
+&NAM_REAL_CONF NVERB=5 
+              !JPHEXT=3 , NHALO=3 
+              /
 &NAM_VER_GRID NKMAX=50, YZGRID_TYPE='FUNCTN',
        ZDZGRD=60., ZDZTOP=700.,
        ZZMAX_STRGRD=2500., ZSTRGRD=9., ZSTRTOP=7. /
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
index 04a583eb4..090742784 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
@@ -16,9 +16,11 @@
 &NAM_LBCn  CLBCX = 2*"OPEN", CLBCY = 2*"OPEN" /
 &NAM_TURBn  CTURBLEN = "BL89", CTURBDIM = "1DIM", LSUBG_COND = F /
 &NAM_CH_MNHCn LUSECHEM = F /
-&NAM_CONF  CCONF = "START", NVERB=5, NMODEL = 2,
+&NAM_CONF  CCONF = "START", NVERB=5, NMODEL = 2, 
             CEXP = "16JAN", CSEG = "12B18" ,
-            CSPLIT='BSPLITTING' /
+            CSPLIT='BSPLITTING' 
+            !NHALO=3 JPHEXT=3 
+            /
 &NAM_DYN  XSEGLEN = 300., LCORIO = T, LNUMDIFU = T,
            XALKTOP = 0.001, XALZBOT = 14500. /
 &NAM_NESTING NDAD(2) = 1, NDTRATIO(2) = 4, XWAY(2) = 2. /
diff --git a/MY_RUN/KTEST/012_dust/001_pgd1/PRE_PGD1.nam b/MY_RUN/KTEST/012_dust/001_pgd1/PRE_PGD1.nam
index 5e0cdd906..f088430ab 100644
--- a/MY_RUN/KTEST/012_dust/001_pgd1/PRE_PGD1.nam
+++ b/MY_RUN/KTEST/012_dust/001_pgd1/PRE_PGD1.nam
@@ -1,5 +1,9 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
 &NAM_PGDFILE CPGDFILE='pgd_dust_30km' /
+&NAM_CONF_PGD
+   JPHEXT = 3   
+   NHALO_MNH = 3
+/
 &NAM_CONF_PROJ
  XRPK=1.,
  XBETA=0.,
diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.00 b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.00
index 79d93a7c1..b162feb30 100644
--- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.00
+++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.00
@@ -5,7 +5,8 @@
 &NAM_AERO_CONF  LORILAM=.FALSE., LDUST=.TRUE. /
 &NAM_REAL_CONF  NVERB=5,
 		CEQNSYS='DUR',
-		CPRESOPT='RICHA' /
+		CPRESOPT='RICHA' 
+                JPHEXT=3 , NHALO=3 /
 &NAM_VER_GRID   NKMAX=30,
                 YZGRID_TYPE='FUNCTN',
                 ZDZGRD=100.,
diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.12 b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.12
index 5699a36f3..0eb65d758 100644
--- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.12
+++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000924.12
@@ -5,7 +5,8 @@
 &NAM_AERO_CONF  LORILAM=.FALSE., LDUST=.TRUE. /
 &NAM_REAL_CONF  NVERB=5,
 		CEQNSYS='DUR',
-		CPRESOPT='RICHA' /
+		CPRESOPT='RICHA' 
+                JPHEXT=3 , NHALO=3 /
 &NAM_VER_GRID   NKMAX=30,
                 YZGRID_TYPE='FUNCTN',
                 ZDZGRD=100.,
diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000925.00 b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000925.00
index 2ba0e7852..2cb7fb434 100644
--- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000925.00
+++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/PRE_REAL1.nam.20000925.00
@@ -5,7 +5,8 @@
 &NAM_AERO_CONF  LORILAM=.FALSE., LDUST=.TRUE. /
 &NAM_REAL_CONF  NVERB=5,
 		CEQNSYS='DUR',
-		CPRESOPT='RICHA' /
+		CPRESOPT='RICHA' 
+                JPHEXT=3 , NHALO=3 /
 &NAM_VER_GRID   NKMAX=30,
                 YZGRID_TYPE='FUNCTN',
                 ZDZGRD=100.,
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 9ce39fcc7..d3251c34a 100755
--- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz
+++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz
@@ -23,6 +23,8 @@ cp PRE_REAL1.nam.20000924.00 PRE_REAL1.nam
 time ${MONORUN} PREP_REAL_CASE${XYZ}
 mv OUTPUT_LISTING0 OUTPUT_LISTING0_2400
 
+#exit 
+
 cp PRE_REAL1.nam.20000924.12 PRE_REAL1.nam
 time ${MONORUN} PREP_REAL_CASE${XYZ}
 mv OUTPUT_LISTING0 OUTPUT_LISTING0_2412
diff --git a/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam b/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam
index 9d2b6ca5e..f8363807c 100644
--- a/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam
+++ b/MY_RUN/KTEST/012_dust/003_run/EXSEG1.nam
@@ -1,8 +1,9 @@
 &NAM_CONFIO  LCDF4=T, LLFIOUT=T, LLFIREAD=F /
 &NAM_LUNITn 
             CINIFILE = "S7020000924.00",
-            CINIFILEPGD = "pgd_dust_30km",
-            CCPLFILE(1) = "S7020000924.12" /
+            CINIFILEPGD = "pgd_dust_30km" 
+            CCPLFILE(1) = "S7020000924.12" 
+            /
 &NAM_DYNn   
             XTSTEP = 40.,
             CPRESOPT = "CRESI",
@@ -53,7 +54,8 @@
             NMODEL = 1, 
             NVERB = 5,
             CEXP = "DUST7",
-            CSEG = "SEG01" /
+            CSEG = "SEG01" 
+            JPHEXT=3 , NHALO=3 /
 &NAM_DYN 
             XSEGLEN = 43200,
             XASSELIN = 0.2,
diff --git a/src/LIB/SURCOUCHE/src/fmread_ll.f90 b/src/LIB/SURCOUCHE/src/fmread_ll.f90
index 5ef3a5715..dcac5390d 100644
--- a/src/LIB/SURCOUCHE/src/fmread_ll.f90
+++ b/src/LIB/SURCOUCHE/src/fmread_ll.f90
@@ -24,6 +24,7 @@ MODULE MODE_FMREAD
 !  J.Escobar : 22/08/2005 : BUG : manque un "GOTO 1000" si champs
 !              lue non trouvé !!!
 !  J.Escobar : 13/01/2015 : remove comment on BCAST(IRESP in FMREADX2_ll
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !
 USE MODD_MPIF
 #if defined(MNH_IOCDF4)
@@ -1858,8 +1859,8 @@ IF (ASSOCIATED(TZFD)) THEN
             CALL FM_READ_ll(TZFD%FLU,HRECFM,.TRUE.,SIZE(Z3D),Z3D,TZFMH,IRESP)
          END IF
       END IF
-      PLB(1:KRIM+1,:,:)          = Z3D(1:KRIM+1,:,:)
-      PLB(KRIM+2:2*(KRIM+1),:,:) = Z3D(KL3D-KRIM:KL3D,:,:)
+      PLB(1:KRIM+JPHEXT,:,:)          = Z3D(1:KRIM+JPHEXT,:,:)
+      PLB(KRIM+JPHEXT+1:2*(KRIM+JPHEXT),:,:) = Z3D(KL3D-KRIM-JPHEXT+1:KL3D,:,:)
     ELSE !(HLBTYPE == 'LBY' .OR. HLBTYPE == 'LBYV') 
       ALLOCATE(Z3D(SIZE(PLB,1),KL3D,SIZE(PLB,3)))
       Z3D = 0.0
@@ -1895,7 +1896,7 @@ IF (ASSOCIATED(TZFD)) THEN
            END IF
         END IF
         ! erase gap in LB field
-        Z3D(KRIM+2:2*(KRIM+1),:,:) = Z3D(KL3D-KRIM:KL3D,:,:)
+        Z3D(KRIM+JPHEXT+1:2*(KRIM+JPHEXT),:,:) = Z3D(KL3D-KRIM-JPHEXT+1:KL3D,:,:)
       ELSE !(HLBTYPE == 'LBY' .OR. HLBTYPE == 'LBYV') 
         ALLOCATE(Z3D(IIMAX_ll+2*JPHEXT,KL3D,SIZE(PLB,3)))
         Z3D = 0.0
@@ -1905,7 +1906,7 @@ IF (ASSOCIATED(TZFD)) THEN
            CALL FM_READ_ll(TZFD%FLU,HRECFM,.TRUE.,SIZE(Z3D),Z3D,TZFMH,IRESP)
         END IF
         ! erase gap in LB field
-        Z3D(:,KRIM+2:2*(KRIM+1),:) = Z3D(:,KL3D-KRIM:KL3D,:)
+        Z3D(:,KRIM+JPHEXT+1:2*(KRIM+JPHEXT),:) = Z3D(:,KL3D-KRIM-JPHEXT+1:KL3D,:)
       END IF
       CALL SECOND_MNH2(T1)
       TIMEZ%T_READLB_READ=TIMEZ%T_READLB_READ + T1 - T0
diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
index 66ef11665..219632afa 100644
--- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
+++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 #ifdef MNH_MPI_DOUBLE_PRECISION
@@ -2544,7 +2546,7 @@ CONTAINS
     IRESP = 0
     YFNLFI=TRIM(ADJUSTL(HFILEM))//'.lfi'
     !print * , ' Writing Article LB ' , HRECFM
-    IF (KL3D /= 2*(KRIM+1)) THEN
+    IF (KL3D /= 2*(KRIM+JPHEXT)) THEN
        IRESP = -30
        GOTO 1000
     END IF
@@ -2557,7 +2559,7 @@ CONTAINS
           TZFMH%COMLEN=KLENCH
           TZFMH%COMMENT=HCOMMENT
           IF (LPACK .AND. L2D) THEN
-             TX3DP=>PLB(:,2:2,:)
+             TX3DP=>PLB(:,JPHEXT+1:JPHEXT+1,:)
 #ifdef MNH_NCWRIT
                IF ( DEF_NC .AND. LLFIFM ) THEN
              CALL FM_WRIT_ll(TZFD%FLU,HRECFM,.TRUE.,SIZE(TX3DP),TX3DP,TZFMH,IRESP)
@@ -2581,9 +2583,9 @@ CONTAINS
              ! I/O proc case
              CALL GET_GLOBALDIMS_ll(IIMAX_ll,IJMAX_ll)
              IF (HLBTYPE == 'LBX' .OR. HLBTYPE == 'LBXU') THEN 
-                ALLOCATE(Z3D((KRIM+1)*2,IJMAX_ll+2*JPHEXT,SIZE(PLB,3)))
+                ALLOCATE(Z3D((KRIM+JPHEXT)*2,IJMAX_ll+2*JPHEXT,SIZE(PLB,3)))
              ELSE ! HLBTYPE == 'LBY' .OR. HLBTYPE == 'LBYV' 
-                ALLOCATE(Z3D(IIMAX_ll+2*JPHEXT,(KRIM+1)*2,SIZE(PLB,3)))
+                ALLOCATE(Z3D(IIMAX_ll+2*JPHEXT,(KRIM+JPHEXT)*2,SIZE(PLB,3)))
              END IF
              DO JI = 1,ISNPROC
                 CALL GET_DISTRIB_LB(HLBTYPE,JI,'FM','WRITE',KRIM,IIB,IIE,IJB,IJE)
diff --git a/src/LIB/SURCOUCHE/src/mode_distriblb.f90 b/src/LIB/SURCOUCHE/src/mode_distriblb.f90
index 8509ab6b6..e3d13ec6f 100644
--- a/src/LIB/SURCOUCHE/src/mode_distriblb.f90
+++ b/src/LIB/SURCOUCHE/src/mode_distriblb.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 !     #############################
@@ -171,20 +173,20 @@ IF (KRIMX /=0) THEN
   IF (OLU) THEN
 ! full LB zone for u grid point  : 2:NRIMX+2,1:NJMAX_ll+ 2 * JPHEXT
     IXOR=2
-    IXEND=KRIMX+2
+    IXEND=KRIMX+JPHEXT+1 ! +2
     IYOR=1 
     IYEND=IJMAX_ll+ 2 * JPHEXT
   ELSE
 ! full LB zone, mass point  : 1:NRIMX+1,1:NJMAX_ll+ 2 * JPHEXT
     IXOR=1
-    IXEND=KRIMX+1
+    IXEND=KRIMX+JPHEXT  ! +1
     IYOR=1 
     IYEND=IJMAX_ll+ 2 * JPHEXT
   ENDIF
 ELSE
 ! 1 point LB zone : 1:1,1:NJMAX_ll+ 2 * JPHEXT
   IXOR=1
-  IXEND=1
+  IXEND=JPHEXT ! 1
   IYOR=1
   IYEND=IJMAX_ll+ 2 * JPHEXT
 ENDIF
@@ -228,14 +230,14 @@ END IF
 !     
 IF (KRIMX /=0) THEN 
 !  full LB zone : NIMAX_ll+JPHEXT-NRIMX +1:NIMAX_ll+ 2 *JPHEXT,1:NJMAX_ll+2 *JPHEXT
-  IXOR =IIMAX_ll+ 2 * JPHEXT - KRIMX
+  IXOR =IIMAX_ll+ 2 * JPHEXT - KRIMX-JPHEXT +1 ! -KRIMX
   IXEND=IIMAX_ll+ 2 * JPHEXT
   IYOR=1
   IYEND=IJMAX_ll+ 2 * JPHEXT
 ELSE
 !    1 point LB zone : NIMAX_ll+ 2 * JPHEXT:NIMAX_ll+ 2 *JPHEXT,1:NJMAX_ll+2 *JPHEXT
-  IXOR=IIMAX_ll + 2 * JPHEXT 
-  IXEND=IIMAX_ll + 2 * JPHEXT
+  IXOR=IIMAX_ll + 2 * JPHEXT  -JPHEXT +1      ! + 2 * JPHEXT
+  IXEND=IIMAX_ll + 2 * JPHEXT -JPHEXT +JPHEXT ! + 2 * JPHEXT
   IYOR=1
   IYEND=IJMAX_ll+ 2 * JPHEXT
 ENDIF
@@ -251,7 +253,7 @@ IF (IINFO /=1) THEN
     IXOR3DX = TZSPLIT%NXORE
     IYOR3DX = TZSPLIT%NYORE
 !
-    IL3DX = 2*(KRIMX+1)
+    IL3DX = 2*(KRIMX+JPHEXT) ! +1
     
     IF (KIB == 0) KIB = IL3DX - (IIMAX_ll+2*JPHEXT - IXORI - IXOR3DX  +1)
     KIE=IL3DX - (IIMAX_ll + 2 *JPHEXT - IXENDI- IXOR3DX  +1)
@@ -378,20 +380,20 @@ IF (KRIMY /=0) THEN
     IXOR=1
     IXEND=IIMAX_ll+ 2 * JPHEXT
     IYOR=2 
-    IYEND=KRIMY+2
+    IYEND=KRIMY+JPHEXT+1   !+2
   ELSE
 ! full LB zone, mass point  : 1:NIMAX_ll+ 2 * JPHEXT,1:NRIMY+1
     IXOR=1
     IXEND=IIMAX_ll+ 2 * JPHEXT
     IYOR=1 
-    IYEND=KRIMY+1
+    IYEND=KRIMY+JPHEXT  !+1 
   ENDIF
 ELSE
 ! 1 point LB zone : 1:NIMAX_ll+ 2 * JPHEXT,1:1
   IXOR=1
   IXEND=IIMAX_ll+ 2 * JPHEXT
   IYOR=1
-  IYEND=1
+  IYEND=JPHEXT !1
 ENDIF
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,YMODE,IINFO,KIP)
 IF (IINFO /= 1) THEN  ! no empty intersection
@@ -430,14 +432,14 @@ IF (KRIMY /=0) THEN
 !  full LB zone :1:NIMAX_ll+2 *JPHEXT, NJMAX_ll+JPHEXT-NRIMY +1:NJMAX_ll+ 2 *JPHEXT,
   IXOR =1
   IXEND=IIMAX_ll+ 2 * JPHEXT
-  IYOR = IJMAX_ll+ 2 * JPHEXT - KRIMY
+  IYOR = IJMAX_ll+ 2 * JPHEXT -KRIMY-JPHEXT +1 ! - KRIMY
   IYEND=IJMAX_ll+ 2 * JPHEXT
 ELSE
 !    1 point LB zone : 1:NJMAX_ll+2 *JPHEXT,NJMAX_ll+ 2 * JPHEXT:NJMAX_ll+ 2 *JPHEXT
   IXOR=1
   IXEND=IIMAX_ll+ 2 * JPHEXT
-  IYOR=IJMAX_ll + 2 * JPHEXT 
-  IYEND=IJMAX_ll + 2 * JPHEXT
+  IYOR=IJMAX_ll + 2 * JPHEXT  - JPHEXT + 1       ! + 2 * JPHEXT 
+  IYEND=IJMAX_ll + 2 * JPHEXT - JPHEXT + JPHEXT  ! + 2 * JPHEXT 
 ENDIF
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,YMODE,IINFO,KIP)
 IF (IINFO /=1) THEN
@@ -451,7 +453,7 @@ IF (IINFO /=1) THEN
     IXOR3DY = TZSPLIT%NXORE
     IYOR3DY = TZSPLIT%NYORE
 !
-    IL3DY = 2*(KRIMY+1)
+    IL3DY = 2*(KRIMY+JPHEXT ) ! +1
     KIB=IXORI  + IXOR3DY -1
     KIE=IXENDI + IXOR3DY -1
     IF (KJB == 0) KJB = IL3DY - (IJMAX_ll + 2 *JPHEXT - IYORI - IYOR3DY  +1)
diff --git a/src/LIB/SURCOUCHE/src/mode_double_double.f90 b/src/LIB/SURCOUCHE/src/mode_double_double.f90
index 34dd51dd9..8512fb623 100644
--- a/src/LIB/SURCOUCHE/src/mode_double_double.f90
+++ b/src/LIB/SURCOUCHE/src/mode_double_double.f90
@@ -2,6 +2,10 @@
 !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.
+!-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!-----------------------------------------------------------------
 MODULE modd_repro_sum
   TYPE DOUBLE_DOUBLE
      SEQUENCE
@@ -177,56 +181,56 @@ CONTAINS
     ddb%R = 0.0
     ddb%E = 0.0
 
-    ddc(1:nx)%R = dda(1:nx)%R
-    ddc(1:nx)%E = dda(1:nx)%E
-    !
-    ! copie directly the contribution corresponding
-    ! to ddd(i) = dda(i) + 0 when not a power of 2 size
-    !
-    ipas  = 2**(lnxb2-1)
-    ipasm = nx - ipas
-    ddd(ipasm+1:ipas)%R = dda(ipasm+1:ipas)%R
-    ddd(ipasm+1:ipas)%E = dda(ipasm+1:ipas)%E
-    DO j=lnxb2-1,0,-1
-       ! 
-       ! test for nx not power of 2 
-       ! 
-       ipas  = 2**j
-       ipasm = min(ipas,nx-ipas) 
-
-       DO i = 1, ipasm
-          !
-          !   Compute dda + ddb using Knuth's trick.
-          !
-          t1(i) = ddc(i)%R + ddc(i+ipas)%R
-          e(i)  = t1(i) - ddc(i)%R
-          t2(i) = ((ddc(i+ipas)%R - e(i)) + (ddc(i)%R - (t1(i) - e(i)))) &
-               + ddc(i)%E + ddc(i+ipas)%E
-          !
-          !   The result is t1 + t2, after normalization.
-          !
-          ddd(i)%R = t1(i) + t2(i)
-          ddd(i)%E = t2(i) - ((t1(i) + t2(i)) - t1(i)) 
-       ENDDO
-       ddc(1:ipas)%R = ddd(1:ipas)%R
-       ddc(1:ipas)%E = ddd(1:ipas)%E
-    END DO
-    ddb = ddc(1)
+!!$    ddc(1:nx)%R = dda(1:nx)%R
+!!$    ddc(1:nx)%E = dda(1:nx)%E
+!!$    !
+!!$    ! copie directly the contribution corresponding
+!!$    ! to ddd(i) = dda(i) + 0 when not a power of 2 size
+!!$    !
+!!$    ipas  = 2**(lnxb2-1)
+!!$    ipasm = nx - ipas
+!!$    ddd(ipasm+1:ipas)%R = dda(ipasm+1:ipas)%R
+!!$    ddd(ipasm+1:ipas)%E = dda(ipasm+1:ipas)%E
+!!$    DO j=lnxb2-1,0,-1
+!!$       ! 
+!!$       ! test for nx not power of 2 
+!!$       ! 
+!!$       ipas  = 2**j
+!!$       ipasm = min(ipas,nx-ipas) 
+!!$
+!!$       DO i = 1, ipasm
+!!$          !
+!!$          !   Compute dda + ddb using Knuth's trick.
+!!$          !
+!!$          t1(i) = ddc(i)%R + ddc(i+ipas)%R
+!!$          e(i)  = t1(i) - ddc(i)%R
+!!$          t2(i) = ((ddc(i+ipas)%R - e(i)) + (ddc(i)%R - (t1(i) - e(i)))) &
+!!$               + ddc(i)%E + ddc(i+ipas)%E
+!!$          !
+!!$          !   The result is t1 + t2, after normalization.
+!!$          !
+!!$          ddd(i)%R = t1(i) + t2(i)
+!!$          ddd(i)%E = t2(i) - ((t1(i) + t2(i)) - t1(i)) 
+!!$       ENDDO
+!!$       ddc(1:ipas)%R = ddd(1:ipas)%R
+!!$       ddc(1:ipas)%E = ddd(1:ipas)%E
+!!$    END DO
+!!$    ddb = ddc(1)
 
-!!$    DO i = 1, SIZE(dda,1)
-!!$       !
-!!$       !   Compute dda + ddb using Knuth's trick.
-!!$       !
-!!$       t1(i) = dda(i)%R + ddb%R
-!!$       e(i)  = t1(i) - dda(i)%R
-!!$       t2(i) = ((ddb%R - e(i)) + (dda(i)%R - (t1(i) - e(i)))) &
-!!$            + dda(i)%E + ddb%E
-!!$       !
-!!$       !   The result is t1 + t2, after normalization.
-!!$       !
-!!$       ddb%R = t1(i) + t2(i)
-!!$       ddb%E = t2(i) - ((t1(i) + t2(i)) - t1(i)) 
-!!$    ENDDO
+    DO i = 1, SIZE(dda,1)
+       !
+       !   Compute dda + ddb using Knuth's trick.
+       !
+       t1(i) = dda(i)%R + ddb%R
+       e(i)  = t1(i) - dda(i)%R
+       t2(i) = ((ddb%R - e(i)) + (dda(i)%R - (t1(i) - e(i)))) &
+            + dda(i)%E + ddb%E
+       !
+       !   The result is t1 + t2, after normalization.
+       !
+       ddb%R = t1(i) + t2(i)
+       ddb%E = t2(i) - ((t1(i) + t2(i)) - t1(i)) 
+    ENDDO
 
   END FUNCTION SUM_DD_DD1
 
diff --git a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90
index bae778a2d..4f7309ae3 100644
--- a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 !     ########################
@@ -214,6 +216,9 @@
   INTEGER                     :: KINFO       ! return status
 !
   TYPE(LIST_ll), POINTER :: TZFIELD
+!
+  INTEGER                :: ICOUNT
+  CHARACTER*2            :: YCOUNT
 !
 !-------------------------------------------------------------------------------
 !
@@ -235,11 +240,14 @@
 !
    IF (MPPDB_INITIALIZED) THEN
       TZFIELD => TPLIST
+      ICOUNT=0
       DO WHILE (ASSOCIATED(TZFIELD))
+         ICOUNT=ICOUNT+1
+         WRITE(YCOUNT,'(I2)') ICOUNT
          IF (TZFIELD%L2D) THEN
-            CALL MPPDB_CHECK2D(TZFIELD%ARRAY2D,"UPDATE_HALO2_ll",PRECISION)
+            CALL MPPDB_CHECK2D(TZFIELD%ARRAY2D,"UPDATE_HALO2_ll::TAB2D("//YCOUNT//")",PRECISION)
          ELSEIF(TZFIELD%L3D) THEN
-            CALL MPPDB_CHECK3D(TZFIELD%ARRAY3D,"UPDATE_HALO2_ll",PRECISION)
+            CALL MPPDB_CHECK3D(TZFIELD%ARRAY3D,"UPDATE_HALO2_ll::TAB2D("//YCOUNT//")",PRECISION)
          END IF
          TZFIELD => TZFIELD%NEXT
       END DO
diff --git a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
index 67d1be646..7597fca05 100644
--- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 !     ########################
@@ -159,6 +161,9 @@
 !
 !*       0.2   declarations of local variables
   TYPE(LIST_ll), POINTER :: TZFIELD
+!
+  INTEGER                :: ICOUNT
+  CHARACTER*2            :: YCOUNT
 !
 !-------------------------------------------------------------------------------
 !
@@ -178,11 +183,14 @@
 !
   IF (MPPDB_INITIALIZED) THEN
      TZFIELD => TPLIST
+     ICOUNT=0
      DO WHILE (ASSOCIATED(TZFIELD))
+        ICOUNT=ICOUNT+1
+        WRITE(YCOUNT,'(I2)') ICOUNT
         IF (TZFIELD%L2D) THEN
-           CALL MPPDB_CHECK2D(TZFIELD%ARRAY2D,"UPDATE_HALO_ll",PRECISION)
+           CALL MPPDB_CHECK2D(TZFIELD%ARRAY2D,"UPDATE_HALO_ll::TAB2D("//YCOUNT//")",PRECISION)
         ELSEIF(TZFIELD%L3D) THEN
-           CALL MPPDB_CHECK3D(TZFIELD%ARRAY3D,"UPDATE_HALO_ll",PRECISION)
+           CALL MPPDB_CHECK3D(TZFIELD%ARRAY3D,"UPDATE_HALO_ll::TAB3D("//YCOUNT//")",PRECISION)
         END IF
         TZFIELD => TZFIELD%NEXT
      END DO
diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90
index 43d576747..1d3ed8211 100644
--- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90
+++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90
@@ -6,6 +6,7 @@ MODULE MODE_MPPDB
 !
 !       Modifs :
 !!      J.Escobar 23/10/2012: correct CHECK_LB & format print output 
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !
   IMPLICIT NONE
 
@@ -254,13 +255,14 @@ CONTAINS
 
   SUBROUTINE MPPDB_CHECK3D(PTAB,MESSAGE,PRECISION)
 
-    USE MODD_PARAMETERS, ONLY : JPHEXT
+    USE MODD_PARAMETERS_ll, ONLY : JPHEXT
     USE MODI_GATHER_ll
     USE MODD_VAR_ll    , ONLY : MPI_PRECISION
-
+    USE MODD_MPIF      , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE
 
     IMPLICIT NONE
 
+
     REAL, DIMENSION(:,:,:)               :: PTAB
     CHARACTER(len=*)                     :: MESSAGE
     REAL                                 :: PRECISION
@@ -273,15 +275,19 @@ CONTAINS
     INTEGER                              :: IIU,IJU,IIU_ll,IJU_ll,IKU_ll
     INTEGER                              :: IINFO_ll
 
-    INTEGER,PARAMETER                    :: ITAG = 12345
+    INTEGER,PARAMETER                    :: ITAG1  = 12345 , ITAG2 = 123456
 
-    INTEGER                              :: I_FIRST_SON, IRECVSTATUS
+    INTEGER                              :: I_FIRST_SON
     INTEGER                              :: I_FIRST_FATHER
     REAL                                 :: MAX_DIFF , MAX_VAL
     INTEGER                              :: IIB_ll,IIE_ll,IJB_ll,IJE_ll
 
     REAL,POINTER, DIMENSION(:,:,:)   :: TAB_INTERIOR_ll ! for easy debug
 
+    INTEGER                              :: IIU_SON_ll,IJU_SON_ll,IKU_SON_ll
+    INTEGER                              :: IIB_SON_ll,IIE_SON_ll,IJB_SON_ll,IJE_SON_ll
+    INTEGER                              :: IHEXT_SON_ll , IDIFF_HEXT
+
 #ifdef MNH_SP4
     !pas de mpi_spawn sur IBM-SP ni MPI_ARGV_NULL etc ...
     RETURN           
@@ -306,29 +312,51 @@ CONTAINS
           !
           ! I'm the first FATHER => recieve the correct globale ARRAY from first son
           !
-          ALLOCATE(TAB_SON_ll(IIU_ll,IJU_ll,IKU_ll))
           !
           ! the first son , is the next processus after this 'world' so
           !
-          I_FIRST_SON = MPPDB_NBPROC_WORLD
+          I_FIRST_SON = MPPDB_NBPROC_WORLD         
+          !
+          ! recieve JPHEXT from son if different
+          !
+          CALL MPI_RECV(IHEXT_SON_ll,1,MPI_INTEGER,I_FIRST_SON, &
+               ITAG1, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll)
+
+          !IHEXT_SON_ll = JPHEXT
+
+          IIU_SON_ll = IIMAX_ll+2*IHEXT_SON_ll
+          IJU_SON_ll = IJMAX_ll+2*IHEXT_SON_ll
+          IKU_SON_ll = SIZE(PTAB,3)
+    
+          ALLOCATE(TAB_SON_ll(IIU_SON_ll,IJU_SON_ll,IKU_SON_ll))
           !
           CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, &
-               ITAG, MPPDB_INTRA_COMM, IRECVSTATUS, IINFO_ll)
+               ITAG2, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll)
           !
-          TAB_SAVE_ll = TAB_ll
-          TAB_ll      = ABS ( TAB_ll - TAB_SON_ll )
+
           !
+
           IF (MPPDB_CHECK_LB) THEN
-             IIB_ll   = 1      ; IJB_ll = 1 
-             IIE_ll   = IIU_ll ; IJE_ll = IJU_ll
+             IDIFF_HEXT = MIN(JPHEXT,IHEXT_SON_ll)
           ELSE
-             IIB_ll   = 1 + JPHEXT    ; IJB_ll = 1 + JPHEXT
-             IIE_ll   = IIU_ll-JPHEXT ; IJE_ll = IJU_ll-JPHEXT
-          END IF
+             IDIFF_HEXT = 0
+          ENDIF
+          IIB_ll   = 1 + JPHEXT    ; IJB_ll = 1 + JPHEXT
+          IIE_ll   = IIU_ll-JPHEXT ; IJE_ll = IJU_ll-JPHEXT
+          
+          IIB_SON_ll   = 1 + IHEXT_SON_ll    ; IJB_SON_ll = 1 + IHEXT_SON_ll
+          IIE_SON_ll   = IIU_SON_ll-IHEXT_SON_ll ; IJE_SON_ll = IJU_SON_ll-IHEXT_SON_ll
+          !
+          TAB_SAVE_ll = TAB_ll
+          TAB_ll      = 0.0
+          TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll)   &
+            = ABS ( TAB_SAVE_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll) & 
+            -       TAB_SON_ll(IIB_SON_ll-IDIFF_HEXT:IIE_SON_ll+IDIFF_HEXT,IIB_SON_ll-IDIFF_HEXT:IJE_SON_ll+IDIFF_HEXT,1:IKU_SON_ll) )
+
           MAX_VAL  = MAXVAL( ABS (TAB_SON_ll) )
           IF ( MAX_VAL .EQ. 0.0 ) MAX_VAL = 1.0
-          MAX_DIFF = MAXVAL( TAB_ll(IIB_ll:IIE_ll,IIB_ll:IJE_ll,1:IKU_ll) / MAX_VAL)
-          TAB_INTERIOR_ll =>  TAB_ll(IIB_ll:IIE_ll,IIB_ll:IJE_ll,1:IKU_ll)
+          MAX_DIFF = MAXVAL( TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll) / MAX_VAL)
+          TAB_INTERIOR_ll =>  TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll)
           !
           IF (MAX_DIFF > PRECISION ) THEN
              write(6, '(" MPPDB_CHECK3D :: PB MPPDB_CHECK3D =",A40," ERROR=",e15.8," MAXVAL=",e15.8)' ) MESSAGE,MAX_DIFF , MAX_VAL
@@ -358,10 +386,13 @@ CONTAINS
           ! first son --> send the good array to the first father
           !
           I_FIRST_FATHER = 0
+          IHEXT_SON_ll = JPHEXT
+          CALL MPI_BSEND(IHEXT_SON_ll,1,MPI_INTEGER,I_FIRST_FATHER, &
+               ITAG1, MPPDB_INTRA_COMM, IINFO_ll)
+
           CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MPI_PRECISION,I_FIRST_FATHER, &
-               ITAG, MPPDB_INTRA_COMM, IINFO_ll)
-          !CALL MPI_BSEND(PTAB,SIZE(PTAB),MPI_PRECISION,I_FIRST_FATHER, &
-          !     ITAG, MPPDB_INTRA_COMM, IINFO_ll)
+               ITAG2, MPPDB_INTRA_COMM, IINFO_ll)
+ 
        END IF
     END IF
 
@@ -377,7 +408,7 @@ CONTAINS
                            ,PTAB11,PTAB12,PTAB13,PTAB14,PTAB15,PTAB16,PTAB17,PTAB18,PTAB19,PTAB20 &
                            )
 
-    USE MODD_PARAMETERS, ONLY : JPHEXT
+    USE MODD_PARAMETERS_ll, ONLY : JPHEXT
     USE MODI_GATHER_ll
     USE MODD_VAR_ll    , ONLY : MPI_PRECISION
 
@@ -416,10 +447,10 @@ CONTAINS
 
   SUBROUTINE MPPDB_CHECK2D(PTAB,MESSAGE,PRECISION)
 
-    USE MODD_PARAMETERS, ONLY : JPHEXT
+    USE MODD_PARAMETERS_ll, ONLY : JPHEXT
     USE MODI_GATHER_ll
     USE MODD_VAR_ll    , ONLY : MPI_PRECISION
-
+    USE MODD_MPIF      , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE
 
     IMPLICIT NONE
 
@@ -430,20 +461,24 @@ CONTAINS
     !
     ! local var
     !
-    REAL,ALLOCATABLE,TARGET, DIMENSION(:,:)     :: TAB_ll,TAB_SON_ll
+    REAL,ALLOCATABLE,TARGET, DIMENSION(:,:)     :: TAB_ll,TAB_SON_ll,TAB_SAVE_ll
     INTEGER                              :: IIMAX_ll,IJMAX_ll
     INTEGER                              :: IIU,IJU,IIU_ll,IJU_ll
     INTEGER                              :: IINFO_ll
 
     INTEGER,PARAMETER                    :: ITAG = 12345
 
-    INTEGER                              :: I_FIRST_SON, IRECVSTATUS
+    INTEGER                              :: I_FIRST_SON
     INTEGER                              :: I_FIRST_FATHER
     REAL                                 :: MAX_DIFF , MAX_VAL
     INTEGER                              :: IIB_ll,IIE_ll,IJB_ll,IJE_ll
 
     REAL,POINTER, DIMENSION(:,:)   :: TAB_INTERIOR_ll ! for easy debug
 
+    INTEGER                              :: IIU_SON_ll,IJU_SON_ll
+    INTEGER                              :: IIB_SON_ll,IIE_SON_ll,IJB_SON_ll,IJE_SON_ll
+    INTEGER                              :: IHEXT_SON_ll , IDIFF_HEXT
+
 #ifdef MNH_SP4
     !pas de mpi_spawn sur IBM-SP ni MPI_ARGV_NULL etc ...
     RETURN           
@@ -460,34 +495,55 @@ CONTAINS
        IIU_ll = IIMAX_ll+2*JPHEXT
        IJU_ll = IJMAX_ll+2*JPHEXT
        ALLOCATE(TAB_ll(IIU_ll,IJU_ll))
+       ALLOCATE(TAB_SAVE_ll(IIU_ll,IJU_ll))
        CALL GATHERALL_FIELD_ll('XY',PTAB,TAB_ll,IINFO_ll)
 
        IF (MPPDB_IRANK_WORLD.EQ.0) THEN
           !
           ! I'm the first FATHER => recieve the correct globale ARRAY from first son
           !
-          ALLOCATE(TAB_SON_ll(IIU_ll,IJU_ll))
           !
           ! the first son , is the next processus after this 'world' so
           !
           I_FIRST_SON = MPPDB_NBPROC_WORLD
           !
-          CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, &
-               ITAG, MPPDB_INTRA_COMM, IRECVSTATUS, IINFO_ll)
+          ! recieve JPHEXT from son if different
           !
-          TAB_ll = ABS(TAB_ll - TAB_SON_ll)
+          CALL MPI_RECV(IHEXT_SON_ll,1,MPI_INTEGER,I_FIRST_SON, &
+               ITAG, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll)
+
+          IIU_SON_ll = IIMAX_ll+2*IHEXT_SON_ll
+          IJU_SON_ll = IJMAX_ll+2*IHEXT_SON_ll
+          
+          ALLOCATE(TAB_SON_ll(IIU_SON_ll,IJU_SON_ll))
+
+          !
+          CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, &
+               ITAG, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll)
           !
+ 
           IF (MPPDB_CHECK_LB) THEN
-             IIB_ll   = 1      ; IJB_ll = 1 
-             IIE_ll   = IIU_ll ; IJE_ll = IJU_ll
+             IDIFF_HEXT = MIN(JPHEXT,IHEXT_SON_ll)
           ELSE
-             IIB_ll   = 1 + JPHEXT    ; IJB_ll = 1 + JPHEXT
-             IIE_ll   = IIU_ll-JPHEXT ; IJE_ll = IJU_ll-JPHEXT
-          END IF
+             IDIFF_HEXT = 0
+          ENDIF
+
+          IIB_ll   = 1 + JPHEXT    ; IJB_ll = 1 + JPHEXT
+          IIE_ll   = IIU_ll-JPHEXT ; IJE_ll = IJU_ll-JPHEXT
+          IIB_SON_ll   = 1 + IHEXT_SON_ll    ; IJB_SON_ll = 1 + IHEXT_SON_ll
+          IIE_SON_ll   = IIU_SON_ll-IHEXT_SON_ll ; IJE_SON_ll = IJU_SON_ll-IHEXT_SON_ll
+       
+          !
+          TAB_SAVE_ll = TAB_ll
+          TAB_ll      = 0.0
+          TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT)   &
+            = ABS ( TAB_SAVE_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT) & 
+            -       TAB_SON_ll(IIB_SON_ll-IDIFF_HEXT:IIE_SON_ll+IDIFF_HEXT,IIB_SON_ll-IDIFF_HEXT:IJE_SON_ll+IDIFF_HEXT) )         
+
           MAX_VAL  = MAXVAL( ABS (TAB_SON_ll) )
           IF ( MAX_VAL .EQ. 0.0 ) MAX_VAL = 1.0
-          MAX_DIFF = MAXVAL( TAB_ll(IIB_ll:IIE_ll,IIB_ll:IJE_ll) / MAX_VAL )
-          TAB_INTERIOR_ll => TAB_ll(IIB_ll:IIE_ll,IIB_ll:IJE_ll)
+          MAX_DIFF = MAXVAL( TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT) / MAX_VAL )
+          TAB_INTERIOR_ll => TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IIB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT)
           IF (MAX_DIFF > PRECISION ) THEN
              write(6, '(" MPPDB_CHECK2D :: PB MPPDB_CHECK2D =",A40," ERROR=",e15.8," MAXVAL=",e15.8)' ) MESSAGE,MAX_DIFF , MAX_VAL
           ELSE
@@ -516,10 +572,11 @@ CONTAINS
           ! first son --> send the good array to the first father
           !
           I_FIRST_FATHER = 0
+          CALL MPI_BSEND(JPHEXT,1,MPI_INTEGER,I_FIRST_FATHER, &
+               ITAG, MPPDB_INTRA_COMM, IINFO_ll)
           CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MPI_PRECISION,I_FIRST_FATHER, &
                ITAG, MPPDB_INTRA_COMM, IINFO_ll)
-          !CALL MPI_BSEND(PTAB,SIZE(PTAB),MPI_PRECISION,I_FIRST_FATHER, &
-          !     ITAG, MPPDB_INTRA_COMM, IINFO_ll)
+
        END IF
     END IF
 
@@ -534,11 +591,11 @@ CONTAINS
 
   SUBROUTINE MPPDB_CHECKLB(PLB,MESSAGE,PRECISION,HLBTYPE,KRIM)
 
-    USE MODD_PARAMETERS, ONLY : JPHEXT
+    USE MODD_PARAMETERS_ll, ONLY : JPHEXT
     USE MODI_GATHER_ll
     USE MODD_VAR_ll    , ONLY : MPI_PRECISION ,  NMNH_COMM_WORLD
     USE MODD_IO_ll,        ONLY : ISP,ISNPROC,GSMONOPROC,LPACK,L2D
-    USE MODD_MPIF
+    USE MODD_MPIF      , ONLY   : MPI_INTEGER, MPI_STATUS_IGNORE
 
     USE MODE_DISTRIB_LB
     USE MODE_TOOLS_ll,     ONLY : GET_GLOBALDIMS_ll
@@ -562,13 +619,12 @@ CONTAINS
 
     INTEGER,PARAMETER                    :: ITAG = 12345
 
-    INTEGER                              :: I_FIRST_SON, IRECVSTATUS
+    INTEGER                              :: I_FIRST_SON
     INTEGER                              :: I_FIRST_FATHER
     REAL                                 :: MAX_DIFF , MAX_VAL
     INTEGER                              :: IIB_ll,IIE_ll,IJB_ll,IJE_ll
     INTEGER                                  :: JI
     INTEGER :: IIB,IIE,IJB,IJE
-    INTEGER, DIMENSION(MPI_STATUS_SIZE)      :: STATUS
 
 #ifdef MNH_SP4
     !pas de mpi_spawn sur IBM-SP ni MPI_ARGV_NULL etc ...
@@ -600,7 +656,8 @@ CONTAINS
              IF (IIB /= 0) THEN
                 TX3DP=>Z3D(IIB:IIE,IJB:IJE,:)
                 IF (ISP /= JI) THEN
-                   CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_PRECISION,JI-1,99,NMNH_COMM_WORLD,STATUS,IINFO_ll) 
+                   CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_PRECISION,JI-1 &
+                        ,99,NMNH_COMM_WORLD,MPI_STATUS_IGNORE,IINFO_ll) 
                 ELSE
                    CALL GET_DISTRIB_LB(HLBTYPE,JI,'LOC','WRITE',KRIM,IIB,IIE,IJB,IJE)
                    TX3DP = PLB(IIB:IIE,IJB:IJE,:)
@@ -631,7 +688,7 @@ CONTAINS
           I_FIRST_SON = MPPDB_NBPROC_WORLD
           !
           CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MPI_PRECISION,I_FIRST_SON, &
-               ITAG, MPPDB_INTRA_COMM, IRECVSTATUS, IINFO_ll)
+               ITAG, MPPDB_INTRA_COMM,MPI_STATUS_IGNORE, IINFO_ll)
           !
 
           ALLOCATE(TAB_SAVE_ll(SIZE(Z3D,1),SIZE(Z3D,2),SIZE(Z3D,3)))
diff --git a/src/LIB/SURCOUCHE/src/mode_nest_ll.f90 b/src/LIB/SURCOUCHE/src/mode_nest_ll.f90
index 9d2d67859..cb4c8dcae 100644
--- a/src/LIB/SURCOUCHE/src/mode_nest_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_nest_ll.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 !     ###################
@@ -1207,7 +1209,7 @@
   LOGICAL :: LPREM
   INTEGER :: P1,P2
 !JUAN Z_SPLITTING
-
+ INTEGER :: IXSIZE,IYSIZE,IXSIZE_COARSE,IYSIZE_COARSE ! size of child without halo
 !
 !-------------------------------------------------------------------------------
 !
@@ -1244,8 +1246,12 @@
 !
 !        1.3   Dimensions of the child model
 !
-  DIMX = NDXRATIO_ALL(K) * (NXEND_ALL(K)-NXOR_ALL(K) - 1) + 2*JPHEXT
-  DIMY = NDYRATIO_ALL(K) * (NYEND_ALL(K)-NYOR_ALL(K) - 1) + 2*JPHEXT
+  IXSIZE_COARSE=NXEND_ALL(K)-NXOR_ALL(K) -2*JPHEXT +1
+  IYSIZE_COARSE=NYEND_ALL(K)-NYOR_ALL(K) -2*JPHEXT +1
+  IXSIZE = NDXRATIO_ALL(K) * IXSIZE_COARSE
+  IYSIZE = NDYRATIO_ALL(K) * IYSIZE_COARSE
+  DIMX = IXSIZE + 2*JPHEXT
+  DIMY = IYSIZE + 2*JPHEXT
 !JUAN Z_SPLITTING
   DIMZ = NKMAX_ll + 2*JPVEXT
 !JUAN Z_SPLITTING
@@ -1265,7 +1271,7 @@
     !
     ! find the B splitting, dimension without halo for FFT
     !
-    CALL DEF_SPLITTING2(JX_DOMAINS,JY_DOMAINS,DIMX-2*JPHEXT,DIMY-2*JPHEXT,NPROC,LPREM)
+    CALL DEF_SPLITTING2(JX_DOMAINS,JY_DOMAINS,IXSIZE,IYSIZE,NPROC,LPREM)
     !
     P1 = MIN(DIMZ,JX_DOMAINS)
     !JUAN PATCH NESTING DIFFERENT SHAPE
@@ -1287,13 +1293,12 @@
     !
     ! find Z splitting wihout halo in X&Y , with halo in Z
     !
+    CALL SPLIT2(IXSIZE_COARSE,IYSIZE_COARSE, NKMAX_ll, NPROC,TZCOARSE, YSPLITTING,P1,P2)
 
-    CALL SPLIT2(NXEND_ALL(K)-NXOR_ALL(K)-1, NYEND_ALL(K)-NYOR_ALL(K)-1, NKMAX_ll, NPROC,TZCOARSE, YSPLITTING,P1,P2)
-
-    CALL SPLITZ(NXEND_ALL(K)-NXOR_ALL(K)-1,NYEND_ALL(K)-NYOR_ALL(K)-1,DIMZ,NPROC,TZDZP_SXP1_YP2_Z,'P1P2SPLITT', 1 ,P1,P2)
-    CALL SPLITZ(NXEND_ALL(K)-NXOR_ALL(K)-1,NYEND_ALL(K)-NYOR_ALL(K)-1,DIMZ,NPROC,TZDZP_SX_YP2_ZP1,'YSPLITTING', P1,P1,P2)
-    CALL SPLITZ(NXEND_ALL(K)-NXOR_ALL(K)-1,NYEND_ALL(K)-NYOR_ALL(K)-1,DIMZ,NPROC,TZDZP_SXP2_Y_ZP1,'XSPLITTING', P1,P1,P2)
-    CALL SPLITZ(NXEND_ALL(K)-NXOR_ALL(K)-1,NYEND_ALL(K)-NYOR_ALL(K)-1,DIMZ,NPROC,TZDZP_SXP2_YP1_Z,'P2P1SPLITT', 1 ,P1,P2)
+    CALL SPLITZ(IXSIZE_COARSE,IYSIZE_COARSE,DIMZ,NPROC,TZDZP_SXP1_YP2_Z,'P1P2SPLITT', 1 ,P1,P2)
+    CALL SPLITZ(IXSIZE_COARSE,IYSIZE_COARSE,DIMZ,NPROC,TZDZP_SX_YP2_ZP1,'YSPLITTING', P1,P1,P2)
+    CALL SPLITZ(IXSIZE_COARSE,IYSIZE_COARSE,DIMZ,NPROC,TZDZP_SXP2_Y_ZP1,'XSPLITTING', P1,P1,P2)
+    CALL SPLITZ(IXSIZE_COARSE,IYSIZE_COARSE,DIMZ,NPROC,TZDZP_SXP2_YP1_Z,'P2P1SPLITT', 1 ,P1,P2)
 
     CALL COARSE_TO_FINE(TZDZP_SXP1_YP2_Z)
     CALL COARSE_TO_FINE(TZDZP_SX_YP2_ZP1)
@@ -1314,10 +1319,17 @@
   DO J = 1, NPROC
 !
     TZFINE(J)%NUMBER = TZCOARSE(J)%NUMBER
-    TZFINE(J)%NXOR = (TZCOARSE(J)%NXOR - 2) * NDXRATIO_ALL(K) + 2
-    TZFINE(J)%NYOR = (TZCOARSE(J)%NYOR - 2) * NDYRATIO_ALL(K) + 2
-    TZFINE(J)%NXEND = (TZCOARSE(J)%NXEND - 1) * NDXRATIO_ALL(K) + 1
-    TZFINE(J)%NYEND = (TZCOARSE(J)%NYEND - 1) * NDYRATIO_ALL(K) + 1
+
+    TZFINE(J)%NXOR  = (TZCOARSE(J)%NXOR  - JPHEXT -1 ) * NDXRATIO_ALL(K) + JPHEXT +1
+    TZFINE(J)%NYOR  = (TZCOARSE(J)%NYOR  - JPHEXT -1 ) * NDYRATIO_ALL(K) + JPHEXT +1
+    TZFINE(J)%NXEND = (TZCOARSE(J)%NXEND - JPHEXT    ) * NDXRATIO_ALL(K) + JPHEXT
+    TZFINE(J)%NYEND = (TZCOARSE(J)%NYEND - JPHEXT    ) * NDYRATIO_ALL(K) + JPHEXT
+
+!!$    TZFINE(J)%NXOR = (TZCOARSE(J)%NXOR - 2) * NDXRATIO_ALL(K) + 2
+!!$    TZFINE(J)%NYOR = (TZCOARSE(J)%NYOR - 2) * NDYRATIO_ALL(K) + 2
+!!$    TZFINE(J)%NXEND = (TZCOARSE(J)%NXEND - 1) * NDXRATIO_ALL(K) + 1
+!!$    TZFINE(J)%NYEND = (TZCOARSE(J)%NYEND - 1) * NDYRATIO_ALL(K) + 1
+
 !JUAN Z_SPLITTING
     TZFINE(J)%NZOR  = TZCOARSE(J)%NZOR
     TZFINE(J)%NZEND = TZCOARSE(J)%NZEND
@@ -1355,15 +1367,24 @@
   DO J = 1, NPROC
 !
     TZSEND(J)%NUMBER = TZCOARSE(J)%NUMBER
-    TZSEND(J)%NXOR = NXOR_ALL(K) + TZCOARSE(J)%NXOR - 3
-    TZSEND(J)%NYOR = NYOR_ALL(K) + TZCOARSE(J)%NYOR - 3
-    TZSEND(J)%NXEND = NXOR_ALL(K) + TZCOARSE(J)%NXEND + 1
-    TZSEND(J)%NYEND = NYOR_ALL(K) + TZCOARSE(J)%NYEND + 1
+
+    TZSEND(J)%NXOR = NXOR_ALL(K) + TZCOARSE(J)%NXOR    -1  -JPHEXT -1 ! - 3
+    TZSEND(J)%NYOR = NYOR_ALL(K) + TZCOARSE(J)%NYOR    -1  -JPHEXT -1 ! - 3
+    TZSEND(J)%NXEND = NXOR_ALL(K) + TZCOARSE(J)%NXEND  -1  +JPHEXT +1 ! + 1
+    TZSEND(J)%NYEND = NYOR_ALL(K) + TZCOARSE(J)%NYEND  -1  +JPHEXT +1 ! + 1
+!!$
+!!$    TZSEND(J)%NXOR = NXOR_ALL(K) + TZCOARSE(J)%NXOR - 3
+!!$    TZSEND(J)%NYOR = NYOR_ALL(K) + TZCOARSE(J)%NYOR - 3
+!!$    TZSEND(J)%NXEND = NXOR_ALL(K) + TZCOARSE(J)%NXEND + 1
+!!$    TZSEND(J)%NYEND = NYOR_ALL(K) + TZCOARSE(J)%NYEND + 1
 !
   ENDDO
 !
-  TZCHILD_COMDATA%NLSDIMX = TZCOARSE(IP)%NXEND - TZCOARSE(IP)%NXOR + 5
-  TZCHILD_COMDATA%NLSDIMY = TZCOARSE(IP)%NYEND - TZCOARSE(IP)%NYOR + 5
+  TZCHILD_COMDATA%NLSDIMX = TZCOARSE(IP)%NXEND - TZCOARSE(IP)%NXOR + 1 +2*(JPHEXT+1) ! + 5
+  TZCHILD_COMDATA%NLSDIMY = TZCOARSE(IP)%NYEND - TZCOARSE(IP)%NYOR + 1 +2*(JPHEXT+1) ! + 5
+!!$
+!!$  TZCHILD_COMDATA%NLSDIMX = TZCOARSE(IP)%NXEND - TZCOARSE(IP)%NXOR + 5
+!!$  TZCHILD_COMDATA%NLSDIMY = TZCOARSE(IP)%NYEND - TZCOARSE(IP)%NYOR + 5
 !
 !        2.5   TZRECV points of the coarse grid to be received from the child
 !              for each processor
@@ -1643,10 +1664,17 @@ CONTAINS
     DO J = 1, NPROC
        !
        TZ(J)%NUMBER = TZ(J)%NUMBER
-       TZ(J)%NXOR = (TZ(J)%NXOR - 2) * NDXRATIO_ALL(K) + 2
-       TZ(J)%NYOR = (TZ(J)%NYOR - 2) * NDYRATIO_ALL(K) + 2
-       TZ(J)%NXEND = (TZ(J)%NXEND - 1) * NDXRATIO_ALL(K) + 1
-       TZ(J)%NYEND = (TZ(J)%NYEND - 1) * NDYRATIO_ALL(K) + 1
+
+       TZ(J)%NXOR = (TZ(J)%NXOR - JPHEXT -1) * NDXRATIO_ALL(K) + JPHEXT +1 ! -/+2
+       TZ(J)%NYOR = (TZ(J)%NYOR - JPHEXT -1) * NDYRATIO_ALL(K) + JPHEXT +1 ! -/+2
+       TZ(J)%NXEND = (TZ(J)%NXEND - JPHEXT) * NDXRATIO_ALL(K) + JPHEXT       ! -/+1
+       TZ(J)%NYEND = (TZ(J)%NYEND - JPHEXT) * NDYRATIO_ALL(K) + JPHEXT       ! -/+1
+!!$
+!!$       TZ(J)%NXOR = (TZ(J)%NXOR - 2) * NDXRATIO_ALL(K) + 2
+!!$       TZ(J)%NYOR = (TZ(J)%NYOR - 2) * NDYRATIO_ALL(K) + 2
+!!$       TZ(J)%NXEND = (TZ(J)%NXEND - 1) * NDXRATIO_ALL(K) + 1
+!!$       TZ(J)%NYEND = (TZ(J)%NYEND - 1) * NDYRATIO_ALL(K) + 1
+
        !JUAN Z_SPLITTING
        TZ(J)%NZOR  = TZ(J)%NZOR
        TZ(J)%NZEND = TZ(J)%NZEND
diff --git a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90 b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90
index d508d724c..0fb298150 100644
--- a/src/LIB/SURCOUCHE/src/mode_sum_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_sum_ll.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 !     ##################
@@ -2076,6 +2078,175 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll
 !
       END SUBROUTINE SUM_DIM2_ll
 !
+!     #####################################################
+      SUBROUTINE SUM_DIM1_DD_ll(PFIELD, PRES, KDIM, KINFO)
+!     #####################################################
+!
+!!****  *SUM_DIM1_DD_ll*-
+!
+!!    Purpose
+!!    -------
+!     The PFIELD argument is a local 1D array according the y-direction,
+!     result of local summations in x-direction.
+!     The purpose of this routine is to merge all the local sum arrays in a
+!     global one PRES.
+! 
+!!    Method
+!!    ------
+!     Each processor fills its part of PRES array in an intermediate buffer
+!     ZBUF with its local PFIELD, then we reduce the buffer in the result PRES.
+! 
+!!    External
+!!    --------
+!
+!     Module MODE_TOOLS_ll
+!       LEAST_ll, LWEST_ll, LNORTH_ll, LSOUTH_ll
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!     Module MODD_STRUCTURE_ll
+!       type MODELSPLITTING_ll
+!
+!     Module MODD_VAR_ll
+!       TCRRT_COMDATA - Current communication data structure for current model
+!                       and local processor
+!       TCRRT_PROCONF - Current configuration for current model
+!       IP -
+!       MPI_PRECISION -
+!       JPHALO -
+!
+!!    Author
+!!    ------
+!     Ph. Kloos      * CNRM - CERFACS *
+!
+!!    Modifications
+!!    -------------
+!     Original 27/06/98
+!              05/99 : P. Jabouille - N. Gicquel
+!
+!-------------------------------------------------------------------------------
+!
+!*        0.    DECLARATIONS
+!
+  USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll
+!
+  USE MODD_VAR_ll, ONLY : IP, TCRRT_COMDATA, TCRRT_PROCONF, JPHALO, &
+                          MPI_PRECISION
+!
+  USE MODE_TOOLS_ll, ONLY : LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll
+!
+ USE MODE_REPRO_SUM
+!
+!*       0.    DECLARATIONS
+!              ------------
+!
+  IMPLICIT NONE
+!
+!
+!*       0.    DECLARATIONS
+!              ------------
+!
+!
+!*       0.1   Declarations of dummy arguments :
+!
+  REAL, DIMENSION(:,:), INTENT(IN)   :: PFIELD
+  REAL, DIMENSION(:), INTENT(OUT)    :: PRES
+  INTEGER              , INTENT(IN)  :: KDIM
+!
+  INTEGER, INTENT(OUT) :: KINFO ! MPI return status
+!
+!*       0.2   Declarations of local variables :
+!
+  INTEGER :: IXB, IXE, IXBG, IXEG, IJB, IJE, IJBG, IJEG ! local and global displacements
+!
+   TYPE(DOUBLE_DOUBLE), DIMENSION(SIZE(PFIELD,1),SIZE(PFIELD,2)) :: ZBUF
+   TYPE(DOUBLE_DOUBLE), DIMENSION(SIZE(PRES))                    :: ZBUF1D_ll
+!
+  TYPE(MODELSPLITTING_ll), POINTER :: TZSPLIT ! Intermediate model splitting
+!
+  INTEGER :: JI,JJ
+!
+!-----------------------------------------------------------------
+!
+!*       1.    Get the current splitting configuration and compute displacements
+!
+  TZSPLIT => TCRRT_PROCONF%TSPLITS_B(IP)
+!
+  ZBUF%R      = 0.0   ; ZBUF%E      = 0.0
+  ZBUF1D_ll%R = 0.0   ; ZBUF1D_ll%E = 0.0
+!
+  IF (KDIM.EQ.1) THEN
+     IF (LSOUTH_ll()) THEN
+        IJB  = 1
+        IJBG = TZSPLIT%NYORE
+     ELSE
+        IJB  = 1+JPHALO
+        IJBG = TZSPLIT%NYORP
+     ENDIF
+!
+     IF (LNORTH_ll()) THEN
+        IJE  = SIZE(PFIELD, 2)
+        IJEG = TZSPLIT%NYENDE
+     ELSE
+        IJE  = SIZE(PFIELD, 2)-JPHALO
+        IJEG = TZSPLIT%NYENDP
+     ENDIF
+!
+!-----------------------------------------------------------------
+!
+!*       2.    Fill the intermediate buffer
+!
+     ZBUF(:,IJB:IJE)%R = PFIELD(:,IJB:IJE)
+     DO JJ=IJBG,IJEG
+        ZBUF1D_ll(JJ) = SUM_DD_DD1 (ZBUF(:,JJ-IJBG+IJB))
+     END DO
+!
+!-----------------------------------------------------------------
+!
+!*       3.    Merge local sums
+!
+    CALL  REDUCE_SUM_1DD_ll(ZBUF1D_ll, KINFO)
+    PRES = ZBUF1D_ll%R
+!
+!-----------------------------------------------------------------
+  ELSE
+     IF (KDIM.EQ.2) THEN
+        IF (LWEST_ll()) THEN
+           IXB  = 1
+           IXBG = TZSPLIT%NXORE
+        ELSE
+           IXB  = 1+JPHALO
+           IXBG = TZSPLIT%NXORP
+        ENDIF
+!
+        IF (LEAST_ll()) THEN
+           IXE  = SIZE(PFIELD, 1)
+           IXEG = TZSPLIT%NXENDE
+        ELSE
+           IXE  = SIZE(PFIELD, 1)-JPHALO
+           IXEG = TZSPLIT%NXENDP
+        ENDIF
+!
+!-----------------------------------------------------------------
+!
+!*       2.    Fill the intermediate buffer
+!
+        ZBUF(IXB:IXE,:)%R = PFIELD(IXB:IXE,:)
+        DO JI=IXBG,IXEG
+           ZBUF1D_ll(JI) = SUM_DD_DD1 (ZBUF(JI-IXBG+IXB,:))
+        END DO
+!
+!-----------------------------------------------------------------
+!
+!*       2.    Merge local sums
+!
+        CALL  REDUCE_SUM_1DD_ll(ZBUF1D_ll, KINFO)     
+        PRES = ZBUF1D_ll%R
+     ENDIF
+  ENDIF
+  
+      END SUBROUTINE SUM_DIM1_DD_ll
 !     #####################################################
       SUBROUTINE SUM_DIM1_ll(PFIELD, PRES, KINFO)
 !     #####################################################
@@ -2294,7 +2465,8 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZSUM_ll
 !           ------------------------------
 !
   IF (FIRST_CALL_DD) CALL INIT_DD(KINFO)
-  CALL MPI_ALLREDUCE(PRES%R, ZRES%R, 1, MNH_DOUBLE_DOUBLE , &
+  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
@@ -2410,7 +2582,8 @@ END SUBROUTINE REDUCE_SUM_0DD_ll
 !           ------------------------------
 !
   IF (FIRST_CALL_DD) CALL INIT_DD(KINFO)
-  CALL MPI_ALLREDUCE(PRES%R, ZRES%R, SIZE(PRES), MNH_DOUBLE_DOUBLE , &
+  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
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
index b606fd4ab..441b52543 100644
--- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
@@ -10,6 +10,8 @@
 ! $Revision$ 
 ! $Date$
 !-----------------------------------------------------------------
+!Correction :
+!  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-----------------------------------------------------------------
 
 !     ####################
@@ -777,6 +779,8 @@
                           NXOR_ALL, NYOR_ALL,         &
                           NXEND_ALL, NYEND_ALL
   USE MODD_VAR_ll, ONLY : TCRRT_PROCONF
+
+  USE MODD_PARAMETERS_ll, ONLY : JPHEXT
 !
   IMPLICIT NONE
 !
@@ -797,8 +801,8 @@
 !
 !*       2.    Compute the dimensions of the model
 !
-  KIMAX = NDXRATIO_ALL(IMODEL) * (NXEND_ALL(IMODEL)-NXOR_ALL(IMODEL) - 1)
-  KJMAX = NDYRATIO_ALL(IMODEL) * (NYEND_ALL(IMODEL)-NYOR_ALL(IMODEL) - 1)
+  KIMAX = NDXRATIO_ALL(IMODEL) * (NXEND_ALL(IMODEL)-NXOR_ALL(IMODEL) -2*JPHEXT + 1)
+  KJMAX = NDYRATIO_ALL(IMODEL) * (NYEND_ALL(IMODEL)-NYOR_ALL(IMODEL) -2*JPHEXT + 1)
 !
 !-------------------------------------------------------------------------------
 !
@@ -1843,10 +1847,10 @@
 !
 !*       1.1   Get current splitting
 !
-  IF (LWEST_ll())  IWEST=-1
-  IF (LEAST_ll())  IEAST=1
-  IF (LNORTH_ll()) INORTH=1
-  IF (LSOUTH_ll()) ISOUTH=-1
+  IF (LWEST_ll())  IWEST=-JPHEXT      ! -1
+  IF (LEAST_ll())  IEAST=JPHEXT       ! 1
+  IF (LNORTH_ll()) INORTH=JPHEXT      ! 1
+  IF (LSOUTH_ll()) ISOUTH=-JPHEXT     ! -1
   TZSPLIT => TCRRT_PROCONF%TSPLITS_B(IP)
   IOR(1)  = TZSPLIT%NXORP+IWEST
   IOR(2)  = TZSPLIT%NYORP+ISOUTH 
diff --git a/src/MNH/adv_boundaries.f90 b/src/MNH/adv_boundaries.f90
index d2553bea9..63f9001a7 100644
--- a/src/MNH/adv_boundaries.f90
+++ b/src/MNH/adv_boundaries.f90
@@ -32,8 +32,9 @@ END MODULE MODI_ADV_BOUNDARIES
 !!
 !!    AUTHOR
 !!    ------
-!!	
 !!
+!! Correction :	
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -58,11 +59,13 @@ CHARACTER(LEN=1),         INTENT(IN), OPTIONAL  :: HFIELD  ! Field type
 INTEGER             :: IKB       ! indice K Beginning in z direction
 INTEGER             :: IKE       ! indice K End       in z direction 
 INTEGER             :: IIU, IJU  ! Index End in X and Y directions
+INTEGER             :: IIB,IIE,IJB,IJE ! interior domaine bound
 !
 !-------------------------------------------------------------------------------
 !
 !*       1.    COMPUTE DIMENSIONS OF ARRAYS AND OTHER INDICES:
 !              ----------------------------------------------
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PFIELD,3) - JPVEXT
 IIU=SIZE(PFIELD,1)
@@ -95,24 +98,24 @@ IF (SIZE(PFIELD)==0) RETURN
 !
 IF( PRESENT(PFIELDI) )  THEN
   IF (HLBCX(1)=='OPEN' .AND. LWEST_ll()) THEN
-     PFIELD(1,:,:) = PFIELDI(1,:,:)
+     PFIELD(:IIB-1,:,:) = PFIELDI(:IIB-1,:,:) ! 1
      IF (PRESENT(HFIELD)) THEN
        IF (HFIELD=='U') &
-       PFIELD(2,:,:) = PFIELDI(2,:,:)
+       PFIELD(:IIB,:,:) = PFIELDI(:IIB,:,:)   ! 2
      END IF
   END IF
   IF (HLBCX(2)=='OPEN' .AND. LEAST_ll()) THEN
-     PFIELD(IIU,:,:) = PFIELDI(IIU,:,:)
+     PFIELD(IIE+1:,:,:) = PFIELDI(IIE+1:,:,:) ! IIU
   END IF
   IF (HLBCY(1)=='OPEN' .AND. LSOUTH_ll()) THEN
-     PFIELD(:,1,:) = PFIELDI(:,1,:)
+     PFIELD(:,:IJB-1,:) = PFIELDI(:,:IJB-1,:) ! 1
      IF (PRESENT(HFIELD)) THEN
        IF (HFIELD=='V') &
-       PFIELD(:,2,:) = PFIELDI(:,2,:)
+       PFIELD(:,:IJB,:) = PFIELDI(:,:IJB,:) ! 2
      END IF
   END IF
   IF (HLBCY(2)=='OPEN' .AND. LNORTH_ll()) THEN
-     PFIELD(:,IJU,:) = PFIELDI(:,IJU,:)
+     PFIELD(:,IJE+1:,:) = PFIELDI(:,IJE+1:,:) ! IJU
   END IF
 END IF
 !
diff --git a/src/MNH/advec_3rd_order_aux.f90 b/src/MNH/advec_3rd_order_aux.f90
index 1be4845b8..f74f3eb83 100644
--- a/src/MNH/advec_3rd_order_aux.f90
+++ b/src/MNH/advec_3rd_order_aux.f90
@@ -5,6 +5,12 @@
 !     ###############################
       MODULE MODI_ADVEC_3RD_ORDER_AUX
 !     ###############################
+!!    AUTHOR
+!!    ------
+!!
+!! Correction :	
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!-------------------------------------------------------------------------------
 !
 INTERFACE
 !
@@ -183,16 +189,16 @@ SELECT CASE ( HLBCX(1) ) ! X direction LBC type: (1) for left side
 !
 CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     IW=IIB+1
     IE=IIE
-  ELSE
-    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
-    WRITE(ILUOUT,*) 'ERROR : 3rd order advection in CYCLic case '
-    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
-    CALL ABORT
-    STOP
-  END IF  
+!!$  ELSE
+!!$    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
+!!$    WRITE(ILUOUT,*) 'ERROR : 3rd order advection in CYCLic case '
+!!$    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
+!!$    CALL ABORT
+!!$    STOP
+!!$  END IF  
 !
   IWF=IW-1
   IEF=IE-1
@@ -221,13 +227,14 @@ CASE ('OPEN','WALL','NEST')
   IF (LWEST_ll()) THEN
       IW=IIB+2          ! special case of C grid
   ELSE
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IW=IIB+1
-    ELSE
-      IW=IIB
-    ENDIF
+!!$    ELSE
+!!$      IW=IIB
+!!$    ENDIF
   ENDIF
-  IF (LEAST_ll() .OR. NHALO == 1) THEN
+!!$  IF (LEAST_ll() .OR. NHALO == 1) THEN
+  IF (LEAST_ll()) THEN
     IE=IIE
   ELSE
     IE=IIE
@@ -239,7 +246,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LWEST_ll()) THEN
     PR(IWF-1,:,:) = PSRC(IW-2,:,:) * (0.5+SIGN(0.5,PRUCT(IW-2,:,:))) &
                   + PSRC(IW-1,:,:) * (0.5-SIGN(0.5,PRUCT(IW-2,:,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(IWF-1,:,:) = 1./6. * ( (2.*PSRC(IW-1,:,:) + 5.*PSRC(IW-2,:,:) -         &
                           TPHALO2%WEST(:,:)) * (0.5+SIGN(0.5,PRUCT(IW-2,:,:))) &
                           + (5.*PSRC(IW-1,:,:) + 2.*PSRC(IW-2,:,:) -           &
@@ -249,7 +257,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LEAST_ll()) THEN
     PR(IEF+1,:,:) = PSRC(IE,:,:)   * (0.5+SIGN(0.5,PRUCT(IE,:,:))) &
                   + PSRC(IE+1,:,:) * (0.5-SIGN(0.5,PRUCT(IE,:,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(IEF+1,:,:) = 1./6. * ( (2.*PSRC(IE+1,:,:) + 5.*PSRC(IE,:,:) -           &
                                PSRC(IE-1,:,:)) * (0.5+SIGN(0.5,PRUCT(IE,:,:))) &
                           + (5.*PSRC(IE+1,:,:) + 2.*PSRC(IE,:,:) -             &
@@ -336,16 +345,16 @@ SELECT CASE ( HLBCX(1) ) ! X direction LBC type: (1) for left side
 !
 CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     IW=IIB+1
     IE=IIE
-  ELSE
-    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
-    WRITE(ILUOUT,*) 'ERROR : 3rd order advection in CYCLic case '
-    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
-    CALL ABORT
-    STOP
-  END IF  
+!!$  ELSE
+!!$    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
+!!$    WRITE(ILUOUT,*) 'ERROR : 3rd order advection in CYCLic case '
+!!$    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
+!!$    CALL ABORT
+!!$    STOP
+!!$  END IF  
 !
   IWF=IW
   IEF=IE
@@ -374,13 +383,14 @@ CASE ('OPEN','WALL','NEST')
   IF (LWEST_ll()) THEN
     IW=IIB+1
   ELSE
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IW=IIB+1
-    ELSE
-      IW=IIB
-    ENDIF
+!!$    ELSE
+!!$      IW=IIB
+!!$    ENDIF
   ENDIF
-  IF (LEAST_ll() .OR. NHALO == 1) THEN
+!!$  IF (LEAST_ll() .OR. NHALO == 1) THEN
+  IF (LEAST_ll()) THEN
     IE=IIE
   ELSE
     IE=IIE
@@ -392,7 +402,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LWEST_ll()) THEN
     PR(IWF-1,:,:) = PSRC(IW-2,:,:) * (0.5+SIGN(0.5,PRUCT(IW-1,:,:))) &
                   + PSRC(IW-1,:,:) * (0.5-SIGN(0.5,PRUCT(IW-1,:,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(IWF-1,:,:) = 1./6. * ( (2.*PSRC(IW-1,:,:) + 5.*PSRC(IW-2,:,:) -         &
                           TPHALO2%WEST(:,:)) * (0.5+SIGN(0.5,PRUCT(IW-1,:,:))) &
                           + (5.*PSRC(IW-1,:,:) + 2.*PSRC(IW-2,:,:) -           &
@@ -402,7 +413,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LEAST_ll()) THEN
     PR(IEF+1,:,:) = PSRC(IE,:,:)   * (0.5+SIGN(0.5,PRUCT(IE+1,:,:))) &
                   + PSRC(IE+1,:,:) * (0.5-SIGN(0.5,PRUCT(IE+1,:,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(IEF+1,:,:) = 1./6. * ( (2.*PSRC(IE+1,:,:) + 5.*PSRC(IE,:,:) -           &
                              PSRC(IE-1,:,:)) * (0.5+SIGN(0.5,PRUCT(IE+1,:,:))) &
                           + (5.*PSRC(IE+1,:,:) + 2.*PSRC(IE,:,:) -             &
@@ -488,16 +500,16 @@ SELECT CASE ( HLBCY(1) ) !
 !
 CASE ('CYCL')          ! In that case one must have HLBCY(1) == HLBCY(2)
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     IS=IJB+1
     IN=IJE
-  ELSE
-    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
-    WRITE(ILUOUT,*) 'ERROR : 4th order advection in CYCLic case '
-    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
-    CALL ABORT
-    STOP
-  END IF
+!!$  ELSE
+!!$    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
+!!$    WRITE(ILUOUT,*) 'ERROR : 4th order advection in CYCLic case '
+!!$    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
+!!$    CALL ABORT
+!!$    STOP
+!!$  END IF
 !
   ISF=IS-1
   INF=IN-1
@@ -526,13 +538,14 @@ CASE ('OPEN','WALL','NEST')
   IF (LSOUTH_ll()) THEN
     IS=IJB+2
   ELSE
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IS=IJB+1
-    ELSE
-      IS=IJB
-    ENDIF
+!!$    ELSE
+!!$      IS=IJB
+!!$    ENDIF
   ENDIF
-  IF (LNORTH_ll() .OR. NHALO == 1) THEN
+!!$  IF (LNORTH_ll() .OR. NHALO == 1) THEN
+  IF (LNORTH_ll()) THEN
     IN=IJE
   ELSE
     IN=IJE
@@ -544,7 +557,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LSOUTH_ll()) THEN
     PR(:,ISF-1,:) = PSRC(:,IS-2,:) * (0.5+SIGN(0.5,PRVCT(:,IS-2,:))) &
                   + PSRC(:,IS-1,:) * (0.5-SIGN(0.5,PRVCT(:,IS-2,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(:,ISF-1,:) = 1./6. * ( (2.*PSRC(:,IS-1,:) + 5.*PSRC(:,IS-2,:) -         &
                          TPHALO2%SOUTH(:,:)) * (0.5+SIGN(0.5,PRVCT(:,IS-2,:))) &
                           + (5.*PSRC(:,IS-1,:) + 2.*PSRC(:,IS-2,:) -           &
@@ -554,7 +568,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LNORTH_ll()) THEN
     PR(:,INF+1,:) = PSRC(:,IN,:)   * (0.5+SIGN(0.5,PRVCT(:,IN,:))) &
                   + PSRC(:,IN+1,:) * (0.5-SIGN(0.5,PRVCT(:,IN,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(:,INF+1,:) = 1./6. * ( (2.*PSRC(:,IN+1,:) + 5.*PSRC(:,IN,:) -           &
                                PSRC(:,IN-1,:)) * (0.5+SIGN(0.5,PRVCT(:,IN,:))) &
                           + (5.*PSRC(:,IN+1,:) + 2.*PSRC(:,IN,:) -             &
@@ -641,16 +656,16 @@ SELECT CASE ( HLBCY(1) ) ! Y direction LBC type: (1) for left side
 !
 CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     IS=IJB+1
     IN=IJE
-  ELSE
-    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
-    WRITE(ILUOUT,*) 'ERROR : 4th order advection in CYCLic case '
-    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
-    CALL ABORT
-    STOP
-  END IF
+!!$  ELSE
+!!$    CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP)
+!!$    WRITE(ILUOUT,*) 'ERROR : 4th order advection in CYCLic case '
+!!$    WRITE(ILUOUT,*) 'cannot be used with NHALO=2'
+!!$    CALL ABORT
+!!$    STOP
+!!$  END IF
 !
   ISF=IS
   INF=IN
@@ -679,13 +694,14 @@ CASE ('OPEN','WALL','NEST')
   IF (LSOUTH_ll()) THEN
     IS=IJB+1
   ELSE
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IS=IJB+1
-    ELSE
-      IS=IJB
-    ENDIF
+!!$    ELSE
+!!$      IS=IJB
+!!$    ENDIF
   ENDIF
-  IF (LNORTH_ll() .OR. NHALO == 1) THEN
+!!$  IF (LNORTH_ll() .OR. NHALO == 1) THEN
+  IF (LNORTH_ll()) THEN
     IN=IJE
   ELSE
     IN=IJE
@@ -697,7 +713,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LSOUTH_ll()) THEN
     PR(:,ISF-1,:) = PSRC(:,IS-2,:) * (0.5+SIGN(0.5,PRVCT(:,IS-1,:))) &
                   + PSRC(:,IS-1,:) * (0.5-SIGN(0.5,PRVCT(:,IS-1,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(:,ISF-1,:) = 1./6. * ( (2.*PSRC(:,IS-1,:) + 5.*PSRC(:,IS-2,:) -         &
                          TPHALO2%SOUTH(:,:)) * (0.5+SIGN(0.5,PRVCT(:,IS-1,:))) &
                           + (5.*PSRC(:,IS-1,:) + 2.*PSRC(:,IS-2,:) -           &
@@ -707,7 +724,8 @@ CASE ('OPEN','WALL','NEST')
   IF(LNORTH_ll()) THEN
     PR(:,INF+1,:) = PSRC(:,IN,:)   * (0.5+SIGN(0.5,PRVCT(:,IN+1,:))) &
                   + PSRC(:,IN+1,:) * (0.5-SIGN(0.5,PRVCT(:,IN+1,:)))
-  ELSEIF (NHALO == 1) THEN
+!!$  ELSEIF (NHALO == 1) THEN
+  ELSE
     PR(:,INF+1,:) = 1./6. * ( (2.*PSRC(:,IN+1,:) + 5.*PSRC(:,IN,:) -           &
                              PSRC(:,IN-1,:)) * (0.5+SIGN(0.5,PRVCT(:,IN+1,:))) &
                           + (5.*PSRC(:,IN+1,:) + 2.*PSRC(:,IN,:) -             &
diff --git a/src/MNH/advecmet_4th.f90 b/src/MNH/advecmet_4th.f90
index 892d14670..b708b8cf0 100644
--- a/src/MNH/advecmet_4th.f90
+++ b/src/MNH/advecmet_4th.f90
@@ -150,6 +150,9 @@ END MODULE MODI_ADVECMET_4TH
 !!    -------------
 !!      Original   25/10/05
 !!
+!! Correction :	
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -222,13 +225,13 @@ IKU=SIZE(XZHAT)
 !
 IGRID = 1
 !
-IF (NHALO == 1) THEN
+!!$IF (NHALO == 1) THEN
    TZHALO2LIST => TPHALO2LIST
    CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PTHT, IGRID, ZMEANX, ZMEANY, &
                              TZHALO2LIST%HALO2 )
-ELSE
-   CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PTHT, IGRID, ZMEANX, ZMEANY)
-ENDIF
+!!$ELSE
+!!$   CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PTHT, IGRID, ZMEANX, ZMEANY)
+!!$ENDIF
 !
 ! Thermodynamical variable
 !
@@ -247,13 +250,13 @@ IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH')
 ! Turbulence variables
 !
 IF ( GTKEALLOC ) THEN
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     TZHALO2LIST => TZHALO2LIST%NEXT
     CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PTKET, IGRID, &
                             ZMEANX, ZMEANY, TPHALO2=TZHALO2LIST%HALO2)
-  ELSE
-    CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PTKET, IGRID, ZMEANX, ZMEANY)
-  ENDIF
+!!$  ELSE
+!!$    CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PTKET, IGRID, ZMEANX, ZMEANY)
+!!$  ENDIF
 !
   PRTKES(:,:,:) = PRTKES(:,:,:) 	            &
                  -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) ) 
@@ -272,13 +275,13 @@ ENDIF
 ! Case with KRR moist variables
 !
 DO JRR=1, KRR
-  IF(NHALO == 1) THEN 
+!!$  IF(NHALO == 1) THEN 
     TZHALO2LIST => TZHALO2LIST%NEXT
     CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PRT(:,:,:,JRR), IGRID, &
                               ZMEANX, ZMEANY,TPHALO2=TZHALO2LIST%HALO2 )
-  ELSE
-    CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PRT(:,:,:,JRR), IGRID, ZMEANX, ZMEANY)
-  ENDIF
+!!$  ELSE
+!!$    CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PRT(:,:,:,JRR), IGRID, ZMEANX, ZMEANY)
+!!$  ENDIF
 !
   PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR)                            &
                      -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) ) 
diff --git a/src/MNH/advecscalar_4th.f90 b/src/MNH/advecscalar_4th.f90
index a270b9208..1cf233594 100644
--- a/src/MNH/advecscalar_4th.f90
+++ b/src/MNH/advecscalar_4th.f90
@@ -109,6 +109,9 @@ END MODULE MODI_ADVECSCALAR_4TH
 !!    -------------
 !!      Original   25/10/05
 !!
+!! Correction :	
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -180,13 +183,13 @@ IGRID = 1
 !
 DO JSV=1,KSV
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
      TZHALO2LIST => TPHALO2LIST     
      CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PSVT(:,:,:,JSV), IGRID, &
                                ZMEANX, ZMEANY,TZHALO2LIST%HALO2 )
-  ELSE
-     CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PSVT(:,:,:,JSV), IGRID, ZMEANX, ZMEANY)
-  ENDIF
+!!$  ELSE
+!!$     CALL ADVEC_4TH_ORDER_ALGO(HLBCX, HLBCY, PSVT(:,:,:,JSV), IGRID, ZMEANX, ZMEANY)
+!!$  ENDIF
 !
   PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV)                            &
                     -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) )
diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 852336654..01f9a90dd 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -125,7 +125,8 @@ END MODULE MODI_ADVECTION_METSV
 !!                  04/2014  (C.Lac)                 adaptation of time
 !!                                                   splitting for L1D and L2D
 !!                  09/2014  (G.Delautier)              close OUTPUT_LISTING before STOP
-!!                  04/2015  (J.Escoabar) remove/commente some NHALO=1 test
+!!                  04/2015  (J.Escobar) remove/commente some NHALO=1 test
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -248,11 +249,13 @@ CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
 CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
 INTEGER             :: ILUOUT       ! logical unit
 INTEGER             :: ISPLIT_PPM   ! temporal time splitting 
+INTEGER         :: IIB, IIE, IJB, IJE
 !-------------------------------------------------------------------------------
 !
 !*       0.     INITIALIZATION                        
 !	        --------------
 !
+CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 !
 GTKE=(SIZE(PTKET)/=0)
 !
@@ -273,9 +276,10 @@ END IF
 !*       2.2 computes CFL numbers
 !
 IF (.NOT. L1D) THEN
-  ZCFLU = ABS(ZRUCPPM * PTSTEP)
-  ZCFLV = ABS(ZRVCPPM * PTSTEP)
-  ZCFLW = ABS(ZRWCPPM * PTSTEP)
+  ZCFLU = 0.0 ; ZCFLV = 0.0 ;  ZCFLW = 0.0
+  ZCFLU(IIB:IIE,IJB:IJE,:) = ABS(ZRUCPPM(IIB:IIE,IJB:IJE,:) * PTSTEP)
+  ZCFLV(IIB:IIE,IJB:IJE,:) = ABS(ZRVCPPM(IIB:IIE,IJB:IJE,:) * PTSTEP)
+  ZCFLW(IIB:IIE,IJB:IJE,:) = ABS(ZRWCPPM(IIB:IIE,IJB:IJE,:) * PTSTEP)
   IF (.NOT. L2D) THEN
     ZCFL  = SQRT(ZCFLU**2+ZCFLV**2+ZCFLW**2)
   ELSE
diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90
index 845038e19..cc947f197 100644
--- a/src/MNH/advection_uvw.f90
+++ b/src/MNH/advection_uvw.f90
@@ -89,6 +89,7 @@ END MODULE MODI_ADVECTION_UVW
 !!                  04/2011  (V. Masson & C. Lac)    splits the routine and adds
 !!                                                   time splitting
 !!                  J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -100,6 +101,7 @@ USE MODD_ARGSLIST_ll, ONLY : LIST_ll, HALO2LIST_ll
 USE MODD_PARAMETERS,  ONLY : JPVEXT
 USE MODD_CONF,        ONLY : NHALO
 USE MODD_BUDGET
+USE MODD_BLANK,       ONLY : NDUMMY1
 !
 USE MODI_SHUMAN
 USE MODI_CONTRAV
@@ -254,8 +256,8 @@ NULLIFY(TZFIELDS0_ll)
 !
 !-------------------------------------------------------------------------------
 !
-ISPLIT = 2 * KSPLIT_PPM
-ZTSTEP     = PTSTEP / REAL(ISPLIT)
+ISPLIT = 1 + NDUMMY1
+ZTSTEP = PTSTEP / REAL(ISPLIT)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90
index df64c1fd1..9e9dfe35d 100644
--- a/src/MNH/advecuvw_rk.f90
+++ b/src/MNH/advecuvw_rk.f90
@@ -31,8 +31,7 @@ REAL,                     INTENT(IN)    :: PTSTEP
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PU , PV  , PW
                                                   ! Variables to advect
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PUT, PVT , PWT
-                                                  ! Variables for boundary
-                                                  ! conditions
+                                                  ! Variables at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PMXM_RHODJ
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PMYM_RHODJ
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PMZM_RHODJ
@@ -101,6 +100,7 @@ END MODULE MODI_ADVECUVW_RK
 !!                  04/2011  (V. Masson & C. Lac)    splits the routine and adds
 !!                                                   time splitting
 !!                  J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -116,6 +116,7 @@ USE MODI_SHUMAN
 USE MODI_ADVECUVW_WENO_K
 USE MODI_ADV_BOUNDARIES
 USE MODI_GET_HALO
+USE MODE_MPPDB
 !
 !-------------------------------------------------------------------------------
 !
@@ -136,8 +137,7 @@ REAL,                     INTENT(IN)    :: PTSTEP
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PU , PV  , PW
                                                   ! Variables to advect
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PUT, PVT , PWT
-                                                  ! Variables for boundary
-                                                  ! conditions
+                                                  ! Variables at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PMXM_RHODJ
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PMYM_RHODJ
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PMZM_RHODJ
@@ -203,35 +203,111 @@ SELECT CASE (HTEMP_SCHEME)
   ISPL = 1
  CASE('RK21')
   ISPL = 2
+ CASE('NP32')
+  ISPL = 3
+ CASE('SP32')
+  ISPL = 3
  CASE('RK33')
   ISPL = 3
+ CASE('RKC4')
+  ISPL = 4
+ CASE('RK4B')
+  ISPL = 4
  CASE('RK53')
   ISPL = 5
+ CASE('RK62')
+  ISPL = 6
+ CASE('RK65')
+  ISPL = 6
 END SELECT
 !
 !
 ALLOCATE(ZBUT(ISPL-1,ISPL-1))
 ALLOCATE(ZBUTS(ISPL))
 !
-IF (ISPL == 1 ) ZBUTS = (/ 1. /)
-IF (ISPL == 2 ) THEN
-   ZBUTS     = (/ 0. , 1. /)
-   ZBUT(1,1)   = 3./4.
-END IF
-IF (ISPL == 3 ) THEN
-   ZBUTS     = (/ 1./6. , 1./6. , 2./3. /)
-   ZBUT(1,1) = 1.
-   ZBUT(1,2) = 0.
-   ZBUT(2,:) = 1./4.
-END IF
-IF (ISPL == 5 ) THEN
-   ZBUTS     = (/ 1./4. , 0., 0., 0., 3./4. /)
-   ZBUT      = 0.
-   ZBUT(1,1) = 1./7.
-   ZBUT(2,2) = 3./16.
-   ZBUT(3,3) = 1./3.
-   ZBUT(4,4) = 2./3.
-END IF
+SELECT CASE (HTEMP_SCHEME)
+  CASE('RK11')
+    ZBUTS = (/ 1. /)
+  CASE('RK21')
+    ZBUTS     = (/ 0. , 1. /)
+    ZBUT(1,1)   = 3./4.
+  CASE('RK33')
+    ZBUTS     = (/ 1./6. , 1./6. , 2./3. /)
+    ZBUT(1,1) = 1.
+    ZBUT(1,2) = 0.
+    ZBUT(2,1) = 1./4.
+    ZBUT(2,2) = 1./4.
+  CASE('NP32')
+    ZBUTS     = (/ 1./2. , 0., 1./2. /)
+    ZBUT(1,1) = 1./3.
+    ZBUT(1,2) = 0.
+    ZBUT(2,1) = 0.
+    ZBUT(2,2) = 1.
+  CASE('SP32')
+    ZBUTS     = (/ 1./3. , 1./3. , 1./3. /)
+    ZBUT(1,1) = 1./2.
+    ZBUT(1,2) = 0.
+    ZBUT(2,1) = 1./2.
+    ZBUT(2,2) = 1./2.
+  CASE('RKC4')
+    ZBUTS     = (/ 1./6. , 1./3. , 1./3. , 1./6./)
+    ZBUT      = 0.
+    ZBUT(1,1) = 1./2.
+    ZBUT(2,2) = 1./2.
+    ZBUT(3,3) = 1.
+  CASE('RK4B')
+    ZBUTS     = (/ 1./8. , 3./8. , 3./8. , 1./8./)
+    ZBUT      = 0.
+    ZBUT(1,1) = 1./3.
+    ZBUT(2,1) = -1./3.
+    ZBUT(2,2) = 1.
+    ZBUT(3,1) = 1.
+    ZBUT(3,2) = -1.
+    ZBUT(3,3) = 1.
+  CASE('RK53')
+    ZBUTS     = (/ 1./4. , 0. , 0. , 0. , 3./4. /)
+    ZBUT      = 0.
+    ZBUT(1,1) = 1./7.
+    ZBUT(2,2) = 3./16.
+    ZBUT(3,3) = 1./3.
+    ZBUT(4,4) = 2./3.
+  CASE('RK62')
+    ZBUTS     = (/ 1./6. , 1./6. , 1./6. , 1./6. , 1./6. , 1./6. /)
+    ZBUT      = 0.
+    ZBUT(1,1) = 1./5.
+    ZBUT(2,1) = 1./5.
+    ZBUT(2,2) = 1./5.
+    ZBUT(3,1) = 1./5.
+    ZBUT(3,2) = 1./5.
+    ZBUT(3,3) = 1./5.
+    ZBUT(4,1) = 1./5.
+    ZBUT(4,2) = 1./5.
+    ZBUT(4,3) = 1./5.
+    ZBUT(4,4) = 1./5.
+    ZBUT(5,1) = 1./5.
+    ZBUT(5,2) = 1./5.
+    ZBUT(5,3) = 1./5.
+    ZBUT(5,4) = 1./5.
+    ZBUT(5,5) = 1./5.
+CASE('RK65')
+    ZBUTS= (/ 7./90. , 0. , 16./45. , 2./15. , 16./45. , 7./90. /)
+    ZBUT= 0.
+    ZBUT(1,1) = 1./4.
+    ZBUT(2,1) = 1./8.
+    ZBUT(2,2) = 1./8.
+    ZBUT(3,1) = 0
+    ZBUT(3,2) = -1./2.
+    ZBUT(3,3) = 1
+    ZBUT(4,1) = 3./16.
+    ZBUT(4,2) = 0
+    ZBUT(4,3) = 0
+    ZBUT(4,4) = 9./16.
+    ZBUT(5,1) = -3./7.
+    ZBUT(5,2) = 2./7.
+    ZBUT(5,3) = 12./7.
+    ZBUT(5,4) = -12./7.
+    ZBUT(5,5) = 8./7.
+END SELECT
 !
 ALLOCATE(ZRUS(SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3),ISPL))
 ALLOCATE(ZRVS(SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3),ISPL))
@@ -259,18 +335,12 @@ ZU = PU
 ZV = PV
 ZW = PW
 !
-NULLIFY(TZFIELDMT_ll)
-!!$IF( NHALO==1 ) THEN      
-!
-   CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZUT)
-   CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZVT)
-   CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZWT)
-!
-   INBVAR = 3
-!!$   IF( NHALO==1 ) 
-   CALL INIT_HALO2_ll(TZHALO2MT_ll,INBVAR,SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3))
-!
-!!$ END IF
+NULLIFY(TZFIELDMT_ll)    
+CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZUT)
+CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZVT)
+CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZWT)
+INBVAR = 3
+CALL INIT_HALO2_ll(TZHALO2MT_ll,INBVAR,SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3))
 !
 ZRUS = 0.
 ZRVS = 0.
@@ -281,71 +351,65 @@ ZRWS = 0.
 !	        -----------------------------
 !
  DO JS = 1, ISPL
-!
-!
-      CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZUT, PUT, 'U' )    
-      CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZVT, PVT, 'V' )    
-      CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZWT, PWT, 'W' )
-      ZW (:,:,IKE+1 ) = 0.
-     !JUAN
-!!$     IF ( NHALO == 1 ) THEN   
-        CALL UPDATE_HALO_ll(TZFIELDMT_ll,IINFO_ll)        
-        CALL UPDATE_HALO2_ll(TZFIELDMT_ll, TZHALO2MT_ll, IINFO_ll)
-!!$     ENDIF
-     !JUAN
+!		
+    CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZUT, PUT, 'U' )    
+    CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZVT, PVT, 'V' )    
+    CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZWT, PWT, 'W' )
+!    
+    ZW (:,:,IKE+1 ) = 0.
+! 
+    CALL UPDATE_HALO_ll(TZFIELDMT_ll,IINFO_ll)        
+    CALL UPDATE_HALO2_ll(TZFIELDMT_ll, TZHALO2MT_ll, IINFO_ll)
 !
 !*       4.     Advection with WENO
 !	        -------------------
 !
-     CALL ADVECUVW_WENO_K (HLBCX, HLBCY, KWENO_ORDER, ZUT, ZVT, ZWT,      &
-                          PRUCT, PRVCT, PRWCT,                            &
-                          ZRUS(:,:,:,JS), ZRVS(:,:,:,JS), ZRWS(:,:,:,JS), &
-                          TZHALO2MT_ll                                    )
-!
-!
-! ==> verifier si c'est utile !
-!
+    CALL ADVECUVW_WENO_K (HLBCX, HLBCY, KWENO_ORDER, ZUT, ZVT, ZWT,     &
+                        PRUCT, PRVCT, PRWCT,                            &
+                        ZRUS(:,:,:,JS), ZRVS(:,:,:,JS), ZRWS(:,:,:,JS), &
+                        TZHALO2MT_ll                                    )
+!			
      NULLIFY(TZFIELDS4_ll)
-!!$     IF(NHALO == 1) THEN
-          CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRUS(:,:,:,JS))
-          CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRVS(:,:,:,JS))
-          CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRWS(:,:,:,JS))
-          CALL UPDATE_HALO_ll(TZFIELDS4_ll,IINFO_ll)
-          CALL CLEANLIST_ll(TZFIELDS4_ll)
-!!$     END IF
-
-    IF ( JS /= ISPL ) THEN
 !
+    CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRUS(:,:,:,JS))
+    CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRVS(:,:,:,JS))
+    CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRWS(:,:,:,JS))
+    CALL UPDATE_HALO_ll(TZFIELDS4_ll,IINFO_ll)
+    CALL CLEANLIST_ll(TZFIELDS4_ll)
+!		
+  IF ( JS /= ISPL ) THEN
+!
+   DO JI = 1, JS
 
-     DO JI = 1, JS
-
+      ZUT = ZU
+      ZVT = ZV
+      ZWT = ZW
 !
 ! Intermediate guesses inside the RK loop
 !
-        ZUT(:,:,:) = ZU(:,:,:) + ZBUT(JS,JI) *  PTSTEP *  &
-         ( ZRUS(:,:,:,JI) + PRUS_OTHER(:,:,:) ) / PMXM_RHODJ
-        ZVT(:,:,:) = ZV(:,:,:) + ZBUT(JS,JI) *  PTSTEP *  &
-         ( ZRVS(:,:,:,JI) + PRVS_OTHER(:,:,:) ) / PMYM_RHODJ
-        ZWT(:,:,:) = ZW(:,:,:) + ZBUT(JS,JI) *  PTSTEP *  &
-         ( ZRWS(:,:,:,JI) + PRWS_OTHER(:,:,:) ) / PMZM_RHODJ
+      ZUT(:,:,:) = ZUT(:,:,:) + ZBUT(JS,JI) *  PTSTEP *  &
+       ( ZRUS(:,:,:,JI) + PRUS_OTHER(:,:,:) ) / PMXM_RHODJ
+      ZVT(:,:,:) = ZVT(:,:,:) + ZBUT(JS,JI) *  PTSTEP *  &
+       ( ZRVS(:,:,:,JI) + PRVS_OTHER(:,:,:) ) / PMYM_RHODJ
+      ZWT(:,:,:) = ZWT(:,:,:) + ZBUT(JS,JI) *  PTSTEP *  &
+       ( ZRWS(:,:,:,JI) + PRWS_OTHER(:,:,:) ) / PMZM_RHODJ
 !
-      END DO
+    END DO
 !
-    ELSE  
+  ELSE  
 !
 ! Guesses at the end of the RK loop
 !
-      DO JI = 1, ISPL
-       PRUS_ADV(:,:,:) = PRUS_ADV(:,:,:) + ZBUTS(JI) * ZRUS(:,:,:,JI) 
-       PRVS_ADV(:,:,:) = PRVS_ADV(:,:,:) + ZBUTS(JI) * ZRVS(:,:,:,JI) 
-       PRWS_ADV(:,:,:) = PRWS_ADV(:,:,:) + ZBUTS(JI) * ZRWS(:,:,:,JI) 
-      END DO
+    DO JI = 1, ISPL
+     PRUS_ADV(:,:,:) = PRUS_ADV(:,:,:) + ZBUTS(JI) * ZRUS(:,:,:,JI) 
+     PRVS_ADV(:,:,:) = PRVS_ADV(:,:,:) + ZBUTS(JI) * ZRVS(:,:,:,JI) 
+     PRWS_ADV(:,:,:) = PRWS_ADV(:,:,:) + ZBUTS(JI) * ZRWS(:,:,:,JI) 
+    END DO
 !
-    END IF
+  END IF
 !
 ! End of the RK loop
  END DO
-
 !
 !
 DEALLOCATE(ZBUT, ZBUTS, ZRUS, ZRVS, ZRWS)
diff --git a/src/MNH/advecuvw_weno_k.f90 b/src/MNH/advecuvw_weno_k.f90
index edd695127..a28258d06 100644
--- a/src/MNH/advecuvw_weno_k.f90
+++ b/src/MNH/advecuvw_weno_k.f90
@@ -45,7 +45,10 @@ END MODULE MODI_ADVECUVW_WENO_K
 !!
 !!    MODIFICATIONS
 !!    ------------- 
-!!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 tests
+!!		  T.Lunet	 	02/10/2014: add get_halo for WENO 5
+!!					suppress comment of NHALO=1 tests
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -64,6 +67,8 @@ USE MODI_ADVEC_WENO_K_2_AUX
 USE MODI_ADVEC_WENO_K_3_AUX
 !
 USE MODD_CONF,        ONLY : NHALO
+USE MODE_MPPDB
+USE MODI_GET_HALO
 !
 IMPLICIT NONE
 !
@@ -78,7 +83,7 @@ REAL, DIMENSION(:,:,:),   INTENT(IN) :: PRUCT  ! contravariant
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PRVCT  !  components
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PRWCT  ! of momentum
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PUT, PVT, PWT        ! Variables at t
+REAL, DIMENSION(:,:,:),   INTENT(IN) :: PUT, PVT, PWT     ! Variables at t
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS     ! Source terms
 !
@@ -87,11 +92,15 @@ TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion
 !*       0.2   Declarations of local variables :
 !
 TYPE(HALO2LIST_ll), POINTER :: TZHALO2_UT,TZHALO2_VT,TZHALO2_WT
+
+TYPE(LIST_ll), POINTER :: TZHALO2_ZMEAN
+INTEGER                     :: IINFO_ll    ! return code of parallel routine
 !
-REAL, DIMENSION(SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3)) :: ZMEAN, ZWORK
+REAL, DIMENSION(SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3)) :: ZMEAN, ZWORK, DYM_ZMEAN
 !
 INTEGER :: K_SCHEME
 INTEGER :: IKU
+INTEGER :: IWORK
 !
 !------------------------- ADVECTION OF MOMENTUM ------------------------------
 !
@@ -101,11 +110,13 @@ TZHALO2_VT => TPHALO2LIST%NEXT              ! 2nd  add3dfield in model_n
 TZHALO2_WT => TPHALO2LIST%NEXT%NEXT         ! 3rst add3dfield in model_n
 !
 IKU=SIZE(PUT,3)
+ZMEAN = 0.0
+ZWORK=0.0
 !      -------------------------------------------------------
 !
 SELECT CASE(KWENO_ORDER)
 !
-CASE(1)
+CASE(1) ! WENO 1
 !
 !  U component
 !
@@ -132,26 +143,18 @@ CASE(1)
   PRWS = PRWS - DZM(1,IKU,1,UP_WZ(PWT,MZF(1,IKU,1,PRWCT)))
 !
 !
-CASE(3)
+CASE(3) ! WENO 3
 !
 ! U component
 !
   ZWORK = MXF(PRUCT)
-!!$  IF(NHALO == 1) THEN
-    CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2)
-!!$  ELSE
-!!$    CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN)
-!!$  ENDIF
+  CALL ADVEC_WENO_K_2_UX(HLBCX, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2)
   PRUS = PRUS - DXM(ZMEAN)
   
 !   
   IF (.NOT.L2D) THEN
     ZWORK = MXM(PRVCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_2_MY(HLBCY, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2)
     PRUS = PRUS - DYF(ZMEAN)
   END IF
 !
@@ -161,19 +164,11 @@ CASE(3)
 !
   IF (.NOT.L2D) THEN
     ZWORK = MYM(PRUCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_2_MX(HLBCX, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
     PRVS = PRVS - DXF(ZMEAN)
 !   
     ZWORK = MYF(PRVCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_2_VY(HLBCY, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
     PRVS = PRVS - DYM(ZMEAN)
 !
     PRVS = PRVS - DZF(1,IKU,1,WENO_K_2_MZ(PVT, MYM(PRWCT)))
@@ -182,93 +177,75 @@ CASE(3)
 ! W component
 !
   ZWORK = MZM(1,IKU,1,PRUCT)
-!!$  IF(NHALO == 1) THEN
-    CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
-!!$  ELSE
-!!$    CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN)
-!!$  ENDIF
+  CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
   PRWS = PRWS - DXF(ZMEAN)
 !
   IF (.NOT.L2D) THEN
     ZWORK = MZM(1,IKU,1,PRVCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
     PRWS = PRWS - DYF(ZMEAN)
   END IF
 !
   PRWS = PRWS - DZM(1,IKU,1,WENO_K_2_WZ(PWT,MZF(1,IKU,1,PRWCT)))
 !
 !
-CASE(5)
+CASE(5) ! WENO 5
 !
 ! U component
 !
   ZWORK = MXF(PRUCT)
-!!$  IF(NHALO == 1) THEN
-    CALL ADVEC_WENO_K_3_UX(HLBCX, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2)
-!!$  ELSE
-!!$    CALL ADVEC_WENO_K_3_UX(HLBCX, PUT, ZWORK, ZMEAN)
-!!$  ENDIF
+  CALL ADVEC_WENO_K_3_UX(HLBCX, PUT, ZWORK, ZMEAN) 
+  CALL GET_HALO(ZMEAN)! Update HALO 
   PRUS = PRUS - DXM(ZMEAN)
-!   
-  IF (.NOT.L2D) THEN
-    ZWORK = MXM(PRVCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_3_MY(HLBCY, PUT, ZWORK, ZMEAN, TZHALO2_UT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_3_MY(HLBCY, PUT, ZWORK, ZMEAN)
-!!$    ENDIF
-    PRUS = PRUS - DYM(ZMEAN)
+!
+  IF (.NOT.L2D) THEN! 3D Case
+   ZWORK = MXM(PRVCT)     
+   CALL ADVEC_WENO_K_3_MY(HLBCY, PUT, ZWORK, ZMEAN)
+   CALL GET_HALO(ZMEAN)! Update HALO 
+   PRUS = PRUS - DYF(ZMEAN)
   END IF
 !
-  PRUS = PRUS - DZF(1,IKU,1,WENO_K_3_MZ(PUT, MXM(PRWCT)))
+  ZMEAN = WENO_K_3_MZ(PUT, MXM(PRWCT))
+  CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
+  PRUS = PRUS - DZF(1,IKU,1,ZMEAN) 
 !
-! V component
+! V component, only called in 3D case
 !
   IF (.NOT.L2D) THEN
+!
     ZWORK = MYM(PRUCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_3_MX(HLBCX, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_3_MX(HLBCX, PVT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_3_MX(HLBCX, PVT, ZWORK, ZMEAN) 
+    CALL GET_HALO(ZMEAN)! Update HALO 
     PRVS = PRVS - DXF(ZMEAN)
-!   
+!
     ZWORK = MYF(PRVCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_3_VY(HLBCY, PVT, ZWORK, ZMEAN, TZHALO2_VT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_3_VY(HLBCY, PVT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_3_VY(HLBCY, PVT, ZWORK, ZMEAN)
+    CALL GET_HALO(ZMEAN)! Update HALO 
     PRVS = PRVS - DYM(ZMEAN)
 !
-    PRVS = PRVS - DZF(1,IKU,1,WENO_K_3_MZ(PVT, MYM(PRWCT)))
+    ZMEAN = WENO_K_3_MZ(PVT, MYM(PRWCT))
+    CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
+    PRVS = PRVS - DZF(1,IKU,1,ZMEAN) 
+!
   END IF
 !
 ! W component
 !
   ZWORK = MZM(1,IKU,1,PRUCT)
-!!$  IF(NHALO == 1) THEN
-    CALL ADVEC_WENO_K_3_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
-!!$  ELSE
-!!$    CALL ADVEC_WENO_K_3_MX(HLBCX, PWT, ZWORK, ZMEAN)
-!!$  ENDIF
+  CALL ADVEC_WENO_K_3_MX(HLBCX, PWT, ZWORK, ZMEAN)
+  CALL GET_HALO(ZMEAN)! Update HALO
   PRWS = PRWS - DXF(ZMEAN)
 !
-  IF (.NOT.L2D) THEN
+  IF (.NOT.L2D) THEN! 3D Case
     ZWORK = MZM(1,IKU,1,PRVCT)
-!!$    IF(NHALO == 1) THEN
-      CALL ADVEC_WENO_K_3_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2)
-!!$    ELSE
-!!$      CALL ADVEC_WENO_K_3_MY(HLBCY, PWT, ZWORK, ZMEAN)
-!!$    ENDIF
+    CALL ADVEC_WENO_K_3_MY(HLBCY, PWT, ZWORK, ZMEAN)
+    CALL GET_HALO(ZMEAN)! Update HALO
     PRWS = PRWS - DYF(ZMEAN)
   END IF
 !
-  PRWS = PRWS - DZM(1,IKU,1,WENO_K_3_WZ(PWT,MZF(1,IKU,1,PRWCT)))
+  ZMEAN = WENO_K_3_WZ(PWT,MZF(1,IKU,1,PRWCT))
+  CALL GET_HALO(ZMEAN)! Update HALO - maybe not necessary (T.Lunet)
+  PRWS = PRWS - DZM(1,IKU,1,ZMEAN)
 !
 !
 END SELECT
diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90
index 6a5af2d52..8f5101d82 100644
--- a/src/MNH/anel_balancen.f90
+++ b/src/MNH/anel_balancen.f90
@@ -106,6 +106,7 @@ END MODULE MODI_ANEL_BALANCE_n
 !!      J.Stein and J.P. lafore 17/04/96 new version including the way to choose
 !!            the model number and the instant where the projection is performed
 !!      Stein,Lafore 14/01/97 new anelastic equations
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -214,8 +215,6 @@ ALLOCATE(ZBF_SXP2_YP1_Z(IIU_SXP2_YP1_Z_ll,IJU_SXP2_YP1_Z_ll,IKU_SXP2_YP1_Z_ll))
 !
 
 !
-!!$CALL TRID(CLUOUT0,CLBCX,CLBCY,XMAP,XDXHAT,XDYHAT,ZDXHATM,ZDYHATM,ZRHOM,  &
-!!$          ZAF,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY,XRHODJ,XTHVREF,XZZ,ZBFY )
 CALL TRIDZ(CLUOUT0,CLBCX,CLBCY,XMAP,XDXHAT,XDYHAT,ZDXHATM,ZDYHATM,ZRHOM,  &
           ZAF,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY,XRHODJ,XTHVREF,XZZ,ZBFY,&
           ZBFB,ZBF_SXP2_YP1_Z) 
diff --git a/src/MNH/bikhardt.f90 b/src/MNH/bikhardt.f90
index 96f6db55d..599f52176 100644
--- a/src/MNH/bikhardt.f90
+++ b/src/MNH/bikhardt.f90
@@ -170,6 +170,7 @@ END MODULE MODI_BIKHARDT4D
 !!      J.P. Lafore  22/10/96  interpolation coefficients added to the arguments
 !!                             list to avoid duplication. 
 !!     V. Masson and F. Gheusi (10/10/97) bug in cyclic case
+!!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -212,8 +213,8 @@ REAL :: ZBFY1,ZBFY2,ZBFY3,ZBFY4     ! at Flux points in Y-direc.
 ! 
 INTEGER             :: IIU       ! Upper dimension in x direction (inner model)
 INTEGER             :: IJU       ! Upper dimension in y direction (inner model)
-INTEGER             :: IIB
-INTEGER             :: IJB
+INTEGER             :: IIB, IIE
+INTEGER             :: IJB, IJE
 INTEGER             :: IIU1      ! Upper dimension in x direction (outer model)
 INTEGER             :: IJU1      ! Upper dimension in y direction (outer model)
 INTEGER             :: IIS,IJS   ! indices I and J in x and y dir. for scalars
@@ -231,8 +232,7 @@ IIU = SIZE(PFIELD2,1)
 IJU = SIZE(PFIELD2,2)
 IIU1= SIZE(PFIELD1,1)
 IJU1= SIZE(PFIELD1,2)
-IIB = 1+JPHEXT
-IJB = 1+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !*       1.2   extrapolates field of outer model
 !
@@ -268,6 +268,7 @@ IF ( HLBCY(1) == 'CYCL' ) THEN
 END IF
 !-------------------------------------------------------------------------------
 !
+PFIELD2 = 0.0
 SELECT CASE (KGRID)
 !
 !*      2.1    Mass points
@@ -285,11 +286,11 @@ SELECT CASE (KGRID)
       ZBMY3 = PBMY3(JEPSY)
       ZBMY4 = PBMY4(JEPSY)
       DO JI = KXOR,KXEND
-        IIF = IIB+JEPSX-1           +(JI-KXOR-1)*KDXRATIO
-        IIS = IIB+JEPSX-1+KDXRATIO/2+(JI-KXOR-1)*KDXRATIO
+!!$        IIF = IIB+JEPSX-1           +(JI-KXOR-JPHEXT)*KDXRATIO
+        IIS = IIB+JEPSX-1+KDXRATIO/2+(JI-KXOR-JPHEXT)*KDXRATIO
         DO JJ = KYOR,KYEND
-          IJF = IJB+JEPSY-1           +(JJ-KYOR-1)*KDYRATIO
-          IJS = IJB+JEPSY-1+KDYRATIO/2+(JJ-KYOR-1)*KDYRATIO
+!!$          IJF = IJB+JEPSY-1           +(JJ-KYOR-JPHEXT)*KDYRATIO
+          IJS = IJB+JEPSY-1+KDYRATIO/2+(JJ-KYOR-JPHEXT)*KDYRATIO
 !
           IF (1 <= IIS .AND. IIS <= IIU .AND. 1 <= IJS .AND. IJS <= IJU) THEN
 !
@@ -326,9 +327,9 @@ SELECT CASE (KGRID)
       ZBMY3 = PBMY3(JEPSY)
       ZBMY4 = PBMY4(JEPSY)
       DO JI = KXOR,KXEND
-        IIF = IIB+JEPSX-1           +(JI-KXOR-1)*KDXRATIO
+        IIF = IIB+JEPSX-1           +(JI-KXOR-JPHEXT)*KDXRATIO
         DO JJ = KYOR,KYEND
-          IJS = IJB+JEPSY-1+KDYRATIO/2+(JJ-KYOR-1)*KDYRATIO
+          IJS = IJB+JEPSY-1+KDYRATIO/2+(JJ-KYOR-JPHEXT)*KDYRATIO
 
           IF (1 <= IIF .AND. IIF <= IIU .AND. 1 <= IJS .AND. IJS <= IJU) THEN 
 !
@@ -365,9 +366,9 @@ SELECT CASE (KGRID)
       ZBFY3 = PBFY3(JEPSY)
       ZBFY4 = PBFY4(JEPSY)
       DO JI = KXOR,KXEND
-        IIS = IIB+JEPSX-1+KDXRATIO/2+(JI-KXOR-1)*KDXRATIO
+        IIS = IIB+JEPSX-1+KDXRATIO/2+(JI-KXOR-JPHEXT)*KDXRATIO
         DO JJ = KYOR,KYEND
-          IJF = IJB+JEPSY-1           +(JJ-KYOR-1)*KDYRATIO
+          IJF = IJB+JEPSY-1           +(JJ-KYOR-JPHEXT)*KDYRATIO
 
           IF (1 <= IIS .AND. IIS <= IIU .AND. 1 <= IJF .AND. IJF <= IJU) THEN 
 !
@@ -405,9 +406,9 @@ SELECT CASE (KGRID)
       ZBFY3 = PBFY3(JEPSY)
       ZBFY4 = PBFY4(JEPSY)
       DO JI = KXOR,KXEND
-        IIF = IIB+JEPSX-1           +(JI-KXOR-1)*KDXRATIO
+        IIF = IIB+JEPSX-1           +(JI-KXOR-JPHEXT)*KDXRATIO
         DO JJ = KYOR,KYEND
-          IJF = IJB+JEPSY-1           +(JJ-KYOR-1)*KDYRATIO
+          IJF = IJB+JEPSY-1           +(JJ-KYOR-JPHEXT)*KDYRATIO
 
           IF (1 <= IIF .AND. IIF <= IIU .AND. 1 <= IJF .AND. IJF <= IJU) THEN 
 !
diff --git a/src/MNH/boundaries.f90 b/src/MNH/boundaries.f90
index cf439c42f..0bfc56d0a 100644
--- a/src/MNH/boundaries.f90
+++ b/src/MNH/boundaries.f90
@@ -169,6 +169,7 @@ END MODULE MODI_BOUNDARIES
 !!      Modification    04/2013  (C.Lac)    Remove instant M               
 !!      Modification    01/2015  (JL Redelsperger) Introduction of ponderation
 !!                                 for non normal velocity and potential temp
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -292,6 +293,8 @@ LOGICAL, SAVE        :: GFIRSTCALLFF = .TRUE.
 LOGICAL              :: GFFTMP
 #endif
 !
+INTEGER              :: JI,JJ
+!
 !-------------------------------------------------------------------------------
 !
 !*       1.    COMPUTE DIMENSIONS OF ARRAYS AND OTHER INDICES:
@@ -471,26 +474,30 @@ SELECT CASE ( HLBCX(1) )
   CASE ('OPEN')
 !
     IF(SIZE(PUT) /= 0) THEN
-      PUT(IIB-JPHEXT,:,:)=0.
-      WHERE ( PUT(IIB,:,:) <= 0. )               !  OUTFLOW condition
-        PVT  (IIB-1,:,:) = 2.*PVT  (IIB,:,:)   -PVT  (IIB+1,:,:)
-        PWT  (IIB-1,:,:) = 2.*PWT  (IIB,:,:)   -PWT  (IIB+1,:,:)
-        PTHT (IIB-1,:,:) = 2.*PTHT (IIB,:,:)   -PTHT (IIB+1,:,:)
-!
-      ELSEWHERE                                   !  INFLOW  condition
-        PVT  (IIB-1,:,:) = ZPOND*ZLBXVT  (1,:,:) + (1.-ZPOND)* PVT(IIB,:,:)
-        PWT  (IIB-1,:,:) = ZPOND*ZLBXWT  (1,:,:) + (1.-ZPOND)* PWT(IIB,:,:)
-        PTHT (IIB-1,:,:) = ZPOND*ZLBXTHT (1,:,:) + (1.-ZPOND)* PTHT(IIB,:,:)
-      ENDWHERE
+       DO JI=JPHEXT,1,-1
+          PUT(JI,:,:)=0.
+          WHERE ( PUT(IIB,:,:) <= 0. )               !  OUTFLOW condition
+             PVT  (JI,:,:) = 2.*PVT  (JI+1,:,:)  -PVT  (JI+2,:,:)
+             PWT  (JI,:,:) = 2.*PWT  (JI+1,:,:)  -PWT  (JI+2,:,:)
+             PTHT (JI,:,:) = 2.*PTHT (JI+1,:,:)  -PTHT (JI+2,:,:)
+             !
+          ELSEWHERE                                   !  INFLOW  condition
+             PVT  (JI,:,:) = ZPOND*ZLBXVT   (JI,:,:) + (1.-ZPOND)* PVT(JI+1,:,:) ! 1 
+             PWT  (JI,:,:) = ZPOND*ZLBXWT   (JI,:,:) + (1.-ZPOND)* PWT(JI+1,:,:) ! 1
+             PTHT (JI,:,:) = ZPOND*ZLBXTHT  (JI,:,:) + (1.-ZPOND)* PTHT(JI+1,:,:)! 1
+          ENDWHERE
+       ENDDO
     ENDIF
 !
 !
   IF(SIZE(PTKET) /= 0) THEN
-    WHERE ( PUT(IIB,:,:) <= 0. )               !  OUTFLOW condition
-      PTKET(IIB-1,:,:) = MAX(XTKEMIN, 2.*PTKET(IIB,:,:)-PTKET(IIB+1,:,:))  
-    ELSEWHERE                                  !  INFLOW  condition
-      PTKET(IIB-1,:,:) = MAX(XTKEMIN,ZLBXTKET(1,:,:))  
-    ENDWHERE
+     DO JI=JPHEXT,1,-1
+        WHERE ( PUT(IIB,:,:) <= 0. )               !  OUTFLOW condition
+           PTKET(JI,:,:) = MAX(XTKEMIN, 2.*PTKET(JI+1,:,:)-PTKET(JI+2,:,:))  
+        ELSEWHERE                                  !  INFLOW  condition
+           PTKET(JI,:,:) = MAX(XTKEMIN,ZLBXTKET(JI,:,:))  ! 1
+        ENDWHERE
+     ENDDO
   END IF
     !
 !                      Case with KRR moist variables 
@@ -498,27 +505,35 @@ SELECT CASE ( HLBCX(1) )
 ! 
 !
   DO JRR =1 ,KRR
-    IF(SIZE(PUT) /= 0) THEN
-      WHERE ( PUT(IIB,:,:) <= 0. )         !  OUTFLOW condition
-        PRT(IIB-1,:,:,JRR) = MAX(0.,2.*PRT(IIB,:,:,JRR) -PRT(IIB+1,:,:,JRR))
-      ELSEWHERE                            !  INFLOW  condition
-        PRT(IIB-1,:,:,JRR) = MAX(0.,ZLBXRT(1,:,:,JRR))
-      END WHERE
-    END IF
-    !
+     IF(SIZE(PUT) /= 0) THEN
+        DO JI=JPHEXT,1,-1
+           WHERE ( PUT(IIB,:,:) <= 0. )         !  OUTFLOW condition
+              PRT(JI,:,:,JRR) = MAX(0.,2.*PRT(JI+1,:,:,JRR) -PRT(JI+2,:,:,JRR))
+           ELSEWHERE                            !  INFLOW  condition
+              PRT(JI,:,:,JRR) = MAX(0.,ZLBXRT(JI,:,:,JRR)) ! 1
+           END WHERE
+        END DO
+     END IF
+     !
   END DO
 !
-  IF(SIZE(PSRCT) /= 0) PSRCT (IIB-1,:,:)   = PSRCT (IIB,:,:)
+  IF(SIZE(PSRCT) /= 0) THEN
+     DO JI=JPHEXT,1,-1
+        PSRCT (JI,:,:)   = PSRCT (JI+1,:,:)
+     END DO
+  END IF
 !
 !                       Case with KSV scalar variables  
   DO JSV=1 ,KSV
     IF(SIZE(PUT) /= 0) THEN
-      WHERE ( PUT(IIB,:,:) <= 0. )         !  OUTFLOW condition
-        PSVT(IIB-1,:,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(IIB,:,:,JSV) - &
-                                               PSVT(IIB+1,:,:,JSV))
-      ELSEWHERE                            !  INFLOW  condition
-        PSVT(IIB-1,:,:,JSV) = MAX(XSVMIN(JSV),ZLBXSVT(1,:,:,JSV))
-      END WHERE
+       DO JI=JPHEXT,1,-1
+          WHERE ( PUT(IIB,:,:) <= 0. )         !  OUTFLOW condition
+             PSVT(JI,:,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(JI+1,:,:,JSV) - &
+                  PSVT(JI+2,:,:,JSV))
+          ELSEWHERE                            !  INFLOW  condition
+             PSVT(JI,:,:,JSV) = MAX(XSVMIN(JSV),ZLBXSVT(JI,:,:,JSV)) ! 1
+          END WHERE
+       END DO
     END IF
     !
   END DO
@@ -560,28 +575,32 @@ SELECT CASE ( HLBCX(2) )
 !
   CASE ('OPEN')
 !
-    ILBX = SIZE(PLBXVM,1)
-    IF(SIZE(PUT) /= 0) THEN
-      WHERE ( PUT(IIE+1,:,:) >= 0. )               !  OUTFLOW condition
-        PVT  (IIE+1,:,:) = 2.*PVT  (IIE,:,:)   -PVT  (IIE-1,:,:)
-        PWT  (IIE+1,:,:) = 2.*PWT  (IIE,:,:)   -PWT  (IIE-1,:,:)
-        PTHT (IIE+1,:,:) = 2.*PTHT (IIE,:,:)   -PTHT (IIE-1,:,:)
-!
-      ELSEWHERE                                   !  INFLOW  condition
-        PVT  (IIE+1,:,:) = ZPOND*ZLBXVT  (ILBX,:,:) + (1.-ZPOND)* PVT(IIE,:,:)
-        PWT  (IIE+1,:,:) = ZPOND*ZLBXWT  (ILBX,:,:) + (1.-ZPOND)* PWT(IIE,:,:)
-        PTHT (IIE+1,:,:) = ZPOND*ZLBXTHT (ILBX,:,:) + (1.-ZPOND)* PTHT(IIE,:,:)
-      ENDWHERE
-    ENDIF
-!
-  IF(SIZE(PTKET) /= 0) THEN
-    ILBX = SIZE(PLBXTKEM,1)
-    WHERE ( PUT(IIE+1,:,:) >= 0. )             !  OUTFLOW condition
-      PTKET(IIE+1,:,:) = MAX(XTKEMIN, 2.*PTKET(IIE,:,:)-PTKET(IIE-1,:,:))  
-    ELSEWHERE                                  !  INFLOW  condition
-      PTKET(IIE+1,:,:) = MAX(XTKEMIN,ZLBXTKET(ILBX,:,:))  
-    ENDWHERE
-  END IF
+     ILBX = SIZE(PLBXVM,1)
+     IF(SIZE(PUT) /= 0) THEN
+        DO JI=1,JPHEXT
+           WHERE ( PUT(IIE+1,:,:) >= 0. )               !  OUTFLOW condition
+              PVT  (IIE+JI,:,:) = 2.*PVT  (IIE+JI-1,:,:)   -PVT  (IIE+JI-2,:,:)
+              PWT  (IIE+JI,:,:) = 2.*PWT  (IIE+JI-1,:,:)   -PWT  (IIE+JI-2,:,:)
+              PTHT (IIE+JI,:,:) = 2.*PTHT (IIE+JI-1,:,:)   -PTHT (IIE+JI-2,:,:)
+              !
+           ELSEWHERE                                   !  INFLOW  condition
+              PVT  (IIE+JI,:,:) = ZPOND*ZLBXVT   (ILBX-JPHEXT+JI,:,:) + (1.-ZPOND)* PVT(IIE+JI-1,:,:)
+              PWT  (IIE+JI,:,:) = ZPOND*ZLBXWT   (ILBX-JPHEXT+JI,:,:) + (1.-ZPOND)* PWT(IIE+JI-1,:,:)
+              PTHT (IIE+JI,:,:) = ZPOND*ZLBXTHT  (ILBX-JPHEXT+JI,:,:) + (1.-ZPOND)* PTHT(IIE+JI-1,:,:)
+           ENDWHERE
+        END DO
+     ENDIF
+     !
+     IF(SIZE(PTKET) /= 0) THEN
+        ILBX = SIZE(PLBXTKEM,1)
+        DO JI=1,JPHEXT
+           WHERE ( PUT(IIE+1,:,:) >= 0. )             !  OUTFLOW condition
+              PTKET(IIE+JI,:,:) = MAX(XTKEMIN, 2.*PTKET(IIE+JI-1,:,:)-PTKET(IIE+JI-2,:,:))  
+           ELSEWHERE                                  !  INFLOW  condition
+              PTKET(IIE+JI,:,:) = MAX(XTKEMIN,ZLBXTKET(ILBX-JPHEXT+JI,:,:))  
+           ENDWHERE
+        END DO
+     END IF
     !
 !
 !                      Case with KRR moist variables 
@@ -591,26 +610,34 @@ SELECT CASE ( HLBCX(2) )
     ILBX=SIZE(PLBXRM,1)
     !
     IF(SIZE(PUT) /= 0) THEN
-      WHERE ( PUT(IIE+1,:,:) >= 0. )       !  OUTFLOW condition
-        PRT(IIE+1,:,:,JRR) = MAX(0.,2.*PRT(IIE,:,:,JRR) -PRT(IIE-1,:,:,JRR))
-      ELSEWHERE                            !  INFLOW  condition
-        PRT(IIE+1,:,:,JRR) = MAX(0.,ZLBXRT(ILBX,:,:,JRR))
-      END WHERE
+       DO JI=1,JPHEXT  
+          WHERE ( PUT(IIE+1,:,:) >= 0. )       !  OUTFLOW condition
+             PRT(IIE+JI,:,:,JRR) = MAX(0.,2.*PRT(IIE+JI-1,:,:,JRR) -PRT(IIE+JI-2,:,:,JRR))
+          ELSEWHERE                            !  INFLOW  condition
+             PRT(IIE+JI,:,:,JRR) = MAX(0.,ZLBXRT(ILBX-JPHEXT+JI,:,:,JRR))
+          END WHERE
+       END DO
     END IF
     !
   END DO
 !
-  IF(SIZE(PSRCT) /= 0) PSRCT (IIE+1,:,:)   = PSRCT (IIE,:,:)
+  IF(SIZE(PSRCT) /= 0) THEN
+     DO JI=1,JPHEXT 
+        PSRCT (IIE+JI,:,:)   = PSRCT (IIE+JI-1,:,:)
+     END DO
+  END IF
 !                       Case with KSV scalar variables  
   DO JSV=1 ,KSV
     ILBX=SIZE(PLBXSVM,1)
     IF(SIZE(PUT) /= 0) THEN
-      WHERE ( PUT(IIE+1,:,:) >= 0. )       !  OUTFLOW condition
-        PSVT(IIE+1,:,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(IIE,:,:,JSV) - &
-                                               PSVT(IIE-1,:,:,JSV))
-      ELSEWHERE                            !  INFLOW  condition
-        PSVT(IIE+1,:,:,JSV) = MAX(XSVMIN(JSV),ZLBXSVT(ILBX,:,:,JSV))
-      END WHERE
+       DO JI=1,JPHEXT 
+          WHERE ( PUT(IIE+1,:,:) >= 0. )       !  OUTFLOW condition
+             PSVT(IIE+JI,:,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(IIE+JI-1,:,:,JSV) - &
+                  PSVT(IIE+JI-2,:,:,JSV))
+          ELSEWHERE                            !  INFLOW  condition
+             PSVT(IIE+JI,:,:,JSV) = MAX(XSVMIN(JSV),ZLBXSVT(ILBX-JPHEXT+JI,:,:,JSV))
+          END WHERE
+       END DO
     END IF
     !
   END DO
@@ -652,24 +679,28 @@ SELECT CASE ( HLBCY(1) )
   CASE ('OPEN')
 !
     IF(SIZE(PVT) /= 0) THEN
-      PVT(:,IJB-JPHEXT,:)=0.
-      WHERE ( PVT(:,IJB,:) <= 0. )               !  OUTFLOW condition
-        PUT  (:,IJB-1,:) = 2.*PUT  (:,IJB,:)   -PUT  (:,IJB+1,:)
-        PWT  (:,IJB-1,:) = 2.*PWT  (:,IJB,:)   -PWT  (:,IJB+1,:)
-        PTHT (:,IJB-1,:) = 2.*PTHT (:,IJB,:)   -PTHT (:,IJB+1,:)
-      ELSEWHERE                                   !  INFLOW  condition
-        PUT  (:,IJB-1,:) = ZPOND*ZLBYUT  (:,1,:) + (1.-ZPOND)* PUT(:,IJB,:)
-        PWT  (:,IJB-1,:) = ZPOND*ZLBYWT  (:,1,:) + (1.-ZPOND)* PWT(:,IJB,:)
-        PTHT (:,IJB-1,:) = ZPOND*ZLBYTHT (:,1,:) + (1.-ZPOND)* PTHT(:,IJB,:)
-      ENDWHERE
+       DO JJ=JPHEXT,1,-1
+          PVT(:,JJ,:)=0.
+          WHERE ( PVT(:,IJB,:) <= 0. )               !  OUTFLOW condition
+             PUT  (:,JJ,:) = 2.*PUT  (:,JJ+1,:)   -PUT  (:,JJ+2,:)
+             PWT  (:,JJ,:) = 2.*PWT  (:,JJ+1,:)   -PWT  (:,JJ+2,:)
+             PTHT (:,JJ,:) = 2.*PTHT (:,JJ+1,:)   -PTHT (:,JJ+2,:)
+          ELSEWHERE                                   !  INFLOW  condition
+             PUT  (:,JJ,:) = ZPOND*ZLBYUT   (:,JJ,:) + (1.-ZPOND)* PUT(:,JJ+1,:)
+             PWT  (:,JJ,:) = ZPOND*ZLBYWT   (:,JJ,:) + (1.-ZPOND)* PWT(:,JJ+1,:)
+             PTHT (:,JJ,:) = ZPOND*ZLBYTHT  (:,JJ,:) + (1.-ZPOND)* PTHT(:,JJ+1,:)
+          ENDWHERE
+       END DO
     ENDIF
 !
   IF(SIZE(PTKET) /= 0) THEN
-    WHERE ( PVT(:,IJB,:) <= 0. )             !  OUTFLOW condition
-      PTKET(:,IJB-1,:) = MAX(XTKEMIN, 2.*PTKET(:,IJB,:)-PTKET(:,IJB+1,:))  
-    ELSEWHERE                                !  INFLOW  condition
-      PTKET(:,IJB-1,:) = MAX(XTKEMIN,ZLBYTKET(:,1,:))  
-    ENDWHERE
+     DO JJ=JPHEXT,1,-1
+        WHERE ( PVT(:,IJB,:) <= 0. )             !  OUTFLOW condition
+           PTKET(:,JJ,:) = MAX(XTKEMIN, 2.*PTKET(:,JJ+1,:)-PTKET(:,JJ+2,:))  
+        ELSEWHERE                                !  INFLOW  condition
+           PTKET(:,JJ,:) = MAX(XTKEMIN,ZLBYTKET(:,JJ,:))  
+        ENDWHERE
+     END DO
   END IF
     !
 !
@@ -678,27 +709,35 @@ SELECT CASE ( HLBCY(1) )
 ! 
   DO JRR =1 ,KRR
     IF(SIZE(PVT) /= 0) THEN
-      WHERE ( PVT(:,IJB,:) <= 0. )         !  OUTFLOW condition
-        PRT(:,IJB-1,:,JRR) = MAX(0.,2.*PRT(:,IJB,:,JRR) -PRT(:,IJB+1,:,JRR))
-      ELSEWHERE                            !  INFLOW  condition
-        PRT(:,IJB-1,:,JRR) = MAX(0.,ZLBYRT(:,1,:,JRR))
-      END WHERE
+       DO JJ=JPHEXT,1,-1
+          WHERE ( PVT(:,IJB,:) <= 0. )         !  OUTFLOW condition
+             PRT(:,JJ,:,JRR) = MAX(0.,2.*PRT(:,JJ+1,:,JRR) -PRT(:,JJ+2,:,JRR))
+          ELSEWHERE                            !  INFLOW  condition
+             PRT(:,JJ,:,JRR) = MAX(0.,ZLBYRT(:,JJ,:,JRR))
+          END WHERE
+       END DO
     END IF
     !
   END DO
 !
-  IF(SIZE(PSRCT) /= 0) PSRCT(:,IJB-1,:)   = PSRCT(:,IJB,:)
+  IF(SIZE(PSRCT) /= 0) THEN
+     DO JJ=JPHEXT,1,-1
+        PSRCT(:,JJ,:)   = PSRCT(:,JJ+1,:)
+     END DO
+  END IF
 !
 !                       Case with KSV scalar variables  
 !
   DO JSV=1 ,KSV
     IF(SIZE(PVT) /= 0) THEN
-      WHERE ( PVT(:,IJB,:) <= 0. )         !  OUTFLOW condition
-        PSVT(:,IJB-1,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(:,IJB,:,JSV) - &
-                                               PSVT(:,IJB+1,:,JSV))
-      ELSEWHERE                            !  INFLOW  condition
-        PSVT(:,IJB-1,:,JSV) = MAX(XSVMIN(JSV),ZLBYSVT(:,1,:,JSV))
-      END WHERE
+       DO JJ=JPHEXT,1,-1
+          WHERE ( PVT(:,IJB,:) <= 0. )         !  OUTFLOW condition
+             PSVT(:,JJ,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(:,JJ+1,:,JSV) - &
+                  PSVT(:,JJ+2,:,JSV))
+          ELSEWHERE                            !  INFLOW  condition
+             PSVT(:,JJ,:,JSV) = MAX(XSVMIN(JSV),ZLBYSVT(:,JJ,:,JSV))
+          END WHERE
+       END DO
     END IF
     !
   END DO
@@ -743,24 +782,28 @@ SELECT CASE ( HLBCY(2) )
 !
     ILBY=SIZE(PLBYUM,2)
     IF(SIZE(PVT) /= 0) THEN
-      WHERE ( PVT(:,IJE+1,:) >= 0. )               !  OUTFLOW condition
-        PUT  (:,IJE+1,:) = 2.*PUT  (:,IJE,:)   -PUT  (:,IJE-1,:)
-        PWT  (:,IJE+1,:) = 2.*PWT  (:,IJE,:)   -PWT  (:,IJE-1,:)
-        PTHT (:,IJE+1,:) = 2.*PTHT (:,IJE,:)   -PTHT (:,IJE-1,:)
-      ELSEWHERE                                   !  INFLOW  condition
-        PUT  (:,IJE+1,:) = ZPOND*ZLBYUT  (:,ILBY,:) + (1.-ZPOND)* PUT(:,IJE,:)
-        PWT  (:,IJE+1,:) = ZPOND*ZLBYWT  (:,ILBY,:) + (1.-ZPOND)* PWT(:,IJE,:)
-        PTHT (:,IJE+1,:) = ZPOND*ZLBYTHT (:,ILBY,:) + (1.-ZPOND)* PTHT(:,IJE,:)
-      ENDWHERE
+       DO JJ=1,JPHEXT
+          WHERE ( PVT(:,IJE+1,:) >= 0. )               !  OUTFLOW condition
+             PUT  (:,IJE+JJ,:) = 2.*PUT  (:,IJE+JJ-1,:)   -PUT  (:,IJE+JJ-2,:)
+             PWT  (:,IJE+JJ,:) = 2.*PWT  (:,IJE+JJ-1,:)   -PWT  (:,IJE+JJ-2,:)
+             PTHT (:,IJE+JJ,:) = 2.*PTHT (:,IJE+JJ-1,:)   -PTHT (:,IJE+JJ-2,:)
+          ELSEWHERE                                   !  INFLOW  condition
+             PUT  (:,IJE+JJ,:) = ZPOND*ZLBYUT   (:,ILBY-JPHEXT+JJ,:) + (1.-ZPOND)* PUT(:,IJE+JJ-1,:)
+             PWT  (:,IJE+JJ,:) = ZPOND*ZLBYWT   (:,ILBY-JPHEXT+JJ,:) + (1.-ZPOND)* PWT(:,IJE+JJ-1,:)
+             PTHT (:,IJE+JJ,:) = ZPOND*ZLBYTHT  (:,ILBY-JPHEXT+JJ,:) + (1.-ZPOND)* PTHT(:,IJE+JJ-1,:)
+          ENDWHERE
+       END DO
     ENDIF
 !
   IF(SIZE(PTKET) /= 0) THEN
     ILBY=SIZE(PLBYTKEM,2)
-    WHERE ( PVT(:,IJE+1,:) >= 0. )             !  OUTFLOW condition
-      PTKET(:,IJE+1,:) = MAX(XTKEMIN, 2.*PTKET(:,IJE,:)-PTKET(:,IJE-1,:))  
-    ELSEWHERE                                  !  INFLOW  condition
-      PTKET(:,IJE+1,:) = MAX(XTKEMIN,ZLBYTKET(:,ILBY,:))  
-    ENDWHERE
+    DO JJ=1,JPHEXT
+       WHERE ( PVT(:,IJE+1,:) >= 0. )             !  OUTFLOW condition
+          PTKET(:,IJE+JJ,:) = MAX(XTKEMIN, 2.*PTKET(:,IJE+JJ-1,:)-PTKET(:,IJE+JJ-2,:))  
+       ELSEWHERE                                  !  INFLOW  condition
+          PTKET(:,IJE+JJ,:) = MAX(XTKEMIN,ZLBYTKET(:,ILBY-JPHEXT+JJ,:))  
+       ENDWHERE
+    END DO
   ENDIF
     !
 !                      Case with KRR moist variables 
@@ -770,28 +813,36 @@ SELECT CASE ( HLBCY(2) )
     ILBY=SIZE(PLBYRM,2)
     !
     IF(SIZE(PVT) /= 0) THEN
-      WHERE ( PVT(:,IJE+1,:) >= 0. )         !  OUTFLOW condition
-        PRT(:,IJE+1,:,JRR) = MAX(0.,2.*PRT(:,IJE,:,JRR) -PRT(:,IJE-1,:,JRR))
-      ELSEWHERE                            !  INFLOW  condition
-        PRT(:,IJE+1,:,JRR) = MAX(0.,ZLBYRT(:,ILBY,:,JRR))
-      END WHERE
+       DO JJ=1,JPHEXT
+          WHERE ( PVT(:,IJE+1,:) >= 0. )         !  OUTFLOW condition
+             PRT(:,IJE+JJ,:,JRR) = MAX(0.,2.*PRT(:,IJE+JJ-1,:,JRR) -PRT(:,IJE+JJ-2,:,JRR))
+          ELSEWHERE                            !  INFLOW  condition
+             PRT(:,IJE+JJ,:,JRR) = MAX(0.,ZLBYRT(:,ILBY-JPHEXT+JJ,:,JRR))
+          END WHERE
+       END DO
     END IF
     !
   END DO
 !
-  IF(SIZE(PSRCT) /= 0) PSRCT(:,IJE+1,:)   = PSRCT(:,IJE,:)
+  IF(SIZE(PSRCT) /= 0) THEN
+      DO JJ=1,JPHEXT
+         PSRCT(:,IJE+JJ,:)   = PSRCT(:,IJE+JJ-1,:)
+      END DO
+  END IF
 !
 !                       Case with KSV scalar variables  
   DO JSV=1 ,KSV
     ILBY=SIZE(PLBYSVM,2)
     !
     IF(SIZE(PVT) /= 0) THEN
-      WHERE ( PVT(:,IJE+1,:) >= 0. )         !  OUTFLOW condition
-        PSVT(:,IJE+1,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(:,IJE,:,JSV) - &
-                                               PSVT(:,IJE-1,:,JSV))
-      ELSEWHERE                            !  INFLOW  condition
-        PSVT(:,IJE+1,:,JSV) = MAX(XSVMIN(JSV),ZLBYSVT(:,ILBY,:,JSV))
-      END WHERE
+       DO JJ=1,JPHEXT
+          WHERE ( PVT(:,IJE+1,:) >= 0. )         !  OUTFLOW condition
+             PSVT(:,IJE+JJ,:,JSV) = MAX(XSVMIN(JSV),2.*PSVT(:,IJE+JJ-1,:,JSV) - &
+                  PSVT(:,IJE+JJ-2,:,JSV))
+          ELSEWHERE                            !  INFLOW  condition
+             PSVT(:,IJE+JJ,:,JSV) = MAX(XSVMIN(JSV),ZLBYSVT(:,ILBY-JPHEXT+JJ,:,JSV))
+          END WHERE
+       END DO
     END IF
     !
   END DO
@@ -807,10 +858,10 @@ IF (LUSECHEM .AND. IMI == 1) THEN
     GFIRSTCALL1 = .FALSE.
     DO JSV=NSV_CHEMBEG,NSV_CHEMEND
        GCHTMP = .FALSE.
-       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
        GCHBOUNDARY(JSV-NSV_CHEMBEG+1) = GCHTMP
     ENDDO
   ENDIF
@@ -830,10 +881,10 @@ IF (LUSECHIC .AND. IMI == 1) THEN
     GFIRSTCALLIC = .FALSE.
     DO JSV=NSV_CHICBEG,NSV_CHICEND
        GCHTMP = .FALSE.
-       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
        GICBOUNDARY(JSV-NSV_CHICBEG+1) = GCHTMP
     ENDDO
   ENDIF
@@ -852,10 +903,10 @@ IF (LORILAM .AND. IMI == 1) THEN
     GFIRSTCALL2 = .FALSE.
     DO JSV=NSV_AERBEG,NSV_AEREND
        GCHTMP = .FALSE.
-       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
        GAERBOUNDARY(JSV-NSV_AERBEG+1) = GCHTMP
     ENDDO
   ENDIF
@@ -875,10 +926,10 @@ IF (LDUST .AND. IMI == 1) THEN
     GFIRSTCALL3 = .FALSE.
     DO JSV=NSV_DSTBEG,NSV_DSTEND
        GCHTMP = .FALSE.
-       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
        GDSTBOUNDARY(JSV-NSV_DSTBEG+1) = GCHTMP
     ENDDO
     ENDIF
@@ -898,10 +949,10 @@ IF (LSALT .AND. IMI == 1) THEN
     GFIRSTCALL5 = .FALSE.
     DO JSV=NSV_SLTBEG,NSV_SLTEND
        GCHTMP = .FALSE.
-       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
        GSLTBOUNDARY(JSV-NSV_SLTBEG+1) = GCHTMP
     ENDDO
   ENDIF
@@ -921,10 +972,10 @@ IF ( LPASPOL .AND. IMI == 1) THEN
     GFIRSTCALLPP = .FALSE.
     DO JSV=NSV_PPBEG,NSV_PPEND
       GPPTMP = .FALSE.
-      IF (LWEST_ll().AND.HLBCX(1)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-      IF (LEAST_ll().AND.HLBCX(2)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-      IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-      IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+      IF (LWEST_ll().AND.HLBCX(1)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+      IF (LEAST_ll().AND.HLBCX(2)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+      IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+      IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GPPTMP = GPPTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
       GPPBOUNDARY(JSV-NSV_PPBEG+1) = GPPTMP
     ENDDO
   ENDIF
@@ -944,10 +995,10 @@ IF ( LCONDSAMP .AND. IMI == 1) THEN
     GFIRSTCALLCS = .FALSE.
     DO JSV=NSV_CSBEG,NSV_CSEND
       GCSTMP = .FALSE.
-      IF (LWEST_ll().AND.HLBCX(1)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-      IF (LEAST_ll().AND.HLBCX(2)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-      IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-      IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+      IF (LWEST_ll().AND.HLBCX(1)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+      IF (LEAST_ll().AND.HLBCX(2)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+      IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+      IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCSTMP = GCSTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
       GCSBOUNDARY(JSV-NSV_CSBEG+1) = GCSTMP
     ENDDO
   ENDIF
@@ -968,10 +1019,10 @@ IF ( LFOREFIRE .AND. IMI == 1) THEN
     GFIRSTCALLFF = .FALSE.
     DO JSV=NSV_FFBEG,NSV_FFEND
       GFFTMP = .FALSE.
-      IF (LWEST_ll().AND.HLBCX(1)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBXSVM(1,:,:,JSV)==0)
-      IF (LEAST_ll().AND.HLBCX(2)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBXSVM(ILBX,:,:,JSV)==0)
-      IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBYSVM(:,1,:,JSV)==0)
-      IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBYSVM(:,ILBY,:,JSV)==0)
+      IF (LWEST_ll().AND.HLBCX(1)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+      IF (LEAST_ll().AND.HLBCX(2)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+      IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+      IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GFFTMP = GFFTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
       GFFBOUNDARY(JSV-NSV_FFBEG+1) = GFFTMP
     ENDDO
   ENDIF
diff --git a/src/MNH/budget.f90 b/src/MNH/budget.f90
index 3dee913e1..bed79a905 100644
--- a/src/MNH/budget.f90
+++ b/src/MNH/budget.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 budget 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !##################
  MODULE MODI_BUDGET
@@ -80,6 +79,7 @@ END MODULE MODI_BUDGET
 !!      J. Stein    26/06/96  add the 'OF','NO' option  
 !!      J.-P. Pinty 12/12/96  simplifies the coding
 !!      V. Masson   06/10/02  add LES budgets
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      
 !-------------------------------------------------------------------------------
 !
@@ -131,6 +131,7 @@ REAL     :: XPRECISION ! for reproductibility checks
 !
 XPRECISION = 1E-10
 IF (LCHECK) THEN
+  print*,'BUDGET :',HBUVAR
   CALL MPPDB_CHECK3D(PVARS,HBUVAR,XPRECISION)
 END IF
 !
diff --git a/src/MNH/call_rttov.f90 b/src/MNH/call_rttov.f90
index cecc4d89a..4a8f5b007 100644
--- a/src/MNH/call_rttov.f90
+++ b/src/MNH/call_rttov.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG3 2007/11/20 12:25:23
 !-----------------------------------------------------------------
 !    ######################
      MODULE MODI_CALL_RTTOV
@@ -85,6 +84,7 @@ SUBROUTINE CALL_RTTOV(KDLON, KFLEV, KSTATM, PEMIS, PTSRAD, PSTATM,     &
 !!      Original    11/12/03
 !!      JP Chaboureau 27/03/2008 Vectorization
 !!      JP Chaboureau 02/11/2009 move GANGL deallocation outside the sensor loop
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!----------------------------------------------------------------------------
 !!
 !!*       0.    DECLARATIONS
@@ -749,11 +749,8 @@ PRINT *,' RADIANCE OR TB CALCULATION: INRAD=',INRAD,' switchrad=',switchrad
 IIU = SIZE(PTHT,1)
 IJU = SIZE(PTHT,2)
 IKU = SIZE(PTHT,3)
-IIB = 1 + JPHEXT
-IJB = 1 + JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
-IIE = IIU - JPHEXT
-IJE = IJU - JPHEXT
 IKE = IKU - JPVEXT
 IKR = IKE - IKB +1
                               
diff --git a/src/MNH/ch_aqueous_sedim1mom.f90 b/src/MNH/ch_aqueous_sedim1mom.f90
index 98203c122..c9683e263 100644
--- a/src/MNH/ch_aqueous_sedim1mom.f90
+++ b/src/MNH/ch_aqueous_sedim1mom.f90
@@ -76,6 +76,7 @@ END MODULE MODI_CH_AQUEOUS_SEDIM1MOM
 !!    Original    22/07/07
 !!    04/11/08 (M Leriche) add ICE3    
 !!    17/09/10 (M Leriche) add LUSECHIC flag
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -176,10 +177,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
 !
diff --git a/src/MNH/ch_aqueous_sedimc2r2.f90 b/src/MNH/ch_aqueous_sedimc2r2.f90
index 6963c4dc8..d09c51995 100644
--- a/src/MNH/ch_aqueous_sedimc2r2.f90
+++ b/src/MNH/ch_aqueous_sedimc2r2.f90
@@ -71,7 +71,8 @@ END MODULE MODI_CH_AQUEOUS_SEDIMC2R2
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    30/10/08
-!!                        2014 G.Delautier : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
+!!      2014 G.Delautier : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -159,10 +160,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
 !
diff --git a/src/MNH/ch_aqueous_sedimkhko.f90 b/src/MNH/ch_aqueous_sedimkhko.f90
index 5a01ef65a..63f5eacbf 100644
--- a/src/MNH/ch_aqueous_sedimkhko.f90
+++ b/src/MNH/ch_aqueous_sedimkhko.f90
@@ -69,6 +69,7 @@ END MODULE MODI_CH_AQUEOUS_SEDIMKHKO
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    03/11/08
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -150,10 +151,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
 !
diff --git a/src/MNH/ch_aqueous_tmicc2r2.f90 b/src/MNH/ch_aqueous_tmicc2r2.f90
index fa8987ff9..b034de2e0 100644
--- a/src/MNH/ch_aqueous_tmicc2r2.f90
+++ b/src/MNH/ch_aqueous_tmicc2r2.f90
@@ -70,7 +70,8 @@ END MODULE MODI_CH_AQUEOUS_TMICC2R2
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    06/05/08
-!!                        2014 G.Delautier : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
+!!      2014 G.Delautier : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -172,10 +173,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PRCT,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PRCT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PRCT,3) - JPVEXT
 !
diff --git a/src/MNH/ch_aqueous_tmicice.f90 b/src/MNH/ch_aqueous_tmicice.f90
index e9eb03788..4d0bd5b52 100644
--- a/src/MNH/ch_aqueous_tmicice.f90
+++ b/src/MNH/ch_aqueous_tmicice.f90
@@ -99,6 +99,7 @@ END MODULE MODI_CH_AQUEOUS_TMICICE
 !!    M. Leriche 19/07/2010 add riming, freezing and melting for ice phase(ICE3)
 !!    M. Leriche 17/09/2010 add OUSECHIC flag
 !!    Juan 24/09/2012: for BUG Pgi rewrite PACK function on mode_pack_pgi
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -275,10 +276,7 @@ ZT(:,:,:) = PTHT(:,:,:) * ( PPABST(:,:,:) / XP00 ) ** (XRD/XCPD)
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PRCT,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PRCT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PRCT,3) - JPVEXT
 !
diff --git a/src/MNH/ch_aqueous_tmickess.f90 b/src/MNH/ch_aqueous_tmickess.f90
index 07642f923..a428772a7 100644
--- a/src/MNH/ch_aqueous_tmickess.f90
+++ b/src/MNH/ch_aqueous_tmickess.f90
@@ -68,6 +68,7 @@ END MODULE MODI_CH_AQUEOUS_TMICKESS
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    26/03/08
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -148,10 +149,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PRCT,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PRCT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PRCT,3) - JPVEXT
 !
diff --git a/src/MNH/ch_aqueous_tmickhko.f90 b/src/MNH/ch_aqueous_tmickhko.f90
index 912765e34..c93eb3a9d 100644
--- a/src/MNH/ch_aqueous_tmickhko.f90
+++ b/src/MNH/ch_aqueous_tmickhko.f90
@@ -71,6 +71,7 @@ END MODULE MODI_CH_AQUEOUS_TMICKHKO
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    03/11/08
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -159,10 +160,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PRCT,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PRCT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PRCT,3) - JPVEXT
 !
diff --git a/src/MNH/change_gribex_var.f90 b/src/MNH/change_gribex_var.f90
index d7a8522ae..d7e48fda2 100644
--- a/src/MNH/change_gribex_var.f90
+++ b/src/MNH/change_gribex_var.f90
@@ -156,6 +156,7 @@ END MODULE MODI_CHANGE_GRIBEX_VAR
 !!         Masson   06/12/96 add air temperature at ground
 !!         Masson   12/12/96 add vertical wind component
 !!         Masson   12/06/97 add relative humidity
+!!         J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -226,11 +227,15 @@ REAL,DIMENSION(:,:,:), ALLOCATABLE                       :: ZRHO_LS
 !                        ! mass density at pressure points
 REAL,DIMENSION(:,:,:), ALLOCATABLE                       :: ZRHOMASS_LS
 !                        ! mass density at mass points
+!
+INTEGER             :: IIB,IIE,IJB,IJE ! interior domaine bound
+INTEGER             :: JI
 !-------------------------------------------------------------------------------
 !
 IIU=SIZE(PT_LS,1)
 IJU=SIZE(PT_LS,2)
 ILU=SIZE(PT_LS,3)
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -337,23 +342,29 @@ IF (PRESENT(PW_LS)) THEN
 !              -------------------------------
 !
   ZSURFCOR_LS(:,:,:)=0.
-  ZSURFCOR_LS(2:IIU-1,2:IJU-1,:)= PU_LS(2:IIU-1,2:IJU-1,:)                     &
+  ZSURFCOR_LS(IIB:IIE,IJB:IJE,:)= PU_LS(IIB:IIE,IJB:IJE,:)                     &
                            *SPREAD(                                            &
-                            (PZS_LS(3:IIU,2:IJU-1)-PZS_LS(1:IIU-2,2:IJU-1))    &
-                            /SPREAD(XXHAT(3:IIU)-XXHAT(1:IIU-2),2,IJU-2)       &
-                            *XMAP(2:IIU-1,2:IJU-1)                             &
+                            (PZS_LS(IIB+1:IIE+1,IJB:IJE)-PZS_LS(IIB-1:IIE-1,IJB:IJE))    &
+                            /SPREAD(XXHAT(IIB+1:IIE+1)-XXHAT(IIB-1:IIE-1),2,IJE-IJB+1)       &
+                            *XMAP(IIB:IIE,IJB:IJE)                             &
                             ,3,ILU)                                            &
-                          + PV_LS(2:IIU-1,2:IJU-1,:)                           &
+                          + PV_LS(IIB:IIE,IJB:IJE,:)                           &
                            *SPREAD(                                            &
-                            (PZS_LS(2:IIU-1,3:IJU)-PZS_LS(2:IIU-1,1:IJU-2))    &
-                           /SPREAD(XYHAT(3:IJU)-XYHAT(1:IJU-2),1,IIU-2)        &
-                           *XMAP(2:IIU-1,2:IJU-1)                              &
+                            (PZS_LS(IIB:IIE,IJB+1:IJE+1)-PZS_LS(IIB:IIE,IJB-1:IJE-1))    &
+                           /SPREAD(XYHAT(IJB+1:IJE+1)-XYHAT(IJB-1:IJE-1),1,IIE-IIB+1)        &
+                           *XMAP(IIB:IIE,IJB:IJE)                              &
                             ,3,ILU)
 !
-  ZSURFCOR_LS( 1 , : ,1)=2.*ZSURFCOR_LS(  2  ,  :  ,1)-ZSURFCOR_LS(  3  ,  :  ,1)
-  ZSURFCOR_LS(IIU, : ,1)=2.*ZSURFCOR_LS(IIU-1,  :  ,1)-ZSURFCOR_LS(IIU-2,  :  ,1)
-  ZSURFCOR_LS( : , 1 ,1)=2.*ZSURFCOR_LS(  :  ,  2  ,1)-ZSURFCOR_LS(  :  ,  3  ,1)
-  ZSURFCOR_LS( : ,IJU,1)=2.*ZSURFCOR_LS(  :  ,IJU-1,1)-ZSURFCOR_LS(  :  ,IJU-2,1)
+  DO JI=1,JPHEXT
+     ZSURFCOR_LS(IIB-JI,:,1)=2.*ZSURFCOR_LS(IIB-JI+1,:,1)-ZSURFCOR_LS(IIB-JI+2,:,1)
+     ZSURFCOR_LS(IIE+JI,:,1)=2.*ZSURFCOR_LS(IIE+JI-1,:,1)-ZSURFCOR_LS(IIE+JI-2,:,1)
+     ZSURFCOR_LS(:,IJB-JI,1)=2.*ZSURFCOR_LS(:,IJB-JI+1,1)-ZSURFCOR_LS(:,IJB-JI+2,1)
+     ZSURFCOR_LS(:,IJE+JI,1)=2.*ZSURFCOR_LS(:,IJE+JI-1,1)-ZSURFCOR_LS(:,IJE+JI-2,1)
+  END DO
+!!$  ZSURFCOR_LS( 1 , : ,1)=2.*ZSURFCOR_LS(  2  ,  :  ,1)-ZSURFCOR_LS(  3  ,  :  ,1)
+!!$  ZSURFCOR_LS(IIU, : ,1)=2.*ZSURFCOR_LS(IIU-1,  :  ,1)-ZSURFCOR_LS(IIU-2,  :  ,1)
+!!$  ZSURFCOR_LS( : , 1 ,1)=2.*ZSURFCOR_LS(  :  ,  2  ,1)-ZSURFCOR_LS(  :  ,  3  ,1)
+!!$  ZSURFCOR_LS( : ,IJU,1)=2.*ZSURFCOR_LS(  :  ,IJU-1,1)-ZSURFCOR_LS(  :  ,IJU-2,1)
 !
 !*       8.2   mass density
 !              ------------
@@ -383,19 +394,25 @@ IF (PRESENT(PW_LS)) THEN
 !              ---------------------
 !
   ZHDIV_LS(:,:,:)=0.
-  ZHDIV_LS(2:IIU-1,2:IJU-1,:)=(ZDPDETA_LS(3:IIU,2:IJU-1,:)*PU_LS(3:IIU,2:IJU-1,:)       &
-                              -ZDPDETA_LS(1:IIU-2,2:IJU-1,:)*PU_LS(1:IIU-2,2:IJU-1,:))  &
-                             /SPREAD(SPREAD(XXHAT(3:IIU)-XXHAT(1:IIU-2),2,IJU-2),3,ILU)  &
-                             *SPREAD(XMAP(2:IIU-1,2:IJU-1),3,ILU)                        &
-                            +(ZDPDETA_LS(2:IIU-1,3:IJU,:)*PV_LS(2:IIU-1,3:IJU,:)        &
-                             -ZDPDETA_LS(2:IIU-1,1:IJU-2,:)*PV_LS(2:IIU-1,1:IJU-2,:))   &
-                            /SPREAD(SPREAD(XYHAT(3:IJU)-XYHAT(1:IJU-2),1,IIU-2),3,ILU)   &
-                            *SPREAD(XMAP(2:IIU-1,2:IJU-1),3,ILU)
-!
-  ZHDIV_LS( 1 , : ,:)=2.*ZHDIV_LS(  2  ,  :  ,:)-ZHDIV_LS(  3  ,  :  ,:)
-  ZHDIV_LS(IIU, : ,:)=2.*ZHDIV_LS(IIU-1,  :  ,:)-ZHDIV_LS(IIU-2,  :  ,:)
-  ZHDIV_LS( : , 1 ,:)=2.*ZHDIV_LS(  :  ,  2  ,:)-ZHDIV_LS(  :  ,  3  ,:)
-  ZHDIV_LS( : ,IJU,:)=2.*ZHDIV_LS(  :  ,IJU-1,:)-ZHDIV_LS(  :  ,IJU-2,:)
+  ZHDIV_LS(IIB:IIE,IJB:IJE,:)=(ZDPDETA_LS(IIB+1:IIE+1,IJB:IJE,:)*PU_LS(IIB+1:IIE+1,IJB:IJE,:)       &
+                              -ZDPDETA_LS(IIB-1:IIE-1,IJB:IJE,:)*PU_LS(IIB-1:IIE-1,IJB:IJE,:))  &
+                             /SPREAD(SPREAD(XXHAT(IIB+1:IIE+1)-XXHAT(IIB-1:IIE-1),2,IJE-IJB+1),3,ILU)  &
+                             *SPREAD(XMAP(IIB:IIE,IJB:IJE),3,ILU)                        &
+                            +(ZDPDETA_LS(IIB:IIE,IJB+1:IJE+1,:)*PV_LS(IIB:IIE,IJB+1:IJE+1,:)        &
+                             -ZDPDETA_LS(IIB:IIE,IJB-1:IJE-1,:)*PV_LS(IIB:IIE,IJB-1:IJE-1,:))   &
+                            /SPREAD(SPREAD(XYHAT(IJB+1:IJE+1)-XYHAT(IJB-1:IJE-1),1,IIE-IIB+1),3,ILU)   &
+                            *SPREAD(XMAP(IIB:IIE,IJB:IJE),3,ILU)
+!
+  DO JI=1,JPHEXT
+     ZHDIV_LS(IIB-JI,:,:)=2.*ZHDIV_LS(IIB-JI+1,:,:)-ZHDIV_LS(IIB-JI+2,:,:)
+     ZHDIV_LS(IIE+JI,:,:)=2.*ZHDIV_LS(IIE+JI-1,:,:)-ZHDIV_LS(IIE+JI-2,:,:)
+     ZHDIV_LS(:,IJB-JI,:)=2.*ZHDIV_LS(:,IJB-JI+1,:)-ZHDIV_LS(:,IJB-JI+2,:)
+     ZHDIV_LS(:,IJE+JI,:)=2.*ZHDIV_LS(:,IJE+JI-1,:)-ZHDIV_LS(:,IJE+JI-2,:)
+  END DO
+!!$  ZHDIV_LS( 1 , : ,:)=2.*ZHDIV_LS(  2  ,  :  ,:)-ZHDIV_LS(  3  ,  :  ,:)
+!!$  ZHDIV_LS(IIU, : ,:)=2.*ZHDIV_LS(IIU-1,  :  ,:)-ZHDIV_LS(IIU-2,  :  ,:)
+!!$  ZHDIV_LS( : , 1 ,:)=2.*ZHDIV_LS(  :  ,  2  ,:)-ZHDIV_LS(  :  ,  3  ,:)
+!!$  ZHDIV_LS( : ,IJU,:)=2.*ZHDIV_LS(  :  ,IJU-1,:)-ZHDIV_LS(  :  ,IJU-2,:)
 !
 !*       8.6   Integration of horizontal divergence
 !              ------------------------------------
diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90
index e2a2c795a..b564a4dac 100644
--- a/src/MNH/check_zs.f90
+++ b/src/MNH/check_zs.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !###################
 MODULE MODI_CHECK_ZS
@@ -77,6 +76,7 @@ END MODULE MODI_CHECK_ZS
 !!      Original    24/09/96
 !!                  20/05/98  (V. Masson and J. Stein) include the case where
 !!                             the domain is reduced 
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -200,12 +200,12 @@ IF ( MOD(NIMAX,IDXRATIO) /= 0 .OR. MOD(NJMAX,IDYRATIO) /= 0 ) THEN
   RETURN
 END IF
 !
-IF ( MOD(KIINF-JPHEXT,IDXRATIO) /= 0 .OR. MOD(KJINF-JPHEXT,IDYRATIO) /= 0 ) THEN
+IF ( MOD(KIINF-1,IDXRATIO) /= 0 .OR. MOD(KJINF-1,IDYRATIO) /= 0 ) THEN
   WRITE (ILUOUT0,*) '********************************************************'
   WRITE (ILUOUT0,*) 'Your truncated domain does not start on an grid mesh'
   WRITE (ILUOUT0,*) 'border of its father domain; no nesting allowed'
-  WRITE (ILUOUT0,*) 'KIINF-JPHEXT=',KIINF-JPHEXT,' IDXRATIO=',IDXRATIO
-  WRITE (ILUOUT0,*) 'KIINF-JPHEXT=',KJINF-JPHEXT,' IDYRATIO=',IDYRATIO
+  WRITE (ILUOUT0,*) 'KIINF-1=',KIINF-1,' IDXRATIO=',IDXRATIO
+  WRITE (ILUOUT0,*) 'KIINF-1=',KJINF-1,' IDYRATIO=',IDYRATIO
   WRITE (ILUOUT0,*) '********************************************************'
   HDAD_NAME='                         '
   RETURN
diff --git a/src/MNH/convection.f90 b/src/MNH/convection.f90
index 7e1bb5669..84eb18803 100644
--- a/src/MNH/convection.f90
+++ b/src/MNH/convection.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 conv 2006/09/21 11:03:24
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_CONVECTION
@@ -159,6 +158,7 @@ END MODULE MODI_CONVECTION
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    11/12/98 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -305,10 +305,7 @@ IIU = SIZE(PTHT,1)
 IJU = SIZE(PTHT,2)
 IKU = SIZE(PTHT,3)
 ICH1= SIZE(PCH1,4)
-IIB = 1 + JPHEXT
-IIE = IIU - JPHEXT
-IJB = 1 + JPHEXT
-IJE = IJU - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = IKU - JPVEXT
 ILON = (IIE-IIB+1) * (IJE-IJB+1)
diff --git a/src/MNH/define_maskn.f90 b/src/MNH/define_maskn.f90
index ad3125de5..d234f7543 100644
--- a/src/MNH/define_maskn.f90
+++ b/src/MNH/define_maskn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_nest_pgd 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ########################
       MODULE MODI_DEFINE_MASK_n
@@ -54,6 +53,7 @@ END MODULE MODI_DEFINE_MASK_n
 !!    MODIFICATIONS
 !!    -------------
 !!      Original        26/09/96
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -97,8 +97,8 @@ DO JLOOP=1,NMODEL
   IF (NDAD(JLOOP)/=IMI) CYCLE
   ISON=ISON+1
   NSON(ISON)=JLOOP
-  NNESTMASK(NXOR_ALL(JLOOP)+1:NXEND_ALL(JLOOP)-1,     &
-            NYOR_ALL(JLOOP)+1:NYEND_ALL(JLOOP)-1, ISON) = 1
+  NNESTMASK(NXOR_ALL(JLOOP)+JPHEXT:NXEND_ALL(JLOOP)-JPHEXT,     &
+            NYOR_ALL(JLOOP)+JPHEXT:NYEND_ALL(JLOOP)-JPHEXT, ISON) = 1
 END DO
 !
 IF (ANY (SUM(NNESTMASK(:,:,:),DIM=3)>1) ) THEN
diff --git a/src/MNH/dflux_corr.f90 b/src/MNH/dflux_corr.f90
index a38e1b414..61287d64e 100644
--- a/src/MNH/dflux_corr.f90
+++ b/src/MNH/dflux_corr.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/06/08 15:57:16
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_DFLUX_CORR 
@@ -112,6 +111,7 @@ END MODULE MODI_DFLUX_CORR
 !!      J Escobar 
 !!    J. Stein &    20/03/01 : bug for the open case at the boundary
 !!      P. Jabouille 
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -242,14 +242,15 @@ ZBETAOUT(:,:,IKU) = 1.      ! because no velocity is available
 ! 
 ! Update halo and apply possible cyclic boundary conditions
 !
-IF(NHALO == 1 .OR. HLBCX(1)=='CYCL' .OR. HLBCY(1)=='CYCL') THEN
+!!$IF(NHALO == 1 .OR. HLBCX(1)=='CYCL' .OR. HLBCY(1)=='CYCL') THEN
+IF(HLBCX(1)=='CYCL' .OR. HLBCY(1)=='CYCL') THEN
   CALL ADD3DFIELD_ll(TZFIELDS_ll, ZBETAOUT)
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll)
-  ELSE
-    IF(HLBCX(1)=='CYCL') CALL UPDATE_BOUNDARIES_ll('XX',TZFIELDS_ll,IINFO_ll)
-    IF(HLBCY(1)=='CYCL') CALL UPDATE_BOUNDARIES_ll('YY',TZFIELDS_ll,IINFO_ll)
-  END IF
+!!$  ELSE
+!!$    IF(HLBCX(1)=='CYCL') CALL UPDATE_BOUNDARIES_ll('XX',TZFIELDS_ll,IINFO_ll)
+!!$    IF(HLBCY(1)=='CYCL') CALL UPDATE_BOUNDARIES_ll('YY',TZFIELDS_ll,IINFO_ll)
+!!$  END IF
   CALL CLEANLIST_ll(TZFIELDS_ll)
 ENDIF
 !
diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index ad2367b83..38e9a51b3 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -70,8 +70,8 @@
 !!       D.Ricard 2015 : add LMOIST_ES
 !!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
 !!                                      aircraft, ballon and profiler
-!
-!
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!!
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -156,6 +156,8 @@ USE MODN_NCOUT
 USE MODE_UTIL
 #endif
 !
+USE MODN_CONF, ONLY : JPHEXT , NHALO
+!
 IMPLICIT NONE
 !
 !*       0.1   declarations of local variables
@@ -220,6 +222,7 @@ NAMELIST/NAM_DIAG/ CISO, LVAR_RS, LVAR_LS,   &
 !
 NAMELIST/NAM_DIAG_FILE/ YINIFILE,YINIFILEPGD, YSUFFIX
 NAMELIST/NAM_STO_FILE/ CFILES, NSTART_SUPP
+NAMELIST/NAM_CONF_DIAG/JPHEXT, NHALO 
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/dyn_sources.f90 b/src/MNH/dyn_sources.f90
index b54ad1e71..5bdb5483a 100644
--- a/src/MNH/dyn_sources.f90
+++ b/src/MNH/dyn_sources.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/06/06 15:20:45
 !-----------------------------------------------------------------
 !     #######################
       MODULE MODI_DYN_SOURCES
@@ -151,6 +150,7 @@ END MODULE MODI_DYN_SOURCES
 !!  Corrections 03/12/02  (P. Jabouille)  add no thinshell condition
 !!  Correction     06/10  (C.Lac) Exclude L1D for Coriolis term 
 !!  Modification   03/11  (C.Lac) Split the gravity term due to buoyancy
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -164,6 +164,8 @@ USE MODD_DYN
 USE MODI_SHUMAN
 USE MODI_GRADIENT_M
 USE MODI_BUDGET
+!
+USE MODE_MPPDB
 !  
 IMPLICIT NONE
 !  
@@ -241,6 +243,14 @@ IF ((.NOT.L1D).AND.(.NOT.LCARTESIAN) )  THEN
     ZWORK3(:,:,:) = 1.0 / ( XRADIUS + MZF(1,IKU,1,PZZ(:,:,:)) )
     ZWORK1(:,:,:) = SPREAD( PCURVX(:,:),DIM=3,NCOPIES=IKU )
     ZWORK2(:,:,:) = SPREAD( PCURVY(:,:),DIM=3,NCOPIES=IKU )
+    CALL MPPDB_CHECK3DM("DYN_SOOURCES:ZWORK3,ZWORK1,ZWORK2",PRECISION,&
+                      & ZWORK3,ZWORK1,ZWORK2,&
+                      & MXM( MYF(ZRVT*PVT) * ZWORK2 * ZWORK3 ) , &
+                      & MXM( ( MYF(PVT) * ZWORK1 - MZF(1,IKU,1,PWT) ) * ZWORK3 ) ,&
+                      & MYF(PVT) * ZWORK1 - MZF(1,IKU,1,PWT) , &
+                      & MYF(PVT) , MZF(1,IKU,1,PWT) , MXM(PWT) , MYM(PWT) )
+    CALL MPPDB_CHECK3DM("DYN_SOOURCES:SUITE",PRECISION,&
+         &  MXM(ZRVT),MXM(PVT),MXM(PWT),MXM(ZWORK1),MXM(ZWORK2),MXM(ZWORK3)  )
 !
     PRUS(:,:,:) = PRUS                                              &
     + MXM( MYF(ZRVT*PVT) * ZWORK2 * ZWORK3 )                        &
diff --git a/src/MNH/elec_trid.f90 b/src/MNH/elec_trid.f90
index 6a78e9c38..3a54b8f4e 100644
--- a/src/MNH/elec_trid.f90
+++ b/src/MNH/elec_trid.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 init 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     #####################
       MODULE MODI_ELEC_TRID
@@ -179,6 +178,7 @@ END MODULE MODI_ELEC_TRID
 !!                                       (to avoid problem in bouissinesq configuration)
 !!                  01/07/12 (J-P. Pinty)  add a non-homogeneous fair-weather 
 !!                                         top boundary condition (Neuman)
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90
index 59e8031f1..e3b60d940 100644
--- a/src/MNH/endstep.f90
+++ b/src/MNH/endstep.f90
@@ -190,6 +190,7 @@ END MODULE MODI_ENDSTEP
 !!                                         advected with PPM
 !!                 04/2013  (C.Lac)       FIT for all the variables     
 !!                 04/2014  (C.Lac)       Check on the positivity of XSVT
+!!                 J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !------------------------------------------------------------------------------
 !
@@ -272,10 +273,7 @@ INTEGER :: IJB, IJE  ! index of first and last inner mass points along y
 !
 !------------------------------------------------------------------------------
 !
-IIB = 1 + JPHEXT
-IIE = SIZE(PUT,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PUT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKU=SIZE(XZHAT)
 !
 !*      1.   ASSELIN FILTER
diff --git a/src/MNH/extract_vortex.f90 b/src/MNH/extract_vortex.f90
index 2aefc2ebe..df1bb103b 100644
--- a/src/MNH/extract_vortex.f90
+++ b/src/MNH/extract_vortex.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_EXTRACT_VORTEX
@@ -93,6 +92,7 @@ END MODULE MODI_EXTRACT_VORTEX
 !!    MODIFICATIONS
 !!    -------------
 !!      Original              01/12/01
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -100,9 +100,10 @@ END MODULE MODI_EXTRACT_VORTEX
 !              ------------
 !
 USE MODD_CST, ONLY: XPI
-USE MODD_PARAMETERS, ONLY: JPHEXT,XUNDEF
+USE MODD_PARAMETERS, ONLY: XUNDEF
 USE MODD_DIM_n,      ONLY: NIMAX,NJMAX
 USE MODD_GRID_n,     ONLY: XXHAT,XYHAT
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -139,10 +140,7 @@ IX= SIZE(PVARIN,1)
 IY= SIZE(PVARIN,2)
 IPHI=SIZE(PR0,1)
 !
-IIB=1+JPHEXT
-IJB=1+JPHEXT
-IIE=NIMAX+JPHEXT
-IJE=NJMAX+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 ZDELTAX = XXHAT(3) - XXHAT(2)
 ZDELTAY = XYHAT(3) - XYHAT(2)
diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90
index d13b5e8eb..76c571bdc 100644
--- a/src/MNH/fast_terms.f90
+++ b/src/MNH/fast_terms.f90
@@ -157,7 +157,8 @@ END MODULE MODI_FAST_TERMS
 !!                     November 6, 2002 (S. Malardel,J.Pergaud) Cloud Fract + Rc of 
 !!                                                              Mass flux convection
 !!                                                              Scheme
-!!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!                     J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -172,6 +173,7 @@ USE MODI_CONDENS
 USE MODI_BUDGET
 USE MODE_FM
 USE MODE_FMWRIT
+USE MODI_GET_HALO
 !
 IMPLICIT NONE
 !
@@ -314,6 +316,7 @@ DO JITER =1,ITERMAX
 !
 !*       2.6    compute the saturation vapor pressure at t+1
 !
+  CALL GET_HALO(ZT)
   ZW1(:,:,:) = EXP( XALPW - XBETAW/ZT(:,:,:) - XGAMW*ALOG( ZT(:,:,:) ) )
 !
 !*       2.7    compute the saturation mixing ratio at t+1
diff --git a/src/MNH/fill_sonfieldn.f90 b/src/MNH/fill_sonfieldn.f90
index b86e9e1f2..4e6f7c01e 100644
--- a/src/MNH/fill_sonfieldn.f90
+++ b/src/MNH/fill_sonfieldn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_nest_pgd 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_FILL_SONFIELD_n
@@ -59,6 +58,7 @@ END MODULE MODI_FILL_SONFIELD_n
 !!    MODIFICATIONS
 !!    -------------
 !!      Original        27/09/96
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -98,10 +98,10 @@ CALL GOTO_MODEL(KMI)
 !
 !* correct only if JPHEXT = 1
 !
-IIB1 = NXOR_ALL (KMI)+1
-IIE1 = NXEND_ALL(KMI)-1
-IJB1 = NYOR_ALL (KMI)+1
-IJE1 = NYEND_ALL(KMI)-1
+IIB1 = NXOR_ALL (KMI)+JPHEXT
+IIE1 = NXEND_ALL(KMI)-JPHEXT
+IJB1 = NYOR_ALL (KMI)+JPHEXT
+IJE1 = NYEND_ALL(KMI)-JPHEXT
 !
 DO JLAYER=1,SIZE(PNESTFIELD,4)
   PNESTFIELD(:,:,KLSON,JLAYER) = XUNDEF
diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90
index 5937f71b0..baa20675a 100644
--- a/src/MNH/flash_geom_elec.f90
+++ b/src/MNH/flash_geom_elec.f90
@@ -72,6 +72,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n
 !!      Original : Jan. 2010
 !!      Modifications:
 !!      M. Chong  * LA *  Juin 2010 : add small ions
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -79,7 +80,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n
 !               ------------
 !
 USE MODD_CONF, ONLY : CEXP
-USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT
+USE MODD_PARAMETERS, ONLY : JPVEXT
 USE MODD_GRID_n, ONLY : XXHAT, XYHAT, XZHAT
 USE MODD_DYN_n, ONLY : XDXHATM, XDYHATM, NSTOP
 USE MODD_ELEC_DESCR 
@@ -274,10 +275,7 @@ CALL MYPROC_ELEC_ll(IPROC)
 !*      1.1     subdomains indexes
 !
 ! beginning and end indexes of the physical subdomain
-IIB = 1 + JPHEXT
-IIE = SIZE(PRT,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PRT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PRT,3) - JPVEXT
 IKU = SIZE(PRT,3)
diff --git a/src/MNH/get_sizex_lb.f90 b/src/MNH/get_sizex_lb.f90
index 24eed91f3..8e93830ce 100644
--- a/src/MNH/get_sizex_lb.f90
+++ b/src/MNH/get_sizex_lb.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 init 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_GET_SIZEX_LB
@@ -89,6 +88,7 @@ END MODULE MODI_GET_SIZEX_LB
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    23/09/98
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -148,7 +148,7 @@ KJSIZEX2=0
 IF (KRIMX /=0) THEN 
 !   Western side, mass points   : 1:NRIMX+1,1:NJMAX_ll+ 2 * JPHEXT
   IXOR=1
-  IXEND=KRIMX+1
+  IXEND=KRIMX+JPHEXT ! +1
   IYOR=1 
   IYEND=KJMAX_ll+ 2 * JPHEXT
   CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
@@ -158,7 +158,7 @@ IF (KRIMX /=0) THEN
   ENDIF
 !   Eastern side , mass  and u-grid points:
 !            NIMAX_ll+JPHEXT-NRIMX +1:NIMAX_ll+ 2 *JPHEXT,1:NJMAX_ll+2 *JPHEXT
-  IXOR=KIMAX_ll+ 2 * JPHEXT-KRIMX
+  IXOR=KIMAX_ll + 2 * JPHEXT-KRIMX-JPHEXT+1 ! -KRIMX
   IXEND=KIMAX_ll+ 2 * JPHEXT
   IYOR=1
   IYEND=KJMAX_ll+ 2 * JPHEXT
@@ -171,7 +171,7 @@ IF (KRIMX /=0) THEN
   ENDIF
 ! Western side, u-grid points : 2:NRIMX+2,1:NJMAX_ll+ 2 * JPHEXT
   IXOR=2
-  IXEND=KRIMX+2
+  IXEND=KRIMX+JPHEXT+1 ! +2
   IYOR=1 
   IYEND=KJMAX_ll+ 2 * JPHEXT
   CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
@@ -184,8 +184,8 @@ ENDIF
 !*       2.2  West-East LB zone with only  2 points at each side 
 !
 !   Western side : 2:3,1:NJMAX_ll+ 2 * JPHEXT
-IXOR=2
-IXEND=3
+IXOR=2 ! 2
+IXEND=JPHEXT+2 ! 3
 IYOR=1
 IYEND=KJMAX_ll+ 2 * JPHEXT
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
@@ -194,8 +194,8 @@ IF (IINFO /=1 ) THEN ! no empty intersection
   KJSIZEX4= IYENDI - IYORI +1 
 ENDIF
 !   Eastern side,  : NIMAX_ll+JPHEXT:NIMAX_ll+ 2 *JPHEXT,1:NJMAX_ll+2 *JPHEXT
-IXOR=KIMAX_ll+JPHEXT 
-IXEND=KIMAX_ll+ 2 * JPHEXT
+IXOR=KIMAX_ll + 2 * JPHEXT - JPHEXT      ! + JPHEXT 
+IXEND=KIMAX_ll+ 2 * JPHEXT - JPHEXT + JPHEXT  ! + 2*JPHEXT
 IYOR=1
 IYEND=KJMAX_ll+ 2 * JPHEXT
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
@@ -207,8 +207,8 @@ ENDIF
 !*       2.3  West-East LB zone with only  1 point at each side 
 !
 !   Western side : 1:1,1:NJMAX_ll+ 2 * JPHEXT
-IXOR=1
-IXEND=1
+IXOR=1  ! 1
+IXEND=JPHEXT ! 1
 IYOR=1
 IYEND=KJMAX_ll+ 2 * JPHEXT
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
@@ -217,8 +217,8 @@ IF (IINFO /=1) THEN   ! no empty intersection
   KJSIZEX2= IYENDI - IYORI +1 
 ENDIF
 !   East boundary, 1 point LB zone : NIMAX_ll+ 2 * JPHEXT:NIMAX_ll+ 2 *JPHEXT,1:NJMAX_ll+2 *JPHEXT
-IXOR=KIMAX_ll + 2 * JPHEXT 
-IXEND=KIMAX_ll + 2 * JPHEXT
+IXOR=KIMAX_ll  + 2 * JPHEXT - JPHEXT + 1 !  + 2 * JPHEXT
+IXEND=KIMAX_ll + 2 * JPHEXT - JPHEXT + JPHEXT !  + 2 * JPHEXT
 IYOR=1
 IYEND=KJMAX_ll+ 2 * JPHEXT
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
diff --git a/src/MNH/get_sizey_lb.f90 b/src/MNH/get_sizey_lb.f90
index b7fc55c6c..51491f23a 100644
--- a/src/MNH/get_sizey_lb.f90
+++ b/src/MNH/get_sizey_lb.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 init 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_GET_SIZEY_LB
@@ -89,6 +88,7 @@ END MODULE MODI_GET_SIZEY_LB
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    23/09/98
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -150,7 +150,7 @@ IF (KRIMY /=0) THEN
   IXOR=1
   IXEND=KIMAX_ll+ 2 * JPHEXT
   IYOR=1 
-  IYEND=KRIMY+1
+  IYEND=KRIMY+JPHEXT ! +1
   CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
   IF (IINFO/=1) THEN  ! no empty intersection
     KISIZEYF= IXENDI - IXORI +1
@@ -160,7 +160,7 @@ IF (KRIMY /=0) THEN
 !            1:NIMAX_ll+2 *JPHEXT,NJMAX_ll+JPHEXT-NRIMY +1:NJMAX_ll+ 2 *JPHEXT,
   IXOR=1
   IXEND=KIMAX_ll+ 2 * JPHEXT
-  IYOR=KJMAX_ll+ 2 * JPHEXT-KRIMY
+  IYOR=KJMAX_ll + 2 * JPHEXT-KRIMY-JPHEXT+1  ! -KRIMY
   IYEND=KJMAX_ll+ 2 * JPHEXT
   CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
   IF (IINFO/=1) THEN ! no empty intersection
@@ -173,7 +173,7 @@ IF (KRIMY /=0) THEN
   IXOR=1 
   IXEND=KIMAX_ll+ 2 * JPHEXT
   IYOR=2
-  IYEND=KRIMY+2
+  IYEND=KRIMY+JPHEXT+1   !+2
   CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
   IF (IINFO /= 1) THEN ! no empty intersection
     KISIZEYFV= IXENDI - IXORI +1
@@ -186,8 +186,8 @@ ENDIF
 !   Southern  side : 1:NIMAX_ll+ 2 * JPHEXT,2:3
 IXOR=1
 IXEND=KIMAX_ll+ 2 * JPHEXT
-IYOR=2
-IYEND=3
+IYOR=2  !2
+IYEND=JPHEXT+2 !3
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
 IF (IINFO /=1 ) THEN ! no empty intersection
   KISIZEY4= IXENDI - IXORI +1
@@ -196,8 +196,8 @@ ENDIF
 !   Northern side,  : 1:NIMAX_ll+2 *JPHEXT,NJMAX_ll+JPHEXT:NJMAX_ll+ 2 *JPHEXT
 IXOR= 1
 IXEND=KIMAX_ll+ 2 * JPHEXT
-IYOR=KJMAX_ll+JPHEXT
-IYEND=KJMAX_ll+ 2 * JPHEXT
+IYOR=KJMAX_ll + 2 * JPHEXT - JPHEXT      ! + JPHEXT
+IYEND=KJMAX_ll+ 2 * JPHEXT - JPHEXT + JPHEXT  ! + 2*JPHEXT
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
 IF (IINFO/=1) THEN ! no empty intersection
   KISIZEY4=IXENDI - IXORI +1
@@ -209,8 +209,8 @@ ENDIF
 !   Southern  side : 1:NIMAX_ll+ 2 * JPHEXT,1:1
 IXOR=1
 IXEND=KIMAX_ll+ 2 * JPHEXT
-IYOR=1
-IYEND=1
+IYOR=1   ! 1
+IYEND=JPHEXT  ! 1
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
 IF (IINFO /=1) THEN   ! no empty intersection
   KISIZEY2= IXENDI - IXORI +1
@@ -219,8 +219,8 @@ ENDIF
 !   Northern boundary, 1 point LB zone :1:NIMAX_ll+2 *JPHEXT, NJMAX_ll+ 2 * JPHEXT:NJMAX_ll+ 2 *JPHEXT,
 IXOR=1
 IXEND=KIMAX_ll + 2 * JPHEXT
-IYOR=KJMAX_ll + 2 * JPHEXT 
-IYEND=KJMAX_ll+ 2 * JPHEXT
+IYOR=KJMAX_ll + 2 * JPHEXT - JPHEXT + 1 !  + 2 * JPHEXT
+IYEND=KJMAX_ll+ 2 * JPHEXT - JPHEXT + JPHEXT !  + 2 * JPHEXT
 CALL GET_INTERSECTION_ll(IXOR,IYOR,IXEND,IYEND,IXORI,IYORI,IXENDI,IYENDI,"EXTE",IINFO)
 IF (IINFO /=1) THEN    ! no empty intersection
   KISIZEY2=  IXENDI - IXORI +1
diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90
index 670e7687f..c29a571d6 100644
--- a/src/MNH/gradient_m.f90
+++ b/src/MNH/gradient_m.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_GRADIENT_M
@@ -160,6 +159,7 @@ END MODULE MODI_GRADIENT_M
 !!    -------------
 !!      Original    18/07/94
 !!                  19/07/00  add the LFLAT switch (J. Stein)
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -525,14 +525,14 @@ IF (.NOT. LFLAT) THEN
 !
   DO JI=1+JPHEXT,IIU
     PGX_M_U(JI,:,KKU)=  ( PY(JI,:,KKU)-PY(JI-1,:,KKU)  )  / PDXX(JI,:,KKU) 
-    PGX_M_U(JI,:,KKA)=  -999.
+    PGX_M_U(JI,:,KKA)=   PGX_M_U(JI,:,KKU) ! -999.
   END DO
 !
   PGX_M_U(1,:,:)=PGX_M_U(IIU-2*JPHEXT+1,:,:)
 ELSE
 !  PGX_M_U = DXM(PY) / PDXX
-  PGX_M_U(1+JPHEXT:IIU,:,:) = ( PY(1+JPHEXT:IIU,:,:)-PY(JPHEXT:IIU-1,:,:) ) &
-                             / PDXX(1+JPHEXT:IIU,:,:)
+  PGX_M_U(1+1:IIU,:,:) = ( PY(1+1:IIU,:,:)-PY(1:IIU-1,:,:) ) & ! +JPHEXT
+                             / PDXX(1+1:IIU,:,:)
 !
   PGX_M_U(1,:,:)=PGX_M_U(IIU-2*JPHEXT+1,:,:)
 ENDIF  
@@ -650,14 +650,14 @@ IF (.NOT. LFLAT) THEN
 !
   DO JJ=1+JPHEXT,IJU
     PGY_M_V(:,JJ,KKU)=  ( PY(:,JJ,KKU)-PY(:,JJ-1,KKU)  )  / PDYY(:,JJ,KKU) 
-    PGY_M_V(:,JJ,KKA)=  -999.
+    PGY_M_V(:,JJ,KKA)=  PGY_M_V(:,JJ,KKU) ! -999.
   END DO
 !
   PGY_M_V(:,1,:)=PGY_M_V(:,IJU-2*JPHEXT+1,:)
 ELSE
 !  PGY_M_V = DYM(PY)/PDYY
-  PGY_M_V(:,1+JPHEXT:IJU,:) = ( PY(:,1+JPHEXT:IJU,:)-PY(:,JPHEXT:IJU-1,:) ) & 
-                               / PDYY(:,1+JPHEXT:IJU,:)
+  PGY_M_V(:,1+1:IJU,:) = ( PY(:,1+1:IJU,:)-PY(:,1:IJU-1,:) ) & ! +JPHEXT
+                               / PDYY(:,1+1:IJU,:)
 !
   PGY_M_V(:,1,:)=PGY_M_V(:,IJU-2*JPHEXT+1,:)
 ENDIF  
@@ -752,7 +752,7 @@ PGZ_M_W(:,:,IKTB:IKTE) =  (PY(:,:,IKTB:IKTE)-PY(:,:,IKTB-KL:IKTE-KL))  &
                            / PDZZ(:,:,IKTB:IKTE)
 PGZ_M_W(:,:,KKU)=  (PY(:,:,KKU)-PY(:,:,KKU-KL))  &
                            / PDZZ(:,:,KKU)
-PGZ_M_W(:,:,KKA)=-999.
+PGZ_M_W(:,:,KKA)= PGZ_M_W(:,:,KKU) ! -999.
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/gravity.f90 b/src/MNH/gravity.f90
index 91ec276c6..271d59102 100644
--- a/src/MNH/gravity.f90
+++ b/src/MNH/gravity.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/06/06 15:20:45
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_GRAVITY    
@@ -105,6 +104,7 @@ END MODULE MODI_GRAVITY
 !!    -------------
 !!      C.Lac - March 2011 - Splitted  from dyn_sources
 !!      Q.Rodier 06/15 correction on budget
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -115,6 +115,8 @@ USE MODD_CONF
 USE MODD_CST
 !
 USE MODI_SHUMAN
+USE MODI_BUDGET
+USE MODI_GET_HALO
 !  
 IMPLICIT NONE
 !  
@@ -158,11 +160,15 @@ IF( .NOT.L1D ) THEN     ! no buoyancy for 1D case
     ZRV_OV_RD = XRV / XRD
     ZWORK1(:,:,:) = 1.
     DO JWATER = 1 , 1+KRRL+KRRI                
+      CALL GET_HALO(PRT(:,:,:,JWATER))
       ZWORK1(:,:,:) = ZWORK1(:,:,:) + PRT(:,:,:,JWATER)
     END DO
 !
 !   compute the virtual potential temperature when water is present in any form
 !
+    CALL GET_HALO(PTHT)
+!
+    
     ZWORK2(:,:,:) = PTHT(:,:,:) * (1. + PRT(:,:,:,1)*ZRV_OV_RD) / ZWORK1(:,:,:)
   ELSE
 !
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index 9cd762643..243ded20a 100644
--- a/src/MNH/ice_adjust.f90
+++ b/src/MNH/ice_adjust.f90
@@ -163,6 +163,7 @@ END MODULE MODI_ICE_ADJUST
 !!      (E.Perraud)  06/08   add correction to avoid ice when T >0
 !!      S. Riette ice for EDKF
 !!      2012-02 Y. Seity,  add possibility to run with reversed vertical levels
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -177,6 +178,7 @@ USE MODD_BUDGET
 USE MODI_CONDENSATION
 USE MODI_BUDGET
 USE MODE_FMWRIT
+USE MODI_GET_HALO
 !
 IMPLICIT NONE
 !
@@ -276,10 +278,7 @@ LOGICAL             :: LPRETREATMENT, LNEW_ADJUST
 IIU = SIZE(PEXNREF,1)
 IJU = SIZE(PEXNREF,2)
 IKU = SIZE(PEXNREF,3)
-IIB = 1 + JPHEXT
-IIE = IIU - JPHEXT
-IJB = 1 + JPHEXT
-IJE = IJU - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=KKA+JPVEXT*KKL
 IKE=KKU-JPVEXT*KKL
 !
@@ -377,6 +376,7 @@ END IF
 !
 !*    compute the saturation vapor pressures at t+1
 !
+      CALL GET_HALO(ZT)
       ZW1(:,:,:) = EXP( XALPW - XBETAW/ZT(:,:,:) - XGAMW*ALOG(ZT(:,:,:)) ) ! e_sw
       ZW2(:,:,:) = EXP( XALPI - XBETAI/ZT(:,:,:) - XGAMI*ALOG(ZT(:,:,:)) ) ! e_si
       ZW1(:,:,:) =  MIN(PPABST(:,:,:)/2.,ZW1(:,:,:))   ! safety limitation
diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90
index de195da7c..dd9be1207 100644
--- a/src/MNH/ice_adjust_elec.f90
+++ b/src/MNH/ice_adjust_elec.f90
@@ -175,6 +175,7 @@ END MODULE MODI_ICE_ADJUST_ELEC
 !!      Original    2002 
 !!      C. Barthe   19/11/09   update to version 4.8.1
 !!      M. Chong    Mar. 2010  Add small ions
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -192,6 +193,7 @@ USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN, XBI
 USE MODI_CONDENSATION
 USE MODI_BUDGET
 USE MODE_FMWRIT
+USE MODI_GET_HALO
 !
 IMPLICIT NONE
 !
@@ -316,10 +318,7 @@ LOGICAL             :: LPRETREATMENT, LNEW_ADJUST
 IIU = SIZE(PEXNREF,1)
 IJU = SIZE(PEXNREF,2)
 IKU = SIZE(PEXNREF,3)
-IIB = 1 + JPHEXT
-IIE = IIU - JPHEXT
-IJB = 1 + JPHEXT
-IJE = IJU - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = IKU - JPVEXT
 !
@@ -415,6 +414,7 @@ DO JITER = 1, ITERMAX
 !
 !     compute the saturation vapor pressures at t+1
 !
+      CALL GET_HALO(ZT)
       ZW1(:,:,:) = EXP(XALPW - XBETAW/ZT(:,:,:) - XGAMW*ALOG(ZT(:,:,:))) ! e_sw
       ZW2(:,:,:) = EXP(XALPI - XBETAI/ZT(:,:,:) - XGAMI*ALOG(ZT(:,:,:))) ! e_si
       ZW1(:,:,:) = MIN(PPABST(:,:,:)/2.,ZW1(:,:,:))   ! safety limitation
diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90
index b92924f6c..08760e2d3 100644
--- a/src/MNH/ini_lb.f90
+++ b/src/MNH/ini_lb.f90
@@ -125,6 +125,7 @@ SUBROUTINE INI_LB(HINIFILE,HLUOUT,OLSOURCE,KSV,                    &
 !!      C.Lac           20/03/08    Add passive pollutants
 !!      M.Leriche       16/07/10    Add ice phase chemical species
 !!      Pialat/tulet    15/02/12    Add ForeFire scalars 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -147,6 +148,7 @@ USE MODD_ICE_C1R3_DESCR,  ONLY: C1R3NAMES
 USE MODD_CH_M9_n,         ONLY: CNAMES, CICNAMES
 USE MODD_LG,              ONLY: CLGNAMES
 USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
+USE MODD_PARAMETERS,      ONLY: JPHEXT
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -267,23 +269,23 @@ YDIR='--'
 CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,GHORELAX_UVWTH,IGRID,ILENCH,YCOMMENT,IRESP)
                                 !
 IF (GHORELAX_UVWTH) THEN 
-  IRIMX =(KSIZELBX_ll-1)/2   
-  IRIMXU=(KSIZELBXU_ll-1)/2  
-  IRIMY =(KSIZELBY_ll-1)/2
-  IRIMYV=(KSIZELBYV_ll-1)/2
-  IL3DX=2*ILBSIZEX+2
+  IRIMX =(KSIZELBX_ll-2*JPHEXT)/2   
+  IRIMXU=(KSIZELBXU_ll-2*JPHEXT)/2  
+  IRIMY =(KSIZELBY_ll-2*JPHEXT)/2
+  IRIMYV=(KSIZELBYV_ll-2*JPHEXT)/2
+  IL3DX=2*ILBSIZEX+2*JPHEXT
   IL3DXU=IL3DX
-  IL3DY=2*ILBSIZEY+2
+  IL3DY=2*ILBSIZEY+2*JPHEXT
   IL3DYV=IL3DY
 ELSE
   IRIMX=0
   IRIMXU=1
   IRIMY=0
   IRIMYV=1
-  IL3DX=2
-  IL3DY=2
-  IL3DXU=4
-  IL3DYV=4
+  IL3DX=2*JPHEXT ! 2
+  IL3DY=2*JPHEXT ! 2
+  IL3DXU=2 + 2*JPHEXT ! 4 
+  IL3DYV=2 + 2*JPHEXT ! 4 
 ENDIF
 !
 IF (KSIZELBXU_ll/= 0) THEN
@@ -363,15 +365,15 @@ CASE('READ')
     YDIR='--'      
     CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,GHORELAX_TKE,IGRID,ILENCH,YCOMMENT,IRESP)        
     IF (GHORELAX_TKE) THEN 
-      IRIMX=(KSIZELBXTKE_ll-1)/2   
-      IRIMY=(KSIZELBYTKE_ll-1)/2
-      IL3DX=2*ILBSIZEX+2
-      IL3DY=2*ILBSIZEY+2
+      IRIMX=(KSIZELBXTKE_ll-2*JPHEXT)/2   
+      IRIMY=(KSIZELBYTKE_ll-2*JPHEXT)/2
+      IL3DX=2*ILBSIZEX+2*JPHEXT
+      IL3DY=2*ILBSIZEY+2*JPHEXT
     ELSE
       IRIMX=0
       IRIMY=0
-      IL3DX=2
-      IL3DY=2
+      IL3DX=2*JPHEXT ! 2
+      IL3DY=2*JPHEXT ! 2
     ENDIF
 !
     YRECFM='LBXTKEM'
@@ -404,15 +406,15 @@ IF(KSIZELBXR_ll  > 0 ) THEN
   YRECFMX(:)=(/"LBXRVM","LBXRCM","LBXRRM","LBXRIM","LBXRSM","LBXRGM","LBXRHM"/)
   YRECFMY(:)=(/"LBYRVM","LBYRCM","LBYRRM","LBYRIM","LBYRSM","LBYRGM","LBYRHM"/)
   IF (GHORELAX_R) THEN 
-    IRIMX=(KSIZELBXR_ll-1)/2  
-    IRIMY= (KSIZELBYR_ll-1)/2  
-    IL3DX=2*ILBSIZEX+2
-    IL3DY=2*ILBSIZEY+2
+    IRIMX=(KSIZELBXR_ll-2*JPHEXT)/2  
+    IRIMY= (KSIZELBYR_ll-2*JPHEXT)/2  
+    IL3DX=2*ILBSIZEX+2*JPHEXT
+    IL3DY=2*ILBSIZEY+2*JPHEXT
   ELSE
     IRIMX=0
     IRIMY=0
-    IL3DX=2
-    IL3DY=2
+    IL3DX=2*JPHEXT ! 2
+    IL3DY=2*JPHEXT ! 2
   END IF
   !                               
   IRR=0
@@ -494,15 +496,15 @@ IF (KSV > 0) THEN
     YDIR='--'
     CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,GHORELAX_SV,IGRID,ILENCH,YCOMMENT,IRESP)  
     IF ( GHORELAX_SV ) THEN
-      IRIMX=(KSIZELBXSV_ll-1)/2   
-      IRIMY=(KSIZELBYSV_ll-1)/2
-      IL3DX=2*ILBSIZEX+2
-      IL3DY=2*ILBSIZEY+2
+      IRIMX=(KSIZELBXSV_ll-2*JPHEXT)/2   
+      IRIMY=(KSIZELBYSV_ll-2*JPHEXT)/2
+      IL3DX=2*ILBSIZEX+2*JPHEXT
+      IL3DY=2*ILBSIZEY+2*JPHEXT
     ELSE
       IRIMX=0
       IRIMY=0
-      IL3DX=2
-      IL3DY=2
+      IL3DX=2*JPHEXT !2
+      IL3DY=2*JPHEXT !2
     END IF
   END IF
 END IF
diff --git a/src/MNH/ini_les_cart_maskn.f90 b/src/MNH/ini_les_cart_maskn.f90
index e56746073..0a4912b08 100644
--- a/src/MNH/ini_les_cart_maskn.f90
+++ b/src/MNH/ini_les_cart_maskn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 les 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !#############################
 MODULE MODI_INI_LES_CART_MASKn
@@ -62,6 +61,7 @@ END MODULE MODI_INI_LES_CART_MASKn
 !!    -------------
 !!      Original         07/02/00
 !!      Modification     01/02/01 (D.Gazen) add module MODD_NSV for NSV variable
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !! --------------------------------------------------------------------------
 !
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index edf141e03..fa4cdb140 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -262,6 +262,7 @@ END MODULE MODI_INI_MODEL_n
 !!       P. Tulet      Nov 2014 accumulated moles of aqueous species that fall at the surface   
 !!                   JAn.  2015  (F. Brosse) bug in allocate XACPRAQ
 !!                   Dec 2014 (C.Lac) : For reproducibility START/RESTA
+!!                   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -919,15 +920,15 @@ ELSEIF( L2D ) THEN                         ! 2D case
        IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2)
 !
   IF ( LHORELAX_UVWTH ) THEN
-    NSIZELBX_ll=2*NRIMX+2
-    NSIZELBXU_ll=2*NRIMX+2
+    NSIZELBX_ll=2*NRIMX+2*JPHEXT
+    NSIZELBXU_ll=2*NRIMX+2*JPHEXT
     ALLOCATE(XLBXUM(IISIZEXFU,IJSIZEXFU,IKU))
     ALLOCATE(XLBXVM(IISIZEXF,IJSIZEXF,IKU))
     ALLOCATE(XLBXWM(IISIZEXF,IJSIZEXF,IKU))
     ALLOCATE(XLBXTHM(IISIZEXF,IJSIZEXF,IKU))
   ELSE
-    NSIZELBX_ll=2
-    NSIZELBXU_ll=4
+    NSIZELBX_ll=2*JPHEXT      ! 2
+    NSIZELBXU_ll=2*(JPHEXT+1) ! 4
     ALLOCATE(XLBXUM(IISIZEX4,IJSIZEX4,IKU))
     ALLOCATE(XLBXVM(IISIZEX2,IJSIZEX2,IKU))
     ALLOCATE(XLBXWM(IISIZEX2,IJSIZEX2,IKU))
@@ -936,10 +937,10 @@ ELSEIF( L2D ) THEN                         ! 2D case
 !
   IF (CTURB /= 'NONE') THEN
     IF ( LHORELAX_TKE) THEN
-      NSIZELBXTKE_ll=2* NRIMX+2
+      NSIZELBXTKE_ll=2* NRIMX+2*JPHEXT
       ALLOCATE(XLBXTKEM(IISIZEXF,IJSIZEXF,IKU))
     ELSE
-      NSIZELBXTKE_ll=2
+      NSIZELBXTKE_ll=2*JPHEXT  ! 2
       ALLOCATE(XLBXTKEM(IISIZEX2,IJSIZEX2,IKU))
     END IF
   ELSE
@@ -951,10 +952,10 @@ ELSEIF( L2D ) THEN                         ! 2D case
     IF (LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. LHORELAX_RI    &
          .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. LHORELAX_RH               &
        ) THEN
-      NSIZELBXR_ll=2* NRIMX+2
+      NSIZELBXR_ll=2* NRIMX+2*JPHEXT
       ALLOCATE(XLBXRM(IISIZEXF,IJSIZEXF,IKU,NRR))
     ELSE
-      NSIZELBXR_ll=2
+      NSIZELBXR_ll=2*JPHEXT  ! 2
       ALLOCATE(XLBXRM(IISIZEX2,IJSIZEX2,IKU,NRR))
     ENDIF
   ELSE
@@ -964,10 +965,10 @@ ELSEIF( L2D ) THEN                         ! 2D case
   !
   IF ( NSV > 0 ) THEN
     IF ( ANY( LHORELAX_SV(:)) ) THEN
-      NSIZELBXSV_ll=2* NRIMX+2
+      NSIZELBXSV_ll=2* NRIMX+2*JPHEXT
       ALLOCATE(XLBXSVM(IISIZEXF,IJSIZEXF,IKU,NSV))
     ELSE
-      NSIZELBXSV_ll=2
+      NSIZELBXSV_ll=2*JPHEXT  ! 2
       ALLOCATE(XLBXSVM(IISIZEX2,IJSIZEX2,IKU,NSV))
     END IF
   ELSE
@@ -1012,10 +1013,10 @@ ELSE                                   ! 3D case
      END IF
   END IF
 IF ( LHORELAX_UVWTH ) THEN
-    NSIZELBX_ll=2*NRIMX+2
-    NSIZELBXU_ll=2*NRIMX+2
-    NSIZELBY_ll=2*NRIMY+2
-    NSIZELBYV_ll=2*NRIMY+2
+    NSIZELBX_ll=2*NRIMX+2*JPHEXT
+    NSIZELBXU_ll=2*NRIMX+2*JPHEXT
+    NSIZELBY_ll=2*NRIMY+2*JPHEXT
+    NSIZELBYV_ll=2*NRIMY+2*JPHEXT
     ALLOCATE(XLBXUM(IISIZEXFU,IJSIZEXFU,IKU))
     ALLOCATE(XLBYUM(IISIZEYF,IJSIZEYF,IKU))
     ALLOCATE(XLBXVM(IISIZEXF,IJSIZEXF,IKU))
@@ -1025,10 +1026,10 @@ IF ( LHORELAX_UVWTH ) THEN
     ALLOCATE(XLBXTHM(IISIZEXF,IJSIZEXF,IKU))
     ALLOCATE(XLBYTHM(IISIZEYF,IJSIZEYF,IKU))
   ELSE
-    NSIZELBX_ll=2
-    NSIZELBXU_ll=4
-    NSIZELBY_ll=2
-    NSIZELBYV_ll=4
+    NSIZELBX_ll=2*JPHEXT  ! 2
+    NSIZELBXU_ll=2*(JPHEXT+1) ! 4
+    NSIZELBY_ll=2*JPHEXT  ! 2
+    NSIZELBYV_ll=2*(JPHEXT+1) ! 4
     ALLOCATE(XLBXUM(IISIZEX4,IJSIZEX4,IKU))
     ALLOCATE(XLBYUM(IISIZEY2,IJSIZEY2,IKU))
     ALLOCATE(XLBXVM(IISIZEX2,IJSIZEX2,IKU))
@@ -1041,13 +1042,13 @@ IF ( LHORELAX_UVWTH ) THEN
   !
   IF (CTURB /= 'NONE') THEN
     IF ( LHORELAX_TKE) THEN
-      NSIZELBXTKE_ll=2*NRIMX+2
-      NSIZELBYTKE_ll=2*NRIMY+2
+      NSIZELBXTKE_ll=2*NRIMX+2*JPHEXT
+      NSIZELBYTKE_ll=2*NRIMY+2*JPHEXT
       ALLOCATE(XLBXTKEM(IISIZEXF,IJSIZEXF,IKU))
       ALLOCATE(XLBYTKEM(IISIZEYF,IJSIZEYF,IKU))
     ELSE
-      NSIZELBXTKE_ll=2
-      NSIZELBYTKE_ll=2
+      NSIZELBXTKE_ll=2*JPHEXT  ! 2
+      NSIZELBYTKE_ll=2*JPHEXT  ! 2
       ALLOCATE(XLBXTKEM(IISIZEX2,IJSIZEX2,IKU))
       ALLOCATE(XLBYTKEM(IISIZEY2,IJSIZEY2,IKU))
     END IF
@@ -1062,13 +1063,13 @@ IF ( LHORELAX_UVWTH ) THEN
     IF (LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. LHORELAX_RI    &
           .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. LHORELAX_RH              &
        ) THEN
-      NSIZELBXR_ll=2*NRIMX+2
-      NSIZELBYR_ll=2*NRIMY+2
+      NSIZELBXR_ll=2*NRIMX+2*JPHEXT
+      NSIZELBYR_ll=2*NRIMY+2*JPHEXT
       ALLOCATE(XLBXRM(IISIZEXF,IJSIZEXF,IKU,NRR))
       ALLOCATE(XLBYRM(IISIZEYF,IJSIZEYF,IKU,NRR))
     ELSE
-      NSIZELBXR_ll=2
-      NSIZELBYR_ll=2
+      NSIZELBXR_ll=2*JPHEXT  ! 2
+      NSIZELBYR_ll=2*JPHEXT  ! 2
       ALLOCATE(XLBXRM(IISIZEX2,IJSIZEX2,IKU,NRR))
       ALLOCATE(XLBYRM(IISIZEY2,IJSIZEY2,IKU,NRR))
     ENDIF
@@ -1081,13 +1082,13 @@ IF ( LHORELAX_UVWTH ) THEN
   !
   IF ( NSV > 0 ) THEN
     IF ( ANY( LHORELAX_SV(:)) ) THEN
-      NSIZELBXSV_ll=2*NRIMX+2
-      NSIZELBYSV_ll=2*NRIMY+2
+      NSIZELBXSV_ll=2*NRIMX+2*JPHEXT
+      NSIZELBYSV_ll=2*NRIMY+2*JPHEXT
       ALLOCATE(XLBXSVM(IISIZEXF,IJSIZEXF,IKU,NSV))
       ALLOCATE(XLBYSVM(IISIZEYF,IJSIZEYF,IKU,NSV))
     ELSE
-      NSIZELBXSV_ll=2
-      NSIZELBYSV_ll=2
+      NSIZELBXSV_ll=2*JPHEXT  ! 2
+      NSIZELBYSV_ll=2*JPHEXT  ! 2
       ALLOCATE(XLBXSVM(IISIZEX2,IJSIZEX2,IKU,NSV))
       ALLOCATE(XLBYSVM(IISIZEY2,IJSIZEY2,IKU,NSV))
     END IF
diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90
index bad3b6c05..d1a3f7ca4 100644
--- a/src/MNH/ini_one_wayn.f90
+++ b/src/MNH/ini_one_wayn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 init 2006/10/16 14:23:23
 !-----------------------------------------------------------------
 !     #######################
       MODULE MODI_INI_ONE_WAY_n
@@ -141,6 +140,7 @@ SUBROUTINE INI_ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT,                 &
 !!    M. Leriche     11/2009  modify the LB*SVS for the aqueous phase chemistry
 !!                   07/2010  idem for ice phase chemical species
 !!    Bosseur & Filippi 07/2013 Adds Forefire
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !------------------------------------------------------------------------------
 !
@@ -240,10 +240,10 @@ REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZCHEMMI  ! chemical ice phase concentra
 CALL GOTO_MODEL(KDAD)
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-IIB=IIB-1
-IIE=IIE+1
-IJB=IJB-1
-IJE=IJE+1
+IIB=IIB-JPHEXT
+IIE=IIE+JPHEXT
+IJB=IJB-JPHEXT
+IJE=IJE+JPHEXT
 ALLOCATE(ZWORK(IIB:IIE,IJB:IJE,SIZE(PLBXTHM,3)))  ! can be smaller than child extended subdomain
 ! LS_FORCING routine can not correctly manage extra halo zone
 ! LB will be filled only with one layer halo zone for the moment
@@ -818,7 +818,7 @@ ENDIF
 !*    Vertical interpolation
 !
 IF ( SIZE(PLBX,1) /= 0 .AND. GVERT_INTERP) THEN
-  IF ( ILBX == KRIMX+1 ) THEN
+  IF ( ILBX == KRIMX+JPHEXT ) THEN
     PLBX(:,:,:) = VER_INTERP_LIN(PLBX(:,:,:),   &
                              KKLIN_LBXM(:,:,:),PCOEFLIN_LBXM(:,:,:))
   ELSE
@@ -828,7 +828,7 @@ IF ( SIZE(PLBX,1) /= 0 .AND. GVERT_INTERP) THEN
 END IF
 !
 IF ( SIZE(PLBY,1) /= 0 .AND. GVERT_INTERP) THEN
-  IF ( ILBY == KRIMY+1 ) THEN
+  IF ( ILBY == KRIMY+JPHEXT ) THEN
     PLBY(:,:,:) = VER_INTERP_LIN(PLBY(:,:,:),   &
                                    KKLIN_LBYM(:,:,:),PCOEFLIN_LBYM(:,:,:))
   ELSE
diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90
index 5d6346549..6f36ce8f7 100644
--- a/src/MNH/ini_prog_var.f90
+++ b/src/MNH/ini_prog_var.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/09/25 14:23:42
 !-----------------------------------------------------------------
 !     ########################
       MODULE MODI_INI_PROG_VAR
@@ -95,6 +94,7 @@ END MODULE MODI_INI_PROG_VAR
 !!                                      another MesoNH simulation
 !!                  Aug 2012 (J.-P. Chaboureau) read the chem-file descriptor
 !!                  Fev 2015  (J.-P. Chaboureau) read instant T insteed of M
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -165,11 +165,8 @@ LOGICAL :: GFOUND                         ! Return code when searching namelist
 CALL GET_MODEL_NUMBER_ll(IMI)
 CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
 !
-IIB=JPHEXT+1
-IIE=SIZE(XWT,1)-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IIU=SIZE(XWT,1)
-IJB=JPHEXT+1
-IJE=SIZE(XWT,2)-JPHEXT
 IJU=SIZE(XWT,2)
 IKU=SIZE(XWT,3)
 IIU_ll=NIMAX_ll + 2 * JPHEXT
@@ -424,19 +421,19 @@ ENDIF ! HCHEMFILE
 !
 IF (CTURB /= 'NONE') THEN
   IF ( LHORELAX_TKE) THEN
-    ALLOCATE(XLBXTKEM(2*NRIMX+2,IJU,IKU))
-    ALLOCATE(XLBYTKEM(IIU,2*NRIMY+2,IKU))
+    ALLOCATE(XLBXTKEM(2*NRIMX+2*JPHEXT,IJU,IKU))
+    ALLOCATE(XLBYTKEM(IIU,2*NRIMY+2*JPHEXT,IKU))
   ELSE
-    ALLOCATE(XLBXTKEM(2,IJU,IKU))
-    ALLOCATE(XLBYTKEM(IIU,2,IKU))
+    ALLOCATE(XLBXTKEM(2*JPHEXT,IJU,IKU))
+    ALLOCATE(XLBYTKEM(IIU,2*JPHEXT,IKU))
   END IF 
   !       
-  ILBX=SIZE(XLBXTKEM,1)/2-1     
-  XLBXTKEM(1:ILBX+1,:,:)         = XTKET(IIB-1:IIB-1+ILBX,:,:)
-  XLBXTKEM(ILBX+2:2*ILBX+2,:,:)  = XTKET(IIE+1-ILBX:IIE+1,:,:)
-  ILBY=SIZE(XLBYTKEM,2)/2-1
-  XLBYTKEM(:,1:ILBY+1,:)        = XTKET(:,IJB-1:IJB-1+ILBY,:)
-  XLBYTKEM(:,ILBY+2:2*ILBY+2,:) = XTKET(:,IJE+1-ILBY:IJE+1,:)
+  ILBX=SIZE(XLBXTKEM,1)/2-JPHEXT     
+  XLBXTKEM(1:ILBX+JPHEXT,:,:)                  = XTKET(1:ILBX+JPHEXT,:,:)
+  XLBXTKEM(ILBX+JPHEXT+1:2*ILBX+2*JPHEXT,:,:)  = XTKET(IIE+1-ILBX:IIE+JPHEXT,:,:)
+  ILBY=SIZE(XLBYTKEM,2)/2-JPHEXT
+  XLBYTKEM(:,1:ILBY+JPHEXT,:)                  = XTKET(:,1:ILBY+JPHEXT,:)
+  XLBYTKEM(:,ILBY+JPHEXT+1:2*ILBY+2*JPHEXT,:)  = XTKET(:,IJE+1-ILBY:IJE+JPHEXT,:)
 ELSE
   ALLOCATE(XLBXTKEM(0,0,0))
   ALLOCATE(XLBYTKEM(0,0,0))
@@ -444,19 +441,19 @@ END IF
 !
 IF ( NSV > 0 ) THEN 
   IF ( ANY( LHORELAX_SV(:)) ) THEN
-    ALLOCATE(XLBXSVM(2*NRIMX+2,IJU,IKU,NSV))
-    ALLOCATE(XLBYSVM(IIU,2*NRIMY+2,IKU,NSV))
+    ALLOCATE(XLBXSVM(2*NRIMX+2*JPHEXT,IJU,IKU,NSV))
+    ALLOCATE(XLBYSVM(IIU,2*NRIMY+2*JPHEXT,IKU,NSV))
   ELSE
-    ALLOCATE(XLBXSVM(2,IJU,IKU,NSV))
-    ALLOCATE(XLBYSVM(IIU,2,IKU,NSV))
+    ALLOCATE(XLBXSVM(2*JPHEXT,IJU,IKU,NSV))
+    ALLOCATE(XLBYSVM(IIU,2*JPHEXT,IKU,NSV))
   END IF
   !       
-  ILBX=SIZE(XLBXSVM,1)/2-1     
-  XLBXSVM(1:ILBX+1,:,:,:)         = XSVT(IIB-1:IIB-1+ILBX,:,:,:)
-  XLBXSVM(ILBX+2:2*ILBX+2,:,:,:)  = XSVT(IIE+1-ILBX:IIE+1,:,:,:)
-  ILBY=SIZE(XLBYSVM,2)/2-1
-  XLBYSVM(:,1:ILBY+1,:,:)        = XSVT(:,IJB-1:IJB-1+ILBY,:,:)
-  XLBYSVM(:,ILBY+2:2*ILBY+2,:,:) = XSVT(:,IJE+1-ILBY:IJE+1,:,:)
+  ILBX=SIZE(XLBXSVM,1)/2-JPHEXT     
+  XLBXSVM(1:ILBX+JPHEXT,:,:,:)                  = XSVT(1:ILBX+JPHEXT,:,:,:)
+  XLBXSVM(ILBX+JPHEXT+1:2*ILBX+2*JPHEXT,:,:,:)  = XSVT(IIE+1-ILBX:IIE+JPHEXT,:,:,:)
+  ILBY=SIZE(XLBYSVM,2)/2-JPHEXT
+  XLBYSVM(:,1:ILBY+JPHEXT,:,:)                  = XSVT(:,1:ILBY+JPHEXT,:,:)
+  XLBYSVM(:,ILBY+JPHEXT+1:2*ILBY+2*JPHEXT,:,:)  = XSVT(:,IJE+1-ILBY:IJE+JPHEXT,:,:)
 ELSE
   ALLOCATE(XLBXSVM(0,0,0,0))
   ALLOCATE(XLBYSVM(0,0,0,0))
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index dc4140b6c..38743f514 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:27
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_INI_SEG_n
@@ -161,6 +160,7 @@ END MODULE MODI_INI_SEG_n
 !!                       02/2012   add GFOREFIRE (Pialat/Tulet)
 !!                       05/2014   missing reading of IMASDEV before COUPLING
 !!                                 test (Escobar)
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90
index c6e9e1d7d..0d9368494 100644
--- a/src/MNH/ini_size_spawn.f90
+++ b/src/MNH/ini_size_spawn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 spawn 2006/05/23 15:45:38
 !-----------------------------------------------------------------
 !#########################
 MODULE MODI_INI_SIZE_SPAWN
@@ -65,6 +64,7 @@ END MODULE MODI_INI_SIZE_SPAWN
 !!    -------------
 !!
 !!      Original     13/07/99
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -272,20 +272,20 @@ END IF
 !
 !*     1.5   Position of model 2 domain relative to model 1 
 !
-NXEND = NXOR + JPHEXT + NXSIZE
-NYEND = NYOR + JPHEXT + NYSIZE
+NXEND = NXOR + NXSIZE +2*JPHEXT -1
+NYEND = NYOR + NYSIZE +2*JPHEXT -1
 !
 !*     1.6  model 2 LBC   (caution: implicitely JPHEXT = 1)
 !
 CLBCX(:) = 'OPEN'
-IF (NXOR  == 1          .AND. NXEND    == DIM_MODEL(1)%NIMAX_ll+2) CLBCX(:) = HLBCX(:)
+IF (NXOR  == 1          .AND. NXEND    == DIM_MODEL(1)%NIMAX_ll+2*JPHEXT) CLBCX(:) = HLBCX(:)
 IF (NXOR  == 1          .AND. HLBCX(1) == 'WALL')     CLBCX(1) = 'WALL'
-IF (NXEND == DIM_MODEL(1)%NIMAX_ll+2 .AND. HLBCX(2) == 'WALL')     CLBCX(2) = 'WALL'
+IF (NXEND == DIM_MODEL(1)%NIMAX_ll+2*JPHEXT .AND. HLBCX(2) == 'WALL')     CLBCX(2) = 'WALL'
 !
 CLBCY(:) = 'OPEN'
-IF (NYOR  == 1          .AND. NYEND    == DIM_MODEL(1)%NJMAX_ll+2) CLBCY(:) = HLBCY(:)
+IF (NYOR  == 1          .AND. NYEND    == DIM_MODEL(1)%NJMAX_ll+2*JPHEXT) CLBCY(:) = HLBCY(:)
 IF (NYOR  == 1          .AND. HLBCY(1) == 'WALL')     CLBCY(1) = 'WALL'
-IF (NYEND == DIM_MODEL(1)%NJMAX_ll+2 .AND. HLBCY(2) == 'WALL')     CLBCY(2) = 'WALL'
+IF (NYEND == DIM_MODEL(1)%NJMAX_ll+2*JPHEXT .AND. HLBCY(2) == 'WALL')     CLBCY(2) = 'WALL'
 !
 !
 !*   2    CALL OF INITIALIZATION PARALLEL ROUTINES
diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90
index aeacf0606..3a94236b6 100644
--- a/src/MNH/ini_sizen.f90
+++ b/src/MNH/ini_sizen.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:27
 !-----------------------------------------------------------------
 !     #################
       MODULE MODI_INI_SIZE_n
@@ -100,6 +99,7 @@ END MODULE MODI_INI_SIZE_n
 !!             Oct. 10 2001 (I. Mallet)  allow namelists in different orders
 !!             Jan. 2004   (V. Masson)  externalization of surface
 !!             June 2006   (D. Gazen) _n: no more read of updated var. 
+!!             J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -151,6 +151,7 @@ INTEGER             :: IGRID   ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH  ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT! comment string in LFIFM file
 CHARACTER (LEN=16)  :: YRECFM  ! Name of the desired field in LFIFM file
+INTEGER             :: IJPHEXT
 !
 !-------------------------------------------------------------------------------
 !
@@ -226,6 +227,22 @@ YRECFM='KMAX'
 YDIR='--'
 CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,NKMAX,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+YRECFM='JPHEXT'
+YDIR='--'
+CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,IJPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+IF ( IJPHEXT .NE. JPHEXT ) THEN
+   WRITE(ILUOUT,FMT=*) ' INI_SIZE_N : JPHEXT in namelist NAM_CONF ( or default or .des value )&
+        & JPHEXT=',JPHEXT
+   WRITE(ILUOUT,FMT=*)' different from LFI file=',HINIFILE ,' value JPHEXT=',IJPHEXT
+   WRITE(ILUOUT,FMT=*) '-> JOB ABORTED'
+   CALL CLOSE_ll(CLUOUT,IOSTAT=IRESP)
+   CALL ABORT   
+   STOP  
+   !WRITE(NLUOUT,FMT=*) ' JPHEXT HAS BEEN SET TO ', IJPHEXT
+   !IJPHEXT = JPHEXT
+END IF
+!
 IF (KMI == 1) THEN   ! special initialisation for the outer model
   NDXRATIO_ALL(KMI) = 1
   NDYRATIO_ALL(KMI) =  1
@@ -249,8 +266,8 @@ IF (LEN_TRIM(CDAD_NAME(KMI))>0) THEN
   CALL FMREAD(HINIFILE,'DYRATIO',HLUOUT,YDIR,NDYRATIO_ALL(KMI),IGRID,ILENCH,YCOMMENT,IRESP)
   CALL FMREAD(HINIFILE,'XOR',HLUOUT,YDIR,NXOR_ALL(KMI),IGRID,ILENCH,YCOMMENT,IRESP)
   CALL FMREAD(HINIFILE,'YOR',HLUOUT,YDIR,NYOR_ALL(KMI),IGRID,ILENCH,YCOMMENT,IRESP)
-  NXEND_ALL(KMI)=NXOR_ALL(KMI)+NIMAX_ll/NDXRATIO_ALL(KMI)+JPHEXT
-  NYEND_ALL(KMI)=NYOR_ALL(KMI)+NJMAX_ll/NDYRATIO_ALL(KMI)+JPHEXT
+  NXEND_ALL(KMI)=NXOR_ALL(KMI)-1 + NIMAX_ll/NDXRATIO_ALL(KMI) +2*JPHEXT
+  NYEND_ALL(KMI)=NYOR_ALL(KMI)-1 + NJMAX_ll/NDYRATIO_ALL(KMI) +2*JPHEXT
 ELSE
   NDXRATIO_ALL(KMI)=1
   NDYRATIO_ALL(KMI)=1
diff --git a/src/MNH/ini_spawn_lsn.f90 b/src/MNH/ini_spawn_lsn.f90
index ac69e12ad..f2a63d23e 100644
--- a/src/MNH/ini_spawn_lsn.f90
+++ b/src/MNH/ini_spawn_lsn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 init 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     #########################
       MODULE MODI_INI_SPAWN_LS_n
@@ -139,6 +138,7 @@ END MODULE MODI_INI_SPAWN_LS_n
 !!                   22/01/98  ( J. Stein ) add the vertical interpolation
 !!                   09/07/98  ( J. Stein ) bug in the storage of the interp
 !!                                          coeff for U
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -160,6 +160,8 @@ USE MODI_COEF_VER_INTERP_LIN
 USE MODI_VER_INTERP_LIN
 USE MODI_VERT_COORD
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -236,10 +238,10 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTZSMT,ZZSMT
 CALL GOTO_MODEL(KDAD)
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-IIB=IIB-1
-IIE=IIE+1
-IJB=IJB-1
-IJE=IJE+1
+IIB=IIB-JPHEXT
+IIE=IIE+JPHEXT
+IJB=IJB-JPHEXT
+IJE=IJE+JPHEXT
 !
 !*      1 GATHER LS FIELD FOR THE CHILD MODEL KMI
 !
@@ -320,6 +322,7 @@ IF ( GVERT_INTERP ) THEN
                  PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, &
                  2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1,         &
                  HLBCX,HLBCY,ZTZS,ZZSLS(IIB:IIE,IJB:IJE,:)        )
+  CALL MPPDB_CHECK3D(ZZSLS,"INI_SPAWN_LS::ZZSLS",PRECISION)
   !
   ZZSMTLS=0.
   CALL BIKHARDT (PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, &
@@ -560,6 +563,8 @@ CALL BIKHARDT (PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, &
                PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, &
                2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,2,         &
                HLBCX,HLBCY,ZTLSUM,PLSUM(IIB:IIE,IJB:IJE,:))
+CALL MPPDB_CHECK3D(PLSUM,"INI_SPAWN_LS::PLSUM",PRECISION)
+
 !
 IF ( SIZE(PLSUS,1) /= 0 ) THEN
   !
diff --git a/src/MNH/interp3d.f90 b/src/MNH/interp3d.f90
index dd1806a86..b5c2faa9d 100644
--- a/src/MNH/interp3d.f90
+++ b/src/MNH/interp3d.f90
@@ -6,9 +6,7 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 convert 2006/05/18 13:07:25
 !-----------------------------------------------------------------
-!     ######spl
 MODULE MODI_INTERP3D
 !#################################
 !
@@ -59,6 +57,7 @@ END MODULE MODI_INTERP3D
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    21/03/97
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -94,13 +93,10 @@ INTEGER :: IKU
 !
 !*         1.    
 !                 ------------
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IPU=SIZE(PFIELDAP,3)
 IKB=1 +JPVEXT
 IKU=SIZE(XZHAT)
-IIB=JPHEXT+1
-IIE=NIMAX+JPHEXT
-IJB=JPHEXT+1
-IJE=NJMAX+JPHEXT
 ZDIXEPS=10.*EPSILON(1.)
 !
 SELECT CASE (KGRID)
diff --git a/src/MNH/ion_attach_elec.f90 b/src/MNH/ion_attach_elec.f90
index bf4409491..670113ae4 100644
--- a/src/MNH/ion_attach_elec.f90
+++ b/src/MNH/ion_attach_elec.f90
@@ -74,6 +74,7 @@ END MODULE MODI_ION_ATTACH_ELEC
 !!    -------------
 !!      Original    2010
 !!      Modifications:
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -91,6 +92,7 @@ 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_ll
 !
 USE MODI_BUDGET
 USE MODI_MOMG
@@ -149,10 +151,7 @@ REAL    :: ZCOMB         ! Recombination
 ZCQD = 4 * XPI * XEPSILON * XBOLTZ / XECHARGE
 ZCDIF = XBOLTZ /XECHARGE
 !
-IIB = 1 + JPHEXT
-IIE = SIZE(PTHT,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PTHT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PTHT,3) - JPVEXT
 !
diff --git a/src/MNH/ion_bound4drift.f90 b/src/MNH/ion_bound4drift.f90
index 8915f9f90..0c2454557 100644
--- a/src/MNH/ion_bound4drift.f90
+++ b/src/MNH/ion_bound4drift.f90
@@ -54,6 +54,7 @@ END MODULE MODI_ION_BOUND4DRIFT
 !!    AUTHOR
 !!    ------
 !!          M. Chong     12/2010
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!	
 !-------------------------------------------------------------------------------
 !
@@ -89,10 +90,7 @@ INTEGER :: IJB, IJE  ! index of first and last inner mass points along y
 !              ----------------------------------------------
 !
 ! beginning and end indexes of the physical subdomain
-IIB = 1 + JPHEXT
-IIE = SIZE(PEFIELDU,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PEFIELDU,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/ion_drift.f90 b/src/MNH/ion_drift.f90
index 040bcd971..438dcb8bf 100644
--- a/src/MNH/ion_drift.f90
+++ b/src/MNH/ion_drift.f90
@@ -40,6 +40,7 @@ END MODULE MODI_ION_DRIFT
 !!    AUTHOR
 !!    ------
 !!          M. Chong      01/2010
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -118,10 +119,7 @@ CALL MYPROC_ELEC_ll (IPROC)
 !              ----------------------------------------------
 !
 ! beginning and end indexes of the physical subdomain
-IIB = 1 + JPHEXT
-IIE = SIZE(PSVT,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PSVT,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PSVT,3) - JPVEXT
 IKU = SIZE(PSVT,3)
diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90
index 485f0d4ce..ce3bddccc 100644
--- a/src/MNH/khko_notadjust.f90
+++ b/src/MNH/khko_notadjust.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 microph 2007/03/23 11:52:41
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_KHKO_NOTADJUST
@@ -92,6 +91,7 @@ END MODULE MODI_KHKO_NOTADJUST
 !!
 !!    MODIFICATIONS
 !!    -------------
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -192,10 +192,7 @@ INTEGER :: JK            ! For loop
 !               -------------
 !
 CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
 !
diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90
index 32d0bd410..eb64a5fca 100644
--- a/src/MNH/lidar.f90
+++ b/src/MNH/lidar.f90
@@ -83,6 +83,7 @@ END MODULE MODI_LIDAR
 !!      Original      04/10/07
 !!      JP Chaboureau 12/02/10 change dust refraction index
 !!                             add inputs (lidar charact. and cloud fraction)
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -104,6 +105,7 @@ USE MODD_ICE_C1R3_DESCR,  ONLY : XLBEXI,                      &
 !
 USE MODI_BHMIE_WATER    ! Gamma or mono dispersed size distributions
 USE MODI_BHMIE_AEROSOLS ! Lognormal or mono dispersed size distributions
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -203,10 +205,7 @@ REAL                :: ZLBEXR
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PRHO,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PRHO,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PRHO,3) - JPVEXT
 !
diff --git a/src/MNH/mesonh.f90 b/src/MNH/mesonh.f90
index cc9942d87..834639429 100644
--- a/src/MNH/mesonh.f90
+++ b/src/MNH/mesonh.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/22 10:53:31
 !-----------------------------------------------------------------
 !     ##############
       PROGRAM MESONH
@@ -77,6 +76,7 @@
 !!                                           remplaced by infinite loop
 !!      J.Escobar                 19/03/2008  rename INIT to INIT_MNH --> grib problem
 !!      J.Escobar                  6/11/2014  remove test on LCHECK otherwise never call MPPDB_INIT
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -166,7 +166,6 @@ END DO
 !
 IF (LCHECK) THEN
   CALL MPPDB_BARRIER()
-  CALL MPPDB_BARRIER()
 ELSE
   CALL END_PARA_ll(IINFO_ll)
 END IF
diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90
index f92124d58..3743e523f 100644
--- a/src/MNH/mnhopen_aux_io_surf.f90
+++ b/src/MNH/mnhopen_aux_io_surf.f90
@@ -47,6 +47,7 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    09/2003 
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -91,6 +92,7 @@ INTEGER           :: IJMAX          ! number of points in Y direction
 !
 INTEGER           :: ILU            ! 1D physical dimension of XCOVER
 REAL, DIMENSION(:),   ALLOCATABLE :: ZFULL  ! total cover
+INTEGER           :: IJPHEXT
 !-------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------
 ! WARNING : this routine works only on ONE processor jobs
@@ -129,6 +131,17 @@ COUTFILE = HFILE
 ! 
 CALL FMREAD(HFILE,'IMAX',COUT,'--',IIMAX,IGRID,ILENCH,YCOMMENT,IRESP)
 CALL FMREAD(HFILE,'JMAX',COUT,'--',IJMAX,IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMREAD(HFILE,'JPHEXT',COUT,'--',IJPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+IF ( IJPHEXT .NE. JPHEXT ) THEN
+   WRITE(NLUOUT,FMT=*) ' MNHOPEN_AUX_IO : JPHEXT in PRE_PGD1.nam/NAM_CONF_PGD ( or default value )&
+        JPHEXT=',JPHEXT
+   WRITE(NLUOUT,FMT=*) ' different from PGD files=',HFILE ,' value JPHEXT=',IJPHEXT
+   WRITE(NLUOUT,FMT=*) '-> JOB ABORTED'
+   CALL CLOSE_ll(COUT,IOSTAT=IRESP)
+   CALL ABORT  
+   STOP   
+END IF
+!
 NIU_ALL = (IIMAX+2*JPHEXT)
 NJU_ALL = (IJMAX+2*JPHEXT)
 NIB_ALL = 1 + JPHEXT
diff --git a/src/MNH/modd_conf.f90 b/src/MNH/modd_conf.f90
index bd2bd2abd..24c36a3c1 100644
--- a/src/MNH/modd_conf.f90
+++ b/src/MNH/modd_conf.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:27
 !-----------------------------------------------------------------
 !     #################
       MODULE MODD_CONF
@@ -50,6 +49,7 @@
 !!      P. Jabouille                  18/04/02   add NBUGFIX and CBIBUSER
 !!      C. Lac                        01/04/14   add LCHECK     
 !!      G. Tanguy                     01/04/14   add LCOUPLING
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -109,6 +109,8 @@ CHARACTER(LEN=6),SAVE :: CPROGRAM ! CPROGRAM is the program currently running:
 !
 INTEGER,SAVE      :: NHALO        ! Size of the halo for parallel distribution
 !
+!INTEGER,SAVE      :: JPHEXT = 1     ! Horizontal External points number
+!
 CHARACTER (LEN=10),SAVE :: CSPLIT ! kind of domain splitting for parallel distribution
                                   !  "BSPLITTING","XSPLITTING","YSPLITTING"
 LOGICAL,SAVE      :: LLG         ! Logical to use lagrangian variables
diff --git a/src/MNH/modd_parameters.f90 b/src/MNH/modd_parameters.f90
index 18d193a7f..4eee85095 100644
--- a/src/MNH/modd_parameters.f90
+++ b/src/MNH/modd_parameters.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODD_PARAMETERS
@@ -42,6 +41,7 @@
 !!      Modification 22/01/01 (D.Gazen) change JPSVMAX from 100 to 200
 !!                                         and JPBUMAX from 120 to 250
 !!      Modification 17/05/04 (P.Jabouille) add JPOUTMAX
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -49,7 +49,11 @@
 !
 IMPLICIT NONE
 !
-INTEGER, PARAMETER :: JPHEXT = 1      ! Horizontal External points number
+!JUAN CYCLK
+!INTEGER, PARAMETER :: JPHEXT = 3     ! Horizontal External points number
+INTEGER,SAVE      :: JPHEXT = 1     ! Horizontal External points number
+!
+!JUAN CYCLK
 INTEGER, PARAMETER :: JPVEXT = 1      ! Vertical External points number
 INTEGER, PARAMETER :: JPVEXT_TURB = 1      ! Vertical External points number
 INTEGER, PARAMETER :: JPMODELMAX = 8  ! Maximum allowed number of nested models 
diff --git a/src/MNH/mode_gridcart.f90 b/src/MNH/mode_gridcart.f90
index c76afc4ed..afd145ac1 100644
--- a/src/MNH/mode_gridcart.f90
+++ b/src/MNH/mode_gridcart.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/29 16:49:15
 !-----------------------------------------------------------------
 !     ####################
       MODULE MODE_GRIDCART
@@ -37,6 +36,7 @@
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    06/05/94 
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !--------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -164,12 +164,9 @@ CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
 !
 IIU = UBOUND(PXHAT,1)         
 IJU = UBOUND(PYHAT,1)        
-IKU = UBOUND(PZHAT,1)          
-IIE = IIU-JPHEXT
-IJE = IJU-JPHEXT
+IKU = UBOUND(PZHAT,1)
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKE = IKU-JPVEXT
-IIB = 1+JPHEXT
-IJB = 1+JPHEXT
 IKB = 1+JPVEXT
 NULLIFY(TZHALO1_ll)
 !
diff --git a/src/MNH/mode_interpol_beam.f90 b/src/MNH/mode_interpol_beam.f90
index 8205b8c6d..6c16a7a8f 100644
--- a/src/MNH/mode_interpol_beam.f90
+++ b/src/MNH/mode_interpol_beam.f90
@@ -41,6 +41,7 @@
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    29/03/04
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-----------------------------------------------------------------
 USE MODD_RADAR, ONLY: NBRAD,NBELEV,NBAZIM,NBSTEPMAX,NPTS_H,NPTS_V
@@ -70,6 +71,7 @@ CONTAINS
 
     USE MODD_PARAMETERS
     USE MODD_GRID_n
+    USE MODE_ll
 !
     IMPLICIT NONE
 !
@@ -102,11 +104,8 @@ CONTAINS
     IIU=SIZE(PZM,1)
     IJU=SIZE(PZM,2)
     IKU=SIZE(PZM,3)
-    IIB = JPHEXT + 1
-    IJB = JPHEXT + 1
+    CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
     IKB = JPVEXT + 1
-    IIE = IIU - JPHEXT
-    IJE = IJU - JPHEXT
     IKE = IKU - JPVEXT
 ! 
     
@@ -180,6 +179,7 @@ CONTAINS
 
     USE MODD_PARAMETERS
     USE MODD_GRID_n
+    USE MODE_ll
 !
     IMPLICIT NONE
 !
@@ -219,11 +219,8 @@ CONTAINS
     IIU=SIZE(PZM,1)
     IJU=SIZE(PZM,2)
     IKU=SIZE(PZM,3)
-    IIB = JPHEXT + 1
-    IJB = JPHEXT + 1
+    CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
     IKB = JPVEXT + 1
-    IIE = IIU - JPHEXT
-    IJE = IJU - JPHEXT
     IKE = IKU - JPVEXT
 ! 
     DO JAZ=1, INBAZIM
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 6f2dca219..59261da34 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -231,6 +231,7 @@ END MODULE MODI_MODEL_n
 !!      J.Escobar 20/04/2015: missing UPDATE_HALO before UPDATE_HALO2
 !!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
 !!                                      aircraft, ballon and profiler
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -834,7 +835,9 @@ ZTIME1=ZTIME2
 IF( LLG .AND. IMI==1 ) CALL SETLB_LG
 !
 IF (CCONF == "START" .OR. (CCONF == "RESTA" .AND. KTCOUNT /= 1 )) THEN
-        CALL BOUNDARIES (                                                   &
+CALL MPPDB_CHECK3DM("before BOUNDARIES:XUT, XVT, XWT, XTHT, XTKET",PRECISION,&
+                   &  XUT, XVT, XWT, XTHT, XTKET)
+CALL BOUNDARIES (                                                   &
             XTSTEP,CLBCX,CLBCY,NRR,NSV,KTCOUNT,                     &
             XLBXUM,XLBXVM,XLBXWM,XLBXTHM,XLBXTKEM,XLBXRM,XLBXSVM,   &
             XLBYUM,XLBYVM,XLBYWM,XLBYTHM,XLBYTKEM,XLBYRM,XLBYSVM,   &
@@ -842,7 +845,9 @@ IF (CCONF == "START" .OR. (CCONF == "RESTA" .AND. KTCOUNT /= 1 )) THEN
             XLBYUS,XLBYVS,XLBYWS,XLBYTHS,XLBYTKES,XLBYRS,XLBYSVS,   &
             XRHODJ,                                                 &
             XUT, XVT, XWT, XTHT, XTKET, XRT, XSVT, XSRCT            )
-END IF    
+CALL MPPDB_CHECK3DM("after  BOUNDARIES:XUT, XVT, XWT, XTHT, XTKET",PRECISION,&
+                   &  XUT, XVT, XWT, XTHT, XTKET)
+END IF
 !
 CALL SECOND_MNH2(ZTIME2)
 !
@@ -1445,6 +1450,8 @@ XTIME_LES_BU_PROCESS = 0.
 !
 !
 !
+CALL MPPDB_CHECK3DM("before ADVEC_METSV:XU/V/W/TH/TKE/T,XRHODJ",PRECISION,&
+                   &  XUT, XVT, XWT, XTHT, XTKET,XRHODJ)
  CALL ADVECTION_METSV ( CLUOUT, YFMFILE, GCLOSE_OUT,CUVW_ADV_SCHEME, &
                  CMET_ADV_SCHEME, CSV_ADV_SCHEME, NSPLIT,            &
                  LSPLIT_CFL, XSPLIT_CFL, LCFL_WRIT,                  &
@@ -1453,6 +1460,8 @@ XTIME_LES_BU_PROCESS = 0.
                  XTHVREF, XRHODJ, XDXX, XDYY, XDZZ, XDZX, XDZY,      &
                  XRTHS, XRRS, XRTKES, XRSVS,                         &
                  XRTHS_CLD, XRRS_CLD, XRSVS_CLD, XRTKEMS             )
+CALL MPPDB_CHECK3DM("after  ADVEC_METSV:XU/V/W/TH/TKE/T,XRHODJ ",PRECISION,&
+                   &  XUT, XVT, XWT, XTHT, XTKET,XRHODJ)
 !
 CALL SECOND_MNH2(ZTIME2)
 !
@@ -1482,6 +1491,9 @@ ZTIME1 = ZTIME2
 XTIME_BU_PROCESS = 0.
 XTIME_LES_BU_PROCESS = 0.
 !
+!MPPDB_CHECK_LB=.TRUE.
+CALL MPPDB_CHECK3DM("before ADVEC_UVW:XU/V/W/TH/TKE/T,XRHODJ,XRU/V/Ws",PRECISION,&
+                   &  XUT, XVT, XWT, XTHT, XTKET,XRHODJ,XRUS,XRVS,XRWS)
 IF (CUVW_ADV_SCHEME(1:3)=='CEN') THEN
   IF (CUVW_ADV_SCHEME=='CEN4TH') THEN
     NULLIFY(TZFIELDC_ll)
@@ -1518,6 +1530,9 @@ ELSE
                  XRUS_PRES, XRVS_PRES, XRWS_PRES                     )
 END IF
 !
+CALL MPPDB_CHECK3DM("after  ADVEC_UVW:XU/V/W/TH/TKE/T,XRHODJ,XRU/V/Ws",PRECISION,&
+                   &  XUT, XVT, XWT, XTHT, XTKET,XRHODJ,XRUS,XRVS,XRWS)
+!MPPDB_CHECK_LB=.FALSE.
 !
 CALL SECOND_MNH2(ZTIME2)
 !
diff --git a/src/MNH/modn_conf.f90 b/src/MNH/modn_conf.f90
index 319996596..50298fa9e 100644
--- a/src/MNH/modn_conf.f90
+++ b/src/MNH/modn_conf.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 modn 2006/06/23 10:47:05
 !-----------------------------------------------------------------
 !     ################
       MODULE MODN_CONF
@@ -72,16 +71,19 @@
 !!      P Jabouille (21/07/99)     add NHALO and CSPLIT
 !!      P Jabouille (26/06/01)     lagrangian variable management
 !!      V Masson    (03/01/05)     suppress L1D,L2D,LPACK
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
 !             ------------
 !
 USE MODD_CONF
+USE MODD_PARAMETERS, ONLY : JPHEXT
 !
 IMPLICIT NONE
 !
 NAMELIST/NAM_CONF/CCONF,LFLAT,NMODEL,CEQNSYS,NVERB,CEXP,CSEG,LFORCING, &
-                  NHALO,CSPLIT,LLG,LINIT_LG,CINIT_LG,LNOMIXLG,LCHECK
+                  NHALO,CSPLIT,LLG,LINIT_LG,CINIT_LG,LNOMIXLG,LCHECK, &
+                  JPHEXT
 !
 END MODULE MODN_CONF
diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90
index 3632d5cbf..7dc3b66c4 100644
--- a/src/MNH/num_diff.f90
+++ b/src/MNH/num_diff.f90
@@ -213,6 +213,7 @@ END MODULE MODI_NUM_DIFF
 !!                 05/06    (C.Lac)        Remove EPS
 !!                 05/07    (C.Lac)        Separation between variables
 !!                 07/09    (C.Lac)        Correction on budget calls
+!!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -305,52 +306,52 @@ GTKEALLOC = SIZE(PTKEM,1) /= 0
 !
 IF (ONUMDIFU) THEN
  IGRID = 2
- IF(NHALO == 1) THEN
+!!$ IF(NHALO == 1) THEN
   TZHALO2LIST => TPHALO2LIST
   TZHALO2LSLIST => TPHALO2LSLIST
   CALL NUM_DIFF_ALGO(PRUS, PUM, IGRID, MXM(PRHODJ), PDK2U, PDK4U, &
                      PLSUM,TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
- ELSE
-  CALL NUM_DIFF_ALGO(PRUS, PUM, IGRID, MXM(PRHODJ), PDK2U, PDK4U, PLSUM )
- ENDIF
+!!$ ELSE
+!!$  CALL NUM_DIFF_ALGO(PRUS, PUM, IGRID, MXM(PRHODJ), PDK2U, PDK4U, PLSUM )
+!!$ ENDIF
 !
  IGRID = 3
- IF(NHALO == 1) THEN
+!!$ IF(NHALO == 1) THEN
   TZHALO2LIST => TZHALO2LIST%NEXT
   TZHALO2LSLIST => TZHALO2LSLIST%NEXT
   CALL NUM_DIFF_ALGO(PRVS, PVM, IGRID, MYM(PRHODJ), PDK2U, PDK4U, &
                      PLSVM, TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
- ELSE
-  CALL NUM_DIFF_ALGO(PRVS, PVM, IGRID, MYM(PRHODJ), PDK2U, PDK4U, PLSVM )
- ENDIF
+!!$ ELSE
+!!$  CALL NUM_DIFF_ALGO(PRVS, PVM, IGRID, MYM(PRHODJ), PDK2U, PDK4U, PLSVM )
+!!$ ENDIF
 !
  IGRID = 4
 !
- IF(NHALO == 1) THEN
+!!$ IF(NHALO == 1) THEN
   TZHALO2LIST => TZHALO2LIST%NEXT
   TZHALO2LSLIST => TZHALO2LSLIST%NEXT
   CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(1,IKU,1,PRHODJ), PDK2U, PDK4U, &
                      PLSWM, TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
- ELSE
-  CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(1,IKU,1,PRHODJ), PDK2U, PDK4U, PLSWM )
- ENDIF
+!!$ ELSE
+!!$  CALL NUM_DIFF_ALGO(PRWS, PWM, IGRID, MZM(1,IKU,1,PRHODJ), PDK2U, PDK4U, PLSWM )
+!!$ ENDIF
 ENDIF
 !
 IF (ONUMDIFTH) THEN
  IGRID = 1
 !
- IF(NHALO == 1) THEN
+!!$ IF(NHALO == 1) THEN
   TZHALO2LIST => TZHALO2LIST%NEXT
   TZHALO2LSLIST => TZHALO2LSLIST%NEXT
   IF (OZDIFFU) THEN   ! call z-diffusion for potential temperature
    CALL NUM_DIFF_ALGO_Z(PRTHS, PTHM, IGRID, PRHODJ,            &
                          PDK2TH, PDK4TH, PLSTHM,               &
                          TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
-  ELSE
-   CALL NUM_DIFF_ALGO(PRTHS, PTHM, IGRID, PRHODJ,              &
-                      PDK2TH, PDK4TH, PLSTHM,                  &
-                     TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
-  ENDIF
+!!$  ELSE
+!!$   CALL NUM_DIFF_ALGO(PRTHS, PTHM, IGRID, PRHODJ,              &
+!!$                      PDK2TH, PDK4TH, PLSTHM,                  &
+!!$                     TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
+!!$  ENDIF
  ELSE
   IF (OZDIFFU) THEN   ! call z-diffusion for potential temperature
     CALL NUM_DIFF_ALGO_Z(PRTHS, PTHM, IGRID, PRHODJ, &
@@ -362,31 +363,31 @@ IF (ONUMDIFTH) THEN
  ENDIF
 !
  IF ( GTKEALLOC ) THEN
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     TZHALO2LIST => TZHALO2LIST%NEXT
     CALL NUM_DIFF_ALGO(PRTKES, PTKEM, IGRID, PRHODJ, &
                        PDK2TH, PDK4TH, TPHALO2=TZHALO2LIST%HALO2)
-  ELSE
-    CALL NUM_DIFF_ALGO(PRTKES, PTKEM, IGRID, PRHODJ, PDK2TH, PDK4TH)
-  ENDIF
+!!$  ELSE
+!!$    CALL NUM_DIFF_ALGO(PRTKES, PTKEM, IGRID, PRHODJ, PDK2TH, PDK4TH)
+!!$  ENDIF
  ENDIF
 !
 
 ! Case with KRR moist variables
 !
  IF(KRR >= 1) THEN
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     TZHALO2LIST => TZHALO2LIST%NEXT
     TZHALO2LSLIST => TZHALO2LSLIST%NEXT
     IF (OZDIFFU) THEN   ! call z-diffusion for wv mixing ratio
       CALL NUM_DIFF_ALGO_Z(PRRS(:,:,:,1), PRM(:,:,:,1), IGRID, PRHODJ, &
                            PDK2TH, PDK4TH,                             &
                            PLSRVM, TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
-    ELSE
-      CALL NUM_DIFF_ALGO(PRRS(:,:,:,1), PRM(:,:,:,1), IGRID, PRHODJ, & 
-                         PDK2TH, PDK4TH, PLSRVM,                     &
-                         TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
-    ENDIF
+!!$    ELSE
+!!$      CALL NUM_DIFF_ALGO(PRRS(:,:,:,1), PRM(:,:,:,1), IGRID, PRHODJ, & 
+!!$                         PDK2TH, PDK4TH, PLSRVM,                     &
+!!$                         TZHALO2LIST%HALO2, TZHALO2LSLIST%HALO2)
+!!$    ENDIF
   ELSE
     IF (OZDIFFU) THEN   ! call z-diffusion for wv mixing ratio
       CALL NUM_DIFF_ALGO_Z(PRRS(:,:,:,1), PRM(:,:,:,1), IGRID, PRHODJ, &
@@ -403,14 +404,14 @@ IF (ONUMDIFTH) THEN
 ! This might be added later (is CLW stored in JRR = 2?)
 !
  DO JRR=2, KRR
-  IF(NHALO == 1) THEN 
+!!$  IF(NHALO == 1) THEN 
     TZHALO2LIST => TZHALO2LIST%NEXT
     CALL NUM_DIFF_ALGO(PRRS(:,:,:,JRR), PRM(:,:,:,JRR), IGRID, PRHODJ, &
                        PDK2TH, PDK4TH, TPHALO2=TZHALO2LIST%HALO2)
-  ELSE
-    CALL NUM_DIFF_ALGO(PRRS(:,:,:,JRR), PRM(:,:,:,JRR), IGRID, PRHODJ, &
-                       PDK2TH, PDK4TH )
-  ENDIF
+!!$  ELSE
+!!$    CALL NUM_DIFF_ALGO(PRRS(:,:,:,JRR), PRM(:,:,:,JRR), IGRID, PRHODJ, &
+!!$                       PDK2TH, PDK4TH )
+!!$  ENDIF
  ENDDO
 !
 ENDIF
@@ -418,14 +419,14 @@ ENDIF
 !
 IF (ONUMDIFSV) THEN
  DO JSV=1,KSV
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     TZHALO2LIST => TZHALO2LIST%NEXT
     CALL NUM_DIFF_ALGO(PRSVS(:,:,:,JSV), PSVM(:,:,:,JSV), IGRID, PRHODJ,&
                        PDK2SV, PDK4SV, TPHALO2=TZHALO2LIST%HALO2)
-  ELSE
-    CALL NUM_DIFF_ALGO(PRSVS(:,:,:,JSV), PSVM(:,:,:,JSV), IGRID, PRHODJ, &
-                       PDK2SV, PDK4SV )
-  ENDIF
+!!$  ELSE
+!!$    CALL NUM_DIFF_ALGO(PRSVS(:,:,:,JSV), PSVM(:,:,:,JSV), IGRID, PRHODJ, &
+!!$                       PDK2SV, PDK4SV )
+!!$  ENDIF
  ENDDO
 END IF
 !
@@ -586,28 +587,28 @@ SELECT CASE ( HLBCX(1) ) ! X direction LBC type: (1) for left side
 !
 CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     IW=IIB+1
     IE=IIE-1
-  ELSE
-    IW=IIB
-    IE=IIE
-  END IF  
+!!$  ELSE
+!!$    IW=IIB
+!!$    IE=IIE
+!!$  END IF  
 !
 
 
 IF (PRESENT(PLSFIELD)) THEN
   ZPTBFIELD(IW-2:IE+2,IJB-1:IJE+1,:) = PFIELDM(IW-2:IE+2,IJB-1:IJE+1,:) - PLSFIELD(IW-2:IE+2,IJB-1:IJE+1,:)
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     ZPTBFIELD(IW-3,IJB-1:IJE+1,:) = TPHALO2%WEST(IJB-1:IJE+1,:) - TPHALO2LS%WEST(IJB-1:IJE+1,:)
     ZPTBFIELD(IE+3,IJB-1:IJE+1,:) = TPHALO2%EAST(IJB-1:IJE+1,:) - TPHALO2LS%EAST(IJB-1:IJE+1,:)
-  ENDIF
+!!$  ENDIF
 ELSE
   ZPTBFIELD(IW-2:IE+2,IJB-1:IJE+1,:) = PFIELDM(IW-2:IE+2,IJB-1:IJE+1,:)
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     ZPTBFIELD(IW-3,IJB-1:IJE+1,:) = TPHALO2%WEST(IJB-1:IJE+1,:)
     ZPTBFIELD(IE+3,IJB-1:IJE+1,:) = TPHALO2%EAST(IJB-1:IJE+1,:)
-  ENDIF
+!!$  ENDIF
 ENDIF
 
 !
@@ -623,33 +624,37 @@ CASE ('OPEN','WALL','NEST')
       IW=IIB+1
     END IF
   ELSE
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IW=IIB+1
-    ELSE
-      IW=IIB
-    ENDIF
+!!$    ELSE
+!!$      IW=IIB
+!!$    ENDIF
   ENDIF
-  IF (LEAST_ll() .OR. NHALO == 1) THEN
+!!$  IF (LEAST_ll() .OR. NHALO == 1) THEN
     IE=IIE-1
-  ELSE
-    IE=IIE
-  END IF  
+!!$  ELSE
+!!$    IE=IIE
+!!$  END IF  
 
 
 IF (PRESENT(PLSFIELD)) THEN
   ZPTBFIELD(IW-2:IE+2,IJB-1:IJE+1,:) = PFIELDM(IW-2:IE+2,IJB-1:IJE+1,:) - PLSFIELD(IW-2:IE+2,IJB-1:IJE+1,:)
-  IF((NHALO == 1).AND.(.NOT.LWEST_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LWEST_ll())) THEN
+  IF(.NOT.LWEST_ll()) THEN
     ZPTBFIELD(IW-3,IJB-1:IJE+1,:) = TPHALO2%WEST(IJB-1:IJE+1,:) - TPHALO2LS%WEST(IJB-1:IJE+1,:)
   ENDIF
-  IF((NHALO == 1).AND.(.NOT.LEAST_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LEAST_ll())) THEN
+  IF(.NOT.LEAST_ll()) THEN
     ZPTBFIELD(IE+3,IJB-1:IJE+1,:) = TPHALO2%EAST(IJB-1:IJE+1,:) - TPHALO2LS%EAST(IJB-1:IJE+1,:)
   ENDIF
 ELSE
   ZPTBFIELD(IW-2:IE+2,IJB-1:IJE+1,:) = PFIELDM(IW-2:IE+2,IJB-1:IJE+1,:)
-  IF((NHALO == 1).AND.(.NOT.LWEST_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LWEST_ll())) THEN
+  IF(.NOT.LWEST_ll()) THEN
     ZPTBFIELD(IW-3,IJB-1:IJE+1,:) = TPHALO2%WEST(IJB-1:IJE+1,:)
   ENDIF
-  IF((NHALO == 1).AND.(.NOT.LEAST_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LEAST_ll())) THEN
+  IF(.NOT.LEAST_ll()) THEN
     ZPTBFIELD(IE+3,IJB-1:IJE+1,:) = TPHALO2%EAST(IJB-1:IJE+1,:)
   ENDIF
 ENDIF
@@ -677,13 +682,15 @@ END SELECT
 
 ! a) Determine E/W boundaries
 
-IF ((NHALO == 1).AND.(HLBCX(1) == 'CYCL').OR.((.NOT.LWEST_ll()).AND.(NHALO == 1)) ) THEN
+!!$IF ((NHALO == 1).AND.(HLBCX(1) == 'CYCL').OR.((.NOT.LWEST_ll()).AND.(NHALO == 1)) ) THEN
+IF ( (HLBCX(1) == 'CYCL') .OR. (.NOT.LWEST_ll()) ) THEN
   IWZ = IW-1
 ELSE
   IWZ = IW
 ENDIF
 
-IF ((NHALO == 1).AND.(HLBCX(1) == 'CYCL').OR.((.NOT.LEAST_ll()).AND.(NHALO == 1)) ) THEN
+!!$IF ((NHALO == 1).AND.(HLBCX(1) == 'CYCL').OR.((.NOT.LEAST_ll()).AND.(NHALO == 1)) ) THEN
+IF ((HLBCX(1) == 'CYCL').OR.(.NOT.LEAST_ll()) ) THEN
   IEZ = IE+1
 ELSE
   IEZ = IE
@@ -772,27 +779,27 @@ IF ( .NOT. L2D ) THEN
   CASE ('CYCL')          ! In that case one must have HLBCY(1) == HLBCY(2)
 !
 !
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IS=IJB+1
       IN=IJE-1
-    ELSE
-      IS=IJB
-      IN=IJE
-    END IF
+!!$    ELSE
+!!$      IS=IJB
+!!$      IN=IJE
+!!$    END IF
 
 
 IF (PRESENT(PLSFIELD)) THEN
   ZPTBFIELD(IIB-1:IIE+1,IS-2:IN+2,:) = PFIELDM(IIB-1:IIE+1,IS-2:IN+2,:) - PLSFIELD(IIB-1:IIE+1,IS-2:IN+2,:)
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     ZPTBFIELD(IIB-1:IIE+1,IS-3,:) = TPHALO2%SOUTH(IIB-1:IIE+1,:) - TPHALO2LS%SOUTH(IIB-1:IIE+1,:)
     ZPTBFIELD(IIB-1:IIE+1,IN+3,:) = TPHALO2%NORTH(IIB-1:IIE+1,:) - TPHALO2LS%NORTH(IIB-1:IIE+1,:)
-  ENDIF
+!!$  ENDIF
 ELSE
   ZPTBFIELD(IIB-1:IIE+1,IS-2:IN+2,:) = PFIELDM(IIB-1:IIE+1,IS-2:IN+2,:)
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     ZPTBFIELD(IIB-1:IIE+1,IS-3,:) = TPHALO2%SOUTH(IIB-1:IIE+1,:)
     ZPTBFIELD(IIB-1:IIE+1,IN+3,:) = TPHALO2%NORTH(IIB-1:IIE+1,:)
-  ENDIF
+!!$  ENDIF
 ENDIF
 
 !!! HALOS ARE PROBABLY ALSO NEEDED FOR THE INTERPOLATION COEFFICIENTS??!!
@@ -811,33 +818,36 @@ ENDIF
         IS=IJB+1
       END IF
     ELSE
-      IF(NHALO == 1) THEN
+!!$      IF(NHALO == 1) THEN
         IS=IJB+1
-      ELSE
-        IS=IJB
-      ENDIF
+!!$      ELSE
+!!$        IS=IJB
+!!$      ENDIF
     ENDIF
-    IF (LNORTH_ll() .OR. NHALO == 1) THEN
+!!$    IF (LNORTH_ll() .OR. NHALO == 1) THEN
       IN=IJE-1
-    ELSE
-      IN=IJE
-    END IF
-
+!!$    ELSE
+!!$      IN=IJE
+!!$    END IF
 
 IF (PRESENT(PLSFIELD)) THEN
   ZPTBFIELD(IIB-1:IIE+1,IS-2:IN+2,:) = PFIELDM(IIB-1:IIE+1,IS-2:IN+2,:) - PLSFIELD(IIB-1:IIE+1,IS-2:IN+2,:)
-  IF((NHALO == 1).AND.(.NOT.LSOUTH_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LSOUTH_ll())) THEN
+  IF(.NOT.LSOUTH_ll()) THEN
     ZPTBFIELD(IIB-1:IIE+1,IS-3,:) = TPHALO2%SOUTH(IIB-1:IIE+1,:) - TPHALO2LS%SOUTH(IIB-1:IIE+1,:)
   ENDIF
-  IF((NHALO == 1).AND.(.NOT.LNORTH_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LNORTH_ll())) THEN
+  IF(.NOT.LNORTH_ll()) THEN
     ZPTBFIELD(IIB-1:IIE+1,IN+3,:) = TPHALO2%NORTH(IIB-1:IIE+1,:) - TPHALO2LS%NORTH(IIB-1:IIE+1,:)
   ENDIF
 ELSE
   ZPTBFIELD(IIB-1:IIE+1,IS-2:IN+2,:) = PFIELDM(IIB-1:IIE+1,IS-2:IN+2,:)
-  IF((NHALO == 1).AND.(.NOT.LSOUTH_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LSOUTH_ll())) THEN
+  IF(.NOT.LSOUTH_ll()) THEN
     ZPTBFIELD(IIB-1:IIE+1,IS-3,:) = TPHALO2%SOUTH(IIB-1:IIE+1,:)
   ENDIF
-  IF((NHALO == 1).AND.(.NOT.LNORTH_ll())) THEN
+!!$  IF((NHALO == 1).AND.(.NOT.LNORTH_ll())) THEN
+  IF(.NOT.LNORTH_ll()) THEN
     ZPTBFIELD(IIB-1:IIE+1,IN+3,:) = TPHALO2%NORTH(IIB-1:IIE+1,:)
   ENDIF
 ENDIF
@@ -865,13 +875,15 @@ ENDIF
 
 ! a) Determine E/W boundaries
 
-IF ((NHALO == 1).AND.(HLBCY(1) == 'CYCL').OR.((.NOT.LSOUTH_ll()).AND.(NHALO == 1)) ) THEN
+!!$IF ((NHALO == 1).AND.(HLBCY(1) == 'CYCL').OR.((.NOT.LSOUTH_ll()).AND.(NHALO == 1)) ) THEN
+IF ((HLBCY(1) == 'CYCL').OR.(.NOT.LSOUTH_ll()) ) THEN
   ISZ = IS-1
 ELSE
   ISZ = IS
 ENDIF
 
-IF ((NHALO == 1).AND.(HLBCY(1) == 'CYCL').OR.((.NOT.LNORTH_ll()).AND.(NHALO == 1)) ) THEN
+!!$IF ((NHALO == 1).AND.(HLBCY(1) == 'CYCL').OR.((.NOT.LNORTH_ll()).AND.(NHALO == 1)) ) THEN
+IF ((HLBCY(1) == 'CYCL').OR.( .NOT.LNORTH_ll() ) ) THEN
   INZ = IN+1
 ELSE
   INZ = IN
@@ -1061,19 +1073,19 @@ SELECT CASE ( HLBCX(1) ) ! X direction LBC type: (1) for left side
 !
 CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
 !
-  IF(NHALO == 1) THEN
+!!$  IF(NHALO == 1) THEN
     IW=IIB+1
     IE=IIE-1
-  ELSE
-    IW=IIB
-    IE=IIE
-  END IF  
+!!$  ELSE
+!!$    IW=IIB
+!!$    IE=IIE
+!!$  END IF  
 !
   IF (PRESENT(PLSFIELD)) THEN
 !
 !*       1.1.1  Case with LS fields
 !
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
 !
       PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) - PRHODJ(IW-1,:,:) *       &
       PDK4*(                                                             &
@@ -1093,7 +1105,7 @@ CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
           +4.*( PLSFIELD(IE,:,:)    +  PLSFIELD(IE+2,:,:)  )             &
           -6.*  PLSFIELD(IE+1,:,:)  )
 !
-    ENDIF
+!!$    ENDIF
 !
 !!$    PRFIELDS(IW:IE,:,:) = PRFIELDS(IW:IE,:,:)-PRHODJ(IW:IE,:,:) *   &
 !!$          PDK4*DX4(PFIELDM(IW-2:IE+2,:,:)-PLSFIELD(IW-2:IE+2,:,:))
@@ -1111,7 +1123,7 @@ CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
 !
 !*       1.1.2  Case without LS fields
 !
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
 !
       PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) - PRHODJ(IW-1,:,:) *       &
       PDK4*(                                                             &
@@ -1125,7 +1137,7 @@ CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
          -4.*(  PFIELDM(IE,:,:)    +  PFIELDM(IE+2,:,:)    )             &
          +6.*   PFIELDM(IE+1,:,:)  )
 !
-    ENDIF
+!!$    ENDIF
 !
 !!$    PRFIELDS(IW:IE,:,:) = PRFIELDS(IW:IE,:,:)-PRHODJ(IW:IE,:,:) *   &
 !!$          PDK4*DX4(PFIELDM(IW-2:IE+2,:,:))
@@ -1152,17 +1164,17 @@ CASE ('OPEN','WALL','NEST')
       IW=IIB+1
     END IF
   ELSE
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IW=IIB+1
-    ELSE
-      IW=IIB
-    ENDIF
+!!$    ELSE
+!!$      IW=IIB
+!!$    ENDIF
   ENDIF
-  IF (LEAST_ll() .OR. NHALO == 1) THEN
+!!$  IF (LEAST_ll() .OR. NHALO == 1) THEN
     IE=IIE-1
-  ELSE
-    IE=IIE
-  END IF  
+!!$  ELSE
+!!$    IE=IIE
+!!$  END IF  
 !
   IF (PRESENT(PLSFIELD)) THEN
 !
@@ -1177,7 +1189,8 @@ CASE ('OPEN','WALL','NEST')
                  PFIELDM(IW-2,:,:)  -2.*PFIELDM(IW-1,:,:)  + PFIELDM(IW,:,:)    &
                 -PLSFIELD(IW-2,:,:) +2.*PLSFIELD(IW-1,:,:) - PLSFIELD(IW,:,:)   )
 !
-    ELSEIF (NHALO == 1) THEN
+!!$    ELSEIF (NHALO == 1) THEN
+    ELSE
 !
       PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) - PRHODJ(IW-1,:,:) *        &
       PDK4*(                                                              &
@@ -1197,7 +1210,8 @@ CASE ('OPEN','WALL','NEST')
                 PFIELDM(IE,:,:)  -2.*PFIELDM(IE+1,:,:)  + PFIELDM(IE+2,:,:)   &
               - PLSFIELD(IE,:,:) +2.*PLSFIELD(IE+1,:,:) - PLSFIELD(IE+2,:,:)  )
 !
-    ELSEIF (NHALO == 1) THEN
+!!$    ELSEIF (NHALO == 1) THEN
+    ELSE
 !
       PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) - PRHODJ(IE+1,:,:) *      &
       PDK4*(                                                            &
@@ -1235,7 +1249,8 @@ CASE ('OPEN','WALL','NEST')
       PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) + PRHODJ(IW-1,:,:) *       &
         PDK2*( PFIELDM(IW-2,:,:) -2.*PFIELDM(IW-1,:,:) + PFIELDM(IW,:,:) )
 !
-    ELSEIF (NHALO == 1) THEN
+!!$    ELSEIF (NHALO == 1) THEN
+    ELSE
 !
       PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) - PRHODJ(IW-1,:,:) *       &
       PDK4*(                                                             & 
@@ -1250,7 +1265,8 @@ CASE ('OPEN','WALL','NEST')
       PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) + PRHODJ(IE+1,:,:) *       &
         PDK2*( PFIELDM(IE,:,:) -2.*PFIELDM(IE+1,:,:) + PFIELDM(IE+2,:,:) )
 !
-    ELSEIF (NHALO == 1) THEN
+!!$    ELSEIF (NHALO == 1) THEN
+    ELSE
 !
       PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) - PRHODJ(IE+1,:,:) *       &
       PDK4*(                                                             &
@@ -1290,19 +1306,19 @@ IF ( .NOT. L2D ) THEN
   CASE ('CYCL')          ! In that case one must have HLBCY(1) == HLBCY(2)
 !
 !
-    IF(NHALO == 1) THEN
+!!$    IF(NHALO == 1) THEN
       IS=IJB+1
       IN=IJE-1
-    ELSE
-      IS=IJB
-      IN=IJE
-    END IF
+!!$    ELSE
+!!$      IS=IJB
+!!$      IN=IJE
+!!$    END IF
 !
     IF (PRESENT(PLSFIELD)) THEN
 !
 !*       2.1.1  Case with LS fields
 !
-      IF(NHALO == 1) THEN
+!!$      IF(NHALO == 1) THEN
 !
         PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) - PRHODJ(:,IS-1,:) *      &
         PDK4*(                                                            &
@@ -1322,7 +1338,7 @@ IF ( .NOT. L2D ) THEN
             +4.*( PLSFIELD(:,IN,:)     +  PLSFIELD(:,IN+2,:) )            &
             -6.*  PLSFIELD(:,IN+1,:)   )
 !
-      ENDIF
+!!$      ENDIF
 !
 !!$      PRFIELDS(:,IS:IN,:) = PRFIELDS(:,IS:IN,:)-PRHODJ(:,IS:IN,:) *   &
 !!$            PDK4*DY4(PFIELDM(:,IS-2:IN+2,:)-PLSFIELD(:,IS-2:IN+2,:))
@@ -1341,7 +1357,7 @@ IF ( .NOT. L2D ) THEN
 !*       2.1.2  Case without LS fields
 !
 !
-      IF(NHALO == 1) THEN
+!!$      IF(NHALO == 1) THEN
 !
         PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) - PRHODJ(:,IS-1,:) *      &
         PDK4*(                                                            &
@@ -1355,7 +1371,7 @@ IF ( .NOT. L2D ) THEN
             -4.*( PFIELDM(:,IN,:)      +  PFIELDM(:,IN+2,:)  )            &
             +6.*  PFIELDM(:,IN+1,:)    )
 !
-      ENDIF
+!!$      ENDIF
 !
 !!$      PRFIELDS(:,IS:IN,:) = PRFIELDS(:,IS:IN,:)-PRHODJ(:,IS:IN,:) *   &
 !!$            PDK4*DY4(PFIELDM(:,IS-2:IN+2,:))
@@ -1381,17 +1397,17 @@ IF ( .NOT. L2D ) THEN
         IS=IJB+1
       END IF
     ELSE
-      IF(NHALO == 1) THEN
+!!$      IF(NHALO == 1) THEN
         IS=IJB+1
-      ELSE
-        IS=IJB
-      ENDIF
+!!$      ELSE
+!!$        IS=IJB
+!!$      ENDIF
     ENDIF
-    IF (LNORTH_ll() .OR. NHALO == 1) THEN
+!!$    IF (LNORTH_ll() .OR. NHALO == 1) THEN
       IN=IJE-1
-    ELSE
-      IN=IJE
-    END IF  
+!!$    ELSE
+!!$      IN=IJE
+!!$    END IF  
 !*       2.2.1  Case with LS fields
 !
     IF (PRESENT(PLSFIELD)) THEN
@@ -1407,7 +1423,8 @@ IF ( .NOT. L2D ) THEN
                  PFIELDM(:,IS-2,:)  -2.*PFIELDM(:,IS-1,:)  + PFIELDM(:,IS,:)    &
                 -PLSFIELD(:,IS-2,:) +2.*PLSFIELD(:,IS-1,:) - PLSFIELD(:,IS,:)   )
 !
-      ELSEIF (NHALO == 1) THEN
+!!$      ELSEIF (NHALO == 1) THEN
+      ELSE
 !
         PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) - PRHODJ(:,IS-1,:) *            &
         PDK4*(                                                                  &
@@ -1427,7 +1444,8 @@ IF ( .NOT. L2D ) THEN
                    PFIELDM(:,IN,:)  -2.*PFIELDM(:,IN+1,:)   + PFIELDM(:,IN+2,:)  &
                   -PLSFIELD(:,IN,:) +2.*PLSFIELD(:,IN+1,:)  - PLSFIELD(:,IN+2,:) )
 !
-      ELSEIF (NHALO == 1) THEN
+!!$      ELSEIF (NHALO == 1) THEN
+      ELSE
 !
         PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) - PRHODJ(:,IN+1,:) *         &
         PDK4*(                                                               &
@@ -1466,7 +1484,8 @@ IF ( .NOT. L2D ) THEN
         PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) + PRHODJ(:,IS-1,:) *       &
           PDK2*( PFIELDM(:,IS-2,:) -2.*PFIELDM(:,IS-1,:) + PFIELDM(:,IS,:) )
 !
-      ELSEIF (NHALO == 1) THEN
+!!$      ELSEIF (NHALO == 1) THEN
+      ELSE
 !
         PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) - PRHODJ(:,IS-1,:) *      &
         PDK4*(                                                            &
@@ -1481,7 +1500,8 @@ IF ( .NOT. L2D ) THEN
         PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) + PRHODJ(:,IN+1,:) *       &
           PDK2*( PFIELDM(:,IN,:) -2.*PFIELDM(:,IN+1,:) + PFIELDM(:,IN+2,:) )
 !
-      ELSEIF (NHALO == 1) THEN
+!!$      ELSEIF (NHALO == 1) THEN
+      ELSE
 !
         PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) - PRHODJ(:,IN+1,:) *      &
         PDK4*(                                                            &
diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90
index 1160f2e86..38f722963 100644
--- a/src/MNH/one_wayn.f90
+++ b/src/MNH/one_wayn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_ONE_WAY_n
@@ -189,6 +188,7 @@ SUBROUTINE ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT,                     &
 !!    M. Leriche     11/2009  modify the LB*SVS for the aqueous phase chemistry
 !!                   07/2010  idem for ice phase chemical species
 !!    Bosseur & Filippi 07/2013 Adds Forefire
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -307,10 +307,10 @@ ALLOCATE(ZJ(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3)))
 ALLOCATE(ZRHOD(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3)))
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-IIB=IIB-1
-IIE=IIE+1
-IJB=IJB-1
-IJE=IJE+1
+IIB=IIB-JPHEXT
+IIE=IIE+JPHEXT
+IJB=IJB-JPHEXT
+IJE=IJE+JPHEXT
 ALLOCATE(ZWORK(IIB:IIE,IJB:IJE,SIZE(PLBXTHM,3)))  ! can be smaller than child extended subdomain
 ! LS_FORCING routine can not correctly manage extra halo zone
 ! LB will be filled only with one layer halo zone for the moment
@@ -822,8 +822,8 @@ IF(.NOT. OSTEADY_DMASS) THEN
 !*       4.3 computing of the dry mass at t
 !
 !
-  ZDRYMASST = SUM3D_ll (ZJ(:,:,:)*ZRHOD(:,:,:),IINFO_ll,NXOR_ALL(KMI)+1,NYOR_ALL(KMI)+1, &
-            1+JPVEXT,NXEND_ALL(KMI)-1,NYEND_ALL(KMI)-1,SIZE(XRHODJ,3)-JPVEXT)
+  ZDRYMASST = SUM3D_ll (ZJ(:,:,:)*ZRHOD(:,:,:),IINFO_ll,NXOR_ALL(KMI)+JPHEXT,NYOR_ALL(KMI)+JPHEXT, &
+            1+JPVEXT,NXEND_ALL(KMI)-JPHEXT,NYEND_ALL(KMI)-JPHEXT,SIZE(XRHODJ,3)-JPVEXT)
 !
 !
 !*       4.4 normal processing (not at the segment beginning)
@@ -848,8 +848,8 @@ IF(.NOT. OSTEADY_DMASS) THEN
     ENDIF
 !
 !
-    ZDRYMASSM = SUM3D_ll (ZJ(:,:,:)*ZRHOD(:,:,:),IINFO_ll,NXOR_ALL(KMI)+1,NYOR_ALL(KMI)+1, &
-            1+JPVEXT,NXEND_ALL(KMI)-1,NYEND_ALL(KMI)-1,SIZE(XRHODJ,3)-JPVEXT)
+    ZDRYMASSM = SUM3D_ll (ZJ(:,:,:)*ZRHOD(:,:,:),IINFO_ll,NXOR_ALL(KMI)+JPHEXT,NYOR_ALL(KMI)+JPHEXT, &
+            1+JPVEXT,NXEND_ALL(KMI)-JPHEXT,NYEND_ALL(KMI)-JPHEXT,SIZE(XRHODJ,3)-JPVEXT)
 !
     PDRYMASST =  ZDRYMASST
     PDRYMASSS = (PDRYMASST - ZDRYMASSM) / (PTSTEP*KDTRATIO)
@@ -992,7 +992,7 @@ ENDIF
 !
 IF ( SIZE(PLBXS,1) /= 0 ) THEN
   IF( GVERT_INTERP ) THEN
-    IF ( ILBX == KRIMX+1 ) THEN
+    IF ( ILBX == KRIMX+JPHEXT ) THEN
       PLBXS(:,:,:) = VER_INTERP_LIN(PLBXS(:,:,:),  &
                           KKLIN_LBXM(:,:,:),PCOEFLIN_LBXM(:,:,:))
     ELSE
@@ -1006,7 +1006,7 @@ END IF
 !
 IF ( SIZE(PLBYS,1) /= 0 ) THEN
   IF( GVERT_INTERP ) THEN
-    IF ( ILBY == KRIMY+1 ) THEN
+    IF ( ILBY == KRIMY+JPHEXT ) THEN
       PLBYS(:,:,:) = VER_INTERP_LIN(PLBYS(:,:,:),  &
                           KKLIN_LBYM(:,:,:),PCOEFLIN_LBYM(:,:,:))
     ELSE
diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90
index d0d575bbf..e3572c03d 100644
--- a/src/MNH/open_nestpgd_files.f90
+++ b/src/MNH/open_nestpgd_files.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_nest_pgd 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !#############################
 MODULE MODI_OPEN_NESTPGD_FILES
@@ -64,6 +63,7 @@ END MODULE MODI_OPEN_NESTPGD_FILES
 !!                   15/10/01 (I.Mallet) allow namelists in different orders
 !!                   07/06/2010 (J.escobar from Ivan Ristic) bug PGI
 !!                   30/12/2012 (S.Bielli) Add NAM_NCOUT for netcdf output
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -87,6 +87,8 @@ USE MODN_NCOUT
 #endif
 USE MODN_CONFIO
 !
+USE MODN_CONF, ONLY : JPHEXT , NHALO_MNH => NHALO
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of arguments
@@ -130,6 +132,7 @@ NAMELIST/NAM_PGD6/ YPGD6, IDAD
 NAMELIST/NAM_PGD7/ YPGD7, IDAD
 NAMELIST/NAM_PGD8/ YPGD8, IDAD
 NAMELIST/NAM_NEST_PGD/ YNEST
+NAMELIST/NAM_CONF_NEST/JPHEXT, NHALO_MNH
 !-------------------------------------------------------------------------------
 !
 !*       1.    SET DEFAULT NAMES
@@ -159,6 +162,11 @@ CALL OPEN_ll(UNIT=ILUOUT0,FILE=CLUOUT0,IOSTAT=IRESP,FORM='FORMATTED',ACTION='WRI
 CALL OPEN_ll(UNIT=IPRE_NEST_PGD,FILE=HPRE_NEST_PGD,IOSTAT=IRESP,FORM='FORMATTED',ACTION='READ', &
      MODE=GLOBAL)
 !
+!JUAN
+CALL POSNAM(IPRE_NEST_PGD,'NAM_CONF_NEST',GFOUND)
+IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_CONF_NEST)
+!JUAN
+!
 !-------------------------------------------------------------------------------
 !
 !*       4.    READING OF THE OTHER FILE NAMES
diff --git a/src/MNH/pgdfilter.f90 b/src/MNH/pgdfilter.f90
index dfa03ffc4..009552369 100644
--- a/src/MNH/pgdfilter.f90
+++ b/src/MNH/pgdfilter.f90
@@ -59,6 +59,7 @@ END MODULE MODI_PGDFILTER
 !!    Modification
 !!        25/05/96 (V Masson) remove useless ZMASKIJ
 !!        28/11/96 (V Masson) test on point localisation itself
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !----------------------------------------------------------------------------
 !
 !*    0.     DECLARATION
@@ -98,10 +99,6 @@ INTEGER                :: IIB,IJB,IIE,IJE
 !*       1.     Initialisations
 !               ---------------
 !
-!RETURN
-!!$IIU=SIZE(PPGDARRAY,1)
-!!$IJU=SIZE(PPGDARRAY,2)
-
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 
@@ -125,20 +122,20 @@ CALL ADD2DFIELD_ll(TZFIELDS_ll,ZARRAY_ll )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 ZARRAY(1:IIU,1:IJU) = ZARRAY_ll(1:IIU,1:IJU)
 DO JITER=1,KPGDFILTER
-  DO JI=1,IIU
-    DO JJ=1,IJU
+  DO JI= IIB-1,IIE+1
+    DO JJ= IJB-1,IJE+1
       IF ( ZARRAY(JI,JJ)==XUNDEF ) CYCLE
       ICOEF(:,:)=0
-      IF (JI>1  ) THEN
+      IF (JI>IIB-1  ) THEN
         IF(PPGDARRAY(JI-1,JJ)/=XUNDEF)   ICOEF(1,1)=1
       END IF
-      IF (JI<IIU) THEN
+      IF (JI<IIE+1) THEN
         IF(PPGDARRAY(JI+1,JJ)/=XUNDEF)   ICOEF(2,1)=1
       END IF
-      IF (JJ>1  ) THEN
+      IF (JJ>IJB-1  ) THEN
         IF(PPGDARRAY(JI,JJ-1)/=XUNDEF)   ICOEF(1,2)=1
       END IF
-      IF (JJ<IJU) THEN
+      IF (JJ<IJE+1) THEN
         IF(PPGDARRAY(JI,JJ+1)/=XUNDEF)   ICOEF(2,2)=1
       END IF
       IF (ANY( ICOEF == 1 ) )  THEN
diff --git a/src/MNH/polar_calc.f90 b/src/MNH/polar_calc.f90
index 7bd3b48de..d38603d2d 100644
--- a/src/MNH/polar_calc.f90
+++ b/src/MNH/polar_calc.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ####################
       MODULE MODI_POLAR_CALC
@@ -73,6 +72,7 @@ END MODULE MODI_POLAR_CALC
 !!    MODIFICATIONS
 !!    -------------
 !!      Original              01/12/01
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -82,11 +82,11 @@ END MODULE MODI_POLAR_CALC
 USE MODD_CONF, ONLY: NVERB
 USE MODD_CST, ONLY: XPI
 USE MODD_LUNIT, ONLY: CLUOUT0
-USE MODD_PARAMETERS, ONLY: JPHEXT
 USE MODD_DIM_n,  ONLY: NIMAX,NJMAX
 USE MODD_GRID_n, ONLY: XXHAT,XYHAT
 !
 USE MODE_FM
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -130,10 +130,7 @@ ZDELTAY = XYHAT(3) - XYHAT(2)
 ZDELTAR = MAX(ZDELTAX,ZDELTAY)
 ZDPHI = 2.*XPI/IPHI
 !
-IIB=1+JPHEXT
-IJB=1+JPHEXT
-IIE=NIMAX+JPHEXT
-IJE=NJMAX+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IF (NVERB>=5) &
   WRITE(ILUOUT0,'(A,4I4)')'routine polar_calc: indexes of MesoNH domain ', &
                           IIB,IIE,IJB,IJE
diff --git a/src/MNH/polar_mean.f90 b/src/MNH/polar_mean.f90
index d9cf768d6..2eb0ee291 100644
--- a/src/MNH/polar_mean.f90
+++ b/src/MNH/polar_mean.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_POLAR_MEAN
@@ -80,6 +79,7 @@ END MODULE MODI_POLAR_MEAN
 !!    MODIFICATIONS
 !!    -------------
 !!      Original              01/12/01
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -87,8 +87,8 @@ END MODULE MODI_POLAR_MEAN
 !              ------------
 !
 USE MODD_CST, ONLY: XPI
-USE MODD_PARAMETERS, ONLY: JPHEXT
 USE MODD_GRID_n, ONLY: XXHAT,XYHAT
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -127,10 +127,7 @@ IPHI= SIZE(PR0,1)
 !
 IIU=SIZE(PVARIN,1)
 IJU=SIZE(PVARIN,2)
-IIB=1+JPHEXT
-IJB=1+JPHEXT
-IIE=IIU-JPHEXT
-IJE=IJU-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 ZDELTAX = XXHAT(3) - XXHAT(2)
 ZDELTAY = XYHAT(3) - XYHAT(2)
@@ -219,8 +216,8 @@ END SUBROUTINE POLAR_MEAN_P
 !              ------------
 !
 USE MODD_CST, ONLY: XPI
-USE MODD_PARAMETERS, ONLY: JPHEXT
 USE MODD_GRID_n, ONLY: XXHAT,XYHAT
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -257,10 +254,7 @@ IPHI= SIZE(PR0,2)
 !
 IIU=SIZE(PVARIN,1)
 IJU=SIZE(PVARIN,2)
-IIB=1+JPHEXT
-IJB=1+JPHEXT
-IIE=IIU-JPHEXT
-IJE=IJU-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 ZDELTAX = XXHAT(3) - XXHAT(2)
 ZDELTAY = XYHAT(3) - XYHAT(2)
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index f85aa3cf4..c1e066e42 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !     #######################
       PROGRAM PREP_IDEAL_CASE
@@ -311,6 +310,7 @@
 !!      BUG if ZFRC and ZFRC_ADV or ZFRC_REL are used together  11/2014 (G. Delautier)
 !!      Bug : detected with cray compiler ,
 !!                  missing '&' in continuation string  3/12/2014 J.Escobar
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -424,6 +424,10 @@ USE MODI_INI_CST
 USE MODI_INI_NEB
 USE MODE_FMWRIT
 USE MODI_WRITE_HGRID
+USE MODD_MPIF
+USE MODD_VAR_ll
+!
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -564,6 +568,9 @@ REAL, DIMENSION(:),   ALLOCATABLE :: ZZS_ll
 INTEGER                           :: IJ 
 INTEGER           :: NZSFILTER=1          ! number of iteration for filter for fine   orography
 !
+REAL              :: ZZS_MAX, ZZS_MAX_ll
+INTEGER           :: IJPHEXT
+!
 !
 !*       0.2  Namelist declarations
 !
@@ -572,7 +579,8 @@ NAMELIST/NAM_CONF_PRE/ LTHINSHELL,LCARTESIAN,    &! Declarations in MODD_CONF
                        NVERB,CIDEAL,CZS,         &!+global variables initialized
                        LBOUSS,LPERTURB,LPV_PERT, &! at their declarations
                        LRMV_BL,LFORCING,CEQNSYS, &! at their declarations
-                       LSHIFT,L2D_ADV_FRC,L2D_REL_FRC
+                       LSHIFT,L2D_ADV_FRC,L2D_REL_FRC, &
+                       NHALO , JPHEXT
 NAMELIST/NAM_GRID_PRE/ XLON0,XLAT0,            & ! Declarations in MODD_GRID
                        XBETA,XRPK,             & 
                        XLONORI,XLATORI
@@ -603,6 +611,7 @@ NAMELIST/NAM_AERO_PRE/ LORILAM, LINITPM, XINIRADIUSI, XINIRADIUSJ, &
 !
 !*       0.    PROLOGUE
 !              --------
+CALL MPPDB_INIT()
 !
 CALL GOTO_MODEL(1)
 !
@@ -698,15 +707,28 @@ IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN
   ! read the grid in the PGD file
   CALL FMREAD(CPGD_FILE,'IMAX',CLUOUT,'--',NIMAX,IGRID,ILENCH,YCOMMENT,IRESP)
   CALL FMREAD(CPGD_FILE,'JMAX',CLUOUT,'--',NJMAX,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMREAD(CPGD_FILE,'JPHEXT',CLUOUT,'--',IJPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+
   IF ( CPGD_FILE /= CINIFILEPGD) THEN
-    WRITE(NLUOUT,FMT=*) ' WARNING : in PRE_IDEA1.nam, in NAM_LUNITn you&
-                        & have CINIFILEPGD= ',CINIFILEPGD
-    WRITE(NLUOUT,FMT=*) ' whereas in NAM_REAL_PGD you have CPGD_FILE = '&
-                          ,CPGD_FILE
-    WRITE(NLUOUT,FMT=*) ' '
-    WRITE(NLUOUT,FMT=*) ' CINIFILEPGD HAS BEEN SET TO  ',CPGD_FILE        
-    CINIFILEPGD=CPGD_FILE
-  ENDIF
+     WRITE(NLUOUT,FMT=*) ' WARNING : in PRE_IDEA1.nam, in NAM_LUNITn you&
+          & have CINIFILEPGD= ',CINIFILEPGD
+     WRITE(NLUOUT,FMT=*) ' whereas in NAM_REAL_PGD you have CPGD_FILE = '&
+          ,CPGD_FILE
+     WRITE(NLUOUT,FMT=*) ' '
+     WRITE(NLUOUT,FMT=*) ' CINIFILEPGD HAS BEEN SET TO  ',CPGD_FILE        
+     CINIFILEPGD=CPGD_FILE
+  END IF
+  IF ( IJPHEXT .NE. JPHEXT ) THEN
+     WRITE(NLUOUT,FMT=*) ' PREP_IDEAL_CASE : JPHEXT in PRE_IDEA1.nam/NAM_CONF_PRE ( or default value )&
+          JPHEXT=',JPHEXT
+     WRITE(NLUOUT,FMT=*) ' different from PGD files=', CINIFILEPGD,' value JPHEXT=',IJPHEXT
+     WRITE(NLUOUT,FMT=*) '-> JOB ABORTED'
+     CALL CLOSE_ll(CLUOUT,IOSTAT=IRESP)
+     CALL ABORT  
+     STOP   
+     !WRITE(NLUOUT,FMT=*) ' JPHEXT HAS BEEN SET TO ', IJPHEXT
+     !IJPHEXT = JPHEXT
+  END IF
 END IF
 !
 NIMAX_ll=NIMAX   !! _ll variables are global variables
@@ -993,30 +1015,30 @@ ELSEIF( L2D ) THEN             ! 2D case (not yet parallelized)
   ALLOCATE(XLBYSVM(0,0,0,0))
   !
   IF ( LHORELAX_UVWTH ) THEN
-    NSIZELBX_ll=2*NRIMX+2
-    NSIZELBXU_ll=2*NRIMX+2
-    ALLOCATE(XLBXUM(2*NRIMX+2,NJU,NKU))
-    ALLOCATE(XLBXVM(2*NRIMX+2,NJU,NKU))
-    ALLOCATE(XLBXWM(2*NRIMX+2,NJU,NKU))
-    ALLOCATE(XLBXTHM(2*NRIMX+2,NJU,NKU))
+    NSIZELBX_ll=2*NRIMX+2*JPHEXT
+    NSIZELBXU_ll=2*NRIMX+2*JPHEXT
+    ALLOCATE(XLBXUM(2*NRIMX+2*JPHEXT,NJU,NKU))
+    ALLOCATE(XLBXVM(2*NRIMX+2*JPHEXT,NJU,NKU))
+    ALLOCATE(XLBXWM(2*NRIMX+2*JPHEXT,NJU,NKU))
+    ALLOCATE(XLBXTHM(2*NRIMX+2*JPHEXT,NJU,NKU))
   ELSE
-    NSIZELBX_ll=2
-    NSIZELBXU_ll=4 
-    ALLOCATE(XLBXUM(4,NJU,NKU))
-    ALLOCATE(XLBXVM(2,NJU,NKU))
-    ALLOCATE(XLBXWM(2,NJU,NKU))
-    ALLOCATE(XLBXTHM(2,NJU,NKU))
+    NSIZELBX_ll= 2*JPHEXT     ! 2
+    NSIZELBXU_ll=2*(JPHEXT+1) ! 4 
+    ALLOCATE(XLBXUM(NSIZELBXU_ll,NJU,NKU))
+    ALLOCATE(XLBXVM(NSIZELBX_ll,NJU,NKU))
+    ALLOCATE(XLBXWM(NSIZELBX_ll,NJU,NKU))
+    ALLOCATE(XLBXTHM(NSIZELBX_ll,NJU,NKU))
   END IF  
   !
   IF ( NRR > 0 ) THEN
     IF (       LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. LHORELAX_RI    &
           .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. LHORELAX_RH                     &
        ) THEN 
-      NSIZELBXR_ll=2* NRIMX+2
-      ALLOCATE(XLBXRM(2*NRIMX+2,NJU,NKU,NRR))
+      NSIZELBXR_ll=2*NRIMX+2*JPHEXT
+      ALLOCATE(XLBXRM(2*NRIMX+2*JPHEXT,NJU,NKU,NRR))
     ELSE
-      NSIZELBXR_ll=2
-      ALLOCATE(XLBXRM(2,NJU,NKU,NRR))
+      NSIZELBXR_ll=2*JPHEXT ! 2
+      ALLOCATE(XLBXRM(NSIZELBXR_ll,NJU,NKU,NRR))
     ENDIF
   ELSE
     NSIZELBXR_ll=0
@@ -1025,11 +1047,11 @@ ELSEIF( L2D ) THEN             ! 2D case (not yet parallelized)
   !
   IF ( NSV > 0 ) THEN 
     IF ( ANY( LHORELAX_SV(:)) ) THEN
-      NSIZELBXSV_ll=2* NRIMX+2
-      ALLOCATE(XLBXSVM(2*NRIMX+2,NJU,NKU,NSV))
+      NSIZELBXSV_ll=2*NRIMX+2*JPHEXT
+      ALLOCATE(XLBXSVM(2*NRIMX+2*JPHEXT,NJU,NKU,NSV))
     ELSE
-      NSIZELBXSV_ll=2
-      ALLOCATE(XLBXSVM(2,NJU,NKU,NSV))
+      NSIZELBXSV_ll=2*JPHEXT ! 2
+      ALLOCATE(XLBXSVM(NSIZELBXSV_ll,NJU,NKU,NSV))
     END IF
   ELSE
     NSIZELBXSV_ll=0
@@ -1046,10 +1068,10 @@ ELSE                                   ! 3D case
        IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 !
   IF ( LHORELAX_UVWTH ) THEN
-    NSIZELBX_ll=2*NRIMX+2
-    NSIZELBXU_ll=2*NRIMX+2
-    NSIZELBY_ll=2*NRIMY+2
-    NSIZELBYV_ll=2*NRIMY+2
+    NSIZELBX_ll=2*NRIMX+2*JPHEXT
+    NSIZELBXU_ll=2*NRIMX+2*JPHEXT
+    NSIZELBY_ll=2*NRIMY+2*JPHEXT
+    NSIZELBYV_ll=2*NRIMY+2*JPHEXT
     ALLOCATE(XLBXUM(IISIZEXFU,IJSIZEXFU,NKU))
     ALLOCATE(XLBYUM(IISIZEYF,IJSIZEYF,NKU))
     ALLOCATE(XLBXVM(IISIZEXF,IJSIZEXF,NKU))
@@ -1059,10 +1081,10 @@ ELSE                                   ! 3D case
     ALLOCATE(XLBXTHM(IISIZEXF,IJSIZEXF,NKU))
     ALLOCATE(XLBYTHM(IISIZEYF,IJSIZEYF,NKU))
   ELSE
-    NSIZELBX_ll=2
-    NSIZELBXU_ll=4
-    NSIZELBY_ll=2
-    NSIZELBYV_ll=4
+    NSIZELBX_ll=2*JPHEXT      ! 2
+    NSIZELBXU_ll=2*(JPHEXT+1) ! 4
+    NSIZELBY_ll=2*JPHEXT      ! 2
+    NSIZELBYV_ll=2*(JPHEXT+1) ! 4
     ALLOCATE(XLBXUM(IISIZEX4,IJSIZEX4,NKU))
     ALLOCATE(XLBYUM(IISIZEY2,IJSIZEY2,NKU))
     ALLOCATE(XLBXVM(IISIZEX2,IJSIZEX2,NKU))
@@ -1077,13 +1099,13 @@ ELSE                                   ! 3D case
     IF (       LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. LHORELAX_RI    &
           .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. LHORELAX_RH                     &
        ) THEN 
-      NSIZELBXR_ll=2*NRIMX+2
-      NSIZELBYR_ll=2*NRIMY+2
+      NSIZELBXR_ll=2*NRIMX+2*JPHEXT
+      NSIZELBYR_ll=2*NRIMY+2*JPHEXT
       ALLOCATE(XLBXRM(IISIZEXF,IJSIZEXF,NKU,NRR))
       ALLOCATE(XLBYRM(IISIZEYF,IJSIZEYF,NKU,NRR))
     ELSE
-      NSIZELBXR_ll=2
-      NSIZELBYR_ll=2
+      NSIZELBXR_ll=2*JPHEXT    ! 2
+      NSIZELBYR_ll=2*JPHEXT    ! 2
       ALLOCATE(XLBXRM(IISIZEX2,IJSIZEX2,NKU,NRR))
       ALLOCATE(XLBYRM(IISIZEY2,IJSIZEY2,NKU,NRR))
     ENDIF
@@ -1096,13 +1118,13 @@ ELSE                                   ! 3D case
   !
   IF ( NSV > 0 ) THEN 
     IF ( ANY( LHORELAX_SV(:)) ) THEN
-      NSIZELBXSV_ll=2*NRIMX+2
-      NSIZELBYSV_ll=2*NRIMY+2
+      NSIZELBXSV_ll=2*NRIMX+2*JPHEXT
+      NSIZELBYSV_ll=2*NRIMY+2*JPHEXT
       ALLOCATE(XLBXSVM(IISIZEXF,IJSIZEXF,NKU,NSV))
       ALLOCATE(XLBYSVM(IISIZEYF,IJSIZEYF,NKU,NSV))
     ELSE
-      NSIZELBXSV_ll=2
-      NSIZELBYSV_ll=2
+      NSIZELBXSV_ll=2*JPHEXT    ! 2
+      NSIZELBYSV_ll=2*JPHEXT    ! 2
       ALLOCATE(XLBXSVM(IISIZEX2,IJSIZEX2,NKU,NSV))
       ALLOCATE(XLBYSVM(IISIZEY2,IJSIZEY2,NKU,NSV))
     END IF
@@ -1143,7 +1165,10 @@ IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN
 !
 ! determine whether the model is flat or no
 !
-  IF( ABS( MAXVAL(XZS(NIB:NIU-JPHEXT,NJB:NJU-JPHEXT)) ) < 1.E-10 ) THEN
+  ZZS_MAX = ABS( MAXVAL(XZS(NIB:NIU-JPHEXT,NJB:NJU-JPHEXT)))
+  CALL MPI_ALLREDUCE(ZZS_MAX, ZZS_MAX_ll, 1, MPI_PRECISION, MPI_MAX,  &
+                     NMNH_COMM_WORLD,IINFO_ll)
+  IF( ABS(ZZS_MAX_ll)  < 1.E-10 ) THEN
     LFLAT=.TRUE.
   ELSE
     LFLAT=.FALSE.
@@ -1265,6 +1290,20 @@ IF (    LEN_TRIM(CPGD_FILE) == 0  .OR. .NOT. LREAD_ZS) THEN
         ENDIF
       END DO
     ENDIF
+  CASE('AGNE')       ! h*a**2/(x**2+a**2) shape
+    LFLAT = .FALSE.
+    IF(L2D) THEN                     ! two-dimensional case
+      DO JILOOP = 1, NIU
+        ZDIST = XXHAT(JILOOP)-FLOAT(NIZS)*XDELTAX
+          XZS(JILOOP,:) = XHMAX*(XAX**2)/(XAX**2+ZDIST**2)
+      END DO
+		ELSE		! three dimensionnal case - infinite profile in y direction
+			DO JILOOP = 1, NIU
+        ZDIST = XXHAT(JILOOP)-FLOAT(NIZS)*XDELTAX
+          XZS(JILOOP,:) = XHMAX*(XAX**2)/(XAX**2+ZDIST**2)
+      END DO
+    ENDIF
+
   CASE('DATA')       ! discretized orography
     LFLAT    =.FALSE.
     WRITE(NLUOUT,FMT=*) 'CZS="DATA",   ATTEMPT TO READ ARRAY     &
@@ -1372,20 +1411,17 @@ IF (CTYPELOC /= 'IJGRID') THEN
   NJLOC = MINLOC(ABS(XYHATLOC-ZYHAT_ll(:)))
 END IF
 !
-IF ( NILOC(1) == 1 )  NILOC = 2
-IF ( NJLOC(1) == 1 )  NJLOC = 2
-!
-IF ( L1D .AND. (NILOC(1) /= NIB .OR. NJLOC(1) /= NJB) ) THEN
-  NILOC = NIB
-  NJLOC = NJB
+IF ( L1D .AND. ( NILOC(1) /= 1 .OR. NJLOC(1) /= 1 ) ) THEN
+  NILOC = 1
+  NJLOC = 1
   WRITE(NLUOUT,FMT=*) 'FOR 1D CONFIGURATION, THE RS INFORMATIONS ARE TAKEN AT &
-                      & I=NIB AND J=NJB (CENTRAL VERTICAL)'
+                      & I=1 AND J=1 (CENTRAL VERTICAL WITHOUT HALO)'
 END IF
 !
-IF ( L2D .AND. ( NJLOC(1) /= NJB) ) THEN
-  NJLOC = NJB
+IF ( L2D .AND. ( NJLOC(1) /= 1 ) ) THEN
+  NJLOC = 1
   WRITE(NLUOUT,FMT=*) 'FOR 2D CONFIGURATION, THE RS INFORMATIONS ARE TAKEN AT &
-                      & J=NJB (CENTRAL PLANE)'
+                      & J=1 (CENTRAL PLANE WITHOUT HALO)'
 END IF
 !
 !*       5.2    Prognostic variables (not multiplied by  rhoJ) : u,v,w,theta,r
@@ -1538,42 +1574,42 @@ END IF
 ILBX=SIZE(XLBXUM,1)
 ILBY=SIZE(XLBYUM,2)
 IF(LWEST_ll() .AND. .NOT. L1D) THEN
-  XLBXUM(1:NRIMX+1,        :,:)     = XUT(2:NRIMX+2,        :,:)
-  XLBXVM(1:NRIMX+1,        :,:)     = XVT(1:NRIMX+1,        :,:)
-  XLBXWM(1:NRIMX+1,        :,:)     = XWT(1:NRIMX+1,        :,:)
-  XLBXTHM(1:NRIMX+1,        :,:)   = XTHT(1:NRIMX+1,        :,:)
-  XLBXRM(1:NRIMX+1,        :,:,:)   = XRT(1:NRIMX+1,        :,:,:)
+  XLBXUM(1:NRIMX+JPHEXT,        :,:)     = XUT(2:NRIMX+JPHEXT+1,        :,:)
+  XLBXVM(1:NRIMX+JPHEXT,        :,:)     = XVT(1:NRIMX+JPHEXT,        :,:)
+  XLBXWM(1:NRIMX+JPHEXT,        :,:)     = XWT(1:NRIMX+JPHEXT,        :,:)
+  XLBXTHM(1:NRIMX+JPHEXT,        :,:)   = XTHT(1:NRIMX+JPHEXT,        :,:)
+  XLBXRM(1:NRIMX+JPHEXT,        :,:,:)   = XRT(1:NRIMX+JPHEXT,        :,:,:)
 ENDIF
 IF(LEAST_ll() .AND. .NOT. L1D) THEN
-  XLBXUM(ILBX-NRIMX:ILBX,:,:)     = XUT(NIU-NRIMX:NIU,    :,:)
-  XLBXVM(ILBX-NRIMX:ILBX,:,:)     = XVT(NIU-NRIMX:NIU,    :,:)
-  XLBXWM(ILBX-NRIMX:ILBX,:,:)     = XWT(NIU-NRIMX:NIU,    :,:)
-  XLBXTHM(ILBX-NRIMX:ILBX,:,:)   = XTHT(NIU-NRIMX:NIU,    :,:)
-  XLBXRM(ILBX-NRIMX:ILBX,:,:,:)   = XRT(NIU-NRIMX:NIU,    :,:,:)
+  XLBXUM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)     = XUT(NIU-NRIMX-JPHEXT+1:NIU,    :,:)
+  XLBXVM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)     = XVT(NIU-NRIMX-JPHEXT+1:NIU,    :,:)
+  XLBXWM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)     = XWT(NIU-NRIMX-JPHEXT+1:NIU,    :,:)
+  XLBXTHM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)   = XTHT(NIU-NRIMX-JPHEXT+1:NIU,    :,:)
+  XLBXRM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:,:)   = XRT(NIU-NRIMX-JPHEXT+1:NIU,    :,:,:)
 ENDIF
 IF(LSOUTH_ll() .AND. .NOT. L1D .AND. .NOT. L2D) THEN
-  XLBYUM(:,1:NRIMY+1,        :)     = XUT(:,1:NRIMY+1,      :)
-  XLBYVM(:,1:NRIMY+1,        :)     = XVT(:,2:NRIMY+2,      :)
-  XLBYWM(:,1:NRIMY+1,        :)     = XWT(:,1:NRIMY+1,  :)
-  XLBYTHM(:,1:NRIMY+1,        :)    = XTHT(:,1:NRIMY+1,      :)
-  XLBYRM(:,1:NRIMY+1,        :,:)   = XRT(:,1:NRIMY+1,      :,:)
+  XLBYUM(:,1:NRIMY+JPHEXT,        :)     = XUT(:,1:NRIMY+JPHEXT,      :)
+  XLBYVM(:,1:NRIMY+JPHEXT,        :)     = XVT(:,2:NRIMY+JPHEXT+1,      :)
+  XLBYWM(:,1:NRIMY+JPHEXT,        :)     = XWT(:,1:NRIMY+JPHEXT,  :)
+  XLBYTHM(:,1:NRIMY+JPHEXT,        :)    = XTHT(:,1:NRIMY+JPHEXT,      :)
+  XLBYRM(:,1:NRIMY+JPHEXT,        :,:)   = XRT(:,1:NRIMY+JPHEXT,      :,:)
 ENDIF
 IF(LNORTH_ll().AND. .NOT. L1D .AND. .NOT. L2D) THEN
-  XLBYUM(:,ILBY-NRIMY:ILBY,:)     = XUT(:,NJU-NRIMY:NJU,  :)
-  XLBYVM(:,ILBY-NRIMY:ILBY,:)     = XVT(:,NJU-NRIMY:NJU,  :)
-  XLBYWM(:,ILBY-NRIMY:ILBY,:)     = XWT(:,NJU-NRIMY:NJU,  :)
-  XLBYTHM(:,ILBY-NRIMY:ILBY,:)    = XTHT(:,NJU-NRIMY:NJU,  :)
-  XLBYRM(:,ILBY-NRIMY:ILBY,:,:)   = XRT(:,NJU-NRIMY:NJU,  :,:)
+  XLBYUM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)     = XUT(:,NJU-NRIMY-JPHEXT+1:NJU,  :)
+  XLBYVM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)     = XVT(:,NJU-NRIMY-JPHEXT+1:NJU,  :)
+  XLBYWM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)     = XWT(:,NJU-NRIMY-JPHEXT+1:NJU,  :)
+  XLBYTHM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)    = XTHT(:,NJU-NRIMY-JPHEXT+1:NJU,  :)
+  XLBYRM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:,:)   = XRT(:,NJU-NRIMY-JPHEXT+1:NJU,  :,:)
 ENDIF
 DO JSV = 1, NSV
   IF(LWEST_ll() .AND. .NOT. L1D) &
-  XLBXSVM(1:NRIMX+1,        :,:,JSV)   = XSVT(1:NRIMX+1,        :,:,JSV)
+  XLBXSVM(1:NRIMX+JPHEXT,        :,:,JSV)   = XSVT(1:NRIMX+JPHEXT,        :,:,JSV)
   IF(LEAST_ll() .AND. .NOT. L1D) &
-  XLBXSVM(ILBX-NRIMX:ILBX,:,:,JSV)   = XSVT(NIU-NRIMX:NIU,    :,:,JSV)
+  XLBXSVM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:,JSV)   = XSVT(NIU-NRIMX-JPHEXT+1:NIU,    :,:,JSV)
   IF(LSOUTH_ll() .AND. .NOT. L1D .AND. .NOT. L2D) &
-  XLBYSVM(:,1:NRIMY+1,        :,JSV)   = XSVT(:,1:NRIMY+1,      :,JSV)
+  XLBYSVM(:,1:NRIMY+JPHEXT,        :,JSV)   = XSVT(:,1:NRIMY+JPHEXT,      :,JSV)
   IF(LNORTH_ll() .AND. .NOT. L1D .AND. .NOT. L2D) &
-  XLBYSVM(:,ILBY-NRIMY:ILBY,:,JSV)   = XSVT(:,NJU-NRIMY:NJU,  :,JSV)
+  XLBYSVM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:,JSV)   = XSVT(:,NJU-NRIMY-JPHEXT+1:NJU,  :,JSV)
 END DO
 !
 !
diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90
index c60b101fc..6338c9077 100644
--- a/src/MNH/prep_nest_pgd.f90
+++ b/src/MNH/prep_nest_pgd.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/22 12:37:08
 !-----------------------------------------------------------------
 !     #####################
       PROGRAM PREP_NEST_PGD
@@ -89,6 +88,7 @@
 !!    -------------
 !!      Original    26/09/95
 !!                  30/07/97 (Masson) split of mode_lfifm_pgd
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -132,6 +132,9 @@ USE MODN_NCOUT
 USE MODE_UTIL
 #endif
 !
+USE MODE_SPLITTINGZ_ll, ONLY : INI_PARAZ_ll
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of local variables
@@ -160,12 +163,13 @@ INTEGER                        :: JTIME,ITIME
 !
 !-------------------------------------------------------------------------------
 !
+CALL MPPDB_INIT()
 !
 CALL VERSION
 CPROGRAM='NESPGD'
 !
 CALL INITIO_ll()
-CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT)
+!!$CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT)
 !
 !*       1.    INITIALIZATION OF PHYSICAL CONSTANTS
 !              ------------------------------------
@@ -180,6 +184,8 @@ CALL INI_CST
 NVERB=1
 !
 CALL OPEN_NESTPGD_FILES(CPGD,CNESTPGD)
+CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT)
+!
 CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
 CALL ALLOC_SURFEX(NMODEL)
@@ -216,6 +222,21 @@ NYSIZE(:)=0
 NDXRATIO_ALL(:)=0
 NDYRATIO_ALL(:)=0
 !
+!MODEL1
+  ! read the grid in the PGD file
+CALL FMREAD(CPGD(1),'IMAX',CLUOUT0,'--',NXSIZE(1),IGRID,ILENCH,YCOMMENT,IRESP)
+CALL FMREAD(CPGD(1),'JMAX',CLUOUT0,'--',NYSIZE(1),IGRID,ILENCH,YCOMMENT,IRESP)
+!
+CALL SET_DAD0_ll()
+CALL SET_DIM_ll(NXSIZE(1),NYSIZE(1),1)
+CALL SET_XRATIO_ll(1, 1)
+CALL SET_YRATIO_ll(1, 1)
+CALL SET_XOR_ll(1, 1)
+CALL SET_XEND_ll(NXSIZE(1)+2*JPHEXT, 1)
+CALL SET_YOR_ll(1, 1)
+CALL SET_YEND_ll(NYSIZE(1)+2*JPHEXT, 1)
+CALL SET_DAD_ll(0, 1)
+!
 !* loop in this order, to make coherent all the coordinate arrays with model 1
 !
 DO JPGD=2,NMODEL
@@ -223,9 +244,24 @@ DO JPGD=2,NMODEL
                           NXOR_ALL(JPGD),NYOR_ALL(JPGD),                 &
                           NXSIZE(JPGD),NYSIZE(JPGD),                     &
                           NDXRATIO_ALL(JPGD),NDYRATIO_ALL(JPGD))
-  NXEND_ALL(JPGD)=NXOR_ALL(JPGD)+NXSIZE(JPGD)+1
-  NYEND_ALL(JPGD)=NYOR_ALL(JPGD)+NYSIZE(JPGD)+1
+
+  NXEND_ALL(JPGD)=NXOR_ALL(JPGD)+NXSIZE(JPGD)+2*JPHEXT -1
+  NYEND_ALL(JPGD)=NYOR_ALL(JPGD)+NYSIZE(JPGD)+2*JPHEXT -1
+
+!!$  CALL SET_LBX_ll(CLBCX(1), JPGD)
+!!$  CALL SET_LBY_ll(CLBCY(1), JPGD)
+  CALL SET_XRATIO_ll(NDXRATIO_ALL(JPGD), JPGD)
+  CALL SET_YRATIO_ll(NDYRATIO_ALL(JPGD), JPGD)
+  CALL SET_XOR_ll(NXOR_ALL(JPGD), JPGD)
+  CALL SET_XEND_ll(NXEND_ALL(JPGD), JPGD)
+  CALL SET_YOR_ll(NYOR_ALL(JPGD), JPGD)
+  CALL SET_YEND_ll(NYEND_ALL(JPGD), JPGD)
+  CALL SET_DAD_ll(NDAD(JPGD), JPGD )
+
+!!$CALL SET_DIM_ll(NXSIZE(JPGD),NYSIZE(JPGD),1)
+
 END DO
+CALL INI_PARAZ_ll(IINFO_ll)
 !
 !-------------------------------------------------------------------------------
 !
@@ -235,7 +271,7 @@ END DO
 DO JPGD=1,NMODEL
   CALL GOTO_SURFEX(JPGD,.TRUE.)
   CALL GOTO_MODEL(JPGD)
-  CALL INIT_HORGRID_ll_n()
+!!$  CALL INIT_HORGRID_ll_n()
   CALL DEFINE_MASK_n()
 END DO
 !
@@ -248,6 +284,7 @@ WRITE(ILUOUT0,FMT=*)
 WRITE(ILUOUT0,FMT=*) 'field ZS   of all models'
 DO JPGD=NMODEL,1,-1
   CALL GOTO_MODEL(JPGD)
+!!$  CALL GO_TOMODEL_ll(JPGD,IINFO_ll)
   CALL GOTO_SURFEX(JPGD,.TRUE.)
   CALL NEST_FIELD_n('ZS    ')
 END DO
@@ -258,6 +295,7 @@ WRITE(ILUOUT0,FMT=*)
 WRITE(ILUOUT0,FMT=*) 'field ZSMT of all models'
 DO JPGD=1,NMODEL
   CALL GOTO_MODEL(JPGD)
+!!$  CALL GO_TOMODEL_ll(JPGD,IINFO_ll)
   CALL GOTO_SURFEX(JPGD,.TRUE.)
   CALL NEST_ZSMT_n('ZSMT  ')
 END DO
@@ -286,6 +324,7 @@ END DO
 !              -------------------------
 !
 DO JPGD=1,NMODEL
+!!$  CALL GO_TOMODEL_ll(JPGD,IINFO_ll)
   CALL GOTO_MODEL(JPGD)
   CALL GOTO_SURFEX(JPGD,.TRUE.)
   CALL MNHPUT_ZS_n
@@ -354,6 +393,7 @@ DO JPGD=1,NMODEL
   CALL FMWRIT(CNESTPGD(JPGD),'L1D         ',CLUOUT0,'--',L1D_ALL(JPGD),0,1,' ',IRESP)
   CALL FMWRIT(CNESTPGD(JPGD),'L2D         ',CLUOUT0,'--',L2D_ALL(JPGD),0,1,' ',IRESP)
   CALL FMWRIT(CNESTPGD(JPGD),'PACK        ',CLUOUT0,'--',LPACK_ALL(JPGD),0,1,' ',IRESP)
+  CALL FMWRIT(CNESTPGD(JPGD),'JPHEXT      ',CLUOUT0,'--',JPHEXT,0,1,' ',IRESP)
 END DO
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index 13f529569..ecf2a6146 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -60,6 +60,7 @@
 !!    Modification 30/03/2012     Add NAM_NCOUT for netcdf output (S.Bielli)
 !!    S.Bielli     23/04/2014     supress writing of LAt and LON in NETCDF case
 !!    S.Bielli     20/11/2014     add writing of LAt and LON in NETCDF case
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !----------------------------------------------------------------------------
 !
 !*    0.     DECLARATION
@@ -82,6 +83,7 @@ USE MODI_ZSMT_PGD
 !
 !JUAN
 USE MODN_CONFZ
+USE MODN_CONF, ONLY : JPHEXT , NHALO_MNH => NHALO
 !JUAN
 USE MODN_CONFIO
 !
@@ -101,6 +103,8 @@ USE MODN_NCOUT
 USE MODE_UTIL
 USE MODE_FMREAD
 #endif
+
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -134,8 +138,10 @@ INTEGER           :: IIMAX, IJMAX
 NAMELIST/NAM_PGDFILE/CPGDFILE, NHALO
 NAMELIST/NAM_ZSFILTER/NZSFILTER
 NAMELIST/NAM_SLEVE/NSLEVE, XSMOOTH_ZS
+NAMELIST/NAM_CONF_PGD/JPHEXT, NHALO_MNH
 !------------------------------------------------------------------------------
 !
+CALL MPPDB_INIT()
 !
 CPROGRAM='PGD   '
 !
@@ -173,6 +179,8 @@ IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_SLEVE)
 !JUANZ
 CALL POSNAM(ILUNAM,'NAM_CONFZ',GFOUND)
 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONFZ)
+CALL POSNAM(ILUNAM,'NAM_CONF_PGD',GFOUND)
+IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONF_PGD)
 !JUANZ
 CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND)
 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONFIO)
@@ -232,6 +240,7 @@ CALL FMWRIT(COUTFMFILE,'SURF        ',CLUOUT0,'--','EXTE',0,1,' ',IRESP)
 CALL FMWRIT(COUTFMFILE,'L1D         ',CLUOUT0,'--',L1D,0,1,' ',IRESP)
 CALL FMWRIT(COUTFMFILE,'L2D         ',CLUOUT0,'--',L2D,0,1,' ',IRESP)
 CALL FMWRIT(COUTFMFILE,'PACK        ',CLUOUT0,'--',LPACK,0,1,' ',IRESP)
+CALL FMWRIT(COUTFMFILE,'JPHEXT      ',CLUOUT0,'--',JPHEXT,0,1,' ',IRESP)
 !
 #ifdef MNH_NCWRIT
 NC_WRITE = LNETCDF
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index e137453d7..f629664e6 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/11/30 10:44:37
 !-----------------------------------------------------------------
 !     ######################
       PROGRAM PREP_REAL_CASE
@@ -375,6 +374,7 @@
 !!                  July  2013     (Bosseur & Filippi) Adds Forefire
 !!                  Mars  2014     (J.Escobar) Missing 'full' UPDATE_METRICS for arp2lfi // run
 !!                   April 2014     (G.TANGUY) Add LCOUPLING
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -459,6 +459,8 @@ USE MODI_DEALLOC_SURFEX
 !
 USE MODE_MPPDB
 !
+USE MODN_CONF, ONLY : JPHEXT , NHALO
+!
 IMPLICIT NONE
 !
 !*       0.1   Declaration of local variables
@@ -510,7 +512,7 @@ LOGICAL  :: LUSECHIC
 !              ------------------------
 !
 NAMELIST/NAM_REAL_CONF/ NVERB, CEQNSYS, CPRESOPT, LSHIFT, LDUMMY_REAL, &
-                        LRES, XRES, NITR,LCOUPLING
+                        LRES, XRES, NITR,LCOUPLING, NHALO , JPHEXT
 ! Filtering and balancing of the large-scale and radar tropical cyclone
 NAMELIST/NAM_HURR_CONF/ LFILTERING, CFILTERING,   &
 XLAMBDA, NK, XLATGUESS, XLONGUESS, XBOXWIND, XRADGUESS, NPHIL, NDIAG_FILT,   &
@@ -614,6 +616,10 @@ CALL INI_CST
 !
 CALL FMLOOK_ll(YPRE_REAL1,CLUOUT0,IPRE_REAL1,IRESP)
 !
+CALL INIT_NMLVAR
+CALL POSNAM(IPRE_REAL1,'NAM_REAL_CONF',GFOUND,ILUOUT0)
+IF (GFOUND) READ(IPRE_REAL1,NAM_REAL_CONF)
+!
 !*       4.2   reading of values of some configuration variables in namelist
 !
 !
diff --git a/src/MNH/pressure_in_prep.f90 b/src/MNH/pressure_in_prep.f90
index 8e635a9cf..4f5ecf00c 100644
--- a/src/MNH/pressure_in_prep.f90
+++ b/src/MNH/pressure_in_prep.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/07/07 11:58:36
 !-----------------------------------------------------------------
 !     ######################
 MODULE MODI_PRESSURE_IN_PREP
@@ -66,6 +65,7 @@ END MODULE MODI_PRESSURE_IN_PREP
 !!    -------------
 !!      Original    22/12/98
 !!      parallelization                                   18/06/00 (Jabouille)
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -118,8 +118,6 @@ REAL,DIMENSION(SIZE(PDXX,1),SIZE(PDXX,2),SIZE(PDXX,3)):: ZDIV ! residual diverge
 !
 INTEGER      :: ILUOUT0  ! logical unit for listing file
 INTEGER      :: IRESP    ! error code
-INTEGER      :: IIB, IIE ! inner limits in X direction
-INTEGER      :: IJB, IJE ! inner limits in Y direction
 INTEGER      :: IKB, IKE ! inner limits in Z direction
 INTEGER      :: IKU
 INTEGER      :: IINFO_ll
@@ -135,10 +133,6 @@ INTEGER               :: I,J,K
 !
 CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
-IIB=1+JPHEXT
-IIE=NIMAX+JPHEXT
-IJB=1+JPHEXT
-IJE=NJMAX+JPHEXT
 IKB=1+JPVEXT
 IKE=NKMAX+JPVEXT
 IKU=IKE+JPVEXT
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index 4fe0d4b1d..d6622eefd 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -219,6 +219,7 @@ END MODULE MODI_PRESSUREZ
 !!                    02/2013 (J.Escobar ) add a test on abs(err) > 100.O for BG without controle of NAN
 !!                    2012    (V.Masson)  Modif update_halo due to CONTRAV
 !!                    2014    (C.Lac) correction for 3D run with LBOUSS=.TRUE.
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -251,6 +252,7 @@ USE MODD_DYN_n  , ONLY : LRES, XRES
 USE MODD_MPIF
 USE MODD_VAR_ll, ONLY : MPI_PRECISION, NMNH_COMM_WORLD
 !JUANZ
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -371,6 +373,8 @@ REAL, DIMENSION(SIZE(PDYY,2),SIZE(PDXX,3)) :: ZPABS_W ! local pressure on wester
 INTEGER :: IINFO_ll,KINFO
 TYPE(LIST_ll), POINTER :: TZFIELDS_ll, TZFIELDS2_ll  ! list of fields to exchange
 !
+INTEGER :: IIB_I,IIE_I,IJB_I,IJE_I
+!
 !
 !------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------
@@ -527,29 +531,30 @@ IF ( HLBCX(1) /= 'CYCL' ) THEN
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
     DO JK=2,IKU-1
-      ZDV_SOURCE(2,:,JK)=                                                    &
-       (ZPHIT(2,:,JK) - ZPHIT(1,:,JK) - 0.5 * (                              &
-        PDZX(2,:,JK)   * (ZPHIT(2,:,JK)-ZPHIT(2,:,JK-1)) / PDZZ(2,:,JK)      &
-       +PDZX(2,:,JK+1) * (ZPHIT(2,:,JK+1)-ZPHIT(2,:,JK)) / PDZZ(2,:,JK+1)    &
+      ZDV_SOURCE(IIB,:,JK)=                                                    &
+       (ZPHIT(IIB,:,JK) - ZPHIT(IIB-1,:,JK) - 0.5 * (                              &
+        PDZX(IIB,:,JK)   * (ZPHIT(IIB,:,JK)-ZPHIT(IIB,:,JK-1)) / PDZZ(IIB,:,JK)      &
+       +PDZX(IIB,:,JK+1) * (ZPHIT(IIB,:,JK+1)-ZPHIT(IIB,:,JK)) / PDZZ(IIB,:,JK+1)    &
                                               )                              &
-       ) / PDXX(2,:,JK)
+       ) / PDXX(IIB,:,JK)
     END DO
   ENDIF
   !
   IF(LEAST_ll()) THEN
     DO JK=2,IKU-1
-      ZDV_SOURCE(IIU,:,JK)=                                                   &
-        (ZPHIT(IIU,:,JK) - ZPHIT(IIU-1,:,JK) - 0.5 * (                        &
-         PDZX(IIU,:,JK)   * (ZPHIT(IIU-1,:,JK)-ZPHIT(IIU-1,:,JK-1))           &
-                          / PDZZ(IIU-1,:,JK)                                  &
-        +PDZX(IIU,:,JK+1) * (ZPHIT(IIU-1,:,JK+1)-ZPHIT(IIU-1,:,JK))           &
-                          / PDZZ(IIU-1,:,JK+1)                                &
+      ZDV_SOURCE(IIE+1,:,JK)=                                                   &
+        (ZPHIT(IIE+1,:,JK) - ZPHIT(IIE+1-1,:,JK) - 0.5 * (                        &
+         PDZX(IIE+1,:,JK)   * (ZPHIT(IIE+1-1,:,JK)-ZPHIT(IIE+1-1,:,JK-1))           &
+                          / PDZZ(IIE+1-1,:,JK)                                  &
+        +PDZX(IIE+1,:,JK+1) * (ZPHIT(IIE+1-1,:,JK+1)-ZPHIT(IIE+1-1,:,JK))           &
+                          / PDZZ(IIE+1-1,:,JK+1)                                &
                                                      )                        &
-        ) / PDXX(IIU,:,JK)
+        ) / PDXX(IIE+1,:,JK)
     END DO
   END IF
 END IF
 !
+CALL MPPDB_CHECK3DM("before MXM PRESSUREZ :PRU/V/WS",PRECISION,PRUS,PRVS,PRWS)
 IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
   PRUS = PRUS - MXM(PRHODJ * XCPD * ZTHETAV) * ZDV_SOURCE
   PRWS = PRWS - MZM(1,IKU,1,PRHODJ * XCPD * ZTHETAV) * GZ_M_W(1,IKU,1,ZPHIT,PDZZ)
@@ -567,29 +572,30 @@ IF(.NOT. L2D) THEN
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
       DO JK=2,IKU-1
-        ZDV_SOURCE(:,2,JK)=                                                  &
-         (ZPHIT(:,2,JK) - ZPHIT(:,1,JK) - 0.5 * (                            &
-          PDZY(:,2,JK)   * (ZPHIT(:,2,JK)-ZPHIT(:,2,JK-1)) / PDZZ(:,2,JK)    &
-         +PDZY(:,2,JK+1) * (ZPHIT(:,2,JK+1)-ZPHIT(:,2,JK)) / PDZZ(:,2,JK+1)  &
+        ZDV_SOURCE(:,IJB,JK)=                                                  &
+         (ZPHIT(:,IJB,JK) - ZPHIT(:,IJB-1,JK) - 0.5 * (                            &
+          PDZY(:,IJB,JK)   * (ZPHIT(:,IJB,JK)-ZPHIT(:,IJB,JK-1)) / PDZZ(:,IJB,JK)    &
+         +PDZY(:,IJB,JK+1) * (ZPHIT(:,IJB,JK+1)-ZPHIT(:,IJB,JK)) / PDZZ(:,IJB,JK+1)  &
                                                 )                            &
-         ) / PDYY(:,2,JK)
+         ) / PDYY(:,IJB,JK)
       END DO
     END IF
     !
     IF (LNORTH_ll()) THEN
       DO JK=2,IKU-1
-        ZDV_SOURCE(:,IJU,JK)=                                                &
-         (ZPHIT(:,IJU,JK) - ZPHIT(:,IJU-1,JK) - 0.5 * (                      &
-          PDZY(:,IJU,JK)   * (ZPHIT(:,IJU-1,JK)-ZPHIT(:,IJU-1,JK-1))         &
-                           / PDZZ(:,IJU-1,JK)                                &
-         +PDZY(:,IJU,JK+1) * (ZPHIT(:,IJU-1,JK+1)-ZPHIT(:,IJU-1,JK))         &
-                           / PDZZ(:,IJU-1,JK+1)                              &
+        ZDV_SOURCE(:,IJE+1,JK)=                                                &
+         (ZPHIT(:,IJE+1,JK) - ZPHIT(:,IJE+1-1,JK) - 0.5 * (                      &
+          PDZY(:,IJE+1,JK)   * (ZPHIT(:,IJE+1-1,JK)-ZPHIT(:,IJE+1-1,JK-1))         &
+                           / PDZZ(:,IJE+1-1,JK)                                &
+         +PDZY(:,IJE+1,JK+1) * (ZPHIT(:,IJE+1-1,JK+1)-ZPHIT(:,IJE+1-1,JK))         &
+                           / PDZZ(:,IJE+1-1,JK+1)                              &
                                                       )                      &
-        ) / PDYY(:,IJU,JK)
+        ) / PDYY(:,IJE+1,JK)
       END DO
     END IF
   END IF
 !
+  CALL MPPDB_CHECK3DM("before MYM PRESSUREZ :PRU/V/WS",PRECISION,PRUS,PRVS,PRWS)
   IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
     PRVS = PRVS - MYM(PRHODJ * XCPD * ZTHETAV) * ZDV_SOURCE
   ELSEIF(CEQNSYS=='LHE') THEN
diff --git a/src/MNH/qlap.f90 b/src/MNH/qlap.f90
index e57eedf46..7e78f44dc 100644
--- a/src/MNH/qlap.f90
+++ b/src/MNH/qlap.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ################
       MODULE MODI_QLAP
@@ -112,7 +111,8 @@ END MODULE MODI_QLAP
 !!                     14/01/97 New anelastic equation ( Stein )
 !!                     17/12/97 include the case of non-vanishing orography
 !!                              at the lbc ( Stein )
-!!                     06/12 V.Masson : update_halo due to CONTRAV changes 
+!!                     06/12 V.Masson : update_halo due to CONTRAV changes
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1  
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -127,6 +127,8 @@ USE MODI_GDIV
 USE MODI_GRADIENT_M
 USE MODI_SHUMAN
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -161,6 +163,7 @@ INTEGER                          :: IIU,IJU,IKU         ! I,J,K array sizes
 INTEGER                          :: JK,JJ,JI            ! vertical loop index
 TYPE(LIST_ll), POINTER :: TZFIELDS_ll   ! list of fields to exchange
 INTEGER :: IINFO_ll
+INTEGER :: IIB,IIE,IJB,IJE
 !-------------------------------------------------------------------------------
 !
 !
@@ -168,57 +171,64 @@ INTEGER :: IINFO_ll
 !              -------------------------------
 !
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKU=SIZE(PY,3)
 !
 ZU = GX_M_U(1,IKU,1,PY,PDXX,PDZZ,PDZX)
+CALL MPPDB_CHECK3D(ZU,'QLAP::ZU',PRECISION)
 !
 IF ( HLBCX(1) /= 'CYCL' .AND. LWEST_ll() ) THEN
   DO JK=2,IKU-1
     DO JJ=1,IJU
-      ZU(2,JJ,JK)=  (PY(2,JJ,JK) - PY(1,JJ,JK) - 0.5 * (                  &
-       PDZX(2,JJ,JK)   * (PY(2,JJ,JK)-PY(2,JJ,JK-1)) / PDZZ(2,JJ,JK)      &
-      +PDZX(2,JJ,JK+1) * (PY(2,JJ,JK+1)-PY(2,JJ,JK)) / PDZZ(2,JJ,JK+1)    &  
-                                      )    ) / PDXX(2,JJ,JK)
+      ZU(IIB,JJ,JK)=  (PY(IIB,JJ,JK) - PY(IIB-1,JJ,JK) - 0.5 * (                  &
+       PDZX(IIB,JJ,JK)   * (PY(IIB,JJ,JK)-PY(IIB,JJ,JK-1)) / PDZZ(IIB,JJ,JK)      &
+      +PDZX(IIB,JJ,JK+1) * (PY(IIB,JJ,JK+1)-PY(IIB,JJ,JK)) / PDZZ(IIB,JJ,JK+1)    &  
+                                      )    ) / PDXX(IIB,JJ,JK)
     END DO
   END DO
 END IF
+CALL MPPDB_CHECK3D(ZU,'QLAP::ZU/W',PRECISION)
 !
 IF ( HLBCX(1) /= 'CYCL' .AND. LEAST_ll() ) THEN
   DO JK=2,IKU-1
     DO JJ=1,IJU
-      ZU(IIU,JJ,JK)=  (PY(IIU,JJ,JK) - PY(IIU-1,JJ,JK) - 0.5 * (                    &
-        PDZX(IIU,JJ,JK)   * (PY(IIU-1,JJ,JK)-PY(IIU-1,JJ,JK-1)) / PDZZ(IIU-1,JJ,JK)  &
-       +PDZX(IIU,JJ,JK+1) * (PY(IIU-1,JJ,JK+1)-PY(IIU-1,JJ,JK)) / PDZZ(IIU-1,JJ,JK+1)&  
-                                            ) ) / PDXX(IIU,JJ,JK)
+      ZU(IIE+1,JJ,JK)=  (PY(IIE+1,JJ,JK) - PY(IIE+1-1,JJ,JK) - 0.5 * (                    &
+        PDZX(IIE+1,JJ,JK)   * (PY(IIE+1-1,JJ,JK)-PY(IIE+1-1,JJ,JK-1)) / PDZZ(IIE+1-1,JJ,JK)  &
+       +PDZX(IIE+1,JJ,JK+1) * (PY(IIE+1-1,JJ,JK+1)-PY(IIE+1-1,JJ,JK)) / PDZZ(IIE+1-1,JJ,JK+1)&  
+                                            ) ) / PDXX(IIE+1,JJ,JK)
     END DO
   END DO
 END IF
+CALL MPPDB_CHECK3D(ZU,'QLAP::ZU/E',PRECISION)
 !
 IF(.NOT. L2D) THEN 
 !
   ZV = GY_M_V(1,IKU,1,PY,PDYY,PDZZ,PDZY)
+  CALL MPPDB_CHECK3D(ZV,'QLAP::ZV',PRECISION)
 !
   IF ( HLBCY(1) /= 'CYCL' .AND. LSOUTH_ll() ) THEN 
     DO JK=2,IKU-1
       DO JI=1,IIU
-        ZV(JI,2,JK)=   (PY(JI,2,JK) - PY(JI,1,JK) - 0.5 * (                  &
-          PDZY(JI,2,JK)   * (PY(JI,2,JK)-PY(JI,2,JK-1)) / PDZZ(JI,2,JK)      &
-         +PDZY(JI,2,JK+1) * (PY(JI,2,JK+1)-PY(JI,2,JK)) / PDZZ(JI,2,JK+1)    &  
-                                            )   ) / PDYY(JI,2,JK) 
+        ZV(JI,IJB,JK)=   (PY(JI,IJB,JK) - PY(JI,IJB-1,JK) - 0.5 * (                  &
+          PDZY(JI,IJB,JK)   * (PY(JI,IJB,JK)-PY(JI,IJB,JK-1)) / PDZZ(JI,IJB,JK)      &
+         +PDZY(JI,IJB,JK+1) * (PY(JI,IJB,JK+1)-PY(JI,IJB,JK)) / PDZZ(JI,IJB,JK+1)    &  
+                                            )   ) / PDYY(JI,IJB,JK) 
       END DO
     END DO
   END IF
+  CALL MPPDB_CHECK3D(ZV,'QLAP::ZV/S',PRECISION)
   IF ( HLBCY(1) /= 'CYCL' .AND. LNORTH_ll() ) THEN
 !
     DO JK=2,IKU-1
       DO JI=1,IIU
-        ZV(JI,IJU,JK)=    (PY(JI,IJU,JK) - PY(JI,IJU-1,JK) - 0.5 * (                  &
-          PDZY(JI,IJU,JK)   * (PY(JI,IJU-1,JK)-PY(JI,IJU-1,JK-1)) / PDZZ(JI,IJU-1,JK)  &
-         +PDZY(JI,IJU,JK+1) * (PY(JI,IJU-1,JK+1)-PY(JI,IJU-1,JK)) / PDZZ(JI,IJU-1,JK+1)&
-                                                )  ) / PDYY(JI,IJU,JK) 
+        ZV(JI,IJE+1,JK)=    (PY(JI,IJE+1,JK) - PY(JI,IJE+1-1,JK) - 0.5 * (                  &
+          PDZY(JI,IJE+1,JK)   * (PY(JI,IJE+1-1,JK)-PY(JI,IJE+1-1,JK-1)) / PDZZ(JI,IJE+1-1,JK)  &
+         +PDZY(JI,IJE+1,JK+1) * (PY(JI,IJE+1-1,JK+1)-PY(JI,IJE+1-1,JK)) / PDZZ(JI,IJE+1-1,JK+1)&
+                                                )  ) / PDYY(JI,IJE+1,JK) 
       END DO
     END DO
   END IF
+ CALL MPPDB_CHECK3D(ZV,'QLAP::ZV/N',PRECISION)
 !
 ELSE
   ZV=0.
diff --git a/src/MNH/rad_bound.f90 b/src/MNH/rad_bound.f90
index 12333081a..5c77800b0 100644
--- a/src/MNH/rad_bound.f90
+++ b/src/MNH/rad_bound.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 lbc 2006/06/06 15:29:52
 !-----------------------------------------------------------------
 !####################
 MODULE MODI_RAD_BOUND
@@ -152,7 +151,8 @@ END MODULE MODI_RAD_BOUND
 !!      Escobar     9/11/2010 : cphas_profile : array bound problem if NO Turb =>  PTKET optional
 !!      Lac.C.       2011     : Adaptation to FIT temporal scheme
 !!      Modification 06/13     (C.Lac)   Introduction of cphase_pbl
-!!      Modification 03/14     (C.Lac)   Replacement of XRIMKMAX by XCARPKMAX                              
+!!      Modification 03/14     (C.Lac)   Replacement of XRIMKMAX by XCARPKMAX 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1                             
 !!      
 !-------------------------------------------------------------------------------
 !
@@ -288,13 +288,13 @@ SELECT CASE ( HLBCX(1) )
 !
     IF ( SIZE(PLBXUS,1) == 0 ) THEN
       ZLBEU (:,:) = 0.
-      ZLBGU (:,:) = PLBXUM(2,:,:) - PLBXUM(1,:,:) 
-      ZLBXU(:,:)  = PLBXUM(1,:,:)
+      ZLBGU (:,:) = PLBXUM(JPHEXT+1,:,:) - PLBXUM(JPHEXT,:,:)  ! 2 - 1
+      ZLBXU(:,:)  = PLBXUM(JPHEXT,:,:) ! 1
     ELSE
-      ZLBEU (:,:) = PLBXUS(1,:,:)
-      ZLBGU (:,:) = PLBXUM(2,:,:) - PLBXUM(1,:,:) +  &
-                      PTSTEP * (PLBXUS(2,:,:) - PLBXUS(1,:,:))
-      ZLBXU(:,:)  = PLBXUM(1,:,:) + PTSTEP * PLBXUS(1,:,:)
+      ZLBEU (:,:) = PLBXUS(JPHEXT,:,:) ! 1
+      ZLBGU (:,:) = PLBXUM(JPHEXT+1,:,:) - PLBXUM(JPHEXT,:,:) +  & ! 2 -  1
+                      PTSTEP * (PLBXUS(JPHEXT+1,:,:) - PLBXUS(JPHEXT,:,:)) ! 2 - 1
+      ZLBXU(:,:)  = PLBXUM(JPHEXT,:,:) + PTSTEP * PLBXUS(JPHEXT,:,:) ! 1  + 1
     END IF
 !  
 !     ============================================================
@@ -357,13 +357,13 @@ SELECT CASE ( HLBCX(2) )
     ILBX=SIZE(PLBXUM,1)
     IF (SIZE(PLBXUS,1) == 0 ) THEN
       ZLBEU (:,:) = 0.
-      ZLBGU (:,:) = PLBXUM(ILBX,:,:) - PLBXUM(ILBX-1,:,:) 
-      ZLBXU(:,:)  = PLBXUM(ILBX,:,:)
+      ZLBGU (:,:) = PLBXUM(ILBX-JPHEXT+1,:,:) - PLBXUM(ILBX-JPHEXT,:,:) ! ILBX / (ILBX-1
+      ZLBXU(:,:)  = PLBXUM(ILBX-JPHEXT+1,:,:)
     ELSE
-      ZLBEU (:,:) = PLBXUS(ILBX,:,:)
-      ZLBGU (:,:) = PLBXUM(ILBX,:,:) - PLBXUM(ILBX-1,:,:) +  &
-                      PTSTEP * (PLBXUS(ILBX,:,:) - PLBXUS(ILBX-1,:,:))
-      ZLBXU(:,:)  = PLBXUM(ILBX,:,:) + PTSTEP * PLBXUS(ILBX,:,:)
+      ZLBEU (:,:) = PLBXUS(ILBX-JPHEXT+1,:,:)
+      ZLBGU (:,:) = PLBXUM(ILBX-JPHEXT+1,:,:) - PLBXUM(ILBX-JPHEXT,:,:) +  &
+                      PTSTEP * (PLBXUS(ILBX-JPHEXT+1,:,:) - PLBXUS(ILBX-JPHEXT,:,:))
+      ZLBXU(:,:)  = PLBXUM(ILBX-JPHEXT+1,:,:) + PTSTEP * PLBXUS(ILBX-JPHEXT+1,:,:)
     END IF
 !     
 !     ============================================================
@@ -425,13 +425,13 @@ SELECT CASE ( HLBCY(1) )
 !
     IF ( SIZE(PLBYVS,1) == 0 ) THEN
       ZLBEV (:,:) = 0.
-      ZLBGV (:,:) = PLBYVM(:,2,:) - PLBYVM(:,1,:) 
-      ZLBYV(:,:)  = PLBYVM(:,1,:)
+      ZLBGV (:,:) = PLBYVM(:,JPHEXT+1,:) - PLBYVM(:,JPHEXT,:) 
+      ZLBYV(:,:)  = PLBYVM(:,JPHEXT,:)
     ELSE
-      ZLBEV (:,:) = PLBYVS(:,1,:)
-      ZLBGV (:,:) = PLBYVM(:,2,:) - PLBYVM(:,1,:) +  &
-                      PTSTEP * (PLBYVS(:,2,:) - PLBYVS(:,1,:))
-      ZLBYV(:,:)  = PLBYVM(:,1,:) + PTSTEP * PLBYVS(:,1,:)
+      ZLBEV (:,:) = PLBYVS(:,JPHEXT,:)
+      ZLBGV (:,:) = PLBYVM(:,JPHEXT+1,:) - PLBYVM(:,JPHEXT,:) +  &
+                      PTSTEP * (PLBYVS(:,JPHEXT+1,:) - PLBYVS(:,JPHEXT,:))
+      ZLBYV(:,:)  = PLBYVM(:,JPHEXT,:) + PTSTEP * PLBYVS(:,JPHEXT,:)
     END IF
 !  
 !     ============================================================
@@ -493,13 +493,13 @@ SELECT CASE ( HLBCY(2) )
     ILBY=SIZE(PLBYVM,2)
     IF ( SIZE(PLBYVS,1) == 0 ) THEN
       ZLBEV (:,:) = 0.
-      ZLBGV (:,:) = PLBYVM(:,ILBY,:) - PLBYVM(:,ILBY-1,:) 
-      ZLBYV(:,:)  = PLBYVM(:,ILBY,:)
+      ZLBGV (:,:) = PLBYVM(:,ILBY-JPHEXT+1,:) - PLBYVM(:,ILBY-JPHEXT,:) 
+      ZLBYV(:,:)  = PLBYVM(:,ILBY-JPHEXT+1,:)
     ELSE
-      ZLBEV (:,:) = PLBYVS(:,ILBY,:)
-      ZLBGV (:,:) = PLBYVM(:,ILBY,:) - PLBYVM(:,ILBY-1,:) +  &
-                      PTSTEP * (PLBYVS(:,ILBY,:) - PLBYVS(:,ILBY-1,:))
-      ZLBYV(:,:)  = PLBYVM(:,ILBY,:) + PTSTEP * PLBYVS(:,ILBY,:)
+      ZLBEV (:,:) = PLBYVS(:,ILBY-JPHEXT+1,:)
+      ZLBGV (:,:) = PLBYVM(:,ILBY-JPHEXT+1,:) - PLBYVM(:,ILBY-JPHEXT,:) +  &
+                      PTSTEP * (PLBYVS(:,ILBY-JPHEXT+1,:) - PLBYVS(:,ILBY-JPHEXT,:))
+      ZLBYV(:,:)  = PLBYVM(:,ILBY-JPHEXT+1,:) + PTSTEP * PLBYVS(:,ILBY-JPHEXT+1,:)
     END IF
 !  
 !     ============================================================
diff --git a/src/MNH/radar_simulator.f90 b/src/MNH/radar_simulator.f90
index c0bd0044c..503dcf453 100644
--- a/src/MNH/radar_simulator.f90
+++ b/src/MNH/radar_simulator.f90
@@ -126,6 +126,7 @@ END MODULE MODI_RADAR_SIMULATOR
 !!    for polar output:
 !!    NBAZIM set in nameliste (720) 
 !!    ZAZIM_BASE(JAZ)=(0.5+JAZ-1)*ZZSTEP
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!       
 !-------------------------------------------------------------------------------
 !
@@ -270,11 +271,8 @@ CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 IIU=SIZE(PTEMP,1)
 IJU=SIZE(PTEMP,2)
 IKU=SIZE(PTEMP,3)
-IIB = JPHEXT + 1
-IJB = JPHEXT + 1
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = JPVEXT + 1
-IIE = IIU - JPHEXT
-IJE = IJU - JPHEXT
 IKE = IKU - JPVEXT
 ! convective/stratiform
 ALLOCATE(GBU_MSK(IIU,IJU,4))
diff --git a/src/MNH/radtr_satel.f90 b/src/MNH/radtr_satel.f90
index b94f5729d..e761e3031 100644
--- a/src/MNH/radtr_satel.f90
+++ b/src/MNH/radtr_satel.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 diag 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !    #######################
      MODULE MODI_RADTR_SATEL 
@@ -104,6 +103,7 @@ END MODULE MODI_RADTR_SATEL
 !!    -------------
 !!      Original    29/03/00
 !!      J.-P. Chaboureau 15/04/03  add call to the subgrid condensation scheme
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -114,6 +114,7 @@ USE MODD_PARAMETERS
 USE MODD_GRID_n
 !
 USE MODD_RAD_TRANSF
+USE MODE_ll
 !
 USE MODI_INIT_NBMOD
 USE MODI_DETER_ANGLE
@@ -274,11 +275,8 @@ X1CO2 = PCCO2 / 44.0 * XMD
 IIU = SIZE(PTHT,1)
 IJU = SIZE(PTHT,2)
 IKU = SIZE(PTHT,3)
-IIB = 1 + JPHEXT
-IJB = 1 + JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
-IIE = IIU - JPHEXT
-IJE = IJU - JPHEXT
 IKE = IKU - JPVEXT
 !
 IKSTAE = SIZE(PSTATM,1)
diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90
index 41246839b..1d769c9ac 100644
--- a/src/MNH/rain_c2r2_khko.f90
+++ b/src/MNH/rain_c2r2_khko.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_8 microph 2008/06/27 17:38:00
 !-----------------------------------------------------------------
 !      ######################
        MODULE MODI_RAIN_C2R2_KHKO
@@ -207,6 +206,7 @@ END MODULE MODI_RAIN_C2R2_KHKO
 !!      C.Lac                06/14     C2R2_SEDIMENTATION replaced by
 !!                                     KHKO_SEDIMENTATION because of instability
 !!      G.Tanguy             07/14     FUSION C2R2 and KHKO
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -227,6 +227,7 @@ USE MODD_SALT
 USE MODI_BUDGET
 !
 USE MODE_FM
+USE MODE_ll
 USE MODE_FMWRIT
 USE MODI_GAMMA
 !
@@ -417,10 +418,7 @@ CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
 !*       1.     COMPUTE THE SLOPE PARAMETERS ZLBDC,ZLBDR
 !   	        ----------------------------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
 !
@@ -556,6 +554,8 @@ CONTAINS
 !
 !*      0. DECLARATIONS
 !          ------------
+!JUAN
+USE MODI_GET_HALO
 !
 IMPLICIT NONE
 !
@@ -595,7 +595,7 @@ INTEGER                           :: J1
 !          the radiative tendency and
 !          the latent heat of vaporization Lv(T) and 
 !          the specific heat for moist air Cph
-!                    
+!  
 ZEPS= XMV / XMD
 ZRVSAT(:,:,:) = ZEPS / (PPABST(:,:,:) * &
                    EXP(-XALPW+XBETAW/ZT(:,:,:)+XGAMW*ALOG(ZT(:,:,:))) - 1.0)
@@ -798,6 +798,7 @@ IF( INUCT >= 1 ) THEN
     ZZW1(:) = MIN( XCSTDCRIT * ZZW2(:) / ( ((ZZT(:)*ZSMAX(:))**3.)*ZRHODREF(:) ),&
                 1.E-5 )
   END WHERE
+  CALL GET_HALO(PRVS)
   ZW(:,:,:) = MIN( UNPACK( ZZW1(:),MASK=GNUCT(:,:,:),FIELD=0.0 ),PRVS(:,:,:) )
 !
   PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:)
@@ -805,6 +806,9 @@ IF( INUCT >= 1 ) THEN
   ZW(:,:,:) = ZW(:,:,:)*(XLVTT+(XCPV-XCL)*(ZT(:,:,:)-XTT))/                      &
                    (PEXNREF(:,:,:)*( XCPD+XCPV*PRVT(:,:,:)+XCL*(PRCT(:,:,:)+PRRT(:,:,:))))
   PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)
+!JUAN
+  CALL GET_HALO(PTHS)
+  CALL GET_HALO(PRCS)
 !  
   ZW(:,:,:)   = PCCS(:,:,:)
   PCCS(:,:,:) = UNPACK( ZZW2(:)+ZCCS(:),MASK=GNUCT(:,:,:),FIELD=ZW(:,:,:) )
diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90
index 0fe9804dc..b746dd739 100644
--- a/src/MNH/rain_ice.f90
+++ b/src/MNH/rain_ice.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !      ####################
        MODULE MODI_RAIN_ICE
@@ -247,6 +246,7 @@ END MODULE MODI_RAIN_ICE
 !!      (JP Pinty), 01-2014 : ICE4 : partial reconversion of hail to graupel
 !!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
 !!                                      aircraft, ballon and profiler
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -263,6 +263,7 @@ USE MODD_LES
 USE MODI_BUDGET
 USE MODI_GAMMA
 USE MODE_FMWRIT
+USE MODE_ll
 !
 #ifdef MNH_PGI
 USE MODE_PACK_PGI
@@ -466,10 +467,7 @@ INTEGER                           :: JL       ! and PACK intrinsics
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PDZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PDZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=KKA+JPVEXT*KKL
 IKE=KKU-JPVEXT*KKL
 IKT=SIZE(PDZZ,3)          
diff --git a/src/MNH/rain_ice_elec.f90 b/src/MNH/rain_ice_elec.f90
index d01b6e002..7232f206c 100644
--- a/src/MNH/rain_ice_elec.f90
+++ b/src/MNH/rain_ice_elec.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !      #########################
        MODULE MODI_RAIN_ICE_ELEC
@@ -103,7 +102,6 @@ END SUBROUTINE RAIN_ICE_ELEC
 END INTERFACE
 END MODULE MODI_RAIN_ICE_ELEC
 !
-!     ######spl
       SUBROUTINE RAIN_ICE_ELEC (OSEDIC, HSUBG_AUCV, OWARM,                            &
                                 KSPLITR, PTSTEP, KMI, KRR,                            &
                                 PZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR, &
@@ -213,6 +211,7 @@ END MODULE MODI_RAIN_ICE_ELEC
 !!         C. Lac        2011 : Adaptation to FIT temporal scheme
 !!         B. Tsenova    June 2012 Add new NI parameterizations
 !!         C. Barthe     June 2012 Dependance of RAR on the RELATIVE terminal velocity
+!!         J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -228,6 +227,7 @@ USE MODD_RAIN_ICE_PARAM
 USE MODD_PARAM_ICE
 USE MODD_BUDGET
 USE MODD_LES
+USE MODE_ll
 !
 USE MODD_ELEC_PARAM
 USE MODD_ELEC_DESCR
@@ -557,10 +557,7 @@ REAL :: ZRHO00    ! Surface reference air density
 !*       1.     COMPUTE THE LOOP BOUNDS
 !   	        -----------------------
 !
-IIB = 1 + JPHEXT
-IIE = SIZE(PZZ,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PZZ,3) - JPVEXT
 !
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 71b78799a..c2158e74a 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_8 2008/07/09 16:40:30
 !-----------------------------------------------------------------
 !     ###################### 
       MODULE MODI_READ_EXSEG_n
@@ -273,6 +272,8 @@ END MODULE MODI_READ_EXSEG_n
 !!      Modification   12/2011   (C.Lac) Adaptation to FIT temporal scheme 
 !!      Modification   12/2012   (S.Bielli) add NAM_NCOUT for netcdf output
 !!      Modification   02/2012   (Pialat/Tulet) add ForeFire
+!!      Modification   02/2012   (T.Lunet) add of new Runge-Kutta methods
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -281,6 +282,7 @@ USE MODD_PARAMETERS
 USE MODD_CONF
 USE MODD_CONFZ
 USE MODD_CONF_n, ONLY : CSTORAGE_TYPE
+USE MODD_VAR_ll,    ONLY:  NPROC
 !
 #ifdef MNH_NCWRIT
 USE MODD_NCOUT
@@ -569,7 +571,7 @@ CALL TEST_NAM_VAR(ILUOUT,'CMET_ADV_SCHEME',CMET_ADV_SCHEME, &
 CALL TEST_NAM_VAR(ILUOUT,'CSV_ADV_SCHEME',CSV_ADV_SCHEME,   &
       &'PPM_00','PPM_01','PPM_02')
 CALL TEST_NAM_VAR(ILUOUT,'CTEMP_SCHEME',CTEMP_SCHEME,       &
-      & 'RK11','RK21','RK33','RK53' )
+      & 'RK11','RK21','RK33','RKC4','RK53','RK4B','RK62','RK65','NP32','SP32')
 !
 CALL TEST_NAM_VAR(ILUOUT,'CTURB',CTURB,'NONE','TKEL')
 CALL TEST_NAM_VAR(ILUOUT,'CRAD',CRAD,'NONE','FIXE','ECMW','TOPA')
@@ -633,6 +635,9 @@ END IF
 !*       2.    FIRST INITIALIZATIONS
 !              ---------------------
 !
+!!!!!!!!!!!!!!!!!!!!  TEST CL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!IF (NPROC==1) JPHEXT=1
+!!!!!!!!!!!!!!!!!!!!  TEST CL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !*       2.1   Time step in gridnesting case
 !
 IF (KMI /= 1 .AND. NDAD(KMI) /= KMI)  THEN
diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90
index 937c65f36..0473264cf 100644
--- a/src/MNH/read_hgridn.f90
+++ b/src/MNH/read_hgridn.f90
@@ -72,6 +72,7 @@ END MODULE MODI_READ_HGRID_n
 !!    MODIFICATIONS
 !!    -------------
 !!      Original        26/09/96
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -117,6 +118,7 @@ REAL :: ZLATOR, ZLONOR, ZXHATM, ZYHATM
 INTEGER             :: IIU,IJU
 INTEGER             :: NIMAX2,NJMAX2
 !JUAN REALZ
+INTEGER             :: IJPHEXT
 !
 CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
 !
@@ -203,6 +205,22 @@ IF (CPROGRAM/='IDEAL ') THEN
   !               routine (as in ini_size_spawn.f90)
   CALL FMREAD(HFMFILE,'IMAX',CLUOUT,'--',NIMAX,IGRID,ILENCH,YCOMMENT,IRESP)
   CALL FMREAD(HFMFILE,'JMAX',CLUOUT,'--',NJMAX,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL FMREAD(HFMFILE,'JPHEXT',CLUOUT,'--',IJPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+  IF ( IJPHEXT .NE. JPHEXT ) THEN
+     IF (CPROGRAM == 'REAL' ) THEN
+        WRITE(ILUOUT,FMT=*) ' READ_HGRID_N : JPHEXT in PRE_REAL1.nam/NAM_REAL_CONF ( or default value )&
+             JPHEXT=',JPHEXT
+     ELSE
+        WRITE(ILUOUT,FMT=*) ' READ_HGRID_N : JPHEXT in PRE_NEST_PGD1.nam/NAM_CONF_NEST ( or default value )&
+             JPHEXT=',JPHEXT
+     END IF
+
+     WRITE(ILUOUT,FMT=*) ' different from PGD files=',HFMFILE ,' value JPHEXT=',IJPHEXT
+     WRITE(ILUOUT,FMT=*) '-> JOB ABORTED'
+     CALL CLOSE_ll(CLUOUT,IOSTAT=IRESP)
+     CALL ABORT  
+     STOP   
+  END IF
 END IF
 !
 !*       2.1  Read the configuration (MODD_CONF)
diff --git a/src/MNH/read_prc_fmfile.f90 b/src/MNH/read_prc_fmfile.f90
index 0ac1d0881..47c4a4e7f 100644
--- a/src/MNH/read_prc_fmfile.f90
+++ b/src/MNH/read_prc_fmfile.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2007/03/22 18:26:29
 !-----------------------------------------------------------------
 !     ###########################
       MODULE MODI_READ_PRC_FMFILE
@@ -96,6 +95,7 @@ END MODULE MODI_READ_PRC_FMFILE
 !!                      29/11/02 (JP Pinty)  add C3R5, ICE2, ICE4
 !!                      01/2004  (V. Masson) removes surface (externalization)
 !!                      05/2006              Remove EPS
+!!                      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -161,18 +161,20 @@ REAL, DIMENSION(:),     ALLOCATABLE :: ZXHAT
 REAL, DIMENSION(:),     ALLOCATABLE :: ZYHAT
 REAL, DIMENSION(:),     ALLOCATABLE :: ZZHAT
 INTEGER  :: IMI
-
+INTEGER         :: IIB, IIE, IJB, IJE
 !-------------------------------------------------------------------------------
 !
 !*       1.    INITIALIZATIONS
 !              ---------------
 IMI = GET_CURRENT_MODEL_INDEX()
 CALL GOTO_MODEL(1)
+
 !
 IIU=KISUP-KIINF+1
 IJU=KJSUP-KJINF+1
 !
 ILU=SIZE(XTHT,3)
+CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 !
 CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
@@ -362,48 +364,48 @@ END IF
 !*       7.    ERASES LATERAL BOUNDARIES
 !              -------------------------
 !
-IF (JPHEXT>1) THEN
-  WRITE (ILUOUT0,*) 'READ_PRC_FMFILE: abort (JPHEXT= ',JPHEXT,' )'
- !callabortstop
-  CALL CLOSE_ll(CLUOUT0,IOSTAT=IRESP)
-  CALL ABORT
-  STOP
-END IF
+!!$IF (JPHEXT>1) THEN
+!!$  WRITE (ILUOUT0,*) 'READ_PRC_FMFILE: abort (JPHEXT= ',JPHEXT,' )'
+!!$ !callabortstop
+!!$  CALL CLOSE_ll(CLUOUT0,IOSTAT=IRESP)
+!!$  CALL ABORT
+!!$  STOP
+!!$END IF
 !
 !*       7.1   left boundary I=1+JPHEXT for U
 !              ------------------------------
 !
-IF (IIU>3) XU_LS(2  ,:,:)=2.*XU_LS(  3  ,:,:)-XU_LS(  4  ,:,:)
+IF (IIU>3) XU_LS(IIB  ,:,:)=2.*XU_LS(  IIB+1  ,:,:)-XU_LS(  IIB+2  ,:,:)
 !
 !*       7.2   bottom boundary J=1+JPHEXT for V
 !              --------------------------------
 !
-IF (IJU>3) XV_LS(:,  2,:)=2.*XV_LS(:,  3  ,:)-XV_LS(:,  4  ,:)
+IF (IJU>3) XV_LS(:,  IJB,:)=2.*XV_LS(:,  IJB+1  ,:)-XV_LS(:,  IJB+2  ,:)
 !
 !*       7.3   all boundaries for all fields except vapor
 !              ------------------------------------------
 !
-XU_LS(1  ,:,:)=2.*XU_LS(  2  ,:,:)-XU_LS(  3  ,:,:)
-XU_LS(IIU,:,:)=2.*XU_LS(IIU-1,:,:)-XU_LS(IIU-2,:,:)
-XV_LS(1  ,:,:)=2.*XV_LS(  2  ,:,:)-XV_LS(  3  ,:,:)
-XV_LS(IIU,:,:)=2.*XV_LS(IIU-1,:,:)-XV_LS(IIU-2,:,:)
-XW_LS(1  ,:,:)=2.*XW_LS(  2  ,:,:)-XW_LS(  3  ,:,:)
-XW_LS(IIU,:,:)=2.*XW_LS(IIU-1,:,:)-XW_LS(IIU-2,:,:)
-XTH_LS(1  ,:,:)=2.*XTH_LS(  2  ,:,:)-XTH_LS(  3  ,:,:)
-XTH_LS(IIU,:,:)=2.*XTH_LS(IIU-1,:,:)-XTH_LS(IIU-2,:,:)
-XR_LS(1  ,:,:,:)=MAX(2.*XR_LS(  2  ,:,:,:)-XR_LS(  3  ,:,:,:),0.)
-XR_LS(IIU,:,:,:)=MAX(2.*XR_LS(IIU-1,:,:,:)-XR_LS(IIU-2,:,:,:),0.)
-!
-XU_LS(:,  1,:)=2.*XU_LS(:,  2  ,:)-XU_LS(:,  3  ,:)
-XU_LS(:,IJU,:)=2.*XU_LS(:,IJU-1,:)-XU_LS(:,IJU-2,:)
-XV_LS(:,  1,:)=2.*XV_LS(:,  2  ,:)-XV_LS(:,  3  ,:)
-XV_LS(:,IJU,:)=2.*XV_LS(:,IJU-1,:)-XV_LS(:,IJU-2,:)
-XW_LS(:,  1,:)=2.*XW_LS(:,  2  ,:)-XW_LS(:,  3  ,:)
-XW_LS(:,IJU,:)=2.*XW_LS(:,IJU-1,:)-XW_LS(:,IJU-2,:)
-XTH_LS(:,  1,:)=2.*XTH_LS(:,  2  ,:)-XTH_LS(:,  3  ,:)
-XTH_LS(:,IJU,:)=2.*XTH_LS(:,IJU-1,:)-XTH_LS(:,IJU-2,:)
-XR_LS(:,  1,:,:)=MAX(2.*XR_LS(:,  2  ,:,:)-XR_LS(:,  3  ,:,:),0.)
-XR_LS(:,IJU,:,:)=MAX(2.*XR_LS(:,IJU-1,:,:)-XR_LS(:,IJU-2,:,:),0.)
+XU_LS(IIB-1  ,:,:)=2.*XU_LS(  IIB  ,:,:)-XU_LS(  IIB+1  ,:,:)
+XU_LS(IIE+1,:,:)=2.*XU_LS(IIE,:,:)-XU_LS(IIE-1,:,:)
+XV_LS(IIB-1  ,:,:)=2.*XV_LS(  IIB  ,:,:)-XV_LS(  IIB+1  ,:,:)
+XV_LS(IIE+1,:,:)=2.*XV_LS(IIE,:,:)-XV_LS(IIE-1,:,:)
+XW_LS(IIB-1  ,:,:)=2.*XW_LS(  IIB  ,:,:)-XW_LS(  IIB+1  ,:,:)
+XW_LS(IIE+1,:,:)=2.*XW_LS(IIE,:,:)-XW_LS(IIE-1,:,:)
+XTH_LS(IIB-1  ,:,:)=2.*XTH_LS(  IIB  ,:,:)-XTH_LS(  IIB+1  ,:,:)
+XTH_LS(IIE+1,:,:)=2.*XTH_LS(IIE,:,:)-XTH_LS(IIE-1,:,:)
+XR_LS(IIB-1  ,:,:,:)=MAX(2.*XR_LS(  IIB  ,:,:,:)-XR_LS(  IIB+1  ,:,:,:),0.)
+XR_LS(IIE+1,:,:,:)=MAX(2.*XR_LS(IIE,:,:,:)-XR_LS(IIE-1,:,:,:),0.)
+!
+XU_LS(:,  IJB-1,:)=2.*XU_LS(:,  IJB  ,:)-XU_LS(:,  IJB+1  ,:)
+XU_LS(:,IJE+1,:)=2.*XU_LS(:,IJE,:)-XU_LS(:,IJE-1,:)
+XV_LS(:,  IJB-1,:)=2.*XV_LS(:,  IJB  ,:)-XV_LS(:,  IJB+1  ,:)
+XV_LS(:,IJE+1,:)=2.*XV_LS(:,IJE,:)-XV_LS(:,IJE-1,:)
+XW_LS(:,  IJB-1,:)=2.*XW_LS(:,  IJB  ,:)-XW_LS(:,  IJB+1  ,:)
+XW_LS(:,IJE+1,:)=2.*XW_LS(:,IJE,:)-XW_LS(:,IJE-1,:)
+XTH_LS(:,  IJB-1,:)=2.*XTH_LS(:,  IJB  ,:)-XTH_LS(:,  IJB+1  ,:)
+XTH_LS(:,IJE+1,:)=2.*XTH_LS(:,IJE,:)-XTH_LS(:,IJE-1,:)
+XR_LS(:,  IJB-1,:,:)=MAX(2.*XR_LS(:,  IJB  ,:,:)-XR_LS(:,  IJB+1  ,:,:),0.)
+XR_LS(:,IJE+1,:,:)=MAX(2.*XR_LS(:,IJE,:,:)-XR_LS(:,IJE-1,:,:),0.)
 !
 !*       7.4   all boundaries for vapor (using relative humidity)
 !              ------------------------
@@ -417,23 +419,23 @@ ELSEWHERE
   ZHU_LS(:,:,:)=0.
 END WHERE
 !
-ZHU_LS(1  ,:,:)=ZHU_LS(  2  ,:,:)
-ZHU_LS(IIU,:,:)=ZHU_LS(IIU-1,:,:)
-ZHU_LS(:,  1,:)=ZHU_LS(:,  2  ,:)
-ZHU_LS(:,IJU,:)=ZHU_LS(:,IJU-1,:)
+ZHU_LS(IIB-1  ,:,:)=ZHU_LS(  IIB  ,:,:)
+ZHU_LS(IIE+1,:,:)=ZHU_LS(IIE,:,:)
+ZHU_LS(:,  IJB-1,:)=ZHU_LS(:,  IJB  ,:)
+ZHU_LS(:,IJE+1,:)=ZHU_LS(:,IJE,:)
 !
 IF (NRR>1) THEN
-  WHERE (XR_LS(1  ,:,:,2)>0.)
-    ZHU_LS(1  ,:,:)=100.
+  WHERE (XR_LS(IIB-1  ,:,:,2)>0.)
+    ZHU_LS(IIB-1  ,:,:)=100.
   END WHERE
-  WHERE (XR_LS(IIU,:,:,2)>0.)
-    ZHU_LS(IIU,:,:)=100.
+  WHERE (XR_LS(IIE+1,:,:,2)>0.)
+    ZHU_LS(IIE+1,:,:)=100.
   END WHERE
-  WHERE (XR_LS(:,  1,:,2)>0.)
-    ZHU_LS(:,  1,:)=100.
+  WHERE (XR_LS(:,  IJB-1,:,2)>0.)
+    ZHU_LS(:,  IJB-1,:)=100.
   END WHERE
-  WHERE (XR_LS(:,IJU,:,2)>0.)
-    ZHU_LS(:,IJU,:)=100.
+  WHERE (XR_LS(:,IJE+1,:,2)>0.)
+    ZHU_LS(:,IJE+1,:)=100.
   END WHERE
 END IF
 !
diff --git a/src/MNH/relaxation.f90 b/src/MNH/relaxation.f90
index 1852231c9..423b77e89 100644
--- a/src/MNH/relaxation.f90
+++ b/src/MNH/relaxation.f90
@@ -252,6 +252,7 @@ END MODULE MODI_RELAXATION
 !!                 05/2006               Remove EPS
 !!                 06/2011 (M.Chong)     Case of ELEC
 !!                 11/2011 (C.Lac)       Adaptation to FIT temporal scheme
+!!                 J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -267,7 +268,10 @@ USE MODD_ELEC_DESCR, ONLY: LRELAX2FW_ION
 USE MODE_ll
 !
 USE MODI_SHUMAN     
-USE MODI_BUDGET     
+USE MODI_BUDGET
+USE MODE_EXTRAPOL
+!
+USE MODE_MPPDB
 !
 !
 IMPLICIT NONE
@@ -573,62 +577,64 @@ IF ( OHORELAX_UVWTH ) THEN
 !
   IDIMLB = SIZE(PLBXUM,1)
   IF ( IDIMLB /= 0) THEN
-    CALL GET_INTERSECTION_ll (1,1,KRIMX+2,IJU_ll,                 &
+    CALL GET_INTERSECTION_ll (1,1,KRIMX+JPHEXT+1,IJU_ll,                 &   ! +2
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
       ZWORK(2:IIEINT,:,:) = PLBXUM(1:IIEINT-1,:,:)
     END IF
-    CALL GET_INTERSECTION_ll (IIU_ll-KRIMX,1,IIU_ll,IJU_ll,       &
+    CALL GET_INTERSECTION_ll (IIU_ll-KRIMX-JPHEXT+1,1,IIU_ll,IJU_ll,       &          ! -KRIMX 
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
-      ZWORK(IIBINT:IIE+1,:,:) =  PLBXUM(IDIMLB-(IIE+1-IIBINT):IDIMLB,:,:)
+      ZWORK(IIBINT:IIE+JPHEXT,:,:) =  PLBXUM(IDIMLB-(IIE+JPHEXT-IIBINT):IDIMLB,:,:) ! +1
     END IF
   ENDIF
 !
   IDIMLB = SIZE(PLBYUM,2)
   IF ( IDIMLB /= 0) THEN
-    CALL GET_INTERSECTION_ll (1,1,IIU_ll,KRIMY+1,                 &
+    CALL GET_INTERSECTION_ll (1,1,IIU_ll,KRIMY+JPHEXT,                 &    ! +1
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
       ZWORK(:,1:IJEINT,:) = PLBYUM(:,1:IJEINT,:)
     END IF
-    CALL GET_INTERSECTION_ll (1,IJU_ll-KRIMY,IIU_ll,IJU_ll,          &
+    CALL GET_INTERSECTION_ll (1,IJU_ll-KRIMY-JPHEXT+1,IIU_ll,IJU_ll,   &  ! -KRIMY
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
-      ZWORK(:,IJBINT:IJE+1,:) =  PLBYUM(:,IDIMLB-(IJE+1-IJBINT):IDIMLB,:)
+      ZWORK(:,IJBINT:IJE+JPHEXT,:) =  PLBYUM(:,IDIMLB-(IJE+JPHEXT-IJBINT):IDIMLB,:) ! +1
     END IF
   END IF
   !
+  CALL MPPDB_CHECK3DM("before PRUS relax:ZWORK",PRECISION,ZWORK)
   WHERE (GMASK3D_RELAX)
     PRUS(:,:,:)  = PRUS(:,:,:) - ZKHU(:,:,:)*(PUT(:,:,:)-ZWORK(:,:,:)) &
                        * ZRHODJU(:,:,:)
   END WHERE
+ CALL MPPDB_CHECK3DM("after  PRUS relax:ZWORK",PRECISION,ZWORK)
 !
   IDIMLB =  SIZE(PLBXVM,1)
   IF ( IDIMLB /= 0) THEN
-    CALL GET_INTERSECTION_ll (1,1,KRIMX+1,IJU_ll,                 &
+    CALL GET_INTERSECTION_ll (1,1,KRIMX+JPHEXT,IJU_ll,                 &     ! +1
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
       ZWORK(1:IIEINT,:,:) = PLBXVM(1:IIEINT,:,:)
     END IF
-    CALL GET_INTERSECTION_ll (IIU_ll-KRIMX,1,IIU_ll,IJU_ll,       &
+    CALL GET_INTERSECTION_ll (IIU_ll-KRIMX-JPHEXT+1,1,IIU_ll,IJU_ll,       & ! -KRIMX   
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
-      ZWORK(IIBINT:IIE+1,:,:) = PLBXVM(IDIMLB-(IIE+1-IIBINT):IDIMLB,:,:)
+      ZWORK(IIBINT:IIE+JPHEXT,:,:) = PLBXVM(IDIMLB-(IIE+JPHEXT-IIBINT):IDIMLB,:,:)     ! +1
     END IF
   ENDIF
 !
   IDIMLB =  SIZE(PLBYVM,2)
   IF ( IDIMLB /= 0) THEN
-    CALL GET_INTERSECTION_ll (1,1,IIU_ll,KRIMY+2,                 &
+    CALL GET_INTERSECTION_ll (1,1,IIU_ll,KRIMY+JPHEXT+1,                 & ! +2
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
       ZWORK(:,2:IJEINT,:) = PLBYVM(:,1:IJEINT-1,:)
     END IF
-    CALL GET_INTERSECTION_ll (1,IJU_ll-KRIMY,IIU_ll,IJU_ll,       &
+    CALL GET_INTERSECTION_ll (1,IJU_ll-KRIMY-JPHEXT+1,IIU_ll,IJU_ll,     & ! -KRIMY
                                IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
     IF ( IINFO_ll == 0 ) THEN
-      ZWORK(:,IJBINT:IJE+1,:) = PLBYVM(:,IDIMLB-(IJE+1-IJBINT):IDIMLB,:) 
+      ZWORK(:,IJBINT:IJE+JPHEXT,:) = PLBYVM(:,IDIMLB-(IJE+JPHEXT-IJBINT):IDIMLB,:) ! +1
     END IF
   ENDIF
   !
@@ -694,6 +700,7 @@ END DO
 !*       3.     STORES FIELDS IN BUDGET ARRAYS
 !	        ------------------------------
 !
+CALL EXTRAPOL('W ', PRUS)
 IF (LBUDGET_U) CALL BUDGET  (PRUS,1,'REL_BU_RU')
 IF (LBUDGET_V) CALL BUDGET  (PRVS,2,'REL_BU_RV')
 IF (LBUDGET_W) CALL BUDGET  (PRWS,3,'REL_BU_RW')
@@ -788,15 +795,15 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PWORK  !work array used to
                                                 !expand the LB fields
 IDIMLB = SIZE(PLBX,1)
 IF ( IDIMLB /= 0) THEN
-  CALL GET_INTERSECTION_ll (1,1,KRIMX+1,IJU_ll,                 &
+  CALL GET_INTERSECTION_ll (1,1,KRIMX+JPHEXT,IJU_ll,                 & ! +1
                              IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
   IF ( IINFO_ll == 0 ) THEN
     PWORK(1:IIEINT,:,:) = PLBX(1:IIEINT,:,:)
   END IF
-  CALL GET_INTERSECTION_ll (IIU_ll-KRIMX,1,IIU_ll,IJU_ll,       &
+  CALL GET_INTERSECTION_ll (IIU_ll-KRIMX-JPHEXT+1,1,IIU_ll,IJU_ll,       & ! -KRIMX
                              IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
   IF ( IINFO_ll == 0 ) THEN
-    PWORK(IIBINT:IIE+1,:,:) = PLBX(IDIMLB-(IIE+1-IIBINT):IDIMLB,:,:)
+    PWORK(IIBINT:IIE+JPHEXT,:,:) = PLBX(IDIMLB-(IIE+JPHEXT-IIBINT):IDIMLB,:,:)  ! +1
   END IF
 ENDIF
 !
@@ -826,15 +833,15 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PWORK  !work array used to
                                                 !expand the LB fields
 IDIMLB = SIZE(PLBY,2)
 IF ( IDIMLB /= 0) THEN
-  CALL GET_INTERSECTION_ll (1,1,IIU_ll,KRIMY+1                 ,&
+  CALL GET_INTERSECTION_ll (1,1,IIU_ll,KRIMY+JPHEXT                 ,& ! +1
                              IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
   IF ( IINFO_ll == 0 ) THEN
     PWORK(:,1:IJEINT,:) = PLBY(:,1:IJEINT,:)
   END IF
-  CALL GET_INTERSECTION_ll (1,IJU_ll-KRIMY,IIU_ll,IJU_ll,       &
+  CALL GET_INTERSECTION_ll (1,IJU_ll-KRIMY-JPHEXT+1,IIU_ll,IJU_ll,       & ! -KRIMY
                              IIBINT,IJBINT,IIEINT,IJEINT,"EXTE",IINFO_ll)
   IF ( IINFO_ll == 0 ) THEN
-    PWORK(:,IJBINT:IJE+1,:) = PLBY(:,IDIMLB-(IJE+1-IJBINT):IDIMLB,:)
+    PWORK(:,IJBINT:IJE+JPHEXT,:) = PLBY(:,IDIMLB-(IJE+JPHEXT-IJBINT):IDIMLB,:) ! +1
   END IF
 END IF
 
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index c2a03f97c..42351a7fb 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -249,12 +249,12 @@ END MODULE MODI_RESOLVED_CLOUD
 !!                                  Add prognostic supersaturation
 !!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
 !!                                      aircraft, ballon and profiler
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 USE MODE_ll
-USE MODE_ll
 USE MODE_FM
 !
 USE MODD_CONF
@@ -280,6 +280,7 @@ USE MODI_KHKO_NOTADJUST
 USE MODI_C3R5_ADJUST
 USE MODI_SHUMAN
 USE MODI_BUDGET
+USE MODI_GET_HALO
 !
 !
 IMPLICIT NONE
@@ -404,7 +405,7 @@ INTEGER :: IKB           !
 INTEGER :: IKE           !
 INTEGER :: IKU
 INTEGER :: IINFO_ll      ! return code of parallel routine
-INTEGER :: JK
+INTEGER :: JK,JI
 !
 !
 !
@@ -430,10 +431,7 @@ REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVS   ! scalar tendency for microphysi
 !*       1.     PRELIMINARY COMPUTATIONS
 !               ------------------------
 !
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
 IKU=SIZE(PZZ,3)
@@ -472,35 +470,39 @@ ENDIF
 !
 !  complete the lateral boundaries to avoid possible problems
 !
-PTHS(IIB-1,:,:) = PTHS(IIB,:,:)
-PTHS(IIE+1,:,:) = PTHS(IIE,:,:)
-PTHS(:,IJB-1,:) = PTHS(:,IJB,:)
-PTHS(:,IJE+1,:) = PTHS(:,IJE,:)
+DO JI=1,JPHEXT
+PTHS(JI,:,:) = PTHS(IIB,:,:)
+PTHS(IIE+JI,:,:) = PTHS(IIE,:,:)
+PTHS(:,JI,:) = PTHS(:,IJB,:)
+PTHS(:,IJE+JI,:) = PTHS(:,IJE,:)
 !
-PRS(IIB-1,:,:,:) = PRS(IIB,:,:,:)
-PRS(IIE+1,:,:,:) = PRS(IIE,:,:,:)
-PRS(:,IJB-1,:,:) = PRS(:,IJB,:,:)
-PRS(:,IJE+1,:,:) = PRS(:,IJE,:,:)
+PRS(JI,:,:,:) = PRS(IIB,:,:,:)
+PRS(IIE+JI,:,:,:) = PRS(IIE,:,:,:)
+PRS(:,JI,:,:) = PRS(:,IJB,:,:)
+PRS(:,IJE+JI,:,:) = PRS(:,IJE,:,:)
+END DO
 !
 !  complete the physical boundaries to avoid some computations
 !
-IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL')  PRT(IIB-1,:,:,2:) = 0.0
-IF(LEAST_ll()  .AND. HLBCX(2) /= 'CYCL')  PRT(IIE+1,:,:,2:) = 0.0
-IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL')  PRT(:,IJB-1,:,2:) = 0.0
-IF(LNORTH_ll() .AND. HLBCY(2) /= 'CYCL')  PRT(:,IJE+1,:,2:) = 0.0
+IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL')  PRT(:IIB-1,:,:,2:) = 0.0
+IF(LEAST_ll()  .AND. HLBCX(2) /= 'CYCL')  PRT(IIE+1:,:,:,2:) = 0.0
+IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL')  PRT(:,:IJB-1,:,2:) = 0.0
+IF(LNORTH_ll() .AND. HLBCY(2) /= 'CYCL')  PRT(:,IJE+1:,:,2:) = 0.0
 !
 IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
-  ZSVS(IIB-1,:,:,:) = ZSVS(IIB,:,:,:)
-  ZSVS(IIE+1,:,:,:) = ZSVS(IIE,:,:,:)
-  ZSVS(:,IJB-1,:,:) = ZSVS(:,IJB,:,:)
-  ZSVS(:,IJE+1,:,:) = ZSVS(:,IJE,:,:)
+DO JI=1,JPHEXT
+  ZSVS(JI,:,:,:) = ZSVS(IIB,:,:,:)
+  ZSVS(IIE+JI,:,:,:) = ZSVS(IIE,:,:,:)
+  ZSVS(:,JI,:,:) = ZSVS(:,IJB,:,:)
+  ZSVS(:,IJE+JI,:,:) = ZSVS(:,IJE,:,:)
+END DO
 !
 !  complete the physical boundaries to avoid some computations
 !
-  IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL')  ZSVT(IIB-1,:,:,:) = 0.0
-  IF(LEAST_ll()  .AND. HLBCX(2) /= 'CYCL')  ZSVT(IIE+1,:,:,:) = 0.0
-  IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL')  ZSVT(:,IJB-1,:,:) = 0.0
-  IF(LNORTH_ll() .AND. HLBCY(2) /= 'CYCL')  ZSVT(:,IJE+1,:,:) = 0.0
+  IF(LWEST_ll()  .AND. HLBCX(1) /= 'CYCL')  ZSVT(:IIB-1,:,:,:) = 0.0
+  IF(LEAST_ll()  .AND. HLBCX(2) /= 'CYCL')  ZSVT(IIE+1:,:,:,:) = 0.0
+  IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL')  ZSVT(:,:IJB-1,:,:) = 0.0
+  IF(LNORTH_ll() .AND. HLBCY(2) /= 'CYCL')  ZSVT(:,IJE+1:,:,:) = 0.0
 ENDIF
 !
 !  complete the vertical boundaries
@@ -581,6 +583,8 @@ SELECT CASE ( HCLOUD )
 !
 !
   CASE('C2R2','KHKO')                                 
+    CALL GET_HALO(PRS(:,:,:,2))
+    CALL GET_HALO(ZSVS(:,:,:,2))
     WHERE (PRS(:,:,:,2) < 0. .OR. ZSVS(:,:,:,2) < 0.)
       ZSVS(:,:,:,1) = 0.0
     END WHERE
diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90
index ca86de7ea..40a40c65b 100644
--- a/src/MNH/resolved_elecn.f90
+++ b/src/MNH/resolved_elecn.f90
@@ -168,6 +168,7 @@ END MODULE MODI_RESOLVED_ELEC_n
 !!      Original    06/11/09
 !!      Modifications: 
 !!      M. Chong      26/01/10  Add Small ions parameters
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -182,7 +183,7 @@ USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZX, XDZY, XDZZ
 USE MODD_FIELD_n, ONLY : XRSVS
 USE MODD_CONF, ONLY : L1D, L2D, CEXP
 USE MODD_CST
-USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT
+USE MODD_PARAMETERS, ONLY : JPVEXT
 USE MODD_ELEC_DESCR
 USE MODD_ELEC_n          
 USE MODD_BUDGET
@@ -346,10 +347,7 @@ NULLIFY(TZFIELDS_ll)
 !*       1.     PRELIMINARY COMPUTATIONS
 !               ------------------------
 !
-IIB = 1 + JPHEXT
-IIE = SIZE(PZZ,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PZZ,3) - JPVEXT
 IKU = SIZE(PZZ,3)
diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90
index 19456dc12..0f2da4ed0 100644
--- a/src/MNH/retrieve2_nest_infon.f90
+++ b/src/MNH/retrieve2_nest_infon.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 spawn 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ################################
       MODULE MODI_RETRIEVE2_NEST_INFO_n
@@ -92,6 +91,7 @@ END MODULE MODI_RETRIEVE2_NEST_INFO_n
 !!      Original        25/09/96
 !!                      22/09/99 PGD modules for dad, and _n module for son
 !!      J Stein         04/07/01 add cartesian case
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -290,13 +290,13 @@ ZPGDYHAT(0)        = 2.* XPGDYHAT(1) - XPGDYHAT(2)
 DO JI=1,NIMAX+2*JPHEXT
   JIBOX=(JI+KDXRATIO-1-JPHEXT)/KDXRATIO + KXOR
   ZCOEF= FLOAT(MOD(JI+KDXRATIO-1-JPHEXT,KDXRATIO))/FLOAT(KDXRATIO)
-  ZXHAT(JI)=(1.-ZCOEF)*ZPGDXHAT(JIBOX)+ZCOEF*ZPGDXHAT(JIBOX+1)
+  ZXHAT(JI)=(1.-ZCOEF)*ZPGDXHAT(JIBOX+JPHEXT-1)+ZCOEF*ZPGDXHAT(JIBOX+JPHEXT) ! +1
 END DO
 !
 DO JJ=1,NJMAX+2*JPHEXT
   JJBOX=(JJ+KDYRATIO-1-JPHEXT)/KDYRATIO + KYOR
   ZCOEF= FLOAT(MOD(JJ+KDYRATIO-1-JPHEXT,KDYRATIO))/FLOAT(KDYRATIO)
-  ZYHAT(JJ)=(1.-ZCOEF)*ZPGDYHAT(JJBOX)+ZCOEF*ZPGDYHAT(JJBOX+1)
+  ZYHAT(JJ)=(1.-ZCOEF)*ZPGDYHAT(JJBOX+JPHEXT-1)+ZCOEF*ZPGDYHAT(JJBOX+JPHEXT) ! +1
 END DO
 !
 IF (     ANY(ABS(XXHAT(:)-ZXHAT(:))>ZEPS)            &
diff --git a/src/MNH/series_cloud_elec.f90 b/src/MNH/series_cloud_elec.f90
index 03795b618..ffe47a93a 100644
--- a/src/MNH/series_cloud_elec.f90
+++ b/src/MNH/series_cloud_elec.f90
@@ -71,7 +71,7 @@ END MODULE MODI_SERIES_CLOUD_ELEC
 !!      Original : Avril 2010
 !!      Modifications:
 !!      C. Barthe  * LACy *  Dec. 2010    add some parameters
-
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -199,10 +199,7 @@ JCOUNT_STOP = INT(NTSAVE_SERIES/PTSTEP)
 !
 !*       1.1     beginning and end indexes of the physical subdomain
 !
-IIB = 1 + JPHEXT
-IIE = SIZE(PZZ,1) - JPHEXT
-IJB = 1 + JPHEXT
-IJE = SIZE(PZZ,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB = 1 + JPVEXT
 IKE = SIZE(PZZ,3) - JPVEXT
 !
diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90
index bb5b2e563..cd68f4b0b 100644
--- a/src/MNH/set_advfrc.f90
+++ b/src/MNH/set_advfrc.f90
@@ -69,6 +69,7 @@ END MODULE MODI_SETADVFRC
 !!    MODIFICATIONS
 !!    -------------
 !!      03/02/10 (Tomasini) USE MODDB_ADVFRC_n for grid-nesting
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -176,10 +177,7 @@ IIU=SIZE(XXHAT)
 IJU=SIZE(XYHAT)
 IKU=SIZE(XZHAT)
 
-IIB= 1+ JPHEXT 
-IIE= IIU-JPHEXT
-IJB= 1+ JPHEXT
-IJE= IJU-JPHEXT 
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB= 1+ JPVEXT 
 IKE= IKU-JPVEXT 
 !
diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90
index 3f8157a1b..577fbc583 100644
--- a/src/MNH/set_cstn.f90
+++ b/src/MNH/set_cstn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_ideal 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ####################
       MODULE MODI_SET_CSTN
@@ -164,6 +163,7 @@ END MODULE MODI_SET_CSTN
 !!      G. Tanguy   26/10/10  change the interpolation of the RS : we use now a
 !!                            mixed grid (PREP_REAL_CASE method)
 !!      V.Masson    12/08/13  Parallelization of the initilization profile
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -183,6 +183,9 @@ USE MODI_VERT_COORD
 USE MODI_SHUMAN
 !
 USE MODE_ll
+USE MODD_PARAMETERS, ONLY : JPHEXT
+!
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !  
@@ -323,12 +326,15 @@ CALL VERT_COORD(LSLEVE,ZZS_LS,ZZS_LS,XLEN1,XLEN2,XZHAT,ZZFLUX_MX)
 ZZMASS_MX(:,:,:)=MZF(1,IKU,1,ZZFLUX_MX)
 ZZMASS_MX(:,:,IKU)=1.5*ZZFLUX_MX(:,:,IKU)-0.5*ZZFLUX_MX(:,:,IKU-1)
 !
+CALL MPPDB_CHECK3D(ZZMASS_MX,"SET_CSTN::ZZMASS_MX",PRECISION)
+!
 !* vertical grid at initialization profile location
-GPROFILE_IN_PROC=(KILOC-IXOR_ll+1>=IIB .AND. KILOC-IXOR_ll+1<=IIE .AND.  KJLOC-IYOR_ll+1>=IJB .AND. KJLOC-IYOR_ll+1 <=IJE)
+GPROFILE_IN_PROC=(KILOC+JPHEXT-IXOR_ll+1>=IIB .AND. KILOC+JPHEXT-IXOR_ll+1<=IIE ) &
+         & .AND. (KJLOC+JPHEXT-IYOR_ll+1>=IJB .AND. KJLOC+JPHEXT-IYOR_ll+1<=IJE)
 !
 IF (GPROFILE_IN_PROC) THEN
-  ZZMASS_PROFILE(:) = ZZMASS_MX(KILOC-IXOR_ll+1,KJLOC-IYOR_ll+1,:)
-  ZZFLUX_PROFILE(:) = ZZFLUX_MX(KILOC-IXOR_ll+1,KJLOC-IYOR_ll+1,:)
+  ZZMASS_PROFILE(:) = ZZMASS_MX(KILOC+JPHEXT-IXOR_ll+1,KJLOC+JPHEXT-IYOR_ll+1,:)
+  ZZFLUX_PROFILE(:) = ZZFLUX_MX(KILOC+JPHEXT-IXOR_ll+1,KJLOC+JPHEXT-IYOR_ll+1,:)
 ELSE
   ZZMASS_PROFILE(:) = 0.
   ZZFLUX_PROFILE(:) = 0.
@@ -413,11 +419,11 @@ ZMRM(:) = SM_PMR_HU(CLUOUT,ZPM(:),ZTVM(:),ZHUM(:), &
 !
 IF (PRESENT(PCORIOZ)) THEN
     CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-              KILOC,KJLOC,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+              KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
               ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PCORIOZ=PCORIOZ)
 ELSE
     CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-              KILOC,KJLOC,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+              KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
               ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV)
 ENDIF
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/set_dircos.f90 b/src/MNH/set_dircos.f90
index 8b85ddf9a..b7f419708 100644
--- a/src/MNH/set_dircos.f90
+++ b/src/MNH/set_dircos.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 init 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ######################  
       MODULE MODI_SET_DIRCOS
@@ -118,6 +117,7 @@ END MODULE MODI_SET_DIRCOS
 !!      Original         14/02/95
 !!      (J.Stein)        15/11/95  add the slope angle
 !!      V. DUCROCQ       14/08/98  //
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90
index 8c51e04ad..3fef83ef7 100644
--- a/src/MNH/set_mass.f90
+++ b/src/MNH/set_mass.f90
@@ -111,6 +111,7 @@ END MODULE MODI_SET_MASS
 !!    Tout a été modifié pour se rapprocher de PREP_REAL_CASE
 !!    J. Escobar  27/03/2012 modif for reprod sum
 !!    V.Masson    12/08/13  Parallelization of the initilization profile
+!!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!    
 !-------------------------------------------------------------------------------
 !!
@@ -139,6 +140,7 @@ USE MODI_COMPUTE_EXNER_FROM_TOP
 USE MODI_SET_GEOSBAL
 USE MODE_REPRO_SUM
 USE MODE_MPPDB
+USE MODE_SUM_ll, ONLY : SUM_DIM1_DD_ll
 
 IMPLICIT NONE
 !
@@ -189,9 +191,9 @@ REAL                                                   :: ZDIAG         ! diagno
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZTHV3D        ! virtual potential temperature on MESONH grid
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZPMHP         ! pressure minus hyd. pressure on MNH grid with orography (mass level)
 !* 0.2.3 for wind (application of HFUNU/HFUNV)
-REAL, DIMENSION(SIZE(XXHAT),1,1)                       :: ZNFLX_TOT     ! total normalized mass flux
+!!$REAL, DIMENSION(SIZE(XXHAT),1,1)                       :: ZNFLX_TOT     ! total normalized mass flux
 REAL, DIMENSION(SIZE(XYHAT),SIZE(XZHAT))               :: ZUYZ          ! vertical variations for U
-REAL, DIMENSION(1,SIZE(XYHAT),1)                       :: ZNFLY_TOT     ! total normalized mass flux
+!!$REAL, DIMENSION(1,SIZE(XYHAT),1)                       :: ZNFLY_TOT     ! total normalized mass flux
 REAL, DIMENSION(SIZE(XXHAT),SIZE(XZHAT))               :: ZVXZ          ! vertical variations for V
 REAL, DIMENSION(:,:), ALLOCATABLE                      :: ZNFLX_TOT_ll,ZNFLY_TOT_ll
 INTEGER                                                :: IXOR_ll,IYOR_ll! origin's coordinates of extended subdomain
@@ -213,6 +215,10 @@ REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZRHODJV        ! the M
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZHEXNFLUX      ! local hyd. Exner function at flux points (MNH grid)
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZHEXNMASS      ! local hyd. Exner function at mass points (MNH grid)
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZRHOD          ! dry density on MESO-NH grid
+!
+!!$INTEGER                                                :: IIBP,IIEP,IJBP,IJEP
+REAL, DIMENSION(:,:), ALLOCATABLE                      :: ZNFLXZ_TOT,ZNFLYZ_TOT
+REAL, DIMENSION(:)  , ALLOCATABLE                      :: ZNFLXZ_TOT_ll,ZNFLYZ_TOT_ll ! total normalized mass flux
 !-------------------------------------------------------------------------------
 !-------------------------------------------------------------------------------
 !
@@ -223,10 +229,8 @@ REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))    :: ZRHOD          ! dry d
 IIU=SIZE(XXHAT)
 IJU=SIZE(XYHAT)
 IKU=SIZE(XZHAT)
-IIB=JPHEXT+1
-IIE=IIU-JPHEXT
-IJB=JPHEXT+1
-IJE=IJU-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
+!!$CALL GET_PHYSICAL_ll(IIBP,IJBP,IIEP,IJEP)
 IKE=IKU-JPVEXT
 ZRADSDG = XPI/180.
 !
@@ -280,7 +284,6 @@ XEXNTOP=SUM_DD_R2_ll(ZHEXNFLUX_MX(IIB:IIE,IJB:IJE,IKE+1))/FLOAT(NIMAX_ll*NJMAX_l
 !
 CALL GET_OR_ll('B',IXOR_ll,IYOR_ll)
 !
-
 IF (OPROFILE_IN_PROC) THEN
   ZRHOD_PROFILE(:) = ZRHOD_MX(KILOC-IXOR_ll+1,KJLOC-IYOR_ll+1,:)
 ELSE
@@ -338,22 +341,38 @@ END SELECT
 ZDZZFLUX_MX(2:IKU) = PZFLUX_PROFILE(2:IKU)-PZFLUX_PROFILE(1:IKU-1)
 ZDZZFLUX_MX(1) = ZDZZFLUX_MX(2)
 !
-ZNFLX_TOT  = 0.
+!!$ZNFLX_TOT  = 0.
+!!$DO JK = 2,IKU-1
+!!$  DO JJ=IJB,IJE
+!!$    ZNFLX_TOT(:,1,1)=ZNFLX_TOT(:,1,1)+ZDYY(:,JJ,JK)*ZUYZ(JJ,JK)*ZDZZFLUX_MX(JK)* &
+!!$                   ZRHOD_PROFILE(JK)
+!!$  END DO
+!!$END DO
+!JUAN
+ALLOCATE(ZNFLXZ_TOT(IIU,IJU))
+ZNFLXZ_TOT  = 0.
 DO JK = 2,IKU-1
-  DO JJ=2,IJU-1
-    ZNFLX_TOT(:,1,1)=ZNFLX_TOT(:,1,1)+ZDYY(:,JJ,JK)*ZUYZ(JJ,JK)*ZDZZFLUX_MX(JK)* &
+  DO JJ=IJB,IJE
+    ZNFLXZ_TOT(:,JJ)=ZNFLXZ_TOT(:,JJ)+ZDYY(:,JJ,JK)*ZUYZ(JJ,JK)*ZDZZFLUX_MX(JK)* &
                    ZRHOD_PROFILE(JK)
   END DO
 END DO
 !
-ALLOCATE(ZNFLX_TOT_ll(IIU_ll,1))
-CALL SUM_DIM1_ll(ZNFLX_TOT,ZNFLX_TOT_ll,IINFO_ll)
-ZNFLX_TOT_ll=SIGN(1.,ZNFLX_TOT_ll)*MAX(ABS(ZNFLX_TOT_ll),TINY(ZNFLX_TOT_ll))
+!!$ALLOCATE(ZNFLX_TOT_ll(IIU_ll,1))
+!!$CALL SUM_DIM1_ll(ZNFLX_TOT,ZNFLX_TOT_ll,IINFO_ll)
+!!$ZNFLX_TOT_ll=SIGN(1.,ZNFLX_TOT_ll)*MAX(ABS(ZNFLX_TOT_ll),TINY(ZNFLX_TOT_ll))
 !
+ALLOCATE(ZNFLXZ_TOT_ll(IIU_ll))
+CALL SUM_DIM1_DD_ll(ZNFLXZ_TOT,ZNFLXZ_TOT_ll,KDIM=2,KINFO=IINFO_ll)
+ZNFLXZ_TOT_ll=SIGN(1.,ZNFLXZ_TOT_ll)*MAX(ABS(ZNFLXZ_TOT_ll),TINY(ZNFLXZ_TOT_ll))
+
 DO JI=1,IIU
-  ZUW3D_MX(JI,:,:)=ZUYZ(:,:)* ( ZNFLX_TOT_ll(KILOC,1)/ZNFLX_TOT_ll(IXOR_ll-1+JI,1) ) ! add () for reproductibility
+!!$  ZUW3D_MX(JI,:,:)=ZUYZ(:,:)* ( ZNFLX_TOT_ll(KILOC,1)/ZNFLX_TOT_ll(IXOR_ll-1+JI,1) ) ! add () for reproductibility
+  ZUW3D_MX(JI,:,:)=ZUYZ(:,:)* ( ZNFLXZ_TOT_ll(KILOC)/ZNFLXZ_TOT_ll(IXOR_ll-1+JI) ) 
 END DO
-DEALLOCATE(ZNFLX_TOT_ll)
+
+!!$DEALLOCATE(ZNFLX_TOT_ll)
+DEALLOCATE(ZNFLXZ_TOT,ZNFLXZ_TOT_ll)
 !
 !
 SELECT CASE(HFUNV)
@@ -371,23 +390,42 @@ SELECT CASE(HFUNV)
     ZVXZ(:,:)=FUNVXZ(IIU,IKU,PZFLUX_PROFILE(:))
 END SELECT
 !
-ZNFLY_TOT  = 0.
+!!$ZNFLY_TOT  = 0.
+!!$DO JK = 2,IKU-1
+!!$  DO JI=IIB,IIE
+!!$    ZNFLY_TOT(1,:,1) = ZNFLY_TOT(1,:,1) + ZDXX(JI,:,JK)*ZVXZ(JI,JK)* ZDZZFLUX_MX(JK)* &
+!!$                   ZRHOD_PROFILE(JK)
+!!$  END DO
+!!$END DO
+!
+ALLOCATE(ZNFLYZ_TOT(IIU,IJU))
+ZNFLYZ_TOT  = 0.
 DO JK = 2,IKU-1
-  DO JI=2,IIU-1
-    ZNFLY_TOT(1,:,1) = ZNFLY_TOT(1,:,1) + ZDXX(JI,:,JK)*ZVXZ(JI,JK)* ZDZZFLUX_MX(JK)* &
+  DO JI=IIB,IIE
+    ZNFLYZ_TOT(JI,:) = ZNFLYZ_TOT(JI,:) + ZDXX(JI,:,JK)*ZVXZ(JI,JK)* ZDZZFLUX_MX(JK)* &
                    ZRHOD_PROFILE(JK)
   END DO
 END DO
 !
-ALLOCATE(ZNFLY_TOT_ll(IJU_ll,1))
-CALL SUM_DIM1_ll(ZNFLY_TOT,ZNFLY_TOT_ll,IINFO_ll)
-ZNFLY_TOT_ll=SIGN(1.,ZNFLY_TOT_ll)*MAX(ABS(ZNFLY_TOT_ll),TINY(ZNFLY_TOT_ll))
+!!$ALLOCATE(ZNFLY_TOT_ll(IJU_ll,1))
+!!$CALL SUM_DIM1_ll(ZNFLY_TOT,ZNFLY_TOT_ll,IINFO_ll)
+!!$ZNFLY_TOT_ll=SIGN(1.,ZNFLY_TOT_ll)*MAX(ABS(ZNFLY_TOT_ll),TINY(ZNFLY_TOT_ll))
+!
+ALLOCATE(ZNFLYZ_TOT_ll(IJU_ll))
+CALL SUM_DIM1_DD_ll(ZNFLYZ_TOT,ZNFLYZ_TOT_ll,KDIM=1,KINFO=IINFO_ll)
+ZNFLYZ_TOT_ll=SIGN(1.,ZNFLYZ_TOT_ll)*MAX(ABS(ZNFLYZ_TOT_ll),TINY(ZNFLYZ_TOT_ll))
 !
 !
 DO JJ=1,IJU
-    ZVW3D_MX(:,JJ,:)= ZVXZ(:,:) * ( ZNFLY_TOT_ll(KJLOC,1)/ZNFLY_TOT_ll(IYOR_ll-1+JJ,1) ) ! add () for reproductibility
+!!$    ZVW3D_MX(:,JJ,:)= ZVXZ(:,:) * ( ZNFLY_TOT_ll(KJLOC,1)/ZNFLY_TOT_ll(IYOR_ll-1+JJ,1) ) ! add () for reproductibility
+    ZVW3D_MX(:,JJ,:)= ZVXZ(:,:) * ( ZNFLYZ_TOT_ll(KJLOC)/ZNFLYZ_TOT_ll(IYOR_ll-1+JJ) )
 END DO
-DEALLOCATE(ZNFLY_TOT_ll)
+
+  CALL MPPDB_CHECK3DM("SET_MASS:ZUW3D_MX,ZVW3D_MX",PRECISION,&
+                   & ZUW3D_MX,ZVW3D_MX   )
+
+!!$DEALLOCATE(ZNFLY_TOT_ll)
+DEALLOCATE(ZNFLYZ_TOT,ZNFLYZ_TOT_ll)
 !
 !-------------------------------------------------------------------------------
 !*                     3. INTERPOLATION ON MNH GRID
@@ -428,6 +466,8 @@ ELSE
 !
   ZRHODU_MX=ZUW3D_MX*ZRHOD_MX
   ZRHODV_MX=ZVW3D_MX*ZRHOD_MX
+  CALL MPPDB_CHECK3DM("SET_MASS:ZRHODU_MX,ZRHODV_MX,PZFLUX_MX,PZMASS_MX",PRECISION,&
+                   &  ZRHODU_MX,ZRHODV_MX,PZFLUX_MX,PZMASS_MX  )
   CALL VER_INT_DYN(OSHIFT,ZRHODU_MX,ZRHODV_MX,PZFLUX_MX,PZMASS_MX,PZS_MX,ZRHODUA,ZRHODVA)
   ZRHODJU(:,:,:)=MXM(ZRHODUA(:,:,:)*PJ(:,:,:))
   ZRHODJV(:,:,:)=MYM(ZRHODVA(:,:,:)*PJ(:,:,:))
@@ -438,7 +478,9 @@ ELSE
   XUT(:,:,:)=ZRHODJU(:,:,:)/MXM(ZRHOD(:,:,:)*PJ(:,:,:))
   XVT(:,:,:)=ZRHODJV(:,:,:)/MYM(ZRHOD(:,:,:)*PJ(:,:,:))
   XWT(:,:,:)=0
-ENDIF
+  CALL MPPDB_CHECK3DM("SET_MASS:XVT,ZRHODJV,PJ,ZRHODVA",PRECISION,&
+                   &    XVT,ZRHODJV,PJ,ZRHODVA )
+  ENDIF
 
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/set_msk.f90 b/src/MNH/set_msk.f90
index b466c3520..acc8752bb 100644
--- a/src/MNH/set_msk.f90
+++ b/src/MNH/set_msk.f90
@@ -71,6 +71,7 @@ END MODULE MODI_SET_MSK
 !!      Biju Thomas 29/03/99  Identified nonprecipitating convective cells and only
 !!                            precipitating anvils as stratiform part
 !!      O. Caumont  09/04/08  Use in RADAR_SIMULATOR
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -133,11 +134,7 @@ IKB = 1 + JPVEXT
 IKE = SIZE(PRT,3) - JPVEXT
 IIU = SIZE(PRT,1)
 IJU = SIZE(PRT,2)
-IIB= 1+ JPHEXT
-IJB=1+JPHEXT
-IIE=IIU- JPHEXT
-IJE=IJU- JPHEXT
-
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !               ----------------------
 ALLOCATE( ZMASK(IIU,IJU,4) )
diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90
index 3281b97a1..0437f0817 100644
--- a/src/MNH/set_perturb.f90
+++ b/src/MNH/set_perturb.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_ideal 2007/02/19 15:33:24
 !-----------------------------------------------------------------
 !     #######################
       MODULE MODI_SET_PERTURB
@@ -94,6 +93,7 @@ END MODULE MODI_SET_PERTURB
 !!      I. Mallet                06/06 cleaning (namelist inside the routine)
 !!      J.Escobar             25/03/2012 optim. parallelization of White noise
 !!      J.Escobar             27/03/2012 force identical random seed & correct XOR/YOR global shift 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
@@ -410,9 +410,9 @@ SELECT CASE(CPERT_KIND)
         END IF
 !
         DO JJ = IJB,IJE
-           JJ_ll = JJ  + IYOR-JPHEXT
+           JJ_ll = JJ  + IYOR-1
           DO JI = IIB,IIE
-             JI_ll = JI + IXOR-JPHEXT
+             JI_ll = JI + IXOR-1
             ZWHITE(JI,JJ) = ZWHITE(JI,JJ)+             &
                (ZBL+ZDL)*ZSX_ll(JI_ll,JX)*ZCY_ll(JJ_ll,JY) +       &
                (ZAL+ZCL)*ZCX_ll(JI_ll,JX)*ZCY_ll(JJ_ll,JY) +       &
diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90
index 997726ee2..397d333aa 100644
--- a/src/MNH/set_relfrc.f90
+++ b/src/MNH/set_relfrc.f90
@@ -69,6 +69,7 @@ END MODULE MODI_SET_RELFRC
 !!    MODIFICATIONS
 !!    -------------
 !!      03/02/10 (Tomasini) USE MODD_RELFRC_n for grid-nesting
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!
 !-------------------------------------------------------------------------------
 !
@@ -177,10 +178,7 @@ IIU=SIZE(XXHAT)
 IJU=SIZE(XYHAT)
 IKU=SIZE(XZHAT)
 
-IIB= 1+ JPHEXT 
-IIE= IIU-JPHEXT
-IJB= 1+ JPHEXT
-IJE= IJU-JPHEXT 
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 ! allocation !
 !
 print*,"! temporary forcing alloation"
diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90
index b1aa7537d..35cce87c8 100644
--- a/src/MNH/set_rsou.f90
+++ b/src/MNH/set_rsou.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_ideal 2006/07/06 15:16:36
 !-----------------------------------------------------------------
 !     ####################
       MODULE MODI_SET_RSOU
@@ -245,6 +244,7 @@ END MODULE MODI_SET_RSOU
 !!                            mixed grid (PREP_REAL_CASE method)
 !!                            add PUVTHU case
 !!      V.Masson    12/08/13  Parallelization of the initilization profile
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -274,6 +274,8 @@ USE MODI_VERT_COORD
 USE MODI_TH_R_FROM_THL_RT_1D
 USE MODI_COMPUTE_EXNER_FROM_GROUND
 !
+USE MODD_PARAMETERS, ONLY : JPHEXT
+!
 IMPLICIT NONE
 !  
 !  
@@ -1157,11 +1159,12 @@ ZZMASS_MX(:,:,IKU)=1.5*ZZFLUX_MX(:,:,IKU)-0.5*ZZFLUX_MX(:,:,IKU-1)
 !*        3.2  Interpolate and extrapolate U and V on w- mixed grid levels
 !
 !* vertical grid at initialization profile location
-GPROFILE_IN_PROC=(KILOC-IXOR_ll+1>=IIB .AND. KILOC-IXOR_ll+1<=IIE .AND.  KJLOC-IYOR_ll+1>=IJB .AND. KJLOC-IYOR_ll+1 <=IJE)
+GPROFILE_IN_PROC=(KILOC+JPHEXT-IXOR_ll+1>=IIB .AND. KILOC+JPHEXT-IXOR_ll+1<=IIE) &
+         & .AND. (KJLOC+JPHEXT-IYOR_ll+1>=IJB .AND. KJLOC+JPHEXT-IYOR_ll+1<=IJE)
 !
 IF (GPROFILE_IN_PROC) THEN
-  ZZMASS_PROFILE(:) = ZZMASS_MX(KILOC-IXOR_ll+1,KJLOC-IYOR_ll+1,:)
-  ZZFLUX_PROFILE(:) = ZZFLUX_MX(KILOC-IXOR_ll+1,KJLOC-IYOR_ll+1,:)
+  ZZMASS_PROFILE(:) = ZZMASS_MX(KILOC+JPHEXT-IXOR_ll+1,KJLOC+JPHEXT-IYOR_ll+1,:)
+  ZZFLUX_PROFILE(:) = ZZFLUX_MX(KILOC+JPHEXT-IXOR_ll+1,KJLOC+JPHEXT-IYOR_ll+1,:)
 ELSE
   ZZMASS_PROFILE(:) = 0.
   ZZFLUX_PROFILE(:) = 0.
@@ -1264,12 +1267,12 @@ DEALLOCATE(ZMRT)
 !	        -------------------------------------------------
 IF (PRESENT(PCORIOZ)) THEN
   CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-               KILOC,KJLOC,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+               KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
                ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,&
                PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ)
 ELSE  
   CALL SET_MASS(GPROFILE_IN_PROC, ZZFLUX_PROFILE,              &
-               KILOC,KJLOC,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+               KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
                ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,&
                PMRCM=ZMRCM,PMRIM=ZMRIM)
 ENDIF
diff --git a/src/MNH/shuman.f90 b/src/MNH/shuman.f90
index de22d2bed..75d67e1e6 100644
--- a/src/MNH/shuman.f90
+++ b/src/MNH/shuman.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ##################
       MODULE MODI_SHUMAN
@@ -150,6 +149,8 @@ END MODULE MODI_SHUMAN
 !!      Original    04/07/94 
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1   
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -186,7 +187,7 @@ IIU = SIZE(PA,1)
 IJU = SIZE(PA,2)
 IKU = SIZE(PA,3)
 !
-JIJKOR  = 1 + JPHEXT
+JIJKOR  = 1 + 1 ! JPHEXT
 JIJKEND = IIU*IJU*IKU
 !
 !CDIR NODEP
@@ -198,7 +199,8 @@ END DO
 !CDIR NODEP
 !OCL NOVREC
 DO JJK=1,IJU*IKU
-   PMXF(IIU,JJK,1)    = PMXF(2*JPHEXT,JJK,1) 
+   PMXF(IIU,JJK,1)          = PMXF(2*JPHEXT,JJK,1) 
+   PMXF(IIU-JPHEXT+1,JJK,1) = PMXF(JPHEXT+1,JJK,1) ! for reprod JPHEXT <> 1
 END DO
 !
 !-------------------------------------------------------------------------------
@@ -249,6 +251,8 @@ END FUNCTION MXF
 !!      Original    04/07/94
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -283,7 +287,7 @@ IIU = SIZE(PA,1)
 IJU = SIZE(PA,2)
 IKU = SIZE(PA,3)
 !
-JIJKOR  = 1 + JPHEXT
+JIJKOR  = 1 + 1 ! JPHEXT
 JIJKEND = IIU*IJU*IKU
 !
 !CDIR NODEP
@@ -295,7 +299,8 @@ END DO
 !CDIR NODEP
 !OCL NOVREC
 DO JJK=1,IJU*IKU
-   PMXM(1,JJK,1)    = PMXM(IIU-2*JPHEXT+1,JJK,1) 
+   PMXM(1,JJK,1)      = PMXM(IIU-2*JPHEXT+1,JJK,1) 
+   PMXM(JPHEXT,JJK,1) = PMXM(IIU-JPHEXT,JJK,1) ! for reprod JPHEXT <> 1
 END DO
 !
 !-------------------------------------------------------------------------------
@@ -346,6 +351,8 @@ END FUNCTION MXM
 !!      Original    04/07/94 
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1   
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1  
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -391,7 +398,8 @@ DO JIJK=JIJKOR , JIJKEND
    PMYF(JIJK-IIU,1,1) = 0.5*( PA(JIJK-IIU,1,1)+PA(JIJK,1,1) )
 END DO
 !
-PMYF(:,IJU,:)    = PMYF(:,2*JPHEXT,:)
+PMYF(:,IJU,:)           = PMYF(:,2*JPHEXT,:)
+PMYF(:,IJU-JPHEXT+1,:)  = PMYF(:,JPHEXT+1,:) ! for reprod JPHEXT <> 1
 !
 !
 !-------------------------------------------------------------------------------
@@ -442,6 +450,8 @@ END FUNCTION MYF
 !!      Original    04/07/94 
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1    
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -484,7 +494,8 @@ DO JIJK=JIJKOR , JIJKEND
    PMYM(JIJK,1,1) = 0.5*( PA(JIJK,1,1)+PA(JIJK-IIU,1,1) )
 END DO
 !
-PMYM(:,1,:)    = PMYM(:,IJU-2*JPHEXT+1,:)
+PMYM(:,1,:)      = PMYM(:,IJU-2*JPHEXT+1,:)
+PMYM(:,JPHEXT,:) = PMYM(:,IJU-JPHEXT,:) ! for reprod JPHEXT <> 1
 !
 !-------------------------------------------------------------------------------
 !
@@ -579,7 +590,7 @@ END DO
 !CDIR NODEP
 !OCL NOVREC
 DO JIJ=1,IIU*IJU
-   PMZF(JIJ,1,IKU)    = -999.
+   PMZF(JIJ,1,IKU)    = PMZF(JIJ,1,IKU-1) !-999.
 END DO
 !
 !-------------------------------------------------------------------------------
@@ -724,6 +735,8 @@ END FUNCTION MZM
 !!      Original    05/07/94 
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1    
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -760,7 +773,7 @@ IIU = SIZE(PA,1)
 IJU = SIZE(PA,2)
 IKU = SIZE(PA,3)
 !
-JIJKOR  = 1 + JPHEXT
+JIJKOR  = 1 + 1 ! JPHEXT
 JIJKEND = IIU*IJU*IKU
 !
 !CDIR NODEP
@@ -772,7 +785,8 @@ END DO
 !CDIR NODEP
 !OCL NOVREC
 DO JJK=1,IJU*IKU
-   PDXF(IIU,JJK,1)    = PDXF(2*JPHEXT,JJK,1) 
+   PDXF(IIU,JJK,1)           = PDXF(2*JPHEXT,JJK,1) 
+   PDXF(IIU-JPHEXT+1,JJK,1)  = PDXF(JPHEXT+1,JJK,1) ! for reprod JPHEXT <> 1
 END DO
 !
 !-------------------------------------------------------------------------------
@@ -871,7 +885,8 @@ END DO
 !CDIR NODEP
 !OCL NOVREC
 DO JJK=1,IJU*IKU
-   PDXM(1,JJK,1)    = PDXM(IIU-2*JPHEXT+1,JJK,1) 
+   PDXM(1,JJK,1)      = PDXM(IIU-2*JPHEXT+1,JJK,1) 
+   PDXM(JPHEXT,JJK,1) = PDXM(IIU-JPHEXT,JJK,1) ! for reprod JPHEXT <> 1
 END DO
 !
 !-------------------------------------------------------------------------------
@@ -922,6 +937,8 @@ END FUNCTION DXM
 !!      Original    05/07/94 
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -967,7 +984,8 @@ DO JIJK=JIJKOR , JIJKEND
    PDYF(JIJK-IIU,1,1)         = PA(JIJK,1,1)  -  PA(JIJK-IIU,1,1) 
 END DO
 !
-PDYF(:,IJU,:)    = PDYF(:,2*JPHEXT,:)
+PDYF(:,IJU,:)           = PDYF(:,2*JPHEXT,:)
+PDYF(:,IJU-JPHEXT+1,:)  = PDYF(:,JPHEXT+1,:) ! for reprod JPHEXT <> 1
 !
 !-------------------------------------------------------------------------------
 !
@@ -1017,6 +1035,8 @@ END FUNCTION DYF
 !!      Original    05/07/94 
 !!      Modification to include the periodic case 13/10/94 J.Stein 
 !!                   optimisation                 20/08/00 J. Escobar
+!!      correction of in halo/pseudo-cyclic calculation for JPHEXT<> 1 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -1062,7 +1082,8 @@ DO JIJK=JIJKOR , JIJKEND
    PDYM(JIJK,1,1)           = PA(JIJK,1,1)  -  PA(JIJK-IIU,1,1) 
 END DO
 !
-PDYM(:,1,:)    =  PDYM(:,IJU-2*JPHEXT+1,:)
+PDYM(:,1,:)      = PDYM(:,IJU-2*JPHEXT+1,:)
+PDYM(:,JPHEXT,:) = PDYM(:,IJU-JPHEXT,:) ! for reprod JPHEXT <> 1
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/slow_terms.f90 b/src/MNH/slow_terms.f90
index 8c1b635aa..b8a314e36 100644
--- a/src/MNH/slow_terms.f90
+++ b/src/MNH/slow_terms.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 microph 2006/10/17 17:03:56
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_SLOW_TERMS
@@ -154,6 +153,7 @@ END MODULE MODI_SLOW_TERMS
 !!                                             of the number of exponentiations
 !!                     14/09/97 (V. Masson) removes low rr non-physical values
 !!                     06/11/02 (V. Masson) update the budget calls
+!!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -279,7 +279,8 @@ DO JN=1,KSPLITR
     IC = 0
     DO JJ = 1,SIZE( ZW1,2)
       DO JI = 1,SIZE( ZW1,1)
-        IF (ZW1(JI,JJ,JK)+ZW1(JI,JJ,JK+1)>0.) THEN
+        IF ( ( ZW1(JI,JJ,JK+1)>0. ) .AND. ( ZW1(JI,JJ,JK)>0. ) )  THEN
+!!$       IF ( (ZW1(JI,JJ,JK)+ZW1(JI,JJ,JK+1)>0.) )  THEN
           IC = IC +1
           I1(IC) = JI
           I2(IC) = JJ
diff --git a/src/MNH/spawn_grid2.f90 b/src/MNH/spawn_grid2.f90
index c22af3bbb..27c6c23bd 100644
--- a/src/MNH/spawn_grid2.f90
+++ b/src/MNH/spawn_grid2.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 spawn 2006/05/23 15:34:13
 !-----------------------------------------------------------------
 !######################
 MODULE MODI_SPAWN_GRID2
@@ -148,6 +147,7 @@ END MODULE MODI_SPAWN_GRID2
 !!                             to avoid problem when Input parameter and GRID1 parameter
 !!                             are exactly the same !!!
 !!      Modification 20/05/06 Remove Clark and Farley interpolation
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -208,8 +208,8 @@ REAL :: ZPOND1,ZPOND2               ! interpolation coefficients
 !
 INTEGER             :: IIU       ! Upper dimension in x direction
 INTEGER             :: IJU       ! Upper dimension in y direction
-INTEGER             :: IIB       ! indice I Beginning in x direction
-INTEGER             :: IJB       ! indice J Beginning in y direction
+INTEGER             :: IIB,IIE   ! indice I Beginning/End in x direction
+INTEGER             :: IJB,IJE   ! indice J Beginning/End in y direction
 INTEGER             :: IIS,IJS   ! indices I and J in x and y dir. for scalars
 INTEGER             :: JI,JEPSX  ! Loop index in x direction
 INTEGER             :: JJ,JEPSY  ! Loop index in y direction
@@ -234,8 +234,7 @@ CALL GOTO_MODEL(2)
 !
 IIU = SIZE(PXHAT)
 IJU = SIZE(PYHAT)
-IIB = 1+JPHEXT
-IJB = 1+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !*       1.2  recovers logical unit number of output listing
 !
@@ -297,7 +296,7 @@ ELSE
     ZPOND2 = FLOAT(JEPSX-1)/FLOAT(KDXRATIO)
     ZPOND1 = 1.-ZPOND2
     DO JI = KXOR,KXEND
-      IIS = IIB+JEPSX-1+(JI-KXOR-1)*KDXRATIO
+      IIS = IIB+JEPSX-1+(JI-KXOR-JPHEXT)*KDXRATIO
 !
       IF (1 <= IIS .AND. IIS <= IIU)                   &
       PXHAT(IIS) = ZPOND1*ZXHAT_EXTENDED(JI) +ZPOND2*ZXHAT_EXTENDED(JI+1)
@@ -313,7 +312,7 @@ ELSE
     ZPOND2 = FLOAT(JEPSY-1)/FLOAT(KDYRATIO)
     ZPOND1 = 1.-ZPOND2
     DO JJ = KYOR,KYEND
-      IJS = IJB+JEPSY-1+(JJ-KYOR-1)*KDYRATIO
+      IJS = IJB+JEPSY-1+(JJ-KYOR-JPHEXT)*KDYRATIO
 !
       IF (1 <= IJS .AND. IJS <= IJU)                   &
       PYHAT(IJS) = ZPOND1*ZYHAT_EXTENDED(JJ) +ZPOND2*ZYHAT_EXTENDED(JJ+1)
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index 00d53772e..724773931 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -2,7 +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.
-!     ######spl
+!########################
 MODULE MODI_SPAWN_MODEL2
 !########################
 !
@@ -184,6 +184,7 @@ END MODULE MODI_SPAWN_MODEL2
 !!                   24/04/2014 (J.escobar) bypass CRAY internal compiler error on IIJ computation
 !!      Modification 06/2014   (C.Lac) Initialization of physical param of
 !!                                      model2 before the call to ini_nsv
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -688,66 +689,66 @@ ALLOCATE(XLSWM(IIU,IJU,IKU))
 ALLOCATE(XLSTHM(IIU,IJU,IKU))
 IF ( NRR >= 1) ALLOCATE(XLSRVM(IIU,IJU,IKU))
                 !          LB fields for lbc coupling
-ALLOCATE(XLBXUM(2*NRIMX+2,IJU,IKU))
+ALLOCATE(XLBXUM(2*NRIMX+2*JPHEXT,IJU,IKU))
 !
 IF ( .NOT. L2D ) THEN
-  ALLOCATE(XLBYUM(IIU,2*NRIMY+2,IKU))
+  ALLOCATE(XLBYUM(IIU,2*NRIMY+2*JPHEXT,IKU))
 ELSE
   ALLOCATE(XLBYUM(0,0,0))
 END IF
 !
-ALLOCATE(XLBXVM(2*NRIMX+2,IJU,IKU))
+ALLOCATE(XLBXVM(2*NRIMX+2*JPHEXT,IJU,IKU))
 !
 IF ( .NOT. L2D ) THEN
   IF ( NRIMY == 0 ) THEN
     ALLOCATE(XLBYVM(IIU,4,IKU))
   ELSE
-    ALLOCATE(XLBYVM(IIU,2*NRIMY+2,IKU))
+    ALLOCATE(XLBYVM(IIU,2*NRIMY+2*JPHEXT,IKU))
   END IF
 ELSE
   ALLOCATE(XLBYVM(0,0,0))
 END IF
 !
-ALLOCATE(XLBXWM(2*NRIMX+2,IJU,IKU))
+ALLOCATE(XLBXWM(2*NRIMX+2*JPHEXT,IJU,IKU))
 !
 IF ( .NOT. L2D ) THEN
-  ALLOCATE(XLBYWM(IIU,2*NRIMY+2,IKU))
+  ALLOCATE(XLBYWM(IIU,2*NRIMY+2*JPHEXT,IKU))
 ELSE
   ALLOCATE(XLBYWM(0,0,0))
 END IF
 !
-ALLOCATE(XLBXTHM(2*NRIMX+2,IJU,IKU))
+ALLOCATE(XLBXTHM(2*NRIMX+2*JPHEXT,IJU,IKU))
 !
 IF ( .NOT. L2D )  THEN
-  ALLOCATE(XLBYTHM(IIU,2*NRIMY+2,IKU))
+  ALLOCATE(XLBYTHM(IIU,2*NRIMY+2*JPHEXT,IKU))
 ELSE
   ALLOCATE(XLBYTHM(0,0,0))
 END IF
 !
 IF (CTURB /= 'NONE') THEN
-  ALLOCATE(XLBXTKEM(2*NRIMX+2,IJU,IKU))
+  ALLOCATE(XLBXTKEM(2*NRIMX+2*JPHEXT,IJU,IKU))
 ELSE
   ALLOCATE(XLBXTKEM(0,0,0))
 END IF
 !
 IF (CTURB /= 'NONE' .AND. (.NOT. L2D)) THEN
-  ALLOCATE(XLBYTKEM(IIU,2*NRIMY+2,IKU))
+  ALLOCATE(XLBYTKEM(IIU,2*NRIMY+2*JPHEXT,IKU))
 ELSE
   ALLOCATE(XLBYTKEM(0,0,0))
 END IF
 !
-ALLOCATE(XLBXRM(2*NRIMX+2,IJU,IKU,NRR))
+ALLOCATE(XLBXRM(2*NRIMX+2*JPHEXT,IJU,IKU,NRR))
 !
 IF (.NOT. L2D ) THEN
-  ALLOCATE(XLBYRM(IIU,2*NRIMY+2,IKU,NRR))
+  ALLOCATE(XLBYRM(IIU,2*NRIMY+2*JPHEXT,IKU,NRR))
 ELSE
   ALLOCATE(XLBYRM(0,0,0,0))
 END IF
 !
-ALLOCATE(XLBXSVM(2*NRIMX+2,IJU,IKU,NSV))
+ALLOCATE(XLBXSVM(2*NRIMX+2*JPHEXT,IJU,IKU,NSV))
 !
 IF (.NOT. L2D ) THEN
-  ALLOCATE(XLBYSVM(IIU,2*NRIMY+2,IKU,NSV))
+  ALLOCATE(XLBYSVM(IIU,2*NRIMY+2*JPHEXT,IKU,NSV))
 ELSE
   ALLOCATE(XLBYSVM(0,0,0,0))
 END IF
@@ -1070,52 +1071,52 @@ ZPRESSURE2=ZTIME2-ZTIME1
 !
 !
 !
-XLBXUM(1:NRIMX+1,:,:)         = XUT(IIB:IIB+NRIMX,:,:)
-XLBXUM(NRIMX+2:2*NRIMX+2,:,:) = XUT(IIE+1-NRIMX:IIE+1,:,:)
+XLBXUM(1:NRIMX+JPHEXT,:,:)         = XUT(2:NRIMX+JPHEXT+1,:,:)
+XLBXUM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:) = XUT(IIE+1-NRIMX:IIE+JPHEXT,:,:)
 IF( .NOT. L2D ) THEN
-  XLBYUM(:,1:NRIMY+1,:)         = XUT(:,IJB-1:IJB-1+NRIMY,:)
-  XLBYUM(:,NRIMY+2:2*NRIMY+2,:) = XUT(:,IJE+1-NRIMY:IJE+1,:)
+  XLBYUM(:,1:NRIMY+JPHEXT,:)         = XUT(:,1:NRIMY+JPHEXT,:)
+  XLBYUM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:) = XUT(:,IJE+1-NRIMY:IJE+JPHEXT,:)
 END IF
 !
 !*       5.9.2  V variable
 !
 !
-XLBXVM(1:NRIMX+1,:,:)         = XVT(IIB-1:IIB-1+NRIMX,:,:)
-XLBXVM(NRIMX+2:2*NRIMX+2,:,:) = XVT(IIE+1-NRIMX:IIE+1,:,:)
+XLBXVM(1:NRIMX+JPHEXT,:,:)         = XVT(1:NRIMX+JPHEXT,:,:)
+XLBXVM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:) = XVT(IIE+1-NRIMX:IIE+JPHEXT,:,:)
 IF( .NOT. L2D ) THEN
-  XLBYVM(:,1:NRIMY+1,:)         = XVT(:,IJB:IJB+NRIMY,:)
-  XLBYVM(:,NRIMY+2:2*NRIMY+2,:) = XVT(:,IJE+1-NRIMY:IJE+1,:)
+  XLBYVM(:,1:NRIMY+JPHEXT,:)         = XVT(:,2:NRIMY+JPHEXT+1,:)
+  XLBYVM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:) = XVT(:,IJE+1-NRIMY:IJE+JPHEXT,:)
 END IF
 !
 !*       5.9.3  W variable
 !
 !
-XLBXWM(1:NRIMX+1,:,:)         = XWT(IIB-1:IIB-1+NRIMX,:,:)
-XLBXWM(NRIMX+2:2*NRIMX+2,:,:) = XWT(IIE+1-NRIMX:IIE+1,:,:)
+XLBXWM(1:NRIMX+JPHEXT,:,:)         = XWT(1:NRIMX+JPHEXT,:,:)
+XLBXWM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:) = XWT(IIE+1-NRIMX:IIE+JPHEXT,:,:)
 IF( .NOT. L2D ) THEN
-  XLBYWM(:,1:NRIMY+1,:)         = XWT(:,IJB-1:IJB-1+NRIMY,:)
-  XLBYWM(:,NRIMY+2:2*NRIMY+2,:) = XWT(:,IJE+1-NRIMY:IJE+1,:)
+  XLBYWM(:,1:NRIMY+JPHEXT,:)         = XWT(:,1:NRIMY+JPHEXT,:)
+  XLBYWM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:) = XWT(:,IJE+1-NRIMY:IJE+JPHEXT,:)
 END IF
 !
 !*       5.9.4  TH variable
 !
 !
-XLBXTHM(1:NRIMX+1,:,:)         = XTHT(IIB-1:IIB-1+NRIMX,:,:)
-XLBXTHM(NRIMX+2:2*NRIMX+2,:,:) = XTHT(IIE+1-NRIMX:IIE+1,:,:)
+XLBXTHM(1:NRIMX+JPHEXT,:,:)         = XTHT(1:NRIMX+JPHEXT,:,:)
+XLBXTHM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:) = XTHT(IIE+1-NRIMX:IIE+JPHEXT,:,:)
 IF( .NOT. L2D ) THEN
-  XLBYTHM(:,1:NRIMY+1,:)         = XTHT(:,IJB-1:IJB-1+NRIMY,:)
-  XLBYTHM(:,NRIMY+2:2*NRIMY+2,:) = XTHT(:,IJE+1-NRIMY:IJE+1,:)
+  XLBYTHM(:,1:NRIMY+JPHEXT,:)         = XTHT(:,1:NRIMY+JPHEXT,:)
+  XLBYTHM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:) = XTHT(:,IJE+1-NRIMY:IJE+JPHEXT,:)
 END IF
 !
 !*       5.9.5  TKE variable
 !
 !
 IF (HTURB /= 'NONE') THEN
-  XLBXTKEM(1:NRIMX+1,:,:)         = XTKET(IIB-1:IIB-1+NRIMX,:,:)
-  XLBXTKEM(NRIMX+2:2*NRIMX+2,:,:) = XTKET(IIE+1-NRIMX:IIE+1,:,:)
+  XLBXTKEM(1:NRIMX+JPHEXT,:,:)         = XTKET(1:NRIMX+JPHEXT,:,:)
+  XLBXTKEM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:) = XTKET(IIE+1-NRIMX:IIE+JPHEXT,:,:)
   IF( .NOT. L2D ) THEN
-    XLBYTKEM(:,1:NRIMY+1,:)         = XTKET(:,IJB-1:IJB-1+NRIMY,:)
-    XLBYTKEM(:,NRIMY+2:2*NRIMY+2,:) = XTKET(:,IJE+1-NRIMY:IJE+1,:)
+    XLBYTKEM(:,1:NRIMY+JPHEXT,:)         = XTKET(:,1:NRIMY+JPHEXT,:)
+    XLBYTKEM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:) = XTKET(:,IJE+1-NRIMY:IJE+JPHEXT,:)
   END IF
 ENDIF
 ! 
@@ -1124,11 +1125,11 @@ ENDIF
 !
 IF (NRR >= 1) THEN
   DO JRR =1,NRR  
-    XLBXRM(1:NRIMX+1,:,:,JRR)         = XRT(IIB-1:IIB-1+NRIMX,:,:,JRR)
-    XLBXRM(NRIMX+2:2*NRIMX+2,:,:,JRR) = XRT(IIE+1-NRIMX:IIE+1,:,:,JRR)
+    XLBXRM(1:NRIMX+JPHEXT,:,:,JRR)         = XRT(1:NRIMX+JPHEXT,:,:,JRR)
+    XLBXRM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:,JRR) = XRT(IIE+1-NRIMX:IIE+JPHEXT,:,:,JRR)
     IF( .NOT. L2D ) THEN
-      XLBYRM(:,1:NRIMY+1,:,JRR)         = XRT(:,IJB-1:IJB-1+NRIMY,:,JRR)
-      XLBYRM(:,NRIMY+2:2*NRIMY+2,:,JRR) = XRT(:,IJE+1-NRIMY:IJE+1,:,JRR)
+      XLBYRM(:,1:NRIMY+JPHEXT,:,JRR)         = XRT(:,1:NRIMY+JPHEXT,:,JRR)
+      XLBYRM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:,JRR) = XRT(:,IJE+1-NRIMY:IJE+JPHEXT,:,JRR)
     END IF
   END DO
 END IF
@@ -1137,11 +1138,11 @@ END IF
 !
 IF (NSV /= 0) THEN
   DO JSV = 1, NSV
-    XLBXSVM(1:NRIMX+1,:,:,JSV)         = XSVT(IIB-1:IIB-1+NRIMX,:,:,JSV)
-    XLBXSVM(NRIMX+2:2*NRIMX+2,:,:,JSV) = XSVT(IIE+1-NRIMX:IIE+1,:,:,JSV)
+    XLBXSVM(1:NRIMX+JPHEXT,:,:,JSV)         = XSVT(1:NRIMX+JPHEXT,:,:,JSV)
+    XLBXSVM(NRIMX+JPHEXT+1:2*NRIMX+2*JPHEXT,:,:,JSV) = XSVT(IIE+1-NRIMX:IIE+JPHEXT,:,:,JSV)
     IF( .NOT. L2D ) THEN
-      XLBYSVM(:,1:NRIMY+1,:,JSV)         = XSVT(:,IJB-1:IJB-1+NRIMY,:,JSV)
-      XLBYSVM(:,NRIMY+2:2*NRIMY+2,:,JSV) = XSVT(:,IJE+1-NRIMY:IJE+1,:,JSV)
+      XLBYSVM(:,1:NRIMY+JPHEXT,:,JSV)         = XSVT(:,1:NRIMY+JPHEXT,:,JSV)
+      XLBYSVM(:,NRIMY+JPHEXT+1:2*NRIMY+2*JPHEXT,:,JSV) = XSVT(:,IJE+1-NRIMY:IJE+JPHEXT,:,JSV)
     END IF
   END DO
 ENDIF
diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90
index 8a2725575..c249a3d95 100644
--- a/src/MNH/spawn_zs.f90
+++ b/src/MNH/spawn_zs.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 newsrc 2006/05/23 15:39:51
 !-----------------------------------------------------------------
 !###################
 MODULE MODI_SPAWN_ZS
@@ -99,6 +98,7 @@ END MODULE MODI_SPAWN_ZS
 !!
 !!      Original     12/01/05
 !!      Modification    20/05/06 Remove Clark and Farley interpolation
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -114,6 +114,8 @@ USE MODI_ZS_BOUNDARY
 !
 USE MODE_MODELN_HANDLER
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -150,6 +152,9 @@ INTEGER             :: JMAXITER = 2000    ! maximum number of iterations
 !
 INTEGER, DIMENSION(2) :: IZSMAX
 INTEGER               :: IMI     ! current model index
+!
+INTEGER               :: IXSIZE,IYSIZE
+INTEGER                          :: INFO_ll                ! error return code
 !-------------------------------------------------------------------------------
 !
 !*       1.    PROLOGUE:
@@ -157,6 +162,7 @@ INTEGER               :: IMI     ! current model index
 !
 IMI = GET_CURRENT_MODEL_INDEX()
 CALL GOTO_MODEL(2)
+CALL GO_TOMODEL_ll(2,INFO_ll)
 !
 !
 !*       1.2  recovers logical unit number of output listing
@@ -177,6 +183,7 @@ ALLOCATE(ZZS2_LS(SIZE(PZS2,1),SIZE(PZS2,2)))
                  XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, &
                  KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO,1,       &
                  HLBCX,HLBCY,PZS1,ZZS2_LS)
+  CALL MPPDB_CHECK2D(ZZS2_LS,"SPAWN_ZS::ZZS2_LS",PRECISION)
 !
 !*       4.2   New zs:
 !              -------
@@ -190,8 +197,10 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
 !
 !* allocations
 !
-  ALLOCATE(ZZS2(KXEND-KXOR-1,KYEND-KYOR-1))
-  ALLOCATE(ZDZS(KXEND-KXOR-1,KYEND-KYOR-1))
+  IXSIZE = KXEND-KXOR - 2*JPHEXT + 1
+  IYSIZE = KYEND-KYOR - 2*JPHEXT + 1
+  ALLOCATE(ZZS2(IXSIZE,IYSIZE))
+  ALLOCATE(ZDZS(IXSIZE,IYSIZE))
   ALLOCATE(ZZS1(SIZE(PZS1,1),SIZE(PZS1,2)))
 !
 !* constants
@@ -214,12 +223,13 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
                      XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, &
                      KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO,1,       &
                      HLBCX,HLBCY,ZZS1,PZS2)
+      CALL MPPDB_CHECK2D(PZS2,"SPAWN_ZS::PZS2",PRECISION)
     JCOUNTER=JCOUNTER+1
 !
 !* if orography is positive, it stays positive
 !
-    DO JI=1,KXEND-KXOR-1
-      DO JJ=1,KYEND-KYOR-1
+    DO JI=1,IXSIZE
+      DO JJ=1,IYSIZE
         IF (PZS1(JI+KXOR,JJ+KYOR)>-1.E-15)                            &
           PZS2((JI-1)*KDXRATIO+1+JPHEXT:JI*KDXRATIO+JPHEXT,             &
                (JJ-1)*KDYRATIO+1+JPHEXT:JJ*KDYRATIO+JPHEXT)  =          &
@@ -227,12 +237,13 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
                       (JJ-1)*KDYRATIO+1+JPHEXT:JJ*KDYRATIO+JPHEXT), 0.)
       END DO
     END DO
+    CALL MPPDB_CHECK2D(PZS2,"SPAWN_ZS::PZS2",PRECISION)
 !
 !* computation of new averaged orography
 !
     ZZS2(:,:) = 0.
-    DO JI=1,KXEND-KXOR-1
-      DO JJ=1,KYEND-KYOR-1
+    DO JI=1,IXSIZE
+      DO JJ=1,IYSIZE
         DO JEPSX = (JI-1)*KDXRATIO+1+JPHEXT, JI*KDXRATIO+JPHEXT
           DO JEPSY = (JJ-1)*KDYRATIO+1+JPHEXT, JJ*KDYRATIO+JPHEXT
             ZZS2(JI,JJ) = ZZS2(JI,JJ) + PZS2(JEPSX,JEPSY)
@@ -242,7 +253,7 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
     END DO
     ZZS2(:,:) = ZZS2(:,:) / (KDXRATIO*KDYRATIO)
     !
-    ZDZS(:,:)=PZS1(KXOR+1:KXEND-1,KYOR+1:KYEND-1)-ZZS2(:,:)
+    ZDZS(:,:)=PZS1(KXOR+JPHEXT:KXEND-JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT)-ZZS2(:,:)
 !
 !* test to end the iterative process
 !
@@ -253,8 +264,8 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
                           ' NOT obtained after',JCOUNTER,' iterations'
       WRITE(ILUOUT,FMT=*) TRIM(HFIELD),                             &
          ' is modified to insure egality of large scale and averaged fine field'
-      DO JI=1,KXEND-KXOR-1
-        DO JJ=1,KYEND-KYOR-1
+      DO JI=1,IXSIZE
+        DO JJ=1,IYSIZE
           DO JEPSX = (JI-1)*KDXRATIO+1+JPHEXT, JI*KDXRATIO+JPHEXT
             DO JEPSY = (JJ-1)*KDYRATIO+1+JPHEXT, JJ*KDYRATIO+JPHEXT
               PZS2(JEPSX,JEPSY) = PZS2(JEPSX,JEPSY) + ZDZS(JI,JJ)
@@ -283,25 +294,25 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
 !
 !* correction of coarse orography
 !
-    ZZS1(KXOR+1:KXEND-1,KYOR+1:KYEND-1) =                             &
-         ZZS1(KXOR+1:KXEND-1,KYOR+1:KYEND-1) + ZRELAX * ZDZS(:,:)
+    ZZS1(KXOR+JPHEXT:KXEND-JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT) =                             &
+         ZZS1(KXOR+JPHEXT:KXEND-JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT) + ZRELAX * ZDZS(:,:)
     !
     ! extrapolations (X direction)
     !
     IF(KXOR==1 .AND. KXEND==SIZE(PZS1,1) .AND. HLBCX(1)=='CYCL' ) THEN
-      ZZS1(KXOR,KYOR+1:KYEND-1) = ZZS1(KXEND-1,KYOR+1:KYEND-1)
-      ZZS1(KXEND,KYOR+1:KYEND-1) = ZZS1(KXOR+1,KYOR+1:KYEND-1)
+      ZZS1(KXOR,KYOR+JPHEXT:KYEND-JPHEXT)  = ZZS1(KXEND-JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT)
+      ZZS1(KXEND,KYOR+JPHEXT:KYEND-JPHEXT) = ZZS1(KXOR+JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT)
     ELSE
-      ZZS1(KXOR,KYOR+1:KYEND-1) =                                       &
-        2. * ZZS1(KXOR+1,KYOR+1:KYEND-1)  - ZZS1(KXOR+2,KYOR+1:KYEND-1)
+      ZZS1(KXOR+JPHEXT-1,KYOR+JPHEXT:KYEND-JPHEXT) =                                       &
+        2. * ZZS1(KXOR+JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT)  - ZZS1(KXOR+JPHEXT+1,KYOR+JPHEXT:KYEND-JPHEXT)
       IF(KXOR>1)                                                        &
-      ZZS1(KXOR-1,KYOR+1:KYEND-1) =                                     &
-        2. * ZZS1(KXOR  ,KYOR+1:KYEND-1)  - ZZS1(KXOR+1,KYOR+1:KYEND-1)
-      ZZS1(KXEND,KYOR+1:KYEND-1) =                                      &
-        2. * ZZS1(KXEND-1,KYOR+1:KYEND-1) - ZZS1(KXEND-2,KYOR+1:KYEND-1)
+      ZZS1(KXOR+JPHEXT-2,KYOR+JPHEXT:KYEND-JPHEXT) =                                     &
+        2. * ZZS1(KXOR+JPHEXT-1,KYOR+JPHEXT:KYEND-JPHEXT)  - ZZS1(KXOR+JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT)
+      ZZS1(KXEND-JPHEXT+1,KYOR+JPHEXT:KYEND-JPHEXT) =                                      &
+        2. * ZZS1(KXEND-JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT) - ZZS1(KXEND-JPHEXT-1,KYOR+JPHEXT:KYEND-JPHEXT)
       IF(KXEND<SIZE(PZS1,1))                                             &
-      ZZS1(KXEND+1,KYOR+1:KYEND-1) =                                    &
-        2. * ZZS1(KXEND  ,KYOR+1:KYEND-1) - ZZS1(KXEND-1,KYOR+1:KYEND-1)
+      ZZS1(KXEND-JPHEXT+2,KYOR+JPHEXT:KYEND-JPHEXT) =                                    &
+        2. * ZZS1(KXEND-JPHEXT+1,KYOR+JPHEXT:KYEND-JPHEXT) - ZZS1(KXEND-JPHEXT,KYOR+JPHEXT:KYEND-JPHEXT)
     END IF
     !
     ! extrapolations (Y direction)
@@ -309,19 +320,19 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
     IXMIN=MAX(KXOR-1,1)
     IXMAX=MIN(KXEND+1,SIZE(PZS1,1))
     IF(KYOR==1 .AND. KYEND==SIZE(PZS1,2) .AND. HLBCY(1)=='CYCL' ) THEN
-      ZZS1(IXMIN:IXMAX,KYOR)  = ZZS1(IXMIN:IXMAX,KYEND-1)
-      ZZS1(IXMIN:IXMAX,KYEND) = ZZS1(IXMIN:IXMAX,KYOR+1)
+      ZZS1(IXMIN:IXMAX,KYOR)  = ZZS1(IXMIN:IXMAX,KYEND-JPHEXT)
+      ZZS1(IXMIN:IXMAX,KYEND) = ZZS1(IXMIN:IXMAX,KYOR+JPHEXT)
     ELSE
-      ZZS1(IXMIN:IXMAX,KYOR) =                                       &
-        2. * ZZS1(IXMIN:IXMAX,KYOR+1)  - ZZS1(IXMIN:IXMAX,KYOR+2)
+      ZZS1(IXMIN:IXMAX,KYOR+JPHEXT-1) =                                       &
+        2. * ZZS1(IXMIN:IXMAX,KYOR+JPHEXT)  - ZZS1(IXMIN:IXMAX,KYOR+JPHEXT+1)
       IF(KYOR>1)                                                     &
-      ZZS1(IXMIN:IXMAX,KYOR-1) =                                     &
-        2. * ZZS1(IXMIN:IXMAX,KYOR)    - ZZS1(IXMIN:IXMAX,KYOR+1)
-      ZZS1(IXMIN:IXMAX,KYEND) =                                      &
-        2. * ZZS1(IXMIN:IXMAX,KYEND-1) - ZZS1(IXMIN:IXMAX,KYEND-2)
+      ZZS1(IXMIN:IXMAX,KYOR+JPHEXT-2) =                                     &
+        2. * ZZS1(IXMIN:IXMAX,KYOR+JPHEXT-1)    - ZZS1(IXMIN:IXMAX,KYOR+JPHEXT)
+      ZZS1(IXMIN:IXMAX,KYEND-JPHEXT+1) =                                      &
+        2. * ZZS1(IXMIN:IXMAX,KYEND-JPHEXT) - ZZS1(IXMIN:IXMAX,KYEND-JPHEXT-1)
       IF(KYEND<SIZE(PZS1,2))                                          &
-      ZZS1(IXMIN:IXMAX,KYEND+1) =                                    &
-        2. * ZZS1(IXMIN:IXMAX,KYEND)   - ZZS1(IXMIN:IXMAX,KYEND-1)
+      ZZS1(IXMIN:IXMAX,KYEND-JPHEXT+2) =                                    &
+        2. * ZZS1(IXMIN:IXMAX,KYEND-JPHEXT+1)   - ZZS1(IXMIN:IXMAX,KYEND-JPHEXT)
     END IF
 !
 !* next iteration
@@ -342,6 +353,7 @@ IF (PRESENT(PZS2_LS)) PZS2_LS(:,:)=ZZS2_LS(:,:)
 DEALLOCATE(ZZS2_LS)
 !
 CALL GOTO_MODEL(IMI)
+CALL GO_TOMODEL_ll(IMI,INFO_ll)
 !-------------------------------------------------------------------------------
 END SUBROUTINE SPAWN_ZS
 !
diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90
index 101112c23..13d8f5739 100644
--- a/src/MNH/spawning.f90
+++ b/src/MNH/spawning.f90
@@ -70,6 +70,7 @@
 !!                                      to keep finest fields of son1
 !!      Modification 05/06     Remove EPS
 !!      Modification 19/03/2008 (J.Escobar) rename INIT to INIT_MNH --> grib problem
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -118,6 +119,10 @@ USE MODI_VERSION
 USE MODI_INIT_MNH
 USE MODI_DEALLOC_SURFEX
 !
+USE MODN_CONF, ONLY : JPHEXT , NHALO
+!
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.3    Local variables
@@ -136,9 +141,11 @@ LOGICAL :: LSPAWN_SURF = .TRUE.  ! .TRUE. : surface fields are spawned
 LOGICAL                           :: LRES
 REAL                              :: XRES
 NAMELIST/NAM_SPAWN_SURF/LSPAWN_SURF, LRES, XRES  
+NAMELIST/NAM_CONF_SPAWN/JPHEXT, NHALO
 !
 !-------------------------------------------------------------------------------
 !
+CALL MPPDB_INIT()
 ! First Switch to model 1 variables
 CALL GOTO_MODEL(1)
 !
@@ -181,6 +188,8 @@ IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_SPAWN_SURF)
 CALL UPDATE_MODD_FROM_NMLVAR
 CALL POSNAM(ILUSPA,'NAM_BLANK',GFOUND)
 IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_BLANK)
+CALL POSNAM(ILUSPA,'NAM_CONF_SPAWN',GFOUND)
+IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_CONF_SPAWN)
 !!CALL CLOSE_ll(YEXSPA)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 02c6f2335..9f0be0bd9 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 turb 2006/06/06 10:02:03
 !-----------------------------------------------------------------
 !     ###########################
       MODULE MODI_TKE_EPS_SOURCES
@@ -169,6 +168,8 @@ END MODULE MODI_TKE_EPS_SOURCES
 !!                                              change of YCOMMENT
 !!                     2012-02 Y. Seity,  add possibility to run with reversed 
 !!                                    vertical levels
+!!                     2015-01 (J. Escobar) missing get_halo(ZRES) for JPHEXT<> 1 
+!!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !! --------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -196,6 +197,8 @@ USE MODI_LES_MEAN_SUBGRID
 USE MODE_ll          
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 !
+USE MODI_GET_HALO
+!
 IMPLICIT NONE
 !
 !
@@ -272,12 +275,9 @@ NULLIFY(TZFIELDDISS_ll)
 !             ------------------------
 !
 !
-IIB=1+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IIU=SIZE(PTKEM,1)
-IIE=IIU-JPHEXT
-IJB=1+JPHEXT
 IJU=SIZE(PTKEM,2)
-IJE=IJU-JPHEXT
 IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
 !
@@ -329,6 +329,8 @@ ZA(:,:,:)     = - PTSTEP * XCET * &
 !
 CALL TRIDIAG_TKE(KKA,KKU,KKL,PTKEM,ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,&
             & ZSOURCE,PTSTEP*ZFLX,ZRES)
+!JUAN
+CALL GET_HALO(ZRES)
 !
 !* diagnose the dissipation
 !
diff --git a/src/MNH/tridz.f90 b/src/MNH/tridz.f90
index 65889623c..192770486 100644
--- a/src/MNH/tridz.f90
+++ b/src/MNH/tridz.f90
@@ -173,6 +173,7 @@ END MODULE MODI_TRIDZ
 !!                                        PBFY transposition
 !!                  14/03/02 (P. Jabouille) set values for meaningless spectral coefficients
 !!                                       (to avoid problem in bouissinesq configuration)
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -191,6 +192,7 @@ USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll
 !JUAN
 USE MODE_REPRO_SUM
 !JUAN
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -337,8 +339,9 @@ IJE_ll = IJMAX_ll + JPHEXT
 !
 !     the use of local array ZEIGENX and ZEIGEN would require some technical modifications
 !
-ALLOCATE (ZEIGENX_ll(IIMAX_ll + 2*JPHEXT))
-ALLOCATE (ZEIGEN_ll(IIMAX_ll  + 2*JPHEXT, IJMAX_ll + 2*JPHEXT))
+ALLOCATE (ZEIGENX_ll(IIMAX_ll+2*JPHEXT))
+ALLOCATE (ZEIGEN_ll(IIMAX_ll+2*JPHEXT,IJMAX_ll+2*JPHEXT))
+
 ZEIGEN_ll = 0.0
 !  Get the origin coordinates of the extended sub-domain in global landmarks
 CALL GET_OR_ll('Y',IORXY_ll,IORYY_ll)
@@ -491,7 +494,7 @@ SELECT CASE (HLBCX(1))
 ! in the cyclic case, the eigenvalues are the same for two following JM values:
 ! it corresponds to the real and complex parts of the FFT
   CASE('CYCL')                     ! cyclic case
-    IXMODE_ll = IIMAX_ll+2
+    IXMODE_ll = IIMAX_ll+2*JPHEXT ! +2
     IXMODEY_ll = IIUY_ll
     IXMODEB_ll = IIUB_ll !JUAN Z_SPLITTING
 !
@@ -503,13 +506,13 @@ SELECT CASE (HLBCX(1))
 !
 !
     IF (LEAST_ll(HSPLITTING='Y')) THEN
-      IXMODEY_ll = IIUY_ll - 2
+      IXMODEY_ll = IIUY_ll - 2*JPHEXT  ! -2
     ELSE
       IXMODEY_ll = IIUY_ll
     END IF
 !JUAN Z_SPLITTING
     IF (LEAST_ll(HSPLITTING='B')) THEN
-      IXMODEB_ll = IIUB_ll - 2
+      IXMODEB_ll = IIUB_ll - 2*JPHEXT  ! -2
     ELSE
       IXMODEB_ll = IIUB_ll
     END IF
@@ -532,7 +535,7 @@ IF (.NOT. L2D) THEN
 ! it corresponds to the real and complex parts of the FFT result
 !
     CASE('CYCL')                      ! 3D cyclic case
-      IYMODE_ll = IJMAX_ll+2
+      IYMODE_ll = IJMAX_ll+2*JPHEXT ! +2
       IYMODEY_ll = IJUY_ll
       IYMODEB_ll = IJUB_ll !JUAN Z_SPLITTING
 !
@@ -545,8 +548,8 @@ IF (.NOT. L2D) THEN
 !
     CASE DEFAULT                      ! 3D non-cyclic cases
       IYMODE_ll = IJMAX_ll
-      IYMODEY_ll = IJUY_ll - 2
-      IYMODEB_ll = IJUB_ll - 2 !JUAN Z_SPLITTING
+      IYMODEY_ll = IJUY_ll - 2*JPHEXT ! -2
+      IYMODEB_ll = IJUB_ll - 2*JPHEXT ! -2 JUAN Z_SPLITTING
 !
       DO JJ = 1,IYMODE_ll
         DO JI = 1,IXMODE_ll
@@ -568,6 +571,9 @@ END IF
 !
 DEALLOCATE(ZEIGENX_ll)
 !
+!CALL MPPDB_CHECK2D(ZEIGEN_ll,"TRIDZ::ZEIGEN_ll",PRECISION)
+!
+!
 !*       7.2   compute the matrix diagonal elements
 !
 !
diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90
index 1fbb673f5..216f2f5d5 100644
--- a/src/MNH/turb_hor_dyn_corr.f90
+++ b/src/MNH/turb_hor_dyn_corr.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 turb 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 MODULE MODI_TURB_HOR_DYN_CORR
 !
@@ -140,6 +139,7 @@ END MODULE MODI_TURB_HOR_DYN_CORR
 !!                     July 2012     (V.Masson) Implicitness of W
 !!                     March 2014    (V.Masson) tridiag_w : bug between
 !!                                               mass and flux position
+!!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !! --------------------------------------------------------------------------
 !
 !*      0. DECLARATIONS
@@ -167,6 +167,7 @@ USE MODI_LES_MEAN_SUBGRID
 USE MODI_TRIDIAG_W
 !
 USE MODI_SECOND_MNH
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -393,9 +394,14 @@ END IF
 !
 ! Complete the U tendency
 IF (.NOT. LFLAT) THEN
+CALL MPPDB_CHECK3DM("before turb_corr:PRUS,PRHODJ,ZFLX,PDXX,PDZX,PINV_PDZZ",PRECISION,&
+                   & PRUS,PRHODJ,ZFLX,PDXX,PDZX,PINV_PDZZ )
+
   PRUS(:,:,:)=PRUS                                            &
               -DXM(PRHODJ * ZFLX / MXF(PDXX) )                &
               +DZF(1,IKU,1, PDZX / MZM(1,IKU,1,PDXX) * MXM( MZM(1,IKU,1,PRHODJ*ZFLX) * PINV_PDZZ ) )
+CALL MPPDB_CHECK3DM("after  turb_corr:PRUS,PRHODJ,ZFLX,PDXX,PDZX,PINV_PDZZ",PRECISION,&
+                   & PRUS,PRHODJ,ZFLX,PDXX,PDZX,PINV_PDZZ )
 ELSE
   PRUS(:,:,:)=PRUS -DXM(PRHODJ * ZFLX / MXF(PDXX) )
 END IF
diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90
index e4b71e5e9..43daa0ffd 100644
--- a/src/MNH/turb_hor_splt.f90
+++ b/src/MNH/turb_hor_splt.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 turb 2006/06/06 09:58:33
 !-----------------------------------------------------------------
 !    #########################  
      MODULE MODI_TURB_HOR_SPLT
@@ -253,6 +252,7 @@ END MODULE MODI_TURB_HOR_SPLT
 !!                     Feb  20, 2003 (JP Pinty)  Add PFRAC_ICE
 !!                     Oct.2009  (C.Lac) Introduction of different PTSTEP according to the
 !!                              advection schemes
+!!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -382,10 +382,7 @@ TYPE(LIST_ll), POINTER, SAVE :: TZFIELDS_ll
 IKB = 1.+JPVEXT
 IKE = SIZE(PUM,3) - JPVEXT
 IKU = SIZE(PUM,3)
-IIB = 1.+JPHEXT
-IJB = 1.+JPHEXT
-IIE = SIZE(PUM,1) - JPHEXT
-IJE = SIZE(PUM,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 ISV=SIZE(PSVM,4)
 !
 ALLOCATE(ZK(SIZE(PTHLM,1),SIZE(PTHLM,2),SIZE(PTHLM,3)))
diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90
index 4c42febce..3224c540b 100644
--- a/src/MNH/turb_ver_dyn_flux.f90
+++ b/src/MNH/turb_ver_dyn_flux.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 turb 2006/06/23 15:58:57
 !-----------------------------------------------------------------
 !    #################### 
      MODULE MODI_TURB_VER_DYN_FLUX 
@@ -286,6 +285,7 @@ END MODULE MODI_TURB_VER_DYN_FLUX
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
 !!      2012-02 Y. Seity,  add possibility to run with reversed vertical levels
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!--------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -310,6 +310,7 @@ USE MODE_FMWRIT
 USE MODI_LES_MEAN_SUBGRID
 !
 USE MODI_SECOND_MNH
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -418,11 +419,8 @@ REAL :: ZTIME1, ZTIME2
 !             -------------
 !
 IIU=SIZE(PUM,1)
-IIE=IIU-JPHEXT
-IIB=1+JPHEXT
 IJU=SIZE(PUM,2)
-IJE=IJU-JPHEXT
-IJB=1+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
 IKT=SIZE(PUM,3)          
diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90
index 4be8177b6..a213fdbcf 100644
--- a/src/MNH/two_wayn.f90
+++ b/src/MNH/two_wayn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_8 nesting 2008/06/30 12:08:25
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_TWO_WAY_n
@@ -117,6 +116,7 @@ END MODULE MODI_TWO_WAY_n
 !!      V.Masson, C.Lac 08/10  Corrections in relaxation
 !!      J. Escobar   27/06/2011 correction for gridnesting with different SHAPE
 !!      Bosseur & Filippi 07/2013 Adds Forefire
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -210,6 +210,8 @@ INTEGER :: IHALO  ! band size where relaxation is not performed
 LOGICAL :: LINTER ! flag for intersection or not with the child domain    
 INTEGER :: IMI    ! Current model index KMI==NDAD(IMI)
 !
+INTEGER  :: IIBC,IJBC,IIEC,IJEC
+!
 !-------------------------------------------------------------------------------
 !
 !*       1.    PROLOGUE:
@@ -306,6 +308,11 @@ ZK2W = 1. / (PTSTEP * NDT_2_WAY(NDAD(IMI)))
 !*      2.    AVERAGE OF SCALAR VARIABLES
 !             ---------------------------
 !
+IIBC=JPHEXT+2
+IIEC=IDIMX-JPHEXT-1
+IJBC=JPHEXT+2
+IJEC=IDIMY-JPHEXT-1
+!
 !*      2.1  summation of rhodj
 !
 ZTRHODJ(:,:,:) = 0.
@@ -315,7 +322,7 @@ DO JX=1,IDXRATIO
     II2 = IIE+JX-IDXRATIO
     IJ1 = IJB+JY-1
     IJ2 = IJE+JY-IDYRATIO
-    ZTRHODJ(3:IDIMX-2,3:IDIMY-2,:) = ZTRHODJ(3:IDIMX-2,3:IDIMY-2,:) &
+    ZTRHODJ(IIBC:IIEC,IJBC:IJEC,:) = ZTRHODJ(IIBC:IIEC,IJBC:IJEC,:) &
                                +XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)
   END DO
 END DO
@@ -329,7 +336,7 @@ DO JX=1,IDXRATIO
     II2 = IIE+JX-IDXRATIO
     IJ1 = IJB+JY-1
     IJ2 = IJE+JY-IDYRATIO
-    ZTTHM(3:IDIMX-2,3:IDIMY-2,:) = ZTTHM(3:IDIMX-2,3:IDIMY-2,:) &
+    ZTTHM(IIBC:IIEC,IJBC:IJEC,:) = ZTTHM(IIBC:IIEC,IJBC:IJEC,:) &
                            +XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:) &
                              *XTHT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)
 !
@@ -347,7 +354,7 @@ DO JVAR=1,IRR
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTRM(3:IDIMX-2,3:IDIMY-2,:,JVAR) =  ZTRM(3:IDIMX-2,3:IDIMY-2,:,JVAR)  &
+      ZTRM(IIBC:IIEC,IJBC:IJEC,:,JVAR) =  ZTRM(IIBC:IIEC,IJBC:IJEC,:,JVAR)  &
                              +XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)    &
                                 *XRT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR)
     END DO
@@ -366,7 +373,7 @@ IF (KSV /= 0) THEN
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR) = ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR)  &
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR) = ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR)  &
                              +XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)    &
                                *XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR)
     END DO
@@ -383,8 +390,8 @@ IF (NSV_C2R2_A(IMI) > 0) THEN
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_C2R2BEG_A(KMI)) = &
-             &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_C2R2BEG_A(KMI))+&
+        ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_C2R2BEG_A(KMI)) = &
+             &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_C2R2BEG_A(KMI))+&
              &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
              &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_C2R2BEG_A(IMI))
       END DO
@@ -402,8 +409,8 @@ IF (NSV_C1R3_A(IMI) > 0) THEN
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_C1R3BEG_A(KMI)) = &
-             &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_C1R3BEG_A(KMI))+&
+        ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_C1R3BEG_A(KMI)) = &
+             &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_C1R3BEG_A(KMI))+&
              &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
              &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_C1R3BEG_A(IMI))
       END DO
@@ -421,8 +428,8 @@ IF (NSV_ELEC_A(IMI) > 0) THEN
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_ELECBEG_A(KMI)) = &
-             &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_ELECBEG_A(KMI))+&
+        ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_ELECBEG_A(KMI)) = &
+             &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_ELECBEG_A(KMI))+&
              &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
              &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_ELECBEG_A(IMI))
       END DO
@@ -438,8 +445,8 @@ DO JVAR=1,NSV_CHEM_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_CHEMBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_CHEMBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_CHEMBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_CHEMBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_CHEMBEG_A(IMI))
     END DO
@@ -456,8 +463,8 @@ IF (NSV_CHIC_A(IMI) > 0) THEN
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_CHICBEG_A(KMI)) = &
-             &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_CHICBEG_A(KMI))+&
+        ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_CHICBEG_A(KMI)) = &
+             &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_CHICBEG_A(KMI))+&
              &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
              &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_CHICBEG_A(IMI))
       END DO
@@ -473,8 +480,8 @@ DO JVAR=1,NSV_LNOX_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_LNOXBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_LNOXBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_LNOXBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_LNOXBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_LNOXBEG_A(IMI))
     END DO
@@ -489,8 +496,8 @@ DO JVAR=1,NSV_AER_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_AERBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_AERBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_AERBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_AERBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_AERBEG_A(IMI))
     END DO
@@ -504,8 +511,8 @@ DO JVAR=1,NSV_AERDEP_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_AERDEPBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_AERDEPBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_AERDEPBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_AERDEPBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_AERDEPBEG_A(IMI))
     END DO
@@ -520,8 +527,8 @@ DO JVAR=1,NSV_DST_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_DSTBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_DSTBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_DSTBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_DSTBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_DSTBEG_A(IMI))
     END DO
@@ -535,8 +542,8 @@ DO JVAR=1,NSV_DSTDEP_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_DSTDEPBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_DSTDEPBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_DSTDEPBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_DSTDEPBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_DSTDEPBEG_A(IMI))
     END DO
@@ -551,8 +558,8 @@ DO JVAR=1,NSV_SLT_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_SLTBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_SLTBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_SLTBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_SLTBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_SLTBEG_A(IMI))
     END DO
@@ -566,8 +573,8 @@ DO JVAR=1,NSV_SLTDEP_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_SLTDEPBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_SLTDEPBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_SLTDEPBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_SLTDEPBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_SLTDEPBEG_A(IMI))
     END DO
@@ -582,8 +589,8 @@ DO JVAR=1,NSV_LG_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_LGBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_LGBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_LGBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_LGBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_LGBEG_A(IMI))
     END DO
@@ -600,8 +607,8 @@ DO JVAR=1,NSV_PP_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_PPBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_PPBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_PPBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_PPBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_PPBEG_A(IMI))
     END DO
@@ -619,8 +626,8 @@ DO JVAR=1,NSV_FF_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_FFBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_FFBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_FFBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_FFBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_FFBEG_A(IMI))
     END DO
@@ -638,8 +645,8 @@ DO JVAR=1,NSV_CS_A(KMI)
       II2 = IIE+JX-IDXRATIO
       IJ1 = IJB+JY-1
       IJ2 = IJE+JY-IDYRATIO
-      ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_CSBEG_A(KMI)) = &
-           &ZTSVM(3:IDIMX-2,3:IDIMY-2,:,JVAR-1+NSV_CSBEG_A(KMI))+&
+      ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_CSBEG_A(KMI)) = &
+           &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_CSBEG_A(KMI))+&
            &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
            &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_CSBEG_A(IMI))
     END DO
@@ -655,11 +662,11 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTINPRR(3:IDIMX-2,3:IDIMY-2) = ZTINPRR(3:IDIMX-2,3:IDIMY-2) &
+        ZTINPRR(IIBC:IIEC,IJBC:IJEC) = ZTINPRR(IIBC:IIEC,IJBC:IJEC) &
                               +XINPRR(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
       END DO
     END DO  
-    ZTINPRR(3:IDIMX-2,3:IDIMY-2)=ZTINPRR(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
+    ZTINPRR(IIBC:IIEC,IJBC:IJEC)=ZTINPRR(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF
 !
    IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
@@ -671,11 +678,11 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTINPRC(3:IDIMX-2,3:IDIMY-2) = ZTINPRC(3:IDIMX-2,3:IDIMY-2) &
+        ZTINPRC(IIBC:IIEC,IJBC:IJEC) = ZTINPRC(IIBC:IIEC,IJBC:IJEC) &
                               +XINPRC(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
       END DO
     END DO  
-    ZTINPRC(3:IDIMX-2,3:IDIMY-2)=ZTINPRC(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
+    ZTINPRC(IIBC:IIEC,IJBC:IJEC)=ZTINPRC(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF
 !
   IF (LUSERS) THEN
@@ -686,11 +693,11 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTINPRS(3:IDIMX-2,3:IDIMY-2) = ZTINPRS(3:IDIMX-2,3:IDIMY-2) &
+        ZTINPRS(IIBC:IIEC,IJBC:IJEC) = ZTINPRS(IIBC:IIEC,IJBC:IJEC) &
                               +XINPRS(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
       END DO
     END DO
-    ZTINPRS(3:IDIMX-2,3:IDIMY-2) = ZTINPRS(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
+    ZTINPRS(IIBC:IIEC,IJBC:IJEC) = ZTINPRS(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF
 !
   IF (LUSERG) THEN
@@ -701,11 +708,11 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTINPRG(3:IDIMX-2,3:IDIMY-2) = ZTINPRG(3:IDIMX-2,3:IDIMY-2) &
+        ZTINPRG(IIBC:IIEC,IJBC:IJEC) = ZTINPRG(IIBC:IIEC,IJBC:IJEC) &
                               +XINPRG(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
       END DO
     END DO  
-    ZTINPRG(3:IDIMX-2,3:IDIMY-2) =ZTINPRG(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
+    ZTINPRG(IIBC:IIEC,IJBC:IJEC) =ZTINPRG(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF
 !
   IF (LUSERH) THEN
@@ -716,11 +723,11 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTINPRH(3:IDIMX-2,3:IDIMY-2) = ZTINPRH(3:IDIMX-2,3:IDIMY-2) &
+        ZTINPRH(IIBC:IIEC,IJBC:IJEC) = ZTINPRH(IIBC:IIEC,IJBC:IJEC) &
                               +XINPRH(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
       END DO
     END DO  
-    ZTINPRH(3:IDIMX-2,3:IDIMY-2) =ZTINPRH(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
+    ZTINPRH(IIBC:IIEC,IJBC:IJEC) =ZTINPRH(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF
 !
   IF (CDCONV /= 'NONE') THEN
@@ -732,14 +739,14 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTPRCONV(3:IDIMX-2,3:IDIMY-2) = ZTPRCONV(3:IDIMX-2,3:IDIMY-2) &
+        ZTPRCONV(IIBC:IIEC,IJBC:IJEC) = ZTPRCONV(IIBC:IIEC,IJBC:IJEC) &
                               +XPRCONV(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
-        ZTPRSCONV(3:IDIMX-2,3:IDIMY-2) = ZTPRSCONV(3:IDIMX-2,3:IDIMY-2) &
+        ZTPRSCONV(IIBC:IIEC,IJBC:IJEC) = ZTPRSCONV(IIBC:IIEC,IJBC:IJEC) &
                               +XPRSCONV(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO)
       END DO
     END DO  
-    ZTPRCONV(3:IDIMX-2,3:IDIMY-2) = ZTPRCONV(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
-    ZTPRSCONV(3:IDIMX-2,3:IDIMY-2) = ZTPRSCONV(3:IDIMX-2,3:IDIMY-2)/(IDXRATIO*IDYRATIO)
+    ZTPRCONV(IIBC:IIEC,IJBC:IJEC) = ZTPRCONV(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
+    ZTPRSCONV(IIBC:IIEC,IJBC:IJEC) = ZTPRSCONV(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF                           
 ! Short Wave and Long Wave variables
   IF (CRAD /= 'NONE') THEN
@@ -752,17 +759,17 @@ END IF
         II2 = IIE+JX-IDXRATIO
         IJ1 = IJB+JY-1
         IJ2 = IJE+JY-IDYRATIO
-        ZTDIRFLASWD(3:IDIMX-2,3:IDIMY-2,:) = ZTDIRFLASWD(3:IDIMX-2,3:IDIMY-2,:)&
+        ZTDIRFLASWD(IIBC:IIEC,IJBC:IJEC,:) = ZTDIRFLASWD(IIBC:IIEC,IJBC:IJEC,:)&
                            +XDIRFLASWD(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)
-        ZTSCAFLASWD(3:IDIMX-2,3:IDIMY-2,:) = ZTSCAFLASWD(3:IDIMX-2,3:IDIMY-2,:)&
+        ZTSCAFLASWD(IIBC:IIEC,IJBC:IJEC,:) = ZTSCAFLASWD(IIBC:IIEC,IJBC:IJEC,:)&
                            +XSCAFLASWD(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)
-        ZTDIRSRFSWD(3:IDIMX-2,3:IDIMY-2,:) = ZTDIRSRFSWD(3:IDIMX-2,3:IDIMY-2,:)&
+        ZTDIRSRFSWD(IIBC:IIEC,IJBC:IJEC,:) = ZTDIRSRFSWD(IIBC:IIEC,IJBC:IJEC,:)&
                            +XDIRSRFSWD(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)
       END DO
     END DO  
-    ZTDIRFLASWD(3:IDIMX-2,3:IDIMY-2,:) = ZTDIRFLASWD(3:IDIMX-2,3:IDIMY-2,:)/(IDXRATIO*IDYRATIO)
-    ZTSCAFLASWD(3:IDIMX-2,3:IDIMY-2,:) = ZTSCAFLASWD(3:IDIMX-2,3:IDIMY-2,:)/(IDXRATIO*IDYRATIO)
-    ZTDIRSRFSWD(3:IDIMX-2,3:IDIMY-2,:) = ZTDIRSRFSWD(3:IDIMX-2,3:IDIMY-2,:)/(IDXRATIO*IDYRATIO) 
+    ZTDIRFLASWD(IIBC:IIEC,IJBC:IJEC,:) = ZTDIRFLASWD(IIBC:IIEC,IJBC:IJEC,:)/(IDXRATIO*IDYRATIO)
+    ZTSCAFLASWD(IIBC:IIEC,IJBC:IJEC,:) = ZTSCAFLASWD(IIBC:IIEC,IJBC:IJEC,:)/(IDXRATIO*IDYRATIO)
+    ZTDIRSRFSWD(IIBC:IIEC,IJBC:IJEC,:) = ZTDIRSRFSWD(IIBC:IIEC,IJBC:IJEC,:)/(IDXRATIO*IDYRATIO) 
   END IF
 !
 !-------------------------------------------------------------------------------
@@ -779,11 +786,11 @@ DO JX=1,IDXRATIO
     II2 = IIE+JX-IDXRATIO
     IJ1 = IJB+JY-1
     IJ2 = IJE+JY-IDYRATIO
-    ZTWM(3:IDIMX-2,3:IDIMY-2,IKB) = ZTWM(3:IDIMX-2,3:IDIMY-2,IKB)           &
+    ZTWM(IIBC:IIEC,IJBC:IJEC,IKB) = ZTWM(IIBC:IIEC,IJBC:IJEC,IKB)           &
                           +2.*XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,IKB) &
                                 *XWT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,IKB)
 !
-    ZTWM(3:IDIMX-2,3:IDIMY-2,IKB+1:IKU) = ZTWM(3:IDIMX-2,3:IDIMY-2,IKB+1:IKU)    &
+    ZTWM(IIBC:IIEC,IJBC:IJEC,IKB+1:IKU) = ZTWM(IIBC:IIEC,IJBC:IJEC,IKB+1:IKU)    &
                             +(XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,IKB+1:IKU  ) &
                             + XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,IKB  :IKU-1))&
                                 *XWT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,IKB+1:IKU)
@@ -796,10 +803,10 @@ ZTRHODJU(:,:,:) = 0.
 !
 IF(LWEST_ll()) THEN
   II1U = IIB+IDXRATIO  !C grid
-  IWEST=4
+  IWEST=JPHEXT+3
 ELSE
   II1U = IIB
-  IWEST=3
+  IWEST=JPHEXT+2
 ENDIF
 !
 II2 = IIE+1-IDXRATIO
@@ -807,7 +814,7 @@ II2 = IIE+1-IDXRATIO
 DO JY=1,IDYRATIO
   IJ1 = IJB+JY-1
   IJ2 = IJE+JY-IDYRATIO
-  ZTRHODJU(IWEST:IDIMX-2,3:IDIMY-2,:) = ZTRHODJU(IWEST:IDIMX-2,3:IDIMY-2,:) &
+  ZTRHODJU(IWEST:IIEC,IJBC:IJEC,:) = ZTRHODJU(IWEST:IIEC,IJBC:IJEC,:) &
                               +XRHODJ(II1U  :II2  :IDXRATIO,IJ1:IJ2:IDYRATIO,:) &
                               +XRHODJ(II1U-1:II2-1:IDXRATIO,IJ1:IJ2:IDYRATIO,:)
 END DO
@@ -817,7 +824,7 @@ ZTUM(:,:,:) = 0.
 DO JY=1,IDYRATIO
   IJ1 = IJB+JY-1
   IJ2 = IJE+JY-IDYRATIO
-  ZTUM(IWEST:IDIMX-2,3:IDIMY-2,:) = ZTUM(IWEST:IDIMX-2,3:IDIMY-2,:) &
+  ZTUM(IWEST:IIEC,IJBC:IJEC,:) = ZTUM(IWEST:IIEC,IJBC:IJEC,:) &
                               +(XRHODJ(II1U  :II2  :IDXRATIO,IJ1:IJ2:IDYRATIO,:) &
                               +XRHODJ(II1U-1:II2-1:IDXRATIO,IJ1:IJ2:IDYRATIO,:)) &
                                  *XUT(II1U  :II2  :IDXRATIO,IJ1:IJ2:IDYRATIO,:)
@@ -830,10 +837,10 @@ ZTRHODJV(:,:,:) = 0.
 !
 IF(LSOUTH_ll() .AND. .NOT. L2D) THEN
   IJ1V = IJB+IDYRATIO  !C grid
-  ISOUTH=4
+  ISOUTH=JPHEXT+3
 ELSE
   IJ1V = IJB
-  ISOUTH=3
+  ISOUTH=JPHEXT+2
 ENDIF
 !
 IJ2 = IJE+1-IDYRATIO
@@ -841,7 +848,7 @@ IJ2 = IJE+1-IDYRATIO
 DO JX=1,IDXRATIO
   II1 = IIB+JX-1
   II2 = IIE+JX-IDXRATIO
-  ZTRHODJV(3:IDIMX-2,ISOUTH:IDIMY-2,:) = ZTRHODJV(3:IDIMX-2,ISOUTH:IDIMY-2,:) &
+  ZTRHODJV(IIBC:IIEC,ISOUTH:IJEC,:) = ZTRHODJV(IIBC:IIEC,ISOUTH:IJEC,:) &
                               +XRHODJ(II1:II2:IDXRATIO,IJ1V  :IJ2  :IDYRATIO,:) &
                               +XRHODJ(II1:II2:IDXRATIO,IJ1V-1:IJ2-1:IDYRATIO,:)
 END DO
@@ -851,7 +858,7 @@ ZTVM(:,:,:) = 0.
 DO JX=1,IDXRATIO
   II1 = IIB+JX-1
   II2 = IIE+JX-IDXRATIO
-  ZTVM(3:IDIMX-2,ISOUTH:IDIMY-2,:) = ZTVM(3:IDIMX-2,ISOUTH:IDIMY-2,:) &
+  ZTVM(IIBC:IIEC,ISOUTH:IJEC,:) = ZTVM(IIBC:IIEC,ISOUTH:IJEC,:) &
                               +(XRHODJ(II1:II2:IDXRATIO,IJ1V  :IJ2  :IDYRATIO,:) &
                              + XRHODJ(II1:II2:IDXRATIO,IJ1V-1:IJ2-1:IDYRATIO,:)) &
                                  *XVT(II1:II2:IDXRATIO,IJ1V  :IJ2  :IDYRATIO,:)
@@ -1019,7 +1026,7 @@ ENDIF
 !    5.1   Compute the bounds of relaxation area
 !
 IHALO=2
-IF (JPHEXT/=1) STOP ! boundaries are hard coded supposing JPHEXT=1
+!!$IF (JPHEXT/=1) STOP ! boundaries are hard coded supposing JPHEXT=1
 !
 CALL GET_OR_ll('B',IXOR_ll,IYOR_ll)
 CALL GET_DIM_EXT_ll('B',IXDIM,IYDIM)
diff --git a/src/MNH/update_lm.f90 b/src/MNH/update_lm.f90
index c8b386eda..5b8310ed7 100644
--- a/src/MNH/update_lm.f90
+++ b/src/MNH/update_lm.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 newsrc 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_UPDATE_LM
@@ -59,6 +58,7 @@ END MODULE MODI_UPDATE_LM
 !!    -------------
 !!      Original    april 2006
 !!       V.Masson : Exchange of East and North sides
+!!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -95,11 +95,7 @@ INTEGER                :: IINFO_ll       ! return code of parallel routine
 !
 !*       1.    COMPUTE DIMENSIONS OF ARRAYS :
 !              ----------------------------
-IIB = 1 + JPHEXT
-IJB = 1 + JPHEXT
-!
-IIE = SIZE(PLM,1) - JPHEXT
-IJE = SIZE(PLM,2) - JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 NULLIFY(TZLM_ll)
 !
 !-------------------------------------------------------------------------------
@@ -108,12 +104,12 @@ NULLIFY(TZLM_ll)
 !            -------------
 !
 !
-IF(NHALO == 1) THEN
+!!$IF(NHALO == 1) THEN
   CALL ADD3DFIELD_ll(TZLM_ll,PLM)
   CALL ADD3DFIELD_ll(TZLM_ll,PLEPS)
   CALL UPDATE_HALO_ll(TZLM_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZLM_ll)
-END IF
+!!$END IF
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/update_metrics.f90 b/src/MNH/update_metrics.f90
index e4a18893a..a391aab9d 100644
--- a/src/MNH/update_metrics.f90
+++ b/src/MNH/update_metrics.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 newsrc 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_UPDATE_METRICS
@@ -61,6 +60,7 @@ END MODULE MODI_UPDATE_METRICS
 !!    -------------
 !!      Original    april 2006
 !!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -105,22 +105,6 @@ NULLIFY(TZMETRICS_ll)
 !
 !-------------------------------------------------------------------------------
 !
-!*       2.  UPDATE HALOs :
-!            -------------
-!
-!
-!!$IF(NHALO == 1) THEN
-  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDXX)
-  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDYY)
-  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZX)
-  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZY)
-  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZZ)
-  CALL UPDATE_HALO_ll(TZMETRICS_ll,IINFO_ll)
-  CALL CLEANLIST_ll(TZMETRICS_ll)
-!!$END IF
-!
-!-------------------------------------------------------------------------------
-!
 !*       3.  UPDATE EXTERNAL POINTS OF GLOBAL DOMAIN:
 !            ---------------------------------------
 !
@@ -134,5 +118,22 @@ IF ( HLBCY(1) /= "CYCL" .AND. LSOUTH_ll()) THEN
     PDZY(JI,IJB-1,:) = PDZY(JI,IJB,:)
   END DO
 END IF
+
+!-------------------------------------------------------------------------------
+!
+!*       2.  UPDATE HALOs :
+!            -------------
+!
+!
+!!$IF(NHALO == 1) THEN
+  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDXX)
+  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDYY)
+  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZX)
+  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZY)
+  CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZZ)
+  CALL UPDATE_HALO_ll(TZMETRICS_ll,IINFO_ll)
+  CALL CLEANLIST_ll(TZMETRICS_ll)
+!!$END IF
+
 !-----------------------------------------------------------------------------
 END SUBROUTINE UPDATE_METRICS
diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90
index eccf8243f..f7fbb9942 100644
--- a/src/MNH/ver_dyn.f90
+++ b/src/MNH/ver_dyn.f90
@@ -6,9 +6,8 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/07/07 12:19:27
 !-----------------------------------------------------------------
-!     ######spl
+!     ###################
       MODULE MODI_VER_DYN
 !     ###################
 INTERFACE
@@ -132,6 +131,7 @@ END MODULE MODI_VER_DYN
 !!                                          interpolation routine
 !!      V.Masson                  24/11/97  use of the 3D dry density
 !!      J.Stein                   20:01/98  add the LS field interpolation
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -217,11 +217,8 @@ INTEGER :: IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV     ! dimensions of the
 INTEGER :: IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2       ! North-south LB arrays
 !-------------------------------------------------------------------------------
 !
-IIB=JPHEXT+1
-IIE=SIZE(PJ,1)-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IIU=SIZE(PJ,1)
-IJB=JPHEXT+1
-IJE=SIZE(PJ,2)-JPHEXT
 IJU=SIZE(PJ,2)
 IKB=JPVEXT+1
 IKE=SIZE(PJ,3)-JPVEXT
@@ -366,10 +363,10 @@ CALL EXTRAPOL('E',XLSVM)
        IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2)
 
   IF ( LHORELAX_UVWTH ) THEN
-    NSIZELBX_ll=2*NRIMX+2
-    NSIZELBXU_ll=2*NRIMX+2
-    NSIZELBY_ll=2*NRIMY+2
-    NSIZELBYV_ll=2*NRIMY+2
+    NSIZELBX_ll=2*NRIMX+2*JPHEXT
+    NSIZELBXU_ll=2*NRIMX+2*JPHEXT
+    NSIZELBY_ll=2*NRIMY+2*JPHEXT
+    NSIZELBYV_ll=2*NRIMY+2*JPHEXT
     ALLOCATE(XLBXUM(IISIZEXFU,IJSIZEXFU,IKU))
     ALLOCATE(XLBYUM(IISIZEYF,IJSIZEYF,IKU))
     ALLOCATE(XLBXVM(IISIZEXF,IJSIZEXF,IKU))
@@ -379,10 +376,10 @@ CALL EXTRAPOL('E',XLSVM)
     !ALLOCATE(XLBXTHM(IISIZEXF,IJSIZEXF,IKU))
     !ALLOCATE(XLBYTHM(IISIZEYF,IJSIZEYF,IKU))
   ELSE
-    NSIZELBX_ll=2
-    NSIZELBXU_ll=4
-    NSIZELBY_ll=2
-    NSIZELBYV_ll=4
+    NSIZELBX_ll= 2*JPHEXT  ! 2
+    NSIZELBXU_ll= 2*(JPHEXT+1) ! 4
+    NSIZELBY_ll=2*JPHEXT  !  2
+    NSIZELBYV_ll= 2*(JPHEXT+1) ! 4
     ALLOCATE(XLBXUM(IISIZEX4,IJSIZEX4,IKU))
     ALLOCATE(XLBYUM(IISIZEY2,IJSIZEY2,IKU))
     ALLOCATE(XLBXVM(IISIZEX2,IJSIZEX2,IKU))
@@ -396,27 +393,27 @@ CALL EXTRAPOL('E',XLSVM)
 ILBX=SIZE(XLBXUM,1)
 ILBY=SIZE(XLBYUM,2)
 IF(LWEST_ll() .AND. .NOT. L1D) THEN
-  XLBXUM(1:NRIMX+1,        :,:)     = XUT(2:NRIMX+2,        :,:)
-  XLBXVM(1:NRIMX+1,        :,:)     = XVT(1:NRIMX+1,        :,:)
-  XLBXWM(1:NRIMX+1,        :,:)     = XWT(1:NRIMX+1,        :,:)
+  XLBXUM(1:NRIMX+JPHEXT,        :,:)     = XUT(2:NRIMX+JPHEXT+1,        :,:)
+  XLBXVM(1:NRIMX+JPHEXT,        :,:)     = XVT(1:NRIMX+JPHEXT,        :,:)
+  XLBXWM(1:NRIMX+JPHEXT,        :,:)     = XWT(1:NRIMX+JPHEXT,        :,:)
 
 ENDIF
 IF(LEAST_ll() .AND. .NOT. L1D) THEN
-  XLBXUM(ILBX-NRIMX:ILBX,:,:)     = XUT(IIU-NRIMX:IIU,    :,:)
-  XLBXVM(ILBX-NRIMX:ILBX,:,:)     = XVT(IIU-NRIMX:IIU,    :,:)
-  XLBXWM(ILBX-NRIMX:ILBX,:,:)     = XWT(IIU-NRIMX:IIU,    :,:)
+  XLBXUM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)     = XUT(IIU-NRIMX-JPHEXT+1:IIU,    :,:)
+  XLBXVM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)     = XVT(IIU-NRIMX-JPHEXT+1:IIU,    :,:)
+  XLBXWM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)     = XWT(IIU-NRIMX-JPHEXT+1:IIU,    :,:)
 
 ENDIF
 IF(LSOUTH_ll() .AND. .NOT. L1D .AND. .NOT. L2D) THEN
-  XLBYUM(:,1:NRIMY+1,        :)     = XUT(:,1:NRIMY+1,      :)
-  XLBYVM(:,1:NRIMY+1,        :)     = XVT(:,2:NRIMY+2,      :)
-  XLBYWM(:,1:NRIMY+1,        :)     = XWT(:,1:NRIMY+1,  :)
+  XLBYUM(:,1:NRIMY+JPHEXT,        :)     = XUT(:,1:NRIMY+JPHEXT,      :)
+  XLBYVM(:,1:NRIMY+JPHEXT,        :)     = XVT(:,2:NRIMY+JPHEXT+1,      :)
+  XLBYWM(:,1:NRIMY+JPHEXT,        :)     = XWT(:,1:NRIMY+JPHEXT,  :)
 
 ENDIF
 IF(LNORTH_ll().AND. .NOT. L1D .AND. .NOT. L2D) THEN
-  XLBYUM(:,ILBY-NRIMY:ILBY,:)     = XUT(:,IJU-NRIMY:IJU,  :)
-  XLBYVM(:,ILBY-NRIMY:ILBY,:)     = XVT(:,IJU-NRIMY:IJU,  :)
-  XLBYWM(:,ILBY-NRIMY:ILBY,:)     = XWT(:,IJU-NRIMY:IJU,  :)
+  XLBYUM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)     = XUT(:,IJU-NRIMY-JPHEXT+1:IJU,  :)
+  XLBYVM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)     = XVT(:,IJU-NRIMY-JPHEXT+1:IJU,  :)
+  XLBYWM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)     = XWT(:,IJU-NRIMY-JPHEXT+1:IJU,  :)
 
 ENDIF
 
diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90
index e86b24015..85e22d053 100644
--- a/src/MNH/ver_int_thermo.f90
+++ b/src/MNH/ver_int_thermo.f90
@@ -133,6 +133,7 @@ END MODULE MODI_VER_INT_THERMO
 !!                                       interpolation routine
 !!                  26/01/98 (J. Stein)  add the LS fields' treatment
 !!                  24/04/2014 (J.escobar) bypass CRAY internal compiler error on IIJ computation
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -257,13 +258,10 @@ INTEGER,DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2))   :: IJCOUNT
 !
 CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=JPVEXT+1
 IKE=SIZE(XZZ,3)-JPVEXT
 IKU=SIZE(XZZ,3)
-IIB=JPHEXT+1
-IJB=JPHEXT+1
-IIE=SIZE(XZZ,1)-JPHEXT
-IJE=SIZE(XZZ,2)-JPHEXT
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90
index 2650e760f..75c09fd95 100644
--- a/src/MNH/ver_interp_to_mixed_grid.f90
+++ b/src/MNH/ver_interp_to_mixed_grid.f90
@@ -162,6 +162,7 @@ END MODULE MODI_VER_INTERP_TO_MIXED_GRID
 !!                  20/05/06             Remove EPS
 !!                  10/04/2014 (J.Escobar &  M.Faivre ) add reprod_sum on XEXNTOP
 !!                  24/04/2014 (J.escobar) bypass CRAY internal compiler error on IIJ computation
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -256,13 +257,10 @@ INTEGER,DIMENSION(SIZE(PZMASS_LS,1),SIZE(PZMASS_LS,2))   :: IJCOUNT
 !
 CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IIU=SIZE(PZMASS_LS,1)
 IJU=SIZE(PZMASS_LS,2)
 IKU=SIZE(XZHAT)
-IIB=JPHEXT+1
-IIE=IIU-JPHEXT
-IJB=JPHEXT+1
-IJE=IJU-JPHEXT
 IKE=IKU-JPVEXT
 ILU=SIZE(PZMASS_LS,3)
 !
diff --git a/src/MNH/ver_prep_mesonh_case.f90 b/src/MNH/ver_prep_mesonh_case.f90
index 359017cad..8ff112327 100644
--- a/src/MNH/ver_prep_mesonh_case.f90
+++ b/src/MNH/ver_prep_mesonh_case.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/05/29 13:03:00
 !-----------------------------------------------------------------
 !     ################################
       MODULE MODI_VER_PREP_MESONH_CASE
@@ -83,6 +82,7 @@ END MODULE MODI_VER_PREP_MESONH_CASE
 !!                  Jun, 10 1997 (V. Masson) add non-hydrostatic pressure
 !!                  Jul, 10 1997 (V. Masson) add epsilon
 !!                  Jul, 11 1997 (V. Masson) add scalar variables
+!!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -106,6 +106,7 @@ USE MODD_PARAMETERS
 USE MODD_PREP_REAL
 !
 USE MODI_SECOND_MNH
+USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -132,11 +133,15 @@ REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZHEXNFLUX_MX! hyd. pressure function
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZHEXNMASS_MX! hyd. pressure function
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZPMASS_MX   ! pressure
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZWORK       ! work array
+!
+INTEGER                           :: IIB,IJB,IIE,IJE
 !-------------------------------------------------------------------------------
 !
 !*       1.    CHANGING OF VARIABLES
 !              ---------------------
 !
+CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
+!
 IIU=SIZE(XZS_LS,1)
 IJU=SIZE(XZS_LS,2)
 ILU=SIZE(XZHAT_LS)
@@ -166,15 +171,23 @@ ALLOCATE(ZWORK(IIU,IJU,ILU))
 ZWORK = XU_LS
 XU_LS(1:IIU-1,:,:)=0.5*ZWORK(2:IIU,:,:)+0.5*ZWORK(1:IIU-1,:,:)
 XU_LS(IIU    ,:,:)=1.5*ZWORK(IIU  ,:,:)-0.5*ZWORK(IIU-1  ,:,:)
+XU_LS(IIE+1    ,:,:)=1.5*ZWORK(IIE+1  ,:,:)-0.5*ZWORK(IIE  ,:,:) ! for JPHEXT <> 1 
+
 ZWORK = XV_LS
 XV_LS(:,1:IJU-1,:)=0.5*ZWORK(:,2:IJU,:)+0.5*ZWORK(:,1:IJU-1,:)
 XV_LS(:,IJU    ,:)=1.5*ZWORK(:,IJU  ,:)-0.5*ZWORK(:,IJU-1  ,:)
+XV_LS(:,IJE+1    ,:)=1.5*ZWORK(:,IJE+1  ,:)-0.5*ZWORK(:,IJE  ,:) ! for JPHEXT <> 1 
+
 ZWORK = XLSU_LS
 XLSU_LS(1:IIU-1,:,:)=0.5*ZWORK(2:IIU,:,:)+0.5*ZWORK(1:IIU-1,:,:)
 XLSU_LS(IIU    ,:,:)=1.5*ZWORK(IIU  ,:,:)-0.5*ZWORK(IIU-1  ,:,:)
+XLSU_LS(IIE+1    ,:,:)=1.5*ZWORK(IIE+1  ,:,:)-0.5*ZWORK(IIE  ,:,:) ! for JPHEXT <> 1 
+
 ZWORK = XLSV_LS
 XLSV_LS(:,1:IJU-1,:)=0.5*ZWORK(:,2:IJU,:)+0.5*ZWORK(:,1:IJU-1,:)
 XLSV_LS(:,IJU    ,:)=1.5*ZWORK(:,IJU  ,:)-0.5*ZWORK(:,IJU-1  ,:)
+XLSV_LS(:,IJE+1    ,:)=1.5*ZWORK(:,IJE+1  ,:)-0.5*ZWORK(:,IJE  ,:) ! for JPHEXT <> 1 
+
 DEALLOCATE(ZWORK)
 !
 !*       1.5   Difference between pressure and hydrostatic pressure
diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90
index 90412d205..7cfff4243 100644
--- a/src/MNH/ver_thermo.f90
+++ b/src/MNH/ver_thermo.f90
@@ -6,9 +6,8 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 prep_real 2006/07/07 12:04:57
 !-----------------------------------------------------------------
-!     ######spl
+!     ######################
       MODULE MODI_VER_THERMO
 !     ######################
 INTERFACE
@@ -146,6 +145,7 @@ END MODULE MODI_VER_THERMO
 !!                  Jun.  06, 2006  (Mallet) replace DRY_MASS by TOTAL_DMASS
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
+!!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -231,11 +231,8 @@ INTEGER :: IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2       ! North-south LB arrays
 
 !-------------------------------------------------------------------------------
 !
-IIB=JPHEXT+1
-IIE=SIZE(PJ,1)-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IIU=SIZE(PJ,1)
-IJB=JPHEXT+1
-IJE=SIZE(PJ,2)-JPHEXT
 IJU=SIZE(PJ,2)
 IKB=JPVEXT+1
 IKE=SIZE(PJ,3)-JPVEXT
@@ -395,17 +392,17 @@ XLSRVM(:,:,IKE+1)=XLSRVM(:,:,IKE)
 CALL EXTRAPOL('E',XLSTHM,XLSRVM)
 !
 IF ( LHORELAX_UVWTH ) THEN
-    NSIZELBX_ll=2*NRIMX+2
-    NSIZELBXU_ll=2*NRIMX+2
-    NSIZELBY_ll=2*NRIMY+2
-    NSIZELBYV_ll=2*NRIMY+2
+    NSIZELBX_ll=2*NRIMX+2*JPHEXT
+    NSIZELBXU_ll=2*NRIMX+2*JPHEXT
+    NSIZELBY_ll=2*NRIMY+2*JPHEXT
+    NSIZELBYV_ll=2*NRIMY+2*JPHEXT
    ALLOCATE(XLBXTHM(IISIZEXF,IJSIZEXF,IKU))
    ALLOCATE(XLBYTHM(IISIZEYF,IJSIZEYF,IKU))
 ELSE
-    NSIZELBX_ll=2
-    NSIZELBXU_ll=4
-    NSIZELBY_ll=2
-    NSIZELBYV_ll=4
+    NSIZELBX_ll=2*JPHEXT     ! 2
+    NSIZELBXU_ll=2*(JPHEXT+1) ! 4
+    NSIZELBY_ll=2*JPHEXT     ! 2
+    NSIZELBYV_ll=2*(JPHEXT+1) ! 4
    ALLOCATE(XLBXTHM(IISIZEX2,IJSIZEX2,IKU))
    ALLOCATE(XLBYTHM(IISIZEY2,IJSIZEY2,IKU))
 END IF
@@ -421,31 +418,31 @@ IF ( NRR > 0 ) THEN
   IF (       LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. LHORELAX_RI    &
         .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. LHORELAX_RH                     &
      ) THEN
-!   ALLOCATE(XLBXRM(2*NRIMX+2,IJU,IKU,NRR))
-!   ALLOCATE(XLBYRM(IIU,2*NRIMY+2,IKU,NRR))
+!   ALLOCATE(XLBXRM(2*NRIMX+2*JPHEXT,IJU,IKU,NRR))
+!   ALLOCATE(XLBYRM(IIU,2*NRIMY+2*JPHEXT,IKU,NRR))
 ! ELSE
 !   ALLOCATE(XLBXRM(2,IJU,IKU,NRR))
 !   ALLOCATE(XLBYRM(IIU,2,IKU,NRR))
-      NSIZELBXR_ll=2*NRIMX+2
-      NSIZELBYR_ll=2*NRIMY+2
+      NSIZELBXR_ll=2*NRIMX+2*JPHEXT
+      NSIZELBYR_ll=2*NRIMY+2*JPHEXT
       ALLOCATE(XLBXRM(IISIZEXF,IJSIZEXF,IKU,NRR))
       ALLOCATE(XLBYRM(IISIZEYF,IJSIZEYF,IKU,NRR))
     ELSE
-      NSIZELBXR_ll=2
-      NSIZELBYR_ll=2
+      NSIZELBXR_ll=2*JPHEXT     !2
+      NSIZELBYR_ll=2*JPHEXT     !2
       ALLOCATE(XLBXRM(IISIZEX2,IJSIZEX2,IKU,NRR))
       ALLOCATE(XLBYRM(IISIZEY2,IJSIZEY2,IKU,NRR))
   ENDIF
   !
   IF (SIZE(XLBXRM) .NE. 0 ) THEN
-     ILBX=SIZE(XLBXRM,1)/2-1
-     XLBXRM(1:ILBX+1,:,:,:)         = XRT(IIB-1:IIB-1+ILBX,:,:,:)
-     XLBXRM(ILBX+2:2*ILBX+2,:,:,:)  = XRT(IIE+1-ILBX:IIE+1,:,:,:)
+     ILBX=SIZE(XLBXRM,1)/2-JPHEXT
+     XLBXRM(1:ILBX+JPHEXT,:,:,:)                  = XRT(1:ILBX+JPHEXT,:,:,:)
+     XLBXRM(ILBX+JPHEXT+1:2*ILBX+2*JPHEXT,:,:,:)  = XRT(IIE+1-ILBX:IIE+JPHEXT,:,:,:)
   ENDIF
   IF (SIZE(XLBYRM) .NE. 0 ) THEN
-     ILBY=SIZE(XLBYRM,2)/2-1
-     XLBYRM(:,1:ILBY+1,:,:)        = XRT(:,IJB-1:IJB-1+ILBY,:,:)
-     XLBYRM(:,ILBY+2:2*ILBY+2,:,:) = XRT(:,IJE+1-ILBY:IJE+1,:,:)
+     ILBY=SIZE(XLBYRM,2)/2-JPHEXT
+     XLBYRM(:,1:ILBY+JPHEXT,:,:)        = XRT(:,1:ILBY+JPHEXT,:,:)
+     XLBYRM(:,ILBY+JPHEXT+1:2*ILBY+2*JPHEXT,:,:) = XRT(:,IJE+1-ILBY:IJE+JPHEXT,:,:)
   ENDIF
 ELSE
    NSIZELBXR_ll=0
@@ -460,20 +457,20 @@ END IF
 ILBX=SIZE(XLBXTHM,1)
 ILBY=SIZE(XLBYTHM,2)
 IF(LWEST_ll() .AND. .NOT. L1D) THEN
-  XLBXTHM(1:NRIMX+1,        :,:)   = XTHT(1:NRIMX+1,        :,:)
-  XLBXRM(1:NRIMX+1,        :,:,:)   = XRT(1:NRIMX+1,        :,:,:)
+  XLBXTHM(1:NRIMX+JPHEXT,        :,:)   = XTHT(1:NRIMX+JPHEXT,        :,:)
+  XLBXRM(1:NRIMX+JPHEXT,        :,:,:)   = XRT(1:NRIMX+JPHEXT,        :,:,:)
 ENDIF
 IF(LEAST_ll() .AND. .NOT. L1D) THEN
-  XLBXTHM(ILBX-NRIMX:ILBX,:,:)   = XTHT(IIU-NRIMX:IIU,    :,:)
-  XLBXRM(ILBX-NRIMX:ILBX,:,:,:)   = XRT(IIU-NRIMX:IIU,    :,:,:)
+  XLBXTHM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:)   = XTHT(IIU-NRIMX-JPHEXT+1:IIU,    :,:)
+  XLBXRM(ILBX-NRIMX-JPHEXT+1:ILBX,:,:,:)   = XRT(IIU-NRIMX-JPHEXT+1:IIU,    :,:,:)
 ENDIF
 IF(LSOUTH_ll() .AND. .NOT. L1D .AND. .NOT. L2D) THEN
-  XLBYTHM(:,1:NRIMY+1,        :)    = XTHT(:,1:NRIMY+1,      :)
-  XLBYRM(:,1:NRIMY+1,        :,:)   = XRT(:,1:NRIMY+1,      :,:)
+  XLBYTHM(:,1:NRIMY+JPHEXT,        :)    = XTHT(:,1:NRIMY+JPHEXT,      :)
+  XLBYRM(:,1:NRIMY+JPHEXT,        :,:)   = XRT(:,1:NRIMY+JPHEXT,      :,:)
 ENDIF
 IF(LNORTH_ll().AND. .NOT. L1D .AND. .NOT. L2D) THEN
-  XLBYTHM(:,ILBY-NRIMY:ILBY,:)    = XTHT(:,IJU-NRIMY:IJU,  :)
-  XLBYRM(:,ILBY-NRIMY:ILBY,:,:)   = XRT(:,IJU-NRIMY:IJU,  :,:)
+  XLBYTHM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:)    = XTHT(:,IJU-NRIMY-JPHEXT+1:IJU,  :)
+  XLBYRM(:,ILBY-NRIMY-JPHEXT+1:ILBY,:,:)   = XRT(:,IJU-NRIMY-JPHEXT+1:IJU,  :,:)
 ENDIF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/vert_coord.f90 b/src/MNH/vert_coord.f90
index 98e32a876..4838d7fc9 100644
--- a/src/MNH/vert_coord.f90
+++ b/src/MNH/vert_coord.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 newsrc 2006/07/27 17:27:30
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_VERT_COORD
@@ -64,6 +63,7 @@ END MODULE MODI_VERT_COORD
 !!      Original        nov 2005
 !!      J.-P. Pinty     jan 2011 Optimisation according to Leuenberger et al,
 !!                               MWR (2010) in the case of SLEVE coord.
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -159,6 +159,9 @@ REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2)) :: ZZSMALL ! small-scale topography
 REAL                                     :: ZH      ! model top
 REAL                                     :: ZEXP    ! Exponent (1.35 is the
                                                     ! optimal value)
+!
+INTEGER :: II,IJ,IK ! loop indices
+!
 !-------------------------------------------------------------------------------
 !
 IIU = SIZE(PZZ,1)
@@ -174,13 +177,24 @@ ZZSMALL(:,:) = PZS(:,:) - PZSMT(:,:)   ! Small-scale topography deviation
 ! Sleve coordinate
 !
 ZEXP = 1.35
-PZZ(:,:,IKB:IKU) = SPREAD(SPREAD(PZHAT(IKB:IKU),1,IIU),2,IJU) + &
-             SPREAD(PZSMT(1:IIU,1:IJU),3,IKU-IKB+1) * SINH( (ZH/PLEN1)**ZEXP     &
-            - (SPREAD(SPREAD(PZHAT(IKB:IKU),1,IIU),2,IJU)/PLEN1)**ZEXP ) / &
-                                                SINH( (ZH/PLEN1)**ZEXP ) + &
-           SPREAD(ZZSMALL(1:IIU,1:IJU),3,IKU-IKB+1) * SINH( (ZH/PLEN2)**ZEXP     & 
-            - (SPREAD(SPREAD(PZHAT(IKB:IKU),1,IIU),2,IJU)/PLEN2)**ZEXP ) / &
-                                                SINH( (ZH/PLEN2)**ZEXP )
+
+DO IK=IKB,IKU ; DO IJ=1,IJU ; DO II=1,IIU
+PZZ(II,IJ,IK) = PZHAT(IK) + PZSMT(II,IJ) * & 
+                     SINH( (ZH/PLEN1)**ZEXP - (PZHAT(IK)/PLEN1)**ZEXP ) / &
+                     SINH( (ZH/PLEN1)**ZEXP ) + &
+                     ZZSMALL(II,IJ) * &
+                     SINH( (ZH/PLEN2)**ZEXP - (PZHAT(IK)/PLEN2)**ZEXP ) / &
+                     SINH( (ZH/PLEN2)**ZEXP )
+END DO ; END DO ; END DO
+
+!!$PZZ(:,:,IKB:IKU) = SPREAD(SPREAD(PZHAT(IKB:IKU),1,IIU),2,IJU) + &
+!!$             SPREAD(PZSMT(1:IIU,1:IJU),3,IKU-IKB+1) * SINH( (ZH/PLEN1)**ZEXP     &
+!!$            - (SPREAD(SPREAD(PZHAT(IKB:IKU),1,IIU),2,IJU)/PLEN1)**ZEXP ) / &
+!!$                                                SINH( (ZH/PLEN1)**ZEXP ) + &
+!!$           SPREAD(ZZSMALL(1:IIU,1:IJU),3,IKU-IKB+1) * SINH( (ZH/PLEN2)**ZEXP     & 
+!!$            - (SPREAD(SPREAD(PZHAT(IKB:IKU),1,IIU),2,IJU)/PLEN2)**ZEXP ) / &
+!!$                                                SINH( (ZH/PLEN2)**ZEXP )
+
 !
 ! Ensure symmetry of layer depths below/above the true surface level
 ! This is essential (!) for a correct surface pressure gradient computation over sloping topography
@@ -249,6 +263,8 @@ INTEGER :: IKE        ! upper physical point
 REAL                                     :: ZH       ! model top
 REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2)) :: ZCOEF    ! 1-zs/H 
 !
+INTEGER :: II,IJ,IK ! loop indices
+!
 !-------------------------------------------------------------------------------
 !
 IIU = SIZE(PZZ,1)
@@ -259,9 +275,14 @@ IKE = IKU - JPVEXT
 ZH = PZHAT(IKE+1)
 !
 ZCOEF(:,:) = 1.-PZS(:,:)/ZH
-PZZ(:,:,:) = SPREAD(SPREAD(PZHAT(1:IKU),1,IIU),2,IJU)  &
-           * SPREAD(ZCOEF(1:IIU,1:IJU),3,IKU)          &
-           + SPREAD(PZS(1:IIU,1:IJU),3,IKU)
+
+!!$PZZ(:,:,:) = SPREAD(SPREAD(PZHAT(1:IKU),1,IIU),2,IJU)  &
+!!$           * SPREAD(ZCOEF(1:IIU,1:IJU),3,IKU)          &
+!!$           + SPREAD(PZS(1:IIU,1:IJU),3,IKU)
+
+DO IK=1,IKU ; DO IJ=1,IJU ; DO II=1,IIU
+   PZZ(II,IJ,IK) = PZHAT(IK) * ZCOEF(II,IJ) + PZS(II,IJ)
+END DO ; END DO ; END DO
 !
 ! This is essential (!) for a correct surface pressure gradient computation over sloping topography
 PZZ(:,:,1) = 2.*PZZ(:,:,2)-PZZ(:,:,3)
diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90
index b735d9489..906d3aab2 100644
--- a/src/MNH/write_lbn.f90
+++ b/src/MNH/write_lbn.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_8 init 2008/06/30 12:13:35
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_WRITE_LB_n
@@ -75,6 +74,7 @@ END MODULE MODI_WRITE_LB_n
 !!                              change of YCOMMENT
 !!     M. Leriche  07/10    add NSV_* for ice phase chemistry
 !!     P. Tulet    09/14    modif SALT
+!!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -109,6 +109,7 @@ USE MODD_DUST
 USE MODD_SALT
 USE MODI_DUSTLFI_n
 USE MODI_SALTLFI_n
+USE MODD_PARAMETERS,      ONLY: JPHEXT
 
 
 !
@@ -173,10 +174,10 @@ CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LHORELAX_UVWTH,IGRID,ILENCH,YCOMMENT,IRES
 !
 !
 ! compute the size of riming zone
-IRIMX =(NSIZELBX_ll-1)/2
-IRIMXU=(NSIZELBXU_ll-1)/2
-IRIMY =(NSIZELBY_ll-1)/2
-IRIMYV=(NSIZELBYV_ll-1)/2
+IRIMX =(NSIZELBX_ll-2*JPHEXT)/2
+IRIMXU=(NSIZELBXU_ll-2*JPHEXT)/2
+IRIMY =(NSIZELBY_ll-2*JPHEXT)/2
+IRIMYV=(NSIZELBYV_ll-2*JPHEXT)/2
 !
 !gathering and writing of the LB fields
 IF(NSIZELBXU_ll /= 0) THEN 
@@ -259,8 +260,8 @@ IF(CTURB/='NONE') THEN
   YRECFM = 'HORELAX_TKE'
   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,LHORELAX_TKE,IGRID,ILENCH,YCOMMENT,IRESP)
 !
-  IRIMX =(NSIZELBXTKE_ll-1)/2
-  IRIMY =(NSIZELBYTKE_ll-1)/2
+  IRIMX =(NSIZELBXTKE_ll-2*JPHEXT)/2
+  IRIMY =(NSIZELBYTKE_ll-2*JPHEXT)/2
 
   IF(NSIZELBXTKE_ll /= 0) THEN
     YRECFM='LBXTKEM'
@@ -297,8 +298,8 @@ IF (NRR >=1) THEN
 !
   GUSER(:)=(/LUSERV,LUSERC,LUSERR,LUSERI,LUSERS,LUSERG,LUSERH/)
   YC(:)=(/"V","C","R","I","S","G","H"/)
-  IRIMX =(NSIZELBXR_ll-1)/2
-  IRIMY =(NSIZELBYR_ll-1)/2
+  IRIMX =(NSIZELBXR_ll-2*JPHEXT)/2
+  IRIMY =(NSIZELBYR_ll-2*JPHEXT)/2
   IRR=0
 ! Loop on moist variables
   DO JRR=1,7
@@ -334,8 +335,8 @@ IF (NSV >=1) THEN
   GHORELAX_SV=ANY ( LHORELAX_SV ) 
   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,GHORELAX_SV,IGRID,ILENCH,YCOMMENT,IRESP)  
   IGRID=1
-  IRIMX =(NSIZELBXSV_ll-1)/2
-  IRIMY =(NSIZELBYSV_ll-1)/2
+  IRIMX =(NSIZELBXSV_ll-2*JPHEXT)/2
+  IRIMY =(NSIZELBYSV_ll-2*JPHEXT)/2
   DO JSV = 1,NSV_USER
     IF(NSIZELBXSV_ll /= 0) THEN
       WRITE(YRECFM,'(A6,I3.3)')'LBXSVM',JSV
diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90
index a4a61b436..925f663b4 100644
--- a/src/MNH/write_lfifm1_for_diag_supp.f90
+++ b/src/MNH/write_lfifm1_for_diag_supp.f90
@@ -80,11 +80,13 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG_SUPP
 !!      October 2011 (C.Lac) FF10MAX  : interpolation of 10m wind
 !!        between 2 Meso-NH levels if 10m is above the first atmospheric level
 !!      2015 : D.Ricard add UM10/VM10 for LCARTESIAN=T cases
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
 !              ------------
 !
+USE MODE_ll
 USE MODD_CST
 USE MODD_PARAMETERS
 USE MODD_CONF_n
@@ -198,11 +200,8 @@ REAL,DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))  :: ZCORIOZ
 IIU=NIMAX+2*JPHEXT
 IJU=NJMAX+2*JPHEXT
 IKU=NKMAX+2*JPVEXT
-IIB=1+JPHEXT
-IJB=1+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
-IIE=IIU-JPHEXT
-IJE=IJU-JPHEXT
 IKE=IKU-JPVEXT
 !
 ALLOCATE(ZWORK21(IIU,IJU))
diff --git a/src/MNH/write_lfifmn_fordiachron.f90 b/src/MNH/write_lfifmn_fordiachron.f90
index 3a9a90144..3f59602ab 100644
--- a/src/MNH/write_lfifmn_fordiachron.f90
+++ b/src/MNH/write_lfifmn_fordiachron.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 diachro 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !     #############################################
       SUBROUTINE WRITE_LFIFMN_FORDIACHRO_n(HFMFILE)
@@ -81,6 +80,7 @@
 !!       J. DURON      24/06/99 add GPACK varaible to disable pack option
 !!       October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
+!!       J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -226,6 +226,13 @@ IGRID=0
 ILENCH=LEN(YCOMMENT)
 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',NKMAX,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+YRECFM='JPHEXT'
+!CALL ELIM(YRECFM)
+YCOMMENT=' '
+IGRID=0
+ILENCH=LEN(YCOMMENT)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'--',JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+!
 !*       1.2    Grid variables :
 !
 IF (.NOT.LCARTESIAN) THEN
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index 051f3e5bd..a4026bf57 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -156,6 +156,7 @@ END MODULE MODI_WRITE_LFIFM_n
 !!       J.escobar & M.Leriche 23/06/2014 Pb with JSA increment versus ini_nsv order initialization 
 !!       P. Tulet      Nov 2014 accumulated moles of aqueous species that fall at the surface
 !!       C.Lac         Dec.2014 writing past wind fields for centred advection
+!!       J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!                   
 !-------------------------------------------------------------------------------
 !
@@ -310,11 +311,8 @@ ALLOCATE(ZWORK3D(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)))
 IIU=NIMAX+2*JPHEXT
 IJU=NJMAX+2*JPHEXT
 IKU=NKMAX+2*JPVEXT
-IIB=1+JPHEXT
-IJB=1+JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
-IIE=IIU-JPHEXT
-IJE=IJU-JPHEXT
 IKE=IKU-JPVEXT
 !
 !*       1.     WRITES IN THE LFI FILE
@@ -388,6 +386,12 @@ IGRID=0
 ILENCH=LEN(YCOMMENT)
 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,NJMAX_ll,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+YRECFM='JPHEXT'
+YCOMMENT=' '
+IGRID=0
+ILENCH=LEN(YCOMMENT)
+CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,JPHEXT,IGRID,ILENCH,YCOMMENT,IRESP)
+!
 YRECFM='KMAX'
 YCOMMENT=' '
 IGRID=0
@@ -476,6 +480,9 @@ IGRID=3
 ILENCH=LEN(YCOMMENT)
 CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XYHAT,IGRID,ILENCH,YCOMMENT,IRESP)
 !
+!print*,'XXHAT=',XXHAT
+!print*,'XYHAT=',XYHAT
+!print*,'XZHAT=',XZHAT
 YRECFM='ZHAT'
 YDIR='--'
 YCOMMENT='height level without orography (METERS)'
diff --git a/src/MNH/write_seriesn.f90 b/src/MNH/write_seriesn.f90
index 20c71e0f5..d2c5ac3a6 100644
--- a/src/MNH/write_seriesn.f90
+++ b/src/MNH/write_seriesn.f90
@@ -6,9 +6,8 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! MASDEV4_7 series 2006/05/18 13:07:25
 !-----------------------------------------------------------------
-!     ###################
+!########################
  MODULE MODI_WRITE_SERIES_n
 !########################
 !
@@ -59,6 +58,7 @@ END MODULE MODI_WRITE_SERIES_n
 !!    -------------
 !!      Original    4/03/2002
 !!      Modification 7/01/2013 Add key for netcdf writing
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90
index 70d98d25d..2606414da 100644
--- a/src/MNH/write_surf_mnh.f90
+++ b/src/MNH/write_surf_mnh.f90
@@ -6,7 +6,6 @@
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
 ! $Source$ $Revision$
-! masdev4_7 BUG1 2007/06/15 17:47:30
 !-----------------------------------------------------------------
 !     #############################################################
       SUBROUTINE WRITE_SURFX0_MNH(HREC,PFIELD,KRESP,HCOMMENT)
@@ -48,6 +47,7 @@
 !!                                       YY, XY, DX, DY in 1D or 2D configuration
 !!        03/09, G.Tanguy              : add write_surft1_mnh
 !!                                       replace ZUNDEF(surfex) by XUNDEF(MNH)
+!!        J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !----------------------------------------------------------------------------
 !
 !*      0.    DECLARATIONS
@@ -747,6 +747,8 @@ USE MODD_CONF_n,           ONLY : CSTORAGE_TYPE
 !
 USE MODI_UNPACK_1D_2D
 !
+USE MODD_PARAMETERS, ONLY : JPHEXT
+!
 IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
@@ -775,8 +777,8 @@ IF( (HREC=='IMAX' .OR. HREC=='JMAX' .OR. HREC=='KMAX') .AND.  &
 !
 ELSE
   IFIELD = KFIELD
-  IF (HREC=='IMAX') IFIELD = NIU_ALL-2
-  IF (HREC=='JMAX') IFIELD = NJU_ALL-2
+  IF (HREC=='IMAX') IFIELD = NIU_ALL-2*JPHEXT
+  IF (HREC=='JMAX') IFIELD = NJU_ALL-2*JPHEXT
   CALL FMWRIT(COUTFILE,HREC,COUT,'--',IFIELD,0,LEN(HCOMMENT),HCOMMENT,KRESP)
 
   IF (KRESP /=0) THEN
diff --git a/src/MNH/zsect.f90 b/src/MNH/zsect.f90
index 5a07aeabd..39367d92d 100644
--- a/src/MNH/zsect.f90
+++ b/src/MNH/zsect.f90
@@ -62,6 +62,7 @@ END MODULE MODI_ZSECT
 !!    -------------
 !!      Original    08/12/94
 !!      J. Escobar  24/03/2012 modif for reprod sum
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -102,10 +103,7 @@ INTEGER                                                  :: IINFO_ll
 !*       1.    Determination of the inner points of the horizontal domain
 !              ----------------------------------------------------------
 !
-IIB=JPHEXT+1
-IIE=SIZE(PVAR,1)-JPHEXT
-IJB=JPHEXT+1
-IJE=SIZE(PVAR,2)-JPHEXT
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 GMASK2D=RESHAPE((/ ((JI>=IIB.AND.JI<=IIE.AND.JJ>=IJB.AND.JJ<=IJE             &
                     ,JI=1,SIZE(PVAR,1)),JJ=1,SIZE(PVAR,2)) /),               &
                     (/ SIZE(PVAR,1),SIZE(PVAR,2) /) )
diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90
index a1f812e5c..da0fe8521 100644
--- a/src/MNH/zsmt_pgd.f90
+++ b/src/MNH/zsmt_pgd.f90
@@ -53,6 +53,7 @@ END MODULE MODI_ZSMT_PGD
 !!    MODIFICATIONS
 !!    -------------
 !!      Original        nov 2005
+!!      J.Escobar  23/06/2015 : correction for JPHEXT<>1
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -103,6 +104,7 @@ INTEGER                           :: JIM, JIP, JJM, JJP
 
 TYPE(LIST_ll)     , POINTER      :: THALO_ll => NULL()     ! halo
 INTEGER                          :: INFO_ll                ! error return code
+INTEGER :: IIB,IIE,IJB,IJE
 !-------------------------------------------------------------------------------
 !
 !*       1.    Read orography in the file
@@ -112,6 +114,7 @@ INTEGER                          :: INFO_ll                ! error return code
 !            ----------
 !
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
+CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !
 !*       1.2 orography
@@ -126,20 +129,24 @@ ALLOCATE(ZMASK(IIU,IJU))
 YRECFM = 'ZS              '
 CALL FMREAD(HFILE,YRECFM,CLUOUT0,'XY',ZZS,IGRID,ILENCH,YCOMMENT,IRESP)
 !
-ZZS(1  ,:) = ZZS(2    ,:)
-ZZS(IIU,:) = ZZS(IIU-1,:)
-ZZS(:,1  ) = ZZS(:,2    )
-ZZS(:,IJU) = ZZS(:,IJU-1)
+DO JI=1,JPHEXT
+ZZS(JI,:) = ZZS(IIB,:)
+ZZS(IIE+JI,:) = ZZS(IIE,:)
+ZZS(:,JI ) = ZZS(:,IJB)
+ZZS(:,IJE+JI) = ZZS(:,IJE)
+ENDDO
 !
 ZFINE_ZS = ZZS
 ZSLEVE_ZS= ZZS
 !
 CALL MNHGET_SURF_PARAM_n(PSEA=ZMASK)
 !
-ZMASK(1  ,:) = ZMASK(2    ,:)
-ZMASK(IIU,:) = ZMASK(IIU-1,:)
-ZMASK(:,1  ) = ZMASK(:,2    )
-ZMASK(:,IJU) = ZMASK(:,IJU-1)
+DO JI=1,JPHEXT
+ZMASK(JI  ,:) = ZMASK(IIB,:)
+ZMASK(IIE+JI,:) = ZMASK(IIE,:)
+ZMASK(:,JI  ) = ZMASK(:,IJB)
+ZMASK(:,IJE+JI) = ZMASK(:,IJE)
+ENDDO
 !
 ZMASK= 1.-ZMASK
 CALL ADD2DFIELD_ll(THALO_ll,ZMASK)
@@ -161,12 +168,12 @@ CALL UPDATE_HALO_ll(THALO_ll,INFO_ll)
 
   DO JN = 1,MAX(KSLEVE,KZSFILTER)
   !
-    DO JJ = 1,IJU
-      DO JI = 1,IIU
-        JIP = MIN(JI+1,IIU)
-        JIM = MAX(JI-1,1  )
-        JJP = MIN(JJ+1,IJU)
-        JJM = MAX(JJ-1,1  )
+   DO JJ = IJB-1,IJE+1
+      DO JI = IIB-1,IIE+1
+        JIP = MIN(JI+1,IIE+1)
+        JIM = MAX(JI-1,IIB-1  )
+        JJP = MIN(JJ+1,IJE+1)
+        JJM = MAX(JJ-1,IJB-1  )
         ZSMOOTH_ZS(JI,JJ) =  ZZS(JI,JJ)                &
            + 0.125* ZMASK(JI,JJ)                       &
             * (     ZMASK(JIM,JJ)   * ZZS(JIM,JJ)      &
-- 
GitLab