13 use,
INTRINSIC :: iso_c_binding, only: c_bool, c_ptr, c_int
24 PUBLIC :: comin_severity_debug
25 PUBLIC :: comin_severity_info
26 PUBLIC :: comin_severity_warning
27 PUBLIC :: comin_severity_error
39 COMIN_SEVERITY_DEBUG = 0, & !< Show debug and more severe messages.
40 comin_severity_info = 1, &
41 comin_severity_warning = 2, &
42 comin_severity_error = 3
47 TYPE(c_ptr) FUNCTION comin_current_get_plugin_name_c() &
48 & BIND(C, name=
'comin_current_get_plugin_name')
50 END FUNCTION comin_current_get_plugin_name_c
52 TYPE(c_ptr) FUNCTION comin_current_get_plugin_options_c() &
53 & BIND(C, name=
'comin_current_get_plugin_options')
55 END FUNCTION comin_current_get_plugin_options_c
57 TYPE(c_ptr) FUNCTION comin_current_get_plugin_comm_c() &
58 & BIND(C, name=
'comin_current_get_plugin_comm')
60 END FUNCTION comin_current_get_plugin_comm_c
62 FUNCTION comin_current_get_plugin_errors_return_c()
RESULT(errors_return) &
63 & bind(c, name=
'comin_current_get_plugin_errors_return')
65 LOGICAL(c_bool) :: errors_return
66 END FUNCTION comin_current_get_plugin_errors_return_c
68 FUNCTION comin_current_get_plugin_log_severity_c()
RESULT(severity) &
69 & bind(c, name=
'comin_current_get_plugin_log_severity')
71 INTEGER(c_int) :: severity
72 END FUNCTION comin_current_get_plugin_log_severity_c
79 CHARACTER(len=:),
ALLOCATABLE :: res
80 res = convert_c_string(comin_current_get_plugin_name_c())
85 CHARACTER(len=:),
ALLOCATABLE :: res
86 res = convert_c_string(comin_current_get_plugin_options_c())
91 CHARACTER(len=:),
ALLOCATABLE :: res
92 res = convert_c_string(comin_current_get_plugin_comm_c())
100 LOGICAL :: errors_return
101 errors_return =
LOGICAL(comin_current_get_plugin_errors_return_c())
109 severity = int(comin_current_get_plugin_log_severity_c())
120 TYPE(t_comin_plugin_info),
INTENT(OUT) :: comin_current_plugin
123 comin_current_plugin%name = convert_c_string(comin_current_get_plugin_name_c())
124 comin_current_plugin%options = convert_c_string(comin_current_get_plugin_options_c())
125 comin_current_plugin%comm = convert_c_string(comin_current_get_plugin_comm_c())
128 SELECT CASE (comin_current_get_plugin_log_severity_c())
129 CASE(comin_severity_debug)
130 comin_current_plugin%log_debug = .true.
131 comin_current_plugin%log_info = .true.
132 comin_current_plugin%log_warning = .true.
133 CASE(comin_severity_info)
134 comin_current_plugin%log_debug = .false.
135 comin_current_plugin%log_info = .true.
136 comin_current_plugin%log_warning = .true.
137 CASE(comin_severity_warning)
138 comin_current_plugin%log_debug = .false.
139 comin_current_plugin%log_info = .false.
140 comin_current_plugin%log_warning = .true.
141 CASE(comin_severity_error)
142 comin_current_plugin%log_debug = .false.
143 comin_current_plugin%log_info = .false.
144 comin_current_plugin%log_warning = .false.
146 CALL comin_plugin_finish(
'comin_current_get_plugin_info',
'Internal error: unknown severity')
void comin_plugin_finish(const char *routine, const char *text)
t_comin_log_severity comin_current_get_plugin_log_severity()
const char * comin_current_get_plugin_name()
bool comin_current_get_plugin_errors_return()
const char * comin_current_get_plugin_options()
const char * comin_current_get_plugin_comm()
int comin_current_get_plugin_id()
The elements of this derived data type describe a 3rd party plugin.
subroutine, public comin_plugin_finish(routine, text)
Wrapper function for callback to ICON's "finish" routine.
subroutine, public comin_current_get_plugin_info(comin_current_plugin)
Returns the t_comin_plugin_info structure of the current plugin. It can for example be used to access...