35 use,
intrinsic :: iso_c_binding
40 kim_model_refresh_handle_type, &
44 kim_model_refresh_set_influence_distance_pointer, &
45 kim_model_refresh_set_neighbor_list_pointers, &
46 kim_model_refresh_get_model_buffer_pointer, &
47 kim_model_refresh_log_entry, &
50 type, bind(c) :: kim_model_refresh_handle_type
51 type(c_ptr) :: p = c_null_ptr
52 end type kim_model_refresh_handle_type
54 type(kim_model_refresh_handle_type),
protected &
57 Interface operator (.eq.)
58 logical function kim_model_refresh_handle_equal(left, right)
59 use,
intrinsic :: iso_c_binding
60 import kim_model_refresh_handle_type
62 type(kim_model_refresh_handle_type),
intent(in) :: left
63 type(kim_model_refresh_handle_type),
intent(in) :: right
64 end function kim_model_refresh_handle_equal
65 end interface operator (.eq.)
67 interface operator (.ne.)
68 logical function kim_model_refresh_handle_not_equal(left, right)
69 use,
intrinsic :: iso_c_binding
70 import kim_model_refresh_handle_type
72 type(kim_model_refresh_handle_type),
intent(in) :: left
73 type(kim_model_refresh_handle_type),
intent(in) :: right
74 end function kim_model_refresh_handle_not_equal
75 end interface operator (.ne.)
78 subroutine kim_model_refresh_set_influence_distance_pointer(&
79 model_refresh_handle, influence_distance)
80 use,
intrinsic :: iso_c_binding
81 import kim_model_refresh_handle_type
83 type(kim_model_refresh_handle_type),
intent(in) :: &
85 real(c_double),
intent(in),
target :: influence_distance
86 end subroutine kim_model_refresh_set_influence_distance_pointer
88 subroutine kim_model_refresh_set_neighbor_list_pointers( &
89 model_refresh_handle, number_of_neighbor_lists, cutoffs, &
90 padding_neighbor_hints, half_list_hints)
91 use,
intrinsic :: iso_c_binding
92 import kim_model_refresh_handle_type
94 type(kim_model_refresh_handle_type),
intent(in) :: &
96 integer(c_int),
intent(in),
value :: number_of_neighbor_lists
97 real(c_double),
intent(in),
target :: cutoffs(number_of_neighbor_lists)
98 integer(c_int),
intent(in),
target :: &
99 padding_neighbor_hints(number_of_neighbor_lists)
100 integer(c_int),
intent(in),
target :: &
101 half_list_hints(number_of_neighbor_lists)
102 end subroutine kim_model_refresh_set_neighbor_list_pointers
104 subroutine kim_model_refresh_get_model_buffer_pointer( &
105 model_refresh_handle, ptr)
106 use,
intrinsic :: iso_c_binding
107 import kim_model_refresh_handle_type
109 type(kim_model_refresh_handle_type),
intent(in) :: &
111 type(c_ptr),
intent(out) :: ptr
112 end subroutine kim_model_refresh_get_model_buffer_pointer
114 subroutine kim_model_refresh_log_entry(model_refresh_handle, &
115 log_verbosity, message, line_number, file_name)
116 use,
intrinsic :: iso_c_binding
118 import kim_model_refresh_handle_type
120 type(kim_model_refresh_handle_type),
intent(in) :: &
122 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
123 character(len=*, kind=c_char),
intent(in) :: message
124 integer(c_int),
intent(in),
value :: line_number
125 character(len=*, kind=c_char),
intent(in) :: file_name
126 end subroutine kim_model_refresh_log_entry
129 use,
intrinsic :: iso_c_binding
130 import kim_model_refresh_handle_type
132 type(kim_model_refresh_handle_type),
intent(in) :: &
134 character(len=*, kind=c_char),
intent(out) :: string
type(kim_model_refresh_handle_type), public, protected kim_model_refresh_null_handle