diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
index 7cb79db508b6720f8c1bfd0fda4c3561749d016d..86da117ed5743c6b1d1d05930909fccdd400e71a 100644
--- a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
+++ b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
@@ -13,6 +13,7 @@
 !!    -------------
 !     Original 01/05/98
 !     Juan 19/08/2005:  modification INTENT -> INTENT(INOUT)
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
 
 !
@@ -48,9 +49,9 @@
        END SUBROUTINE DEL_FIELD2_ll
 
 !
-!!     ################################################
-       SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD )
-!!     ################################################
+!!     #######################################################
+       SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME )
+!!     #######################################################
 !
   USE MODE_ARGSLIST_ll, ONLY : E_ADD1DFIELD_ll => ADD1DFIELD_ll
 !
@@ -59,14 +60,15 @@
   CHARACTER(LEN=1), INTENT(IN) :: HDIR
   TYPE(LIST1D_ll), POINTER     :: TPLIST
   REAL, DIMENSION(:), TARGET   :: PFIELD
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
-  CALL E_ADD1DFIELD_ll( HDIR, TPLIST, PFIELD )
+  CALL E_ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME )
 !
        END SUBROUTINE ADD1DFIELD_ll
 !
-!!     ##########################################
-       SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD )
-!!     ##########################################
+!!     #################################################
+       SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME )
+!!     #################################################
 !
   USE MODE_ARGSLIST_ll, ONLY : E_ADD2DFIELD_ll => ADD2DFIELD_ll
 !
@@ -74,14 +76,15 @@
 !
   TYPE(LIST_ll), POINTER       :: TPLIST
   REAL, DIMENSION(:,:), TARGET :: PFIELD
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
-  CALL E_ADD2DFIELD_ll( TPLIST, PFIELD )
+  CALL E_ADD2DFIELD_ll( TPLIST, PFIELD, HNAME )
 !
        END SUBROUTINE ADD2DFIELD_ll
 !
-!!     ##########################################
-       SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD )
-!!     ##########################################
+!!     #################################################
+       SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME )
+!!     #################################################
 !
   USE MODE_ARGSLIST_ll, ONLY : E_ADD3DFIELD_ll => ADD3DFIELD_ll
 !
@@ -89,11 +92,28 @@
 !
   TYPE(LIST_ll), POINTER         :: TPLIST
   REAL, DIMENSION(:,:,:), TARGET :: PFIELD
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
-  CALL E_ADD3DFIELD_ll( TPLIST, PFIELD )
+  CALL E_ADD3DFIELD_ll( TPLIST, PFIELD, HNAME )
 !
        END SUBROUTINE ADD3DFIELD_ll
 !
+!!     #################################################
+       SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME )
+!!     #################################################
+!
+  USE MODE_ARGSLIST_ll, ONLY : E_ADD4DFIELD_ll => ADD4DFIELD_ll
+!
+  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+!
+  type(list_ll), pointer   :: tplist   ! list of fields
+  real, dimension(:,:,:,:),   intent(in) :: pfield   ! field to be added to the list of fields
+  character(len=*), intent(in) :: hname ! name of the field to be added
+!
+  CALL E_ADD4DFIELD_ll( TPLIST, PFIELD, HNAME )
+!
+       END SUBROUTINE ADD4DFIELD_ll
+!
 !!     #################################################
        SUBROUTINE DEL1DFIELD_ll( TPLIST, PFIELD, KINFO )
 !!     #################################################
diff --git a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90
index 0d5bf289d1b419cef4bce48fa948e139a2fad748..f21707ecc22db75778043e6484f0f0b23911fd5b 100644
--- a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90
+++ b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90
@@ -1,17 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
 !      #######################
        MODULE MODD_ARGSLIST_ll
 !      #######################
@@ -42,11 +33,16 @@
 !!    Modifications
 !     -------------
 !!    Original 04/05/98
+!  P. Wautelet 20/05/2019: add cname field + set initial values
 !
 !-------------------------------------------------------------------------------
 !
-  USE MODD_STRUCTURE2_ll, ONLY : HALO2_ll
-!
+ USE MODD_STRUCTURE2_ll, ONLY : HALO2_ll
+
+implicit none
+
+integer,parameter :: NLISTTYPENAMESIZE = 32
+
 !     ############
       TYPE LIST_ll
 !     ############
@@ -61,14 +57,18 @@
 !
 !-------------------------------------------------------------------------------
 !
-  INTEGER :: NCARD
-  LOGICAL :: L1D, L2D, L3D
-!
-  REAL, DIMENSION(:,:,:), POINTER :: ARRAY3D
-  REAL, DIMENSION(:,:), POINTER :: ARRAY2D
-  REAL, DIMENSION(:), POINTER :: ARRAY1D
+  INTEGER :: NCARD = -1
+  LOGICAL :: L1D = .false.
+  LOGICAL :: L2D = .false.
+  LOGICAL :: L3D = .false.
+
+  character(len=NLISTTYPENAMESIZE) :: cname = 'UNKNOWN'
+
+  REAL, DIMENSION(:),     POINTER :: ARRAY1D => null()
+  REAL, DIMENSION(:,:),   POINTER :: ARRAY2D => null()
+  REAL, DIMENSION(:,:,:), POINTER :: ARRAY3D => null()
 !
-  TYPE(LIST_ll), POINTER :: NEXT
+  TYPE(LIST_ll), POINTER :: NEXT => null()
 !
       END TYPE LIST_ll
 !
@@ -87,12 +87,14 @@
 !
 !-------------------------------------------------------------------------------
 !
-  INTEGER :: NCARD
-!
-  REAL, DIMENSION(:), POINTER :: ARRAY1D
-  CHARACTER(LEN=1) :: CDIR
+  INTEGER :: NCARD = -1
+
+  character(len=NLISTTYPENAMESIZE) :: cname = 'UNKNOWN'
+
+  REAL, DIMENSION(:), POINTER :: ARRAY1D => null()
+  CHARACTER(LEN=1) :: CDIR = ' '
 !
-  TYPE(LIST1D_ll), POINTER :: NEXT
+  TYPE(LIST1D_ll), POINTER :: NEXT => null()
 !
       END TYPE LIST1D_ll
 !
@@ -111,11 +113,11 @@
 !
 !-------------------------------------------------------------------------------
 !
-  INTEGER :: NCARD
+  INTEGER :: NCARD = -1
 !
-  TYPE(HALO2_ll), POINTER :: HALO2
+  TYPE(HALO2_ll), POINTER :: HALO2 => null()
 !
-  TYPE(HALO2LIST_ll), POINTER :: NEXT
+  TYPE(HALO2LIST_ll), POINTER :: NEXT => null()
 !
       END TYPE HALO2LIST_ll
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90
index c88faab8c9d573f85b7d552aed9ca4050fa1f5df..b42ab1c2a6ebd282856ac210b8a5e55247209f44 100644
--- a/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90
@@ -48,6 +48,7 @@
 !!    -------------
 !     Original    May 19, 1998
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !
 !-------------------------------------------------------------------------------
 !
@@ -57,9 +58,9 @@
 !
   CONTAINS
 !
-!!    ##############################################
-      SUBROUTINE ADD1DFIELD_ll(HDIR, TPLIST, PFIELD)
-!!    ##############################################
+!!    #####################################################
+      SUBROUTINE ADD1DFIELD_ll(HDIR, TPLIST, PFIELD, HNAME)
+!!    #####################################################
 !
 !!****  *ADD1DFIELD_ll* -
 !
@@ -97,10 +98,11 @@
 
   IMPLICIT NONE
 !
+  CHARACTER(LEN=1), INTENT(IN) :: HDIR ! direction of the field ("X" or "Y")
   TYPE(LIST1D_ll), POINTER     :: TPLIST ! list of fields
   REAL, DIMENSION(:), TARGET   :: PFIELD ! field to be added
                                          ! to the list of fields
-  CHARACTER(LEN=1), INTENT(IN) :: HDIR ! direction of the field ("X" or "Y")
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
 !*       0.2   declarations of local variables
 !
@@ -125,6 +127,7 @@
     NULLIFY(TPLIST%NEXT)
     TPLIST%NCARD = 1
     TPLIST%CDIR = HDIR
+    tplist%cname = hname
 !
   ELSE 
 !
@@ -144,6 +147,7 @@
     TZLIST%ARRAY1D => PFIELD
     TZLIST%NCARD = 0
     TZLIST%CDIR = HDIR
+    tzlist%cname = hname
     NULLIFY(TZLIST%NEXT)
 !
     TPLIST%NCARD = TPLIST%NCARD + 1
@@ -154,9 +158,9 @@
 !
       END SUBROUTINE ADD1DFIELD_ll
 !
-!!    ########################################
-      SUBROUTINE ADD2DFIELD_ll(TPLIST, PFIELD)
-!!    ########################################
+!!    ###############################################
+      SUBROUTINE ADD2DFIELD_ll(TPLIST, PFIELD, HNAME)
+!!    ###############################################
 !
 !!****  *ADD2DFIELD_ll* -
 !
@@ -196,6 +200,7 @@
   TYPE(LIST_ll), POINTER       :: TPLIST ! list of fields
   REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be added
                                          ! to the list of fields
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
 !*       0.2   declarations of local variables
 !
@@ -213,6 +218,7 @@
     TPLIST%ARRAY2D => PFIELD
     NULLIFY(TPLIST%NEXT)
     TPLIST%NCARD = 1
+    tplist%cname  = hname
     TPLIST%L1D = .FALSE.
     TPLIST%L2D = .TRUE.
     TPLIST%L3D = .FALSE.
@@ -235,6 +241,7 @@
     NULLIFY(TZLIST%ARRAY3D)
     TZLIST%ARRAY2D => PFIELD
     TZLIST%NCARD = 0
+    tzlist%cname = hname
     TZLIST%L1D = .FALSE.
     TZLIST%L2D = .TRUE.
     TZLIST%L3D = .FALSE.
@@ -248,9 +255,9 @@
 !
       END SUBROUTINE ADD2DFIELD_ll
 !
-!!    ########################################
-      SUBROUTINE ADD3DFIELD_ll(TPLIST, PFIELD)
-!!    ########################################
+!!    ###############################################
+      SUBROUTINE ADD3DFIELD_ll(TPLIST, PFIELD, HNAME)
+!!    ###############################################
 !
 !!****  *ADD3DFIELD_ll* -
 !
@@ -290,6 +297,7 @@
   TYPE(LIST_ll), POINTER         :: TPLIST   ! list of fields
   REAL, DIMENSION(:,:,:), TARGET :: PFIELD   ! field to be added to the list
 !                                              of fields
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
 !*       0.2   declarations of local variables
 !
@@ -308,6 +316,7 @@
     TPLIST%ARRAY3D => PFIELD
     NULLIFY(TPLIST%NEXT)
     TPLIST%NCARD = 1
+    tplist%cname = hname
     TPLIST%L1D = .FALSE.
     TPLIST%L2D = .FALSE.
     TPLIST%L3D = .TRUE.
@@ -331,6 +340,7 @@
     NULLIFY(TZLIST%ARRAY2D)
     TZLIST%ARRAY3D => PFIELD
     TZLIST%NCARD = 0
+    tzlist%cname = hname
     TZLIST%L1D = .FALSE.
     TZLIST%L2D = .FALSE.
     TZLIST%L3D = .TRUE.
@@ -343,7 +353,66 @@
 !-------------------------------------------------------------------------------
 !
       END SUBROUTINE ADD3DFIELD_ll
+
+
+
+!################################################
+subroutine add4dfield_ll( tplist, pfield, hname )
+!################################################
+!
+!!****  *ADD3DFIELD_ll* -
+!
+!!    Purpose
+!!    -------
+!     This routine is used to add a 4D field (PFIELD) to a list of
+!     4D fields (TPLIST).
+!     For the moment, it is split in a series of 3D fields
+!
+!!    Reference
+!!    ---------
+!
+!     User interface for the Meso-NH parallel package
+!
+!!    Implicit Arguments
+!!    ------------------
+!
+!     Module MODD_ARGSLIST :
+!         LIST_ll : list of fields
+!
+!!    Author
+!!    ------
+!
+!  P. Wautelet 20/05/2019
+!
+!!    Modifications
+!    -------------
+!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
 !
+!*       0.1   declarations of arguments
+!
+  implicit none
+!
+  type(list_ll), pointer   :: tplist   ! list of fields
+  real, dimension(:,:,:,:),   intent(in) :: pfield   ! field to be added to the list of fields
+  character(len=*), intent(in) :: hname ! name of the field to be added
+!
+!*       0.2   declarations of local variables
+!
+  character(len=6)              :: ynum
+  integer                       :: ji
+
+  do ji = 1, size( pfield, 4 )
+    write ( ynum, '( I6.3 )' ) ji
+    call add3dfield_ll(tplist, pfield(:,:,:,ji), trim( hname )//':'//trim( adjustl( ynum ) ) )
+  end do
+
+end subroutine add4dfield_ll
+
+
+
 !!    ###############################################
       SUBROUTINE DEL1DFIELD_ll(TPLIST, PFIELD, KINFO)
 !!    ###############################################
diff --git a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
index 1757a95d569e47ec4a0b6e9d004b0b4e8b49d07b..add90dea674bf1dadc69044e7329c0bd211d3a0d 100644
--- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
@@ -6,6 +6,7 @@
 ! Modifications:
 !  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !  Philippe 12/01/2018: renamed dimension variables NKMAX_ll->NKMAX_TMP_ll in modd_dim_ll to prevent mix-up with modd_dimn
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
 
 !     ########################
@@ -900,7 +901,7 @@ INTEGER                                               :: NB_REQ
 !              -----------
 !
   NULLIFY(TZLIST)
-  CALL ADD3DFIELD_ll(TZLIST,PFIELDOUT)
+  CALL ADD3DFIELD_ll( TZLIST, PFIELDOUT, 'REMAP_X_2WAY_ll::PFIELDOUT' )
 !
   CALL UPDATE_HALO_ll(TZLIST, KINFO)
   CALL CLEANLIST_ll(TZLIST)
diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90
index 805e607bc4feb4190007d10ce5003fd6bb328221..df07aafd0efd670325b161dc2f29b47c427cfc57 100644
--- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90
@@ -5,6 +5,7 @@
 !-----------------------------------------------------------------
 ! Modifications:
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
 
 !     #################
@@ -209,7 +210,7 @@
 !
   DO WHILE (ASSOCIATED(TZCHILD))
     IF (TZCHILD%NWIDTH == ICOARSE) THEN
-      CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD)
+      CALL ADD2DFIELD_ll( TZCHILD%TLIST, PTFIELD, 'SET_LB2DFIELD_ll::PTFIELD' )
       EXIT
     ENDIF
     TZCHILD => TZCHILD%TNEXT
@@ -217,7 +218,7 @@
 !
   DO WHILE (ASSOCIATED(TZPAR)) 
     IF (ICOARSE == TZPAR%NWIDTH) THEN
-      CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD)
+      CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD, 'SET_LB2DFIELD_ll::P2DFIELD' )
       EXIT
     ENDIF
     TZPAR => TZPAR%TNEXT
@@ -373,7 +374,7 @@
 !
   DO WHILE (ASSOCIATED(TZCHILD))
     IF (TZCHILD%NWIDTH == ICOARSE) THEN
-      CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD)
+      CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD, 'SET_LB3DFIELD_ll::PTFIELD' )
       EXIT
     ENDIF
     TZCHILD => TZCHILD%TNEXT
@@ -381,7 +382,7 @@
 !
   DO WHILE (ASSOCIATED(TZPAR)) 
     IF (ICOARSE == TZPAR%NWIDTH) THEN
-      CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD)
+      CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD, 'SET_LB3DFIELD_ll::P3DFIELD' )
       EXIT
     ENDIF
     TZPAR => TZPAR%TNEXT
diff --git a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90
index 0af00e6c6d1cc7aee2b52b91264a799da758fe4a..5c0a214647c187c66834f224504bfb8495187782 100644
--- a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90
@@ -5,6 +5,7 @@
 !-----------------------------------------------------------------
 ! Modifications:
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
 
 !     #################
@@ -169,9 +170,9 @@
 !
 !*       3.    Put P2DFIELD and PTFIELD in the list of fields
 !
-   CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD)
+   CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD,  'SET_LS2DFIELD_1WAY_ll::PTFIELD'  )
 !
-   CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD)
+   CALL ADD2DFIELD_ll(TZPAR%TLIST,   P2DFIELD, 'SET_LS2DFIELD_1WAY_ll::P2DFIELD' )
 !
 !-------------------------------------------------------------------------------
 !
@@ -287,9 +288,9 @@
 !
 !*       3.    Put P3DFIELD and PTFIELD in the list of fields
 !
-   CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD)
+   CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD,  'SET_LS3DFIELD_1WAY_ll::PTFIELD'  )
 !
