From f690e611c61fb4e3f2b7880fa910adf42b9f19c1 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 7 Feb 2019 14:59:09 +0100
Subject: [PATCH] Philippe 07/02/2019: IO: remove OPARALLELIO argument from
 open and close files subroutines (nsubfiles_ioz is now determined in
 IO_FILE_ADD2LIST)

---
 src/LIB/SURCOUCHE/src/modd_io.f90             |  2 +-
 src/LIB/SURCOUCHE/src/mode_fm.f90             | 41 +++-------
 src/LIB/SURCOUCHE/src/mode_io.f90             | 76 +++++++------------
 .../SURCOUCHE/src/mode_io_manage_struct.f90   | 57 ++++++++++----
 src/LIB/SURCOUCHE/src/modi_fm.f90             | 10 +--
 src/LIB/SURCOUCHE/src/modi_io.f90             | 26 ++-----
 src/MNH/ini_size_spawn.f90                    |  6 +-
 src/MNH/mnhclose_aux_io_surf.f90              | 13 ++--
 src/MNH/mnhopen_aux_io_surf.f90               |  4 +-
 src/MNH/modeln.f90                            |  8 +-
 src/MNH/open_nestpgd_files.f90                |  4 +-
 src/MNH/open_prc_files.f90                    |  4 +-
 src/MNH/prep_pgd.f90                          | 10 ++-
 src/MNH/spawning.f90                          |  6 +-
 14 files changed, 127 insertions(+), 140 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90
index f21469986..d304f439d 100644
--- a/src/LIB/SURCOUCHE/src/modd_io.f90
+++ b/src/LIB/SURCOUCHE/src/modd_io.f90
@@ -95,7 +95,7 @@ TYPE TFILEDATA
   ! Fields for LFI files
   INTEGER(KIND=LFI_INT) :: NLFININAR = 0  !Number of articles of the LFI file (only accurate if file opened in read mode)
   INTEGER(KIND=LFI_INT) :: NLFINPRAR = 0  !Number of predicted articles of the LFI file (non crucial)
-  INTEGER               :: NLFITYPE  = -1 !Type of the file (used to generate list of files to transfers)
+  INTEGER               :: NLFITYPE  = -1 !Type of the file (used to generate list of files to transfer)
   INTEGER               :: NLFIVERB  = 1  !LFI verbosity level
   INTEGER(KIND=LFI_INT) :: NLFIFLU   = -1 !File identifier
   !
diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 7c51d0a53..760c8710d 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -15,6 +15,8 @@
 !                                 to allow to disable writes (for bench purposes)
 !  P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-----------------------------------------------------------------
 
 MODULE MODE_FM
@@ -49,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,HPOSITION,HSTATUS,HPROGRAM_ORIG)
 !
 USE MODD_CONF,  ONLY: CPROGRAM
 USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA
@@ -59,7 +61,6 @@ USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME
 !
 TYPE(TFILEDATA),POINTER,INTENT(INOUT)         :: TPFILE ! File structure
 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
@@ -140,13 +141,13 @@ SELECT CASE(TPFILE%CTYPE)
     IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN
       CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) !OOLD=T because the file may already be in the list
       CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','OPEN_ll for '//TRIM(TPFILE%CNAME)//'.des')
-      CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE',OPARALLELIO=OPARALLELIO)
+      CALL OPEN_ll(TZFILE_DES,IOSTAT=IRESP,DELIM='QUOTE')
       TZFILE_DES%LOPENED       = .TRUE.
       TZFILE_DES%NOPEN_CURRENT = TZFILE_DES%NOPEN_CURRENT + 1
       TZFILE_DES%NOPEN         = TZFILE_DES%NOPEN + 1
     ENDIF
     !
-    CALL FMOPEN_ll(TPFILE,IRESP,OPARALLELIO=OPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG)
+    CALL FMOPEN_ll(TPFILE,IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG)
 
 END SELECT
 !
