module cswt_error_mod ! Uses use s2_types_mod, only: S2_STRING_LEN ! Variables integer, private, parameter :: CSWT_ERROR_NUM = 27 integer, public, parameter :: CSWT_ERROR_NONE = 0 integer, public, parameter :: CSWT_ERROR_INIT = 1 integer, public, parameter :: CSWT_ERROR_NOT_INIT = 2 integer, public, parameter :: CSWT_ERROR_INIT_FAIL = 3 integer, public, parameter :: CSWT_ERROR_SIZE_INVALID = 4 integer, public, parameter :: CSWT_ERROR_MEM_ALLOC_FAIL = 5 integer, public, parameter :: CSWT_ERROR_TMPL_PARAM_INVALID = 6 integer, public, parameter :: CSWT_ERROR_SWAV_FTYPE_INVALID = 7 integer, public, parameter :: CSWT_ERROR_SWAV_DIL_ERROR = 8 integer, public, parameter :: CSWT_ERROR_SWAV_ROT_ERROR = 9 integer, public, parameter :: CSWT_ERROR_TR_AZBANDLIM_INVALID = 10 integer, public, parameter :: CSWT_ERROR_TR_FILE_EXISTS = 11 integer, public, parameter :: CSWT_ERROR_TR_FILE_INVALID = 12 integer, public, parameter :: CSWT_ERROR_TR_LMAX_INVALID = 13 integer, public, parameter :: CSWT_ERROR_TR_MMAX_INVALID = 14 integer, public, parameter :: CSWT_ERROR_TR_NGAMMA_INVALID = 15 integer, public, parameter :: CSWT_ERROR_TR_WCOEFF_NCOMP = 16 integer, public, parameter :: CSWT_ERROR_TR_WCOEFF_COMP = 17 integer, public, parameter :: CSWT_ERROR_TR_SWAV_NPRES = 18 integer, public, parameter :: CSWT_ERROR_TR_DIL_UNIT_INVALID = 19 integer, public, parameter :: CSWT_ERROR_TR_METHOD_INVALID = 20 integer, public, parameter :: CSWT_ERROR_TR_KERNEL_INVALID = 21 integer, public, parameter :: CSWT_ERROR_TR_MASK_MODE_INVALID = 22 integer, public, parameter :: CSWT_ERROR_TR_THRESNSIG_MODE_INVALID = 23 integer, public, parameter :: CSWT_ERROR_ANALYSIS = 24 integer, public, parameter :: CSWT_ERROR_MASK_GEN = 25 integer, public, parameter :: CSWT_ERROR_PLOT_SWAV = 26 character (len=S2_STRING_LEN), private, parameter, dimension (CSWT_ERROR_NUM) :: error_comment = (/ 'No error ', 'Attempt to initialise object that has already been initialised ', 'Object not initialised ', 'Object initialisation failed ', 'Sizes invalid ', 'Memory allocation failed ', 'Invalid number of input parameters in template function ', 'Invalid function type ', 'Error dilating spherical wavelet ', 'Error rotating spherical wavelet ', 'Azimuthal band limit not met (increase N_gamma) ', 'File already exists ', 'File invalid ', 'Lmax invalid ', 'Mmax invalid ', 'N gamma invalid (must be odd) ', 'Wavelet coefficients not computed ', 'Wavelet coefficients already computed ', 'Wavelet not present ', 'Invalid dilation unit ', 'Spherical wavelet transform method type invalid ', 'Kernel invalid ', 'Invalid mask method specifier ', 'Invalid mask thresholding method specifier ', 'Error in cswt_analysis program ', 'Error in cswt_mask_gen program ', 'Error in cswt_plot_swav program ' /) logical, private, parameter, dimension (CSWT_ERROR_NUM) :: halt_default = (/ .false., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .false., .true., .true., .true., .true., .true., .true., .true., .true., .true. /) ! Subroutines and functions public subroutine cswt_error (error_code, procedure, comment_add, comment_out, halt_in) end module cswt_error_modFunctionality to handle errors that may occur in the CSWT library. Public CSWT 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.2 - November 2004
integer, private, parameter :: CSWT_ERROR_NUM = 27
integer, public, parameter :: CSWT_ERROR_NONE = 0
integer, public, parameter :: CSWT_ERROR_INIT = 1
integer, public, parameter :: CSWT_ERROR_NOT_INIT = 2
integer, public, parameter :: CSWT_ERROR_INIT_FAIL = 3
integer, public, parameter :: CSWT_ERROR_SIZE_INVALID = 4
integer, public, parameter :: CSWT_ERROR_MEM_ALLOC_FAIL = 5
integer, public, parameter :: CSWT_ERROR_TMPL_PARAM_INVALID = 6
integer, public, parameter :: CSWT_ERROR_SWAV_FTYPE_INVALID = 7
integer, public, parameter :: CSWT_ERROR_SWAV_DIL_ERROR = 8
integer, public, parameter :: CSWT_ERROR_SWAV_ROT_ERROR = 9
integer, public, parameter :: CSWT_ERROR_TR_AZBANDLIM_INVALID = 10
integer, public, parameter :: CSWT_ERROR_TR_FILE_EXISTS = 11
integer, public, parameter :: CSWT_ERROR_TR_FILE_INVALID = 12
integer, public, parameter :: CSWT_ERROR_TR_LMAX_INVALID = 13
integer, public, parameter :: CSWT_ERROR_TR_MMAX_INVALID = 14
integer, public, parameter :: CSWT_ERROR_TR_NGAMMA_INVALID = 15
integer, public, parameter :: CSWT_ERROR_TR_WCOEFF_NCOMP = 16
integer, public, parameter :: CSWT_ERROR_TR_WCOEFF_COMP = 17
integer, public, parameter :: CSWT_ERROR_TR_SWAV_NPRES = 18
integer, public, parameter :: CSWT_ERROR_TR_DIL_UNIT_INVALID = 19
integer, public, parameter :: CSWT_ERROR_TR_METHOD_INVALID = 20
integer, public, parameter :: CSWT_ERROR_TR_KERNEL_INVALID = 21
integer, public, parameter :: CSWT_ERROR_TR_MASK_MODE_INVALID = 22
integer, public, parameter :: CSWT_ERROR_TR_THRESNSIG_MODE_INVALID = 23
integer, public, parameter :: CSWT_ERROR_ANALYSIS = 24
integer, public, parameter :: CSWT_ERROR_MASK_GEN = 25
integer, public, parameter :: CSWT_ERROR_PLOT_SWAV = 26
character (len=S2_STRING_LEN), private, parameter, dimension (CSWT_ERROR_NUM) :: error_comment = (/ 'No error ', 'Attempt to initialise object that has already been initialised ', 'Object not initialised ', 'Object initialisation failed ', 'Sizes invalid ', 'Memory allocation failed ', 'Invalid number of input parameters in template function ', 'Invalid function type ', 'Error dilating spherical wavelet ', 'Error rotating spherical wavelet ', 'Azimuthal band limit not met (increase N_gamma) ', 'File already exists ', 'File invalid ', 'Lmax invalid ', 'Mmax invalid ', 'N gamma invalid (must be odd) ', 'Wavelet coefficients not computed ', 'Wavelet coefficients already computed ', 'Wavelet not present ', 'Invalid dilation unit ', 'Spherical wavelet transform method type invalid ', 'Kernel invalid ', 'Invalid mask method specifier ', 'Invalid mask thresholding method specifier ', 'Error in cswt_analysis program ', 'Error in cswt_mask_gen program ', 'Error in cswt_plot_swav program ' /)Comment associated with each error type.
logical, private, parameter, dimension (CSWT_ERROR_NUM) :: halt_default = (/ .false., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .true., .false., .true., .true., .true., .true., .true., .true., .true., .true., .true. /)Default program halt status of each error type.
public subroutine cswt_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 cswt_errorDisplay error message corresponding to error_code and halt program execution if required.
Variables:
Author: J. D. McEwen
Version: 0.2 - November 2004