-   CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD)
+   CALL ADD3DFIELD_ll(TZPAR%TLIST,   P3DFIELD, 'SET_LS3DFIELD_1WAY_ll::P3DFIELD' )
 !
 !-------------------------------------------------------------------------------
 !
@@ -463,9 +464,9 @@
 !
 !*       2.   Put P2DFIELD and PTFIELD in the list of fields
 !
-   CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD)
+   CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD,  'SET_LS2DFIELD_2WAY_ll::PTFIELD'  )
 !
-   CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD)
+   CALL ADD2DFIELD_ll(TZPAR%TLIST,   P2DFIELD, 'SET_LS2DFIELD_2WAY_ll::P2DFIELD' )
 !
 !-------------------------------------------------------------------------------
 !
@@ -551,9 +552,9 @@
 !
 !*       2.   Put P3DFIELD and PTFIELD in the list of fields
 !
-   CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD)
+   CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD,  'SET_LS3DFIELD_2WAY_ll::PTFIELD'  )
 !
-   CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD)
+   CALL ADD3DFIELD_ll(TZPAR%TLIST,   P3DFIELD, 'SET_LS3DFIELD_2WAY_ll::P3DFIELD' )
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 b/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90
index b854f3df20d20cdc0daaafcde03accfcd7098a00..043aa02d0f8ad3fd05de721e2429d5f4bff5969d 100644
--- a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90
+++ b/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90
@@ -1,26 +1,20 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
+! Modifications:
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
 !     #########################
       MODULE MODI_ADDnDFIELD_ll
 !     #########################
 !
 INTERFACE
 !
-!!     ################################################
-       SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD )
-!!     ################################################
+!!     #######################################################
+       SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME )
+!!     #######################################################
 !
   USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll
 !
@@ -29,33 +23,48 @@ INTERFACE
   TYPE(LIST1D_ll), POINTER     :: TPLIST ! list of fields
   REAL, DIMENSION(:), TARGET   :: PFIELD ! field to be added 
                                          ! to the list of fields
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
        END SUBROUTINE ADD1DFIELD_ll
 !
-!!     ##########################################
-       SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD )
-!!     ##########################################
+!!     #################################################
+       SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME )
+!!     #################################################
 !
   USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 !
   TYPE(LIST_ll), POINTER       :: TPLIST ! list of fields
   REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be added
                                          ! to the list of fields
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
        END SUBROUTINE ADD2DFIELD_ll
 !
-!!     ##########################################
-       SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD )
-!!     ##########################################
+!!     #################################################
+       SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME )
+!!     #################################################
 !
   USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 !
   TYPE(LIST_ll), POINTER         :: TPLIST   ! list of fields
   REAL, DIMENSION(:,:,:), TARGET :: PFIELD   ! field to be added
                                              ! to the list of fields
+  character(len=*), intent(in) :: HNAME ! Name of the field to be added
 !
        END SUBROUTINE ADD3DFIELD_ll
 !
+!!     #################################################
+       SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME )
+!!     #################################################
+!
+  USE MODD_ARGSLIST_ll, ONLY : LIST_ll
+!
+  type(list_ll), pointer   :: tplist   ! list of fields
+  real, dimension(:,:,:,:),   intent(in) :: pfield   ! field to be added to the list of fields
+  character(len=*), intent(in) :: hname ! name of the field to be added
+!
+       END SUBROUTINE ADD4DFIELD_ll
+!
 END INTERFACE
 !
 END MODULE MODI_ADDnDFIELD_ll
diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 3a69a99d0249cc0ebea90194670129390ed0231e..b899c0ce0556d0e8d96eefeaa2f055d23fe84bcb 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -145,6 +145,7 @@ END MODULE MODI_ADVECTION_METSV
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!                  07/2017  (V. Vionnet)  : add advection of 2D variables at
 !!                                      the surface for the blowing snow scheme
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -649,19 +650,11 @@ END IF
 !
 NULLIFY(TZFIELDS0_ll)
 !!$IF(NHALO == 1) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRTHS_OTHER)
-  IF (GTKE) CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRTKES_OTHER)
-  DO JR=1,KRR
-    CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRRS_OTHER(:,:,:,JR))
-  END DO
-  DO JSV=1,KSV
-    CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRSVS_OTHER(:,:,:,JSV))
-  END DO
-  IF(LBLOWSNOW) THEN
-    DO JSV = 1, (NBLOWSNOW_2D)  
-      CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRSNWCS_OTHER(:,:,:,JSV))
-    END DO
-  END IF
+  CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRTHS_OTHER, 'ADVECTION_METSV::ZRTHS_OTHER' )
+  IF (GTKE) CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRTKES_OTHER, 'ADVECTION_METSV::ZRTKES_OTHER' )
+  IF ( KRR>0 )  CALL ADD4DFIELD_ll( TZFIELDS0_ll, ZRRS_OTHER(:,:,:,1:KRR),             'ADVECTION_METSV::ZRRS_OTHER'    )
+  IF ( KSV>0 )  CALL ADD4DFIELD_ll( TZFIELDS0_ll, ZRSVS_OTHER(:,:,:,1:KSV),            'ADVECTION_METSV::ZRSVS_OTHER'   )
+  IF(LBLOWSNOW) CALL ADD4DFIELD_ll( TZFIELDS0_ll, ZRSNWCS_OTHER(:,:,:,1:NBLOWSNOW_2D), 'ADVECTION_METSV::ZRSNWCS_OTHER' )
   CALL UPDATE_HALO_ll(TZFIELDS0_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS0_ll)
 !!$END IF
@@ -811,19 +804,11 @@ DO JSPL=1,KSPLIT
 !
    NULLIFY(TZFIELDS1_ll)
 !!$   IF(NHALO == 1) THEN
-    CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZTH)
-    IF (GTKE) CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZTKE)
-    DO JR=1,KRR
-      CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZR(:,:,:,JR))
-    END DO
-    DO JSV=1,KSV
-      CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZSV(:,:,:,JSV))
-    END DO
-    IF(LBLOWSNOW) THEN
-       DO JSV=1,(NBLOWSNOW_2D)
-         CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZSNWC(:,:,:,JSV))
-       END DO
-    END IF
+    CALL ADD3DFIELD_ll( TZFIELDS1_ll, ZTH, 'ZTH' )
+    IF (GTKE)        CALL ADD3DFIELD_ll( TZFIELDS1_ll, ZTKE,                        'ADVECTION_METSV::ZTKE' )
+    IF ( KRR>0 )     CALL ADD4DFIELD_ll( TZFIELDS1_ll, ZR (:,:,:,1:KRR),            'ADVECTION_METSV::ZR'    )
+    IF ( KSV>0 )     CALL ADD4DFIELD_ll( TZFIELDS1_ll, ZSV(:,:,:,1:KSV),            'ADVECTION_METSV::ZSV'   )
+    IF ( LBLOWSNOW ) CALL ADD4DFIELD_ll( TZFIELDS1_ll, ZSNWC(:,:,:,1:NBLOWSNOW_2D), 'ADVECTION_METSV::ZSNWC' )
     CALL UPDATE_HALO_ll(TZFIELDS1_ll,IINFO_ll)
     CALL CLEANLIST_ll(TZFIELDS1_ll)
 !!$   END IF
diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90
index 468e7e8b05975d6a3cdb4133cf4527b2364d24cc..30b9f621ae84778631cc439a661040683460acb7 100644
--- a/src/MNH/advection_uvw.f90
+++ b/src/MNH/advection_uvw.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     #########################
@@ -94,6 +94,7 @@ END MODULE MODI_ADVECTION_UVW
 !!                  J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
 !!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!                  C.LAC 10/2016 : Add OSPLIT_WENO
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -294,8 +295,8 @@ ZRWT = PWT(:,:,:) * ZMZM_RHODJ
 !
 NULLIFY(TZFIELD_ll)
 !!$IF(NHALO == 1) THEN
-  CALL ADD3DFIELD_ll(TZFIELD_ll, ZRUT)
-  CALL ADD3DFIELD_ll(TZFIELD_ll, ZRVT)
+  CALL ADD3DFIELD_ll( TZFIELD_ll, ZRUT, 'ADVECTION_UVW::ZRUT' )
+  CALL ADD3DFIELD_ll( TZFIELD_ll, ZRVT, 'ADVECTION_UVW::ZRVT' )
   CALL UPDATE_HALO_ll(TZFIELD_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELD_ll)
 !!$END IF
@@ -311,9 +312,9 @@ CALL CONTRAV_DEVICE (HLBCX,HLBCY,ZRUT,ZRVT,ZRWT,PDXX,PDYY,PDZZ,PDZX,PDZY,ZRUCT,Z
 !
 NULLIFY(TZFIELDS_ll)
 !!$IF(NHALO == 1) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRWCT)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRUCT)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRVCT)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRWCT, 'ADVECTION_UVW::ZRWCT' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRUCT, 'ADVECTION_UVW::ZRUCT' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRVCT, 'ADVECTION_UVW::ZRVCT' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
 !!$END IF
@@ -352,9 +353,9 @@ ZRWS_OTHER(:,:,IKE+1) = 0.
 !$acc update self(ZRUS_OTHER,ZRVS_OTHER,ZRWS_OTHER)
 NULLIFY(TZFIELDS0_ll)
 !!$IF(NHALO == 1) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRUS_OTHER)
-  CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRVS_OTHER)
-  CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRWS_OTHER)
+  CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRUS_OTHER, 'ADVECTION_UVW::ZRUS_OTHER' )
+  CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRVS_OTHER, 'ADVECTION_UVW::ZRVS_OTHER' )
+  CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRWS_OTHER, 'ADVECTION_UVW::ZRWS_OTHER' )
   CALL UPDATE_HALO_ll(TZFIELDS0_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS0_ll)
 !!$END IF
diff --git a/src/MNH/advection_uvw_cen.f90 b/src/MNH/advection_uvw_cen.f90
index f7531180008609c23595127a615b95a60347a42d..8004ee8a67dd0303ba83a869c06ec87adca8a471 100644
--- a/src/MNH/advection_uvw_cen.f90
+++ b/src/MNH/advection_uvw_cen.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     #####################
@@ -91,8 +91,8 @@ END MODULE MODI_ADVECTION_UVW_CEN
 !!      Original    01/2013  (from ADVECTION routine)
 !!      Modif
 !!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !
-!!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -263,9 +263,9 @@ END IF
 !
 NULLIFY(TZFIELDS_ll)
 !!$IF(NHALO == 1) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRWCT)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRUCT)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRVCT)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRWCT, 'ADVECTION_UVW_CEN::ZRWCT' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRUCT, 'ADVECTION_UVW_CEN::ZRUCT' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRVCT, 'ADVECTION_UVW_CEN::ZRVCT' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
   !$acc update device(ZRUCT, ZRVCT, ZRWCT)
diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90
index 547384163f0428de088a68617036ad911b1e0c97..bd415b6236585571cff996408a2b5a103fe5047e 100644
--- a/src/MNH/advecuvw_rk.f90
+++ b/src/MNH/advecuvw_rk.f90
@@ -128,6 +128,7 @@ END MODULE MODI_ADVECUVW_RK
 !!                  F.Auguste and C.Lac : 08/16 : CEN4TH with RKC4
 !!                  C.Lac   10/16 : Correction on RK loop
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!
 !-------------------------------------------------------------------------------
 !
@@ -196,7 +197,8 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRUS_OTHER , PRVS_OTHER, PRWS_OTHER
 !*       0.2   declarations of local variables
 !
 !
-!  
+!
+character(len=3)    :: ynum
 INTEGER             :: IKE       ! indice K End       in z direction
 !
 REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZUT, ZVT, ZWT
@@ -402,10 +404,10 @@ CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZVT, PVT, 'V' )
 CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZWT, PWT, 'W' )
 #endif
 !
-NULLIFY(TZFIELDMT_ll)    
-CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZUT)
-CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZVT)
-CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZWT)
+NULLIFY(TZFIELDMT_ll)
+CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZUT, 'ADVECUVW_RK::ZUT' )
+CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZVT, 'ADVECUVW_RK::ZVT' )
+CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZWT, 'ADVECUVW_RK::ZWT' )
 INBVAR = 3
 CALL INIT_HALO2_ll(TZHALO2MT_ll,INBVAR,SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3))
 !
@@ -459,9 +461,10 @@ ZRWS = 0.
 !
      NULLIFY(TZFIELDS4_ll)
 !
-    CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRUS(:,:,:,JS))
-    CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRVS(:,:,:,JS))
-    CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRWS(:,:,:,JS))
+    write ( ynum, '( I3 )' ) js
+    CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRUS(:,:,:,JS), 'ADVECUVW_RK::ZRUS(:,:,:,'//trim( adjustl( ynum ) )//')' )
+    CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRVS(:,:,:,JS), 'ADVECUVW_RK::ZRVS(:,:,:,'//trim( adjustl( ynum ) )//')' )
+    CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRWS(:,:,:,JS), 'ADVECUVW_RK::ZRWS(:,:,:,'//trim( adjustl( ynum ) )//')' )
     CALL UPDATE_HALO_ll(TZFIELDS4_ll,IINFO_ll)
     CALL CLEANLIST_ll(TZFIELDS4_ll)
 !$acc update device(ZRUS(:,:,:,JS),ZRVS(:,:,:,JS),ZRWS(:,:,:,JS))
diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90
index e5aa55cfe1125bbc0544e16010d78eb13fda0f78..21c83f052591ee0cf8e0540429d0a661075c3a58 100644
--- a/src/MNH/anel_balancen.f90
+++ b/src/MNH/anel_balancen.f90
@@ -101,6 +101,7 @@ END MODULE MODI_ANEL_BALANCE_n
 !!      M.Moge      08/2015   removing UPDATE_HALO_ll(XRHODJ) + EXTRAPOL on ZRU and ZRV in part 3.1
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -223,7 +224,7 @@ CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen1-after TRIDZ::XRHODJ",PRECISION)
 !*       3.1     multiplication by RHODJ
 !
 !$20140710 UPHALO on XRHODJ
-!CALL ADD3DFIELD_ll(TZFIELDS_ll,XRHODJ)
+!CALL ADD3DFIELD_ll( TZFIELDS_ll, XRHODJ, 'ANEL_BALANCE_n::XRHODJ' )
 !CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 !CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen3.1-after update halo::XRHODJ",PRECISION)
@@ -237,10 +238,10 @@ ZTH(:,:,:) = XTHT(:,:,:)
 ALLOCATE(ZRR(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),SIZE(XRT,4)))
 ZRR(:,:,:,:) = XRT(:,:,:,:)
 !20131112 appli update_halo_ll
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRU)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRV)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRW)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZTH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRU, 'ANEL_BALANCE_n::ZRU' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'ANEL_BALANCE_n::ZRV' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRW, 'ANEL_BALANCE_n::ZRW' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTH, 'ANEL_BALANCE_n::ZTH' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL MPPDB_CHECK3D(ZRU,"anel_balancen3.1-after1stupdhalo::ZRU",PRECISION)
@@ -289,9 +290,9 @@ XUT(:,:,:) = ZRU(:,:,:) / MXM(XRHODJ)
 XVT(:,:,:) = ZRV(:,:,:) / MYM(XRHODJ)
 XWT(:,:,:) = ZRW(:,:,:) / MZM(1,IKU,1,XRHODJ)
 !20131112 appli update_halo_ll to XUT,XVT,XWT
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XUT)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XVT)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XWT)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'ANEL_BALANCE_n::XUT' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'ANEL_BALANCE_n::XVT' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XWT, 'ANEL_BALANCE_n::XWT' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL MPPDB_CHECK3D(XUT,"anel_balancen3.2-afterupdhalo::XUT",PRECISION)
diff --git a/src/MNH/ch_init_fieldn.f90 b/src/MNH/ch_init_fieldn.f90
index 25992396d0c68c43ed0f5de8db7330bf2c159033..e71d31f36c583398e88c6f77e19ca4b4a565e060 100644
--- a/src/MNH/ch_init_fieldn.f90
+++ b/src/MNH/ch_init_fieldn.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 chimie 2006/07/06 15:28:51
-!-----------------------------------------------------------------
 !!    ########################### 
       MODULE MODI_CH_INIT_FIELD_n
 !!    ########################### 
@@ -75,6 +70,7 @@ END MODULE MODI_CH_INIT_FIELD_n
 !!    22/01/01 (D. Gazen) add NSV_CHEMBEG and NSV_CHEMEND indices to handle SV
 !!    04/06/07 (M. Leriche & JP Pinty) add pH initialization
 !!    20/04/10 (M. Leriche) remove pH initialization to ini_modeln
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!
 !!    EXTERNAL
 !!    --------
@@ -331,12 +327,8 @@ IF ((LCH_INIT_FIELD).AND.(CPROGRAM/='DIAG  ')) THEN
 ENDIF
 !
 !
