From fcaca3cb24ddf80e40699d8d551b7ed9935c83ce Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 27 Nov 2017 10:39:24 +0100 Subject: [PATCH] Philippe 27/11/2017: IO: do not use FD_ll structures any more (remove in next commit) --- src/LIB/SURCOUCHE/src/mode_fm.f90 | 55 ++----- src/LIB/SURCOUCHE/src/mode_io.f90 | 233 +++++++++++---------------- src/LIB/SURCOUCHE/src/mode_mppdb.f90 | 1 - src/MNH/get_nb_procio_read_mnh.f90 | 20 +-- src/MNH/get_nb_procio_write_mnh.f90 | 27 ++-- 5 files changed, 131 insertions(+), 205 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index d3ee12e4c..54d85bbc7 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -52,37 +52,37 @@ IF ( IP .EQ. 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK END SUBROUTINE SET_FMPACK_ll SUBROUTINE FMLOOK_ll(HFILEM,HFIPRI,KNUMBR,KRESP) -USE MODD_IO_ll, ONLY : ISTDOUT -USE MODE_FD_ll, ONLY : FD_ll,GETFD +! +USE MODD_IO_ll, ONLY : ISTDOUT,TFILEDATA +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +! CHARACTER(LEN=*), INTENT(IN) :: HFILEM CHARACTER(LEN=*), INTENT(IN) :: HFIPRI INTEGER, INTENT(OUT) :: KNUMBR INTEGER, INTENT(OUT) :: KRESP - -TYPE(FD_ll), POINTER :: TZFD, TZFIPRI - -TZFD=>GETFD(HFILEM) -IF (ASSOCIATED(TZFD)) THEN - KNUMBR = TZFD%FLU +! +INTEGER :: IRESP +TYPE(TFILEDATA),POINTER :: TZFILE +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','FMLOOK_ll','called for '//TRIM(HFILEM)) +! +TZFILE => NULL() +CALL IO_FILE_FIND_BYNAME(TRIM(HFILEM),TZFILE,IRESP) +! +IF (IRESP==0) THEN + KNUMBR = TZFILE%NLU KRESP = NOERROR ELSE IF (HFILEM == HFIPRI) THEN KNUMBR = ISTDOUT KRESP = NOERROR ELSE - TZFIPRI=>GETFD(HFIPRI) - IF (ASSOCIATED(TZFIPRI)) THEN - WRITE(TZFIPRI%FLU,*) 'Error FMLOOK_ll : file '& - & ,TRIM(HFILEM),' not found' - ELSE - WRITE(ISTDOUT,*) 'Error FMLOOK_ll : file ',TRIM(HFILEM)& - & ,' not found' - END IF + CALL PRINT_MSG(NVERB_ERROR,'IO','FMLOOK_ll','file '//TRIM(HFILEM)//' not found') KRESP = IOERROR KNUMBR = -1 END IF END IF - +! END SUBROUTINE FMLOOK_ll SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS) @@ -105,7 +105,6 @@ INTEGER :: IRESP,IRESP2 INTEGER :: IMASDEV,IBUGFIX INTEGER,DIMENSION(3) :: IMNHVERSION CHARACTER(LEN=12) :: YMNHVERSION_FILE,YMNHVERSION_CURR -TYPE(FD_ll), POINTER :: TZFDLFI TYPE(TFIELDDATA) :: TZFIELD TYPE(TFILEDATA),POINTER :: TZFILE_DES TYPE(TFILEDATA),POINTER :: TZFILE_DUMMY @@ -193,26 +192,6 @@ SELECT CASE(TPFILE%CTYPE) ! CALL FMOPEN_ll(TPFILE,IRESP,OPARALLELIO=OPARALLELIO) ! - TZFDLFI=>GETFD(ADJUSTL(TRIM(TPFILE%CNAME)//'.lfi')) - IF (TRIM(TPFILE%CMODE) == 'READ' .AND. TPFILE%LMASTER) THEN - IF (LIOCDF4 .AND. .NOT.LLFIREAD) THEN - 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. TPFILE%LMASTER) THEN - IF (LIOCDF4) THEN - 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 - ! !Compare MNHVERSION of file with current version IF (TRIM(TPFILE%CMODE) == 'READ') THEN IMNHVERSION(:) = 0 diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index c2bb99072..4ee081183 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -250,7 +250,7 @@ CONTAINS TYPE(FD_ll), POINTER :: TZFD_IOZ CHARACTER(len=128) :: YFILE_IOZ INTEGER(KIND=LFI_INT) :: IRESOU,IMELEV,INPRAR - INTEGER(KIND=LFI_INT) :: INUMBR8,ININAR8 + INTEGER(KIND=LFI_INT) :: ININAR8 LOGICAL(KIND=LFI_INT) :: GNAMFI8,GFATER8,GSTATS8 !JUANZ @@ -425,79 +425,79 @@ CONTAINS IF (TPFILE%LMASTER) THEN !! I/O processor case - TZFD%FLU = IONEWFLU() + TPFILE%NLU = IONEWFLU() #ifdef MNH_VPP - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME),& - STATUS=STATUS, & - ACCESS=ACCESS, & - IOSTAT=IOS, & - FORM=FORM, & - RECL=IRECSIZE, & - BLANK=BLANK, & - POSITION=POSITION, & - ACTION=YACTION, & - DELIM=DELIM, & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME),& + STATUS=STATUS, & + ACCESS=ACCESS, & + IOSTAT=IOS, & + FORM=FORM, & + RECL=IRECSIZE, & + BLANK=BLANK, & + POSITION=POSITION, & + ACTION=YACTION, & + DELIM=DELIM, & PAD=PAD) #else #if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) !JUAN : 31/03/2000 modif pour acces direct IF (YACCESS=='DIRECT') THEN - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME),& - STATUS=YSTATUS, & - ACCESS=YACCESS, & - IOSTAT=IOS, & - FORM=YFORM, & - RECL=YRECL, & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME),& + STATUS=YSTATUS, & + ACCESS=YACCESS, & + IOSTAT=IOS, & + FORM=YFORM, & + RECL=YRECL, & ACTION=YACTION) ELSE IF (YFORM=="FORMATTED") THEN IF (YACTION=='READ') THEN - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME),& - STATUS=YSTATUS, & - ACCESS=YACCESS, & - IOSTAT=IOS, & - FORM=YFORM, & - RECL=YRECL, & - BLANK=YBLANK, & - POSITION=YPOSITION, & - ACTION=YACTION, & - !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME),& + STATUS=YSTATUS, & + ACCESS=YACCESS, & + IOSTAT=IOS, & + FORM=YFORM, & + RECL=YRECL, & + BLANK=YBLANK, & + POSITION=YPOSITION, & + ACTION=YACTION, & + !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X PAD=YPAD) ELSE - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME),& - STATUS=YSTATUS, & - ACCESS=YACCESS, & - IOSTAT=IOS, & - FORM=YFORM, & - RECL=YRECL, & - BLANK=YBLANK, & - POSITION=YPOSITION, & - ACTION=YACTION, & - DELIM=YDELIM, & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME),& + STATUS=YSTATUS, & + ACCESS=YACCESS, & + IOSTAT=IOS, & + FORM=YFORM, & + RECL=YRECL, & + BLANK=YBLANK, & + POSITION=YPOSITION, & + ACTION=YACTION, & + DELIM=YDELIM, & PAD=YPAD) ENDIF ELSE - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME),& - STATUS=YSTATUS, & - ACCESS=YACCESS, & - IOSTAT=IOS, & - FORM=YFORM, & - RECL=YRECL, & - POSITION=YPOSITION, & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME),& + STATUS=YSTATUS, & + ACCESS=YACCESS, & + IOSTAT=IOS, & + FORM=YFORM, & + RECL=YRECL, & + POSITION=YPOSITION, & ACTION=YACTION) ENDIF ENDIF !print*,' OPEN_ll' - !print*,' OPEN(UNIT=',TZFD%FLU - !print*,' FILE=',TRIM(TZFD%NAME) + !print*,' OPEN(UNIT=',TPFILE%NLU + !print*,' FILE=',TRIM(TPFILE%CNAME) !print*,' STATUS=',YSTATUS !print*,' ACCESS=',YACCESS !print*,' IOSTAT=',IOS @@ -509,17 +509,17 @@ CONTAINS !print*,' DELIM=',YDELIM !print*,' PAD=',YPAD #else - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME),& - STATUS=STATUS, & - ACCESS=ACCESS, & - IOSTAT=IOS, & - FORM=FORM, & - RECL=RECL, & - BLANK=BLANK, & - POSITION=POSITION, & - ACTION=YACTION, & - DELIM=DELIM, & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME),& + STATUS=STATUS, & + ACCESS=ACCESS, & + IOSTAT=IOS, & + FORM=FORM, & + RECL=RECL, & + BLANK=BLANK, & + POSITION=POSITION, & + ACTION=YACTION, & + DELIM=DELIM, & PAD=PAD) #endif @@ -528,21 +528,21 @@ CONTAINS ELSE !! NON I/O processors case IOS = 0 - TZFD%FLU = JPFNULL + TPFILE%NLU = JPFNULL END IF - TPFILE%NLU = TZFD%FLU + TZFD%FLU = TPFILE%NLU CASE('SPECIFIC') - TZFD%FLU = IONEWFLU() + TPFILE%NLU = IONEWFLU() TPFILE%NMASTER_RANK = -1 TPFILE%LMASTER = .TRUE. !Every process use the file TPFILE%LMULTIMASTERS = .TRUE. TPFILE%NSUBFILES_IOZ = 0 #ifdef MNH_VPP - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME)//SUFFIX(".P"), & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME)//SUFFIX(".P"), & STATUS=STATUS, & ACCESS=ACCESS, & IOSTAT=IOS, & @@ -557,18 +557,18 @@ CONTAINS #else #if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) IF (ACCESS=='DIRECT') THEN - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME)//SUFFIX(".P"), & - STATUS=YSTATUS, & - ACCESS=YACCESS, & - IOSTAT=IOS, & - FORM=YFORM, & - RECL=YRECL, & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME)//SUFFIX(".P"), & + STATUS=YSTATUS, & + ACCESS=YACCESS, & + IOSTAT=IOS, & + FORM=YFORM, & + RECL=YRECL, & ACTION=YACTION) ELSE IF (YACTION=='READ') THEN - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME)//SUFFIX(".P"), & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME)//SUFFIX(".P"), & STATUS=YSTATUS, & ACCESS=YACCESS, & IOSTAT=IOS, & @@ -580,8 +580,8 @@ CONTAINS !DELIM=YDELIM, & !Philippe: commented because bug with GCC 5.X PAD=YPAD) ELSE - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME)//SUFFIX(".P"), & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME)//SUFFIX(".P"), & STATUS=YSTATUS, & ACCESS=YACCESS, & IOSTAT=IOS, & @@ -595,8 +595,8 @@ CONTAINS ENDIF ENDIF #else - OPEN(UNIT=TZFD%FLU, & - FILE=TRIM(TZFD%NAME)//SUFFIX(".P"), & + OPEN(UNIT=TPFILE%NLU, & + FILE=TRIM(TPFILE%CNAME)//SUFFIX(".P"), & STATUS=STATUS, & ACCESS=ACCESS, & IOSTAT=IOS, & @@ -611,7 +611,7 @@ CONTAINS #endif - TPFILE%NLU = TZFD%FLU + TZFD%FLU = TPFILE%NLU CASE('DISTRIBUTED') @@ -621,14 +621,14 @@ CONTAINS TPFILE%NSUBFILES_IOZ = 0 IF (TPFILE%LMASTER) THEN - TZFD%FLU = IONEWFLU() + TPFILE%NLU = IONEWFLU() ELSE !! NON I/O processors case IOS = 0 - TZFD%FLU = -1 + TPFILE%NLU = -1 END IF - TPFILE%NLU = TZFD%FLU + TZFD%FLU = TPFILE%NLU CASE('IO_ZSPLIT') @@ -649,14 +649,14 @@ CONTAINS #else IF (TPFILE%LMASTER) THEN #endif - TZFD%FLU = IONEWFLU() + TPFILE%NLFIFLU = IONEWFLU() ELSE !! NON I/O processors OR NetCDF read case IOS = 0 - TZFD%FLU = -1 + TPFILE%NLFIFLU = -1 END IF - TPFILE%NLFIFLU = TZFD%FLU + TZFD%FLU = TPFILE%NLFIFLU IF (TPFILE%NSUBFILES_IOZ > 0) THEN IF (.NOT.ALLOCATED(TPFILE%TFILES_IOZ)) THEN @@ -725,8 +725,8 @@ CONTAINS ! LFI case ! Open LFI File for reading !this proc must write on this file open it ... - TZFD_IOZ%FLU = IONEWFLU() - TZSPLITFILE%NLFIFLU = TZFD_IOZ%FLU + TZSPLITFILE%NLFIFLU = IONEWFLU() + TZFD_IOZ%FLU = TZSPLITFILE%NLFIFLU !! LFI-File case IRESOU = 0 GNAMFI8 = .TRUE. @@ -741,9 +741,8 @@ CONTAINS ! ! JUAN open lfi file temporary modif ! - INUMBR8 = TZFD_IOZ%FLU CALL LFIOUV(IRESOU, & - INUMBR8, & + TZSPLITFILE%NLFIFLU, & GNAMFI8, & TZSPLITFILE%CNAME, & "UNKNOWN", & @@ -756,7 +755,9 @@ CONTAINS END IF ENDIF ! - CALL UPDATE_METADATA(TZSPLITFILE) !Done outside of the IF == ISP + TZSPLITFILE%LOPENED = .TRUE. + TZSPLITFILE%NOPEN = TZSPLITFILE%NOPEN + 1 + TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1 ! ENDDO END IF @@ -764,8 +765,6 @@ CONTAINS END SELECT -! CALL UPDATE_METADATA(TPFILE) - TPFILE%NMPICOMM = ICOMM IOSTAT = IOS @@ -780,50 +779,6 @@ CONTAINS END FUNCTION SUFFIX - SUBROUTINE UPDATE_METADATA(TPFILEMD) - TYPE(TFILEDATA), INTENT(INOUT), OPTIONAL :: TPFILEMD - - TYPE(FD_ll), POINTER :: TZFDLFI - - IF(.NOT.PRESENT(TPFILEMD)) RETURN - - TPFILEMD%LOPENED = .TRUE. - TPFILEMD%NOPEN = TPFILEMD%NOPEN + 1 - TPFILEMD%NOPEN_CURRENT = TPFILEMD%NOPEN_CURRENT + 1 - - NULLIFY(TZFDLFI) - - TZFDLFI=>GETFD(ADJUSTL(TRIM(TPFILEMD%CNAME)//'.lfi')) - - IF(.NOT.ASSOCIATED(TZFDLFI)) & - CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll::UPDATE_METADATA','TZFDLFI not found for '& - //TRIM(TPFILEMD%CNAME)) - - IF (TRIM(TPFILEMD%CMODE) == 'READ' .AND. TPFILEMD%LMASTER) THEN - IF (LIOCDF4 .AND. .NOT.LLFIREAD) THEN - IF (TPFILEMD%NNCID<0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll::UPDATE_METADATA','invalid NNCID for '& - //TRIM(TPFILEMD%CNAME)) - ELSE - TPFILEMD%NLFIFLU = TZFDLFI%FLU - IF (TPFILEMD%NLFIFLU<0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll::UPDATE_METADATA','invalid NLFIFLU for '& - //TRIM(TPFILEMD%CNAME)) - ENDIF - ELSE IF (TRIM(TPFILEMD%CMODE) == 'WRITE' .AND. TPFILEMD%LMASTER) THEN - IF (LIOCDF4) THEN - IF (TPFILEMD%NNCID<0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll::UPDATE_METADATA','invalid NNCID for '& - //TRIM(TPFILEMD%CNAME)) - END IF - IF (.NOT.LIOCDF4 .OR. LLFIOUT) THEN - TPFILEMD%NLFIFLU = TZFDLFI%FLU - IF (TPFILEMD%NLFIFLU<0) CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll::UPDATE_METADATA','invalid NLFIFLU for '& - //TRIM(TPFILEMD%CNAME)) - END IF - ELSE IF (TRIM(TPFILEMD%CMODE) /= 'READ' .AND. TRIM(TPFILEMD%CMODE) /= 'WRITE') THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll::UPDATE_METADATA','unknown opening mode ('//TRIM(TPFILEMD%CMODE)//') for '& - //TRIM(TPFILEMD%CNAME)) - END IF - - END SUBROUTINE UPDATE_METADATA END SUBROUTINE OPEN_ll SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,STATUS,OPARALLELIO) diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 index 49c816ccd..1e27d47b0 100644 --- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 @@ -684,7 +684,6 @@ CONTAINS TX3DP=>Z3D - !CALL FM_WRIT_ll(TZFD%FLU,HRECFM,.TRUE.,SIZE(TX3DP),TX3DP,TZFMH,IRESP) ELSE ! Other processors CALL GET_DISTRIB_LB(HLBTYPE,ISP,'LOC','WRITE',KRIM,IIB,IIE,IJB,IJE) diff --git a/src/MNH/get_nb_procio_read_mnh.f90 b/src/MNH/get_nb_procio_read_mnh.f90 index 37ee6e815..717dde4b8 100644 --- a/src/MNH/get_nb_procio_read_mnh.f90 +++ b/src/MNH/get_nb_procio_read_mnh.f90 @@ -36,10 +36,10 @@ !! !------------------------------------------------------------------------------- ! -USE MODE_FD_ll, ONLY : GETFD,JPFINL,FD_ll -USE MODE_FM, ONLY : FMLOOK_ll USE MODD_IO_SURF_MNH, ONLY : COUT, TPINFILE ! +USE MODE_FM, ONLY : FMLOOK_ll +! IMPLICIT NONE ! !* 0. DECLARATIONS @@ -47,26 +47,20 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -!CHARACTER(LEN=*), INTENT(IN) :: HFILEM ! FM-file name -INTEGER, INTENT(OUT) :: KNB_PROCIO ! number of processes used for IO -INTEGER, INTENT(OUT) :: KRESP ! return-code +INTEGER, INTENT(OUT) :: KNB_PROCIO ! number of processes used for IO +INTEGER, INTENT(OUT) :: KRESP ! return-code ! !* 0.2 Declarations of local variables ! !---------------------------------------------------------------- -CHARACTER(LEN=JPFINL) :: YFNLFI -TYPE(FD_ll), POINTER :: TZFD -INTEGER :: IRESP -INTEGER :: ILUPRI +INTEGER :: IRESP +INTEGER :: ILUPRI ! !* 1. get the number of processes used for IO ! IRESP = 0 -YFNLFI=TRIM(ADJUSTL(TPINFILE%CNAME))//'.lfi' ! -TZFD=>GETFD(YFNLFI) -IF (ASSOCIATED(TZFD)) THEN -!!$ KNB_PROCIO = TZFD%nb_procio +IF (ASSOCIATED(TPINFILE)) THEN KNB_PROCIO = 2 ELSE IRESP = -61 diff --git a/src/MNH/get_nb_procio_write_mnh.f90 b/src/MNH/get_nb_procio_write_mnh.f90 index e1c41f7b4..4d76a142c 100644 --- a/src/MNH/get_nb_procio_write_mnh.f90 +++ b/src/MNH/get_nb_procio_write_mnh.f90 @@ -36,9 +36,11 @@ !! !------------------------------------------------------------------------------- ! -USE MODE_FD_ll, ONLY : GETFD,JPFINL,FD_ll -USE MODE_FM, ONLY : FMLOOK_ll -USE MODD_IO_SURF_MNH, ONLY : COUT, COUTFILE +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO_SURF_MNH, ONLY : COUT, COUTFILE +! +USE MODE_FM, ONLY : FMLOOK_ll +USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME ! IMPLICIT NONE ! @@ -47,26 +49,23 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -!CHARACTER(LEN=*), INTENT(IN) :: HFILEM ! FM-file name -INTEGER, INTENT(OUT) :: KNB_PROCIO ! number of processes used for IO -INTEGER, INTENT(OUT) :: KRESP ! return-code +INTEGER, INTENT(OUT) :: KNB_PROCIO ! number of processes used for IO +INTEGER, INTENT(OUT) :: KRESP ! return-code ! !* 0.2 Declarations of local variables ! !---------------------------------------------------------------- -CHARACTER(LEN=JPFINL) :: YFNLFI -TYPE(FD_ll), POINTER :: TZFD -INTEGER :: IRESP -INTEGER :: ILUPRI +INTEGER :: IRESP +INTEGER :: ILUPRI +TYPE(TFILEDATA),POINTER :: TZFILE ! !* 1. get the number of processes used for IO ! IRESP = 0 -YFNLFI=TRIM(ADJUSTL(COUTFILE))//'.lfi' ! -TZFD=>GETFD(YFNLFI) -IF (ASSOCIATED(TZFD)) THEN -!!$ KNB_PROCIO = TZFD%nb_procio +TZFILE => NULL() +CALL IO_FILE_FIND_BYNAME(TRIM(COUTFILE),TZFILE,IRESP) +IF (IRESP==0) THEN KNB_PROCIO = 2 ELSE IRESP = -61 -- GitLab