@@ -154,7 +155,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,HPROGRAM_ORIG)
 USE MODD_IO_ll,               ONLY: TFILEDATA
 USE MODE_IO_ll,               ONLY: OPEN_ll,GCONFIO
 !JUANZ
@@ -168,7 +169,6 @@ use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi
 
 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
@@ -178,19 +178,12 @@ CHARACTER(LEN=7)      :: YACTION ! Action upon the file ('READ' or 'WRITE')
 CHARACTER(LEN=8)      :: YRESP
 INTEGER               :: IERR
 INTEGER               :: INB_PROCIO
-LOGICAL               :: GPARALLELIO
 LOGICAL               :: GEXIST_LFI, GEXIST_NC4
 
 YACTION = TPFILE%CMODE
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(YACTION))
 
-IF ( PRESENT(OPARALLELIO) ) THEN
-  GPARALLELIO = OPARALLELIO
-ELSE  !par defaut on active les IO paralleles en Z si possible
-  GPARALLELIO = .TRUE.
-ENDIF
-
 IF (.NOT. GCONFIO) THEN
    PRINT *, 'FMOPEN_ll Aborting... Please, ensure to call SET_CONFIO_ll before &
         &the first FMOPEN_ll call.'
@@ -214,8 +207,7 @@ ENDIF
     INB_PROCIO = NB_PROCIO_W
  END SELECT
 
-CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='IO_ZSPLIT',     &
-             KNB_PROCIO=INB_PROCIO,OPARALLELIO=GPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG)
+CALL OPEN_ll(TPFILE,IOSTAT=IRESP,MODE='IO_ZSPLIT',HPROGRAM_ORIG=HPROGRAM_ORIG)
 
 IF (IRESP /= 0) GOTO 1000
 
@@ -301,7 +293,7 @@ KRESP=IRESP
 
 END SUBROUTINE FMOPEN_ll
 
-SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG)
+SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG)
 !
 USE MODD_CONF,  ONLY: CPROGRAM
 USE MODD_IO_ll, ONLY: TFILEDATA
@@ -310,7 +302,6 @@ 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
@@ -377,7 +368,7 @@ SELECT CASE(TPFILE%CTYPE)
 
   !OUTPUTLISTING files
   CASE('OUTPUTLISTING')
-    CALL CLOSE_ll(TPFILE,IOSTAT=IRESP,OPARALLELIO=.FALSE.)
+    CALL CLOSE_ll(TPFILE,IOSTAT=IRESP)
     !
     TPFILE%NLU = -1
 
@@ -412,7 +403,7 @@ SELECT CASE(TPFILE%CTYPE)
       END IF
     ENDIF
     !
-    CALL FMCLOS_ll(TPFILE,KRESP=IRESP,OPARALLELIO=OPARALLELIO,HPROGRAM_ORIG=HPROGRAM_ORIG)
+    CALL FMCLOS_ll(TPFILE,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG)
     !
     DO JI = 1,TPFILE%NSUBFILES_IOZ
       TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE
@@ -435,7 +426,7 @@ IF (PRESENT(KRESP)) KRESP=IRESP
 !
 END SUBROUTINE IO_FILE_CLOSE_ll
 
-SUBROUTINE FMCLOS_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG)
+SUBROUTINE FMCLOS_ll(TPFILE,KRESP,HPROGRAM_ORIG)
 !
 !!    MODIFICATIONS
 !!    -------------
@@ -453,7 +444,6 @@ USE MODI_SYSTEM_MNH
 #endif
 TYPE(TFILEDATA),      INTENT(INOUT)         :: TPFILE ! File structure
 INTEGER,              INTENT(OUT)           :: 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
@@ -464,18 +454,11 @@ CHARACTER(LEN=14)       :: YTRANS
 CHARACTER(LEN=100)      :: YCOMMAND
 INTEGER                 :: IERR, IFITYP
 INTEGER, SAVE           :: ICPT=0
