Skip to content
Snippets Groups Projects
Commit f018fafa authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 24/01/2017: IO: added control of verbosity and abort + PRINT_MSG subroutine

parent 8aa8478c
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,9 @@ USE MODD_NETCDF, ONLY: IDCDF_KIND ...@@ -19,6 +19,9 @@ USE MODD_NETCDF, ONLY: IDCDF_KIND
IMPLICIT NONE IMPLICIT NONE
! !
! !
INTEGER, PARAMETER :: NVERB_NO=0, NVERB_FATAL=1, NVERB_ERROR=2, NVERB_WARNING=3, NVERB_INFO=4, NVERB_DEBUG=5
INTEGER, SAVE :: ISTDOUT, ISTDERR INTEGER, SAVE :: ISTDOUT, ISTDERR
INTEGER, SAVE :: ISIOP !! IOproc number INTEGER, SAVE :: ISIOP !! IOproc number
...@@ -34,6 +37,12 @@ LOGICAL, SAVE :: LIOCDF4 = .FALSE. ! TRUE will enable full NetCDF4 (HDF5) I/O ...@@ -34,6 +37,12 @@ LOGICAL, SAVE :: LIOCDF4 = .FALSE. ! TRUE will enable full NetCDF4 (HDF5) I/O
LOGICAL, SAVE :: LLFIOUT = .FALSE. ! TRUE will also force LFI output when LIOCDF4 is on (debug only) LOGICAL, SAVE :: LLFIOUT = .FALSE. ! TRUE will also force LFI output when LIOCDF4 is on (debug only)
LOGICAL, SAVE :: LLFIREAD = .FALSE. ! TRUE will force LFI read (instead of NetCDF) when LIOCDF4 is on (debug only) LOGICAL, SAVE :: LLFIREAD = .FALSE. ! TRUE will force LFI read (instead of NetCDF) when LIOCDF4 is on (debug only)
INTEGER, SAVE :: NIO_VERB = NVERB_WARNING ! Verbosity level for IO
INTEGER, SAVE :: NIO_ABORT_LEVEL = NVERB_ERROR ! Level of IO error necessary to force stop of application
INTEGER, SAVE :: NGEN_VERB = NVERB_WARNING ! Verbosity level for 'GEN' (generic) messages
INTEGER, SAVE :: NGEN_ABORT_LEVEL = NVERB_ERROR ! Level of 'GEN' error necessary to force stop of application
TYPE LFIPARAM TYPE LFIPARAM
INTEGER :: FITYP ! FM File Type (used in FMCLOSE) INTEGER :: FITYP ! FM File Type (used in FMCLOSE)
END TYPE LFIPARAM END TYPE LFIPARAM
......
...@@ -949,6 +949,70 @@ CONTAINS ...@@ -949,6 +949,70 @@ CONTAINS
ENDIF ENDIF
END FUNCTION io_rank END FUNCTION io_rank
!
!
END MODULE MODE_IO_ll
END MODULE MODE_IO_ll MODULE MODE_MSG
!
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
CHARACTER(LEN=*),INTENT(IN) :: HDOMAIN !Domain/category of message
CHARACTER(LEN=*),INTENT(IN) :: HSUBR !Subroutine/function name
CHARACTER(LEN=*),INTENT(IN) :: HMSG !Message
!
INTEGER :: IERR, IMAXVERB,IABORTLEVEL
CHARACTER(LEN=9) :: YPRE
CHARACTER(LEN=28) :: YSUBR
!
SELECT CASE(HDOMAIN)
CASE('IO')
IMAXVERB = NIO_VERB
IABORTLEVEL = NIO_ABORT_LEVEL
CASE ('GEN')
IMAXVERB = NGEN_VERB
IABORTLEVEL = NGEN_ABORT_LEVEL
CASE DEFAULT
PRINT *,'ERROR: PRINT_MSG: wrong message category (',TRIM(HDOMAIN),')'
RETURN
END SELECT
!
IF (KVERB>IMAXVERB) RETURN
!
SELECT CASE(KVERB)
CASE(NVERB_FATAL)
YPRE='FATAL: '
CASE(NVERB_ERROR)
YPRE='ERROR: '
CASE(NVERB_WARNING)
YPRE='WARNING: '
CASE(NVERB_INFO)
YPRE='INFO: '
CASE(NVERB_DEBUG)
YPRE='DEBUG: '
CASE DEFAULT
PRINT *,'ERROR: PRINT_MSG: wrong verbosity level'
END SELECT
!
YSUBR=TRIM(HSUBR)//':'
WRITE (*,"(A9,A28,A)") YPRE,YSUBR,HMSG
!
IF (KVERB<=IABORTLEVEL) THEN
PRINT *,'ABORT asked by application'
CALL MPI_ABORT(NMNH_COMM_WORLD, -10, IERR)
CALL ABORT
END IF
!
END SUBROUTINE PRINT_MSG
!
END MODULE MODE_MSG
...@@ -29,14 +29,16 @@ ...@@ -29,14 +29,16 @@
!* 0. DECLARATIONS !* 0. DECLARATIONS
! ------------ ! ------------
! !
USE MODD_IO_ll, ONLY : NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL
!
IMPLICIT NONE IMPLICIT NONE
! !
LOGICAL,SAVE :: LCDF4 = .FALSE. ! TRUE : enable NetCDF4 Input/Output LOGICAL,SAVE :: LCDF4 = .FALSE. ! TRUE : enable NetCDF4 Input/Output
LOGICAL,SAVE :: LLFIOUT = .FALSE. ! TRUE : add LFI output when NetCDF4 I/O is enabled (debug) LOGICAL,SAVE :: LLFIOUT = .FALSE. ! TRUE : add LFI output when NetCDF4 I/O is enabled (debug)
LOGICAL,SAVE :: LLFIREAD = .FALSE. ! TRUE : enable LFI reading (disable NetCDF4 reading) LOGICAL,SAVE :: LLFIREAD = .FALSE. ! TRUE : enable LFI reading (disable NetCDF4 reading)
! when NetCDF4 I/O is enabled (debug) ! when NetCDF4 I/O is enabled (debug)
!
NAMELIST/NAM_CONFIO/ LCDF4, LLFIOUT, LLFIREAD NAMELIST/NAM_CONFIO/ LCDF4, LLFIOUT, LLFIREAD, NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL
! !
END MODULE MODN_CONFIO END MODULE MODN_CONFIO
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment