diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
index 1387fef42fba629b1b789ccc6e4aebad9aa2806e..e706563ddc318c15661fcea64d12fd796b1dd3b9 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90
@@ -4373,7 +4373,7 @@ TYPE(TFILEDATA)      :: TZOUTPUT
 
 IF ( LOUT_BIGBOX_WRITE ) THEN
   DO JI = 1, SIZE( NOUT_FIELDLIST )
-    CALL IO_Fieldlist_1field_write( TPOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), 0, TOUT_BOXES(0) )
+    CALL IO_Fieldlist_1field_write( TPOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), TOUT_BOXES(0) )
   END DO
 END IF
 
@@ -4399,12 +4399,12 @@ IF ( NOUT_NBOXES > 0 ) THEN
 
     ! Write fields common to all boxes
     DO JI = 1, SIZE( NOUT_FIELDLIST )
-      CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), JBOX, TOUT_BOXES(JBOX) )
+      CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), TOUT_BOXES(JBOX) )
     END DO
 
     ! Write box-specific fields
     DO JI = 1, SIZE( TOUT_BOXES(JBOX)%NFIELDLIST_SUPP )
-      CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(TOUT_BOXES(JBOX)%NFIELDLIST_SUPP(JI)), JBOX, TOUT_BOXES(JBOX) )
+      CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(TOUT_BOXES(JBOX)%NFIELDLIST_SUPP(JI)), TOUT_BOXES(JBOX) )
     END DO
 
       ! Restore the root group (not really necessary but cleaner)
@@ -4415,7 +4415,7 @@ END IF
 END SUBROUTINE IO_Fieldlist_write
 
 
-SUBROUTINE IO_Fieldlist_1field_write( TPOUTPUT, TPFIELD, KBOXID, TPBOX )
+SUBROUTINE IO_Fieldlist_1field_write( TPOUTPUT, TPFIELD, TPBOX )
 
 USE MODD_FIELD,      ONLY: TFIELDDATA, TFIELDMETADATA
 USE MODD_OUT_n,      ONLY: CMAINDOMAINNAME, TOUTBOXMETADATA
@@ -4424,7 +4424,6 @@ USE MODE_MODELN_HANDLER, ONLY: GET_CURRENT_MODEL_INDEX
 
 TYPE(TFILEDATA),       INTENT(IN)    :: TPOUTPUT !Output file
 TYPE(TFIELDDATA),      INTENT(IN)    :: TPFIELD
-INTEGER,               INTENT(IN)    :: KBOXID
 TYPE(TOUTBOXMETADATA), INTENT(INOUT) :: TPBOX
 
 INTEGER              :: IIINF, IJINF, IKINF
@@ -4591,7 +4590,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
             CALL IO_Field_write(TPOUTPUT,TPFIELD,TPFIELD%TFIELD_X1D(IMI)%DATA)
           ELSE
             CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_X1D(IMI)%DATA, &
-                                     KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = KBOXID )
+                                     KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = TPBOX%NID )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -4614,7 +4613,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
             CALL IO_Field_write(TPOUTPUT,TPFIELD,TPFIELD%TFIELD_N1D(IMI)%DATA)
           ELSE
             CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_N1D(IMI)%DATA, &
-                                     KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = KBOXID )
+                                     KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = TPBOX%NID )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -4718,7 +4717,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
             CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_X2D(IMI)%DATA, &
                                      KXOBOX = IIINF, KXEBOX = IISUP,                             &
                                      KYOBOX = IJINF, KYEBOX = IJSUP,                             &
-                                     KBOXID = KBOXID                                             )
+                                     KBOXID = TPBOX%NID                                          )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -4743,7 +4742,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
             CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_N2D(IMI)%DATA, &
                                      KXOBOX = IIINF, KXEBOX = IISUP,                             &
                                      KYOBOX = IJINF, KYEBOX = IJSUP,                             &
-                                     KBOXID = KBOXID                                             )
+                                     KBOXID = TPBOX%NID                                          )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -4790,7 +4789,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
                                      KXOBOX = IIINF, KXEBOX = IISUP,                             &
                                      KYOBOX = IJINF, KYEBOX = IJSUP,                             &
                                      KZOBOX = IKINF, KZEBOX = IKSUP,                             &