-LOGICAL                 :: GPARALLELIO
 
 YFILEM  = TPFILE%CNAME
 
 CALL PRINT_MSG(NVERB_DEBUG,'IO','FMCLOS_ll','closing '//TRIM(YFILEM))
 
-IF ( PRESENT(OPARALLELIO) ) THEN
-  GPARALLELIO = OPARALLELIO
-ELSE
-  GPARALLELIO = .TRUE.  !par defaut on active les IO paralleles en Z si possible
-ENDIF
-
 IRESP  = 0
 IROWF  = 0
 
@@ -532,7 +515,7 @@ END IF
 500 CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR)
 IF (IRESP /= 0) GOTO 1000
 
-CALL CLOSE_ll(TPFILE,IOSTAT=IRESP,OPARALLELIO=GPARALLELIO)
+CALL CLOSE_ll(TPFILE,IOSTAT=IRESP)
 
 1000 CONTINUE
 
diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90
index 56fa4322e..f42f0b08e 100644
--- a/src/LIB/SURCOUCHE/src/mode_io.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io.f90
@@ -26,7 +26,10 @@
 !     Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow
 !                                    to disable writes (for bench purposes)
 !  P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !
+!-----------------------------------------------------------------
 MODULE MODE_IO_ll
 
   USE MODD_MPIF
@@ -148,8 +151,6 @@ CONTAINS
        STATUS,  &
        POSITION,&
        DELIM,    &
-       KNB_PROCIO,& 
-       OPARALLELIO, &
        HPROGRAM_ORIG)
 
   USE MODD_IO_ll
@@ -167,8 +168,6 @@ CONTAINS
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: STATUS
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: POSITION
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: DELIM
-    INTEGER,         INTENT(IN),  OPTIONAL :: KNB_PROCIO
-    LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
     CHARACTER(LEN=*),INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
     !
     ! local var
@@ -184,18 +183,11 @@ CONTAINS
     CHARACTER(len=20)    :: YMODE
     CHARACTER(LEN=256)   :: YIOERRMSG
     INTEGER              :: IOS,IRESP
-    LOGICAL               :: GPARALLELIO
     TYPE(TFILEDATA),POINTER :: TZSPLITFILE
     CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename
     CHARACTER(LEN=:),ALLOCATABLE :: YFORSTATUS  ! Status for open of a file (for LFI) ('OLD','NEW','UNKNOWN','SCRATCH','REPLACE')
 
     CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE))
-    !
-    IF ( PRESENT(OPARALLELIO) ) THEN
-      GPARALLELIO = OPARALLELIO
-    ELSE  !par defaut on active les IO paralleles en Z si possible
-      GPARALLELIO = .TRUE.
-    ENDIF
 
     IOS = 0
 
@@ -404,12 +396,6 @@ CONTAINS
        TPFILE%NMASTER_RANK  = ISIOP
        TPFILE%LMASTER       = (ISP == ISIOP)
        TPFILE%LMULTIMASTERS = .FALSE.
-       TPFILE%NSUBFILES_IOZ = 0
-       IF ( GPARALLELIO .AND. PRESENT(KNB_PROCIO) ) THEN
-         IF (KNB_PROCIO>1) THEN
-           TPFILE%NSUBFILES_IOZ = KNB_PROCIO
-         END IF
-       END IF
 
 #if defined(MNH_IOCDF4)
        IF (TPFILE%LMASTER .AND. (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') ) THEN
@@ -425,7 +411,7 @@ CONTAINS
           IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN
             ALLOCATE(TPFILE%TFILES_IOZ(TPFILE%NSUBFILES_IOZ))
           ELSE IF ( SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ ) THEN
-            CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(PFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME))
+            CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME))
           END IF
           DO IFILE=1,TPFILE%NSUBFILES_IOZ
              IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ)
@@ -515,7 +501,7 @@ CONTAINS
 
   END SUBROUTINE OPEN_ll
 
-  SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,OPARALLELIO,HPROGRAM_ORIG)
+  SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG)
   USE MODD_IO_ll
 
   USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