-DO JN = NSV_CHEMBEG,NSV_CHEMEND
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN))
-END DO
-DO JN = NSV_AERBEG,NSV_AEREND
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN))
-END DO
+CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND), 'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND)' )
+CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_AERBEG:NSV_AEREND),   'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_AERBEG:NSV_AEREND)'   )
 !
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
@@ -362,12 +354,8 @@ IF (LORILAM) THEN
       XM3D(:,:,IKE+JPVEXT,JN) =  XM3D(:,:,IKE,JN)
   END DO
   !
-  DO JN = NSV_CHEMBEG,NSV_CHEMEND
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN))
-  END DO
-  DO JN = NSV_AERBEG,NSV_AEREND
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN))
-  END DO
+  CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND), 'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_CHEMBEG,NSV_CHEMEND)' )
+  CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_AERBEG:NSV_AEREND),   'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_AERBEG:NSV_AEREND)'   )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
 END IF
diff --git a/src/MNH/clustering.f90 b/src/MNH/clustering.f90
index f1dfe3383c6783497882fc53b91efca61d74bbaf..720ef3b0dc232fcc849fefa369b2f30ff2210940 100644
--- a/src/MNH/clustering.f90
+++ b/src/MNH/clustering.f90
@@ -61,6 +61,7 @@ END MODULE MODI_CLUSTERING
 !!      Modified    13/06/17    T. Dauhut   to start volume scan from top
 !!      Modified    04/10/17    T. Dauhut   to be added to next MNH versions
 !  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !
 !-------------------------------------------------------------------------------
 !
@@ -421,9 +422,9 @@ DO JH=1,9999            ! update halo until there is no more changes anywhere
 ZMAPIDT_ll=IMAPIDT_ll
 ZMAPLVL_ll=IMAPLVL_ll
 ZMAPAFL_ll=IMAPAFL_ll
-CALL ADD2DFIELD_ll(TZFIELDS_ll,ZMAPIDT_ll)
-CALL ADD2DFIELD_ll(TZFIELDS_ll,ZMAPLVL_ll)
-CALL ADD2DFIELD_ll(TZFIELDS_ll,ZMAPAFL_ll)
+CALL ADD2DFIELD_ll( TZFIELDS_ll, ZMAPIDT_ll, 'CLUSTERING::ZMAPIDT_ll' )
+CALL ADD2DFIELD_ll( TZFIELDS_ll, ZMAPLVL_ll, 'CLUSTERING::ZMAPLVL_ll' )
+CALL ADD2DFIELD_ll( TZFIELDS_ll, ZMAPAFL_ll, 'CLUSTERING::ZMAPAFL_ll' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 IMAPIDT_ll=NINT(ZMAPIDT_ll)
 IMAPLVL_ll=NINT(ZMAPLVL_ll)
diff --git a/src/MNH/contrav.f90 b/src/MNH/contrav.f90
index d187c4cccbcb71176d547415f5b40031f1470e2a..de2d9666d4b3b83cb575c8c6ca5a2d1110014802 100644
--- a/src/MNH/contrav.f90
+++ b/src/MNH/contrav.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 operators 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ####################
       MODULE MODI_CONTRAV
 !     ####################
@@ -136,6 +131,7 @@ END MODULE MODI_CONTRAV
 !!      Corrections 19/01/11 (by J.P. Pinty) WC 4th order
 !!      Corrections 28/03/11 (by V.Masson) // of WC 4th order
 !!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !----------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -210,15 +206,15 @@ IF (KADV_ORDER == 4 ) THEN
  IF( .NOT. LFLAT) THEN 
   NULLIFY(TZFIELD_U)
   NULLIFY(TZFIELD_V)
-  CALL ADD3DFIELD_ll(TZFIELD_U, PRUCT)
-  CALL ADD3DFIELD_ll(TZFIELD_V, PRVCT)
+  CALL ADD3DFIELD_ll( TZFIELD_U, PRUCT, 'CONTRAV::PRUCT' )
+  CALL ADD3DFIELD_ll( TZFIELD_V, PRVCT, 'CONTRAV::PRVCT' )
   CALL UPDATE_HALO_ll(TZFIELD_U,IINFO_ll)
   CALL UPDATE_HALO_ll(TZFIELD_V,IINFO_ll)
 !!$ IF( NHALO==1 ) THEN 
   NULLIFY(TZFIELD_DZX)
   NULLIFY(TZFIELD_DZY)
-  CALL ADD3DFIELD_ll(TZFIELD_DZX, PDZX)
-  CALL ADD3DFIELD_ll(TZFIELD_DZY, PDZY)
+  CALL ADD3DFIELD_ll( TZFIELD_DZX, PDZX, 'CONTRAV::PDZX' )
+  CALL ADD3DFIELD_ll( TZFIELD_DZY, PDZY, 'CONTRAV::PDZY' )
   NULLIFY(TZHALO2_U)
   NULLIFY(TZHALO2_V)
   NULLIFY(TZHALO2_DZX)
@@ -609,15 +605,15 @@ IF (KADV_ORDER == 4 ) THEN
  IF( .NOT. LFLAT) THEN 
   NULLIFY(TZFIELD_U)
   NULLIFY(TZFIELD_V)
-  CALL ADD3DFIELD_ll(TZFIELD_U, PRUCT)
-  CALL ADD3DFIELD_ll(TZFIELD_V, PRVCT)
+  CALL ADD3DFIELD_ll( TZFIELD_U, PRUCT, 'CONTRAV::PRUCT' )
+  CALL ADD3DFIELD_ll( TZFIELD_V, PRVCT, 'CONTRAV::PRVCT' )
   CALL UPDATE_HALO_ll(TZFIELD_U,IINFO_ll)
   CALL UPDATE_HALO_ll(TZFIELD_V,IINFO_ll)
 !!$ IF( NHALO==1 ) THEN 
   NULLIFY(TZFIELD_DZX)
   NULLIFY(TZFIELD_DZY)
-  CALL ADD3DFIELD_ll(TZFIELD_DZX, PDZX)
-  CALL ADD3DFIELD_ll(TZFIELD_DZY, PDZY)
+  CALL ADD3DFIELD_ll( TZFIELD_DZX, PDZX, 'CONTRAV::PDZX' )
+  CALL ADD3DFIELD_ll( TZFIELD_DZY, PDZY, 'CONTRAV::PDZY' )
   NULLIFY(TZHALO2_U)
   NULLIFY(TZHALO2_V)
   NULLIFY(TZHALO2_DZX)
diff --git a/src/MNH/dflux_corr.f90 b/src/MNH/dflux_corr.f90
index 61287d64edae715a3eb8a6c6a8a6b24dbb2f3574..20b2b79cbce459f9f3a16947abb5d81c2246d97f 100644
--- a/src/MNH/dflux_corr.f90
+++ b/src/MNH/dflux_corr.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_DFLUX_CORR 
 !     ##########################
@@ -112,6 +108,7 @@ END MODULE MODI_DFLUX_CORR
 !!    J. Stein &    20/03/01 : bug for the open case at the boundary
 !!      P. Jabouille 
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -244,7 +241,7 @@ ZBETAOUT(:,:,IKU) = 1.      ! because no velocity is available
 !
 !!$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)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZBETAOUT, 'DFLUX_CORR::ZBETAOUT' )
 !!$  IF(NHALO == 1) THEN
     CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll)
 !!$  ELSE
@@ -294,13 +291,13 @@ PFZ(:,:,:) =  MIN(1., ZFOUT(:,:,:))    * MAX(0.,PFZ(:,:,:)) &
 !
                                                       ! x-direction
 IF (HLBCX(1)=='CYCL') THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, PFX)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, PFX, 'DFLUX_CORR::PFX' )
   CALL UPDATE_BOUNDARIES_ll('XX',TZFIELDS_ll, IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll) 
 ENDIF
                                                       ! y-direction
 IF (HLBCY(1)=='CYCL') THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, PFY)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, PFY, 'DFLUX_CORR::PFY' )
   CALL UPDATE_BOUNDARIES_ll('YY',TZFIELDS_ll, IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
 ENDIF
diff --git a/src/MNH/elec_fieldn.f90 b/src/MNH/elec_fieldn.f90
index f39cdc7abf032ef51c076a10a62ec9fc94f5e84a..ee38a7d922012e96176c2fc8e7394fa9d2915386 100644
--- a/src/MNH/elec_fieldn.f90
+++ b/src/MNH/elec_fieldn.f90
@@ -3,6 +3,9 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
+! Modifications:
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!-----------------------------------------------------------------
 !      ########################
        MODULE MODI_ELEC_FIELD_n
 !      ########################
@@ -160,8 +163,8 @@ END DO
 !*       3.1   Compute the electrostatic potential
 !              -----------------------------------
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPHIT)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZDV_SOURCE)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPHIT,      'ELEC_FIELD_n::ZPHIT' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZDV_SOURCE, 'ELEC_FIELD_n::ZDV_SOURCE' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -219,7 +222,7 @@ ZPHIT(:,:,IKB-1) = -ZPHIT(:,:,IKB)
 !
 ! E =  rhodj * Nabla V  
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPHIT)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPHIT, 'ELEC_FIELD_n::ZPHIT' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90
index 3538f4b3e1530b693666d6c7602d8d5650134739..8afdb41aefd43f6996f8a5c7a00afc6665930c81 100644
--- a/src/MNH/flash_geom_elec.f90
+++ b/src/MNH/flash_geom_elec.f90
@@ -99,6 +99,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n
 !  P. Wautelet 19/04/2019: use modd_precision kinds
 !  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*      0.      DECLARATIONS
@@ -520,9 +521,9 @@ DO WHILE (.NOT. GEND_DOMAIN .AND. INB_CELL .LT. NMAX_CELL)
       GEND_CELL = .FALSE.
       DO WHILE (.NOT. GEND_CELL)
 !
-        CALL ADD2DFIELD_ll  (TZFIELDS_ll, ZCELL(:,:,IK,INB_CELL))
-        CALL UPDATE_HALO_ll (TZFIELDS_ll, IINFO_ll)
-        CALL CLEANLIST_ll   (TZFIELDS_ll)
+        CALL ADD2DFIELD_ll  ( TZFIELDS_ll, ZCELL(:,:,IK,INB_CELL), 'FLASH_GEOM_ELEC_n::ZCELL(:,:,IK,INB_CELL)' )
+        CALL UPDATE_HALO_ll ( TZFIELDS_ll, IINFO_ll )
+        CALL CLEANLIST_ll   ( TZFIELDS_ll )
 !
         COUNT_BEF = COUNT(ZCELL(IIB:IIE,IJB:IJE,IK,INB_CELL) .EQ. 1.)
         CALL SUM_ELEC_ll (COUNT_BEF)
@@ -1970,9 +1971,9 @@ END DO
 !
 DO WHILE (IEND_GLOB .NE. INB_CELL)
   DO IL = 1, INB_CELL
-    CALL ADD3DFIELD_ll  (TZFIELDS_ll, ZSIGN_AREA)
-    CALL UPDATE_HALO_ll (TZFIELDS_ll, IINFO_ll)
-    CALL CLEANLIST_ll   (TZFIELDS_ll)
+    CALL ADD3DFIELD_ll  ( TZFIELDS_ll, ZSIGN_AREA, 'FLASH_GEOM_ELEC_n::ZSIGN_AREA' )
+    CALL UPDATE_HALO_ll ( TZFIELDS_ll, IINFO_ll)
+    CALL CLEANLIST_ll   ( TZFIELDS_ll)
 !
     IF (GNEW_FLASH(IL) .AND. (IEND(IL) .NE. 1)) THEN
       COUNT_BEF2(IL) = COUNT(ZSIGN_AREA(IIB:IIE,IJB:IJE,IKB:IKE) .EQ. ZSIGN(IL))
diff --git a/src/MNH/get_halo.f90 b/src/MNH/get_halo.f90
index a2e65ac3d6ea60c8c000e4bd76161211d7f33ddb..071c893bbecbfe46abebba4d4a576da8777c68b0 100644
--- a/src/MNH/get_halo.f90
+++ b/src/MNH/get_halo.f90
@@ -1,12 +1,10 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 newsrc 2007/03/01 13:18:33
+! Modifications:
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
 !     ####################
       MODULE MODI_GET_HALO
@@ -79,7 +77,7 @@ IKU = SIZE(PSRC,3)
 NULLIFY( TZ_PSRC_ll,TP_PSRC_HALO2_ll)
 CALL INIT_HALO2_ll(TP_PSRC_HALO2_ll,1,IIU,IJU,IKU)
 !
-CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC)
+CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO2::PSRC' )
 CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR)
 CALL UPDATE_HALO2_ll(TZ_PSRC_ll,TP_PSRC_HALO2_ll,IERROR)
 !
@@ -107,7 +105,7 @@ INTEGER                          :: IERROR                 ! error return code
 !
 NULLIFY( TZ_PSRC_ll)
 !
-CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC)
+CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO::PSRC' )
 CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR, HDIR=HDIR )
 CALL CLEANLIST_ll(TZ_PSRC_ll)
 !
@@ -288,7 +286,7 @@ ENDIF
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 IF (LX .OR. LY) THEN
-CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC)
+CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO::PSRC' )
 CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR, HDIR=HDIR )
 CALL CLEANLIST_ll(TZ_PSRC_ll)
 ELSE
diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index c1e4886c4be26bb5f011fe800a3057e798a2a8ba..7793c96b1f3f2661988363813b7842b54da5b4ff 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -110,6 +110,7 @@ END MODULE MODI_GROUND_PARAM_n
 
 !!     (V. Vionnet)           18/07/2017 add coupling for blowing snow module 
 !!     (Bielli S.) 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -782,23 +783,23 @@ IF (LDIAG_IN_RUN) THEN
   END IF
 !
   NULLIFY(TZFIELDSURF_ll)
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_RN    )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_H     )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LE    )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_GFLUX )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SWD   )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SWU   )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LWD   )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LWU   )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_T2M   )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_Q2M   )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_HU2M  )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_ZON10M)
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_MER10M) 
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_DSTAOD)
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SLTAOD)
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_ZWS )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SFCO2 )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_RN,     'GROUND_PARAM_n::XCURRENT_RN'     )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_H,      'GROUND_PARAM_n::XCURRENT_H'      )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LE,     'GROUND_PARAM_n::XCURRENT_LE'     )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_GFLUX,  'GROUND_PARAM_n::XCURRENT_GFLUX'  )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWD,    'GROUND_PARAM_n::XCURRENT_SWD'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWU,    'GROUND_PARAM_n::XCURRENT_SWU'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LWD,    'GROUND_PARAM_n::XCURRENT_LWD'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LWU,    'GROUND_PARAM_n::XCURRENT_LWU'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_T2M,    'GROUND_PARAM_n::XCURRENT_T2M'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_Q2M,    'GROUND_PARAM_n::XCURRENT_Q2M'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_HU2M,   'GROUND_PARAM_n::XCURRENT_HU2M'   )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_ZON10M, 'GROUND_PARAM_n::XCURRENT_ZON10M' )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_MER10M, 'GROUND_PARAM_n::XCURRENT_MER10M' )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_DSTAOD, 'GROUND_PARAM_n::XCURRENT_DSTAOD' )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SLTAOD, 'GROUND_PARAM_n::XCURRENT_SLTAOD' )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_ZWS,    'GROUND_PARAM_n::XCURRENT_ZWS'    )
+  CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SFCO2,  'GROUND_PARAM_n::XCURRENT_SFCO2'  )
 
   CALL UPDATE_HALO_ll(TZFIELDSURF_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDSURF_ll)
diff --git a/src/MNH/ice_adjust_bis.f90 b/src/MNH/ice_adjust_bis.f90
index 6f8415685505458a5450498cd1b7591d90989c63..2b9b233e2b9e80ce9051e0deaa1b02a51d953b5c 100644
--- a/src/MNH/ice_adjust_bis.f90
+++ b/src/MNH/ice_adjust_bis.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     ######spl
      MODULE MODI_ICE_ADJUST_BIS
 !    ###############################
@@ -57,6 +58,7 @@ END MODULE MODI_ICE_ADJUST_BIS
 !!    -------------
 !!      Original         09/2012
 !!      M.Moge           08/2015 UPDATE_HALO_ll on PTH, ZRV, ZRC, ZRI
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!
 !! --------------------------------------------------------------------------
 !
