state_type
defines a general state return type for a
stdlib routine. State contains a status flag, a comment, and a
procedure specifier that can be used to mark where the error happened
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=MSG_LENGTH), | public | :: | message | = | repeat(' ', MSG_LENGTH) |
Message associated to the current state |
|
integer(kind=ilp), | public | :: | state | = | STDLIB_SUCCESS |
The current exit state |
|
character(len=NAME_LENGTH), | public | :: | where_at | = | repeat(' ', NAME_LENGTH) |
Location of the state change |
Error creation message, with location location
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | where_at |
Location |
||
integer, | intent(in) | :: | flag |
Input error flag |
||
class(*), | intent(in), | optional, | dimension(..) | :: | a1 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a2 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a3 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a4 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a5 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a6 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a7 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a8 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a9 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a10 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a11 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a12 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a13 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a14 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a15 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a16 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a17 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a18 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a19 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a20 |
Optional rank-agnostic arguments |
Error creation message, from N input variables (numeric or strings)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | flag |
Input error flag |
||
class(*), | intent(in), | optional, | dimension(..) | :: | a1 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a2 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a3 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a4 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a5 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a6 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a7 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a8 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a9 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a10 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a11 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a12 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a13 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a14 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a15 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a16 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a17 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a18 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a19 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a20 |
Optional rank-agnostic arguments |
Cleanup
Cleanup the object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(inout) | :: | this |
Check if the current state is an error state
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(in) | :: | this |
Handle optional error message
Flow control: on output flag present, return it; otherwise, halt on error
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(in) | :: | ierr | |||
class(state_type), | intent(inout), | optional | :: | ierr_out |
State properties
Check if the current state is successful
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(in) | :: | this |
Parse a generic list of arguments provided to the error constructor
Set error flag
Set chain Add location
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(inout) | :: | new_state |
The current state variable |
||
character(len=*), | intent(in) | :: | where_at |
Error Location |
||
integer, | intent(in) | :: | flag |
Input error flag |
||
class(*), | intent(in), | optional, | dimension(..) | :: | a1 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a2 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a3 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a4 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a5 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a6 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a7 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a8 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a9 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a10 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a11 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a12 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a13 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a14 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a15 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a16 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a17 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a18 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a19 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a20 |
Optional rank-agnostic arguments |
Parse a generic list of arguments provided to the error constructor
Set error flag
Set chain
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(inout) | :: | new_state |
The current state variable |
||
integer, | intent(in) | :: | flag |
Input error flag |
||
class(*), | intent(in), | optional, | dimension(..) | :: | a1 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a2 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a3 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a4 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a5 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a6 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a7 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a8 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a9 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a10 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a11 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a12 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a13 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a14 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a15 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a16 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a17 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a18 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a19 |
Optional rank-agnostic arguments |
class(*), | intent(in), | optional, | dimension(..) | :: | a20 |
Optional rank-agnostic arguments |
Print error message
Produce a nice error string
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(in) | :: | this |
Return a formatted message
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(state_type), | intent(in) | :: | this |
type :: state_type !> The current exit state integer(ilp) :: state = STDLIB_SUCCESS !> Message associated to the current state character(len=MSG_LENGTH) :: message = repeat(' ',MSG_LENGTH) !> Location of the state change character(len=NAME_LENGTH) :: where_at = repeat(' ',NAME_LENGTH) contains !> Cleanup procedure :: destroy => state_destroy !> Parse error constructor procedure, private :: state_parse_at_location procedure, private :: state_parse_arguments generic :: parse => state_parse_at_location, & state_parse_arguments !> Print error message procedure :: print => state_print procedure :: print_msg => state_message !> State properties procedure :: ok => state_is_ok procedure :: error => state_is_error !> Handle optional error message procedure :: handle => error_handling end type state_type