36 use,
intrinsic :: iso_c_binding
42 kim_log_verbosity_type, &
68 type, bind(c) :: kim_log_verbosity_type
74 integer(c_int) :: log_verbosity_id
75 end type kim_log_verbosity_type
82 type(kim_log_verbosity_type),
protected,
save, &
83 bind(c, name=
"KIM_LOG_VERBOSITY_silent") &
91 type(kim_log_verbosity_type),
protected,
save, &
92 bind(c, name=
"KIM_LOG_VERBOSITY_fatal") &
100 type(kim_log_verbosity_type),
protected,
save, &
101 bind(c, name=
"KIM_LOG_VERBOSITY_error") &
109 type(kim_log_verbosity_type),
protected,
save, &
110 bind(c, name=
"KIM_LOG_VERBOSITY_warning") &
118 type(kim_log_verbosity_type),
protected,
save, &
119 bind(c, name=
"KIM_LOG_VERBOSITY_information") &
127 type(kim_log_verbosity_type),
protected,
save, &
128 bind(c, name=
"KIM_LOG_VERBOSITY_debug") &
137 module procedure kim_log_verbosity_known
138 end interface kim_known
145 interface operator(.lt.)
146 module procedure kim_log_verbosity_less_than
147 end interface operator(.lt.)
154 interface operator(.gt.)
155 module procedure kim_log_verbosity_greater_than
156 end interface operator(.gt.)
163 interface operator(.le.)
164 module procedure kim_log_verbosity_less_than_equal
165 end interface operator(.le.)
172 interface operator(.ge.)
173 module procedure kim_log_verbosity_greater_than_equal
174 end interface operator(.ge.)
181 interface operator(.eq.)
182 module procedure kim_log_verbosity_equal
183 end interface operator(.eq.)
190 interface operator(.ne.)
191 module procedure kim_log_verbosity_not_equal
192 end interface operator(.ne.)
200 interface kim_from_string
201 module procedure kim_log_verbosity_from_string
202 end interface kim_from_string
209 interface kim_to_string
210 module procedure kim_log_verbosity_to_string
211 end interface kim_to_string
219 logical recursive function kim_log_verbosity_known(log_verbosity)
222 integer(c_int) recursive function known(log_verbosity) &
223 bind(c, name=
"KIM_LogVerbosity_Known")
224 use,
intrinsic :: iso_c_binding
225 import kim_log_verbosity_type
227 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
230 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
232 kim_log_verbosity_known = (known(log_verbosity) /= 0)
233 end function kim_log_verbosity_known
240 logical recursive function kim_log_verbosity_less_than(lhs, rhs)
242 type(kim_log_verbosity_type),
intent(in) :: lhs
243 type(kim_log_verbosity_type),
intent(in) :: rhs
245 kim_log_verbosity_less_than &
246 = (lhs%log_verbosity_id < rhs%log_verbosity_id)
247 end function kim_log_verbosity_less_than
254 logical recursive function kim_log_verbosity_greater_than(lhs, rhs)
256 type(kim_log_verbosity_type),
intent(in) :: lhs
257 type(kim_log_verbosity_type),
intent(in) :: rhs
259 kim_log_verbosity_greater_than &
260 = (lhs%log_verbosity_id >= rhs%log_verbosity_id)
261 end function kim_log_verbosity_greater_than
268 logical recursive function kim_log_verbosity_less_than_equal(lhs, rhs)
270 type(kim_log_verbosity_type),
intent(in) :: lhs
271 type(kim_log_verbosity_type),
intent(in) :: rhs
273 kim_log_verbosity_less_than_equal &
274 = (lhs%log_verbosity_id <= rhs%log_verbosity_id)
275 end function kim_log_verbosity_less_than_equal
282 logical recursive function kim_log_verbosity_greater_than_equal(lhs, rhs)
284 type(kim_log_verbosity_type),
intent(in) :: lhs
285 type(kim_log_verbosity_type),
intent(in) :: rhs
287 kim_log_verbosity_greater_than_equal &
288 = (lhs%log_verbosity_id >= rhs%log_verbosity_id)
289 end function kim_log_verbosity_greater_than_equal
296 logical recursive function kim_log_verbosity_equal(lhs, rhs)
298 type(kim_log_verbosity_type),
intent(in) :: lhs
299 type(kim_log_verbosity_type),
intent(in) :: rhs
301 kim_log_verbosity_equal &
302 = (lhs%log_verbosity_id == rhs%log_verbosity_id)
303 end function kim_log_verbosity_equal
310 logical recursive function kim_log_verbosity_not_equal(lhs, rhs)
312 type(kim_log_verbosity_type),
intent(in) :: lhs
313 type(kim_log_verbosity_type),
intent(in) :: rhs
315 kim_log_verbosity_not_equal = .not. (lhs == rhs)
316 end function kim_log_verbosity_not_equal
324 recursive subroutine kim_log_verbosity_from_string(string, log_verbosity)
327 type(kim_log_verbosity_type)
recursive function from_string(string) &
328 bind(c, name=
"KIM_LogVerbosity_FromString")
329 use,
intrinsic :: iso_c_binding
330 import kim_log_verbosity_type
332 character(c_char),
intent(in) :: string(*)
333 end function from_string
335 character(len=*, kind=c_char),
intent(in) :: string
336 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
338 log_verbosity = from_string(trim(string)//c_null_char)
339 end subroutine kim_log_verbosity_from_string
346 recursive subroutine kim_log_verbosity_to_string(log_verbosity, string)
347 use kim_convert_string_module
, only: kim_convert_c_char_ptr_to_string
350 type(c_ptr)
recursive function get_string(log_verbosity) &
351 bind(c, name=
"KIM_LogVerbosity_ToString")
352 use,
intrinsic :: iso_c_binding
353 import kim_log_verbosity_type
355 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
356 end function get_string
358 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
359 character(len=*, kind=c_char),
intent(out) :: string
363 p = get_string(log_verbosity)
364 call kim_convert_c_char_ptr_to_string(p, string)
365 end subroutine kim_log_verbosity_to_string
374 number_of_log_verbosities)
377 recursive subroutine get_number_of_log_verbosities( &
378 number_of_log_verbosities) &
379 bind(c, name=
"KIM_LOG_VERBOSITY_GetNumberOfLogVerbosities")
380 use,
intrinsic :: iso_c_binding
382 integer(c_int),
intent(out) :: number_of_log_verbosities
383 end subroutine get_number_of_log_verbosities
385 integer(c_int),
intent(out) :: number_of_log_verbosities
387 call get_number_of_log_verbosities(number_of_log_verbosities)
398 integer(c_int) recursive function get_log_verbosity( &
399 index, log_verbosity) bind(c, name="KIM_LOG_VERBOSITY_GetLogVerbosity")
400 use,
intrinsic :: iso_c_binding
401 import kim_log_verbosity_type
403 integer(c_int),
intent(in),
value :: index
404 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
405 end function get_log_verbosity
407 integer(c_int),
intent(in) :: index
408 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
409 integer(c_int),
intent(out) :: ierr
411 ierr = get_log_verbosity(index - 1, log_verbosity)
recursive subroutine, public kim_get_number_of_log_verbosities(number_of_log_verbosities)
Get the number of standard LogVerbosity's defined by the KIM API.
type(kim_log_verbosity_type), save, public, protected kim_log_verbosity_debug
type(kim_log_verbosity_type), save, public, protected kim_log_verbosity_silent
type(kim_log_verbosity_type), save, public, protected kim_log_verbosity_warning
type(kim_log_verbosity_type), save, public, protected kim_log_verbosity_fatal
recursive subroutine, public kim_get_log_verbosity(index, log_verbosity, ierr)
Get the identity of each defined standard LogVerbosity.
type(kim_log_verbosity_type), save, public, protected kim_log_verbosity_error
An Extensible Enumeration for the LogVerbosity's supported by the KIM API.
type(kim_log_verbosity_type), save, public, protected kim_log_verbosity_information