@@ -129,15 +131,15 @@ CALL TH_R_FROM_THL_RT_3D(YFRAC_ICE,ZFRAC_ICE(:,:,:),PP(:,:,:), &
                          ZTHL(:,:,:), ZRW(:,:,:), PTH(:,:,:),  &
                          ZRV(:,:,:), ZRC(:,:,:), ZRI(:,:,:),   &
                          ZRSATW(:,:,:), ZRSATI(:,:,:)          )
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PTH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PTH, 'ICE_ADJUST_BIS::PTH')
 IF (IRR>=1) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRV)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'ICE_ADJUST_BIS::ZRV' )
 ENDIF
 IF (IRR>=2) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRC)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRC, 'ICE_ADJUST_BIS::ZRC' )
 ENDIF
 IF (IRR>=4) THEN
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRI)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRI, 'ICE_ADJUST_BIS::ZRI' )
 ENDIF
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
diff --git a/src/MNH/ini_field_elec.f90 b/src/MNH/ini_field_elec.f90
index 86b68ca99cb89d4f3fee06e900293834f20732cd..a4fa7cd9bdf038b73c0cd2c6a88a0ebb9357fba3 100644
--- a/src/MNH/ini_field_elec.f90
+++ b/src/MNH/ini_field_elec.f90
@@ -2,6 +2,7 @@
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_INI_FIELD_ELEC
 !     ##########################
@@ -59,6 +60,7 @@ END MODULE MODI_INI_FIELD_ELEC
 !!                             (JGR, 1987, 5661-5675)
 !!      J.-P. Pinty 01/07/12   Add a non-homogeneous Neuman fair-weather 
 !!                             boundary condition at the top
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!
 !!-------------------------------------------------------------------------------
 !
@@ -250,9 +252,9 @@ XEFIELDW(:,:,SIZE(PDZZ,3)) = 0. ! either the ground or the ionosphere!
 !*       3.    FAIR WEATHER SPACE CHARGE
 !              -------------------------
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDU)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDV)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDW)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDU, 'INI_FIELD_ELEC::XEFIELDU' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDV, 'INI_FIELD_ELEC::XEFIELDV' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDW, 'INI_FIELD_ELEC::XEFIELDW' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90
index c47b99910f656e4f0b4d024e9482bc6df23951c7..d05fc31f52d33570f14a188844102bc2235e15a8 100644
--- a/src/MNH/ini_radiations.f90
+++ b/src/MNH/ini_radiations.f90
@@ -109,6 +109,7 @@ END MODULE MODI_INI_RADIATIONS
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -278,8 +279,8 @@ END IF
 !
 !   5.2 Update halo of PSLOPANG and PSLOPAZI at the end of ini_modeln
 !
-CALL ADD2DFIELD_ll (TPINITHALO2D_ll,PSLOPANG)
-CALL ADD2DFIELD_ll (TPINITHALO2D_ll,PSLOPAZI)
+CALL ADD2DFIELD_ll ( TPINITHALO2D_ll, PSLOPANG, 'INI_RADIATIONS::PSLOPANG' )
+CALL ADD2DFIELD_ll ( TPINITHALO2D_ll, PSLOPAZI, 'INI_RADIATIONS::PSLOPAZI' )
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/ini_spawn_lsn.f90 b/src/MNH/ini_spawn_lsn.f90
index d1274f06b9987ff87bcbf50390a13b2b82970a5d..75354a3f53f1b94993a020d953d37ad8232e4f84 100644
--- a/src/MNH/ini_spawn_lsn.f90
+++ b/src/MNH/ini_spawn_lsn.f90
@@ -139,6 +139,7 @@ END MODULE MODI_INI_SPAWN_LS_n
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 
 !!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -784,20 +785,20 @@ IF ( SIZE(PLSRVS,1) /= 0 ) DEALLOCATE(ZTLSRVS)
 IF ( SIZE(PLSZWSS,1) /= 0 ) DEALLOCATE(ZTZWSS)
 !------------------------------------------------------------------------------
 NULLIFY(TZLSFIELD_ll)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUM)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVM)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWM)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHM)
-IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVM)
-IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSM)
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSUM , 'INI_SPAWN_LS::PLSUM'  )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSVM , 'INI_SPAWN_LS::PLSVM'  )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSWM , 'INI_SPAWN_LS::PLSWM'  )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSTHM, 'INI_SPAWN_LS::PLSTHM' )
+IF(SIZE(PLSRVM)  /= 0) CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSRVM , 'INI_SPAWN_LS::PLSRVM'  )
+IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll( TZLSFIELD_ll, PLSZWSM, 'INI_SPAWN_LS::PLSZWSM' )
 IF ( SIZE(PLSTHS,1) /= 0 ) THEN
-  CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUS)
-  CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVS)
-  CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWS)
-  CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHS)
+  CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSUS,  'INI_SPAWN_LS::PLSUS'  )
+  CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSVS,  'INI_SPAWN_LS::PLSVS'  )
+  CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSWS,  'INI_SPAWN_LS::PLSWS'  )
+  CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSTHS, 'INI_SPAWN_LS::PLSTHS' )
 ENDIF
-IF ( SIZE(PLSRVS,1) /= 0 ) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVS)
-IF ( SIZE(PLSZWSS,1) /= 0 ) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSS)
+IF ( SIZE(PLSRVS, 1) /= 0 ) CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSRVS,  'INI_SPAWN_LS::PLSRVS'  )
+IF ( SIZE(PLSZWSS,1) /= 0 ) CALL ADD2DFIELD_ll( TZLSFIELD_ll, PLSZWSS, 'INI_SPAWN_LS::PLSZWSS' )
 CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZLSFIELD_ll)
 !
diff --git a/src/MNH/ini_tke_eps.f90 b/src/MNH/ini_tke_eps.f90
index f921bed32e00175de47d54d0cc16de0c5eca27a2..f0aba674f3ec36a83f1284b8fa33713cfd7af53f 100644
--- a/src/MNH/ini_tke_eps.f90
+++ b/src/MNH/ini_tke_eps.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 init 2006/07/19 10:33:46
-!-----------------------------------------------------------------
 !     #######################
       MODULE MODI_INI_TKE_EPS
 !     #######################
@@ -88,6 +83,7 @@ END MODULE MODI_INI_TKE_EPS
 !!                          to compute a real gradient and allow RESTA conf.                
 !!                          Aug 10, 1998 (N. Asencio) add parallel code
 !!                          May 2006  Remove KEPS
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !! -------------------------------------------------------------------------
 !
 !*          0. DECLARATIONS
@@ -164,7 +160,7 @@ IF (HGETTKET == 'INIT' ) THEN
   !
   ! Add PTKET to TPINITHALO3D_ll list of fields updated at the
   ! end of initialization
-  CALL ADD3DFIELD_ll (TPINITHALO3D_ll,PTKET)
+  CALL ADD3DFIELD_ll ( TPINITHALO3D_ll, PTKET, 'INI_TKE_EPS::PTKET' )
 END IF
 !
 !
diff --git a/src/MNH/ion_drift.f90 b/src/MNH/ion_drift.f90
index 14ce9fd066e6a1fe22ce67cc00d2bc10b4e75271..73edec604ea8572b9418b0181fabd74761dfcc78 100644
--- a/src/MNH/ion_drift.f90
+++ b/src/MNH/ion_drift.f90
@@ -1,8 +1,8 @@
-
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-------------------------------------------------------------------------------
 !     #####################
       MODULE MODI_ION_DRIFT
 !     #####################
@@ -36,7 +36,8 @@ END MODULE MODI_ION_DRIFT
 !!    ------
 !!          M. Chong      01/2010
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
-!!
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -118,16 +119,16 @@ IF (LNORTH_ll()) THEN
   XEFIELDV(:,IJE+1,:) = XEFIELDV(:,IJE,:)
 ENDIF   
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDU)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDV)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDU, 'ION_DRIFT::XEFIELDU' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDV, 'ION_DRIFT::XEFIELDV' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
 !  specify lateral boundary ion mixing ratio
 CALL ION_BOUND4DRIFT (HLBCX,HLBCY,XEFIELDU,XEFIELDV,PSVT)
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PSVT(:,:,:,NSV_ELECBEG))
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PSVT(:,:,:,NSV_ELECEND))
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PSVT(:,:,:,NSV_ELECBEG), 'ION_DRIFT::PSVT(:,:,:,NSV_ELECBEG)' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PSVT(:,:,:,NSV_ELECEND), 'ION_DRIFT::PSVT(:,:,:,NSV_ELECEND)' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/les_budget.f90 b/src/MNH/les_budget.f90
index aac8f80077a70dc6e5e752af92c80705edf619be..c11a00da0efb960488bc86fee48c44f705bf17f0 100644
--- a/src/MNH/les_budget.f90
+++ b/src/MNH/les_budget.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 les 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !    ######################
      MODULE MODI_LES_BUDGET
 !    ######################
@@ -52,6 +47,7 @@ END MODULE MODI_LES_BUDGET
 !!    -------------
 !!      Original    September 19, 2002
 !!      25/11/2016  Q.Rodier correction bug variance u'^2  v'^2  w'^2
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -410,7 +406,7 @@ INTEGER :: IINFO_ll
     END SELECT
 
     NULLIFY(TZFIELDS_ll)
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, ZS)
+    CALL ADD3DFIELD_ll( TZFIELDS_ll, ZS, 'LES_BUDGET_ANOMALY::ZS' )
     CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
     CALL CLEANLIST_ll(TZFIELDS_ll)
     !
diff --git a/src/MNH/mode_extrapol.f90 b/src/MNH/mode_extrapol.f90
index fcf03634fda4615c98d6a6e9f84ac8091700683d..fe3cc9b664bbeca42953bca05f35b5801b61b8af 100644
--- a/src/MNH/mode_extrapol.f90
+++ b/src/MNH/mode_extrapol.f90
@@ -5,6 +5,7 @@
 !-----------------------------------------------------------------
 ! Modifications:
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-----------------------------------------------------------------
 MODULE MODE_EXTRAPOL
 
@@ -184,6 +185,7 @@ CONTAINS
     !
     !*       0.2   Declarations of local variables
     !
+    character(len=6) :: ynum
     INTEGER          :: IIB,IJB,IKB     ! Begining useful area  in x,y,z directions
     INTEGER          :: IIE,IJE,IKE     ! End useful area in x,y,z directions
     INTEGER          :: IDIMX_C,IDIMY_C ! size of the child domain (in the father grid)
@@ -219,7 +221,8 @@ CONTAINS
       CALL GO_TOMODEL_ll(1, IINFO_ll)
       DO II=1,SIZE(PTAB,3)
         NULLIFY(TZZSFIELD_ll)
-        CALL ADD2DFIELD_ll(TZZSFIELD_ll, PTAB(:,:,II))
+        write ( ynum, '( I6 )' ) ii
+        CALL ADD2DFIELD_ll( TZZSFIELD_ll, PTAB(:,:,II), 'EXTRAPOL_ON_PSEUDO_HALO3D::PTAB:'//trim( adjustl( ynum ) ) )
         CALL UPDATE_HALO_EXTENDED_ll(TZZSFIELD_ll,IINFO_ll)
         CALL CLEANLIST_ll(TZZSFIELD_ll)
       ENDDO
@@ -355,7 +358,7 @@ CONTAINS
       CALL GOTO_MODEL(1)
       CALL GO_TOMODEL_ll(1, IINFO_ll)
       NULLIFY(TZZSFIELD_ll)
-      CALL ADD2DFIELD_ll(TZZSFIELD_ll, PTAB)
+      CALL ADD2DFIELD_ll( TZZSFIELD_ll, PTAB, 'EXTRAPOL_ON_PSEUDO_HALO3D::PTAB' )
       CALL UPDATE_HALO_EXTENDED_ll(TZZSFIELD_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZZSFIELD_ll)
       CALL GO_TOMODEL_ll(2, IINFO_ll)
diff --git a/src/MNH/mode_gridcart.f90 b/src/MNH/mode_gridcart.f90
index 8a701c843ffdb0a8577b9bfeeb4ead775a7f4b4a..65981a6f6eb076380e362e241ec34fa4e67bf774 100644
--- a/src/MNH/mode_gridcart.f90
+++ b/src/MNH/mode_gridcart.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     ####################
@@ -34,6 +34,7 @@
 !!      Original    06/05/94 
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !--------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -200,8 +201,8 @@ ZBOUNDZ(:,:) = 2.*PZZ(:,:,IKU) - PZZ(:,:,IKU-1)
 PDXHAT(:)  = EOSHIFT(PXHAT(:) ,1,ZBOUNDX)      - PXHAT(:)
 PDYHAT(:)  = EOSHIFT(PYHAT(:) ,1,ZBOUNDY)      - PYHAT(:)
 ! update PDXHAT and PDYHAT 
-CALL ADD1DFIELD_ll("X",TZHALO1_ll,PDXHAT)
-CALL ADD1DFIELD_ll("Y",TZHALO1_ll,PDYHAT)
+CALL ADD1DFIELD_ll( 'X', TZHALO1_ll, PDXHAT, 'SM_GRIDCART::PDXHAT')
+CALL ADD1DFIELD_ll( 'Y', TZHALO1_ll, PDYHAT, 'SM_GRIDCART::PDYHAT')
 CALL UPDATE_1DHALO_ll(TZHALO1_ll,IINFO_ll)
 DEALLOCATE(TZHALO1_ll)
 !
diff --git a/src/MNH/mode_gridproj.f90 b/src/MNH/mode_gridproj.f90
index 8fec230fa1da45eebb5d101a3957f371f60f2ec3..30abee4f32a98a2fc65fe6d379354a90c9d25daf 100644
--- a/src/MNH/mode_gridproj.f90
+++ b/src/MNH/mode_gridproj.f90
@@ -38,8 +38,8 @@
 !!                    05/02/15   M.Moge (LA-CNRS)
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
-!!
-!!    
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!
 !------------------------------------------------------------------------------
 !
 !*                0.  DECLARATIONS
@@ -348,8 +348,8 @@ ZYHATM(2:IIU,:)   = SPREAD(ZYHATM(1,:),1,IIU-1)
 IF(CPROGRAM/='SPAWN ')&
 CALL MPPDB_CHECK2D(ZYHATM,"GRIDPROJ:ZYHATM",PRECISION)
 ! ZXHATM and ZXHATM have to be updated
-CALL ADD2DFIELD_ll(TZHALO_ll,ZXHATM)
-CALL ADD2DFIELD_ll(TZHALO_ll,ZYHATM)
+CALL ADD2DFIELD_ll( TZHALO_ll, ZXHATM, 'SM_GRIDPROJ::ZXHATM' )
+CALL ADD2DFIELD_ll( TZHALO_ll, ZYHATM, 'SM_GRIDPROJ::ZYHATM' )
 CALL UPDATE_HALO_ll(TZHALO_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZHALO_ll)
 !
@@ -367,8 +367,8 @@ PDYHAT(IJU)      = PDYHAT(IJU-1)
 ZDZ(:,:,1:IKU-1) = PZZ(:,:,2:IKU) - PZZ(:,:,1:IKU-1)
 ZDZ(:,:,IKU)     = ZDZ(:,:,IKU-1)
 !  PDXHAT and PDYHAT have to be updated
-CALL ADD1DFIELD_ll("X",TZHALO1_ll,PDXHAT)
-CALL ADD1DFIELD_ll("Y",TZHALO1_ll,PDYHAT)
+CALL ADD1DFIELD_ll( 'X', TZHALO1_ll, PDXHAT, 'SM_GRIDPROJ::PDXHAT' )
+CALL ADD1DFIELD_ll( 'Y', TZHALO1_ll, PDYHAT, 'SM_GRIDPROJ::PDYHAT' )
 CALL UPDATE_1DHALO_ll(TZHALO1_ll,IINFO_ll)
 DEALLOCATE(TZHALO1_ll)
 CALL MPPDB_CHECK3D(ZDZ,"GRIDPROJ:ZDZ",PRECISION)
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 94c45b456313b9f0b9684778c24b942a199f50e1..5acbced05672f5c12e160df4db5137af122d9c5e 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -260,6 +260,7 @@ END MODULE MODI_MODEL_n
 !  P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing
 !  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -612,51 +613,43 @@ IF (KTCOUNT == 1) THEN
 !
 !                 a) Sources terms
 !
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRUS)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRVS)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRWS)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRTHS)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRUS_PRES)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRVS_PRES)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRWS_PRES)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XRTHS_CLD)
-  IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDS_ll, XRTKES)
-  DO JRR=1,NRR
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, XRRS(:,:,:,JRR))
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, XRRS_CLD(:,:,:,JRR))
-  ENDDO
-  DO JSV=1,NSV
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, XRSVS(:,:,:,JSV))
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, XRSVS_CLD(:,:,:,JSV))
-  ENDDO
-  IF (SIZE(XSRCT,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDS_ll, XSRCT)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRUS,      'MODEL_n::XRUS' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRVS,      'MODEL_n::XRVS' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRWS,      'MODEL_n::XRWS' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRTHS,     'MODEL_n::XRTHS' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRUS_PRES, 'MODEL_n::XRUS_PRES' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRVS_PRES, 'MODEL_n::XRVS_PRES' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRWS_PRES, 'MODEL_n::XRWS_PRES' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XRTHS_CLD, 'MODEL_n::XRTHS_CLD' )
+  IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll( TZFIELDS_ll, XRTKES, 'MODEL_n::XRTKES' )
+  CALL ADD4DFIELD_ll( TZFIELDS_ll, XRRS     (:,:,:,1:NRR), 'MODEL_n::XRRS' )
+  CALL ADD4DFIELD_ll( TZFIELDS_ll, XRRS_CLD (:,:,:,1:NRR), 'MODEL_n::XRRS_CLD' )
+  CALL ADD4DFIELD_ll( TZFIELDS_ll, XRSVS    (:,:,:,1:NSV), 'MODEL_n::XRSVS')
+  CALL ADD4DFIELD_ll( TZFIELDS_ll, XRSVS_CLD(:,:,:,1:NSV), 'MODEL_n::XRSVS_CLD')
+  IF (SIZE(XSRCT,1) /= 0) CALL ADD3DFIELD_ll( TZFIELDS_ll, XSRCT, 'MODEL_n::XSRCT' )
   !
   IF ((LNUMDIFU .OR. LNUMDIFTH .OR. LNUMDIFSV) ) THEN
   !
   !                 b) LS fields
   !
