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_cutoffs_pointer, &
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_cutoffs_pointer( &
133 model_create_handle, number_of_cutoffs, cutoffs)
134 use,
intrinsic :: iso_c_binding
135 import kim_model_create_handle_type
137 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
138 integer(c_int),
intent(in),
value :: number_of_cutoffs
139 real(c_double),
intent(in),
target :: cutoffs(number_of_cutoffs)
140 end subroutine kim_model_create_set_neighbor_list_cutoffs_pointer
142 subroutine kim_model_create_set_refresh_pointer( &
143 model_create_handle, language_name, fptr, ierr)
144 use,
intrinsic :: iso_c_binding
146 import kim_model_create_handle_type
148 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
149 type(kim_language_name_type),
intent(in),
value :: language_name
150 type(c_funptr),
intent(in),
value :: fptr
151 integer(c_int),
intent(out) :: ierr
152 end subroutine kim_model_create_set_refresh_pointer
155 model_create_handle, language_name, fptr, ierr)
156 use,
intrinsic :: iso_c_binding
158 import kim_model_create_handle_type
160 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
161 type(kim_language_name_type),
intent(in),
value :: language_name
162 type(c_funptr),
intent(in),
value :: fptr
163 integer(c_int),
intent(out) :: ierr
167 model_create_handle, language_name, fptr, ierr)
168 use,
intrinsic :: iso_c_binding
170 import kim_model_create_handle_type
172 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
173 type(kim_language_name_type),
intent(in),
value :: language_name
174 type(c_funptr),
intent(in),
value :: fptr
175 integer(c_int),
intent(out) :: ierr
179 model_create_handle, language_name, fptr, ierr)
180 use,
intrinsic :: iso_c_binding
182 import kim_model_create_handle_type
184 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
185 type(kim_language_name_type),
intent(in),
value :: language_name
186 type(c_funptr),
intent(in),
value :: fptr
187 integer(c_int),
intent(out) :: ierr
191 model_create_handle, language_name, fptr, ierr)
192 use,
intrinsic :: iso_c_binding
194 import kim_model_create_handle_type
196 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
197 type(kim_language_name_type),
intent(in),
value :: language_name
198 type(c_funptr),
intent(in),
value :: fptr
199 integer(c_int),
intent(out) :: ierr
203 species_name, code, ierr)
204 use,
intrinsic :: iso_c_binding
206 import kim_model_create_handle_type
208 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
209 type(kim_species_name_type),
intent(in),
value :: species_name
210 integer(c_int),
intent(in),
value :: code
211 integer(c_int),
intent(out) :: ierr
215 model_create_handle, ptr)
216 use,
intrinsic :: iso_c_binding
217 import kim_model_create_handle_type
219 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
220 type(c_ptr),
intent(in),
value :: ptr
223 subroutine kim_model_create_set_units(model_create_handle, &
224 length_unit, energy_unit, charge_unit, temperature_unit, time_unit, ierr)
225 use,
intrinsic :: iso_c_binding
227 kim_length_unit_type, &
228 kim_energy_unit_type, &
229 kim_charge_unit_type, &
230 kim_temperature_unit_type, &
232 import kim_model_create_handle_type
234 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
235 type(kim_length_unit_type),
intent(in),
value :: length_unit
236 type(kim_energy_unit_type),
intent(in),
value :: energy_unit
237 type(kim_charge_unit_type),
intent(in),
value :: charge_unit
238 type(kim_temperature_unit_type),
intent(in),
value :: temperature_unit
239 type(kim_time_unit_type),
intent(in),
value :: time_unit
240 integer(c_int),
intent(out) :: ierr
241 end subroutine kim_model_create_set_units
244 model_create_handle, from_length_unit, from_energy_unit, &
245 from_charge_unit, from_temperature_unit, from_time_unit, &
246 to_length_unit, to_energy_unit, to_charge_unit, to_temperature_unit, &
247 to_time_unit, length_exponent, energy_exponent, charge_exponent, &
248 temperature_exponent, time_exponent, conversion_factor, ierr)
249 use,
intrinsic :: iso_c_binding
255 import kim_model_create_handle_type
257 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
258 type(kim_length_unit_type),
intent(in),
value :: from_length_unit
259 type(kim_energy_unit_type),
intent(in),
value :: from_energy_unit
260 type(kim_charge_unit_type),
intent(in),
value :: from_charge_unit
261 type(kim_temperature_unit_type),
intent(in),
value :: &
262 from_temperature_unit
263 type(kim_time_unit_type),
intent(in),
value :: from_time_unit
264 type(kim_length_unit_type),
intent(in),
value :: to_length_unit
265 type(kim_energy_unit_type),
intent(in),
value :: to_energy_unit
266 type(kim_charge_unit_type),
intent(in),
value :: to_charge_unit
267 type(kim_temperature_unit_type),
intent(in),
value :: &
269 type(kim_time_unit_type),
intent(in),
value :: to_time_unit
270 real(c_double),
intent(in),
value :: length_exponent
271 real(c_double),
intent(in),
value :: energy_exponent
272 real(c_double),
intent(in),
value :: charge_exponent
273 real(c_double),
intent(in),
value :: temperature_exponent
274 real(c_double),
intent(in),
value :: time_exponent
275 real(c_double),
intent(out) :: conversion_factor
276 integer(c_int),
intent(out) :: ierr
280 log_verbosity, message, line_number, file_name)
281 use,
intrinsic :: iso_c_binding
283 import kim_model_create_handle_type
285 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
286 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
287 character(len=*, kind=c_char),
intent(in) :: message
288 integer(c_int),
intent(in),
value :: line_number
289 character(len=*, kind=c_char),
intent(in) :: file_name
293 use,
intrinsic :: iso_c_binding
294 import kim_model_create_handle_type
296 type(kim_model_create_handle_type),
intent(in) :: model_create_handle
297 character(len=*, kind=c_char),
intent(out) :: string
type(kim_model_create_handle_type), public, protected kim_model_create_null_handle