diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index f21469986e28ccb2c076938375429562771ea612..d304f439d4233334e49cbc943a9ab1a36d78b786 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 7c51d0a537974bcf3dba56675f468553fbecd31d..760c8710db153b5064545d5f08c8325568cd356b 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 56fa4322e48a161a163d7e5d309e358237a38dcf..f42f0b08e0d09a83df269bec3ab4c791f57d78c6 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 fc9a50c9291d962e25661269ea23510ba14cddc8..b9472afd35a7d05304d81baf7b790edb0490d4a8 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 ad1466bd851def41679432a30d90630abe0a4094..c64838a046ce939c0a8e107991c999d3c6864f82 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 6136b47f52da70663b49023c77d9b6408fa83f66..b4fee82f8ed21a6151f35f95afec4f8939f23909 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 d6881971ceeaeef250f8449facfd4c1ee53dbd27..e8707b14f0ed34b17b2f44fd330d949260dfbb1c 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 79d2627915c6f8a80955d789ee61d0e2bd656a0c..6a1b8847714e91a0974084e031d08f4a7e8f8d5c 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 bd94f033204b40b30bafb6e66bf332621e3cdee7..0bf06bb0f55751e6c292c661a728c961fcb8b9af 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 84354e1f3712ca7e8056dd0ff7c21a1939deecd1..bece43011be71d774ee1b0c3260fd4885a4b333a 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 de2efc608a53fc2cea9e183e304740bfd6022810..2274e9174fb984feee966c6e8716fd2c42dabb67 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 b3cb79f987c828b2f93450632381596d3eab4ceb..a5114c83678d9b5fe4e162138d3584fd0d27c320 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 a5886249181f25677d0bee91d51671c71eaad42f..8617ff5c1763bd939d5fe59e9c00dc74f59ac6e1 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 7ab352665080b6bc19ddcea1d8107ccae3e71e25..54c6103b690851efd1ce8031457f8080468c2a2a 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