@@ -526,24 +512,15 @@ CONTAINS
 #endif
     TYPE(TFILEDATA),  INTENT(IN)            :: TPFILE
     INTEGER,          INTENT(OUT), OPTIONAL :: IOSTAT
-    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
-
-    INTEGER                               :: IFILE
-    LOGICAL                               :: GPARALLELIO
-    TYPE(TFILEDATA),POINTER               :: TZFILE
+    character(len=256)      :: yioerrmsg
+    INTEGER                 :: IERR, IGLOBALERR, IGLOBALERR2, IRESP, IRESP2
+    INTEGER                 :: IFILE
+    TYPE(TFILEDATA),POINTER :: TZFILE
 
     CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_ll','closing '//TRIM(TPFILE%CNAME))
 
-    IF ( PRESENT(OPARALLELIO) ) THEN
-      GPARALLELIO = OPARALLELIO
-    ELSE  !par defaut on active les IO paralleles en Z si possible
-      GPARALLELIO = .TRUE.
-    ENDIF
-    !JUANZ
-
     IRESP       = 0
     IRESP2      = 0
     IGLOBALERR  = 0
@@ -551,29 +528,30 @@ CONTAINS
 
     IF (TPFILE%LMASTER) THEN
       IF (TPFILE%NLU/=-1 .AND. TPFILE%NLU/=NNULLUNIT) THEN
-        CLOSE(UNIT=TPFILE%NLU, IOSTAT=IRESP,STATUS='KEEP')
+        CLOSE(UNIT=TPFILE%NLU, STATUS='KEEP', IOSTAT=IRESP, IOMSG=yioerrmsg)
       END IF
     END IF
