From 98ec2f8b62a1ed6398c2393dca155afecf89eaca Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 24 Nov 2017 15:08:30 +0100 Subject: [PATCH] Philippe 24/11/2017: IO: removed MODE field of FD_ll --- src/LIB/SURCOUCHE/src/mode_fd.f90 | 1 - src/LIB/SURCOUCHE/src/mode_fm.f90 | 1 - src/LIB/SURCOUCHE/src/mode_io.f90 | 70 ++++++++++++++++--------------- 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_fd.f90 b/src/LIB/SURCOUCHE/src/mode_fd.f90 index 4ec000680..364377986 100644 --- a/src/LIB/SURCOUCHE/src/mode_fd.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fd.f90 @@ -24,7 +24,6 @@ INTEGER, PARAMETER :: JPFINL = 32 ! File name length TYPE FD_ll CHARACTER(LEN=JPFINL) :: NAME ! File name INTEGER :: FLU ! Fortran logical unit - CHARACTER(LEN=15) :: MODE ! Flag mode acces ('distrib','global','specific') TYPE(FD_ll), POINTER :: NEXT END TYPE FD_ll diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index e811f4d4d..b6e197368 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -73,7 +73,6 @@ IF (GSMONOPROC) THEN ! sequential execution !! Add a new FD element TZFD=>NEWFD() TZFD%NAME = HFILEM - TZFD%MODE = 'GLOBAL' TZFD%FLU = IONEWFLU() ! KNUMBR = TZFD%FLU diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 22d6e657e..c2bb99072 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -357,7 +357,6 @@ CONTAINS TZFD%NAME = TPFILE%CNAME - TZFD%MODE = YMODE #if defined(MNH_SX5) || defined(MNH_SP4) || defined(NAGf95) || defined(MNH_LINUX) !JUAN @@ -671,7 +670,6 @@ CONTAINS YFILE_IOZ = TRIM(TPFILE%CNAME)//CFILE//".lfi" TZFD_IOZ =>NEWFD() TZFD_IOZ%NAME = YFILE_IOZ - TZFD_IOZ%MODE = 'IO_ZSPLIT' TZFD_IOZ%FLU = -1 CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(CFILE),TZSPLITFILE,IRESP,OOLD=.FALSE.) @@ -841,7 +839,7 @@ CONTAINS TYPE(FD_ll), POINTER :: TZFD - INTEGER :: IERR, IGLOBALERR, IRESP + INTEGER :: IERR, IGLOBALERR, IGLOBALERR2, IRESP, IRESP2 CHARACTER(LEN=100) :: STATUSL INTEGER :: IFILE @@ -875,46 +873,50 @@ CONTAINS RETURN END IF - IRESP = 0 - IGLOBALERR = 0 + IRESP = 0 + IRESP2 = 0 + IGLOBALERR = 0 + IGLOBALERR2 = 0 IF (PRESENT(STATUS)) THEN STATUSL = STATUS ELSE STATUSL = "KEEP" ENDIF - SELECT CASE(TZFD%MODE) - CASE('GLOBAL','SPECIFIC') - IF (TPFILE%LMASTER) THEN - CLOSE(UNIT=TPFILE%NLU, IOSTAT=IRESP,STATUS=STATUSL) - CALL IOFREEFLU(TPFILE%NLU) - END IF - CALL MPI_ALLREDUCE(IRESP,IGLOBALERR,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) - CASE('DISTRIBUTED') - ! nothing to close with FM-Files - - CASE('IO_ZSPLIT') - ! - ! close LFI file in the different PROC - ! - IF( GPARALLELIO ) THEN - DO IFILE=1,TPFILE%NSUBFILES_IOZ - TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE - IF (TPFILE%LMASTER) THEN - IF (TZFILE%NLFIFLU > 0) THEN !if LFI - CALL LFIFER(IRESP8,TZFILE%NLFIFLU,YSTATU) - CALL IOFREEFLU(INT(TPFILE%NLFIFLU)) - IRESP = IRESP8 - END IF - IF (ASSOCIATED(TZFILE%TNCDIMS)) CALL CLEANIOCDF(TZFILE%TNCDIMS) - END IF - END DO - END IF - END SELECT + IF (TPFILE%LMASTER) THEN + IF (TPFILE%NLU>0 .AND. TPFILE%NLU/=JPFNULL) THEN + CLOSE(UNIT=TPFILE%NLU, IOSTAT=IRESP,STATUS=STATUSL) + CALL IOFREEFLU(TPFILE%NLU) + END IF + END IF + ! + IF( GPARALLELIO ) THEN + DO IFILE=1,TPFILE%NSUBFILES_IOZ + TZFILE => TPFILE%TFILES_IOZ(IFILE)%TFILE + IF (TPFILE%LMASTER) THEN + IF (TZFILE%NLFIFLU > 0) THEN !if LFI + CALL LFIFER(IRESP8,TZFILE%NLFIFLU,YSTATU) + CALL IOFREEFLU(INT(TPFILE%NLFIFLU)) + IRESP2 = IRESP8 + END IF + IF (ASSOCIATED(TZFILE%TNCDIMS)) CALL CLEANIOCDF(TZFILE%TNCDIMS) + END IF + END DO + ! + CALL MPI_ALLREDUCE(IRESP2,IGLOBALERR2,1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) + END IF + ! + CALL MPI_ALLREDUCE(IRESP, IGLOBALERR, 1,MPI_INTEGER,MPI_BOR,TPFILE%NMPICOMM,IERR) CALL DELFD(TZFD) - IF (PRESENT(IOSTAT)) IOSTAT = IGLOBALERR + IF (PRESENT(IOSTAT)) THEN + IF (IGLOBALERR/=0) THEN + IOSTAT = IGLOBALERR + ELSE + IOSTAT = IGLOBALERR2 + END IF + END IF END SUBROUTINE CLOSE_ll -- GitLab