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_cutoffs_pointer, &
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, &
55 bind(c,name=
"KIM_MODEL_REFRESH_null_handle") &
58 Interface operator (.eq.)
59 logical function kim_model_refresh_handle_equal(left, right)
60 use,
intrinsic :: iso_c_binding
61 import kim_model_refresh_handle_type
63 type(kim_model_refresh_handle_type),
intent(in) :: left
64 type(kim_model_refresh_handle_type),
intent(in) :: right
65 end function kim_model_refresh_handle_equal
66 end interface operator (.eq.)
68 interface operator (.ne.)
69 logical function kim_model_refresh_handle_not_equal(left, right)
70 use,
intrinsic :: iso_c_binding
71 import kim_model_refresh_handle_type
73 type(kim_model_refresh_handle_type),
intent(in) :: left
74 type(kim_model_refresh_handle_type),
intent(in) :: right
75 end function kim_model_refresh_handle_not_equal
76 end interface operator (.ne.)
79 subroutine kim_model_refresh_set_influence_distance_pointer(&
80 model_refresh_handle, influence_distance)
81 use,
intrinsic :: iso_c_binding
82 import kim_model_refresh_handle_type
84 type(kim_model_refresh_handle_type),
intent(in) :: &
86 real(c_double),
intent(in),
target :: influence_distance
87 end subroutine kim_model_refresh_set_influence_distance_pointer
89 subroutine kim_model_refresh_set_neighbor_list_cutoffs_pointer( &
90 model_refresh_handle, number_of_cutoffs, cutoffs)
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_cutoffs
97 real(c_double),
intent(in),
target :: cutoffs(number_of_cutoffs)
98 end subroutine kim_model_refresh_set_neighbor_list_cutoffs_pointer
100 subroutine kim_model_refresh_get_model_buffer_pointer( &
101 model_refresh_handle, ptr)
102 use,
intrinsic :: iso_c_binding
103 import kim_model_refresh_handle_type
105 type(kim_model_refresh_handle_type),
intent(in) :: &
107 type(c_ptr),
intent(out) :: ptr
108 end subroutine kim_model_refresh_get_model_buffer_pointer
110 subroutine kim_model_refresh_log_entry(model_refresh_handle, &
111 log_verbosity, message, line_number, file_name)
112 use,
intrinsic :: iso_c_binding
114 import kim_model_refresh_handle_type
116 type(kim_model_refresh_handle_type),
intent(in) :: &
118 type(kim_log_verbosity_type),
intent(in),
value :: log_verbosity
119 character(len=*),
intent(in) :: message
120 integer(c_int),
intent(in),
value :: line_number
121 character(len=*),
intent(in) :: file_name
122 end subroutine kim_model_refresh_log_entry
125 use,
intrinsic :: iso_c_binding
126 import kim_model_refresh_handle_type
128 type(kim_model_refresh_handle_type),
intent(in) :: &
130 character(len=*),
intent(out) :: string
type(kim_model_refresh_handle_type), public, protected kim_model_refresh_null_handle