nf_dynbuf_cl.f90 851 B

123456789101112131415161718192021222324
  1. module nf_dynbuf_cl
  2. contains
  3. recursive subroutine cl_cpu_func_dynbuf_big (buffers, cl_args) bind(C)
  4. use iso_c_binding ! C interfacing module
  5. use fstarpu_mod ! StarPU interfacing module
  6. implicit none
  7. type(c_ptr), value, intent(in) :: buffers, cl_args ! cl_args is unused
  8. integer(c_int),target :: nb_data
  9. integer(c_int),pointer :: val
  10. integer(c_int) :: i
  11. call fstarpu_unpack_arg(cl_args,(/ c_loc(nb_data) /))
  12. write(*,*) "number of data:", nb_data
  13. do i=0,nb_data-1
  14. call c_f_pointer(fstarpu_variable_get_ptr(buffers, i), val)
  15. write(*,*) "i:", i, ", val:", val
  16. if (val /= 42) then
  17. stop 1
  18. end if
  19. end do
  20. end subroutine cl_cpu_func_dynbuf_big
  21. end module nf_dynbuf_cl