diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90
index 0b68891388f7088c75bca9392ca291d6eb8d0c2e..b6d25f3475352a9d2d76ea85e33a140ce6250e7b 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90
@@ -325,9 +325,10 @@ END SUBROUTINE IO_Field_read_byname_X2
 
 SUBROUTINE IO_Field_read_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING)
 !
-USE MODD_IO,           ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-USE MODD_TIMEZ,        ONLY: TIMEZ
+USE MODD_IO,            ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll, ONLY: JPHEXT
+USE MODD_STRUCTURE_ll,  ONLY: ZONE_ll
+USE MODD_TIMEZ,         ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
 #ifdef MNH_GA
@@ -491,6 +492,7 @@ END SUBROUTINE IO_Field_read_byname_X3
 SUBROUTINE IO_Field_read_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP)
 !
 USE MODD_IO,               ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll,    ONLY: JPHEXT
 USE MODD_TIMEZ,            ONLY: TIMEZ
 USE MODD_VAR_ll,           ONLY: MNH_STATUSES_IGNORE
 !
@@ -830,10 +832,6 @@ END SUBROUTINE IO_Field_read_byfield_X3
 
 SUBROUTINE IO_Field_read_byname_X4(TPFILE,HNAME,PFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),        INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),       INTENT(IN)    :: HNAME    ! name of the field to write
 REAL,DIMENSION(:,:,:,:),INTENT(INOUT) :: PFIELD   ! array containing the data field
@@ -854,8 +852,8 @@ END SUBROUTINE IO_Field_read_byname_X4
 
 SUBROUTINE IO_Field_read_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP)
 !
-USE MODD_IO,             ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll,   ONLY: ZONE_ll
+USE MODD_IO,             ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll,  ONLY: JPHEXT
 USE MODD_TIMEZ,          ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
@@ -955,10 +953,6 @@ END SUBROUTINE IO_Field_read_byfield_X4
 
 SUBROUTINE IO_Field_read_byname_X5(TPFILE,HNAME,PFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),         INTENT(IN)    :: HNAME    ! name of the field to write
 REAL,DIMENSION(:,:,:,:,:),INTENT(INOUT) :: PFIELD   ! array containing the data field
@@ -979,8 +973,8 @@ END SUBROUTINE IO_Field_read_byname_X5
 
 SUBROUTINE IO_Field_read_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP)
 !
-USE MODD_IO,             ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll,   ONLY: ZONE_ll
+USE MODD_IO,             ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll,  ONLY: JPHEXT
 USE MODD_TIMEZ,          ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
@@ -1080,10 +1074,6 @@ END SUBROUTINE IO_Field_read_byfield_X5
 
 SUBROUTINE IO_Field_read_byname_X6(TPFILE,HNAME,PFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),            INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),           INTENT(IN)    :: HNAME    ! name of the field to write
 REAL,DIMENSION(:,:,:,:,:,:),INTENT(INOUT) :: PFIELD   ! array containing the data field
@@ -1104,8 +1094,8 @@ END SUBROUTINE IO_Field_read_byname_X6
 
 SUBROUTINE IO_Field_read_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP)
 !
-USE MODD_IO,             ONLY: GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D
-USE MODD_STRUCTURE_ll,   ONLY: ZONE_ll
+USE MODD_IO,             ONLY: GSMONOPROC,ISP,LPACK,L1D,L2D
+USE MODD_PARAMETERS_ll,  ONLY: JPHEXT
 USE MODD_TIMEZ,          ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
@@ -1357,10 +1347,6 @@ END SUBROUTINE IO_Field_read_byfield_N1
 
 SUBROUTINE IO_Field_read_byname_N2(TPFILE,HNAME,KFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: ISNPROC
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-!
-!
 TYPE(TFILEDATA),       INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*),      INTENT(IN)    :: HNAME    ! name of the field to write
 INTEGER,DIMENSION(:,:),INTENT(INOUT) :: KFIELD   ! array containing the data field
@@ -1381,9 +1367,9 @@ END SUBROUTINE IO_Field_read_byname_N2
 
 SUBROUTINE IO_Field_read_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP)
 !
