nf_partition_cl.f90 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ! StarPU --- Runtime system for heterogeneous multicore architectures.
  2. !
  3. ! Copyright (C) 2017 CNRS
  4. ! Copyright (C) 2016 Inria
  5. !
  6. ! StarPU is free software; you can redistribute it and/or modify
  7. ! it under the terms of the GNU Lesser General Public License as published by
  8. ! the Free Software Foundation; either version 2.1 of the License, or (at
  9. ! your option) any later version.
  10. !
  11. ! StarPU is distributed in the hope that it will be useful, but
  12. ! WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. !
  15. ! See the GNU Lesser General Public License in COPYING.LGPL for more details.
  16. !
  17. module nf_partition_cl
  18. contains
  19. ! 'cl_partition' codelet routine
  20. recursive subroutine cl_partition_func (buffers, cl_args) bind(C)
  21. use iso_c_binding ! C interfacing module
  22. use fstarpu_mod ! StarPU interfacing module
  23. implicit none
  24. type(c_ptr), value, intent(in) :: buffers, cl_args ! cl_args is unused
  25. real(8), dimension(:,:), pointer :: ma
  26. integer :: ld_ma,nx_ma,ny_ma
  27. integer :: i,j
  28. ld_ma = fstarpu_matrix_get_ld(buffers, 0)
  29. nx_ma = fstarpu_matrix_get_nx(buffers, 0)
  30. ny_ma = fstarpu_matrix_get_ny(buffers, 0)
  31. write(*,*) "ld_ma = ", ld_ma, ", nx_ma = ", nx_ma, ", ny_ma = ", ny_ma
  32. call c_f_pointer(fstarpu_matrix_get_ptr(buffers, 0), ma, shape=[ld_ma,ny_ma])
  33. write(*,*) "ma"
  34. do i=1,nx_ma
  35. do j=1,ny_ma
  36. write(*,*) i,j,ma(i,j)
  37. end do
  38. write(*,*) '-'
  39. end do
  40. end subroutine cl_partition_func
  41. end module nf_partition_cl