kim-api 2.3.0+AppleClang.AppleClang.GNU
An Application Programming Interface (API) for the Knowledgebase of Interatomic Models (KIM).
Loading...
Searching...
No Matches
kim_model_create_module.f90
Go to the documentation of this file.
1!
2! KIM-API: An API for interatomic models
3! Copyright (c) 2013--2022, Regents of the University of Minnesota.
4! All rights reserved.
5!
6! Contributors:
7! Ryan S. Elliott
8!
9! SPDX-License-Identifier: LGPL-2.1-or-later
10!
11! This library is free software; you can redistribute it and/or
12! modify it under the terms of the GNU Lesser General Public
13! License as published by the Free Software Foundation; either
14! version 2.1 of the License, or (at your option) any later version.
15!
16! This library is distributed in the hope that it will be useful,
17! but WITHOUT ANY WARRANTY; without even the implied warranty of
18! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19! Lesser General Public License for more details.
20!
21! You should have received a copy of the GNU Lesser General Public License
22! along with this library; if not, write to the Free Software Foundation,
23! Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24!
25
26!
27! Release: This file is part of the kim-api-2.3.0 package.
28!
29
36 use, intrinsic :: iso_c_binding
37 implicit none
38 private
39
40 public &
41 ! Derived types
43 ! Constants
45 ! Routines
46 operator(.eq.), &
47 operator(.ne.), &
59
65 type, bind(c) :: kim_model_create_handle_type
66 type(c_ptr) :: p = c_null_ptr
68
72 type(kim_model_create_handle_type), protected, save &
74
78 interface operator(.eq.)
79 module procedure kim_model_create_handle_equal
80 end interface operator(.eq.)
81
85 interface operator(.ne.)
86 module procedure kim_model_create_handle_not_equal
87 end interface operator(.ne.)
88
95 module procedure kim_model_create_set_model_numbering
96 end interface kim_set_model_numbering
97
107
117
125 end interface kim_set_routine_pointer
126
133 module procedure kim_model_create_set_species_code
134 end interface kim_set_species_code
135
146 end interface kim_set_parameter_pointer
147
156 end interface kim_set_model_buffer_pointer
157
164 module procedure kim_model_create_set_units
165 end interface kim_set_units
166
173 module procedure kim_model_create_convert_unit
174 end interface kim_convert_unit
175
182 module procedure kim_model_create_log_entry
183 end interface kim_log_entry
184
191 module procedure kim_model_create_to_string
192 end interface kim_to_string
193
194contains
198 logical recursive function kim_model_create_handle_equal(lhs, rhs)
199 implicit none
200 type(kim_model_create_handle_type), intent(in) :: lhs
201 type(kim_model_create_handle_type), intent(in) :: rhs
202
203 if ((.not. c_associated(lhs%p)) .and. (.not. c_associated(rhs%p))) then
204 kim_model_create_handle_equal = .true.
205 else
206 kim_model_create_handle_equal = c_associated(lhs%p, rhs%p)
207 end if
208 end function kim_model_create_handle_equal
209
213 logical recursive function kim_model_create_handle_not_equal(lhs, rhs)
214 implicit none
215 type(kim_model_create_handle_type), intent(in) :: lhs
216 type(kim_model_create_handle_type), intent(in) :: rhs
217
218 kim_model_create_handle_not_equal = .not. (lhs == rhs)
219 end function kim_model_create_handle_not_equal
220
226 recursive subroutine kim_model_create_set_model_numbering( &
227 model_create_handle, numbering, ierr)
229 use kim_interoperable_types_module, only: kim_model_create_type
230 implicit none
231 interface
232 integer(c_int) recursive function set_model_numbering( &
233 model_create, numbering) &
234 bind(c, name="KIM_ModelCreate_SetModelNumbering")
235 use, intrinsic :: iso_c_binding
237 use kim_interoperable_types_module, only: kim_model_create_type
238 implicit none
239 type(kim_model_create_type), intent(in) :: model_create
240 type(kim_numbering_type), intent(in), value :: numbering
241 end function set_model_numbering
242 end interface
243 type(kim_model_create_handle_type), intent(in) :: model_create_handle
244 type(kim_numbering_type), intent(in) :: numbering
245 integer(c_int), intent(out) :: ierr
246 type(kim_model_create_type), pointer :: model_create
247
248 call c_f_pointer(model_create_handle%p, model_create)
249 ierr = set_model_numbering(model_create, numbering)
250 end subroutine kim_model_create_set_model_numbering
251
259 model_create_handle, influence_distance)
260 use kim_interoperable_types_module, only: kim_model_create_type
261 implicit none
262 interface
263 recursive subroutine set_influence_distance_pointer(model_create, &
264 influence_distance) &
265 bind(c, name="KIM_ModelCreate_SetInfluenceDistancePointer")
266 use, intrinsic :: iso_c_binding
267 use kim_interoperable_types_module, only: kim_model_create_type
268 implicit none
269 type(kim_model_create_type), intent(in) :: model_create
270 type(c_ptr), intent(in), value :: influence_distance
271 end subroutine set_influence_distance_pointer
272 end interface
273 type(kim_model_create_handle_type), intent(in) :: model_create_handle
274 real(c_double), intent(in), target :: influence_distance
275 type(kim_model_create_type), pointer :: model_create
276
277 call c_f_pointer(model_create_handle%p, model_create)
278 call set_influence_distance_pointer(model_create, &
279 c_loc(influence_distance))
281
289 model_create_handle, number_of_neighbor_lists, cutoffs, &
290 model_will_not_request_neighbors_of_noncontributing_particles)
291 use kim_interoperable_types_module, only: kim_model_create_type
292 implicit none
293 interface
294 recursive subroutine set_neighbor_list_pointers( &
295 model_create, number_of_neighbor_lists, cutoffs_ptr, &
296 model_will_not_request_neighbors_of_noncontributing_particles) &
297 bind(c, name="KIM_ModelCreate_SetNeighborListPointers")
298 use, intrinsic :: iso_c_binding
299 use kim_interoperable_types_module, only: kim_model_create_type
300 implicit none
301 type(kim_model_create_type), intent(in) :: model_create
302 integer(c_int), intent(in), value :: number_of_neighbor_lists
303 type(c_ptr), intent(in), value :: cutoffs_ptr
304 type(c_ptr), intent(in), value :: &
305 model_will_not_request_neighbors_of_noncontributing_particles
306 end subroutine set_neighbor_list_pointers
307 end interface
308 type(kim_model_create_handle_type), intent(in) :: model_create_handle
309 integer(c_int), intent(in) :: number_of_neighbor_lists
310 real(c_double), intent(in), target :: cutoffs(number_of_neighbor_lists)
311 integer(c_int), intent(in), target :: &
312 model_will_not_request_neighbors_of_noncontributing_particles( &
313 number_of_neighbor_lists)
314 type(kim_model_create_type), pointer :: model_create
315
316 call c_f_pointer(model_create_handle%p, model_create)
318 model_create, number_of_neighbor_lists, c_loc(cutoffs), &
319 c_loc(model_will_not_request_neighbors_of_noncontributing_particles))
321
328 model_create_handle, model_routine_name, language_name, required, fptr, &
329 ierr)
332 use kim_interoperable_types_module, only: kim_model_create_type
333 implicit none
334 interface
335 integer(c_int) recursive function set_routine_pointer( &
336 model_create, model_routine_name, language_name, required, fptr) &
337 bind(c, name="KIM_ModelCreate_SetRoutinePointer")
338 use, intrinsic :: iso_c_binding
341 use kim_interoperable_types_module, only: kim_model_create_type
342 implicit none
343 type(kim_model_create_type), intent(in) :: model_create
344 type(kim_model_routine_name_type), intent(in), value &
345 :: model_routine_name
346 type(kim_language_name_type), intent(in), value :: language_name
347 integer(c_int), intent(in), value :: required
348 type(c_funptr), intent(in), value :: fptr
349 end function set_routine_pointer
350 end interface
351 type(kim_model_create_handle_type), intent(in) :: model_create_handle
352 type(kim_model_routine_name_type), intent(in) :: model_routine_name
353 type(kim_language_name_type), intent(in) :: language_name
354 integer(c_int), intent(in) :: required
355 type(c_funptr), intent(in), value :: fptr ! must be left as "value"!?!
356 integer(c_int), intent(out) :: ierr
357 type(kim_model_create_type), pointer :: model_create
358
359 call c_f_pointer(model_create_handle%p, model_create)
360 ierr = set_routine_pointer(model_create, model_routine_name, &
361 language_name, required, fptr)
363
369 recursive subroutine kim_model_create_set_species_code( &
370 model_create_handle, species_name, code, ierr)
372 use kim_interoperable_types_module, only: kim_model_create_type
373 implicit none
374 interface
375 integer(c_int) recursive function set_species_code(model_create, &
376 species_name, code) &
377 bind(c, name="KIM_ModelCreate_SetSpeciesCode")
378 use, intrinsic :: iso_c_binding
380 use kim_interoperable_types_module, only: kim_model_create_type
381 implicit none
382 type(kim_model_create_type), intent(in) :: model_create
383 type(kim_species_name_type), intent(in), value :: species_name
384 integer(c_int), intent(in), value :: code
385 end function set_species_code
386 end interface
387 type(kim_model_create_handle_type), intent(in) :: model_create_handle
388 type(kim_species_name_type), intent(in) :: species_name
389 integer(c_int), intent(in) :: code
390 integer(c_int), intent(out) :: ierr
391 type(kim_model_create_type), pointer :: model_create
392
393 call c_f_pointer(model_create_handle%p, model_create)
394 ierr = set_species_code(model_create, species_name, code)
396
404 model_create_handle, int1, name, description, ierr)
405 use kim_interoperable_types_module, only: kim_model_create_type
406 implicit none
407 type(kim_model_create_handle_type), intent(in) :: model_create_handle
408 integer(c_int), intent(in), target :: int1(:)
409 character(len=*, kind=c_char), intent(in) :: name
410 character(len=*, kind=c_char), intent(in) :: description
411 integer(c_int), intent(out) :: ierr
412 type(kim_model_create_type), pointer :: model_create
413
414 call c_f_pointer(model_create_handle%p, model_create)
415 call set_parameter(model_create, size(int1, 1, c_int), int1, name, &
416 description, ierr)
417 return
418
419 contains
420 recursive subroutine set_parameter(model_create, extent, int1, name, &
421 description, ierr)
422 use kim_interoperable_types_module, only: kim_model_create_type
423 implicit none
424 interface
425 integer(c_int) recursive function set_parameter_pointer_integer( &
426 model_create, extent, ptr, name, description) &
427 bind(c, name="KIM_ModelCreate_SetParameterPointerInteger")
428 use, intrinsic :: iso_c_binding
429 use kim_interoperable_types_module, only: kim_model_create_type
430 implicit none
431 type(kim_model_create_type), intent(in) :: model_create
432 integer(c_int), intent(in), value :: extent
433 type(c_ptr), intent(in), value :: ptr
434 character(c_char), intent(in) :: name(*)
435 character(c_char), intent(in) :: description(*)
437 end interface
438 type(kim_model_create_type), intent(in) :: model_create
439 integer(c_int), intent(in) :: extent
440 integer(c_int), intent(in), target :: int1(extent)
441 character(len=*, kind=c_char), intent(in) :: name
442 character(len=*, kind=c_char), intent(in) :: description
443 integer(c_int), intent(out) :: ierr
444
445 ierr = set_parameter_pointer_integer(model_create, &
446 extent, &
447 c_loc(int1), &
448 trim(name)//c_null_char, &
449 trim(description)//c_null_char)
450 end subroutine set_parameter
452
460 model_create_handle, double1, name, description, ierr)
461 use kim_interoperable_types_module, only: kim_model_create_type
462 implicit none
463 type(kim_model_create_handle_type), intent(in) :: model_create_handle
464 real(c_double), intent(in), target :: double1(:)
465 character(len=*, kind=c_char), intent(in) :: name
466 character(len=*, kind=c_char), intent(in) :: description
467 integer(c_int), intent(out) :: ierr
468 type(kim_model_create_type), pointer :: model_create
469
470 call c_f_pointer(model_create_handle%p, model_create)
471 call set_parameter(model_create, size(double1, 1, c_int), double1, &
472 name, description, ierr)
473 return
474
475 contains
476 recursive subroutine set_parameter(model_create, extent, double1, name, &
477 description, ierr)
478 implicit none
479 interface
480 integer(c_int) recursive function set_parameter_pointer_double( &
481 model_create, extent, ptr, name, description) &
482 bind(c, name="KIM_ModelCreate_SetParameterPointerDouble")
483 use, intrinsic :: iso_c_binding
484 use kim_interoperable_types_module, only: kim_model_create_type
485 implicit none
486 type(kim_model_create_type), intent(in) :: model_create
487 integer(c_int), intent(in), value :: extent
488 type(c_ptr), intent(in), value :: ptr
489 character(c_char), intent(in) :: name(*)
490 character(c_char), intent(in) :: description(*)
491 end function set_parameter_pointer_double
492 end interface
493 type(kim_model_create_type), intent(in) :: model_create
494 integer(c_int), intent(in) :: extent
495 real(c_double), intent(in), target :: double1(extent)
496 character(len=*, kind=c_char), intent(in) :: name
497 character(len=*, kind=c_char), intent(in) :: description
498 integer(c_int), intent(out) :: ierr
499
500 ierr = set_parameter_pointer_double(model_create, &
501 extent, &
502 c_loc(double1), &
503 trim(name)//c_null_char, &
504 trim(description)//c_null_char)
505 end subroutine set_parameter
507
515 model_create_handle, ptr)
516 use kim_interoperable_types_module, only: kim_model_create_type
517 implicit none
518 interface
519 recursive subroutine set_model_buffer_pointer(model_create, ptr) &
520 bind(c, name="KIM_ModelCreate_SetModelBufferPointer")
521 use, intrinsic :: iso_c_binding
522 use kim_interoperable_types_module, only: kim_model_create_type
523 implicit none
524 type(kim_model_create_type), intent(in) :: model_create
525 type(c_ptr), intent(in), value :: ptr
526 end subroutine set_model_buffer_pointer
527 end interface
528 type(kim_model_create_handle_type), intent(in) :: model_create_handle
529 type(c_ptr), intent(in) :: ptr
530 type(kim_model_create_type), pointer :: model_create
531
532 call c_f_pointer(model_create_handle%p, model_create)
535
541 recursive subroutine kim_model_create_set_units( &
542 model_create_handle, length_unit, energy_unit, charge_unit, &
543 temperature_unit, time_unit, ierr)
544 use kim_unit_system_module, only: &
545 kim_length_unit_type, &
546 kim_energy_unit_type, &
547 kim_charge_unit_type, &
548 kim_temperature_unit_type, &
549 kim_time_unit_type
550 use kim_interoperable_types_module, only: kim_model_create_type
551 implicit none
552 interface
553 integer(c_int) recursive function set_units( &
554 model_create, length_unit, energy_unit, charge_unit, temperature_unit, &
555 time_unit) bind(c, name="KIM_ModelCreate_SetUnits")
556 use, intrinsic :: iso_c_binding
557 use kim_unit_system_module, only: kim_length_unit_type, &
558 kim_energy_unit_type, &
559 kim_charge_unit_type, &
560 kim_temperature_unit_type, &
561 kim_time_unit_type
562 use kim_interoperable_types_module, only: kim_model_create_type
563 implicit none
564 type(kim_model_create_type), intent(in) :: model_create
565 type(kim_length_unit_type), intent(in), value :: length_unit
566 type(kim_energy_unit_type), intent(in), value :: energy_unit
567 type(kim_charge_unit_type), intent(in), value :: charge_unit
568 type(kim_temperature_unit_type), intent(in), value :: temperature_unit
569 type(kim_time_unit_type), intent(in), value :: time_unit
570 end function set_units
571 end interface
572 type(kim_model_create_handle_type), intent(in) :: model_create_handle
573 type(kim_length_unit_type), intent(in) :: length_unit
574 type(kim_energy_unit_type), intent(in) :: energy_unit
575 type(kim_charge_unit_type), intent(in) :: charge_unit
576 type(kim_temperature_unit_type), intent(in) :: temperature_unit
577 type(kim_time_unit_type), intent(in) :: time_unit
578 integer(c_int), intent(out) :: ierr
579 type(kim_model_create_type), pointer :: model_create
580
581 call c_f_pointer(model_create_handle%p, model_create)
582 ierr = set_units(model_create, length_unit, energy_unit, &
583 charge_unit, temperature_unit, time_unit)
584 end subroutine kim_model_create_set_units
585
591 recursive subroutine kim_model_create_convert_unit( &
592 from_length_unit, from_energy_unit, &
593 from_charge_unit, from_temperature_unit, from_time_unit, &
594 to_length_unit, to_energy_unit, to_charge_unit, to_temperature_unit, &
595 to_time_unit, length_exponent, energy_exponent, charge_exponent, &
596 temperature_exponent, time_exponent, conversion_factor, ierr)
597 use kim_unit_system_module, only: kim_length_unit_type
598 use kim_unit_system_module, only: kim_energy_unit_type
599 use kim_unit_system_module, only: kim_charge_unit_type
600 use kim_unit_system_module, only: kim_temperature_unit_type
601 use kim_unit_system_module, only: kim_time_unit_type
602 implicit none
603 interface
604 integer(c_int) recursive function convert_unit( &
605 from_length_unit, from_energy_unit, &
606 from_charge_unit, from_temperature_unit, from_time_unit, &
607 to_length_unit, to_energy_unit, to_charge_unit, to_temperature_unit, &
608 to_time_unit, length_exponent, energy_exponent, charge_exponent, &
609 temperature_exponent, time_exponent, conversion_factor) &
610 bind(c, name="KIM_ModelCreate_ConvertUnit")
611 use, intrinsic :: iso_c_binding
612 use kim_unit_system_module, only: kim_length_unit_type
613 use kim_unit_system_module, only: kim_energy_unit_type
614 use kim_unit_system_module, only: kim_charge_unit_type
615 use kim_unit_system_module, only: kim_temperature_unit_type
616 use kim_unit_system_module, only: kim_time_unit_type
617 implicit none
618 type(kim_length_unit_type), intent(in), value :: from_length_unit
619 type(kim_energy_unit_type), intent(in), value :: from_energy_unit
620 type(kim_charge_unit_type), intent(in), value :: from_charge_unit
621 type(kim_temperature_unit_type), intent(in), value :: &
622 from_temperature_unit
623 type(kim_time_unit_type), intent(in), value :: from_time_unit
624 type(kim_length_unit_type), intent(in), value :: to_length_unit
625 type(kim_energy_unit_type), intent(in), value :: to_energy_unit
626 type(kim_charge_unit_type), intent(in), value :: to_charge_unit
627 type(kim_temperature_unit_type), intent(in), value :: &
628 to_temperature_unit
629 type(kim_time_unit_type), intent(in), value :: to_time_unit
630 real(c_double), intent(in), value :: length_exponent
631 real(c_double), intent(in), value :: energy_exponent
632 real(c_double), intent(in), value :: charge_exponent
633 real(c_double), intent(in), value :: temperature_exponent
634 real(c_double), intent(in), value :: time_exponent
635 real(c_double), intent(out) :: conversion_factor
636 end function convert_unit
637 end interface
638 type(kim_length_unit_type), intent(in) :: from_length_unit
639 type(kim_energy_unit_type), intent(in) :: from_energy_unit
640 type(kim_charge_unit_type), intent(in) :: from_charge_unit
641 type(kim_temperature_unit_type), intent(in) :: from_temperature_unit
642 type(kim_time_unit_type), intent(in) :: from_time_unit
643 type(kim_length_unit_type), intent(in) :: to_length_unit
644 type(kim_energy_unit_type), intent(in) :: to_energy_unit
645 type(kim_charge_unit_type), intent(in) :: to_charge_unit
646 type(kim_temperature_unit_type), intent(in) :: to_temperature_unit
647 type(kim_time_unit_type), intent(in) :: to_time_unit
648 real(c_double), intent(in) :: length_exponent
649 real(c_double), intent(in) :: energy_exponent
650 real(c_double), intent(in) :: charge_exponent
651 real(c_double), intent(in) :: temperature_exponent
652 real(c_double), intent(in) :: time_exponent
653 real(c_double), intent(out) :: conversion_factor
654 integer(c_int), intent(out) :: ierr
655
656 ierr = convert_unit(from_length_unit, from_energy_unit, from_charge_unit, &
657 from_temperature_unit, from_time_unit, to_length_unit, &
658 to_energy_unit, to_charge_unit, to_temperature_unit, &
659 to_time_unit, length_exponent, energy_exponent, &
660 charge_exponent, temperature_exponent, time_exponent, &
661 conversion_factor)
662 end subroutine kim_model_create_convert_unit
663
669 recursive subroutine kim_model_create_log_entry(model_create_handle, &
670 log_verbosity, message)
672 use kim_interoperable_types_module, only: kim_model_create_type
673 implicit none
674 interface
675 recursive subroutine log_entry(model_create, log_verbosity, message, &
676 line_number, file_name) &
677 bind(c, name="KIM_ModelCreate_LogEntry")
678 use, intrinsic :: iso_c_binding
680 use kim_interoperable_types_module, only: kim_model_create_type
681 implicit none
682 type(kim_model_create_type), intent(in) :: model_create
683 type(kim_log_verbosity_type), intent(in), value :: log_verbosity
684 character(c_char), intent(in) :: message(*)
685 integer(c_int), intent(in), value :: line_number
686 character(c_char), intent(in) :: file_name(*)
687 end subroutine log_entry
688 end interface
689 type(kim_model_create_handle_type), intent(in) :: model_create_handle
690 type(kim_log_verbosity_type), intent(in) :: log_verbosity
691 character(len=*, kind=c_char), intent(in) :: message
692 type(kim_model_create_type), pointer :: model_create
693
694 call c_f_pointer(model_create_handle%p, model_create)
695 call log_entry(model_create, log_verbosity, trim(message)//c_null_char, &
696 0, ""//c_null_char)
697 end subroutine kim_model_create_log_entry
698
704 recursive subroutine kim_model_create_to_string(model_create_handle, string)
705 use kim_convert_string_module, only: kim_convert_c_char_ptr_to_string
706 use kim_interoperable_types_module, only: kim_model_create_type
707 implicit none
708 interface
709 type(c_ptr) recursive function model_create_string(model_create) &
710 bind(c, name="KIM_ModelCreate_ToString")
711 use, intrinsic :: iso_c_binding
712 use kim_interoperable_types_module, only: kim_model_create_type
713 implicit none
714 type(kim_model_create_type), intent(in) :: model_create
715 end function model_create_string
716 end interface
717 type(kim_model_create_handle_type), intent(in) :: model_create_handle
718 character(len=*, kind=c_char), intent(out) :: string
719 type(kim_model_create_type), pointer :: model_create
720
721 type(c_ptr) :: p
722
723 call c_f_pointer(model_create_handle%p, model_create)
725 call kim_convert_c_char_ptr_to_string(p, string)
726 end subroutine kim_model_create_to_string
int model_create(KIM_ModelCreate *const modelCreate, KIM_LengthUnit const requestedLengthUnit, KIM_EnergyUnit const requestedEnergyUnit, KIM_ChargeUnit const requestedChargeUnit, KIM_TemperatureUnit const requestedTemperatureUnit, KIM_TimeUnit const requestedTimeUnit)
Get the multiplicative factor to convert between a derived unit represented in two different sets of ...
Write a log entry into the log file.
Set the Model's influence distance data pointer.
Set the Model's buffer pointer within the Model object.
Set the next parameter data pointer to be provided by the model.
Set the function pointer for the ModelRoutineName of interest.
Set integer code for supported SpeciesName.
Get a string representing the internal state of the Model object.
recursive subroutine set_parameter(model_create, extent, int1, name, description, ierr)
An Extensible Enumeration for the LanguageName's supported by the KIM API.
An Extensible Enumeration for the LogVerbosity's supported by the KIM API.
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
type(kim_model_create_handle_type), save, public, protected kim_model_create_null_handle
NULL handle for use in comparisons.
recursive subroutine kim_model_create_set_parameter_pointer_double(model_create_handle, double1, name, description, ierr)
Set the next parameter data pointer to be provided by the model.
recursive subroutine kim_model_create_log_entry(model_create_handle, log_verbosity, message)
Write a log entry into the log file.
recursive subroutine kim_model_create_set_neighbor_list_pointers(model_create_handle, number_of_neighbor_lists, cutoffs, model_will_not_request_neighbors_of_noncontributing_particles)
Set the Model's neighbor list data pointers.
recursive subroutine kim_model_create_set_influence_distance_pointer(model_create_handle, influence_distance)
Set the Model's influence distance data pointer.
recursive subroutine kim_model_create_convert_unit(from_length_unit, from_energy_unit, from_charge_unit, from_temperature_unit, from_time_unit, to_length_unit, to_energy_unit, to_charge_unit, to_temperature_unit, to_time_unit, length_exponent, energy_exponent, charge_exponent, temperature_exponent, time_exponent, conversion_factor, ierr)
Get the multiplicative factor to convert between a derived unit represented in two different sets of ...
recursive subroutine kim_model_create_set_routine_pointer(model_create_handle, model_routine_name, language_name, required, fptr, ierr)
Set the function pointer for the ModelRoutineName of interest.
recursive subroutine kim_model_create_set_model_buffer_pointer(model_create_handle, ptr)
Set the Model's buffer pointer within the Model object.
recursive subroutine kim_model_create_set_units(model_create_handle, length_unit, energy_unit, charge_unit, temperature_unit, time_unit, ierr)
Set the Model's base unit values.
recursive subroutine kim_model_create_to_string(model_create_handle, string)
Get a string representing the internal state of the Model object.
recursive subroutine kim_model_create_set_parameter_pointer_integer(model_create_handle, int1, name, description, ierr)
Set the next parameter data pointer to be provided by the model.
recursive subroutine kim_model_create_set_species_code(model_create_handle, species_name, code, ierr)
Set integer code for supported SpeciesName.
An Extensible Enumeration for the ModelRoutineName's supported by the KIM API.
An Extensible Enumeration for the Numbering's supported by the KIM API.
An Extensible Enumeration for the SpeciesName's supported by the KIM API.
An Extensible Enumeration for the LanguageName's supported by the KIM API.
An Extensible Enumeration for the LogVerbosity's supported by the KIM API.
Provides the interface to a KIM API Model object for use by models within their MODEL_ROUTINE_NAME::C...
An Extensible Enumeration for the ModelRoutineName's supported by the KIM API.
An Extensible Enumeration for the Numbering's supported by the KIM API.
An Extensible Enumeration for the SpeciesName's supported by the KIM API.