From e7049a4cba30af8ce411903e040d5965a479e74e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 6 Oct 2017 13:46:15 +0200 Subject: [PATCH] Philippe 06/10/2017: IO: file open and close modifications * added OUTPUTLISTING CTYPE for files (IO_FILE_OPEN_ll and IO_FILE_ADD2LIST) * added NLU variable in TFILEDATA datatype * removed HFIPRI argument in IO_FILE_OPEN_ll, FMOPEN_ll, IO_FILE_CLOSE_ll and FMCLOS_ll subroutines * removed FM_ERR subroutine * KRESP return code is now optional for IO_FILE_OPEN_ll, FMOPEN_ll, IO_FILE_CLOSE_ll and FMCLOS_ll subroutines --- src/LIB/SURCOUCHE/src/extern_userio.f90 | 39 ++- src/LIB/SURCOUCHE/src/modd_io.f90 | 5 +- src/LIB/SURCOUCHE/src/mode_fm.f90 | 285 +++++++++--------- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 84 +++--- src/MNH/compare_dad.f90 | 8 +- src/MNH/compute_r00.f90 | 4 +- src/MNH/diag.f90 | 8 +- src/MNH/ini_cpl.f90 | 4 +- src/MNH/ini_modeln.f90 | 4 +- src/MNH/ini_prog_var.f90 | 4 +- src/MNH/ini_segn.f90 | 6 +- src/MNH/ini_size_spawn.f90 | 4 +- src/MNH/latlon_to_xy.f90 | 4 +- src/MNH/ls_coupling.f90 | 2 +- src/MNH/mnh2lpdm_ech.f90 | 4 +- src/MNH/mnh2lpdm_ini.f90 | 8 +- src/MNH/mnhclose_aux_io_surf.f90 | 2 +- src/MNH/mnhopen_aux_io_surf.f90 | 2 +- src/MNH/modeln.f90 | 16 +- src/MNH/open_data_files.f90 | 2 +- src/MNH/open_nestpgd_files.f90 | 4 +- src/MNH/open_prc_files.f90 | 2 +- src/MNH/prep_ideal_case.f90 | 12 +- src/MNH/prep_nest_pgd.f90 | 4 +- src/MNH/prep_pgd.f90 | 4 +- src/MNH/prep_real_case.f90 | 6 +- src/MNH/prep_surfex.f90 | 8 +- src/MNH/spawn_model2.f90 | 8 +- src/MNH/spawning.f90 | 4 +- src/MNH/write_diachro.f90 | 8 - src/MNH/xy_to_latlon.f90 | 4 +- src/MNH/zoom_pgd.f90 | 8 +- 32 files changed, 289 insertions(+), 278 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/extern_userio.f90 b/src/LIB/SURCOUCHE/src/extern_userio.f90 index 20cfadc62..14c94c0c8 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 b0290eaad..5d4348318 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 03d39b4ea..3154d1582 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 545ffa494..221e354a7 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 b3a92a527..fb1bafbf3 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 e7ab5e32a..8b851d765 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 54897c615..6731fb90a 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 276b540c8..610310756 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 4588c298e..8de68ce96 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 fb462dc66..572032f2a 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 0010370cd..2669e0891 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 16a074809..b0ba2a6df 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 d4d7576cb..15576bde3 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 2beabcc4c..2f69dec70 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 b81644ab4..9402582ad 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 6f518eb00..ab70fd32b 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 4d97ba51d..7709c1dad 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 20bd56411..8ba814072 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 ab9729afb..afd38b62b 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 64a1bf68e..324847f82 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 8f75b0cf3..c239d3fc2 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 e08d9c08e..4d41d1db5 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 e4794abe8..06849375f 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 523f7a555..df14a4219 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 c4713f707..33121d0be 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 213d996f8..90016161f 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 1345f4cd6..2a3e83afd 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 48813da89..97dd4c716 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 5b8abc7db..6fae90b5e 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 98583d751..57fcdec85 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 92bbf157e..c9b422184 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 2fbb05a59..784ed9e96 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,*) '***************************' -- GitLab