diff --git a/src/LIB/SURCOUCHE/src/extern_userio.f90 b/src/LIB/SURCOUCHE/src/extern_userio.f90
index 20cfadc6257405838521f23cfca8920c3b160b50..14c94c0c8b1afc3e561c13b50e1f960aa49abe01 100644
--- a/src/LIB/SURCOUCHE/src/extern_userio.f90
+++ b/src/LIB/SURCOUCHE/src/extern_userio.f90
@@ -125,44 +125,41 @@ CALL E_FMLOOK_ll(HFILEM,HFIPRI,KNUMBR,KRESP)
 
 END SUBROUTINE FMLOOK_ll
 
-SUBROUTINE FMOPEN_ll(HFILEM,HACTION,HFIPRI,KNPRAR,KFTYPE,KVERB,KNINAR&
-     & ,KRESP,OPARALLELIO)
+SUBROUTINE FMOPEN_ll(HFILEM,HACTION,KNPRAR,KFTYPE,KVERB,KNINAR&
+     & ,KRESP,OPARALLELIO,TPFILE)
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODE_FM, ONLY : E_FMOPEN_ll=>FMOPEN_ll
 IMPLICIT NONE 
 CHARACTER(LEN=*),INTENT(IN) ::HFILEM  ! name of the file.
 CHARACTER(LEN=*),INTENT(IN) ::HACTION ! Action upon the file
-                                      ! 'READ' or 'WRITE'
-CHARACTER(LEN=*),INTENT(IN) ::HFIPRI  ! file for prints in FM.
+! 'READ' or 'WRITE'
 INTEGER,         INTENT(IN) ::KNPRAR  ! number of predicted
-                                      ! articles  (not vital).
+! articles  (not vital).
 INTEGER,         INTENT(IN) ::KFTYPE  ! type of FM-file.
 INTEGER,         INTENT(IN) ::KVERB   ! level of verbose.
-INTEGER,         INTENT(OUT)::KNINAR  ! number of articles initially present in the file.
-INTEGER,         INTENT(OUT)::KRESP   ! return-code if a problem araised.
+INTEGER,         INTENT(OUT)::KNINAR  ! number of articles
+! initially
+! present in the file.
+INTEGER,         INTENT(OUT), OPTIONAL :: KRESP ! return-code if a problem
+! araised.
 LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
+TYPE(TFILEDATA), INTENT(INOUT), OPTIONAL :: TPFILE ! File structure
 
-IF( PRESENT(OPARALLELIO) ) THEN
-  CALL E_FMOPEN_ll(HFILEM,HACTION,HFIPRI,KNPRAR,KFTYPE,KVERB,KNINAR,KRESP,OPARALLELIO=OPARALLELIO)
-ELSE
-  CALL E_FMOPEN_ll(HFILEM,HACTION,HFIPRI,KNPRAR,KFTYPE,KVERB,KNINAR,KRESP)
-ENDIF
+CALL E_FMOPEN_ll(HFILEM,HACTION,KNPRAR,KFTYPE,KVERB,KNINAR,KRESP,OPARALLELIO,TPFILE)
 
 END SUBROUTINE FMOPEN_ll
 
-SUBROUTINE FMCLOS_ll(HFILEM,HSTATU,HFIPRI,KRESP,OPARALLELIO)
+SUBROUTINE FMCLOS_ll(HFILEM,HSTATU,KRESP,OPARALLELIO,TPFILE)
+USE MODD_IO_ll, ONLY : TFILEDATA
 USE MODE_FM, ONLY : E_FMCLOS_ll=>FMCLOS_ll
 IMPLICIT NONE
 CHARACTER(LEN=*),     INTENT(IN) ::HFILEM  ! file name
 CHARACTER(LEN=*),     INTENT(IN) ::HSTATU  ! status for the closed file
-CHARACTER(LEN=*),     INTENT(IN) ::HFIPRI  ! file for prints in FM
-INTEGER,              INTENT(OUT)::KRESP   ! return-code if problems araised
-LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
+INTEGER,              INTENT(OUT), OPTIONAL :: KRESP   ! return-code if problems araised
+LOGICAL,              INTENT(IN),  OPTIONAL :: OPARALLELIO
+TYPE(TFILEDATA),      INTENT(IN),  OPTIONAL :: TPFILE ! File structure
 
-IF( PRESENT(OPARALLELIO) ) THEN
-  CALL E_FMCLOS_ll(HFILEM,HSTATU,HFIPRI,KRESP,OPARALLELIO=OPARALLELIO)
-ELSE
-  CALL E_FMCLOS_ll(HFILEM,HSTATU,HFIPRI,KRESP)
-ENDIF
+CALL E_FMCLOS_ll(HFILEM,HSTATU,KRESP,OPARALLELIO,TPFILE)
 
 END SUBROUTINE FMCLOS_ll
 !
diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90
index b0290eaad360fa48e23fe49d784211c64867805d..5d43483180bb3fc2db52d557be2ec4a55f501e51 100644
--- a/src/LIB/SURCOUCHE/src/modd_io.f90
+++ b/src/LIB/SURCOUCHE/src/modd_io.f90
@@ -68,7 +68,7 @@ END TYPE TOUTBAK
 TYPE TFILEDATA
   CHARACTER(LEN=28) :: CNAME               !Filename
   CHARACTER(LEN=13) :: CTYPE   = "UNKNOWN" !Filetype (backup, output, prepidealcase...)
-  CHARACTER(LEN=7)  :: CFORMAT = "UNKNOWN" !Fileformat (NETCDF4, LFI...)
+  CHARACTER(LEN=7)  :: CFORMAT = "UNKNOWN" !Fileformat (NETCDF4, LFI, LFICDF4...)
   CHARACTER(LEN=7)  :: CMODE   = "UNKNOWN" !Opening mode (read, write...)
   LOGICAL           :: LOPENED = .FALSE.   !Is the file opened
   INTEGER           :: NOPEN_CURRENT = 0   !Number of times the file is currently opened (several opens without close are allowed)
@@ -88,6 +88,9 @@ TYPE TFILEDATA
   LOGICAL                  :: LNCCOMPRESS = .FALSE. ! Do compression on fields
   INTEGER(KIND=IDCDF_KIND) :: NNCCOMPRESS_LEVEL = 0 ! Compression level
   !
+  !Fields for ASCII files
+  INTEGER :: NLU = -1 !Logical unit number
+  !
   TYPE(TFILEDATA),POINTER :: TDADFILE   => NULL() !Corresponding dad file
   TYPE(TFILEDATA),POINTER :: TFILE_PREV => NULL()
   TYPE(TFILEDATA),POINTER :: TFILE_NEXT => NULL()
diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 03d39b4ea712b95d1bc782570ad6bd39017c5995..3154d1582c47ef16e606e141bddfc6992b9612a7 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -132,18 +132,18 @@ END IF
 
 END SUBROUTINE FMLOOK_ll
 
-SUBROUTINE IO_FILE_OPEN_ll(TPFILE,HFIPRI,KRESP,OPARALLELIO)
+SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO)
 !
 USE MODD_CONF,  ONLY: NMNHVERSION
 USE MODD_IO_ll, ONLY: ISP,LIOCDF4,LLFIOUT,LLFIREAD,TFILEDATA
 USE MODE_FD_ll, ONLY: FD_ll,GETFD
 USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT
 USE MODE_FMREAD
+USE MODE_IO_ll, ONLY : OPEN_ll
 USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 !
-TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPFILE ! File structure
-CHARACTER(LEN=*),       INTENT(IN)    :: HFIPRI ! File for prints in FM
-INTEGER,                INTENT(OUT)   :: KRESP  ! Return code
+TYPE(TFILEDATA),POINTER,INTENT(INOUT)         :: TPFILE ! File structure
+INTEGER,                INTENT(OUT), OPTIONAL :: KRESP  ! Return code
 LOGICAL,                INTENT(IN),  OPTIONAL :: OPARALLELIO
 !
 INTEGER :: ININAR ! Number of articles present in LFI file (unused here)
@@ -170,97 +170,104 @@ END IF
 CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP)
 IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//' not in filelist')
 !
