From 24b9308214544442a95344fb6e6f3342bf83c4b3 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@cnrs.fr> Date: Tue, 24 Sep 2024 16:04:29 +0200 Subject: [PATCH] Philippe 24/09/2024: IO: OUTPUT_LISTING0: remove it at the end if empty (+ remove some unnecessary writes if MESONH) --- src/MNH/finalize_mnh.f90 | 28 +++++++++++++++++++++++++++- src/MNH/init_mnh.f90 | 13 ++++++++++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/MNH/finalize_mnh.f90 b/src/MNH/finalize_mnh.f90 index e6000a55b..61838dd86 100644 --- a/src/MNH/finalize_mnh.f90 +++ b/src/MNH/finalize_mnh.f90 @@ -36,7 +36,11 @@ SUBROUTINE FINALIZE_MNH IMPLICIT NONE + CHARACTER(LEN=:),ALLOCATABLE :: YPREFILENAME !To store the directory + filename + INTEGER :: ILU INTEGER :: IRESP + INTEGER :: ISIZE + INTEGER :: ISTAT INTEGER :: JMODEL !Print the list of all files and some statistics on them @@ -46,7 +50,29 @@ SUBROUTINE FINALIZE_MNH CALL MSG_STATS() !Close all the opened 'output listing' files - IF ( TLUOUT0%LOPENED ) CALL IO_File_close(TLUOUT0) + IF ( ASSOCIATED( TLUOUT0) ) THEN + IF ( TLUOUT0%LOPENED ) CALL IO_File_close(TLUOUT0) + + ! Remove OUTPUT_LISTING0 if empty + IF ( TLUOUT0%LMASTER ) THEN + IF (ALLOCATED(TLUOUT0%CDIRNAME)) THEN + IF(LEN_TRIM(TLUOUT0%CDIRNAME)>0) THEN + YPREFILENAME = TRIM(TLUOUT0%CDIRNAME) // '/' // TRIM(TLUOUT0%CNAME) + ELSE + YPREFILENAME = TRIM(TLUOUT0%CNAME) + END IF + ELSE + YPREFILENAME = TRIM(TLUOUT0%CNAME) + END IF + !Get the size of the OUTPUT_LISTING0 file + INQUIRE( FILE=YPREFILENAME, SIZE=ISIZE ) + IF ( ISIZE == 0 ) THEN + OPEN( NEWUNIT=ILU, IOSTAT=ISTAT, FILE=YPREFILENAME, STATUS='OLD' ) + IF ( ISTAT == 0 ) CLOSE( ILU, STATUS='DELETE' ) + END IF + END IF + END IF + DO JMODEL = 1, NMODEL IF ( ASSOCIATED( LUNIT_MODEL(JMODEL)%TLUOUT ) ) THEN IF ( LUNIT_MODEL(JMODEL)%TLUOUT%LOPENED ) CALL IO_File_close( LUNIT_MODEL(JMODEL)%TLUOUT) diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90 index 9b9b6b4d9..ee5c60d1f 100644 --- a/src/MNH/init_mnh.f90 +++ b/src/MNH/init_mnh.f90 @@ -78,7 +78,7 @@ USE MODD_CONF USE MODD_DYN, ONLY: XSEGLEN USE MODD_DYN_n, ONLY: CPRESOPT, NITR ! only for spawning purpose -USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TPTR2FILE +USE MODD_IO, ONLY: NNULLUNIT, TFILE_OUTPUTLISTING, TPTR2FILE USE MODD_LBC_n, ONLY: CLBCX,CLBCY ! only for spawning purpose USE MODD_LUNIT USE MODD_LUNIT_n @@ -126,21 +126,28 @@ CHARACTER(LEN=4), DIMENSION(:), POINTER :: DPTR_CLBCX,DPTR_CLBCY !* 1.1 initialize // E/S and open output-listing file ! ! +!IF ( CPROGRAM/='REAL ' .AND. CPROGRAM/='MESONH ') THEN IF (CPROGRAM/='REAL ') THEN CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ILUOUT0=TLUOUT0%NLU +!ELSE IF ( CPROGRAM == 'MESONH' ) THEN +! ! Do not create OUTPUT_LISTING0 file if main program MESONH +! ! If writes to ILUOUT0 => automatically discarded +! ILUOUT0 = NNULLUNIT ELSE ILUOUT0=TLUOUT0%NLU END IF ! -WRITE(UNIT=ILUOUT0,FMT="(50('*'),/,'*',48X,'*',/, & +IF ( CPROGRAM /= 'MESONH' ) THEN + WRITE(UNIT=ILUOUT0,FMT="(50('*'),/,'*',48X,'*',/, & & 7('*'),10X, ' MESO-NH MODEL ',10X,8('*'),/, & & '*',48X,'*',/, & & 7('*'),12X,' CNRM - LA ',12X,8('*'),/, & & '*',48X,'*',/, 50('*'))") +END IF ! CALL NSV_ASSOCIATE() ! @@ -245,7 +252,7 @@ IF ( CPROGRAM == 'MESONH' ) CALL IO_Bakout_struct_prepare( ) !* 5. WRITE MESSAGE ON OUTPUT-LISTING ! ------------------------------- ! -IF (NVERB >= 5) THEN +IF ( CPROGRAM /= 'MESONH' .AND. NVERB>=5 ) THEN WRITE(UNIT=ILUOUT0,FMT="(50('*'),/,'*',48X,'*',/, & & '*',10X,' INITIALIZATION TERMINATED',10X,'*',/, & & '*',48X,'*',/,50('*'))") -- GitLab