-                                     KBOXID = KBOXID                                             )
+                                     KBOXID = TPBOX%NID                                          )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -4817,7 +4816,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
                                      KXOBOX = IIINF, KXEBOX = IISUP,                             &
                                      KYOBOX = IJINF, KYEBOX = IJSUP,                             &
                                      KZOBOX = IKINF, KZEBOX = IKSUP,                             &
-                                     KBOXID = KBOXID                                             )
+                                     KBOXID = TPBOX%NID                                          )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -4865,7 +4864,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS)
                                      KXOBOX = IIINF, KXEBOX = IISUP,                             &
                                      KYOBOX = IJINF, KYEBOX = IJSUP,                             &
                                      KZOBOX = IKINF, KZEBOX = IKSUP,                             &
-                                     KBOXID = KBOXID                                             )
+                                     KBOXID = TPBOX%NID                                          )
           END IF
         ELSE
           call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// &
@@ -5278,7 +5277,7 @@ SUBROUTINE IO_Field_box_user_intern_write( tpoutput, tpfield, obox_write )
   integer          :: jbox
   type(tfiledata)  :: tzoutput
 
-  if ( obox_write(0) ) call IO_Fieldlist_1field_write( tpoutput, tpfield, 0, tout_boxes(0) )
+  if ( obox_write(0) ) call IO_Fieldlist_1field_write( tpoutput, tpfield, tout_boxes(0) )
 
   if ( nout_nboxes > 0 ) then
     tzoutput = tpoutput
@@ -5302,7 +5301,7 @@ SUBROUTINE IO_Field_box_user_intern_write( tpoutput, tpfield, obox_write )
       if ( isp == tzoutput%nmaster_rank ) tzoutput%nncid = tzoutput%nboxncid(jbox)
 
       ! Write data
-      call IO_Fieldlist_1field_write( tzoutput, tpfield, jbox, tout_boxes(jbox) )
+      call IO_Fieldlist_1field_write( tzoutput, tpfield, tout_boxes(jbox) )
     end do
   end if
 
diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index 020cb37a866a538838bedbd8532cae6b9f8eb1f5..32f51fe5fe4878a9d0803f535d2b591c0d559ec2 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -839,6 +839,7 @@ SUBROUTINE IO_BOX_PREPARE( KMI )
 
   ! Treat special box for main domain
   TOUT_BOXES(0)%CNAME = CMAINDOMAINNAME
+  TOUT_BOXES(0)%NID = 0
 
   ALLOCATE( TOUT_BOXES(0)%NFIELDLIST_SUPP(0) )
 
@@ -879,6 +880,9 @@ SUBROUTINE IO_BOX_PREPARE( KMI )
     ELSE
       WRITE( TOUT_BOXES(JI)%CNAME, '( "Box_", I4.4 )' ) JI
     END IF
+
+    TOUT_BOXES(JI)%NID = JI
+
     TOUT_BOXES(JI)%NIINF = NOUT_BOX_IINF(IMI,JI)
     TOUT_BOXES(JI)%NISUP = NOUT_BOX_ISUP(IMI,JI)
     TOUT_BOXES(JI)%NJINF = NOUT_BOX_JINF(IMI,JI)
diff --git a/src/MNH/modd_outn.f90 b/src/MNH/modd_outn.f90
index 0125394fe5fd54b82b963ad7e430da0b631b8b90..fbdf63e62c8970f71ce3056f1cd530804d58b949 100644
--- a/src/MNH/modd_outn.f90
+++ b/src/MNH/modd_outn.f90
@@ -50,6 +50,7 @@ CHARACTER(LEN=NMNHNAMELGTMAX), PARAMETER :: CMAINDOMAINNAME = 'MAINDOMAIN'
 
 TYPE TOUTBOXMETADATA
   CHARACTER(LEN=NMNHNAMELGTMAX):: CNAME = '' ! Name of the box
+  INTEGER :: NID = NNEGUNDEF ! Id of the box
   INTEGER, DIMENSION(:), ALLOCATABLE :: NFIELDLIST_SUPP ! Lists of fields to write (added to the NOUT_FIELDLIST)
   INTEGER :: NIINF = NNEGUNDEF ! Box coordinates in physical domain
   INTEGER :: NISUP = NNEGUNDEF