35 use,
intrinsic :: iso_c_binding
40 kim_length_unit_type, &
41 kim_length_unit_from_string, &
44 kim_length_unit_string, &
53 kim_length_unit_get_number_of_length_units, &
54 kim_length_unit_get_length_unit
57 type, bind(c) :: kim_length_unit_type
58 integer(c_int) length_unit_id
59 end type kim_length_unit_type
61 type(kim_length_unit_type),
protected, &
62 bind(c, name=
"KIM_LENGTH_UNIT_unused") &
64 type(kim_length_unit_type),
protected, &
65 bind(c, name=
"KIM_LENGTH_UNIT_A") &
67 type(kim_length_unit_type),
protected, &
68 bind(c, name=
"KIM_LENGTH_UNIT_Bhor") &
70 type(kim_length_unit_type),
protected, &
71 bind(c, name=
"KIM_LENGTH_UNIT_cm") &
73 type(kim_length_unit_type),
protected, &
74 bind(c, name=
"KIM_LENGTH_UNIT_m") &
76 type(kim_length_unit_type),
protected, &
77 bind(c, name=
"KIM_LENGTH_UNIT_nm") &
80 interface operator (.eq.)
81 logical function kim_length_unit_equal(left, right)
82 use,
intrinsic :: iso_c_binding
83 import kim_length_unit_type
85 type(kim_length_unit_type),
intent(in) :: left
86 type(kim_length_unit_type),
intent(in) :: right
87 end function kim_length_unit_equal
88 end interface operator (.eq.)
90 interface operator (.ne.)
91 logical function kim_length_unit_not_equal(left, right)
92 use,
intrinsic :: iso_c_binding
93 import kim_length_unit_type
95 type(kim_length_unit_type),
intent(in) :: left
96 type(kim_length_unit_type),
intent(in) :: right
97 end function kim_length_unit_not_equal
98 end interface operator (.ne.)
101 subroutine kim_length_unit_from_string(string, length_unit)
102 use,
intrinsic :: iso_c_binding
103 import kim_length_unit_type
105 character(len=*, kind=c_char),
intent(in) :: string
106 type(kim_length_unit_type),
intent(out) :: length_unit
107 end subroutine kim_length_unit_from_string
109 subroutine kim_length_unit_string(length_unit, string)
110 use,
intrinsic :: iso_c_binding
111 import kim_length_unit_type
113 type(kim_length_unit_type),
intent(in),
value :: length_unit
114 character(len=*, kind=c_char),
intent(out) :: string
115 end subroutine kim_length_unit_string
117 subroutine kim_length_unit_get_number_of_length_units( &
118 number_of_length_units)
119 use,
intrinsic :: iso_c_binding
121 integer(c_int),
intent(out) :: number_of_length_units
122 end subroutine kim_length_unit_get_number_of_length_units
124 subroutine kim_length_unit_get_length_unit(index, length_unit, ierr)
125 use,
intrinsic :: iso_c_binding
126 import kim_length_unit_type
128 integer(c_int),
intent(in),
value :: index
129 type(kim_length_unit_type),
intent(out) :: length_unit
130 integer(c_int),
intent(out) :: ierr
131 end subroutine kim_length_unit_get_length_unit
type(kim_length_unit_type), public, protected kim_length_unit_nm
type(kim_length_unit_type), public, protected kim_length_unit_cm
type(kim_length_unit_type), public, protected kim_length_unit_a
type(kim_length_unit_type), public, protected kim_length_unit_unused
type(kim_length_unit_type), public, protected kim_length_unit_bohr
type(kim_length_unit_type), public, protected kim_length_unit_m