From 6f5371576b75eb96681954282faee8486758c824 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 3 Mar 2017 14:58:42 +0100
Subject: [PATCH] Philippe 03/03/2017: IO: add or migrate to PRINT_MSG

---
 src/LIB/SURCOUCHE/src/fmwrit_ll.f90 | 51 ++++++++++++++++++++++++++---
 src/LIB/SURCOUCHE/src/mode_fm.f90   | 31 ++++++++++--------
 src/LIB/SURCOUCHE/src/mode_io.f90   | 13 +++++++-
 3 files changed, 76 insertions(+), 19 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
index 4490bdcfb..d00f992d2 100644
--- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
+++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90
@@ -289,6 +289,8 @@ CONTAINS
     TYPE(FD_ll), POINTER                     :: TZFD_IOZ 
     !JUANZIO
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX0_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -431,8 +433,8 @@ CONTAINS
                 IF (LIOCDF4) THEN
                   CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//YK_FILE,TZFILE,IRESP)
                   IF (IRESP/=0) THEN
-                    PRINT *,'FATAL: IO_WRITE_FIELD_BYFIELD_X0: file ',TRIM(TRIM(TPFILE%CNAME)//YK_FILE),' not found in list'
-                    STOP
+                    CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_BYFIELD_X0','file '//TRIM(TRIM(TPFILE%CNAME)//YK_FILE)//&
+                                   ' not found in list')
                   END IF
                   CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,TZFD_IOZ%CDF,PFIELD,IRESP)
                 END IF
@@ -483,6 +485,8 @@ CONTAINS
     REAL,DIMENSION(:),POINTER    :: ZFIELDP
     LOGICAL                      :: GALLOC
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX1_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -689,6 +693,8 @@ CONTAINS
 #endif
     INTEGER                      :: IHEXTOT
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX2_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     CALL SECOND_MNH2(T11)
@@ -1076,6 +1082,8 @@ CONTAINS
 #endif
     INTEGER                                  :: IHEXTOT
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX3_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     CALL SECOND_MNH2(T11)
@@ -1766,6 +1774,8 @@ CONTAINS
     LOGICAL                                  :: GALLOC
     INTEGER                                  :: IHEXTOT
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX4_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -1866,6 +1876,8 @@ CONTAINS
     LOGICAL                                  :: GALLOC
     INTEGER                                  :: IHEXTOT
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX5_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -1965,6 +1977,8 @@ CONTAINS
     TYPE(FMHEADER)                           :: TZFMH
     LOGICAL                                  :: GALLOC
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITX6_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -2050,6 +2064,8 @@ CONTAINS
     CHARACTER(len=5)                         :: YK_FILE  
     CHARACTER(len=128)                       :: YFILE_IOZ  
     TYPE(FD_ll), POINTER                     :: TZFD_IOZ 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITN0_ll','writing '//TRIM(HRECFM))
     !JUANZIO
     !----------------------------------------------------------------
     !
@@ -2192,8 +2208,8 @@ CONTAINS
                 IF (LIOCDF4) THEN
                   CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//YK_FILE,TZFILE,IRESP)
                   IF (IRESP/=0) THEN
-                    PRINT *,'FATAL: IO_WRITE_FIELD_BYFIELD_N0: file ',TRIM(TRIM(TPFILE%CNAME)//YK_FILE),' not found in list'
-                    STOP
+                    CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_BYFIELD_N0','file '//TRIM(TRIM(TPFILE%CNAME)//YK_FILE)//&
+                                   ' not found in list')
                   END IF
                   CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,TZFD_IOZ%CDF,KFIELD,IRESP)
                 END IF
@@ -2243,6 +2259,8 @@ CONTAINS
     TYPE(FMHEADER)               :: TZFMH
     INTEGER,DIMENSION(:),POINTER :: IFIELDP
     LOGICAL                      :: GALLOC
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITN1_ll','writing '//TRIM(HRECFM))
     !----------------------------------------------------------------
     !
     !*      1.1   THE NAME OF LFIFM
@@ -2328,6 +2346,8 @@ CONTAINS
     LOGICAL                                  :: GALLOC
     INTEGER                                  :: IHEXTOT
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITN2_ll','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -2569,6 +2589,8 @@ CONTAINS
     INTEGER                      :: IRESP
     TYPE(FMHEADER)               :: TZFMH
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITL0_ll','writing '//TRIM(HRECFM))
     !----------------------------------------------------------------
     !
     !*      1.1   THE NAME OF LFIFM
@@ -2652,6 +2674,7 @@ CONTAINS
     !*      0.2   Declarations of local variables
     !
     INTEGER :: IFIELD
+    !
     CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_L0','writing '//TRIM(TPFIELD%CMNHNAME))
     !
     !
