36 use,
intrinsic :: iso_c_binding
60 type,
bind(c) :: kim_model_write_parameterized_model_handle_type
61 type(c_ptr) :: p = c_null_ptr
74 interface operator(.eq.)
75 module procedure kim_model_write_parameterized_model_handle_equal
76 end interface operator(.eq.)
82 interface operator(.ne.)
83 module procedure kim_model_write_parameterized_model_handle_not_equal
84 end interface operator(.ne.)
93 module procedure kim_model_write_parameterized_model_get_path
152 logical recursive function kim_model_write_parameterized_model_handle_equal( &
155 type(kim_model_write_parameterized_model_handle_type),
intent(in) :: lhs
156 type(kim_model_write_parameterized_model_handle_type),
intent(in) :: rhs
158 if ((.not. c_associated(lhs%p)) .and. (.not. c_associated(rhs%p)))
then
159 kim_model_write_parameterized_model_handle_equal = .true.
161 kim_model_write_parameterized_model_handle_equal = &
162 c_associated(lhs%p, rhs%p)
164 end function kim_model_write_parameterized_model_handle_equal
170 logical recursive function &
171 kim_model_write_parameterized_model_handle_not_equal(lhs, rhs)
173 type(kim_model_write_parameterized_model_handle_type),
intent(in) :: lhs
174 type(kim_model_write_parameterized_model_handle_type),
intent(in) :: rhs
176 kim_model_write_parameterized_model_handle_not_equal = .not. (lhs == rhs)
177 end function kim_model_write_parameterized_model_handle_not_equal
185 recursive subroutine kim_model_write_parameterized_model_get_path( &
186 model_write_parameterized_model_handle, path)
187 use kim_convert_string_module,
only: kim_convert_c_char_ptr_to_string
188 use kim_interoperable_types_module,
only: &
189 kim_model_write_parameterized_model_type
192 recursive subroutine get_path(model_write_parameterized_model, path) &
193 bind(c, name="KIM_ModelWriteParameterizedModel_GetPath")
194 use,
intrinsic :: iso_c_binding
195 use kim_interoperable_types_module,
only: &
196 kim_model_write_parameterized_model_type
198 type(kim_model_write_parameterized_model_type),
intent(in) &
199 :: model_write_parameterized_model
200 type(c_ptr),
intent(out) :: path
203 type(kim_model_write_parameterized_model_handle_type),
intent(in) &
204 :: model_write_parameterized_model_handle
205 character(len=*, kind=c_char),
intent(out) :: path
206 type(kim_model_write_parameterized_model_type),
pointer &
207 :: model_write_parameterized_model
211 call c_f_pointer(model_write_parameterized_model_handle%p, &
212 model_write_parameterized_model)
213 call get_path(model_write_parameterized_model, ppath)
214 call kim_convert_c_char_ptr_to_string(ppath, path)
215 end subroutine kim_model_write_parameterized_model_get_path
224 model_write_parameterized_model_handle, model_name)
225 use kim_convert_string_module,
only: kim_convert_c_char_ptr_to_string
226 use kim_interoperable_types_module,
only: &
227 kim_model_write_parameterized_model_type
232 bind(c, name="KIM_ModelWriteParameterizedModel_GetModelName")
233 use,
intrinsic :: iso_c_binding
234 use kim_interoperable_types_module,
only: &
235 kim_model_write_parameterized_model_type
237 type(kim_model_write_parameterized_model_type),
intent(in) &
238 :: model_write_parameterized_model
239 type(c_ptr),
intent(out) :: model_name
242 type(kim_model_write_parameterized_model_handle_type),
intent(in) &
243 :: model_write_parameterized_model_handle
244 character(len=*, kind=c_char),
intent(out) :: model_name
245 type(kim_model_write_parameterized_model_type),
pointer &
246 :: model_write_parameterized_model
248 type(c_ptr) :: pmodel_name
250 call c_f_pointer(model_write_parameterized_model_handle%p, &
251 model_write_parameterized_model)
253 call kim_convert_c_char_ptr_to_string(pmodel_name, model_name)
262 recursive subroutine &
264 model_write_parameterized_model_handle, file_name)
265 use kim_interoperable_types_module,
only: &
266 kim_model_write_parameterized_model_type
270 model_write_parameterized_model, file_name) &
271 bind(c, name="KIM_ModelWriteParameterizedModel_SetParameterFileName")
272 use,
intrinsic :: iso_c_binding
273 use kim_interoperable_types_module,
only: &
274 kim_model_write_parameterized_model_type
276 type(kim_model_write_parameterized_model_type),
intent(in) &
277 :: model_write_parameterized_model
278 character(c_char),
intent(in) :: file_name(*)
281 type(kim_model_write_parameterized_model_handle_type),
intent(in) &
282 :: model_write_parameterized_model_handle
283 character(len=*, kind=c_char),
intent(in) :: file_name
284 type(kim_model_write_parameterized_model_type),
pointer &
285 :: model_write_parameterized_model
287 call c_f_pointer(model_write_parameterized_model_handle%p, &
288 model_write_parameterized_model)
290 trim(file_name)//c_null_char)
299 recursive subroutine &
301 model_write_parameterized_model_handle, ptr)
302 use kim_interoperable_types_module,
only: &
303 kim_model_write_parameterized_model_type
307 model_write_parameterized_model, ptr) &
308 bind(c, name="KIM_ModelCompute_GetModelBufferPointer")
309 use,
intrinsic :: iso_c_binding
310 use kim_interoperable_types_module,
only: &
311 kim_model_write_parameterized_model_type
313 type(kim_model_write_parameterized_model_type),
intent(in) &
314 :: model_write_parameterized_model
315 type(c_ptr),
intent(out) :: ptr
319 :: model_write_parameterized_model_handle
320 type(c_ptr),
intent(out) :: ptr
321 type(kim_model_write_parameterized_model_type),
pointer &
322 :: model_write_parameterized_model
324 call c_f_pointer(model_write_parameterized_model_handle%p, &
325 model_write_parameterized_model)
336 model_write_parameterized_model_handle, log_verbosity, message)
338 use kim_interoperable_types_module,
only: &
339 kim_model_write_parameterized_model_type
343 model_write_parameterized_model, log_verbosity, message, line_number, &
344 file_name)
bind(c, name="KIM_ModelCompute_LogEntry")
345 use,
intrinsic :: iso_c_binding
347 use kim_interoperable_types_module,
only: &
348 kim_model_write_parameterized_model_type
350 type(kim_model_write_parameterized_model_type),
intent(in) &
351 :: model_write_parameterized_model
353 character(c_char),
intent(in) :: message(*)
354 integer(c_int),
intent(in),
value :: line_number
355 character(c_char),
intent(in) :: file_name(*)
359 :: model_write_parameterized_model_handle
360 type(kim_log_verbosity_type),
intent(in) :: log_verbosity
361 character(len=*, kind=c_char),
intent(in) :: message
362 type(kim_model_write_parameterized_model_type),
pointer &
363 :: model_write_parameterized_model
365 call c_f_pointer(model_write_parameterized_model_handle%p, &
366 model_write_parameterized_model)
367 call log_entry(model_write_parameterized_model, log_verbosity, &
368 trim(message)//c_null_char, 0,
""//c_null_char)
378 model_write_parameterized_model_handle, string)
379 use kim_convert_string_module,
only: kim_convert_c_char_ptr_to_string
380 use kim_interoperable_types_module,
only: &
381 kim_model_write_parameterized_model_type
384 type(c_ptr)
recursive function model_write_parameterized_model_string( &
385 model_write_parameterized_model) &
386 bind(c, name="KIM_ModelCompute_ToString")
387 use,
intrinsic :: iso_c_binding
388 use kim_interoperable_types_module,
only: &
389 kim_model_write_parameterized_model_type
391 type(kim_model_write_parameterized_model_type),
intent(in) &
392 :: model_write_parameterized_model
395 type(kim_model_write_parameterized_model_handle_type),
intent(in) &
396 :: model_write_parameterized_model_handle
397 character(len=*, kind=c_char),
intent(out) :: string
398 type(kim_model_write_parameterized_model_type),
pointer &
399 :: model_write_parameterized_model
403 call c_f_pointer(model_write_parameterized_model_handle%p, &
404 model_write_parameterized_model)
406 call kim_convert_c_char_ptr_to_string(p, string)
Get the Model's buffer pointer within the Model object.
Get the name of the new parameterized model.
Get the directory path where the parameterized model files should be written.
Write a log entry into the log file.
Set the file name for the next parameter file.
Get a string representing the internal state of the Model object.
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::W...
recursive subroutine kim_model_write_parameterized_model_log_entry(model_write_parameterized_model_handle, log_verbosity, message)
Write a log entry into the log file.
recursive subroutine kim_model_write_parameterized_model_get_model_name(model_write_parameterized_model_handle, model_name)
Get the name of the new parameterized model.
recursive subroutine kim_model_write_parameterized_model_to_string(model_write_parameterized_model_handle, string)
Get a string representing the internal state of the Model object.
recursive subroutine kim_model_write_parameterized_model_set_parameter_file_name(model_write_parameterized_model_handle, file_name)
Set the file name for the next parameter file.
type(kim_model_write_parameterized_model_handle_type), save, public, protected kim_model_write_parameterized_model_null_handle
NULL handle for use in comparisons.
recursive subroutine kim_model_write_parameterized_model_get_model_buffer_pointer(model_write_parameterized_model_handle, ptr)
Get the Model's buffer pointer within the Model object.
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::W...