-CALL FMOPEN_ll(TPFILE%CNAME,TPFILE%CMODE,HFIPRI,TPFILE%NLFINPRAR,TPFILE%NLFITYPE,TPFILE%NLFIVERB,ININAR,KRESP,&
-               TPFILE=TPFILE,OPARALLELIO=OPARALLELIO)
-!
-TPFILE%LOPENED = .TRUE.
-TPFILE%NOPEN   = TPFILE%NOPEN + 1
-!
-TZFDLFI=>GETFD(ADJUSTL(TRIM(TPFILE%CNAME)//'.lfi'))
-!TZFDLFI%CDF exists only if ISP == TZFDLFI%OWNER
-IF (TRIM(TPFILE%CMODE) == 'READ' .AND. ISP == TZFDLFI%OWNER) THEN
-  IF (LIOCDF4 .AND. .NOT.LLFIREAD) THEN
-    TPFILE%NNCID = TZFDLFI%CDF%NCID
-    IF (TPFILE%NNCID<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NNCID for '//TRIM(TPFILE%CNAME))
-  ELSE
-    TPFILE%NLFIFLU = TZFDLFI%FLU
-    IF (TPFILE%NLFIFLU<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NLFIFLU for '//TRIM(TPFILE%CNAME))
-  ENDIF
-ELSE IF (TRIM(TPFILE%CMODE) == 'WRITE' .AND. ISP == TZFDLFI%OWNER) THEN
-  IF (LIOCDF4) THEN
-    TPFILE%NNCID = TZFDLFI%CDF%NCID
-    IF (TPFILE%NNCID<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NNCID for '//TRIM(TPFILE%CNAME))
-  END IF
-  IF (.NOT.LIOCDF4 .OR. LLFIOUT) THEN
-    TPFILE%NLFIFLU = TZFDLFI%FLU
-    IF (TPFILE%NLFIFLU<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NLFIFLU for '//TRIM(TPFILE%CNAME))
+IF (TRIM(TPFILE%CTYPE)/='OUTPUTLISTING') THEN
+  CALL FMOPEN_ll(TPFILE%CNAME,TPFILE%CMODE,TPFILE%NLFINPRAR,TPFILE%NLFITYPE,TPFILE%NLFIVERB,ININAR,KRESP,&
+                TPFILE=TPFILE,OPARALLELIO=OPARALLELIO)
+  !
+  TZFDLFI=>GETFD(ADJUSTL(TRIM(TPFILE%CNAME)//'.lfi'))
+  !TZFDLFI%CDF exists only if ISP == TZFDLFI%OWNER
+  IF (TRIM(TPFILE%CMODE) == 'READ' .AND. ISP == TZFDLFI%OWNER) THEN
+    IF (LIOCDF4 .AND. .NOT.LLFIREAD) THEN
+      TPFILE%NNCID = TZFDLFI%CDF%NCID
+      IF (TPFILE%NNCID<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NNCID for '//TRIM(TPFILE%CNAME))
+    ELSE
+      TPFILE%NLFIFLU = TZFDLFI%FLU
+      IF (TPFILE%NLFIFLU<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NLFIFLU for '//TRIM(TPFILE%CNAME))
+    ENDIF
+  ELSE IF (TRIM(TPFILE%CMODE) == 'WRITE' .AND. ISP == TZFDLFI%OWNER) THEN
+    IF (LIOCDF4) THEN
+      TPFILE%NNCID = TZFDLFI%CDF%NCID
+      IF (TPFILE%NNCID<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NNCID for '//TRIM(TPFILE%CNAME))
+    END IF
+    IF (.NOT.LIOCDF4 .OR. LLFIOUT) THEN
+      TPFILE%NLFIFLU = TZFDLFI%FLU
+      IF (TPFILE%NLFIFLU<0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','invalid NLFIFLU for '//TRIM(TPFILE%CNAME))
+    END IF
+  ELSE IF (TRIM(TPFILE%CMODE) /= 'READ' .AND. TRIM(TPFILE%CMODE) /= 'WRITE') THEN
+    CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','unknown opening mode ('//TRIM(TPFILE%CMODE)//') for '//TRIM(TPFILE%CNAME))
   END IF
-ELSE IF (TRIM(TPFILE%CMODE) /= 'READ' .AND. TRIM(TPFILE%CMODE) /= 'WRITE') THEN
-  CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','unknown opening mode ('//TRIM(TPFILE%CMODE)//') for '//TRIM(TPFILE%CNAME))
-END IF
-!
-!Compare MNHVERSION of file with current version
-IF (TRIM(TPFILE%CMODE) == 'READ' .AND. ISP == TZFDLFI%OWNER) THEN
-  IMNHVERSION(:) = 0
-  !Use TZFIELD because TFIELDLIST could be not initialised
-  TZFIELD%CMNHNAME   = 'MNHVERSION'
-  TZFIELD%CSTDNAME   = ''
-  TZFIELD%CLONGNAME  = 'MesoNH version'
-  TZFIELD%CUNITS     = ''
-  TZFIELD%CDIR       = '--'
-  TZFIELD%CCOMMENT   = ''
-  TZFIELD%NGRID      = 0
-  TZFIELD%NTYPE      = TYPEINT
-  TZFIELD%NDIMS      = 1
-  CALL IO_READ_FIELD(TPFILE,TZFIELD,IMNHVERSION,IRESP)
-  IF (IRESP/=0) THEN
-    TZFIELD%CMNHNAME   = 'MASDEV'
-    TZFIELD%CLONGNAME  = 'MesoNH version (without bugfix)'
-    CALL IO_READ_FIELD(TPFILE,TZFIELD,IMASDEV,IRESP)
+  !
+  !Compare MNHVERSION of file with current version
+  IF (TRIM(TPFILE%CMODE) == 'READ') THEN
+    IMNHVERSION(:) = 0
+    !Use TZFIELD because TFIELDLIST could be not initialised
+    TZFIELD%CMNHNAME   = 'MNHVERSION'
+    TZFIELD%CSTDNAME   = ''
+    TZFIELD%CLONGNAME  = 'MesoNH version'
+    TZFIELD%CUNITS     = ''
+    TZFIELD%CDIR       = '--'
+    TZFIELD%CCOMMENT   = ''
+    TZFIELD%NGRID      = 0
+    TZFIELD%NTYPE      = TYPEINT
+    TZFIELD%NDIMS      = 1
+    CALL IO_READ_FIELD(TPFILE,TZFIELD,IMNHVERSION,IRESP)
     IF (IRESP/=0) THEN
-      CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','unknown MASDEV version for '//TRIM(TPFILE%CNAME))
-    ELSE
-      IMNHVERSION(1)=IMASDEV/10
-      IMNHVERSION(2)=MOD(IMASDEV,10)
+      TZFIELD%CMNHNAME   = 'MASDEV'
+      TZFIELD%CLONGNAME  = 'MesoNH version (without bugfix)'
+      CALL IO_READ_FIELD(TPFILE,TZFIELD,IMASDEV,IRESP)
+      IF (IRESP/=0) THEN
+        CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','unknown MASDEV version for '//TRIM(TPFILE%CNAME))
+      ELSE
+        IMNHVERSION(1)=IMASDEV/10
+        IMNHVERSION(2)=MOD(IMASDEV,10)
+      END IF
+      !
+      TZFIELD%CMNHNAME   = 'BUGFIX'
+      TZFIELD%CLONGNAME  = 'MesoNH bugfix number'
+      CALL IO_READ_FIELD(TPFILE,TZFIELD,IBUGFIX,IRESP)
+      IF (IRESP/=0) THEN
+        CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','unknown BUGFIX version for '//TRIM(TPFILE%CNAME))
+      ELSE
+        IMNHVERSION(3)=IBUGFIX
+      END IF
     END IF
     !
-    TZFIELD%CMNHNAME   = 'BUGFIX'
-    TZFIELD%CLONGNAME  = 'MesoNH bugfix number'
-    CALL IO_READ_FIELD(TPFILE,TZFIELD,IBUGFIX,IRESP)
-    IF (IRESP/=0) THEN
-      CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','unknown BUGFIX version for '//TRIM(TPFILE%CNAME))
+    WRITE(YMNHVERSION_FILE,"( I0,'.',I0,'.',I0 )" ) IMNHVERSION(1),IMNHVERSION(2),IMNHVERSION(3)
+    WRITE(YMNHVERSION_CURR,"( I0,'.',I0,'.',I0 )" ) NMNHVERSION(1),NMNHVERSION(2),NMNHVERSION(3)
+    !
+    IF ( IMNHVERSION(1)==0 .AND. IMNHVERSION(2)==0 .AND. IMNHVERSION(3)==0 ) THEN
+      CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
+                    ' was written with an unknown version of MesoNH')
+    ELSE IF (  IMNHVERSION(1)< NMNHVERSION(1) .OR. &
+              (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)< NMNHVERSION(2)) .OR. &
+              (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)==NMNHVERSION(2) .AND. IMNHVERSION(3)<NMNHVERSION(3)) ) THEN
+      CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
+                    ' was written with an older version of MesoNH ('//TRIM(YMNHVERSION_FILE)//&
+                    ' instead of '//TRIM(YMNHVERSION_CURR)//')')
+    ELSE IF (  IMNHVERSION(1)> NMNHVERSION(1) .OR. &
+              (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)> NMNHVERSION(2)) .OR. &
+              (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)==NMNHVERSION(2) .AND. IMNHVERSION(3)>NMNHVERSION(3)) ) THEN
+      CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
+                    ' was written with a more recent version of MesoNH ('//TRIM(YMNHVERSION_FILE)//&
+                    ' instead of '//TRIM(YMNHVERSION_CURR)//')')
     ELSE
-      IMNHVERSION(3)=IBUGFIX
+      CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
+                    ' was written with the same version of MesoNH ('//TRIM(YMNHVERSION_CURR)//')')
     END IF
   END IF
-  !
-  WRITE(YMNHVERSION_FILE,"( I0,'.',I0,'.',I0 )" ) IMNHVERSION(1),IMNHVERSION(2),IMNHVERSION(3)
-  WRITE(YMNHVERSION_CURR,"( I0,'.',I0,'.',I0 )" ) NMNHVERSION(1),NMNHVERSION(2),NMNHVERSION(3)
-  !
-  IF ( IMNHVERSION(1)==0 .AND. IMNHVERSION(2)==0 .AND. IMNHVERSION(3)==0 ) THEN
-    CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
-                   ' was written with an unknown version of MesoNH')
-  ELSE IF (  IMNHVERSION(1)< NMNHVERSION(1) .OR. &
-            (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)< NMNHVERSION(2)) .OR. &
-            (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)==NMNHVERSION(2) .AND. IMNHVERSION(3)<NMNHVERSION(3)) ) THEN
-    CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
-                   ' was written with an older version of MesoNH ('//TRIM(YMNHVERSION_FILE)//&
-                   ' instead of '//TRIM(YMNHVERSION_CURR)//')')
-  ELSE IF (  IMNHVERSION(1)> NMNHVERSION(1) .OR. &
-            (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)> NMNHVERSION(2)) .OR. &
-            (IMNHVERSION(1)==NMNHVERSION(1) .AND. IMNHVERSION(2)==NMNHVERSION(2) .AND. IMNHVERSION(3)>NMNHVERSION(3)) ) THEN
-    CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
-                   ' was written with a more recent version of MesoNH ('//TRIM(YMNHVERSION_FILE)//&
-                   ' instead of '//TRIM(YMNHVERSION_CURR)//')')
-  ELSE
-    CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//&
-                   ' was written with the same version of MesoNH ('//TRIM(YMNHVERSION_CURR)//')')
-  END IF
+ELSE
+  !OUTPUTLISTING files
+  CALL OPEN_ll(UNIT=TPFILE%NLU,FILE=TPFILE%CNAME,IOSTAT=IRESP,FORM='FORMATTED', &
+               ACTION=TPFILE%CMODE,MODE='GLOBAL')
+  IF (PRESENT(KRESP)) KRESP = IRESP
 END IF
 !
+TPFILE%LOPENED = .TRUE.
+TPFILE%NOPEN   = TPFILE%NOPEN + 1
+!
 END SUBROUTINE IO_FILE_OPEN_ll
 
-SUBROUTINE FMOPEN_ll(HFILEM,HACTION,HFIPRI,KNPRAR,KFTYPE,KVERB,KNINAR&
+SUBROUTINE FMOPEN_ll(HFILEM,HACTION,KNPRAR,KFTYPE,KVERB,KNINAR&
      & ,KRESP,OPARALLELIO,TPFILE)
 USE MODD_IO_ll, ONLY : ISP,ISTDOUT,LFIPARAM,LIOCDF4,LLFIOUT,LLFIREAD,TFILEDATA
 USE MODE_FD_ll, ONLY : FD_ll,GETFD,JPFINL
@@ -275,7 +282,6 @@ USE MODE_NETCDF
 CHARACTER(LEN=*),INTENT(IN) ::HFILEM  ! name of the file.
 CHARACTER(LEN=*),INTENT(IN) ::HACTION ! Action upon the file
 ! 'READ' or 'WRITE'
-CHARACTER(LEN=*),INTENT(IN) ::HFIPRI  ! file for prints in FM.
 INTEGER,         INTENT(IN) ::KNPRAR  ! number of predicted
 ! articles  (not vital).
 INTEGER,         INTENT(IN) ::KFTYPE  ! type of FM-file.
@@ -283,7 +289,7 @@ INTEGER,         INTENT(IN) ::KVERB   ! level of verbose.
 INTEGER,         INTENT(OUT)::KNINAR  ! number of articles
 ! initially
 ! present in the file.
-INTEGER,         INTENT(OUT)::KRESP   ! return-code if a problem
+INTEGER,         INTENT(OUT), OPTIONAL :: KRESP ! return-code if a problem
 ! araised.
 LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
 TYPE(TFILEDATA), INTENT(INOUT), OPTIONAL :: TPFILE ! File structure
@@ -292,6 +298,7 @@ TYPE(TFILEDATA), INTENT(INOUT), OPTIONAL :: TPFILE ! File structure
 !
 INTEGER                 :: IROWF,IRESP,INUMBR,IFMFNL
 CHARACTER(LEN=JPFINL)   :: YFNDES,YFNLFI
+CHARACTER(LEN=8)        :: YRESP
 LOGICAL                 :: GSTATS
 LOGICAL, SAVE           :: GSFIRST=.TRUE.
 TYPE(LFIPARAM), POINTER :: TZPARA
@@ -363,6 +370,7 @@ ENDIF
 
 !Do not open '.des' file if OUTPUT
 IF(YTYPE/='OUTPUT') THEN
+  CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','OPEN_ll for '//TRIM(HFILEM)//'.des')
   YFNDES=ADJUSTL(TRIM(HFILEM)//'.des')
   CALL OPEN_ll(UNIT=INUMBR,FILE=YFNDES,FORM='FORMATTED',ACTION=HACTION,DELIM&
        & ='QUOTE',IOSTAT=IRESP,RECL=1024*8,OPARALLELIO=GPARALLELIO)
@@ -403,18 +411,19 @@ IF (ISP == TZFDLFI%OWNER) THEN
      IF (HACTION == 'READ' .AND. .NOT. LLFIREAD) THEN
         !! Open NetCDF File for reading
         TZFDLFI%CDF => NEWIOCDF()
+        CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','NF90_OPEN for '//TRIM(HFILEM)//'.nc')
         INCERR = NF90_OPEN(ADJUSTL(TRIM(HFILEM))//".nc", NF90_NOWRITE, TZFDLFI%CDF%NCID)
         IF (INCERR /= NF90_NOERR) THEN
            !PRINT *, 'FMOPEN_ll, NF90_OPEN error : ', NF90_STRERROR(INCERR)
            PRINT *, 'Error in opening (FMOPEN_ll/NF90_OPEN) ', TRIM(HFILEM)//'.nc', ' : ', NF90_STRERROR(INCERR)
            STOP
         END IF
-        PRINT *, 'NF90_OPEN: ', TRIM(HFILEM)//'.nc'
      END IF
      
      IF (HACTION == 'WRITE') THEN
         ! HACTION == 'WRITE'
         TZFDLFI%CDF => NEWIOCDF()
+        CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','NF90_CREATE for '//TRIM(HFILEM)//'.nc')
         INCERR = NF90_CREATE(ADJUSTL(TRIM(HFILEM))//".nc", &
              &IOR(NF90_CLOBBER,NF90_NETCDF4), TZFDLFI%CDF%NCID)
         IF (INCERR /= NF90_NOERR) THEN
@@ -422,7 +431,6 @@ IF (ISP == TZFDLFI%OWNER) THEN
            PRINT *, 'Error in opening (FMOPEN_ll/NF90_CREATE) ', TRIM(HFILEM)//'.nc', ' : ', NF90_STRERROR(INCERR)
            STOP
         END IF
-        PRINT *, 'NF90_CREATE: ', TRIM(HFILEM)//'.nc'
      END IF
   END IF
 #endif
@@ -478,25 +486,28 @@ CALL MPI_BCAST(KNINAR,1,MPI_INTEGER,TZFDLFI%OWNER-1,TZFDLFI%COMM,IERR)
 
 1000 CONTINUE
 
-IF (IRESP.NE.0) CALL FM_ERR('FMOPEN_ll',HFIPRI,HFILEM,IRESP)
+IF (IRESP.NE.0)  THEN
+  WRITE(YRESP,"( I0 )") IRESP
+  CALL PRINT_MSG(NVERB_ERROR,'IO','FMOPEN_ll',TRIM(HFILEM)//': exit with IRESP='//TRIM(YRESP))
+END IF
 
-KRESP=IRESP
+IF (PRESENT(KRESP)) KRESP=IRESP
 
 RETURN
 END SUBROUTINE FMOPEN_ll
   
-SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,HFIPRI,KRESP,OPARALLELIO)
+SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO)
 !
 USE MODD_IO_ll, ONLY: TFILEDATA
 USE MODE_FD_ll, ONLY: FD_ll,GETFD
+USE MODE_IO_ll, ONLY : CLOSE_ll,UPCASE
 USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
 !
-TYPE(TFILEDATA),  INTENT(INOUT) :: TPFILE ! File structure
-CHARACTER(LEN=*), INTENT(IN)    :: HFIPRI ! File for prints in FM
-INTEGER,          INTENT(OUT)   :: KRESP  ! Return code
+TYPE(TFILEDATA),  INTENT(INOUT)         :: TPFILE ! File structure
+INTEGER,          INTENT(OUT), OPTIONAL :: KRESP  ! Return code
 LOGICAL,          INTENT(IN),  OPTIONAL :: OPARALLELIO
 !
-INTEGER                 :: INB_PROCIO, IRESP, JI
+INTEGER                 :: INB_PROCIO, IRESP, IRESP2, JI
 CHARACTER (LEN=3)       :: YNUMBER  ! Character string for Z-level
 TYPE(FD_ll), POINTER    :: TZFDLFI
 TYPE(TFILEDATA),POINTER :: TZFILE_IOZ
@@ -516,38 +527,50 @@ IF (TPFILE%NOPEN_CURRENT>1) THEN
   RETURN
 END IF
 !
-!Next lines done before the close to be sure the FD_ll still exists
-TZFDLFI=>GETFD(ADJUSTL(TRIM(TPFILE%CNAME)//'.lfi'))
-INB_PROCIO=TZFDLFI%NB_PROCIO
-!
-IF (.NOT.PRESENT(OPARALLELIO)) THEN 
-  CALL FMCLOS_ll(TPFILE%CNAME,'KEEP',HFIPRI,KRESP,TPFILE=TPFILE)
+IF (TRIM(TPFILE%CTYPE)/='OUTPUTLISTING') THEN
+  !Next lines done before the close to be sure the FD_ll still exists
+  TZFDLFI=>GETFD(ADJUSTL(TRIM(TPFILE%CNAME)//'.lfi'))
+  INB_PROCIO=TZFDLFI%NB_PROCIO
+  !
+  IF (.NOT.PRESENT(OPARALLELIO)) THEN 
+    CALL FMCLOS_ll(TPFILE%CNAME,'KEEP',KRESP=IRESP,TPFILE=TPFILE)
+  ELSE
+    CALL FMCLOS_ll(TPFILE%CNAME,'KEEP',KRESP=IRESP,OPARALLELIO=OPARALLELIO,TPFILE=TPFILE)
+  END IF
+  !
+  TPFILE%NLFIFLU = -1
+  TPFILE%NNCID   = -1
+  !
+  IF (INB_PROCIO>1) THEN
+    DO JI = 1,TZFDLFI%NB_PROCIO
+      WRITE (YNUMBER,FMT="(I3.3)") JI
+      CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER,TZFILE_IOZ,IRESP2)
+      IF (IRESP2/=0) &
+        CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER)//' not found in list')
+      IF (TZFILE_IOZ%LOPENED) THEN
+        TZFILE_IOZ%LOPENED = .FALSE.
+        TZFILE_IOZ%NCLOSE  = TZFILE_IOZ%NCLOSE + 1
+        TZFILE_IOZ%NLFIFLU = -1
+        TZFILE_IOZ%NNCID   = -1
+      END IF
+    END DO
+  END IF
 ELSE
-  CALL FMCLOS_ll(TPFILE%CNAME,'KEEP',HFIPRI,KRESP,OPARALLELIO=OPARALLELIO,TPFILE=TPFILE)
+  !OUTPUTLISTING files
+  CALL CLOSE_ll(TPFILE%CNAME,IOSTAT=IRESP,OPARALLELIO=.FALSE.)
+  !
+  TPFILE%NLU = -1
 END IF
 !
 TPFILE%LOPENED       = .FALSE.
 TPFILE%NOPEN_CURRENT = 0
 TPFILE%NCLOSE        = TPFILE%NCLOSE + 1
-TPFILE%NNCID         = -1
 !
-IF (INB_PROCIO>1) THEN
-  DO JI = 1,TZFDLFI%NB_PROCIO
-    WRITE (YNUMBER,FMT="(I3.3)") JI
-    CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER,TZFILE_IOZ,IRESP)
-    IF (IRESP/=0) &
-      CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','file '//TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER)//' not found in list')
-    IF (TZFILE_IOZ%LOPENED) THEN
-      TZFILE_IOZ%LOPENED = .FALSE.
-      TZFILE_IOZ%NCLOSE  = TZFILE_IOZ%NCLOSE + 1
-      TZFILE_IOZ%NNCID   = -1
-    END IF
-  END DO
-END IF
+IF (PRESENT(KRESP)) KRESP=IRESP
 !
 END SUBROUTINE IO_FILE_CLOSE_ll
 
-SUBROUTINE FMCLOS_ll(HFILEM,HSTATU,HFIPRI,KRESP,OPARALLELIO,TPFILE)
+SUBROUTINE FMCLOS_ll(HFILEM,HSTATU,KRESP,OPARALLELIO,TPFILE)
 !
 !!    MODIFICATIONS
 !!    -------------
@@ -566,8 +589,7 @@ USE MODE_NETCDF
 #endif
 CHARACTER(LEN=*),     INTENT(IN) ::HFILEM  ! file name
 CHARACTER(LEN=*),     INTENT(IN) ::HSTATU  ! status for the closed file
-CHARACTER(LEN=*),     INTENT(IN) ::HFIPRI  ! file for prints in FM
-INTEGER,              INTENT(OUT)::KRESP   ! return-code if problems araised
+INTEGER,              INTENT(OUT), OPTIONAL :: KRESP   ! return-code if problems araised
 LOGICAL,              INTENT(IN),  OPTIONAL :: OPARALLELIO
 TYPE(TFILEDATA),      INTENT(IN),  OPTIONAL :: TPFILE ! File structure
 
@@ -575,6 +597,7 @@ INTEGER              ::IRESP,IROWF,IFMFNL
 CHARACTER(LEN=7)     ::YSTATU
 CHARACTER(LEN=JPFINL)::YFNDES,YFNLFI
 LOGICAL              ::GSTATU
+CHARACTER(LEN=8)        :: YRESP
 CHARACTER(LEN=10)       ::YCPIO
 CHARACTER(LEN=14)       ::YTRANS
 CHARACTER(LEN=100)      ::YCOMMAND
@@ -698,9 +721,13 @@ DEALLOCATE(TZFDLFI%PARAM)
 CALL CLOSE_ll(YFNLFI,IOSTAT=IRESP,STATUS=YSTATU,OPARALLELIO=GPARALLELIO)
 
 1000 CONTINUE
-IF (IRESP.NE.0) CALL FM_ERR('FMCLOS_ll',HFIPRI,HFILEM,IRESP)
 
-KRESP=IRESP
+IF (IRESP.NE.0)  THEN
+  WRITE(YRESP,"( I0 )") IRESP
+  CALL PRINT_MSG(NVERB_ERROR,'IO','FMCLOS_ll',TRIM(HFILEM)//': exit with IRESP='//TRIM(YRESP))
+END IF
+
+IF (PRESENT(KRESP)) KRESP=IRESP
 
 ! format: 14c for fujitransfer.x and mesonh/nil
 !         32c for file name
@@ -709,20 +736,4 @@ KRESP=IRESP
 !
 END SUBROUTINE FMCLOS_ll
 
-SUBROUTINE FM_ERR(HROUTINE,HFIPRI,HFILEM,KRESP)
-CHARACTER(LEN=*), INTENT(IN) :: HROUTINE
-CHARACTER(LEN=*), INTENT(IN) :: HFIPRI
-CHARACTER(LEN=*), INTENT(IN) :: HFILEM
-INTEGER         , INTENT(IN) :: KRESP
-
-INTEGER :: IRESP
-INTEGER :: ILUPRI
-
-CALL FMLOOK_ll(HFIPRI,HFIPRI,ILUPRI,IRESP)
-
-WRITE (ILUPRI,*) ' exit from ',HROUTINE,' with RESP:',KRESP
-WRITE (ILUPRI,*) '   | HFILEM  = ',HFILEM
-
-END SUBROUTINE FM_ERR
-
 END MODULE MODE_FM
diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index 545ffa49443b4748baeb2fbb5dc23013824fcab4..221e354a75b663644ae491e9af244a72ddaa6105 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -662,49 +662,57 @@ END IF
 !
 TPFILE%CMODE = HMODE
 !
-IF (TRIM(HMODE)=='READ') THEN
-  IF (LLFIREAD) THEN
-    TPFILE%CFORMAT = 'LFI'
-    TPFILE%NLFINPRAR = ILFINPRAR
-  ELSE IF (LIOCDF4) THEN
-    TPFILE%CFORMAT = 'NETCDF4'
-  ELSE
-    CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME))
+IF (TRIM(HTYPE)/='OUTPUTLISTING') THEN
+  IF (TRIM(HMODE)=='READ') THEN
+    IF (LLFIREAD) THEN
+      TPFILE%CFORMAT = 'LFI'
+      TPFILE%NLFINPRAR = ILFINPRAR
+    ELSE IF (LIOCDF4) THEN
+      TPFILE%CFORMAT = 'NETCDF4'
+    ELSE
+      CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME))
+    END IF
+  ELSE IF (TRIM(HMODE)=='WRITE') THEN
+    IF (LLFIOUT .AND. LIOCDF4) THEN
+      TPFILE%CFORMAT = 'LFICDF4'
+      TPFILE%NLFINPRAR = ILFINPRAR
+    ELSE IF (LIOCDF4) THEN
+      TPFILE%CFORMAT = 'NETCDF4'
+    ELSE IF (LLFIOUT) THEN
+      TPFILE%CFORMAT = 'LFI'
+      TPFILE%NLFINPRAR = ILFINPRAR
+    ELSE
+      CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME))
+    END IF
+  END IF
+  !
+  TPFILE%NLFITYPE = ILFITYPE
+  TPFILE%NLFIVERB = ILFIVERB
+  !
+  IF (TRIM(HTYPE)=='OUTPUT') THEN
+    TPFILE%LNCREDUCE_FLOAT_PRECISION = LOUT_REDUCE_FLOAT_PRECISION(IMI)
+    TPFILE%LNCCOMPRESS               = LOUT_COMPRESS(IMI)
+    TPFILE%NNCCOMPRESS_LEVEL         = NOUT_COMPRESS_LEVEL(IMI)
   END IF
-ELSE IF (TRIM(HMODE)=='WRITE') THEN
-  IF (LLFIOUT .AND. LIOCDF4) THEN
-    TPFILE%CFORMAT = 'LFICDF4'
-    TPFILE%NLFINPRAR = ILFINPRAR
-  ELSE IF (LIOCDF4) THEN
-    TPFILE%CFORMAT = 'NETCDF4'
-  ELSE IF (LLFIOUT) THEN
-    TPFILE%CFORMAT = 'LFI'
-    TPFILE%NLFINPRAR = ILFINPRAR
+  !
+  IF(PRESENT(TPDADFILE)) THEN
+    IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','TPDADFILE provided but not associated')
+    TPFILE%TDADFILE => TPDADFILE
   ELSE
-    CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME))
+    TPFILE%TDADFILE => NULL()
   END IF