@@ -2695,6 +2718,8 @@ CONTAINS
     INTEGER                          :: IRESP
     TYPE(FMHEADER)                   :: TZFMH
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITL1_ll','writing '//TRIM(HRECFM))
     !----------------------------------------------------------------
     !
     !*      1.1   THE NAME OF LFIFM
@@ -2771,6 +2796,8 @@ CONTAINS
     INTEGER                          :: IRESP
     TYPE(FMHEADER)                   :: TZFMH
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITC0_ll','writing '//TRIM(HRECFM))
     !----------------------------------------------------------------
     !*      1.1   THE NAME OF LFIFM
     !
@@ -2930,6 +2957,8 @@ CONTAINS
     TYPE(FD_ll), POINTER             :: TZFD
     INTEGER                          :: IRESP
     TYPE(FMHEADER)                   :: TZFMH
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITC1_ll','writing '//TRIM(HRECFM))
     !----------------------------------------------------------------
     !*      1.1   THE NAME OF LFIFM
     !
@@ -3015,6 +3044,8 @@ CONTAINS
     TYPE(FMHEADER)               :: TZFMH
     INTEGER, DIMENSION(3)        :: ITDATE    ! date array
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITT0_ll','writing '//TRIM(HRECFM))
+    !
     !-------------------------------------------------------------------------------
     IRESP = 0
     YFNLFI=TRIM(ADJUSTL(HFILEM))//'.lfi'
@@ -3186,6 +3217,8 @@ CONTAINS
     END TYPE TX_3DP
     TYPE(TX_3DP),ALLOCATABLE,DIMENSION(:) :: T_TX3DP
     !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRIT_LB','writing '//TRIM(HRECFM))
+    !
     !*      1.1   THE NAME OF LFIFM
     !
     IRESP = 0
@@ -3484,6 +3517,8 @@ CONTAINS
     TYPE(FMHEADER)                   :: TZFMH
     LOGICAL                          :: GALLOC
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITBOXX2_ll','writing '//TRIM(HRECFM))
     !
     !*      1.1   THE NAME OF LFIFM
     !
@@ -3576,6 +3611,8 @@ CONTAINS
     TYPE(FMHEADER)                      :: TZFMH
     LOGICAL                             :: GALLOC
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITBOXX3_ll','writing '//TRIM(HRECFM))
     !
     !*      1.1   THE NAME OF LFIFM
     !
@@ -3668,6 +3705,8 @@ CONTAINS
     TYPE(FMHEADER)                      :: TZFMH
     LOGICAL                             :: GALLOC
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITBOXX4_ll','writing '//TRIM(HRECFM))
     !
     !*      1.1   THE NAME OF LFIFM
     !
@@ -3760,6 +3799,8 @@ CONTAINS
     TYPE(FMHEADER)                      :: TZFMH
     LOGICAL                             :: GALLOC
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITBOXX5_ll','writing '//TRIM(HRECFM))
     !
     !*      1.1   THE NAME OF LFIFM
     !
@@ -3853,6 +3894,8 @@ CONTAINS
     TYPE(FMHEADER)                      :: TZFMH
     LOGICAL                             :: GALLOC
 
+    !
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','FMWRITBOXX6_ll','writing '//TRIM(HRECFM))
     !
     !*      1.1   THE NAME OF LFIFM
     !
diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90
index 67acb8ba4..f60f9fb4c 100644
--- a/src/LIB/SURCOUCHE/src/mode_fm.f90
+++ b/src/LIB/SURCOUCHE/src/mode_fm.f90
@@ -19,6 +19,8 @@ MODULE MODE_FM
 USE MODD_ERRCODES
 USE MODD_MPIF
 
+USE MODE_MSG
+
 IMPLICIT NONE 
 
 PRIVATE 
@@ -146,11 +148,12 @@ CHARACTER (LEN=3) :: YNUMBER  ! Character string for Z-level
 TYPE(FD_ll), POINTER  :: TZFDLFI,TZFD_IOZ
 TYPE(TFILEDATA),POINTER :: TZFILE_IOZ
 !
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_OPEN_ll','opening '//TRIM(TPFILE%CNAME)//' for '//TRIM(TPFILE%CMODE))
+!
 IF (TPFILE%LOPENED) THEN
-  PRINT *,'ERROR: IO_FILE_OPEN_ll: file ',TRIM(TPFILE%CNAME),' already opened'
-  CALL ABORT
-  STOP
-ENDIF
+  CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_OPEN_ll','file '//TRIM(TPFILE%CNAME)//' already opened')
+  RETURN
+END IF
 !
 CALL FMOPEN_ll(TPFILE%CNAME,TPFILE%CMODE,HFIPRI,TPFILE%NLFINPRAR,TPFILE%NLFITYPE,TPFILE%NLFIVERB,ININAR,KRESP,TPFILE=TPFILE)
 !
