stdlib_error moduleCatching and handling errors.
check - Checks the value of a logical conditionExperimental
Checks the value of a logical condition.
call check (condition, msg, code, warn)
condition: Shall be a scalar of type logical.
msg (optional): Shall be a character expression containing the message to be printed to stderr. The default msg is 'Check failed.'.
code (optional): Shall be a scalar of type integer. The default code is 1.
warn (optional): Shall be a scalar of type logical. The default warn is .true..
If condition is .false., and:
no other arguments are provided, this subroutine stops the program with the default message and exit code 1;
msg is provided, this subroutine stops the program and it prints the value of msg;
code is provided, this subroutine stops the program with the given exit code;
warn is provided and warn is .true., this subroutine doesn't stop the program and prints the message.
program example_check1
use stdlib_error, only: check
implicit none
integer :: a = 1
! If a /= 5, stops the program with exit code 1 and prints 'Check failed.'
call check(a == 5)
end program example_check1
program example_check2
use stdlib_error, only: check
implicit none
integer :: a = 1
! If a /= 5, stops the program with exit code 1 and prints 'a == 5 failed.'
call check(a == 5, msg='a == 5 failed.')
end program example_check2
program example_check3
use stdlib_error, only: check
implicit none
integer :: a = 1
! If a /= 5, prints 'a == 5 failed.', but doesn't stop the program.
call check(a == 5, msg='a == 5 failed.', warn=.true.)
end program example_check3
program example_check4
use stdlib_error, only: check
implicit none
integer :: a = 1
! If a /= 5, stops the program with exit code 77 and prints 'a == 5 failed.'
call check(a == 5, msg='a == 5 failed.', code=77)
end program example_check4
error_stop - aborts the programExperimental
Aborts the program with a message and a nonzero exit code.
call error_stop (msg, code)
msg: Shall be a character expression containing the message to be printed to stderr.
code (optional): Shall be a scalar of type integer to be returned as exit code.
Aborts the program with printing the message msg to stderr and a nonzero exit code. The nonzero exit code is equal to code if provided, and 1 otherwise.
Without error code:
program example_error_stop1
use stdlib_error, only: error_stop
implicit none
call error_stop("Invalid argument")
end program example_error_stop1
With error code:
program example_error_stop2
use stdlib_error, only: error_stop
implicit none
call error_stop("Invalid argument", code=123)
end program example_error_stop2