+  !
+ELSE
+  !OUTPUTLISTING files
+  IF (TRIM(HMODE)/='WRITE') &
+    CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME))
+  TPFILE%CFORMAT = 'OUTPUTLISTING'
 END IF
 !
 TPFILE%LOPENED = .FALSE.
 TPFILE%NOPEN   = 0
 TPFILE%NCLOSE  = 0
 !
-TPFILE%NLFITYPE = ILFITYPE
-TPFILE%NLFIVERB = ILFIVERB
-!
-IF (TRIM(HTYPE)=='OUTPUT') THEN
-  TPFILE%LNCREDUCE_FLOAT_PRECISION = LOUT_REDUCE_FLOAT_PRECISION(IMI)
-  TPFILE%LNCCOMPRESS               = LOUT_COMPRESS(IMI)
-  TPFILE%NNCCOMPRESS_LEVEL         = NOUT_COMPRESS_LEVEL(IMI)
-END IF
-!
-IF(PRESENT(TPDADFILE)) THEN
-  IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','TPDADFILE provided but not associated')
-  TPFILE%TDADFILE => TPDADFILE
-ELSE
-  TPFILE%TDADFILE => NULL()
-END IF
-!
 END SUBROUTINE IO_FILE_ADD2LIST
 !
 SUBROUTINE IO_FILE_FIND_BYNAME(HNAME,TPFILE,KRESP,OOLD)
