35 use,
intrinsic :: iso_c_binding
40 kim_energy_unit_type, &
41 kim_energy_unit_from_string, &
44 kim_energy_unit_string, &
54 kim_energy_unit_get_number_of_energy_units, &
55 kim_energy_unit_get_energy_unit
58 type, bind(c) :: kim_energy_unit_type
59 integer(c_int) energy_unit_id
60 end type kim_energy_unit_type
62 type(kim_energy_unit_type),
protected, &
63 bind(c, name=
"KIM_ENERGY_UNIT_unsued") &
65 type(kim_energy_unit_type),
protected, &
66 bind(c, name=
"KIM_ENERGY_UNIT_amu_A2_per_ps2") &
68 type(kim_energy_unit_type),
protected, &
69 bind(c, name=
"KIM_ENERGY_UNIT_erg") &
71 type(kim_energy_unit_type),
protected, &
72 bind(c, name=
"KIM_ENERGY_UNIT_eV") &
74 type(kim_energy_unit_type),
protected, &
75 bind(c, name=
"KIM_ENERGY_UNIT_Hartree") &
77 type(kim_energy_unit_type),
protected, &
78 bind(c, name=
"KIM_ENERGY_UNIT_J") &
80 type(kim_energy_unit_type),
protected, &
81 bind(c, name=
"KIM_ENERGY_UNIT_kcal_mol") &
84 interface operator (.eq.)
85 logical function kim_energy_unit_equal(left, right)
86 use,
intrinsic :: iso_c_binding
87 import kim_energy_unit_type
89 type(kim_energy_unit_type),
intent(in) :: left
90 type(kim_energy_unit_type),
intent(in) :: right
91 end function kim_energy_unit_equal
92 end interface operator (.eq.)
94 interface operator (.ne.)
95 logical function kim_energy_unit_not_equal(left, right)
96 use,
intrinsic :: iso_c_binding
97 import kim_energy_unit_type
99 type(kim_energy_unit_type),
intent(in) :: left
100 type(kim_energy_unit_type),
intent(in) :: right
101 end function kim_energy_unit_not_equal
102 end interface operator (.ne.)
105 subroutine kim_energy_unit_from_string(string, energy_unit)
106 use,
intrinsic :: iso_c_binding
107 import kim_energy_unit_type
109 character(len=*, kind=c_char),
intent(in) :: string
110 type(kim_energy_unit_type),
intent(out) :: energy_unit
111 end subroutine kim_energy_unit_from_string
113 subroutine kim_energy_unit_string(energy_unit, string)
114 use,
intrinsic :: iso_c_binding
115 import kim_energy_unit_type
117 type(kim_energy_unit_type),
intent(in),
value :: energy_unit
118 character(len=*, kind=c_char),
intent(out) :: string
119 end subroutine kim_energy_unit_string
121 subroutine kim_energy_unit_get_number_of_energy_units( &
122 number_of_energy_units)
123 use,
intrinsic :: iso_c_binding
125 integer(c_int),
intent(out) :: number_of_energy_units
126 end subroutine kim_energy_unit_get_number_of_energy_units
128 subroutine kim_energy_unit_get_energy_unit(index, energy_unit, ierr)
129 use,
intrinsic :: iso_c_binding
130 import kim_energy_unit_type
132 integer(c_int),
intent(in),
value :: index
133 type(kim_energy_unit_type),
intent(out) :: energy_unit
134 integer(c_int),
intent(out) :: ierr
135 end subroutine kim_energy_unit_get_energy_unit
type(kim_energy_unit_type), public, protected kim_energy_unit_ev
type(kim_energy_unit_type), public, protected kim_energy_unit_hartree
type(kim_energy_unit_type), public, protected kim_energy_unit_unused
type(kim_energy_unit_type), public, protected kim_energy_unit_j
type(kim_energy_unit_type), public, protected kim_energy_unit_kcal_mol
type(kim_energy_unit_type), public, protected kim_energy_unit_amu_a2_per_ps2
type(kim_energy_unit_type), public, protected kim_energy_unit_erg