diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 7460f84cd4d77d9c61eef16596bbcd71f8ffbadf..e175c32fd0aae76a79558f32f9dcac381d1521a8 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -51,7 +51,7 @@ IF ( IP .EQ. 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK
 
 END SUBROUTINE SET_FMPACK_ll
 
-SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS,HPROGRAM_ORIG)
+SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS)
 !
 USE MODD_CONF,  ONLY: CPROGRAM, NMNHVERSION
 USE MODD_IO_ll, ONLY: TFILEDATA
@@ -65,7 +65,6 @@ INTEGER,                INTENT(OUT), OPTIONAL :: KRESP  ! Return code
 LOGICAL,                INTENT(IN),  OPTIONAL :: OPARALLELIO
 CHARACTER(LEN=*),       INTENT(IN),  OPTIONAL :: HPOSITION
 CHARACTER(LEN=*),       INTENT(IN),  OPTIONAL :: HSTATUS
-CHARACTER(LEN=*),       INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
 !
 INTEGER :: IRESP,IRESP2
 INTEGER :: IMASDEV,IBUGFIX
@@ -159,7 +158,7 @@ SELECT CASE(TPFILE%CTYPE)
       TZFILE_DES%NOPEN         = TZFILE_DES%NOPEN + 1
     ENDIF
     !
-    CALL FMOPEN_ll(TPFILE,IRESP,OPARALLELIO=OPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG)
+    CALL FMOPEN_ll(TPFILE,IRESP,OPARALLELIO=OPARALLELIO)
     !
     !Compare MNHVERSION of file with current version
     IF (TRIM(TPFILE%CMODE) == 'READ') THEN
@@ -226,7 +225,7 @@ IF (PRESENT(KRESP)) KRESP = IRESP
 !
 END SUBROUTINE IO_FILE_OPEN_ll
 
-SUBROUTINE FMOPEN_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG)
+SUBROUTINE FMOPEN_ll(TPFILE,KRESP,OPARALLELIO)
 USE MODD_IO_ll, ONLY : ISTDOUT,TFILEDATA
 USE MODE_IO_ll, ONLY : OPEN_ll,GCONFIO
 !JUANZ
@@ -239,7 +238,6 @@ USE MODE_NETCDF
 TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure
 INTEGER,         INTENT(OUT)   :: KRESP  ! return-code
 LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
-CHARACTER(LEN=*),INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
 !
 !   Local variables
 !
@@ -315,7 +313,7 @@ ENDIF
     INB_PROCIO = NB_PROCIO_W
  END SELECT
 CALL OPEN_ll(TPFILE,STATUS="UNKNOWN",MODE='IO_ZSPLIT',IOSTAT=IRESP,     &
-             KNB_PROCIO=INB_PROCIO,KMELEV=IMELEV,OPARALLELIO=GPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG)
+             KNB_PROCIO=INB_PROCIO,KMELEV=IMELEV,OPARALLELIO=GPARALLELIO)
 
 IF (IRESP /= 0) GOTO 1000
 
@@ -391,12 +389,7 @@ IF (TPFILE%LMASTER) THEN
     WRITE (ISTDOUT,*) ' file ',TRIM(YFILEM)//'.lfi',' previously created with LFI'
   ENDIF
 END IF
-#if defined(MNH_IOCDF4)
-!Write coordinates variables in NetCDF file
-IF (YACTION == 'WRITE' .AND. TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN
-  CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG)
-END IF
-#endif
+
 ! Broadcast ERROR
 CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR)
 IF (IRESP /= 0) GOTO 1000
@@ -413,7 +406,7 @@ KRESP=IRESP
 
 END SUBROUTINE FMOPEN_ll
   
-SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO)
+SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG)
 !
 USE MODD_CONF,  ONLY: CPROGRAM
 USE MODD_IO_ll, ONLY: TFILEDATA
@@ -423,6 +416,7 @@ USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 TYPE(TFILEDATA),  INTENT(INOUT)         :: TPFILE ! File structure
 INTEGER,          INTENT(OUT), OPTIONAL :: KRESP  ! Return code
 LOGICAL,          INTENT(IN),  OPTIONAL :: OPARALLELIO
+CHARACTER(LEN=*), INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
 !
 INTEGER                 :: IRESP, JI
 TYPE(TFILEDATA),POINTER :: TZFILE_DES
@@ -523,7 +517,7 @@ SELECT CASE(TPFILE%CTYPE)
       END IF
     ENDIF
     !
-    CALL FMCLOS_ll(TPFILE,'KEEP',KRESP=IRESP,OPARALLELIO=OPARALLELIO)
+    CALL FMCLOS_ll(TPFILE,'KEEP',KRESP=IRESP,OPARALLELIO=OPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG)
     !
     TPFILE%NLFIFLU = -1
     TPFILE%NNCID   = -1