@@ -769,13 +777,13 @@ ELSE
   TZFILE => TFILE_FIRST
 END IF
 !
-WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L1," ",I6," ",I6," ",I3," ",I3)' ) TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,&
-      TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NOPEN,TZFILE%NCLOSE
+WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L1," ",I6," ",I6," ",I6," ",I3," ",I3)' ) TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,&
+      TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE
 !
 DO WHILE (ASSOCIATED(TZFILE%TFILE_NEXT))
   TZFILE => TZFILE%TFILE_NEXT
-  WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L1," ",I6," ",I6," ",I3," ",I3)' ) TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,&
-        TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NOPEN,TZFILE%NCLOSE
+  WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L1," ",I6," ",I6," ",I6," ",I3," ",I3)' ) TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,&
+        TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE
 END DO
 !
 END SUBROUTINE IO_FILE_PRINT_LIST
diff --git a/src/MNH/compare_dad.f90 b/src/MNH/compare_dad.f90
index b3a92a527d4f4d02073d99da03601909eca42a05..fb1bafbf344caa1bdca21460d02f7e46263bf404 100644
--- a/src/MNH/compare_dad.f90
+++ b/src/MNH/compare_dad.f90
@@ -143,7 +143,7 @@ ZLATORI_2=0.
 !          ------------------------
 !
 CALL IO_FILE_ADD2LIST(TZDADINIFILE,TRIM(HDADINIFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-CALL IO_FILE_OPEN_ll(TZDADINIFILE,CLUOUT,IRESP)
+CALL IO_FILE_OPEN_ll(TZDADINIFILE)
 !
 CALL IO_READ_FIELD(TZDADINIFILE,'IMAX',IIMAX_1)
 CALL IO_READ_FIELD(TZDADINIFILE,'JMAX',IJMAX_1)
@@ -192,7 +192,7 @@ IF (.NOT.LCARTESIAN) THEN
   END IF
 ENDIF
 !
-CALL IO_FILE_CLOSE_ll(TZDADINIFILE,CLUOUT,IRESP)
+CALL IO_FILE_CLOSE_ll(TZDADINIFILE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -200,7 +200,7 @@ CALL IO_FILE_CLOSE_ll(TZDADINIFILE,CLUOUT,IRESP)
 !          ------------------------
 !
 CALL IO_FILE_ADD2LIST(TZDADSPAFILE,TRIM(HDADSPAFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-CALL IO_FILE_OPEN_ll(TZDADSPAFILE,CLUOUT,IRESP)
+CALL IO_FILE_OPEN_ll(TZDADSPAFILE)
 !
 CALL IO_READ_FIELD(TZDADSPAFILE,'IMAX',IIMAX_2)
 CALL IO_READ_FIELD(TZDADSPAFILE,'JMAX',IJMAX_2)
@@ -249,7 +249,7 @@ IF (.NOT.LCARTESIAN) THEN
   END IF
 ENDIF  
 !
-CALL IO_FILE_CLOSE_ll(TZDADSPAFILE,CLUOUT,IRESP)
+CALL IO_FILE_CLOSE_ll(TZDADSPAFILE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90
index e7ab5e32a99ef6a8d6c42077e91dbb8d46a3f127..8b851d765dbfa8a8ab8ea707b8b1ca261dc04218 100644
--- a/src/MNH/compute_r00.f90
+++ b/src/MNH/compute_r00.f90
@@ -250,7 +250,7 @@ END IF
 DO JFILECUR=1,NFILES
   !
   CALL IO_FILE_ADD2LIST(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TZTRACFILE,CLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TZTRACFILE)
 !
 !*       4.1  check if this file is a start instant
 !
@@ -422,7 +422,7 @@ DO JFILECUR=1,NFILES
 !
 !*       4.5   close the input file
 !
-  CALL IO_FILE_CLOSE_ll(TZTRACFILE,CLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZTRACFILE)
 !
 END DO
 !
diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index 54897c615c8c09c1660dd2b0c097e49a48efcd07..6731fb90a3bdf316cab5c7ea94f007cb68bf0386 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -450,7 +450,7 @@ COUTFMFILE=TRIM(CINIFILE)//YSUFFIX
 !
 CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE)//YSUFFIX,'DIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB)
 !
-CALL IO_FILE_OPEN_ll(TINIFILE,CLUOUT,IRESP)
+CALL IO_FILE_OPEN_ll(TINIFILE)
 !
 CALL SECOND_MNH2(ZTIME2)
 ZSTART=ZTIME2-ZTIME1
@@ -515,7 +515,7 @@ IF ( LAIRCRAFT_BALLOON ) THEN
 !
   CALL IO_FILE_ADD2LIST(TZDIACFILE,TRIM(CINIFILE)//'BAL','DIACHRONIC','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB)
 !
-  CALL IO_FILE_OPEN_ll(TZDIACFILE,CLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TZDIACFILE)
 !
   WRITE(ILUOUT0,*) ' '
   WRITE(ILUOUT0,*) 'DIAG AFTER OPEN DIACHRONIC FILE'
@@ -556,7 +556,7 @@ IF ( LAIRCRAFT_BALLOON ) THEN
   CALL WRITE_LFIFMN_FORDIACHRO_n(TZDIACFILE)
   CALL WRITE_AIRCRAFT_BALLOON(TZDIACFILE)
   CALL MENU_DIACHRO(TZDIACFILE,CLUOUT,'END')
-  CALL IO_FILE_CLOSE_ll(TZDIACFILE,CLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZDIACFILE)
   WRITE(ILUOUT0,*) ' '
   WRITE(ILUOUT0,*) 'DIAG AFTER CLOSE DIACHRONIC FILE'
   WRITE(ILUOUT0,*) ' '
@@ -744,7 +744,7 @@ ZTIME1=ZTIME2
 DEALLOCATE(GMASKkids)
 IF (GCLOSE_OUT) THEN
   GCLOSE_OUT=.FALSE.
-  CALL IO_FILE_CLOSE_ll(TINIFILE,CLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TINIFILE)
 END IF
 !
 CALL CLOSE_ll (CLUOUT,IOSTAT=IRESP)
diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90
index 276b540c810db185b8c258452d946c7c4e46a70e..61031075654f8541f28aaf88fcf49d8ce1210a95 100644
--- a/src/MNH/ini_cpl.f90
+++ b/src/MNH/ini_cpl.f90
@@ -351,7 +351,7 @@ CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
 DO JCI=1,NCPL_NBR
   WRITE(YCI,'(I2.0)') JCI
   CALL IO_FILE_ADD2LIST(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TCPLFILE(JCI)%TZFILE,HLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TCPLFILE(JCI)%TZFILE)
   IF (IRESP /= 0) THEN
     CALL PRINT_MSG(NVERB_FATAL,'IO','INI_CPL','problem when opening coupling file '//TRIM(YCI))
   END IF
@@ -528,7 +528,7 @@ CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,GLSOURCE,KSV,           &
 !
 !*      3.5   Close the coupling file
 !
-CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,IRESP)
+CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE)
 !!-------------------------------------------------------------------------------
 !
 !*      6.    FORMATS
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 4588c298e379b933140acc98b118b8f18eb76caf..8de68ce96f9a66b05f6ca0e28e71db95e8b35079 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -1942,7 +1942,7 @@ IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG  ')) THEN
   ! ouverture du fichier PGD
   IF  ( LEN_TRIM(CINIFILEPGD) > 0 ) THEN
     CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB)
-    CALL IO_FILE_OPEN_ll(TINIFILEPGD,HLUOUT,IRESP,OPARALLELIO=.FALSE.)
+    CALL IO_FILE_OPEN_ll(TINIFILEPGD,OPARALLELIO=.FALSE.)
     IF (IRESP/=0) THEN
       WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD
       WRITE(ILUOUT,FMT=*) "CHECK YOUR NAMELIST NAM_LUNITn"
@@ -1982,7 +1982,7 @@ END IF
 IF (CSURF=='EXTE' .AND. (CPROGRAM=='SPAWN ')) THEN
   ! ouverture du fichier PGD
   CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TINIFILEPGD,HLUOUT,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TINIFILEPGD,OPARALLELIO=.FALSE.)
   IF (IRESP/=0) THEN
     WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD
     WRITE(ILUOUT,FMT=*) "CHECK YOUR NAMELIST NAM_LUNIT2_SPA"
diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90
index fb462dc6681ca79ca1192474b23c239398d09814..572032f2ae319079e2f0bdf4e5c1667cc8106499 100644
--- a/src/MNH/ini_prog_var.f90
+++ b/src/MNH/ini_prog_var.f90
@@ -229,7 +229,7 @@ IF(PRESENT(HCHEMFILE)) THEN
   ALLOCATE(XSVT(IIU,IJU,IKU,NSV))
   ! Read dimensions in chem file and checks with output file
   CALL IO_FILE_ADD2LIST(TZCHEMFILE,TRIM(HCHEMFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TZCHEMFILE,HLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TZCHEMFILE)
   !
   CALL IO_READ_FIELD(TZCHEMFILE,'IMAX',IIMAX,IRESP)
   IF (IRESP/=0) THEN
@@ -431,7 +431,7 @@ IF(PRESENT(HCHEMFILE)) THEN
     END DO ! JSV
   END IF
   !
-  CALL IO_FILE_CLOSE_ll(TZCHEMFILE,HLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZCHEMFILE)
   !
 ELSE ! HCHEMFILE
   IF (NSV >=1) THEN
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 0010370cdd04e154ff2b9ebd5e8fa01bca56e855..2669e089104cd247038563a9ce9bb9b395e1e27b 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -285,7 +285,7 @@ ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL  '.OR. CPROGRAM=='SPEC  ') THEN
   HINIFILEPGD = CINIFILEPGD_n
   YEXSEG=TRIM(ADJUSTL(CINIFILE_n))//'.des'
   CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TPINIFILE,HLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TPINIFILE)
   CALL FMLOOK_ll(YEXSEG,CLUOUT0,ILUSEG,IRESP)
 !
 !*       1.3bis   DIAG program case
@@ -295,7 +295,7 @@ ELSE IF (CPROGRAM=='DIAG  ') THEN
   HINIFILEPGD = CINIFILEPGD_n
   YEXSEG=TRIM(ADJUSTL(CINIFILE_n))//'.des'
   CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TPINIFILE,CLUOUT0,IRESP)
+  CALL IO_FILE_OPEN_ll(TPINIFILE)
   CALL FMLOOK_ll(YEXSEG,CLUOUT0,ILUSEG,IRESP)
 !   
 !*       1.4   Other program cases
@@ -349,7 +349,7 @@ IF (CPROGRAM=='MESONH') THEN
 
   CALL IO_FILE_ADD2LIST(TINIFILE_n,TRIM(YINIFILE),'PREPIDEALCASE','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
 
-  CALL IO_FILE_OPEN_ll(TINIFILE_n,HLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TINIFILE_n)
 END IF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90
index 16a074809ca5f92fdbed8e5be534a63a1a92a096..b0ba2a6df49c7a6cea1636ab9754754241d2924d 100644
--- a/src/MNH/ini_size_spawn.f90
+++ b/src/MNH/ini_size_spawn.f90
@@ -239,7 +239,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN
 ! structures TCRRT_COMDATA%T_CHILDREN%T_SPLITB and TCRRT_PROCONF%T_CHILDREN
 !$20140602 add condition on npproc
   CALL IO_FILE_ADD2LIST(TZDOMAIN,TRIM(CDOMAIN),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TZDOMAIN,CLUOUT,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TZDOMAIN,OPARALLELIO=.FALSE.)
   !
   CALL IO_READ_FIELD(TZDOMAIN,'DXRATIO',NDXRATIO)
   CALL IO_READ_FIELD(TZDOMAIN,'DYRATIO',NDYRATIO)
@@ -298,7 +298,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN
 !*     1.4   read grid in file CDOMAIN if available :
 !
   CALL READ_HGRID(2,TZDOMAIN,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE)
-  CALL IO_FILE_CLOSE_ll(TZDOMAIN,CLUOUT,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TZDOMAIN,OPARALLELIO=.FALSE.)
   CALL RETRIEVE1_NEST_INFO_n(1,2,NXOR,NYOR,NXSIZE,NYSIZE,NDXRATIO,NDYRATIO)
   DEALLOCATE(XZS,XZSMT,XXHAT,XYHAT)
 !
diff --git a/src/MNH/latlon_to_xy.f90 b/src/MNH/latlon_to_xy.f90
index d4d7576cb6500792219b33422cb76e97de5311a3..15576bde31166fbb0ab08e97487e6e1129fdafcd 100644
--- a/src/MNH/latlon_to_xy.f90
+++ b/src/MNH/latlon_to_xy.f90
@@ -139,7 +139,7 @@ CALL CLOSE_ll('LATLON2XY1.nam',IOSTAT=IRESP)
 !            ----------------------
 !
 CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=2)
-CALL IO_FILE_OPEN_ll(TZINIFILE,CLUOUT0,IRESP)
+CALL IO_FILE_OPEN_ll(TZINIFILE)
 !
 !*    2.     Reading of MESONH file
 !            ----------------------
@@ -149,7 +149,7 @@ CALL READ_HGRID(0,TZINIFILE,YNAME,YDAD,YSTORAGE_TYPE)
 !*    3.     Closing of MESONH file
 !            ----------------------
 !
-CALL IO_FILE_CLOSE_ll(TZINIFILE,CLUOUT0,IRESP)
+CALL IO_FILE_CLOSE_ll(TZINIFILE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90
index 2beabcc4cd17fecf73beb4ea5b61938fba7418b3..2f69dec70c6c17ecab4cf6500b9580bc47500dae 100644
--- a/src/MNH/ls_coupling.f90
+++ b/src/MNH/ls_coupling.f90
@@ -352,7 +352,7 @@ CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,GLSOURCE,KSV,            &
 !
 !*      1.4  Close the coupling file
 !
-CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,IRESP)
+CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE)
 !
 !-------------------------------------------------------------------------------
 
diff --git a/src/MNH/mnh2lpdm_ech.f90 b/src/MNH/mnh2lpdm_ech.f90
index b81644ab4a504b40e2dcf6660362a08f7eb13a4c..9402582ad13aaa5bbd155eb1e88f2283ab9eff0e 100644
--- a/src/MNH/mnh2lpdm_ech.f90
+++ b/src/MNH/mnh2lpdm_ech.f90
@@ -71,7 +71,7 @@ TYPE(DATE_TIME)      :: TZDTCUR
 !
 !*	2.1 Ouverture du fichier Meso-NH.
 !
-CALL IO_FILE_OPEN_ll(TPFILE,HFLOG,IREP)
+CALL IO_FILE_OPEN_ll(TPFILE)
 !
 !*	2.2 Date et heure courante.
 !
@@ -116,7 +116,7 @@ CALL IO_READ_FIELD(TPFILE,'RRT',    XRMRT)
 !
 !*	2.4 Fermeture du fichier Meso-NH.
 !
-CALL IO_FILE_CLOSE_ll(TPFILE,HFLOG,IREP)
+CALL IO_FILE_CLOSE_ll(TPFILE)
 !
 !
 !*	3.  PREPARATION DES DONNEES.
diff --git a/src/MNH/mnh2lpdm_ini.f90 b/src/MNH/mnh2lpdm_ini.f90
index 6f518eb002ec6e64000805689be51fb0d9cd08da..ab70fd32b9eb9257035b1f59fb253ca79d09e624 100644
--- a/src/MNH/mnh2lpdm_ini.f90
+++ b/src/MNH/mnh2lpdm_ini.f90
@@ -94,8 +94,8 @@ CALL GOTO_MODEL(1)
 !
 !*	2.1 Ouverture du fichier Meso-NH.
 !
-CALL IO_FILE_OPEN_ll(TPFILE1,HFLOG,IREP)
-CALL IO_FILE_OPEN_ll(TPFILE2,HFLOG,IREP)
+CALL IO_FILE_OPEN_ll(TPFILE1)
+CALL IO_FILE_OPEN_ll(TPFILE2)
 !
 !
 !*      2.2 Date et heure du modele.
@@ -426,8 +426,8 @@ DEALLOCATE(XZHAT)
 !
 !	 Fermeture du fichier Meso-NH.
 !
-CALL IO_FILE_CLOSE_ll(TPFILE1,HFLOG,IREP)
-CALL IO_FILE_CLOSE_ll(TPFILE2,HFLOG,IREP)
+CALL IO_FILE_CLOSE_ll(TPFILE1)
+CALL IO_FILE_CLOSE_ll(TPFILE2)
 !
 !
 !-------------------------------------------'
diff --git a/src/MNH/mnhclose_aux_io_surf.f90 b/src/MNH/mnhclose_aux_io_surf.f90
index 4d97ba51d1082d9d263d53423977798830163301..7709c1dadd74d66f3af47efa25c8bfdcb9c7ec2f 100644
--- a/src/MNH/mnhclose_aux_io_surf.f90
+++ b/src/MNH/mnhclose_aux_io_surf.f90
@@ -82,7 +82,7 @@ INTEGER           :: IRESP          ! return-code if a problem appears
 !-------------------------------------------------------------------------------
 !
 IF (CACTION=='OPEN  ') THEN
-  CALL IO_FILE_CLOSE_ll(TPINFILE,COUT,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TPINFILE,OPARALLELIO=.FALSE.)
   CACTION='      '
 END IF
 !
diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90
index 20bd56411bb1b8d49c3ff49fb086fe26723a6552..8ba8140725fa99d9f44d4fc0542d07b2b3f2b2f6 100644
--- a/src/MNH/mnhopen_aux_io_surf.f90
+++ b/src/MNH/mnhopen_aux_io_surf.f90
@@ -121,7 +121,7 @@ END IF
 !
 IF (HFILE/=COUTFMFILE .AND. HFILE/=CPGDFILE) THEN
   CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.)
