20 CHARACTER(LEN=*),
INTENT(IN) :: routine
21 CHARACTER(LEN=*),
INTENT(IN) :: text
23 INTEGER,
PARAMETER :: exit_no = 1
30 IF (
ASSOCIATED(
state%comin_host_finish))
THEN
31 CALL state%comin_host_finish(routine, text)
33 WRITE (0,*) routine,
" ", text
34 CALL mpi_abort(mpi_comm_world, exit_no, ierr)
42 USE iso_c_binding,
ONLY: c_ptr, c_int, c_char, c_bool
61#include "comin_global.inc"
68 CHARACTER(LEN=*),
INTENT(IN) :: routine
69 CHARACTER(LEN=*),
INTENT(IN) :: text
75 SUBROUTINE comin_plugin_finish_c(routine, text) &
76 &
BIND(C, name="comin_plugin_finish")
77 TYPE(c_ptr),
VALUE,
INTENT(IN) :: routine
78 TYPE(c_ptr),
VALUE,
INTENT(IN) :: text
80 END SUBROUTINE comin_plugin_finish_c
84 CHARACTER(LEN=*),
INTENT(IN) :: message
85 INTEGER,
INTENT(IN) :: lvl
95 IF (
state%lstdout .AND. (iverbosity > lvl))
THEN
96 WRITE(
state%output_unit, *) trim(message)
103 INTEGER,
INTENT(IN) :: error_code
104 CHARACTER(LEN=11),
INTENT(INOUT) :: category
105 CHARACTER(LEN=COMIN_MAX_LEN_ERR_MESSAGE),
INTENT(INOUT) :: message
121 category =
"FATAL ERROR"
127 SUBROUTINE comin_error_get_message_c(error_code, category, message) &
128 &
BIND(C, name="comin_error_get_message")
129 INTEGER(C_INT),
VALUE,
INTENT(IN) :: error_code
130 CHARACTER(KIND=C_CHAR),
INTENT(OUT) :: category(11)
131 CHARACTER(KIND=C_CHAR),
INTENT(OUT) :: message(comin_max_len_err_message)
133 CHARACTER(LEN=11) :: category_f
134 CHARACTER(LEN=COMIN_MAX_LEN_ERR_MESSAGE) :: message_f
138 END SUBROUTINE comin_error_get_message_c
147 INTEGER :: error_code
148 CHARACTER(LEN=11) :: message_prefix
149 CHARACTER(LEN=COMIN_MAX_LEN_ERR_MESSAGE) :: message
151 error_code =
state%errcode
158 &// trim(message), 0)
160 IF (.NOT.
ASSOCIATED(
state%current_plugin))
THEN
162 trim(message_prefix) //
": " // trim(message))
165 trim(message_prefix) //
": " // trim(message))
171 INTEGER,
INTENT(IN) :: errcode
172 state%errcode = errcode
173 IF (.NOT.
ASSOCIATED(
state%current_plugin))
THEN
176 IF(.NOT.
state%current_plugin%errors_return)
THEN
202 LOGICAL,
INTENT(IN) :: errors_return
203 state%current_plugin%errors_return = errors_return
206 SUBROUTINE comin_error_set_errors_return_c(errors_return) &
207 BIND(C, NAME="comin_error_set_errors_return")
208 LOGICAL(C_BOOL),
VALUE,
INTENT(IN) :: errors_return
209 state%current_plugin%errors_return = errors_return
210 END SUBROUTINE comin_error_set_errors_return_c
integer function, public comin_setup_get_verbosity_level()
Returns verbosity level.
subroutine, public comin_plugin_finish(routine, text)
Wrapper function for callback to ICON's "finish" routine.
subroutine, public comin_error_get_message(error_code, category, message)
query the message and category for a given error code
subroutine, public comin_error_check()
check the error code: does nothing if error_code == COMIN_SUCCESS prints the corresponding message ca...
subroutine, public comin_error_reset()
resets the internal error code to COMIN_SUCCESS
subroutine, public comin_error_set_errors_return(errors_return)
Change the error handling mode. Set it to .TRUE. to handle errors manually. If it set to ....
subroutine comin_plugin_finish_external(routine, text)
Wrapper function for callback to ICON's "finish" routine.
integer(c_int) function, public comin_current_get_ep()
Access information on the current entry point being processed by ComIn.
integer(c_int) function, public comin_error_get()
returns the current error code
subroutine, public convert_f_string(string, arr)
Convert Fortran string into C-style character array.
character(len=comin_max_len_err_message) function comin_errhandler_get_string(err_code)
subroutine, public comin_error_set(errcode)
subroutine, public comin_message(message, lvl)
Prints a message on rank 0 if the global verbosity level larger than lvl.
type(t_comin_state), pointer, public state