-    CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSUM)
-    CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSVM)
-    CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSWM)
-    CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSTHM)
-    CALL ADD2DFIELD_ll(TZLSFIELD_ll, XLSZWSM)
+    CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSUM,   'MODEL_n::XLSUM'   )
+    CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSVM,   'MODEL_n::XLSVM'   )
+    CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSWM,   'MODEL_n::XLSWM'   )
+    CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSTHM,  'MODEL_n::XLSTHM'  )
+    CALL ADD2DFIELD_ll( TZLSFIELD_ll, XLSZWSM, 'MODEL_n::XLSZWSM' )
     IF (NRR >= 1) THEN
-      CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSRVM)
+      CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSRVM, 'MODEL_n::XLSRVM' )
     ENDIF
   !
   !                 c) Fields at t
   !
-    CALL ADD3DFIELD_ll(TZFIELDT_ll, XUT)
-    CALL ADD3DFIELD_ll(TZFIELDT_ll, XVT)
-    CALL ADD3DFIELD_ll(TZFIELDT_ll, XWT)
-    CALL ADD3DFIELD_ll(TZFIELDT_ll, XTHT)
-    IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDT_ll, XTKET)
-    DO JRR=1,NRR
-      CALL ADD3DFIELD_ll(TZFIELDT_ll, XRT(:,:,:,JRR))
-    ENDDO
-    DO JSV=1,NSV
-      CALL ADD3DFIELD_ll(TZFIELDT_ll, XSVT(:,:,:,JSV))
-    ENDDO
+    CALL ADD3DFIELD_ll( TZFIELDT_ll, XUT,  'MODEL_n::XUT'  )
+    CALL ADD3DFIELD_ll( TZFIELDT_ll, XVT,  'MODEL_n::XVT'  )
+    CALL ADD3DFIELD_ll( TZFIELDT_ll, XWT,  'MODEL_n::XWT'  )
+    CALL ADD3DFIELD_ll( TZFIELDT_ll, XTHT, 'MODEL_n::XTHT' )
+    IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll( TZFIELDT_ll, XTKET, 'MODEL_n::XTKET' )
+    CALL ADD4DFIELD_ll(TZFIELDT_ll, XRT (:,:,:,1:NRR), 'MODEL_n::XSV'  )
+    CALL ADD4DFIELD_ll(TZFIELDT_ll, XSVT(:,:,:,1:NSV), 'MODEL_n::XSVT' )
   !
   !*       1.5   Initialize the list of fields for the halo updates (2nd layer)
   !
@@ -1535,9 +1528,9 @@ IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR')) THEN
   IF (CUVW_ADV_SCHEME=='CEN4TH') THEN
     NULLIFY(TZFIELDC_ll)
     NULLIFY(TZHALO2C_ll)
-      CALL ADD3DFIELD_ll(TZFIELDC_ll, XUT)
-      CALL ADD3DFIELD_ll(TZFIELDC_ll, XVT)
-      CALL ADD3DFIELD_ll(TZFIELDC_ll, XWT)
+      CALL ADD3DFIELD_ll( TZFIELDC_ll, XUT, 'MODEL_n::XUT' )
+      CALL ADD3DFIELD_ll( TZFIELDC_ll, XVT, 'MODEL_n::XVT' )
+      CALL ADD3DFIELD_ll( TZFIELDC_ll, XWT, 'MODEL_n::XWT' )
       CALL INIT_HALO2_ll(TZHALO2C_ll,3,IIU,IJU,IKU)
       CALL UPDATE_HALO_ll(TZFIELDC_ll,IINFO_ll)
       CALL UPDATE_HALO2_ll(TZFIELDC_ll, TZHALO2C_ll, IINFO_ll)
diff --git a/src/MNH/mpdata.f90 b/src/MNH/mpdata.f90
index b3e964ad9861ae8fa1d4347279e4f75463c7d5ca..961d2d98aec37e1372714ba152a3aca51743734d 100644
--- a/src/MNH/mpdata.f90
+++ b/src/MNH/mpdata.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 adiab 2006/12/12 15:06:37
-!-----------------------------------------------------------------
 !     ##################
       MODULE MODI_MPDATA
 !     ##################
@@ -103,7 +98,8 @@ END MODULE MODI_MPDATA
 !!      P. Jabouille                      parallelization
 !!      V. Masson   06/11/02              updates the budget calls
 !!      05/2006                           Remove EPS
-!!
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -209,7 +205,7 @@ LBUDGET_R(7) = LBUDGET_RH
 !*       1.  Thermodynamical variable
 !             -----------------------
 !
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, PRTHS)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, PRTHS, 'MPDATA::PRTHS' )
 !
 !* 1st iteration (upstream scheme)
 !
@@ -280,7 +276,7 @@ LBUDGET_R(7) = LBUDGET_RH
 !             -----------------------------
 !
   DO JRR=1,KRR
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, PRRS(:,:,:,JRR))
+    CALL ADD3DFIELD_ll( TZFIELDS_ll, PRRS(:,:,:,JRR), 'MPDATA::PRRS(:,:,:,JRR)' )
     ZRVARS(:,:,:) = PRRS(:,:,:,JRR)
     ZFADVU(:,:,:) = -DXF(FXM( PRM(:,:,:,JRR),PRUCT(:,:,:) )  )
     ZFADVV(:,:,:) = -DYF(FYM( PRM(:,:,:,JRR),PRVCT(:,:,:) )  )
@@ -348,7 +344,7 @@ LBUDGET_R(7) = LBUDGET_RH
 !             -------------
   IF (SIZE(PTKET,1) /= 0) THEN
 !
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, PRTKES)
+    CALL ADD3DFIELD_ll( TZFIELDS_ll, PRTKES, 'MPDATA::PRTKES' )
     ZRVARS(:,:,:) = PRTKES(:,:,:)
     ZFADVU(:,:,:) = -DXF(FXM( PTKEM(:,:,:),PRUCT(:,:,:) )  )
     ZFADVV(:,:,:) = -DYF(FYM( PTKEM(:,:,:),PRVCT(:,:,:) )  )
diff --git a/src/MNH/mpdata_scalar.f90 b/src/MNH/mpdata_scalar.f90
index 03141645cf58451597cd038bf2fff7670d1f524f..ae29c69b09e8cd4baaf5cddcbb511f7780a9843c 100644
--- a/src/MNH/mpdata_scalar.f90
+++ b/src/MNH/mpdata_scalar.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 newsrc 2006/12/12 15:06:50
-!-----------------------------------------------------------------
 !     #########################
       MODULE MODI_MPDATA_SCALAR
 !     #########################
@@ -99,7 +94,8 @@ END MODULE MODI_MPDATA_SCALAR
 !!      C.Lac                             Split meteorological scalar and tracer
 !!                                        variables routines
 !!      P.Tulet                           Upstream condition for aerosols
-!!
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -183,7 +179,7 @@ IKU=SIZE(PSVM,3)
 !             --------------------------------
   DO JSV=1,KSV
 !
-    CALL ADD3DFIELD_ll(TZFIELDS_ll, PRSVS(:,:,:,JSV))
+    CALL ADD3DFIELD_ll( TZFIELDS_ll, PRSVS(:,:,:,JSV), 'MPDATA_SCALAR::PRSVS(:,:,:,JSV)' )
     ZRVARS(:,:,:) = PRSVS(:,:,:,JSV)
     ZFADVU(:,:,:) = -DXF(FXM( PSVM(:,:,:,JSV),PRUCT(:,:,:) )  )
     ZFADVV(:,:,:) = -DYF(FYM( PSVM(:,:,:,JSV),PRVCT(:,:,:) )  )
diff --git a/src/MNH/pgdfilter.f90 b/src/MNH/pgdfilter.f90
index 0095523695f8d23a0daabf0028210f384437911e..b3e4d955ab26982b0b8b1c416244d96ea2170e37 100644
--- a/src/MNH/pgdfilter.f90
+++ b/src/MNH/pgdfilter.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ####################
       MODULE MODI_PGDFILTER
 !     ####################
@@ -60,6 +56,7 @@ END MODULE MODI_PGDFILTER
 !!        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 
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !----------------------------------------------------------------------------
 !
 !*    0.     DECLARATION
@@ -102,7 +99,7 @@ INTEGER                :: IIB,IJB,IIE,IJE
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 
-CALL ADD2DFIELD_ll(TZFIELDS_ll,PPGDARRAY )
+CALL ADD2DFIELD_ll( TZFIELDS_ll, PPGDARRAY, 'PGDFILTER::PPGDARRAY' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL MPPDB_CHECK2D(PPGDARRAY,"PGDFILTER:PPGDARRAY",PRECISION)
 
@@ -118,7 +115,7 @@ ZARRAY(:,IJU+1)=2.*ZARRAY(:,IJU)-ZARRAY(:,IJU-1)
 !               --------------
 !
 ZARRAY_ll(1:IIU,1:IJU) = ZARRAY(1:IIU,1:IJU)
-CALL ADD2DFIELD_ll(TZFIELDS_ll,ZARRAY_ll )
+CALL ADD2DFIELD_ll( TZFIELDS_ll, ZARRAY_ll, 'PGDFILTER::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
diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90
index 053f539dbdf11feb18c1e306de71d9aed1e11270..bedad9ddef9e7eac9f877bc31387c3100c1ef29e 100644
--- a/src/MNH/phys_paramn.f90
+++ b/src/MNH/phys_paramn.f90
@@ -234,6 +234,7 @@ END MODULE MODI_PHYS_PARAM_n
 !  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 28/03/2019: use MNHTIME for time measurement variables
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -392,6 +393,8 @@ REAL, DIMENSION(0:24) :: ZRAT_HOUR = (/ 326.00, 325.93, 325.12, 324.41,     &
                                       347.00, 342.00, 337.00, 332.00,       &
                                       326.00     /)
 !
+!
+character(len=6) :: ynum
 INTEGER  :: IHOUR               ! parameters necessary for the temporal
 REAL     :: ZTIME, ZDT          ! interpolation
 REAL     :: ZTEMP_DIST          ! time between 2 instants (in seconds)
@@ -1265,19 +1268,20 @@ IF (LLES_CALL) CALL SWITCH_SBG_LES_n
 IF ( CTURB == 'TKEL' ) THEN
 !
 
-!*        6.1 complete surface fluxe fields on the border
+!*        6.1 complete surface flux fields on the border
 !
 !!$  IF(NHALO == 1) THEN
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFTH)
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFRV)
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFU)
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFV)
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFTH, 'PHYS_PARAM_n::ZSFTH' )
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFRV, 'PHYS_PARAM_n::ZSFRV' )
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFU,  'PHYS_PARAM_n::ZSFU' )
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFV,  'PHYS_PARAM_n::ZSFV' )
     IF(NSV >0)THEN
       DO JSV=1,NSV
-        CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFSV(:,:,JSV))
+        write ( ynum, '( I6 ) ' ) jsv
+        CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFSV(:,:,JSV), 'PHYS_PARAM_n::ZSFSV:'//trim( adjustl( ynum ) ) )
       END DO
     END IF
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFCO2)
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFCO2, 'PHYS_PARAM_n::ZSFCO2' )
     CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
     CALL CLEANLIST_ll(TZFIELDS_ll)
 !!$  END IF
@@ -1379,7 +1383,7 @@ END IF
       XTHW_FLUX, XRCW_FLUX, XSVW_FLUX,XDYP, XTHP, XTR, XDISS,  XLEM         )
 !
 IF (LRMC01) THEN
-  CALL ADD2DFIELD_ll(TZFIELDS_ll,XSBL_DEPTH)
+  CALL ADD2DFIELD_ll( TZFIELDS_ll, XSBL_DEPTH, 'PHYS_PARAM_n::XSBL_DEPTH' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
   IF ( CLBCX(1) /= "CYCL" .AND. LWEST_ll()) THEN
@@ -1410,7 +1414,7 @@ IF (CSCONV == 'EDKF') THEN
      ZEXN(:,:,:)=(XPABST(:,:,:)/XP00)**(XRD/XCPD)  
      !$20131113 check3d on ZEXN
      CALL MPPDB_CHECK3D(ZEXN,"physparan.7::ZEXN",PRECISION)
-     CALL ADD3DFIELD_ll(TZFIELDS_ll, ZEXN)
+     CALL ADD3DFIELD_ll( TZFIELDS_ll, ZEXN, 'PHYS_PARAM_n::ZEXN' )
      !$20131113 add update_halo_ll
      CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
      CALL CLEANLIST_ll(TZFIELDS_ll)
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index d1cb76877d062a3859452408d7b0c70070885cb4..19602cccbb662c82974aeecd8a3b779c5d632925 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -317,6 +317,7 @@
 !  P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing
 !  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -1358,7 +1359,7 @@ IF (    LEN_TRIM(CPGD_FILE) == 0  .OR. .NOT. LREAD_ZS) THEN
     CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','erroneous terrain type')
   END SELECT
 !
-  CALL ADD2DFIELD_ll(TZ_FIELDS_ll, XZS)
+  CALL ADD2DFIELD_ll( TZ_FIELDS_ll, XZS, 'PREP_IDEAL_CASE::XZS' )
   CALL UPDATE_HALO_ll(TZ_FIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZ_FIELDS_ll)
 !
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 37f5ab5a912946fa4cb3c2e7e179dc8a37c1655b..a499c20078af7eb38472eff996410dec58f15e04 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -382,6 +382,7 @@
 !  P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables
 !!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
 !  P. Wautelet 20/03/2019: missing use MODI_INIT_SALT
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -841,7 +842,7 @@ ALLOCATE(XDZZ(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)))
 !
 !20131024 add update halo
 !=> corrects on PDXX calculation in metrics and XDXX !!
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XZZ)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XZZ, 'PREP_REAL_CASE::XZZ' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -855,10 +856,10 @@ CALL MPPDB_CHECK3D(XDZY,"prc8-beforeupdate_metrics:PDZY",PRECISION)
 CALL UPDATE_METRICS(CLBCX,CLBCY,XDXX,XDYY,XDZX,XDZY,XDZZ)
 !
 !20131112 add update_halo for XDYY and XDZY!!
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XDXX)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XDZX)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XDYY)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XDZY)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XDXX, 'PREP_REAL_CASE::XDXX' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XDZX, 'PREP_REAL_CASE::XDZX' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XDYY, 'PREP_REAL_CASE::XDYY' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XDZY, 'PREP_REAL_CASE::XDZY' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 
diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90
index 43a1caeb9866175eadf8ebb0607fb2e2112aac08..0ec507eec7ee8fb1fe94c7bacc2836524e3dc88e 100644
--- a/src/MNH/pressure.f90
+++ b/src/MNH/pressure.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !###################
@@ -199,7 +199,8 @@ END MODULE MODI_PRESSURE
 !!                                             to save it before UPDATE_HALO
 !!                    06/2011 (J.escobar ) Bypass Bug with ifort11/12 on  HLBCX,HLBCY 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
-!!
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -378,9 +379,9 @@ END IF
 !              --------------------------------------------------
 !
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll, PRUS)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, PRVS)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, PRWS)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRUS, 'PRESSURE::PRUS' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRVS, 'PRESSURE::PRVS' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRWS, 'PRESSURE::PRWS' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -653,7 +654,7 @@ IF (      ABS(PRHODREF(IIB,IJB,IKB)-PRHODREF(IIB,IJB,IKE)) > 1.E-12 &
 !
   END IF
 !
-  CALL ADD3DFIELD_ll(TZFIELDS_2_ll, PPABST)
+  CALL ADD3DFIELD_ll( TZFIELDS_2_ll, PPABST, 'PRESSURE::PPABST' )
   CALL UPDATE_HALO_ll(TZFIELDS_2_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_2_ll)
 !
diff --git a/src/MNH/pressure_in_prep.f90 b/src/MNH/pressure_in_prep.f90
index 7fafcfd88ec7e3521650a825432b5ae5ec5ab7dd..e012d515b828652f664356a845921c11fd663e38 100644
--- a/src/MNH/pressure_in_prep.f90
+++ b/src/MNH/pressure_in_prep.f90
@@ -65,6 +65,7 @@ END MODULE MODI_PRESSURE_IN_PREP
 !!               08/2015 M.Moge    removing UPDATE_HALO_ll on XUT, XVT, XRHODJ in part 4
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -151,9 +152,9 @@ DO
   XUT(:,:,:) = ZU(:,:,:)
   XVT(:,:,:) = ZV(:,:,:)
   XWT(:,:,:) = ZW(:,:,:)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XUT)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XVT)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, XWT)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'PRESSURE_IN_PREP::XUT' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'PRESSURE_IN_PREP::XVT' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XWT, 'PRESSURE_IN_PREP::XWT' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
 