-  CALL IO_FILE_OPEN_ll(TPINFILE,COUT,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPINFILE,OPARALLELIO=.FALSE.)
   !
   IF (IRESP .NE. 0) THEN
     PRINT*," /!\  MNHOPEN_AUX_IO_SURF :: FATAL PROBLEM OPENING INPUT/READ FILES =", HFILE
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index ab9729afb60bd638b7f74e190ddaa58dd30199f4..afd38b62b95ac7300a02acc1ab332f6122f0e4c1 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -601,7 +601,7 @@ IF (KTCOUNT == 1) THEN
   IBAK=0
   IOUT=0
 !
-  CALL IO_FILE_OPEN_ll(TDIAFILE,CLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TDIAFILE)
 !
   CALL IO_WRITE_HEADER(TDIAFILE)
   CALL WRITE_DESFM_n(IMI,TRIM(TDIAFILE%CNAME)//'.des',CLUOUT)
@@ -910,7 +910,7 @@ IF (IBAK < NBAK_NUMB ) THEN
     TZBAKFILE => TBACKUPN(IBAK)%TFILE
     IVERB    = TZBAKFILE%NLFIVERB
     !
-    CALL IO_FILE_OPEN_ll(TZBAKFILE,CLUOUT,IRESP)
+    CALL IO_FILE_OPEN_ll(TZBAKFILE)
     !
     CALL WRITE_DESFM_n(IMI,TRIM(TZBAKFILE%CNAME)//'.des',CLUOUT)
     CALL IO_WRITE_HEADER(TBACKUPN(IBAK)%TFILE)
@@ -953,13 +953,13 @@ IF (IOUT < NOUT_NUMB ) THEN
     !
     TZOUTFILE => TOUTPUTN(IOUT)%TFILE
     !
-    CALL IO_FILE_OPEN_ll(TZOUTFILE,CLUOUT,IRESP)
+    CALL IO_FILE_OPEN_ll(TZOUTFILE)
     !
     CALL IO_WRITE_HEADER(TZOUTFILE)
     CALL IO_WRITE_FIELDLIST(TOUTPUTN(IOUT))
     CALL IO_WRITE_FIELD_USER(TOUTPUTN(IOUT))
     !
-    CALL IO_FILE_CLOSE_ll(TZOUTFILE,CLUOUT,IRESP)
+    CALL IO_FILE_CLOSE_ll(TZOUTFILE)
     !
   END IF
 END IF
@@ -1924,7 +1924,7 @@ XT_STEP_BUD = XT_STEP_BUD + ZTIME2 - ZTIME1 + XTIME_BU
 !
 IF (GCLOSE_OUT) THEN
   GCLOSE_OUT=.FALSE.
-  CALL IO_FILE_CLOSE_ll(TZBAKFILE,CLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZBAKFILE)
 END IF
 !
 !-------------------------------------------------------------------------------
@@ -1962,10 +1962,10 @@ IF (OEXIT) THEN
   CALL WRITE_LES_n(TDIAFILE,'E')
   CALL WRITE_LES_n(TDIAFILE,'H')
   CALL MENU_DIACHRO(TDIAFILE,CLUOUT,'END')
-  CALL IO_FILE_CLOSE_ll(TDIAFILE,CLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TDIAFILE)
   !
-  CALL IO_FILE_CLOSE_ll(TINIFILE,CLUOUT,IRESP)
-  IF (CSURF=="EXTE") CALL FMCLOS_ll(CINIFILEPGD,'KEEP',CLUOUT,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TINIFILE)
+  IF (CSURF=="EXTE") CALL FMCLOS_ll(CINIFILEPGD,'KEEP',IRESP,OPARALLELIO=.FALSE.)
 !
 !*       28.1   print statistics!
 !
diff --git a/src/MNH/open_data_files.f90 b/src/MNH/open_data_files.f90
index 64a1bf68e654bc336f95d14cec06b418172dd7a0..324847f827780c6b2a96497d01069519a6b0cb5c 100644
--- a/src/MNH/open_data_files.f90
+++ b/src/MNH/open_data_files.f90
@@ -90,7 +90,7 @@ CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP)
 !             --------------------
 !
 IF (HFILETYPE=='MESONH') THEN
-  CALL FMOPEN_ll(HFILENAME,'READ',CLUOUT0,0,2,5,ININAR,IRESP)
+  CALL FMOPEN_ll(HFILENAME,'READ',0,2,5,ININAR,IRESP)
 ELSE IF (HFILETYPE=='BINLLV') THEN
   CALL OPEN_ll(UNIT=IGLB,FILE=HFILENAME,IOSTAT=IRESP,STATUS="OLD",ACTION='READ', &
           FORM="UNFORMATTED", POSITION="REWIND",MODE=GLOBAL)
diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90
index 8f75b0cf3fbb6b940f768c43edc47cbe06dc0d84..c239d3fc2713b48a5773c08b05f2be02dcd9a118 100644
--- a/src/MNH/open_nestpgd_files.f90
+++ b/src/MNH/open_nestpgd_files.f90
@@ -315,8 +315,8 @@ CALL CLOSE_ll(HPRE_NEST_PGD)
 !              -------------------------------------
 !
 DO JPGD=1,NMODEL
-  CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)    %TZFILE,CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
-  CALL IO_FILE_OPEN_ll(TPFILENESTPGD(JPGD)%TZFILE,CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)    %TZFILE,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPFILENESTPGD(JPGD)%TZFILE,OPARALLELIO=.FALSE.)
 END DO
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90
index e08d9c08e11f14e66034bc9e414fdcb80076dad8..4d41d1db57b4898581ec68a632b1766199a1458d 100644
--- a/src/MNH/open_prc_files.f90
+++ b/src/MNH/open_prc_files.f90
@@ -274,7 +274,7 @@ ELSE
 !              -----------------------------------
 !
   CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TPPGDFILE,CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP,OPARALLELIO=.FALSE.)
   IF (IRESP/=0) THEN
     WRITE(ILUOUT0,*) 'STOP: problem during opening of PGD file ',HPGDFILE
 !callabortstop
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index e4794abe8c245a3f167f64f874a1a06146836775..06849375fd85d9fa13466a57f43a18e06975e895 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -716,7 +716,7 @@ CALL INI_FIELD_SCALARS()
 IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN 
   ! open the PGD_FILE
   CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGD_FILE),'UNKNOWN','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TZPGDFILE,CLUOUT,NRESP)