@@ -551,7 +545,7 @@ IF (PRESENT(KRESP)) KRESP=IRESP
 !
 END SUBROUTINE IO_FILE_CLOSE_ll
 
-SUBROUTINE FMCLOS_ll(TPFILE,HSTATU,KRESP,OPARALLELIO)
+SUBROUTINE FMCLOS_ll(TPFILE,HSTATU,KRESP,OPARALLELIO,HPROGRAM_ORIG)
 !
 !!    MODIFICATIONS
 !!    -------------
@@ -571,6 +565,7 @@ TYPE(TFILEDATA),      INTENT(IN) :: TPFILE ! File structure
 CHARACTER(LEN=*),     INTENT(IN) :: HSTATU ! status for the closed file
 INTEGER,              INTENT(OUT), OPTIONAL :: KRESP   ! return-code if problems araised
 LOGICAL,              INTENT(IN),  OPTIONAL :: OPARALLELIO
+CHARACTER(LEN=*),     INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
 
 INTEGER              ::IRESP,IROWF
 CHARACTER(LEN=28)    :: YFILEM  ! name of the file
@@ -617,6 +612,13 @@ ELSE
   ENDIF
 ENDIF
 
+#if defined(MNH_IOCDF4)
+!Write coordinates variables in NetCDF file
+IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN
+  CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG)
+END IF
+#endif
+
 IF (TPFILE%LMASTER) THEN
   IF (TPFILE%NLFIFLU > 0) THEN
      CALL LFIFER(IRESP8,TPFILE%NLFIFLU,YSTATU)
diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90
index 577c57abf07fbacec5344f74740e697b648e0ffc..3f463e0c3348c8407d1caa8a2a2d93c053046718 100644
--- a/src/LIB/SURCOUCHE/src/mode_io.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io.f90
@@ -210,8 +210,7 @@ CONTAINS
        PAD,      &
        KNB_PROCIO,& 
        KMELEV,&
-       OPARALLELIO, &
-       HPROGRAM_ORIG)
+       OPARALLELIO)
 #if defined(MNH_IOCDF4)
   USE MODD_NETCDF, ONLY:IDCDF_KIND
   USE MODE_NETCDF
@@ -234,7 +233,6 @@ CONTAINS
     INTEGER,         INTENT(IN),  OPTIONAL :: KNB_PROCIO
     INTEGER(KIND=LFI_INT), INTENT(IN),  OPTIONAL :: KMELEV    
     LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
-    CHARACTER(LEN=*),INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
     !
     ! local var
     !
@@ -718,13 +716,6 @@ CONTAINS
                 END IF
              ENDIF
              !
-#if defined(MNH_IOCDF4)
-             !Write coordinates variables in NetCDF file
-             IF (YACTION == 'WRITE' .AND. TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN
-               CALL IO_WRITE_COORDVAR_NC4(TZSPLITFILE,HPROGRAM_ORIG=HPROGRAM_ORIG)
-             END IF
-#endif
-             !
              TZSPLITFILE%LOPENED = .TRUE.
              TZSPLITFILE%NOPEN         = TZSPLITFILE%NOPEN         + 1
              TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1
@@ -751,7 +742,7 @@ CONTAINS
 
   END SUBROUTINE OPEN_ll
 
-  SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,STATUS,OPARALLELIO)
+  SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,STATUS,OPARALLELIO,HPROGRAM_ORIG)
   USE MODD_IO_ll
   USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 #if defined(MNH_IOCDF4)
@@ -761,6 +752,7 @@ CONTAINS
     INTEGER,          INTENT(OUT), OPTIONAL :: IOSTAT
     CHARACTER(LEN=*), INTENT(IN),  OPTIONAL :: STATUS
     LOGICAL,          INTENT(IN),  OPTIONAL :: OPARALLELIO
+    CHARACTER(LEN=*), INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
 
     INTEGER :: IERR, IGLOBALERR, IGLOBALERR2, IRESP, IRESP2
 
@@ -800,6 +792,12 @@ CONTAINS
     IF( GPARALLELIO ) THEN
       DO IFILE=1,TPFILE%NSUBFILES_IOZ
         TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE
+#if defined(MNH_IOCDF4)
+        !Write coordinates variables in NetCDF file
+        IF (TZFILE%CMODE == 'WRITE' .AND. (TZFILE%CFORMAT=='NETCDF4' .OR. TZFILE%CFORMAT=='LFICDF4')) THEN
+          CALL IO_WRITE_COORDVAR_NC4(TZFILE,HPROGRAM_ORIG=HPROGRAM_ORIG)
+        END IF
+#endif
         IF (TPFILE%LMASTER) THEN
           IF (TZFILE%NLFIFLU > 0) THEN !if LFI
             CALL LFIFER(IRESP8,TZFILE%NLFIFLU,YSTATU)