39 use,
intrinsic :: iso_c_binding
45 kim_log_verbosity_type, &
71 type, bind(c) :: kim_log_verbosity_type
77 integer(c_int) :: log_verbosity_id
78 end type kim_log_verbosity_type
85 type(kim_log_verbosity_type),
protected,
save, &
86 bind(c, name=
"KIM_LOG_VERBOSITY_silent") &
94 type(kim_log_verbosity_type),
protected,
save, &
95 bind(c, name=
"KIM_LOG_VERBOSITY_fatal") &
103 type(kim_log_verbosity_type),
protected,
save, &
104 bind(c, name=
"KIM_LOG_VERBOSITY_error") &
112 type(kim_log_verbosity_type),
protected,
save, &
113 bind(c, name=
"KIM_LOG_VERBOSITY_warning") &
121 type(kim_log_verbosity_type),
protected,
save, &
122 bind(c, name=
"KIM_LOG_VERBOSITY_information") &
130 type(kim_log_verbosity_type),
protected,
save, &
131 bind(c, name=
"KIM_LOG_VERBOSITY_debug") &
140 module procedure kim_log_verbosity_known
141 end interface kim_known
148 interface operator(.lt.)
149 module procedure kim_log_verbosity_less_than
150 end interface operator(.lt.)
157 interface operator(.gt.)
158 module procedure kim_log_verbosity_greater_than
159 end interface operator(.gt.)
166 interface operator(.le.)
167 module procedure kim_log_verbosity_less_than_equal
168 end interface operator(.le.)
175 interface operator(.ge.)
176 module procedure kim_log_verbosity_greater_than_equal
177 end interface operator(.ge.)
184 interface operator(.eq.)
185 module procedure kim_log_verbosity_equal
186 end interface operator(.eq.)
193 interface operator(.ne.)
194 module procedure kim_log_verbosity_not_equal
195 end interface operator(.ne.)
203 interface kim_from_string
204 module procedure kim_log_verbosity_from_string
205 end interface kim_from_string
212 interface kim_to_string
213 module procedure kim_log_verbosity_to_string
214 end interface kim_to_string
222 logical recursive function kim_log_verbosity_known(log_verbosity)
225 integer(c_int) recursive function known(log_verbosity) &
226 bind(c, name=
"KIM_LogVerbosity_Known")
227 use,
intrinsic :: iso_c_binding
228 import kim_log_verbosity_type
230 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
233 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
235 kim_log_verbosity_known = (known(log_verbosity) /= 0)
236 end function kim_log_verbosity_known
243 logical recursive function kim_log_verbosity_less_than(lhs, rhs)
245 type(kim_log_verbosity_type),
intent(in) :: lhs
246 type(kim_log_verbosity_type),
intent(in) :: rhs
248 kim_log_verbosity_less_than &
249 = (lhs%log_verbosity_id < rhs%log_verbosity_id)
250 end function kim_log_verbosity_less_than
257 logical recursive function kim_log_verbosity_greater_than(lhs, rhs)
259 type(kim_log_verbosity_type),
intent(in) :: lhs
260 type(kim_log_verbosity_type),
intent(in) :: rhs
262 kim_log_verbosity_greater_than &
263 = (lhs%log_verbosity_id >= rhs%log_verbosity_id)
264 end function kim_log_verbosity_greater_than
271 logical recursive function kim_log_verbosity_less_than_equal(lhs, rhs)
273 type(kim_log_verbosity_type),
intent(in) :: lhs
274 type(kim_log_verbosity_type),
intent(in) :: rhs
276 kim_log_verbosity_less_than_equal &
277 = (lhs%log_verbosity_id <= rhs%log_verbosity_id)
278 end function kim_log_verbosity_less_than_equal
285 logical recursive function kim_log_verbosity_greater_than_equal(lhs, rhs)
287 type(kim_log_verbosity_type),
intent(in) :: lhs
288 type(kim_log_verbosity_type),
intent(in) :: rhs
290 kim_log_verbosity_greater_than_equal &
291 = (lhs%log_verbosity_id >= rhs%log_verbosity_id)
292 end function kim_log_verbosity_greater_than_equal
299 logical recursive function kim_log_verbosity_equal(lhs, rhs)
301 type(kim_log_verbosity_type),
intent(in) :: lhs
302 type(kim_log_verbosity_type),
intent(in) :: rhs
304 kim_log_verbosity_equal &
305 = (lhs%log_verbosity_id == rhs%log_verbosity_id)
306 end function kim_log_verbosity_equal
313 logical recursive function kim_log_verbosity_not_equal(lhs, rhs)
315 type(kim_log_verbosity_type),
intent(in) :: lhs
316 type(kim_log_verbosity_type),
intent(in) :: rhs
318 kim_log_verbosity_not_equal = .not. (lhs == rhs)
319 end function kim_log_verbosity_not_equal
327 recursive subroutine kim_log_verbosity_from_string(string, log_verbosity)
330 type(kim_log_verbosity_type)
recursive function from_string(string) &
331 bind(c, name=
"KIM_LogVerbosity_FromString")
332 use,
intrinsic :: iso_c_binding
333 import kim_log_verbosity_type
335 character(c_char),
intent(in) :: string(*)
336 end function from_string
338 character(len=*, kind=c_char),
intent(in) :: string
339 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
341 log_verbosity = from_string(trim(string)//c_null_char)
342 end subroutine kim_log_verbosity_from_string
349 recursive subroutine kim_log_verbosity_to_string(log_verbosity, string)
350 use kim_convert_string_module
, only: kim_convert_c_char_ptr_to_string
353 type(c_ptr)
recursive function get_string(log_verbosity) &
354 bind(c, name=
"KIM_LogVerbosity_ToString")
355 use,
intrinsic :: iso_c_binding
356 import kim_log_verbosity_type
358 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
359 end function get_string
361 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
362 character(len=*, kind=c_char),
intent(out) :: string
366 p = get_string(log_verbosity)
367 call kim_convert_c_char_ptr_to_string(p, string)
368 end subroutine kim_log_verbosity_to_string
377 number_of_log_verbosities)
380 recursive subroutine get_number_of_log_verbosities( &
381 number_of_log_verbosities) &
382 bind(c, name=
"KIM_LOG_VERBOSITY_GetNumberOfLogVerbosities")
383 use,
intrinsic :: iso_c_binding
385 integer(c_int),
intent(out) :: number_of_log_verbosities
386 end subroutine get_number_of_log_verbosities
388 integer(c_int),
intent(out) :: number_of_log_verbosities
390 call get_number_of_log_verbosities(number_of_log_verbosities)
401 integer(c_int) recursive function get_log_verbosity( &
402 index, log_verbosity) bind(c, name="KIM_LOG_VERBOSITY_GetLogVerbosity")
403 use,
intrinsic :: iso_c_binding
404 import kim_log_verbosity_type
406 integer(c_int),
intent(in),
value :: index
407 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
408 end function get_log_verbosity
410 integer(c_int),
intent(in) :: index
411 type(kim_log_verbosity_type),
intent(out) :: log_verbosity
412 integer(c_int),
intent(out) :: ierr
414 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