+  CALL IO_FILE_OPEN_ll(TZPGDFILE)
 
   ! read the grid in the PGD file
   CALL IO_READ_FIELD(TZPGDFILE,'IMAX',  NIMAX)
@@ -1768,7 +1768,7 @@ CDESFM=ADJUSTL(ADJUSTR(CINIFILE)//'.des')
 !
 CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB)
 !
-CALL IO_FILE_OPEN_ll(TINIFILE,CLUOUT,NRESP)
+CALL IO_FILE_OPEN_ll(TINIFILE)
 !
 CALL IO_WRITE_HEADER(TINIFILE)
 !
@@ -1831,7 +1831,7 @@ IF (CSURF =='EXTE') THEN
     !
     CALL IO_FILE_ADD2LIST(TZINIFILEPGD,TRIM(CINIFILEPGD),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB)
     !
-    CALL IO_FILE_OPEN_ll(TZINIFILEPGD,CLUOUT,NRESP)
+    CALL IO_FILE_OPEN_ll(TZINIFILEPGD)
     !
     CALL IO_WRITE_HEADER(TZINIFILEPGD)
     CALL IO_WRITE_FIELD(TZINIFILEPGD,'SURF','EXTE')
@@ -1863,11 +1863,11 @@ END IF
 !             ---------------
 !
 IF (CSURF =='EXTE' .AND. (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM)) THEN