-    !
-    IF( GPARALLELIO ) THEN
-      DO IFILE=1,TPFILE%NSUBFILES_IOZ
-        TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE
+
+    !Warning and not error or fatal if close fails to allow continuation of execution
+    IF (IRESP/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','CLOSE_ll','Problem when closing '//TRIM(TPFILE%CNAME)//': '//TRIM(YIOERRMSG))
+
+    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
+      !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 (TZFILE%LMASTER) THEN
-          if (tzfile%cformat == 'LFI'     .or. tzfile%cformat == 'LFICDF4') call io_close_file_lfi(tzfile,iresp2)
+      IF (TZFILE%LMASTER) THEN
+        if (tzfile%cformat == 'LFI'     .or. tzfile%cformat == 'LFICDF4') call io_close_file_lfi(tzfile,iresp2)
 #if defined(MNH_IOCDF4)
-          if (tzfile%cformat == 'NETCDF4' .or. tzfile%cformat == 'LFICDF4') call io_close_file_nc4(tzfile,iresp2)
+        if (tzfile%cformat == 'NETCDF4' .or. tzfile%cformat == 'LFICDF4') call io_close_file_nc4(tzfile,iresp2)
 #endif
-        END IF
-      END DO
-      !
-      CALL MPI_ALLREDUCE(IRESP2,IGLOBALERR2,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR)
-    END IF
+      END IF
+    END DO
+    !
+    IF (TPFILE%NSUBFILES_IOZ>0) CALL MPI_ALLREDUCE(IRESP2,IGLOBALERR2,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR)
     !
     CALL MPI_ALLREDUCE(IRESP, IGLOBALERR, 1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR)
 
diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index fc9a50c92..b9472afd3 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -13,6 +13,8 @@
 !                                 to allow to disable writes (for bench purposes)
 !  P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-----------------------------------------------------------------
 MODULE MODE_IO_MANAGE_STRUCT
 !
@@ -287,20 +289,24 @@ DO IMI = 1, NMODEL
   DEALLOCATE(IOUT_STEP)
   !
   IF (IP==1) THEN
-  PRINT *,'-------------------------'
+  PRINT *,'-------------------------------'
   PRINT *,'Model number:      ',IMI
   PRINT *,'Number of backups: ',IBAK_NUMB
-  PRINT *,'Timestep     Time'
-  DO JOUT = 1,IBAK_NUMB
-    WRITE(*,'( I9,F12.3 )'  ) OUT_MODEL(IMI)%TBACKUPN(JOUT)%NSTEP,OUT_MODEL(IMI)%TBACKUPN(JOUT)%XTIME
-  END DO
-  PRINT *,'-------------------------'
+  if ( ibak_numb > 0 ) then
+    PRINT *,'Timestep     Time'
+    DO JOUT = 1,IBAK_NUMB
+      WRITE(*,'( I9,F12.3 )'  ) OUT_MODEL(IMI)%TBACKUPN(JOUT)%NSTEP,OUT_MODEL(IMI)%TBACKUPN(JOUT)%XTIME
+    END DO
+  end if
+  PRINT *,'-------------------------------'
   PRINT *,'Model number:      ',IMI
   PRINT *,'Number of outputs: ',IOUT_NUMB
-  PRINT *,'Timestep     Time'
-  DO JOUT = 1,IOUT_NUMB
-    WRITE(*,'( I9,F12.3 )'  ) OUT_MODEL(IMI)%TOUTPUTN(JOUT)%NSTEP,OUT_MODEL(IMI)%TOUTPUTN(JOUT)%XTIME
-  END DO
+  if ( iout_numb > 0 ) then
+    PRINT *,'Timestep     Time'
+    DO JOUT = 1,IOUT_NUMB
+      WRITE(*,'( I9,F12.3 )'  ) OUT_MODEL(IMI)%TOUTPUTN(JOUT)%NSTEP,OUT_MODEL(IMI)%TOUTPUTN(JOUT)%XTIME
+    END DO
+  end if
   !
   IF (IOUT_NUMB>0) THEN
     PRINT *,'Field list:'
@@ -310,7 +316,7 @@ DO IMI = 1, NMODEL
     END DO
   END IF
   !
-  PRINT *,'-------------------------'
+  PRINT *,'-------------------------------'
   END IF
   !
 END DO ! IMI=1,NMODEL
@@ -632,10 +638,11 @@ END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT
 SUBROUTINE IO_FILE_ADD2LIST(TPFILE,HNAME,HTYPE,HMODE,                 &
                             HFORM,HACCESS,HFORMAT,HDIRNAME,           &
                             KLFINPRAR,KLFITYPE,KLFIVERB,KRECL,KMODEL, &
-                            TPDADFILE,TPDATAFILE,OOLD)
+                            TPDADFILE,TPDATAFILE,OOLD,OSPLIT_IOZ)
 !
 USE MODD_BAKOUT,         ONLY: LOUT_COMPRESS,LOUT_REDUCE_FLOAT_PRECISION,NOUT_COMPRESS_LEVEL
 USE MODD_CONF,           ONLY: CPROGRAM
+use modd_confz,          only: nb_procio_r,nb_procio_w
 !
 USE MODE_MODELN_HANDLER, ONLY: GET_CURRENT_MODEL_INDEX
 !
@@ -657,15 +664,19 @@ TYPE(TFILEDATA),POINTER,OPTIONAL,INTENT(IN)    :: TPDATAFILE!Corresponding data
 LOGICAL,                OPTIONAL,INTENT(IN)    :: OOLD      !FALSE if new file (should not be found)
                                                             !TRUE if the file could already be in the list
                                                             !     (add it only if not yet present)
+logical,                optional,intent(in)    :: osplit_ioz !Is the file split vertically
 !
 INTEGER :: IMI,IRESP
 INTEGER(KIND=LFI_INT) :: ILFINPRAR
 INTEGER :: ILFITYPE
 INTEGER :: ILFIVERB
 LOGICAL :: GOLD
+logical :: gsplit_ioz
 !
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_ADD2LIST','called for '//TRIM(HNAME))
 !
+IMI = GET_CURRENT_MODEL_INDEX()
+!
 IF (PRESENT(OOLD)) THEN
   GOLD = OOLD
 ELSE
@@ -699,8 +710,6 @@ IF (IRESP==0) THEN
   END IF
 END IF
 !