@@ -183,9 +184,9 @@ DO
 !20131112 check 1st XUT
 CALL MPPDB_CHECK3D(XUT,"PressInP4-beforeupdhalo::XUT",PRECISION)
 CALL MPPDB_CHECK3D(XVT,"PressInP4-beforeupdhalo::XVT",PRECISION)
-!CALL ADD3DFIELD_ll(TZFIELDS_ll, XUT)
-!CALL ADD3DFIELD_ll(TZFIELDS_ll, XVT)
-!CALL ADD3DFIELD_ll(TZFIELDS_ll, XRHODJ)
+!CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'PRESSURE_IN_PREP::XUT' )
+!CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'PRESSURE_IN_PREP::XVT' )
+!CALL ADD3DFIELD_ll( TZFIELDS_ll, XRHODJ, 'PRESSURE_IN_PREP::XRHODJ' )
 !  CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 !    CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -193,9 +194,9 @@ CALL MPPDB_CHECK3D(XVT,"PressInP4-beforeupdhalo::XVT",PRECISION)
   ZRV(:,:,:) = XVT(:,:,:) * MYM(XRHODJ)
   ZRW(:,:,:) = XWT(:,:,:) * MZM(1,IKU,1,XRHODJ)
 !
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRU)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRV)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRW)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRU, 'PRESSURE_IN_PREP::ZRU' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'PRESSURE_IN_PREP::ZRV' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRW, 'PRESSURE_IN_PREP::ZRW' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
   CALL GDIV(CLBCX,CLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,ZRU,ZRV,ZRW,ZDIV)
diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90
index c9eca886954b3cf6d30b5b7690592d9a635f182e..97cc43d0a07feef1abaf31c176e29ecc8aa92a14 100644
--- a/src/MNH/pressurez.f90
+++ b/src/MNH/pressurez.f90
@@ -218,6 +218,7 @@ END MODULE MODI_PRESSUREZ
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!  Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -421,9 +422,9 @@ CALL MPPDB_CHECK3D(PRUS,"pressurez 4-before update_halo_ll::PRUS",PRECISION)
 CALL MPPDB_CHECK3D(PRVS,"pressurez 4-before update_halo_ll::PRVS",PRECISION)
 CALL MPPDB_CHECK3D(PRWS,"pressurez 4-before update_halo_ll::PRWS",PRECISION)
 NULLIFY(TZFIELDS_ll)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, PRUS)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, PRVS)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, PRWS)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRUS, 'PRESSUREZ::PRUS' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRVS, 'PRESSUREZ::PRVS' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRWS, 'PRESSUREZ::PRWS' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL MPPDB_CHECK3D(PRUS,"pressurez 4-after update_halo_ll::PRUS",PRECISION)
@@ -623,9 +624,9 @@ END IF
     PRVS(:,:,IKE+1)=PRVS(:,:,IKE)
 !
 NULLIFY(TZFIELDS2_ll)
-CALL ADD3DFIELD_ll(TZFIELDS2_ll, PRUS)
-CALL ADD3DFIELD_ll(TZFIELDS2_ll, PRVS)
-CALL ADD3DFIELD_ll(TZFIELDS2_ll, PRWS)
+CALL ADD3DFIELD_ll( TZFIELDS2_ll, PRUS, 'PRESSUREZ::PRUS' )
+CALL ADD3DFIELD_ll( TZFIELDS2_ll, PRVS, 'PRESSUREZ::PRVS' )
+CALL ADD3DFIELD_ll( TZFIELDS2_ll, PRWS, 'PRESSUREZ::PRWS' )
 CALL UPDATE_HALO_ll(TZFIELDS2_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS2_ll)
 !
@@ -724,7 +725,7 @@ IF ((ZMAX_ll > 1.E-12) .AND. KTCOUNT >0 ) THEN
 !
   END IF
 !
-  CALL ADD3DFIELD_ll(TZFIELDS_ll, PPABST)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, PPABST, 'PRESSUREZ::PPABST' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/qlap.f90 b/src/MNH/qlap.f90
index 7e78f44dcd667bfa4b3b9d5a9580d82418a11c5f..75f8c728fd2b2ac86cdd9ae57f907c2bf1752207 100644
--- a/src/MNH/qlap.f90
+++ b/src/MNH/qlap.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ################
       MODULE MODI_QLAP
 !     ################
@@ -113,6 +109,7 @@ END MODULE MODI_QLAP
 !!                              at the lbc ( Stein )
 !!                     06/12 V.Masson : update_halo due to CONTRAV changes
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1  
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -254,9 +251,9 @@ END IF
 !              ----------------------
 !
 NULLIFY(TZFIELDS_ll)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZU)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZV)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZW)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZU, 'QLAP::ZU' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZV, 'QLAP::ZV' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZW, 'QLAP::ZW' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/read_all_data_mesonh_case.f90 b/src/MNH/read_all_data_mesonh_case.f90
index 01c538421733253be7d23140abe417bd99ff1add..2a1e021c2fd779d3159cd0cf9d376f90fadf4c60 100644
--- a/src/MNH/read_all_data_mesonh_case.f90
+++ b/src/MNH/read_all_data_mesonh_case.f90
@@ -106,6 +106,7 @@ END MODULE MODI_READ_ALL_DATA_MESONH_CASE
 !!                  19/03/2008 (J.Escobar) rename INIT to INIT_MNH --> grib problem
 !!                  2014 (M.Faivre)
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -329,9 +330,9 @@ XPS_LS(:,:) = XP00* (                                                     &
                      )**(XCPD/XRD)
 !
 !20131113 add update_halo
-CALL ADD2DFIELD_ll(TZFIELDS_ll,XPS_LS )
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD2DFIELD_ll( TZFIELDS_ll, XPS_LS, 'READ_ALL_DATA_MESONH_CASE::XPS_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL MPPDB_CHECK2D(XPS_LS,"PGDFILTER9:XPS_LS",PRECISION)
 !
 !
diff --git a/src/MNH/read_prc_fmfile.f90 b/src/MNH/read_prc_fmfile.f90
index e78dd974aed6c9d12329a1b5fe62b9c85f6f6c22..e65d36357bb6261985143735798d9da9145d1215 100644
--- a/src/MNH/read_prc_fmfile.f90
+++ b/src/MNH/read_prc_fmfile.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     ###########################
@@ -92,6 +92,7 @@ END MODULE MODI_READ_PRC_FMFILE
 !!                      2014     (M.Faivre)
 !!                      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -367,7 +368,7 @@ END IF
 CALL MPPDB_CHECK3D(XU_LS,"read_prc_fmfile7.1::XU_LS",PRECISION)  !ok calculated in 3. using trunc_field
 !
 !20131105 use ADD3DFIELD and UPDATE_HALO
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XU_LS)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XU_LS, 'READ_PRC_FMFILE::XU_LS' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 !20131112 add cleanlist
 CALL CLEANLIST_ll(TZFIELDS_ll)
@@ -388,7 +389,7 @@ CALL MPPDB_CHECK3D(XU_LS,"read_prc_fmfile7.1::XU_LS",PRECISION)
 !              --------------------------------
 !
 !20131112 update_halo_ll for XV_LS
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XV_LS)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XV_LS, 'READ_PRC_FMFILE::XV_LS')
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 !20131112 add cleanlist
 CALL CLEANLIST_ll(TZFIELDS_ll)
@@ -405,7 +406,7 @@ CALL MPPDB_CHECK3D(XV_LS,"read_prc_fmfile7.2::XV_LS",PRECISION)
 !20131106 : also here
 IF (LWEST_ll()) XU_LS(IIB-1  ,:,:)=2.*XU_LS(  IIB  ,:,:)-XU_LS(  IIB+1  ,:,:)
 !20131105 use UPDATE_HALO
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XU_LS)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XU_LS, 'READ_PRC_FMFILE::XU_LS' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 !20131105 use LEAST_ll() as in pressurez or phys_paramn
 IF (LEAST_ll()) XU_LS(IIE+1,:,:)=2.*XU_LS(IIE,:,:)-XU_LS(IIE-1,:,:)
diff --git a/src/MNH/set_dircos.f90 b/src/MNH/set_dircos.f90
index b7f4197089439609dd01dd2c4e6eec8f70ceb989..1aabc3282307134809cab47d19dbf232baa02503 100644
--- a/src/MNH/set_dircos.f90
+++ b/src/MNH/set_dircos.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ######################  
       MODULE MODI_SET_DIRCOS
 !     ######################
@@ -118,6 +114,7 @@ END MODULE MODI_SET_DIRCOS
 !!      (J.Stein)        15/11/95  add the slope angle
 !!      V. DUCROCQ       14/08/98  //
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -197,9 +194,9 @@ PDIRCOSXW(:,:) = - ZWORK1(:,:,IKB) * PDIRCOSZW(:,:)
 !
 PDIRCOSYW(:,:) = - ZWORK2(:,:,IKB) * PDIRCOSZW(:,:)
 !
-CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PDIRCOSZW)
-CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PDIRCOSXW)
-CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PDIRCOSYW)
+CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PDIRCOSZW, 'SET_DIRCOS::PDIRCOSZW' )
+CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PDIRCOSXW, 'SET_DIRCOS::PDIRCOSXW' )
+CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PDIRCOSYW, 'SET_DIRCOS::PDIRCOSYW' )
 !
 !*      2. COMPUTE THE SLOPE COSINUS AND SINUS
 !          -----------------------------------
@@ -215,8 +212,8 @@ ELSEWHERE
   PSINSLOPE(:,:) = ZWORK2(:,:,IKB) /                &
     SQRT ( ZWORK1(:,:,IKB)**2 + ZWORK2(:,:,IKB)**2 )
 END WHERE
-CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PCOSSLOPE)
-CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PSINSLOPE)
+CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PCOSSLOPE, 'SET_DIRCOS::PCOSSLOPE' )
+CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PSINSLOPE, 'SET_DIRCOS::PSINSLOPE' )
 !
 !
 !------------------------------------------------------------------------------
diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90
index b886c5c22694297077bd0e1201dbdfd9ed99f8cd..acb2014ea5e5a4223d218ed518acf2f24c58017f 100644
--- a/src/MNH/set_mass.f90
+++ b/src/MNH/set_mass.f90
@@ -2,6 +2,7 @@
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !     ########################
       MODULE MODI_SET_MASS
 !     ########################
@@ -119,6 +120,7 @@ SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE,
 !!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !
 !-------------------------------------------------------------------------------
 !!
@@ -465,9 +467,9 @@ ELSE
   XTHT(:,:,1)=XTHT(:,:,2)
   XRT(:,:,1,:)=XRT(:,:,2,:)
 NULLIFY( TZFIELDS_ll )
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XTHT)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV3D)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XRT(:,:,1,:))
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XTHT,         'SET_MASS::XTHT' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV3D,       'SET_MASS::ZTHV3D' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XRT(:,:,1,:), 'SET_MASS::XRT(:,:,1,:)' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 
diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90
index 74890f3e829b5e588a56db66d74bcfa60853c3ac..925fd52efdf6c0189af56d44e594453beaf3bd85 100644
--- a/src/MNH/set_ref.f90
+++ b/src/MNH/set_ref.f90
@@ -149,6 +149,7 @@ END MODULE MODI_SET_REF
 !!      Modification    07/13     (M.Moge) calling UPDATE_HALO_ll on PRHODJ, PRVREF, 
 !!                                PRHODREF, PEXNREF, PTHVREF after computation
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -390,11 +391,11 @@ END IF
 ! update halo of PRHODJ and PRVREF for future use ( notably in anel_balance_n )
 !
 NULLIFY( TZFIELDS_ll )
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PRHODJ)
-IF ( SIZE(PRVREF,1) /= 0 ) CALL ADD3DFIELD_ll(TZFIELDS_ll,PRVREF)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PRHODREF)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PEXNREF)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PTHVREF)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRHODJ,   'SET_REF::PRHODJ' )
+IF ( SIZE(PRVREF,1) /= 0 ) CALL ADD3DFIELD_ll( TZFIELDS_ll, PRVREF, 'SET_REF::PRVREF' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PRHODREF, 'SET_REF::PRHODREF')
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PEXNREF,  'SET_REF::PEXNREF')
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PTHVREF,  'SET_REF::PTHVREF')
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/spawn_lsn.f90 b/src/MNH/spawn_lsn.f90
index d72774348bbcf8e84d88176a208ed056217f4a52..36a0341493c70d13ef181fe81596a5b7fb16b84a 100644
--- a/src/MNH/spawn_lsn.f90
+++ b/src/MNH/spawn_lsn.f90
@@ -125,6 +125,7 @@ END MODULE MODI_SPAWN_LS_n
 !!      J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 
 !!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
 !  P. Wautelet 20/03/2019: fixes: wrong order of the dummy arguments + double deallocate
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -475,12 +476,12 @@ IF(GVERT_INTERP) DEALLOCATE(ZTZS,ZZS)
 IF(GVERT_INTERP) DEALLOCATE(ZTZSMT,ZZSMT)
 !
 NULLIFY(TZLSFIELD_ll)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUS)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVS)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWS)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHS)
-IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVS)
-IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSS)
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSUS, 'SPAWN_LS_n::PLSUS' )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSVS, 'SPAWN_LS_n::PLSVS' )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSWS, 'SPAWN_LS_n::PLSWS' )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSTHS,'SPAWN_LS_n::PLSTHS' )
+IF(SIZE(PLSRVM) /= 0)  CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSRVS,  'SPAWN_LS_n::PLSRVS' )
+IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll( TZLSFIELD_ll, PLSZWSS, 'SPAWN_LS_n::PLSZWSS' )
 CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZLSFIELD_ll)
 !------------------------------------------------------------------------------
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index 33c2a15786a8a92e74f21b6969f1b52bf10baa54..ff2edc1eaabb3935cb93357fdb1430abe4e042a5 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -197,6 +197,7 @@ END MODULE MODI_SPAWN_MODEL2
 !  P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard)
 !  P. Wautelet 14/03/2019: correct ZWS when variable not present in file
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -1080,7 +1081,7 @@ END IF
 !
 !*       5.4  Compute the metric coefficients
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XZZ)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XZZ, 'SPAWN_MODEL2::XZZ' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90
index fc12915cca3825c01cea9fef34d8d52cdec7f841..830d2cb4939bb237ce277eba16be7afa87236829 100644
--- a/src/MNH/spawn_zs.f90
+++ b/src/MNH/spawn_zs.f90
@@ -98,6 +98,7 @@ END MODULE MODI_SPAWN_ZS
 !      Modification    10/02/15 M. Moge : paralellization
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -507,7 +508,7 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN
     END DO
     !
     NULLIFY(TZZSFIELD_ll)
-    CALL ADD2DFIELD_ll(TZZSFIELD_ll, ZZS1CHILDGRID_C)
+    CALL ADD2DFIELD_ll( TZZSFIELD_ll, ZZS1CHILDGRID_C, 'SPAWN_ZS::ZZS1CHILDGRID_C' )
     CALL UPDATE_HALO_EXTENDED_ll(TZZSFIELD_ll,IINFO)
     CALL CLEANLIST_ll(TZZSFIELD_ll)
     ! west and east boundaries - distant points
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 25f1eb52b6455c72321e16188016ac1e07f89e83..8153adf2d1ccb5be911b25abea7eab02b15f52b9 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -171,6 +171,7 @@ END MODULE MODI_TKE_EPS_SOURCES
 !!                     2015-01 (J. Escobar) missing get_halo(ZRES) for JPHEXT<> 1 
 !!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !! --------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -383,7 +384,7 @@ IF (LDIAG_IN_RUN) THEN
   XCURRENT_TKE_DISS = ZFLX(:,:,:) * PTKEM(:,:,:) &
                                   *(PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:))
 !$acc end data