-  CALL IO_FILE_CLOSE_ll(TZINIFILEPGD,CLUOUT,NRESP)
+  CALL IO_FILE_CLOSE_ll(TZINIFILEPGD)
 ENDIF
-CALL IO_FILE_CLOSE_ll(TINIFILE,CLUOUT,NRESP)
+CALL IO_FILE_CLOSE_ll(TINIFILE)
 IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN
-  CALL IO_FILE_CLOSE_ll(TZPGDFILE,CLUOUT,NRESP)
+  CALL IO_FILE_CLOSE_ll(TZPGDFILE)
 ENDIF
 !
 !
diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90
index 523f7a55529913eab967384fdce8a3007e051a03..df14a4219965cfda695f08510d14293e179a8a6c 100644
--- a/src/MNH/prep_nest_pgd.f90
+++ b/src/MNH/prep_nest_pgd.f90
@@ -372,8 +372,8 @@ END DO
 !              --------------------
 !
 DO JPGD=1,NMODEL
-  CALL IO_FILE_CLOSE_ll(TZFILEPGD(JPGD)%TZFILE,    CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
-  CALL IO_FILE_CLOSE_ll(TZFILENESTPGD(JPGD)%TZFILE,CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TZFILEPGD(JPGD)%TZFILE,    OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TZFILENESTPGD(JPGD)%TZFILE,OPARALLELIO=.FALSE.)
 END DO
 !
 !* loop to spare enough time to transfer commands before end of program
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index c4713f707d65e29dd1925217cb8d705c36165066..33121d0be0ebb2be9de38be2cb73056a7c055160 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -238,7 +238,7 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH','                            ','      ',.FA
 !
 CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PREPPGD','WRITE',KLFINPRAR=1,KLFITYPE=1,KLFIVERB=5)
 !
-CALL IO_FILE_OPEN_ll(TZFILE,CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
+CALL IO_FILE_OPEN_ll(TZFILE,OPARALLELIO=.FALSE.)
 !
 CALL IO_WRITE_HEADER(TZFILE)
 !
@@ -315,8 +315,8 @@ WRITE(ILUOUT0,*) '***************************'
 !*    6.      Close parallelized I/O
 !             ----------------------
 !
+CALL IO_FILE_CLOSE_ll(TZFILE,OPARALLELIO=.FALSE.)
 CALL CLOSE_ll(CLUOUT0,IOSTAT=IRESP,OPARALLELIO=.FALSE.)
-CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT0,IRESP,OPARALLELIO=.FALSE.)
 !
 CALL END_PARA_ll(IINFO_ll)
 !
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 213d996f89cf33e562e3b79877aefa97b759cd2f..90016161f1e55cda908e8fe065871c0896c9327f 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -581,7 +581,7 @@ CPGDFILE = YPGDFILE
 !
 CALL IO_FILE_ADD2LIST(TINIFILE,CINIFILE,'PREPREALCASE','WRITE',KLFINPRAR=0,KLFITYPE=1,KLFIVERB=NVERB)
 !
-CALL IO_FILE_OPEN_ll(TINIFILE,CLUOUT0,IRESP)
+CALL IO_FILE_OPEN_ll(TINIFILE)
 !
 IF (YATMFILETYPE=='MESONH') THEN
   LSHIFT = .FALSE.
@@ -1075,7 +1075,7 @@ CALL MNHWRITE_ZS_DUMMY_n(TINIFILE)
 !
 CALL DEALLOCATE_MODEL1(3)
 !
-IF (YATMFILETYPE=='MESONH'.AND. YATMFILE/=YPGDFILE) CALL FMCLOS_ll(YATMFILE,'KEEP',CLUOUT0,IRESP)
+IF (YATMFILETYPE=='MESONH'.AND. YATMFILE/=YPGDFILE) CALL FMCLOS_ll(YATMFILE,'KEEP',IRESP)
 !-------------------------------------------------------------------------------
 !
 !*      18.    INTERPOLATION OF SURFACE VARIABLES
@@ -1180,8 +1180,8 @@ END IF
 !
 !-------------------------------------------------------------------------------
 !
+CALL IO_FILE_CLOSE_ll(TINIFILE)
 CALL CLOSE_ll(CLUOUT0, IOSTAT=IRESP)
-CALL IO_FILE_CLOSE_ll(TINIFILE,CLUOUT0,IRESP)
 !
 !
 CALL END_PARA_ll(IINFO_ll)
diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90
index 1345f4cd6f24bd7b9b787a32aa056ac84bd23874..2a3e83afdaa5135a3621bc8c6c03e42adfbf6140 100644
--- a/src/MNH/prep_surfex.f90
+++ b/src/MNH/prep_surfex.f90
@@ -117,7 +117,7 @@ CPGDFILE = YPGDFILE
 !
 CALL IO_FILE_ADD2LIST(TZFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFINPRAR=0,KLFITYPE=1,KLFIVERB=1)
 !
-CALL IO_FILE_OPEN_ll(TZFILE,CLUOUT0,IRESP)
+CALL IO_FILE_OPEN_ll(TZFILE)
 !
 !-------------------------------------------------------------------------------
 !
@@ -170,9 +170,9 @@ CALL INI_PARAZ_ll(IINFO_ll)
 !
 IF (YATMFILETYPE=='MESONH') THEN
   CALL IO_FILE_ADD2LIST(TZATMFILE,TRIM(YATMFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=1,KLFIVERB=1)
-  CALL IO_FILE_OPEN_ll(TZATMFILE,CLUOUT0,IRESP)
+  CALL IO_FILE_OPEN_ll(TZATMFILE)
   CALL IO_READ_FIELD(TZATMFILE,'DTCUR',TDTCUR)
-  CALL IO_FILE_CLOSE_ll(TZATMFILE,CLUOUT0,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZATMFILE)
 ELSE
   TDTCUR%TDATE%YEAR = NUNDEF
   TDTCUR%TDATE%MONTH= NUNDEF
@@ -204,8 +204,8 @@ WRITE(ILUOUT0,*) '|                                |'
 WRITE(ILUOUT0,*) '|   PREP_SURFEX ends correctly   |'
 WRITE(ILUOUT0,*) '|                                |'
 WRITE(ILUOUT0,*) '----------------------------------'
+CALL IO_FILE_CLOSE_ll(TZFILE)
 CALL CLOSE_ll(CLUOUT0, IOSTAT=IRESP)
-CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT0,IRESP)
 !
 CALL END_PARA_ll(IINFO_ll)
 CALL SURFEX_DEALLO_LIST
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index 48813da8938cf97d39b159e47c861afa33ebee7e..97dd4c716ff2f9636912273104c78917206f3220 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -498,7 +498,7 @@ IF (LEN_TRIM(HSONFILE) /= 0 ) THEN
 ! 
   WRITE(ILUOUT,*) 'SPAWN_MODEL2: spawning with a SON input file :',TRIM(HSONFILE)
   CALL IO_FILE_ADD2LIST(TZSONFILE,TRIM(HSONFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TZSONFILE,CLUOUT,IRESP)
+  CALL IO_FILE_OPEN_ll(TZSONFILE)
   CALL IO_READ_FIELD(TZSONFILE,'DAD_NAME',YDAD_SON)
   CALL IO_READ_FIELD(TZSONFILE,'IMAX',    IIMAXSON)
   CALL IO_READ_FIELD(TZSONFILE,'JMAX',    IJMAXSON)
@@ -1451,7 +1451,7 @@ END IF
 !
 CALL IO_FILE_ADD2LIST(TZFILE,CMY_NAME(2),'SPAWNING','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB)
 !
-CALL IO_FILE_OPEN_ll(TZFILE,CLUOUT,IRESP)
+CALL IO_FILE_OPEN_ll(TZFILE)
 !
 YDESFM=ADJUSTL(ADJUSTR(CMY_NAME(2))//'.des')
 !
@@ -1505,9 +1505,9 @@ ZSURF2 = ZTIME2 - ZTIME1
 !*	 8.    CLOSES THE FMFILE
 !	       ----------------- 
 !
-CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT,IRESP)
+CALL IO_FILE_CLOSE_ll(TZFILE)
 IF (ASSOCIATED(TZSONFILE)) THEN
-  CALL IO_FILE_CLOSE_ll(TZSONFILE,CLUOUT,IRESP)
+  CALL IO_FILE_CLOSE_ll(TZSONFILE)
 END IF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90
index 5b8abc7db0f5a7405374fa2ad1fc539a0cdbdbbc..6fae90b5ec733fb1f029043f9b16c8a2cddeb9ab 100644
--- a/src/MNH/spawning.f90
+++ b/src/MNH/spawning.f90
@@ -204,8 +204,8 @@ CALL CLOSE_ll(YEXSPA)
 CALL INIT_MNH
 !
 CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TZINIFILE,IRESP)
-CALL IO_FILE_CLOSE_ll(TZINIFILE,CLUOUT,IRESP)
-CALL IO_FILE_CLOSE_ll(TINIFILEPGD,CLUOUT,IRESP,OPARALLELIO=.FALSE.)
+CALL IO_FILE_CLOSE_ll(TZINIFILE)
+CALL IO_FILE_CLOSE_ll(TINIFILEPGD,OPARALLELIO=.FALSE.)
 !-------------------------------------------------------------------------------
 !
 !*       4.    INITIALIZATION OF OUTER POINTS OF MODEL 1
diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90
index 98583d7518e9312f54fadb2d79fc27bd13bc4b73..57fcdec85a91b74df8270efe9ac43015412046fa 100644
--- a/src/MNH/write_diachro.f90
+++ b/src/MNH/write_diachro.f90
@@ -220,19 +220,11 @@ CALL FMLOOK_ll(HLUOUTDIA,HLUOUTDIA,ILUOUTDIA,IRESP)
 IF (NVERB>=5) THEN
   WRITE(ILUOUTDIA,*)' WRITE_DIACHRO: ',TRIM(HLUOUTDIA),' IRESP=',IRESP
 ENDIF
-IF(IRESP == -54)THEN
-  CALL OPEN_ll(UNIT=ILUOUTDIA,FILE=HLUOUTDIA,IOSTAT=IRESPDIA,ACTION='WRITE')
-  IFTYPEDIA = 0; IVERBDIA = 5
-ENDIF
 !
 CALL FMLOOK_ll(TRIM(TPDIAFILE%CNAME)//'.lfi',HLUOUTDIA,INUM,IRESPDIA)
 IF (NVERB>=5) THEN
   WRITE(ILUOUTDIA,*)' WRITE_DIACHRO: ',TRIM(TPDIAFILE%CNAME)//'.lfi',' IRESPDIA=',IRESPDIA
 ENDIF
-IF(IRESPDIA == -54)THEN
-  CALL FMOPEN_ll(TPDIAFILE%CNAME,'WRITE',HLUOUTDIA,INPRARDIA,IFTYPEDIA,IVERBDIA, &
-  ININARDIA,IRESPDIA)
-ENDIF
 !
 ! 1er enregistrement TYPE
 !
diff --git a/src/MNH/xy_to_latlon.f90 b/src/MNH/xy_to_latlon.f90
index 92bbf157eafd01ce53d329c68ca4e03f97749eaa..c9b422184b7281e60273770d823242d9856da4b6 100644
--- a/src/MNH/xy_to_latlon.f90
+++ b/src/MNH/xy_to_latlon.f90
@@ -137,7 +137,7 @@ CALL CLOSE_ll('XY2LATLON1.nam',IOSTAT=IRESP)
 !            ----------------------
 !
 CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'UNKNOWN','READ',KLFINPRAR=0,KLFITYPE=2,KLFIVERB=2)
-CALL IO_FILE_OPEN_ll(TZINIFILE,CLUOUT0,IRESP)
+CALL IO_FILE_OPEN_ll(TZINIFILE)
 !
 !*    2.     Reading of MESONH file
 !            ----------------------
@@ -147,7 +147,7 @@ CALL READ_HGRID(0,TZINIFILE,YNAME,YDAD,YSTORAGE_TYPE)
 !*    3.     Closing of MESONH file
 !            ----------------------
 !
-CALL IO_FILE_CLOSE_ll(TZINIFILE,CLUOUT0,IRESP)
+CALL IO_FILE_CLOSE_ll(TZINIFILE)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90
index 2fbb05a59bdd9c458dc9876dcb48301cf3694926..784ed9e96103c1eb88bbb0665cedeb392aa38a38 100644
--- a/src/MNH/zoom_pgd.f90
+++ b/src/MNH/zoom_pgd.f90
@@ -156,7 +156,7 @@ CALL CLOSE_ll(YNAMELIST,IOSTAT=IRESP)
 !             -------------
 !
 CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'UNKNOWN','READ',KLFINPRAR=1,KLFITYPE=2,KLFIVERB=5)
-CALL IO_FILE_OPEN_ll(TZPGDFILE,CLUOUT0,IRESP)
+CALL IO_FILE_OPEN_ll(TZPGDFILE)
 !
 !*    2.2     Reading of initial grid
 !             -----------------------
@@ -201,7 +201,7 @@ END IF
 CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'ZOOMPGD','WRITE',KLFINPRAR=1,KLFITYPE=1,KLFIVERB=5)
 !PW: TODO: points to dad file (if existing) ! TZZOOMFILE%TDADFILE =>
 !
