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,*) '***************************'