-  CALL ADD3DFIELD_ll(TZFIELDDISS_ll,XCURRENT_TKE_DISS)
+  CALL ADD3DFIELD_ll( TZFIELDDISS_ll, XCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::XCURRENT_TKE_DISS' )
   CALL UPDATE_HALO_ll(TZFIELDDISS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDDISS_ll)
 ENDIF
diff --git a/src/MNH/to_elec_fieldn.f90 b/src/MNH/to_elec_fieldn.f90
index 9640bbef3517e2338e20ff53cfa7170c50dc28a3..3b078b6562e046c60c7c3843f49b31b14f25b2d2 100644
--- a/src/MNH/to_elec_fieldn.f90
+++ b/src/MNH/to_elec_fieldn.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
 !      ###########################
        MODULE MODI_TO_ELEC_FIELD_n
 !      ###########################
@@ -63,6 +64,7 @@ END MODULE MODI_TO_ELEC_FIELD_n
 !!      Original    2002
 !!      C. Barthe   06/11/09   update to version 4.8.1
 !!      M. Chong    26/01/10   Add Small ions 
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !!
 !-------------------------------------------------------------------------------
 !
@@ -155,7 +157,7 @@ ZW(:,:,1:IKB-1)        = 0.0 ! Setup to neutralize the computation on the
                              ! at IKB-1 
 ZW(:,:,IKE:IKE+JPVEXT) = XESOURCEFW(:,:,IKE:IKE+JPVEXT)
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZW)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZW, 'TO_ELEC_FIELD_n::ZW' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 02b24d631243821ad07b1c8c6af50d4f2e39c918..75a410e40cabedd54e28ddb5d04f2396c6136625 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -340,6 +340,7 @@ END MODULE MODI_TURB
 !!                     04/2016  (C.Lac) correction of negativity for KHKO
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!                     01/2018 (Q.Rodier) Introduction of RM17
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -1513,8 +1514,8 @@ CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 !
 !!$IF (NHALO == 1) THEN
 !$acc update self(PUSLOPE,PVSLOPE)
-  CALL ADD2DFIELD_ll(TZFIELDS_ll,PUSLOPE)
-  CALL ADD2DFIELD_ll(TZFIELDS_ll,PVSLOPE)
+  CALL ADD2DFIELD_ll( TZFIELDS_ll, PUSLOPE, 'UPDATE_ROTATE_WIND::PUSLOPE' )
+  CALL ADD2DFIELD_ll( TZFIELDS_ll, PVSLOPE, 'UPDATE_ROTATE_WIND::PVSLOPE' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZFIELDS_ll)
 !$acc update device(PUSLOPE,PVSLOPE)
diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90
index ed514e98a3fe789e356ee4f969aa878d2c37b378..8f4de6488a7a4d659ee2a2c212463cfca9c3c1c8 100644
--- a/src/MNH/turb_hor_dyn_corr.f90
+++ b/src/MNH/turb_hor_dyn_corr.f90
@@ -142,6 +142,7 @@ END MODULE MODI_TURB_HOR_DYN_CORR
 !!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!                      M.Moge  04/2016 Use openACC directives to port the TURB part of Meso-NH on GPU
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !! --------------------------------------------------------------------------
 !
 !*      0. DECLARATIONS
@@ -325,7 +326,7 @@ CALL GZ_W_M_DEVICE(1,IKU,1,PWM,PDZZ,GZ_W_M_PWM)
 CALL MZF_DEVICE(1,IKU,1,PDZZ,ZMZF_DZZ)
 #endif
 !
-CALL ADD3DFIELD_ll(TZFIELDS_ll, ZFLX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZFLX, 'TURB_HOR_DYN_CORR::ZFLX' )
 
 
 !  compute the coefficients for the uncentred gradient computation near the 
diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90
index ac27858c6095a1b63afcf08921aec124e4207dff..e74b0c3f87f0f0f93b230143d5f1c4394efc04c7 100644
--- a/src/MNH/turb_hor_splt.f90
+++ b/src/MNH/turb_hor_splt.f90
@@ -260,6 +260,7 @@ END MODULE MODI_TURB_HOR_SPLT
 !!                              advection schemes
 !!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -460,21 +461,13 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
 !*       2.2  list for parallel exchanges
 !             ---------------------------
 !
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZUM)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZVM)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZWM)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHLM)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTKEM)
-  IF (ISV>0) THEN
-    DO JSV=1,ISV
-      CALL ADD3DFIELD_ll(TZFIELDS_ll,ZSVM(:,:,:,JSV))
-    END DO
-  END IF
-  IF (KRR>0) THEN
-    DO JRR=1,KRR
-      CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRM(:,:,:,JRR))
-    END DO
-  END IF
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZUM,               'TURB_HOR_SPLT::ZUM'               )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZVM,               'TURB_HOR_SPLT::ZVM'               )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZWM,               'TURB_HOR_SPLT::ZWM'               )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHLM,             'TURB_HOR_SPLT::ZTHLM'             )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTKEM,             'TURB_HOR_SPLT::ZTKEM'             )
+  CALL ADD4DFIELD_ll( TZFIELDS_ll, ZSVM(:,:,:,1:ISV), 'TURB_HOR_SPLT::ZSVM(:,:,:,1:ISV)' )
+  CALL ADD4DFIELD_ll( TZFIELDS_ll, ZRM(:,:,:,1:KRR),  'TURB_HOR_SPLT::ZRM(:,:,:,1:KRR)'  )
 !
 !
 !*       2.3  initializations
diff --git a/src/MNH/update_lm.f90 b/src/MNH/update_lm.f90
index bb3116ab38a9142dd7f8bcb8b77328a997e4dea6..9edc121e329a7069f678ef9392b5968026953967 100644
--- a/src/MNH/update_lm.f90
+++ b/src/MNH/update_lm.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ###################
       MODULE MODI_UPDATE_LM
 !     ###################
@@ -60,6 +56,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 
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -108,8 +105,8 @@ NULLIFY(TZLM_ll)
 !
 !!$IF(NHALO == 1) THEN
 !$acc update self(PLM,PLEPS)
-  CALL ADD3DFIELD_ll(TZLM_ll,PLM)
-  CALL ADD3DFIELD_ll(TZLM_ll,PLEPS)
+  CALL ADD3DFIELD_ll( TZLM_ll, PLM,   'UPDATE_LM::PLM'   )
+  CALL ADD3DFIELD_ll( TZLM_ll, PLEPS, 'UPDATE_LM::PLEPS' )
   CALL UPDATE_HALO_ll(TZLM_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZLM_ll)
 !$acc update device(PLM,PLEPS)
diff --git a/src/MNH/update_metrics.f90 b/src/MNH/update_metrics.f90
index d5af55d7d6a92d79c6cfc1418fe64c92eb92b1d5..d1b4b2ddd366453c27478227410ce2044d45a93c 100644
--- a/src/MNH/update_metrics.f90
+++ b/src/MNH/update_metrics.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-!-----------------------------------------------------------------
 !     ###################
       MODULE MODI_UPDATE_METRICS
 !     ###################
@@ -61,6 +57,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
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -125,11 +122,11 @@ END IF
 !
 !
 !!$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 ADD3DFIELD_ll( TZMETRICS_ll, PDXX, 'UPDATE_METRICS::PDXX' )
+  CALL ADD3DFIELD_ll( TZMETRICS_ll, PDYY, 'UPDATE_METRICS::PDYY' )
+  CALL ADD3DFIELD_ll( TZMETRICS_ll, PDZX, 'UPDATE_METRICS::PDZX' )
+  CALL ADD3DFIELD_ll( TZMETRICS_ll, PDZY, 'UPDATE_METRICS::PDZY' )
+  CALL ADD3DFIELD_ll( TZMETRICS_ll, PDZZ, 'UPDATE_METRICS::PDZZ' )
   CALL UPDATE_HALO_ll(TZMETRICS_ll,IINFO_ll)
   CALL CLEANLIST_ll(TZMETRICS_ll)
 !!$END IF
diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90
index 009e8bd33abd589b5039ba81f1ad81dcc1ca5d51..49b6ef42936c3747e2784377d34bee9ae7ee0850 100644
--- a/src/MNH/ver_dyn.f90
+++ b/src/MNH/ver_dyn.f90
@@ -128,6 +128,7 @@ END MODULE MODI_VER_DYN
 !!      M.Faivre                  2014
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -251,9 +252,9 @@ CALL MPPDB_CHECK3D(ZRHODVA,"VERDYN::ZRHODVA",PRECISION)
 !
 !20131105 add UPDATE_HALO on ZRHODUA, ZRHODVA and PJ(needed) : ok ZRHODJU,V
 !20131112 impact of PJ update_halo =>ZRHODJU,V error => XUM,XVM error
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODUA)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODVA)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PJ)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODUA, 'VERDYN::ZRHODUA' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODVA, 'VERDYN::ZRHODVA' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PJ,      'VERDYN::PJ'      )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -261,8 +262,8 @@ ZRHODJU(:,:,:)=MXM(ZRHODUA(:,:,:)*PJ(:,:,:))
 ZRHODJV(:,:,:)=MYM(ZRHODVA(:,:,:)*PJ(:,:,:))
 !
 !20131112 add update_halo_ll though checking on vars is correct
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJU)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJV)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJU, 'VERDYN::ZRHODJU' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJV, 'VERDYN::ZRHODJV' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -297,15 +298,15 @@ ZRHOD(:,:,:)=XPABST(:,:,:)/(XPABST(:,:,:)/XP00)**(XRD/XCPD) &
             /(XRD*XTHT(:,:,:)*(1.+XRV/XRD*XRT(:,:,:,1)))
 !
 CALL MPPDB_CHECK3D(ZRHOD,"VER_DYN4::ZRHOD",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHOD)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHOD, 'VERDYN::ZRHOD' )
   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !
 XUT(:,:,:)=ZRHODJU(:,:,:)/MXM(ZRHOD(:,:,:)*PJ(:,:,:))
 XVT(:,:,:)=ZRHODJV(:,:,:)/MYM(ZRHOD(:,:,:)*PJ(:,:,:))
 
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XUT)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XVT)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'VERDYN::XUT' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'VERDYN::XVT' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL EXTRAPOL('W',XUT)
@@ -333,9 +334,9 @@ IF( HATMFILETYPE == 'MESONH' ) THEN
   CALL MPPDB_CHECK3D(ZRHODJU,"VER_DYN5::ZRHODJU",PRECISION)
   !
   !20131105 add UPDATE_HALO on ZRHODUA, ZRHODVA and PJ(needed): ok ZRHODJU,V
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODUA)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODVA)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,PJ)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODUA, 'VERDYN::ZRHODUA' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODVA, 'VERDYN::ZRHODVA' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, PJ,      'VERDYN::PJ'      )
      CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
         CALL CLEANLIST_ll(TZFIELDS_ll)  
   !
@@ -343,13 +344,13 @@ IF( HATMFILETYPE == 'MESONH' ) THEN
   ZRHODJV(:,:,:)=MYM(ZRHODVA(:,:,:)*PJ(:,:,:))
   !
   !20131112 add update_halo_ll though checking on vars is correct
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJU)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJV)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJU, 'VERDYN::ZRHODJU' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJV, 'VERDYN::ZRHODJV' )
      CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
         CALL CLEANLIST_ll(TZFIELDS_ll)
   !
   !20131105 add UPDATE_HALO on ZRHOD
-    CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHOD)
+    CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHOD, 'VERDYN::ZRHOD' )
        CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
           CALL CLEANLIST_ll(TZFIELDS_ll)
   !
@@ -357,8 +358,8 @@ IF( HATMFILETYPE == 'MESONH' ) THEN
   XLSVM(:,:,:)=ZRHODJV(:,:,:)/MYM(ZRHOD(:,:,:)*PJ(:,:,:))
   !
   !20131112 add update_halo_ll though checking on vars is correct
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,XLSUM)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,XLSVM)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XLSUM, 'VERDYN::XLSUM' )
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, XLSVM, 'VERDYN::XLSVM' )
      CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
         CALL CLEANLIST_ll(TZFIELDS_ll)
   !20131126 add check on XLSUN, XLSVM
@@ -396,8 +397,8 @@ XWT(:,:,:)=XWT(:,:,:)*MAX(MIN( (4.-4.*ZCOEF(:,:,:)) ,1.),0.)
 !-------------------------------------------------------------------------------
 !
 !20131112 add update_halo_ll though checking on vars is correct
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZCOEF)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XWT)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZCOEF, 'VERDYN::ZCOEF' )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XWT,   'VERDYN::XWT'   )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90
index 0463f3006389a1eb7e2022e1b07b647026303091..caace8ad5fa37979d8840f7c279c6c98bf95ce92 100644
--- a/src/MNH/ver_int_thermo.f90
+++ b/src/MNH/ver_int_thermo.f90
@@ -135,6 +135,7 @@ END MODULE MODI_VER_INT_THERMO
 !!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard)
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -300,7 +301,7 @@ ZP_MX(:,:,:)=PPMHP_MX(:,:,:) + XP00 * ZHEXNMASS_MX(:,:,:) ** (XCPD/XRD)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZP_MX,"ver_int_thermo2a::ZP_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZP_MX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZP_MX, 'VER_INT_THERMO::ZP_MX' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -316,7 +317,7 @@ ZEXNMASS_MX(:,:,:)= (ZP_MX(:,:,:)/XP00) ** (XRD/XCPD)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZEXNMASS_MX,"ver_int_thermo2a::ZEXNMASS_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZEXNMASS_MX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZEXNMASS_MX, 'VER_INT_THERMO::ZEXNMASS_MX' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -329,7 +330,7 @@ ZPMHPOHP_SH(:,:,:) = PPMHP_MX(:,:,:) / (XP00*ZHEXNMASS_MX(:,:,:) ** (XCPD/XRD))
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZPMHPOHP_SH,"ver_int_thermo2a::ZPMHPOHP_SH",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMHPOHP_SH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMHPOHP_SH, 'VER_INT_THERMO::ZPMHPOHP_SH' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -356,7 +357,7 @@ CALL MPPDB_CHECK3D(ZTHV_FREE_MX,"VER_INT_THERMO:ZTHV_FREE_MX",PRECISION)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZTHV_FREE_MX,"ver_int_thermo3a::ZTHV_FREE_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV_FREE_MX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV_FREE_MX, 'VER_INT_THERMO::ZTHV_FREE_MX' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll) 
 !20131112 check3d
@@ -368,7 +369,7 @@ CALL MPPDB_CHECK3D(ZTHV_FREE_SH,"VER_INT_THERMO:ZTHV_FREE_SH",PRECISION)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZTHV_FREE_SH,"ver_int_thermo3a::ZTHV_FREE_SH",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV_FREE_SH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV_FREE_SH, 'VER_INT_THERMO::ZTHV_FREE_SH' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -378,7 +379,7 @@ ZTHV_SH(:,:,:) = PTHV_MX(:,:,:) - ZTHV_FREE_MX(:,:,:) + ZTHV_FREE_SH(:,:,:)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZTHV_SH,"ver_int_thermo3a::ZTHV_SH",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV_SH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV_SH, 'VER_INT_THERMO::ZTHV_SH' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -398,7 +399,7 @@ ZTH_MX(:,:,:)=PTHV_MX(:,:,:)*(1.+WATER_SUM(PR_MX(:,:,:,:)))/(1.+XRV/XRD*ZRV_MX(:
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZTH_MX,"ver_int_thermo4a::ZTH_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTH_MX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTH_MX, 'VER_INT_THERMO::ZTH_MX' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -408,7 +409,7 @@ ZT_MX(:,:,:)=ZTH_MX(:,:,:)*ZEXNMASS_MX(:,:,:)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZT_MX,"ver_int_thermo4a::ZT_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZT_MX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZT_MX, 'VER_INT_THERMO::ZT_MX' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -419,7 +420,7 @@ ZHU_MX(:,:,:)=100.*ZP_MX(:,:,:)/(XRD/XRV/ZRV_MX(:,:,:)+1.)/ZES_MX(:,:,:)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZHU_MX,"ver_int_thermo4a::ZHU_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZHU_MX)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZHU_MX, 'VER_INT_THERMO::ZHU_MX' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -445,7 +446,7 @@ ZPMASS_SH(:,:,:)= (ZPMHPOHP_SH(:,:,:)+1.) * XP00 * ZHEXNMASS_SH(:,:,:)**(XCPD/XR
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZPMASS_SH,"ver_int_thermo4a::ZPMASS_SH",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMASS_SH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMASS_SH, 'VER_INT_THERMO::ZPMASS_SH' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -460,7 +461,7 @@ CALL MPPDB_CHECK3D(ZPMHP_SH,"VER_INT_THERMO:ZPMHP_SH",PRECISION)
 !
 !20131113 add update_halo here
 CALL MPPDB_CHECK3D(ZPMHP_SH,"ver_int_thermo4a::ZPMHP_SH",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMHP_SH)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMHP_SH, 'VER_INT_THERMO::ZPMHP_SH' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -486,7 +487,7 @@ IF (NVERB>4) THEN
   !
   !20131113 add update_halo here
   CALL MPPDB_CHECK3D(ZTV_SH,"ver_int_thermo5a::ZTV_SH",PRECISION)
-  CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTV_SH)
+  CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTV_SH, 'VER_INT_THERMO::ZTV_SH' )
      CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
         CALL CLEANLIST_ll(TZFIELDS_ll)
   !20131113 check3d