-USE MODD_IO,           ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D
-USE MODD_STRUCTURE_ll, ONLY: ZONE_ll
-USE MODD_TIMEZ,        ONLY: TIMEZ
+USE MODD_IO,            ONLY: GSMONOPROC, ISP, LPACK, L1D, L2D
+USE MODD_PARAMETERS_ll, ONLY: JPHEXT
+USE MODD_TIMEZ,         ONLY: TIMEZ
 !
 USE MODE_ALLOCBUFFER_ll
 USE MODE_SCATTER_ll
@@ -1708,7 +1694,9 @@ END SUBROUTINE IO_Field_read_byfield_C0
 
 
 SUBROUTINE IO_Field_read_byname_T0(TPFILE,HNAME,TPDATA,KRESP)
-!
+
+use modd_type_date, only: DATE_TIME
+
 TYPE(TFILEDATA),  INTENT(IN)    :: TPFILE
 CHARACTER(LEN=*), INTENT(IN)    :: HNAME    ! name of the field to write
 TYPE (DATE_TIME), INTENT(INOUT) :: TPDATA   ! array containing the data field
@@ -1729,7 +1717,8 @@ END SUBROUTINE IO_Field_read_byname_T0
 
 SUBROUTINE IO_Field_read_byfield_T0(TPFILE,TPFIELD,TPDATA,KRESP)
 !
-USE MODD_IO, ONLY: ISP, GSMONOPROC
+use modd_io,        only: ISP, GSMONOPROC
+use modd_type_date, only: DATE_TIME
 !
 TYPE(TFILEDATA),  INTENT(IN)    :: TPFILE
 TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD
diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
index 8d44c988922528505514f7691eb5d1d2edf1ec74..4a1c58a87c311b1ef6c4eadfc9eb69fb27f766a9 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
@@ -18,15 +18,17 @@
 
 MODULE MODE_IO_FIELD_WRITE
 
-  USE MODD_IO,        ONLY: TFILEDATA, TOUTBAK
+  USE MODD_IO,         ONLY: TFILEDATA, TOUTBAK
   USE MODD_MPIF
-  use modd_precision, only: MNHINT_MPI, MNHREAL_MPI, MNHTIME
+  use modd_parameters, only: NMNHNAMELGTMAX
+  use modd_precision,  only: MNHINT_MPI, MNHREAL_MPI, MNHTIME
 
   USE MODE_FIELD
   USE MODE_IO_WRITE_LFI
 #if defined(MNH_IOCDF4)
   USE MODE_IO_WRITE_NC4
 #endif
+  use mode_msg
 
   IMPLICIT NONE 
 
@@ -2264,6 +2266,7 @@ CONTAINS
 
 
   SUBROUTINE IO_Field_write_byname_T0(TPFILE,HNAME,TFIELD,KRESP)
+    USE MODD_TYPE_DATE, only: DATE_TIME
     !
     !*      0.1   Declarations of arguments
     !
@@ -2290,7 +2293,7 @@ CONTAINS
 
   SUBROUTINE IO_Field_write_byfield_T0(TPFILE,TPFIELD,TFIELD,KRESP)
     USE MODD_IO, ONLY: GSMONOPROC, ISP
-    USE MODD_TYPE_DATE
+    USE MODD_TYPE_DATE, only: DATE_TIME
     !
     !*      0.    DECLARATIONS
     !             ------------
diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90
index 1d3e057e3b5745ca58136806b5248925ff85f90d..8774b548f230f23bd8ac2e48bfed340df491a843 100644
--- a/src/MNH/goto_model_wrapper.f90
+++ b/src/MNH/goto_model_wrapper.f90
@@ -118,6 +118,7 @@ USE MODD_ADVFRC_n
 USE MODD_CH_PRODLOSSTOT_n
 USE MODD_CH_BUDGET_n
 USE MODE_FIELD
+use mode_msg
 !
 IMPLICIT NONE 
 !
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 20aa0f4647beb92f0df37401df66e993e28eb2f0..6655d27e109d94115783b87e80f9edc5251e5616 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -240,6 +240,7 @@ USE MODE_IO_FIELD_WRITE,   only: IO_Field_write
 USE MODE_IO_FILE,          only: IO_File_close, IO_File_open
 USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list
 USE MODE_ll
+use mode_msg
 USE MODE_THERMO
 USE MODE_TOOLS,            ONLY: UPCASE
 USE MODE_MODELN_HANDLER