40 use,
intrinsic :: iso_c_binding
46 kim_log_verbosity_type, &
75 type, bind(c) :: kim_log_verbosity_type
81 integer(c_int) :: log_verbosity_id
82 end type kim_log_verbosity_type
89 type(kim_log_verbosity_type),
protected,
save, &
90 bind(c, name=
"KIM_LOG_VERBOSITY_silent") &
98 type(kim_log_verbosity_type),
protected,
save, &
99 bind(c, name=
"KIM_LOG_VERBOSITY_fatal") &
107 type(kim_log_verbosity_type),
protected,
save, &
108 bind(c, name=
"KIM_LOG_VERBOSITY_error") &
116 type(kim_log_verbosity_type),
protected,
save, &
117 bind(c, name=
"KIM_LOG_VERBOSITY_warning") &
125 type(kim_log_verbosity_type),
protected,
save, &
126 bind(c, name=
"KIM_LOG_VERBOSITY_information") &
134 type(kim_log_verbosity_type),
protected,
save, &
135 bind(c, name=
"KIM_LOG_VERBOSITY_debug") &
144 module procedure kim_log_verbosity_known
145 end interface kim_known
152 interface operator (.lt.)
153 module procedure kim_log_verbosity_less_than
154 end interface operator (.lt.)
161 interface operator (.gt.)
162 module procedure kim_log_verbosity_greater_than
163 end interface operator (.gt.)
170 interface operator (.le.)
171 module procedure kim_log_verbosity_less_than_equal
172 end interface operator (.le.)
179 interface operator (.ge.)
180 module procedure kim_log_verbosity_greater_than_equal
181 end interface operator (.ge.)
188 interface operator (.eq.)
189 module procedure kim_log_verbosity_equal
190 end interface operator (.eq.)
197 interface operator (.ne.)
198 module procedure kim_log_verbosity_not_equal
199 end interface operator (.ne.)
207 interface kim_from_string
208 module procedure kim_log_verbosity_from_string
209 end interface kim_from_string
216 interface kim_to_string
217 module procedure kim_log_verbosity_to_string
218 end interface kim_to_string
226 logical recursive function kim_log_verbosity_known(log_verbosity)
229 integer(c_int) recursive function known(log_verbosity) &
230 bind(c, name=
"KIM_LogVerbosity_Known")
231 use,
intrinsic :: iso_c_binding
232 import kim_log_verbosity_type
234 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
237 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
239 kim_log_verbosity_known = (known(log_verbosity) /= 0)
240 end function kim_log_verbosity_known
247 logical recursive function kim_log_verbosity_less_than(lhs, rhs)
249 type(kim_log_verbosity_type),
intent(in) :: lhs
250 type(kim_log_verbosity_type),
intent(in) :: rhs
252 kim_log_verbosity_less_than &
253 = (lhs%log_verbosity_id .lt. rhs%log_verbosity_id)
254 end function kim_log_verbosity_less_than
261 logical recursive function kim_log_verbosity_greater_than(lhs, rhs)
263 type(kim_log_verbosity_type),
intent(in) :: lhs
264 type(kim_log_verbosity_type),
intent(in) :: rhs
266 kim_log_verbosity_greater_than &
267 = (lhs%log_verbosity_id .ge. rhs%log_verbosity_id)
268 end function kim_log_verbosity_greater_than
275 logical recursive function kim_log_verbosity_less_than_equal(lhs, rhs)
277 type(kim_log_verbosity_type),
intent(in) :: lhs
278 type(kim_log_verbosity_type),
intent(in) :: rhs
280 kim_log_verbosity_less_than_equal &
281 = (lhs%log_verbosity_id .le. rhs%log_verbosity_id)
282 end function kim_log_verbosity_less_than_equal
289 logical recursive function kim_log_verbosity_greater_than_equal(lhs, rhs)
291 type(kim_log_verbosity_type),
intent(in) :: lhs
292 type(kim_log_verbosity_type),
intent(in) :: rhs
294 kim_log_verbosity_greater_than_equal &
295 = (lhs%log_verbosity_id .ge. rhs%log_verbosity_id)
296 end function kim_log_verbosity_greater_than_equal
303 logical recursive function kim_log_verbosity_equal(lhs, rhs)
305 type(kim_log_verbosity_type),
intent(in) :: lhs
306 type(kim_log_verbosity_type),
intent(in) :: rhs
308 kim_log_verbosity_equal &
309 = (lhs%log_verbosity_id .eq. rhs%log_verbosity_id)
310 end function kim_log_verbosity_equal
317 logical recursive function kim_log_verbosity_not_equal(lhs, rhs)
319 type(kim_log_verbosity_type),
intent(in) :: lhs
320 type(kim_log_verbosity_type),
intent(in) :: rhs
322 kim_log_verbosity_not_equal = .not. (lhs .eq. rhs)
323 end function kim_log_verbosity_not_equal
331 recursive subroutine kim_log_verbosity_from_string(string, log_verbosity)
334 type(kim_log_verbosity_type)
recursive function from_string(string) &
335 bind(c, name=
"KIM_LogVerbosity_FromString")
336 use,
intrinsic :: iso_c_binding
337 import kim_log_verbosity_type
339 character(c_char),
intent(in) :: string(*)
340 end function from_string
342 character(len=*, kind=c_char),
intent(in) :: string
343 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
345 log_verbosity = from_string(trim(string)//c_null_char)
346 end subroutine kim_log_verbosity_from_string
353 recursive subroutine kim_log_verbosity_to_string(log_verbosity, string)
354 use kim_convert_string_module
, only : kim_convert_c_char_ptr_to_string
357 type(c_ptr)
recursive function get_string(log_verbosity) &
358 bind(c, name=
"KIM_LogVerbosity_ToString")
359 use,
intrinsic :: iso_c_binding
360 import kim_log_verbosity_type
362 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
363 end function get_string
365 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
366 character(len=*, kind=c_char),
intent(out) :: string
370 p = get_string(log_verbosity)
371 call kim_convert_c_char_ptr_to_string(p, string)
372 end subroutine kim_log_verbosity_to_string
381 number_of_log_verbosities)
384 recursive subroutine get_number_of_log_verbosities( &
385 number_of_log_verbosities) &
386 bind(c, name=
"KIM_LOG_VERBOSITY_GetNumberOfLogVerbosities")
387 use,
intrinsic :: iso_c_binding
389 integer(c_int),
intent(out) :: number_of_log_verbosities
390 end subroutine get_number_of_log_verbosities
392 integer(c_int),
intent(out) :: number_of_log_verbosities
394 call get_number_of_log_verbosities(number_of_log_verbosities)
405 integer(c_int) recursive function get_log_verbosity(index, &
406 log_verbosity) bind(c, name="KIM_LOG_VERBOSITY_GetLogVerbosity")
407 use,
intrinsic :: iso_c_binding
408 import kim_log_verbosity_type
410 integer(c_int),
intent(in),
value :: index
411 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
412 end function get_log_verbosity
414 integer(c_int),
intent(in) :: index
415 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
416 integer(c_int),
intent(out) :: ierr
418 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