@@ -551,7 +552,7 @@ ZP(:,:,:) = PPMHP(:,:,:) + XP00 * ZHEXNMASS(:,:,:) ** (XCPD/XRD)
 !
 !20131113 add update_halo here
 !CALL MPPDB_CHECK3D(ZP,"ver_int_thermo6a::ZP",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZP)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZP, 'VER_INT_THERMO::ZP' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
@@ -560,7 +561,7 @@ CALL MPPDB_CHECK3D(ZP,"ver_int_thermo6b::ZP",PRECISION)
 PR(:,:,:,1)=SM_PMR_HU(ZP(:,:,:),                                &
                       PTHV(:,:,:)*(ZP(:,:,:)/XP00)**(XRD/XCPD), &
                       ZHU(:,:,:),PR(:,:,:,:),KITERMAX=100)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,PR(:,:,:,1))
+CALL ADD3DFIELD_ll( TZFIELDS_ll, PR(:,:,:,1), 'VER_INT_THERMO::PR(:,:,:,1)' )
 CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/ver_interp_field.f90 b/src/MNH/ver_interp_field.f90
index 92759dcb65ef518cfd6afdb2b4060d46f7f31693..1eb52591ae889b6f813b5238972b3f79384bb79f 100644
--- a/src/MNH/ver_interp_field.f90
+++ b/src/MNH/ver_interp_field.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1997-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 spawn 2006/05/19 18:48:54
-!-----------------------------------------------------------------
 !#######################
 MODULE MODI_VER_INTERP_FIELD
 !#######################
@@ -86,6 +81,7 @@ END MODULE MODI_VER_INTERP_FIELD
 !!                  14/09/97 (V. Masson) Interpolation of relative humidity
 !!                  05/06     Remobe KEPS
 !!                  2014  (M.Faivre)
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -181,8 +177,8 @@ DO JI=JPHEXT,1,-1
 ENDDO
 !$20140710 update_halo
 NULLIFY(TZLSFIELD_ll)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID1)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID2)
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID1, 'VER_INTERP_FIELD::ZGRID1' )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID2, 'VER_INTERP_FIELD::ZGRID2' )
 CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZLSFIELD_ll)
 !
@@ -219,8 +215,8 @@ DO JJ=JPHEXT,1,-1
 ENDDO
 !$20140711 updatehalo(zg1,2) also here
 NULLIFY(TZLSFIELD_ll)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID1)
-CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID2)
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID1, 'VER_INTERP_FIELD::ZGRID1' )
+CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID2, 'VER_INTERP_FIELD::ZGRID2' )
 CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZLSFIELD_ll)
 !$
diff --git a/src/MNH/ver_prep_mesonh_case.f90 b/src/MNH/ver_prep_mesonh_case.f90
index 5d532fbba1f36fa3bb77ecfb55f99650f7952f09..15ea1cc313fc52f699651a95190f5dab63a50c35 100644
--- a/src/MNH/ver_prep_mesonh_case.f90
+++ b/src/MNH/ver_prep_mesonh_case.f90
@@ -80,6 +80,7 @@ END MODULE MODI_VER_PREP_MESONH_CASE
 !!                          2014 (M.Faivre)  parallelization
 !!                  J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -155,9 +156,9 @@ ALLOCATE(XZMASS_LS(IIU,IJU,ILU))
 XTHV_LS(:,:,:)=XTH_LS(:,:,:)*(1.+XRV/XRD*XR_LS(:,:,:,1))/(1.+WATER_SUM(XR_LS(:,:,:,:)))
 !
 !20131112 add update_halo for this type of calculation
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XTHV_LS)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XTHV_LS, 'VER_PREP_MESONH_CASE::XTHV_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(XTHV_LS,"ver_prep_mesonh_case1.1::XTHV_LS",PRECISION)
 !
@@ -171,9 +172,9 @@ CALL VERT_COORD(LSLEVE_LS,XZS_LS,XZSMT_LS,XLEN1_LS,XLEN2_LS,XZHAT_LS,XZFLUX_LS)
 XZMASS_LS(:,:,:)=MZF(1,ILU,1,XZFLUX_LS(:,:,:))
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(XZMASS_LS,"ver_prep_mesonh_case1.2a::XZMASS_LS",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll, XZMASS_LS)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XZMASS_LS, 'VER_PREP_MESONH_CASE::XZMASS_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(XZMASS_LS,"ver_prep_mesonh_case1.2b::XZMASS_LS",PRECISION)
 !
@@ -222,9 +223,9 @@ ZHEXNSURF2D(:,:)=(XPS_LS(:,:)/XP00)**(XRD/XCPD)
 !
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK2D(ZHEXNSURF2D,"ver_prep_mesonh_case1.5::ZHEXNSURF2D",PRECISION)
-CALL ADD2DFIELD_ll(TZFIELDS_ll, ZHEXNSURF2D)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD2DFIELD_ll( TZFIELDS_ll, ZHEXNSURF2D, 'VER_PREP_MESONH_CASE::ZHEXNSURF2D' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check2d
 CALL MPPDB_CHECK2D(ZHEXNSURF2D,"ver_prep_mesonh_case1.5::ZHEXNSURF2D",PRECISION)
 !
@@ -233,9 +234,9 @@ ZHPMASS_LS(:,:,:)=XP00*(ZHEXNMASS_LS(:,:,:))**(XCPD/XRD)
 !
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(ZHPMASS_LS,"ver_prep_mesonh_case1.5a::ZHPMASS_LS",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZHPMASS_LS)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZHPMASS_LS, 'VER_PREP_MESONH_CASE::ZHPMASS_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(ZHPMASS_LS,"ver_prep_mesonh_case1.5b::ZHPMASS_LS",PRECISION)
 !
@@ -243,9 +244,9 @@ XPMHP_LS(:,:,:)=XPMASS_LS(:,:,:)-ZHPMASS_LS(:,:,:)
 !
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(XPMHP_LS,"ver_prep_mesonh_case1.5c::XPMHP_LS",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XPMHP_LS)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XPMHP_LS, 'VER_PREP_MESONH_CASE::XPMHP_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(XPMHP_LS,"ver_prep_mesonh_case1.5d::XPMHP_LS",PRECISION)
 !
@@ -266,9 +267,9 @@ ZES_LS(:,:,:)=SM_FOES( XTHV_LS(:,:,:)                 &
                       *(XPMASS_LS(:,:,:)/XP00)**(XRD/XCPD)  )
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(ZES_LS,"ver_prep_mesonh_case1.6a::ZES_LS",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZES_LS)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZES_LS, 'VER_PREP_MESONH_CASE::ZES_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(ZES_LS,"ver_prep_mesonh_case1.6b::ZES_LS",PRECISION)
 !
@@ -276,9 +277,9 @@ XHU_LS(:,:,:)=100.*XPMASS_LS(:,:,:)/(XRD/XRV/MAX(XR_LS(:,:,:,1),1.E-12)+1.)/ZES_
 !
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(XHU_LS,"ver_prep_mesonh_case1.6c::XHU_LS",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XHU_LS)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XHU_LS, 'VER_PREP_MESONH_CASE::XHU_LS' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(XHU_LS,"ver_prep_mesonh_case1.6d::XHU_LS",PRECISION)
 !
@@ -311,9 +312,9 @@ IF (NVERB>=5) THEN
 !
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(ZTH_MX,"ver_prep_mesonh_case3a::ZTH_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTH_MX)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTH_MX, 'VER_PREP_MESONH_CASE::ZTH_MX' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(ZTH_MX,"ver_prep_mesonh_case3b::ZTH_MX",PRECISION)
 !
@@ -328,9 +329,9 @@ CALL MPPDB_CHECK3D(ZTH_MX,"ver_prep_mesonh_case3b::ZTH_MX",PRECISION)
 !
 !20131112 add update_halo for this type of calculation
 CALL MPPDB_CHECK3D(ZPMASS_MX,"ver_prep_mesonh_case3c::ZPMASS_MX",PRECISION)
-CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMASS_MX)
-   CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
-      CALL CLEANLIST_ll(TZFIELDS_ll)
+CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMASS_MX, 'VER_PREP_MESONH_CASE::ZPMASS_MX' )
+CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+CALL CLEANLIST_ll(TZFIELDS_ll)
 !20131112 check3d
 CALL MPPDB_CHECK3D(ZPMASS_MX,"ver_prep_mesonh_case3d::ZPMASS_MX",PRECISION)
 !
diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90
index 25f46514d304aa77598eea6b7e3fdf070aea5109..8da4d84de6d7035719490d242b73f17ffb41efed 100644
--- a/src/MNH/ver_thermo.f90
+++ b/src/MNH/ver_thermo.f90
@@ -148,6 +148,7 @@ END MODULE MODI_VER_THERMO
 !!                                              because we now do it in SET_REF
 !!                     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -271,7 +272,7 @@ END IF
 XTHT(:,:,:)=ZTHV(:,:,:)*(1.+WATER_SUM(XRT(:,:,:,:)))/(1.+XRV/XRD*XRT(:,:,:,1))
 !
 !20131113 add update_halo here
-CALL ADD3DFIELD_ll(TZFIELDS_ll,XTHT )
+CALL ADD3DFIELD_ll( TZFIELDS_ll, XTHT, 'VER_THERMO::XTHT' )
    CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
       CALL CLEANLIST_ll(TZFIELDS_ll)
 CALL MPPDB_CHECK3D(XTHT,"PGDFILTER9:XTHT",PRECISION)
diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90
index f047a5405a3a638958afbd3f21e42fb770188a10..3b348d47d3fcd02ab1cf41e01de0606a5498808f 100644
--- a/src/MNH/viscosity.f90
+++ b/src/MNH/viscosity.f90
@@ -90,6 +90,7 @@ SUBROUTINE VISCOSITY(HLBCX, HLBCY, KRR, KSV, PNU, PPRANDTL,          &
 !!    MODIFICATIONS
 !!    -------------
 !!      01/18 (C.Lac) Add budgets
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -260,7 +261,7 @@ IF (OVISC_UVW) THEN
                    PDZY,PDZZ,PRHODJ,ZY1)
 !! Update halo to compute the source term
  NULLIFY(TZFIELDS_ll)
- CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPu)
+ CALL ADD3DFIELD_ll( TZFIELDS_ll, ZLAPu, 'VISCOSITY::ZLAPu' )
  CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
  CALL CLEANLIST_ll(TZFIELDS_ll)
 !
@@ -281,7 +282,7 @@ IF (OVISC_UVW) THEN
 !! Update halo to compute the source term
 !
  NULLIFY(TZFIELDS_ll)
- CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPv)
+ CALL ADD3DFIELD_ll( TZFIELDS_ll, ZLAPv, 'VISCOSITY::ZLAPv' )
  CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
  CALL CLEANLIST_ll(TZFIELDS_ll)
 !
diff --git a/src/MNH/zdiffusetup.f90 b/src/MNH/zdiffusetup.f90
index b6751b5eaa29f58ca781b51bfac70ec70991f4bf..3b7abb83c752596d0e25eb7aa264231b45efe6b0 100644
--- a/src/MNH/zdiffusetup.f90
+++ b/src/MNH/zdiffusetup.f90
@@ -54,6 +54,7 @@ END MODULE MODI_ZDIFFUSETUP
 !  J. Escobar  07/10/2015: remove print
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
 !  P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !
 !*       0.    DECLARATIONS
 !              ------------ 
@@ -153,7 +154,7 @@ NULLIFY(TZHGTMASS_ll,TZHGTHALO2_ll)
 ZZMASS = MZF(1,IKU,1,PZZ)
 
 CALL INIT_HALO2_ll(TZHGTHALO2_ll,1,IIU,IJU,IKU)
-CALL ADD3DFIELD_ll(TZHGTMASS_ll,ZZMASS)
+CALL ADD3DFIELD_ll( TZHGTMASS_ll, ZZMASS, 'ZDIFFUSETUP::ZZMASS' )
 
 CALL UPDATE_HALO2_ll(TZHGTMASS_ll,TZHGTHALO2_ll,IERROR)
 !JUAN
diff --git a/src/MNH/zs_boundaryn.f90 b/src/MNH/zs_boundaryn.f90
index b26462efd793b2cebedd6ebf2961bd32991d3db2..4e2f7935a8910fe093c2241ea8c7ecde1023de7a 100644
--- a/src/MNH/zs_boundaryn.f90
+++ b/src/MNH/zs_boundaryn.f90
@@ -83,7 +83,8 @@ END MODULE MODI_ZS_BOUNDARY_n
 !!    MODIFICATIONS
 !!    -------------
 !!      Original     1/2/99 
-!!                 
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -194,7 +195,7 @@ IF(HLBCY(1)/='CYCL' .AND. LSOUTH_ll()) PZS(IIB:IIE,1)   = ZZSLS(IIB:IIE,1,1)
 IF(HLBCY(2)/='CYCL' .AND. LNORTH_ll()) PZS(IIB:IIE,IJU) = ZZSLS(IIB:IIE,IJU,1)
 !
 NULLIFY(TZLSFIELD_ll)
-CALL ADD2DFIELD_ll(TZLSFIELD_ll, PZS)
+CALL ADD2DFIELD_ll( TZLSFIELD_ll, PZS, 'ZS_BOUNDARY_n::PZS' )
 CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll)
 CALL CLEANLIST_ll(TZLSFIELD_ll)
 !
diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90
index 4fa76acf100db303d96422853df7bbd998f7f663..de9025e0f7668d7f4d216f2741999e9c84d36aeb 100644
--- a/src/MNH/zsmt_pgd.f90
+++ b/src/MNH/zsmt_pgd.f90
@@ -62,6 +62,7 @@ END MODULE MODI_ZSMT_PGD
 !!      J.Escobar  23/06/2015 : correction for JPHEXT<>1
 !!      Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!      Q. Rodier 01/2019 : add a new filtering for very high slopes (applied locally)
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -177,7 +178,7 @@ ZMASK(:,IJE+JI) = ZMASK(:,IJE)
 ENDDO
 !
 ZMASK= 1.-ZMASK
-CALL ADD2DFIELD_ll(THALO_ll,ZMASK)
+CALL ADD2DFIELD_ll( THALO_ll, ZMASK, 'ZSMT_PGD::ZMASK' )
 CALL UPDATE_HALO_ll(THALO_ll,INFO_ll)
 CALL CLEANLIST_ll(THALO_ll)
 !
@@ -189,10 +190,10 @@ CALL CLEANLIST_ll(THALO_ll)
 !
 ZSMOOTH_ZS = ZZS
 !
-CALL ADD2DFIELD_ll(THALO_ll,ZZS)
-CALL ADD2DFIELD_ll(THALO_ll,ZSMOOTH_ZS)
-CALL ADD2DFIELD_ll(THALO_ll,ZSLOPEX)
-CALL ADD2DFIELD_ll(THALO_ll,ZSLOPEY)
+CALL ADD2DFIELD_ll( THALO_ll, ZZS,        'ZSMT_PGD::ZZS' )
+CALL ADD2DFIELD_ll( THALO_ll, ZSMOOTH_ZS, 'ZSMT_PGD::ZSMOOTH_ZS' )
+CALL ADD2DFIELD_ll( THALO_ll, ZSLOPEX,    'ZSMT_PGD::ZSLOPEX' )
+CALL ADD2DFIELD_ll( THALO_ll, ZSLOPEY,    'ZSMT_PGD::ZSLOPEY' )
 !
 CALL UPDATE_HALO_ll(THALO_ll,INFO_ll)
 
diff --git a/src/MNH/zsmt_pic.f90 b/src/MNH/zsmt_pic.f90
index 403b2a4635ef063d8b9009cff4123e54cfcf3928..7bb4c89c76a736ee9975cf1af88f08ed21650b5d 100644
--- a/src/MNH/zsmt_pic.f90
+++ b/src/MNH/zsmt_pic.f90
@@ -52,6 +52,7 @@ END MODULE MODI_ZSMT_PIC
 !!    MODIFICATIONS
 !!    -------------
 !!      Original        nov 2005
+!  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -121,8 +122,8 @@ ELSE
     ENDDO
     XZSMT(:,1) = ZZS(:,1)
     XZSMT(:,IJU) = ZZS(:,IJU)
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,ZZS)
-    CALL ADD2DFIELD_ll(TZFIELDS_ll,XZSMT)
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, ZZS,   'ZSMT_PIC::ZZS'   )
+    CALL ADD2DFIELD_ll( TZFIELDS_ll, XZSMT, 'ZSMT_PIC::XZSMT' )
     CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
     CALL CLEANLIST_ll(TZFIELDS_ll)
   ENDDO