35 use,
intrinsic :: iso_c_binding
40 kim_model_create_handle_type, &
44 kim_model_create_set_model_numbering, &
46 kim_model_create_set_neighbor_list_pointers, &
47 kim_model_create_set_refresh_pointer, &
53 kim_model_create_set_parameter_pointer, &
55 kim_model_create_set_units, &
60 type, bind(c) :: kim_model_create_handle_type
61 type(c_ptr) :: p = c_null_ptr
62 end type kim_model_create_handle_type
64 type(kim_model_create_handle_type),
protected &
67 interface operator (.eq.)
68 logical function kim_model_create_handle_equal(left, right)
69 use,
intrinsic :: iso_c_binding
70 import kim_model_create_handle_type
72 type(kim_model_create_handle_type),
intent(in) :: left
73 type(kim_model_create_handle_type),
intent(in) :: right
74 end function kim_model_create_handle_equal
75 end interface operator (.eq.)
77 interface operator (.ne.)
78 logical function kim_model_create_handle_not_equal(left, right)
79 use,
intrinsic :: iso_c_binding
80 import kim_model_create_handle_type
82 type(kim_model_create_handle_type),
intent(in) :: left
83 type(kim_model_create_handle_type),
intent(in) :: right
84 end function kim_model_create_handle_not_equal
85 end interface operator (.ne.)
87 interface kim_model_create_set_parameter_pointer
88 subroutine kim_model_create_set_parameter_pointer_integer( &
89 model_create_handle, int1, description, ierr)
90 use,
intrinsic :: iso_c_binding
91 import kim_model_create_handle_type
93 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
94 integer(c_int),
intent(in),
target :: int1(:)
95 character(len=*, kind=c_char),
intent(in) :: description
96 integer(c_int),
intent(out) :: ierr
97 end subroutine kim_model_create_set_parameter_pointer_integer
99 subroutine kim_model_create_set_parameter_pointer_double( &
100 model_create_handle, double1, description, ierr)
101 use,
intrinsic :: iso_c_binding
102 import kim_model_create_handle_type
104 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
105 real(c_double),
intent(in),
target :: double1(:)
106 character(len=*, kind=c_char),
intent(in) :: description
107 integer(c_int),
intent(out) :: ierr
108 end subroutine kim_model_create_set_parameter_pointer_double
109 end interface kim_model_create_set_parameter_pointer
112 subroutine kim_model_create_set_model_numbering( &
113 model_create_handle, numbering, ierr)
114 use,
intrinsic :: iso_c_binding
116 import kim_model_create_handle_type
118 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
119 type(kim_numbering_type),
intent(in),
value :: numbering
120 integer(c_int),
intent(out) :: ierr
121 end subroutine kim_model_create_set_model_numbering
124 model_create_handle, influence_distance)
125 use,
intrinsic :: iso_c_binding
126 import kim_model_create_handle_type
128 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
129 real(c_double),
intent(in),
target :: influence_distance
132 subroutine kim_model_create_set_neighbor_list_pointers( &
133 model_create_handle, number_of_neighbor_lists, cutoffs, &
134 padding_neighbor_hints, half_list_hints)
135 use,
intrinsic :: iso_c_binding
136 import kim_model_create_handle_type
138 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
139 integer(c_int),
intent(in),
value :: number_of_neighbor_lists
140 real(c_double),
intent(in),
target :: cutoffs(number_of_neighbor_lists)
141 integer(c_int),
intent(in),
target :: &
142 padding_neighbor_hints(number_of_neighbor_lists)
143 integer(c_int),
intent(in),
target :: &
144 half_list_hints(number_of_neighbor_lists)
145 end subroutine kim_model_create_set_neighbor_list_pointers
147 subroutine kim_model_create_set_refresh_pointer( &
148 model_create_handle, language_name, fptr, ierr)
149 use,
intrinsic :: iso_c_binding
151 import kim_model_create_handle_type
153 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
154 type(kim_language_name_type),
intent(in),
value :: language_name
155 type(c_funptr),
intent(in),
value :: fptr
156 integer(c_int),
intent(out) :: ierr
157 end subroutine kim_model_create_set_refresh_pointer
160 model_create_handle, language_name, fptr, ierr)
161 use,
intrinsic :: iso_c_binding
163 import kim_model_create_handle_type
165 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
166 type(kim_language_name_type),
intent(in),
value :: language_name
167 type(c_funptr),
intent(in),
value :: fptr
168 integer(c_int),
intent(out) :: ierr
172 model_create_handle, language_name, fptr, ierr)
173 use,
intrinsic :: iso_c_binding
175 import kim_model_create_handle_type
177 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
178 type(kim_language_name_type),
intent(in),
value :: language_name
179 type(c_funptr),
intent(in),
value :: fptr
180 integer(c_int),
intent(out) :: ierr
184 model_create_handle, language_name, fptr, ierr)
185 use,
intrinsic :: iso_c_binding
187 import kim_model_create_handle_type
189 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
190 type(kim_language_name_type),
intent(in),
value :: language_name
191 type(c_funptr),
intent(in),
value :: fptr
192 integer(c_int),
intent(out) :: ierr
196 model_create_handle, language_name, fptr, ierr)
197 use,
intrinsic :: iso_c_binding
199 import kim_model_create_handle_type
201 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
202 type(kim_language_name_type),
intent(in),
value :: language_name
203 type(c_funptr),
intent(in),
value :: fptr
204 integer(c_int),
intent(out) :: ierr
208 species_name, code, ierr)
209 use,
intrinsic :: iso_c_binding
211 import kim_model_create_handle_type
213 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
214 type(kim_species_name_type),
intent(in),
value :: species_name
215 integer(c_int),
intent(in),
value :: code
216 integer(c_int),
intent(out) :: ierr
220 model_create_handle, ptr)
221 use,
intrinsic :: iso_c_binding
222 import kim_model_create_handle_type
224 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
225 type(c_ptr),
intent(in),
value :: ptr
228 subroutine kim_model_create_set_units(model_create_handle, &
229 length_unit, energy_unit, charge_unit, temperature_unit, time_unit, ierr)
230 use,
intrinsic :: iso_c_binding
232 kim_length_unit_type, &
233 kim_energy_unit_type, &
234 kim_charge_unit_type, &
235 kim_temperature_unit_type, &
237 import kim_model_create_handle_type
239 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
240 type(kim_length_unit_type),
intent(in),
value :: length_unit
241 type(kim_energy_unit_type),
intent(in),
value :: energy_unit
242 type(kim_charge_unit_type),
intent(in),
value :: charge_unit
243 type(kim_temperature_unit_type),
intent(in),
value :: temperature_unit
244 type(kim_time_unit_type),
intent(in),
value :: time_unit
245 integer(c_int),
intent(out) :: ierr
246 end subroutine kim_model_create_set_units
249 model_create_handle, from_length_unit, from_energy_unit, &
250 from_charge_unit, from_temperature_unit, from_time_unit, &
251 to_length_unit, to_energy_unit, to_charge_unit, to_temperature_unit, &
252 to_time_unit, length_exponent, energy_exponent, charge_exponent, &
253 temperature_exponent, time_exponent, conversion_factor, ierr)
254 use,
intrinsic :: iso_c_binding
260 import kim_model_create_handle_type
262 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
263 type(kim_length_unit_type),
intent(in),
value :: from_length_unit
264 type(kim_energy_unit_type),
intent(in),
value :: from_energy_unit
265 type(kim_charge_unit_type),
intent(in),
value :: from_charge_unit
266 type(kim_temperature_unit_type),
intent(in),
value :: &
267 from_temperature_unit
268 type(kim_time_unit_type),
intent(in),
value :: from_time_unit
269 type(kim_length_unit_type),
intent(in),
value :: to_length_unit
270 type(kim_energy_unit_type),
intent(in),
value :: to_energy_unit
271 type(kim_charge_unit_type),
intent(in),
value :: to_charge_unit
272 type(kim_temperature_unit_type),
intent(in),
value :: &
274 type(kim_time_unit_type),
intent(in),
value :: to_time_unit
275 real(c_double),
intent(in),
value :: length_exponent
276 real(c_double),
intent(in),
value :: energy_exponent
277 real(c_double),
intent(in),
value :: charge_exponent
278 real(c_double),
intent(in),
value :: temperature_exponent
279 real(c_double),
intent(in),
value :: time_exponent
280 real(c_double),
intent(out) :: conversion_factor
281 integer(c_int),
intent(out) :: ierr
285 log_verbosity, message, line_number, file_name)
286 use,
intrinsic :: iso_c_binding
288 import kim_model_create_handle_type
290 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
291 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
292 character(len=*, kind=c_char),
intent(in) :: message
293 integer(c_int),
intent(in),
value :: line_number
294 character(len=*, kind=c_char),
intent(in) :: file_name
298 use,
intrinsic :: iso_c_binding
299 import kim_model_create_handle_type
301 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
302 character(len=*, kind=c_char),
intent(out) :: string
type(kim_model_create_handle_type), public, protected kim_model_create_null_handle