35 use,
intrinsic :: iso_c_binding
40 kim_charge_unit_type, &
41 kim_charge_unit_from_string, &
44 kim_charge_unit_string, &
51 kim_charge_unit_get_number_of_charge_units, &
52 kim_charge_unit_get_charge_unit
55 type, bind(c) :: kim_charge_unit_type
56 integer(c_int) charge_unit_id
57 end type kim_charge_unit_type
59 type(kim_charge_unit_type),
protected, &
60 bind(c, name=
"KIM_CHARGE_UNIT_unused") &
62 type(kim_charge_unit_type),
protected, &
63 bind(c, name=
"KIM_CHARGE_UNIT_c") &
65 type(kim_charge_unit_type),
protected, &
66 bind(c, name=
"KIM_CHARGE_UNIT_e") &
68 type(kim_charge_unit_type),
protected, &
69 bind(c, name=
"KIM_CHARGE_UNIT_statC") &
72 interface operator (.eq.)
73 logical function kim_charge_unit_equal(left, right)
74 use,
intrinsic :: iso_c_binding
75 import kim_charge_unit_type
77 type(kim_charge_unit_type),
intent(in) :: left
78 type(kim_charge_unit_type),
intent(in) :: right
79 end function kim_charge_unit_equal
80 end interface operator (.eq.)
82 interface operator (.ne.)
83 logical function kim_charge_unit_not_equal(left, right)
84 use,
intrinsic :: iso_c_binding
85 import kim_charge_unit_type
87 type(kim_charge_unit_type),
intent(in) :: left
88 type(kim_charge_unit_type),
intent(in) :: right
89 end function kim_charge_unit_not_equal
90 end interface operator (.ne.)
93 subroutine kim_charge_unit_from_string(string, charge_unit)
94 use,
intrinsic :: iso_c_binding
95 import kim_charge_unit_type
97 character(len=*, kind=c_char),
intent(in) :: string
98 type(kim_charge_unit_type),
intent(out) :: charge_unit
99 end subroutine kim_charge_unit_from_string
101 subroutine kim_charge_unit_string(charge_unit, string)
102 use,
intrinsic :: iso_c_binding
103 import kim_charge_unit_type
105 type(kim_charge_unit_type),
intent(in),
value :: charge_unit
106 character(len=*, kind=c_char),
intent(out) :: string
107 end subroutine kim_charge_unit_string
109 subroutine kim_charge_unit_get_number_of_charge_units( &
110 number_of_charge_units)
111 use,
intrinsic :: iso_c_binding
113 integer(c_int),
intent(out) :: number_of_charge_units
114 end subroutine kim_charge_unit_get_number_of_charge_units
116 subroutine kim_charge_unit_get_charge_unit(index, charge_unit, ierr)
117 use,
intrinsic :: iso_c_binding
118 import kim_charge_unit_type
120 integer(c_int),
intent(in),
value :: index
121 type(kim_charge_unit_type),
intent(out) :: charge_unit
122 integer(c_int),
intent(out) :: ierr
123 end subroutine kim_charge_unit_get_charge_unit
type(kim_charge_unit_type), public, protected kim_charge_unit_statc
type(kim_charge_unit_type), public, protected kim_charge_unit_c
type(kim_charge_unit_type), public, protected kim_charge_unit_unused
type(kim_charge_unit_type), public, protected kim_charge_unit_e