-CALL IO_FILE_OPEN_ll(TZZOOMFILE,CLUOUT0,IRESP)
+CALL IO_FILE_OPEN_ll(TZZOOMFILE)
 CALL WRITE_HGRID(1,TZZOOMFILE)
 !
 !*    2.5     Preparation of surface physiographic fields
@@ -246,7 +246,7 @@ CALL IO_WRITE_FIELD(TZZOOMFILE,'L1D',    L1D)
 CALL IO_WRITE_FIELD(TZZOOMFILE,'L2D',    L2D)
 CALL IO_WRITE_FIELD(TZZOOMFILE,'PACK',   LPACK)
 CALL IO_WRITE_FIELD(TZZOOMFILE,'SURF',   CSURF)
-CALL IO_FILE_CLOSE_ll(TZZOOMFILE,CLUOUT0,IRESP)
+CALL IO_FILE_CLOSE_ll(TZZOOMFILE)
 !
 !*    2.8     Shift to new PGD file
 !             ---------------------
@@ -258,7 +258,7 @@ CPGDFILE = YZOOMFILE
 !*    3.     CLOSE PARALLELIZED I/O
 !            ----------------------
 !
-CALL IO_FILE_CLOSE_ll(TZPGDFILE,CLUOUT0,IRESP)
+CALL IO_FILE_CLOSE_ll(TZPGDFILE)
 !
 WRITE(ILUOUT0,*)
 WRITE(ILUOUT0,*) '***************************'