35 use,
intrinsic :: iso_c_binding
41 kim_data_type_from_string, &
44 kim_data_type_string, &
49 type, bind(c) :: kim_data_type_type
50 integer(c_int) :: data_type_id
51 end type kim_data_type_type
53 type(kim_data_type_type),
protected, &
54 bind(c, name=
"KIM_DATA_TYPE_Integer") &
56 type(kim_data_type_type),
protected, &
57 bind(c, name=
"KIM_DATA_TYPE_Double") &
60 interface operator (.eq.)
61 logical function kim_data_type_equal(left, right)
62 use,
intrinsic :: iso_c_binding
63 import kim_data_type_type
65 type(kim_data_type_type),
intent(in) :: left
66 type(kim_data_type_type),
intent(in) :: right
67 end function kim_data_type_equal
68 end interface operator (.eq.)
70 interface operator (.ne.)
71 logical function kim_data_type_not_equal(left, right)
72 use,
intrinsic :: iso_c_binding
73 import kim_data_type_type
75 type(kim_data_type_type),
intent(in) :: left
76 type(kim_data_type_type),
intent(in) :: right
77 end function kim_data_type_not_equal
78 end interface operator (.ne.)
81 subroutine kim_data_type_from_string(string, data_type)
82 import kim_data_type_type
84 character(len=*),
intent(in) :: string
85 type(kim_data_type_type),
intent(out) :: data_type
86 end subroutine kim_data_type_from_string
88 subroutine kim_data_type_string(data_type, string)
89 import kim_data_type_type
91 type(kim_data_type_type),
intent(in),
value :: data_type
92 character(len=*),
intent(out) :: string
93 end subroutine kim_data_type_string
type(kim_data_type_type), public, protected kim_data_type_double
type(kim_data_type_type), public, protected kim_data_type_integer