-IMI = GET_CURRENT_MODEL_INDEX()
-!
 IF(     PRESENT(HFORM) .AND. TRIM(HTYPE)/='SURFACE_DATA') &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument HFORM is not used by '//TRIM(HTYPE)//' files')
 IF(.NOT.PRESENT(HFORM) .AND. TRIM(HTYPE)=='SURFACE_DATA') &
@@ -782,6 +791,26 @@ END IF
 !
 TPFILE%CMODE = HMODE
 !
+if ( present(osplit_ioz) ) then
+  gsplit_ioz = osplit_ioz
+else
+  gsplit_ioz = .false.
+  if ( len_trim(htype) >= 3 ) then
+    if ( htype(1:3) == 'MNH' ) then
+      ! MNH/MNHBACKUP/MNHOUTPUT
+      !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file
+      gsplit_ioz = .true.
+      select case (hmode)
+        case('READ')
+          tpfile%nsubfiles_ioz = nb_procio_r
+        case('WRITE')
+          tpfile%nsubfiles_ioz = nb_procio_w
+      end select
+      if (tpfile%nsubfiles_ioz == 1) tpfile%nsubfiles_ioz = 0
+    end if
+  end if
+end if
+!
 SELECT CASE(TPFILE%CTYPE)
   !Chemistry input files
   CASE('CHEMINPUT')
diff --git a/src/LIB/SURCOUCHE/src/modi_fm.f90 b/src/LIB/SURCOUCHE/src/modi_fm.f90
index ad1466bd8..c64838a04 100644
--- a/src/LIB/SURCOUCHE/src/modi_fm.f90
+++ b/src/LIB/SURCOUCHE/src/modi_fm.f90
@@ -1,10 +1,12 @@
-!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 for details. version 1.
 !-----------------------------------------------------------------
 ! Modifications:
 !  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 07/02/2019: OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-----------------------------------------------------------------
 
 MODULE MODI_FM_ll
@@ -15,21 +17,19 @@ SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK)
 LOGICAL, INTENT(IN) :: O1D,O2D,OPACK
 END SUBROUTINE SET_FMPACK_ll
 !
-SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS,HPROGRAM_ORIG)
+SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG)
 USE MODD_IO_ll, ONLY: TFILEDATA
 TYPE(TFILEDATA),POINTER,INTENT(INOUT)         :: TPFILE ! File structure
 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
 END SUBROUTINE IO_FILE_OPEN_ll
 !
-SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG)
+SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG)
 USE MODD_IO_ll, ONLY: TFILEDATA
 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
 END SUBROUTINE IO_FILE_CLOSE_ll
 !
diff --git a/src/LIB/SURCOUCHE/src/modi_io.f90 b/src/LIB/SURCOUCHE/src/modi_io.f90
index 6136b47f5..b4fee82f8 100644
--- a/src/LIB/SURCOUCHE/src/modi_io.f90
+++ b/src/LIB/SURCOUCHE/src/modi_io.f90
@@ -1,10 +1,13 @@
-!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.
 !-----------------------------------------------------------------
 ! Modifications:
 !  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-----------------------------------------------------------------
 
 MODULE MODI_IO_ll
@@ -16,18 +19,10 @@ INTERFACE
   SUBROUTINE OPEN_ll(&
        TPFILE,  &
        MODE,    &
-       COMM,    &
        STATUS,  &
-       ACCESS,  &
        IOSTAT,  &
-       FORM,    &
-       RECL,    &
-       BLANK,   &
        POSITION,&
        DELIM,    &
-       PAD,      &
-       KNB_PROCIO,&
-       OPARALLELIO, &
        HPROGRAM_ORIG)
 
     USE MODD_IO_ll, ONLY : TFILEDATA
@@ -35,26 +30,17 @@ INTERFACE
     TYPE(TFILEDATA), INTENT(INOUT)         :: TPFILE
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: MODE
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: STATUS
-    CHARACTER(len=*),INTENT(IN),  OPTIONAL :: ACCESS
     INTEGER,         INTENT(OUT)           :: IOSTAT
