From 9907b1da9f7502f044d1849b87ac0ed742c04324 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 9 Nov 2017 15:48:34 +0100
Subject: [PATCH] Philippe 09/11/2017: IO: improved IO_FILE_PRINT_LIST + use it
 at end of main programs

---
 .../SURCOUCHE/src/mode_io_manage_struct.f90   | 19 +++++++++++++++----
 src/MNH/diag.f90                              |  6 +++++-
 src/MNH/mesonh.f90                            |  4 ++++
 src/MNH/prep_ideal_case.f90                   |  7 +++++--
 src/MNH/prep_nest_pgd.f90                     |  6 +++++-
 src/MNH/prep_pgd.f90                          |  6 ++++--
 src/MNH/prep_real_case.f90                    |  6 +++++-
 src/MNH/prep_surfex.f90                       |  7 +++++--
 src/MNH/spawning.f90                          |  8 ++++++--
 src/MNH/spectre.f90                           |  3 +++
 src/MNH/zoom_pgd.f90                          |  6 ++++--
 11 files changed, 61 insertions(+), 17 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
index 117a55998..89bf44b9b 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90
@@ -811,10 +811,14 @@ END SUBROUTINE IO_FILE_FIND_BYNAME
 !
 SUBROUTINE IO_FILE_PRINT_LIST(TPFILE_FIRST)
 !
+USE MODD_VAR_ll, ONLY : IP
+!
 TYPE(TFILEDATA),POINTER,OPTIONAL,INTENT(IN) :: TPFILE_FIRST
 !
 TYPE(TFILEDATA),POINTER :: TZFILE ! File structure
 !
+IF (IP/=1 .AND. .NOT.LVERB_ALLPRC) RETURN
+!
 CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_PRINT_LIST','called')
 !
 IF (PRESENT(TPFILE_FIRST)) THEN
@@ -825,14 +829,21 @@ ELSE
   TZFILE => TFILE_FIRST
 END IF
 !
-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
+WRITE (*,'( /,A28," ",A13," ",A7," ",A7," ",A7," ",A7," ",A6," ",A6," ",A5," ",A6," ",A13)' ) 'CNAME                       ', &
+      'CTYPE        ','CFORMAT','CMODE  ','LOPENED','NLFIFLU','NNCID','NLU','NOPEN','NCLOSE','NOPEN_CURRENT'
+WRITE (*,'( A,A )') '--------------------------------------------------------------------------------------------------------', &
+                    '-----------'
+WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L7," ",I7," ",I6," ",I6," ",I5," ",I6," ",I13)' ) &
+      TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,&
+      TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE,TZFILE%NOPEN_CURRENT
 !
 DO WHILE (ASSOCIATED(TZFILE%TFILE_NEXT))
   TZFILE => TZFILE%TFILE_NEXT
-  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
+  WRITE (*,'(A28," ",A13," ",A7," ",A7," ",L7," ",I7," ",I6," ",I6," ",I5," ",I6," ",I13)' ) &
+        TZFILE%CNAME,TZFILE%CTYPE,TZFILE%CFORMAT,&
+        TZFILE%CMODE,TZFILE%LOPENED,TZFILE%NLFIFLU,TZFILE%NNCID,TZFILE%NLU,TZFILE%NOPEN,TZFILE%NCLOSE,TZFILE%NOPEN_CURRENT
 END DO
+WRITE (*,'(/)')
 !
 END SUBROUTINE IO_FILE_PRINT_LIST
 !
diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index 77f2a42d6..aace54650 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -103,6 +103,7 @@ USE MODD_ADV_n
 USE MODD_DEEP_CONVECTION_n
 USE MODD_FIELD_n
 USE MODD_GRID_n
+USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG
 USE MODD_LBC_n
 USE MODD_PARAM_n
 USE MODD_PARAM_KAFR_n
@@ -141,7 +142,7 @@ USE MODE_TIME
 USE MODE_FM
 USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST
 USE MODE_ll
 USE MODE_MODELN_HANDLER
 USE MODE_MSG
@@ -791,12 +792,15 @@ ZTIME2=ZTIME2-ZTIME0
 !WRITE(ILUOUT0,*) '|---------------------| -------------------|-------------------|'
 !
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 WRITE(ILUOUT0,*) ' '
 WRITE(ILUOUT0,*) '***************************** **************'
 WRITE(ILUOUT0,*) '*            EXIT  DIAG CORRECTLY          *'
 WRITE(ILUOUT0,*) '**************************** ***************'
 !WRITE(ILUOUT0,*) '  (see time analysis in ',TRIM(TLUOUT0%CNAME),' )'
 WRITE(ILUOUT0,*) ' '
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT0)
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/mesonh.f90 b/src/MNH/mesonh.f90
index 05d460927..cbbf30087 100644
--- a/src/MNH/mesonh.f90
+++ b/src/MNH/mesonh.f90
@@ -86,12 +86,14 @@
 USE MODD_CONF
 USE MODD_NESTING
 USE MODD_CONF_n
+USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG
 !
 USE MODI_MODEL_n
 USE MODI_KID_MODEL
 !
 USE MODE_ll
 USE MODE_IO_ll
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_PRINT_LIST
 USE MODE_MODELN_HANDLER
 !
 USE MODI_VERSION
@@ -160,6 +162,8 @@ DO
   !
 END DO
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 !-------------------------------------------------------------------------------
 !
 !*       3.    FINALIZE THE PARALLEL SESSION
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index 9f1f59110..509ad5ba2 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -347,7 +347,7 @@ USE MODD_SALT,      ONLY:  LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_S
 USE MODD_VAR_ll,    ONLY:  NPROC
 USE MODD_LUNIT,     ONLY:  TLUOUT0
 USE MODD_LUNIT_n
-USE MODD_IO_ll,     ONLY: TFILE_OUTPUTLISTING
+USE MODD_IO_ll,     ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING
 USE MODD_CONF_n
 USE MODD_NSV,      ONLY : NSV,NSV_CHEM,           &
                           NSV_DSTEND, NSV_DSTBEG
@@ -362,7 +362,7 @@ USE MODE_FM
 USE MODE_FMREAD
 USE MODE_GATHER_ll
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST
 USE MODE_ll
 USE MODE_MODELN_HANDLER
 USE MODE_FIELD
@@ -1905,7 +1905,10 @@ WRITE(NLUOUT,FMT=*) '****************************************************'
 WRITE(NLUOUT,FMT=*) '* PREP_IDEAL_CASE: PREP_IDEAL_CASE ENDS CORRECTLY. *'
 WRITE(NLUOUT,FMT=*) '****************************************************'
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT)
+!
 CALL END_PARA_ll(IINFO_ll)
 !
 ! 
diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90
index 808bb6314..de7e03b58 100644
--- a/src/MNH/prep_nest_pgd.f90
+++ b/src/MNH/prep_nest_pgd.f90
@@ -106,7 +106,7 @@ USE MODD_GRID_n, ONLY : XZSMT
 USE MODD_LUNIT
 USE MODD_NESTING
 USE MODD_CONF_n
-USE MODD_IO_ll, ONLY : TFILE_SURFEX, TPTR2FILE
+USE MODD_IO_ll, ONLY : NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE
 !
 USE MODI_OPEN_NESTPGD_FILES
 USE MODI_RETRIEVE1_NEST_INFO_n
@@ -120,6 +120,7 @@ USE MODE_FM
 USE MODE_FMREAD
 USE MODE_FMWRIT
 USE MODE_IO_ll
+USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_PRINT_LIST
 USE MODE_ll
 !
 USE MODE_MODELN_HANDLER
@@ -389,10 +390,13 @@ END DO
 !*      12.    EPILOGUE
 !              --------
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 WRITE(ILUOUT0,FMT=*)
 WRITE(ILUOUT0,FMT=*) '************************************************'
 WRITE(ILUOUT0,FMT=*) '* PREP_NEST_PGD: PREP_NEST_PGD ends correctly. *'
 WRITE(ILUOUT0,FMT=*) '************************************************'
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT0)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index cecb9a797..af766d879 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -80,7 +80,7 @@ USE MODD_CONF_n,ONLY : CSTORAGE_TYPE
 USE MODD_LUNIT,  ONLY : CLUOUT0,TLUOUT0
 USE MODD_LUNIT_n,ONLY : LUNIT_MODEL
 USE MODD_PARAMETERS, ONLY : XUNDEF
-USE MODD_IO_ll,   ONLY : GSMONOPROC,LIOCDF4,LLFIOUT,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX
+USE MODD_IO_ll,   ONLY : GSMONOPROC,LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX
 USE MODD_IO_SURF_MNH, ONLY : NHALO
 USE MODD_SPAWN, ONLY : NDXRATIO,NDYRATIO,NXSIZE,NYSIZE,NXOR,NYOR
 !
@@ -88,7 +88,7 @@ USE MODE_POS
 USE MODE_FM
 USE MODE_FMWRIT
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST
 USE MODE_MODELN_HANDLER
 USE MODE_MSG
 USE MODE_FIELD
@@ -324,6 +324,8 @@ CALL IO_FILE_CLOSE_ll(TZFILE,OPARALLELIO=.FALSE.)
 !
 CALL SURFEX_DEALLO_LIST
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT0,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 fb7b02f2c..19e1f6d57 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -394,7 +394,7 @@ USE MODE_POS
 USE MODE_FM
 USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST
 USE MODE_ll
 USE MODE_MSG
 USE MODE_MODELN_HANDLER
@@ -434,6 +434,7 @@ USE MODD_LUNIT_n
 USE MODD_DIM_n
 USE MODD_GRID_n
 USE MODD_GRID
+USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG
 USE MODD_METRICS_n
 USE MODD_LBC_n
 USE MODD_PARAM_n
@@ -1193,6 +1194,9 @@ END IF
 !-------------------------------------------------------------------------------
 !
 CALL IO_FILE_CLOSE_ll(TINIFILE)
+!
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT0)
 !
 !
diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90
index 1a7b74c22..03686b9f7 100644
--- a/src/MNH/prep_surfex.f90
+++ b/src/MNH/prep_surfex.f90
@@ -38,7 +38,7 @@
 USE MODD_CONF,        ONLY : CPROGRAM,NMASDEV,NBUGFIX,CBIBUSER,&
                              L1D, L2D, LPACK
 USE MODD_CONF_n,      ONLY : CSTORAGE_TYPE
-USE MODD_IO_ll,       ONLY : TFILEDATA, LIOCDF4, LLFIOUT, TFILE_SURFEX
+USE MODD_IO_ll,       ONLY : TFILEDATA, LIOCDF4, LLFIOUT, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX
 USE MODD_LUNIT,       ONLY : CLUOUT0, CPGDFILE,COUTFMFILE, TLUOUT0
 USE MODD_LUNIT_n,     ONLY : CINIFILE
 USE MODD_MNH_SURFEX_n
@@ -50,7 +50,7 @@ USE MODE_FM
 USE MODE_FMREAD
 USE MODE_FMWRIT
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST
 USE MODE_ll
 USE MODE_MSG
 USE MODE_MODELN_HANDLER
@@ -207,6 +207,9 @@ WRITE(ILUOUT0,*) '|   PREP_SURFEX ends correctly   |'
 WRITE(ILUOUT0,*) '|                                |'
 WRITE(ILUOUT0,*) '----------------------------------'
 CALL IO_FILE_CLOSE_ll(TZFILE)
+!
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT0)
 !
 CALL END_PARA_ll(IINFO_ll)
diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90
index 41bec123c..0accb8acc 100644
--- a/src/MNH/spawning.f90
+++ b/src/MNH/spawning.f90
@@ -101,7 +101,7 @@ USE MODD_CURVCOR_n
 USE MODD_DIM_n
 USE MODD_DYN_n, LRES_n=>LRES, XRES_n=>XRES 
 USE MODD_FIELD_n
-USE MODD_IO_ll, ONLY: TFILEDATA
+USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA
 USE MODD_LSFIELD_n
 USE MODD_LBC_n
 USE MODD_LUNIT_n
@@ -113,7 +113,7 @@ USE MODD_CH_MNHC_n
 USE MODD_GRID_n
 ! 
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME
+USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST
 USE MODE_ll
 USE MODE_POS
 USE MODE_FM
@@ -245,7 +245,11 @@ CALL SPAWN_MODEL2 (NRR,NSV_USER,CTURB,CSURF,CCLOUD,                     &
                    CINIFILE, CINIFILEPGD, LSPAWN_SURF                   )
 !
 CALL SURFEX_DEALLO_LIST
+!
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 CALL IO_FILE_CLOSE_ll(TLUOUT)
+!
 CALL END_PARA_ll(IINFO_ll)
 !JUAN CALL ABORT
 STOP
diff --git a/src/MNH/spectre.f90 b/src/MNH/spectre.f90
index db03b736c..fa05c7f65 100644
--- a/src/MNH/spectre.f90
+++ b/src/MNH/spectre.f90
@@ -22,6 +22,7 @@
 !
 !
 USE MODD_CONF
+USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG
 USE MODD_LUNIT
 USE MODD_LUNIT_n
 USE MODD_TIME_n
@@ -34,6 +35,7 @@ USE MODI_SPECTRE_AROME
 USE MODE_MSG
 USE MODE_POS
 USE MODE_IO_ll
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_PRINT_LIST
 USE MODE_MODELN_HANDLER
 USE MODE_FM
 !USE MODD_TYPE_DATE
@@ -200,6 +202,7 @@ ENDIF
 !
 CALL END_PARA_ll(IINFO_ll)
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
 !
 PRINT*, ' '
 PRINT*, '****************************************************'
diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90
index ce900abf4..41a9f76f0 100644
--- a/src/MNH/zoom_pgd.f90
+++ b/src/MNH/zoom_pgd.f90
@@ -52,7 +52,7 @@
 !
 USE MODD_CONF,   ONLY : CPROGRAM, NMASDEV, NBUGFIX, CBIBUSER, &
                         L1D, L2D, LPACK
-USE MODD_IO_ll,  ONLY:  LIOCDF4,LLFIOUT,TFILE_OUTPUTLISTING,TFILEDATA
+USE MODD_IO_ll,  ONLY:  LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA
 USE MODD_LUNIT,  ONLY : CLUOUT0, COUTFMFILE, CPGDFILE, TLUOUT0
 USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX
 USE MODD_PARAM_n,     ONLY : CSURF
@@ -64,7 +64,7 @@ USE MODE_FM
 USE MODE_FMWRIT
 USE MODE_FMREAD
 USE MODE_IO_ll
-USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST
+USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_PRINT_LIST
 USE MODE_ll
 USE MODE_MSG
 USE MODE_MODELN_HANDLER
@@ -261,6 +261,8 @@ CPGDFILE = YZOOMFILE
 !
 CALL IO_FILE_CLOSE_ll(TZPGDFILE)
 !
+IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST()
+!
 WRITE(ILUOUT0,*)
 WRITE(ILUOUT0,*) '***************************'
 WRITE(ILUOUT0,*) '* ZOOM_PGD ends correctly *'
-- 
GitLab