module s2dw_error_mod ! Uses use s2dw_types_mod, only: STRING_LEN ! Variables integer, private, parameter :: S2DW_ERROR_NUM = 14 integer, public, parameter :: S2DW_ERROR_NONE = 0 integer, public, parameter :: S2DW_ERROR_INIT = 1 integer, public, parameter :: S2DW_ERROR_NOT_INIT = 2 integer, public, parameter :: S2DW_ERROR_INIT_FAIL = 3 integer, public, parameter :: S2DW_ERROR_MEM_ALLOC_FAIL = 4 integer, public, parameter :: S2DW_ERROR_ARTH = 5 integer, public, parameter :: S2DW_ERROR_ARTH_WARNING = 6 integer, public, parameter :: S2DW_ERROR_SIZE_WARNING = 7 integer, public, parameter :: S2DW_ERROR_SIZE_INVALID = 8 integer, public, parameter :: S2DW_ERROR_SIZE_NOT_DEF = 9 integer, public, parameter :: S2DW_ERROR_ARG_INVALID = 10 integer, public, parameter :: S2DW_ERROR_ARG_WARNING = 11 integer, public, parameter :: S2DW_ERROR_QUAD_STEP_EXCEED = 12 integer, public, parameter :: S2DW_ERROR_ADMISS_FAIL = 13 integer, public, parameter :: S2DW_ERROR_FILEIO = 14 character (len=STRING_LEN), private, parameter, dimension (S2DW_ERROR_NUM+1) :: error_comment = (/ 'No error ', 'Attempt to initialise object that has already been initialised ', 'Object not initialised ', 'Object initialisation failed ', 'Memory allocation failed ', 'Arithmetic exception ', 'Arithmetic warning ', 'Warning: Sizes not in recommended range ', 'Invalid sizes ', 'Sizes not defined ', 'Arguments invalid ', 'Argument warning ', 'Exceeded number of steps limit whem computing quadrature ', 'Admissibility test failed (resolution of identity not satisfied) ', 'File IO error ' /) logical, private, parameter, dimension (S2DW_ERROR_NUM+1) :: halt_default = (/ .false., .true., .true., .true., .true., .true., .false., .false., .true., .true., .true., .false., .true., .true., .true. /) ! Subroutines and functions public subroutine s2dw_error (error_code, procedure, comment_add, comment_out, halt_in) end module s2dw_error_modFunctionality to handle errors that may occur in the s2dw library. Public s2dw error codes are defined, with corresponding private error comments and default halt execution status.
Author: J. D. McEwen (mcewen@mrao.cam.ac.uk)
Version: 0.1 October 2007
integer, private, parameter :: S2DW_ERROR_NUM = 14
integer, public, parameter :: S2DW_ERROR_NONE = 0
integer, public, parameter :: S2DW_ERROR_INIT = 1
integer, public, parameter :: S2DW_ERROR_NOT_INIT = 2
integer, public, parameter :: S2DW_ERROR_INIT_FAIL = 3
integer, public, parameter :: S2DW_ERROR_MEM_ALLOC_FAIL = 4
integer, public, parameter :: S2DW_ERROR_ARTH = 5
integer, public, parameter :: S2DW_ERROR_ARTH_WARNING = 6
integer, public, parameter :: S2DW_ERROR_SIZE_WARNING = 7
integer, public, parameter :: S2DW_ERROR_SIZE_INVALID = 8
integer, public, parameter :: S2DW_ERROR_SIZE_NOT_DEF = 9
integer, public, parameter :: S2DW_ERROR_ARG_INVALID = 10
integer, public, parameter :: S2DW_ERROR_ARG_WARNING = 11
integer, public, parameter :: S2DW_ERROR_QUAD_STEP_EXCEED = 12
integer, public, parameter :: S2DW_ERROR_ADMISS_FAIL = 13
integer, public, parameter :: S2DW_ERROR_FILEIO = 14
character (len=STRING_LEN), private, parameter, dimension (S2DW_ERROR_NUM+1) :: error_comment = (/ 'No error ', 'Attempt to initialise object that has already been initialised ', 'Object not initialised ', 'Object initialisation failed ', 'Memory allocation failed ', 'Arithmetic exception ', 'Arithmetic warning ', 'Warning: Sizes not in recommended range ', 'Invalid sizes ', 'Sizes not defined ', 'Arguments invalid ', 'Argument warning ', 'Exceeded number of steps limit whem computing quadrature ', 'Admissibility test failed (resolution of identity not satisfied) ', 'File IO error ' /)Comment associated with each error type.
logical, private, parameter, dimension (S2DW_ERROR_NUM+1) :: halt_default = (/ .false., .true., .true., .true., .true., .true., .false., .false., .true., .true., .true., .false., .true., .true., .true. /)Default program halt status of each error type.
public subroutine s2dw_error (error_code, procedure, comment_add, comment_out, halt_in) integer, intent(in) :: error_code character (len=*), optional, intent(in) :: procedure character (len=*), optional, intent(in) :: comment_add character (len=*), optional, intent(inout) :: comment_out logical, optional, intent(in) :: halt_in end subroutine s2dw_errorDisplays error message corresponding to error_code and halt program execution if required.
Variables:
Author: J. D. McEwen
Version: 0.1 August 2004