@@ -167,10 +170,8 @@ IF (TZFDLFI%NB_PROCIO>1) THEN
     TZFD_IOZ => GETFD(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER//'.lfi')
     IF (ISP == TZFD_IOZ%OWNER .AND. LIOCDF4) THEN
       CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER,TZFILE_IOZ,IRESP)
-      IF (IRESP/=0) THEN
-        PRINT *,'FATAL: IO_FILE_OPEN_ll: file ',TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER),' not found in list'
-        STOP
-      END IF
+      IF (IRESP/=0) &
+        CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_OPEN_ll','file '//TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER)//' not found in list')
       TZFILE_IOZ%NNCID   = TZFD_IOZ%CDF%NCID
       TZFILE_IOZ%LOPENED = .TRUE.
       TZFILE_IOZ%NOPEN   = TZFILE_IOZ%NOPEN + 1
@@ -230,6 +231,7 @@ INTEGER(KIND=IDCDF_KIND) :: INCERR
 #endif
 CHARACTER(LEN=13) :: YTYPE
 
+CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','opening '//TRIM(HFILEM)//' for '//TRIM(HACTION))
 IF ( PRESENT(TPFILE) ) THEN
   YTYPE = TPFILE%CTYPE
 ELSE
@@ -417,10 +419,11 @@ CHARACTER (LEN=3)       :: YNUMBER  ! Character string for Z-level
 TYPE(FD_ll), POINTER    :: TZFDLFI
 TYPE(TFILEDATA),POINTER :: TZFILE_IOZ
 !
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_CLOSE_ll','closing '//TRIM(TPFILE%CNAME))
+!
 IF (.NOT.TPFILE%LOPENED) THEN
-  PRINT *,'ERROR: IO_FILE_CLOSE_ll: trying to close a file not opened: ',TRIM(TPFILE%CNAME)
-  CALL ABORT
-  STOP
+  CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_CLOSE_ll','trying to close a file not opened: '//TRIM(TPFILE%CNAME))
+  RETURN
 ENDIF
 !
 !Next lines done before the close to be sure the FD_ll still exists
@@ -437,9 +440,8 @@ 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) THEN
-      PRINT *,'ERROR: IO_FILE_CLOSE_ll: file ',TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER),' not found in list'
-    END IF
+    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
@@ -490,6 +492,7 @@ INTEGER(KIND=LFI_INT) :: IRESP8,INUM8
 LOGICAL :: GPARALLELIO
 CHARACTER(LEN=13) :: YTYPE
 
+CALL PRINT_MSG(NVERB_DEBUG,'IO','FMCLOS_ll','closing '//TRIM(HFILEM))
 IF ( PRESENT(TPFILE) ) THEN
   YTYPE = TPFILE%CTYPE
 ELSE
diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90
index 1675cf90a..cf1dd4237 100644
--- a/src/LIB/SURCOUCHE/src/mode_io.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io.f90
@@ -32,6 +32,7 @@ MODULE MODE_IO_ll
   !JUANZ
   USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
   !JUANZ
+  USE MODE_MSG
 
   IMPLICIT NONE 
 
@@ -290,6 +291,12 @@ CONTAINS
     TYPE(FD_ll), POINTER :: TZJUAN
     LOGICAL               :: GPARALLELIO
 
+    IF ( PRESENT(FILE) ) THEN
+      CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','opening '//TRIM(FILE)//' for '//TRIM(ACTION))
+    ELSE
+      CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','called for '//TRIM(ACTION)//' (filename not provided)')
+    ENDIF
+    !
     IF ( PRESENT(OPARALLELIO) ) THEN
       GPARALLELIO = OPARALLELIO
     ELSE  !par defaut on active les IO paralleles en Z si possible
@@ -795,6 +802,8 @@ CONTAINS
     CHARACTER(LEN=7)                      :: YSTATU  
     LOGICAL                               :: GPARALLELIO
 
+    CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_ll','closing '//TRIM(HFILE))
+
     IF ( PRESENT(OPARALLELIO) ) THEN
       GPARALLELIO = OPARALLELIO
     ELSE  !par defaut on active les IO paralleles en Z si possible
@@ -956,13 +965,15 @@ END MODULE MODE_IO_ll
 
 MODULE MODE_MSG
 !
+USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,&
+                       NIO_VERB,NIO_ABORT_LEVEL,NGEN_VERB,NGEN_ABORT_LEVEL
+!
 IMPLICIT NONE
 !
 CONTAINS
 !
 SUBROUTINE PRINT_MSG(KVERB,HDOMAIN,HSUBR,HMSG)
 !
-USE MODD_IO_ll
 USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
 !
 INTEGER,         INTENT(IN) :: KVERB   !Verbosity level
-- 
GitLab