-    CHARACTER(len=*),INTENT(IN),  OPTIONAL :: FORM
-    INTEGER,         INTENT(IN),  OPTIONAL :: RECL
-    CHARACTER(len=*),INTENT(IN),  OPTIONAL :: BLANK
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: POSITION
     CHARACTER(len=*),INTENT(IN),  OPTIONAL :: DELIM
-    CHARACTER(len=*),INTENT(IN),  OPTIONAL :: PAD
-    INTEGER,         INTENT(IN),  OPTIONAL :: COMM
-    INTEGER,         INTENT(IN),  OPTIONAL :: KNB_PROCIO
-    LOGICAL,         INTENT(IN),  OPTIONAL :: OPARALLELIO
     CHARACTER(LEN=*),INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
   END SUBROUTINE OPEN_ll
 
-  SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,OPARALLELIO,HPROGRAM_ORIG)
+  SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG)
   USE MODD_IO_ll, ONLY : TFILEDATA
 
     TYPE(TFILEDATA),  INTENT(IN)            :: TPFILE
     INTEGER,          INTENT(OUT), OPTIONAL :: IOSTAT
-    LOGICAL,          INTENT(IN),  OPTIONAL :: OPARALLELIO
     CHARACTER(LEN=*), INTENT(IN),  OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program
  END SUBROUTINE CLOSE_ll
 
diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90
index d6881971c..e8707b14f 100644
--- a/src/MNH/ini_size_spawn.f90
+++ b/src/MNH/ini_size_spawn.f90
@@ -68,6 +68,8 @@ END MODULE MODI_INI_SIZE_SPAWN
 !!         J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -226,7 +228,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),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TZDOMAIN,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TZDOMAIN)
   !
   CALL IO_READ_FIELD(TZDOMAIN,'DXRATIO',NDXRATIO)
   CALL IO_READ_FIELD(TZDOMAIN,'DYRATIO',NDYRATIO)
@@ -283,7 +285,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,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TZDOMAIN)
   CALL RETRIEVE1_NEST_INFO_n(1,2,NXOR,NYOR,NXSIZE,NYSIZE,NDXRATIO,NDYRATIO)
   DEALLOCATE(XZS,XZSMT,XXHAT,XYHAT)
 !
diff --git a/src/MNH/mnhclose_aux_io_surf.f90 b/src/MNH/mnhclose_aux_io_surf.f90
index 79d262791..6a1b88477 100644
--- a/src/MNH/mnhclose_aux_io_surf.f90
+++ b/src/MNH/mnhclose_aux_io_surf.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2003-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.
 !-----------------------------------------------------------------
 !     #########################
@@ -49,11 +49,8 @@ END MODULE MODI_MNHCLOSE_AUX_IO_SURF
 !!    -------------
 !!      Original    09/2003 
 !!      J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 surfex 2006/05/23 15:47:28
-!-----------------------------------------------------------------
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -82,7 +79,7 @@ INTEGER           :: IRESP          ! return-code if a problem appears
 !-------------------------------------------------------------------------------
 !
 IF (CACTION=='OPEN  ') THEN
-  CALL IO_FILE_CLOSE_ll(TPINFILE,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_CLOSE_ll(TPINFILE)
   CACTION='      '
 END IF
 !
diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90
index bd94f0332..0bf06bb0f 100644
--- a/src/MNH/mnhopen_aux_io_surf.f90
+++ b/src/MNH/mnhopen_aux_io_surf.f90
@@ -53,6 +53,8 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF
 !!         J.Escobar : 02/06/2016 : abort MNHOPEN with STOP if problem with OPEN of INPUT/READ file 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -139,7 +141,7 @@ END IF
 !
 IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN
   CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.)
-  CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP)
   !
   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 84354e1f3..bece43011 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.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.
 !-----------------------------------------------------------------
 !     ###################
@@ -253,6 +253,8 @@ END MODULE MODI_MODEL_n
 !!                   01/2018 (C.Lac) Add VISCOSITY
 !!  Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll
 !                                  to allow to disable writes (for bench purposes)
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -2111,7 +2113,7 @@ IF (OEXIT) THEN
   END IF
   !
   CALL IO_FILE_CLOSE_ll(TINIFILE)
-  IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD,OPARALLELIO=.FALSE.)
+  IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD)
 !
 !*       28.1   print statistics!
 !
diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90
index de2efc608..2274e9174 100644
--- a/src/MNH/open_nestpgd_files.f90
+++ b/src/MNH/open_nestpgd_files.f90
@@ -68,6 +68,8 @@ END MODULE MODI_OPEN_NESTPGD_FILES
 !!    P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -325,7 +327,7 @@ CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD)
 !Remark: output PGD files are opened later when the mesh dimensions are known
 !
 DO JPGD=1,NMODEL
-  CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)    %TZFILE,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)%TZFILE)
 END DO
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90
index b3cb79f98..a5114c836 100644
--- a/src/MNH/open_prc_files.f90
+++ b/src/MNH/open_prc_files.f90
@@ -92,6 +92,8 @@ END MODULE MODI_OPEN_PRC_FILES
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!      P. Wautelet  01/02/2019 added missing initialization to NULL for files with OUT intent
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -271,7 +273,7 @@ ELSE
 !
   TPPGDFILE => NULL()
   CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB)
-  CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP,OPARALLELIO=.FALSE.)
+  CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP)
   IF (IRESP/=0) THEN
 !callabortstop
     CALL PRINT_MSG(NVERB_FATAL,'GEN','OPEN_PRC_FILES',' problem during opening of PGD file '//TRIM(HPGDFILE))
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index a58862491..8617ff5c1 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -74,7 +74,9 @@
 !!  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 in NAM_ZSFILTER
 !  P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST
-!!
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
+!
 !----------------------------------------------------------------------------
 !
 !*    0.     DECLARATION
@@ -247,7 +249,7 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH','                            ','      ',.FA
 !
 CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5)
 !
-CALL IO_FILE_OPEN_ll(TZFILE,OPARALLELIO=.FALSE.)
+CALL IO_FILE_OPEN_ll(TZFILE)
 !
 CALL IO_WRITE_HEADER(TZFILE)
 !
@@ -325,13 +327,13 @@ WRITE(ILUOUT0,*) '***************************'
 !*    6.      Close parallelized I/O
 !             ----------------------
 !
-CALL IO_FILE_CLOSE_ll(TZFILE,OPARALLELIO=.FALSE.)
+CALL IO_FILE_CLOSE_ll(TZFILE)
 !
 CALL SURFEX_DEALLO_LIST
 !
 IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
 !
-CALL IO_FILE_CLOSE_ll(TLUOUT0,OPARALLELIO=.FALSE.)
+CALL IO_FILE_CLOSE_ll(TLUOUT0)
 !
 CALL END_PARA_ll(IINFO_ll)
 !
diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90
index 7ab352665..54c6103b6 100644
--- a/src/MNH/spawning.f90
+++ b/src/MNH/spawning.f90
@@ -1,6 +1,6 @@
 !MNH_LIC Copyright 1995-2018 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.
 !-----------------------------------------------------------------
 !     ################
@@ -74,6 +74,8 @@
 !!      J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files
 !!  06/2016     (G.Delautier) phasage surfex 8
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
+!                          (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -205,7 +207,7 @@ CALL INIT_MNH
 !
 CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TZINIFILE,IRESP)
 CALL IO_FILE_CLOSE_ll(TZINIFILE)
-CALL IO_FILE_CLOSE_ll(TINIFILEPGD,OPARALLELIO=.FALSE.)
+CALL IO_FILE_CLOSE_ll(TINIFILEPGD)
 !-------------------------------------------------------------------------------
 !
 !*       4.    INITIALIZATION OF OUTER POINTS OF MODEL 1
-- 
GitLab