mod_interface.f90 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. ! StarPU --- Runtime system for heterogeneous multicore architectures.
  2. !
  3. ! Copyright (C) 2015 ONERA
  4. ! Copyright (C) 2015 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. MODULE mod_interface
  17. INTERFACE
  18. SUBROUTINE starpu_register_element_c(Neq,Np,Ng,ro,dro,basis,ro_h,dro_h,basis_h) BIND(C)
  19. USE iso_c_binding
  20. INTEGER(KIND=C_INT),VALUE :: Neq,Np,Ng
  21. REAL(KIND=C_DOUBLE),DIMENSION(Neq,Np) :: ro,dro
  22. REAL(KIND=C_DOUBLE),DIMENSION(Np,Ng) :: basis
  23. TYPE(C_PTR), INTENT(OUT) :: ro_h, dro_h, basis_h
  24. END SUBROUTINE starpu_register_element_c
  25. END INTERFACE
  26. INTERFACE
  27. SUBROUTINE starpu_unregister_element_c( &
  28. ro_h,dro_h,basis_h) BIND(C)
  29. USE iso_c_binding
  30. TYPE(C_PTR), INTENT(IN) :: ro_h, dro_h, basis_h
  31. END SUBROUTINE starpu_unregister_element_c
  32. END INTERFACE
  33. INTERFACE
  34. SUBROUTINE starpu_loop_element_task_c(coeff, &
  35. ro_h,dro_h,basis_h) BIND(C)
  36. USE iso_c_binding
  37. REAL(KIND=C_DOUBLE),VALUE :: coeff
  38. TYPE(C_PTR), INTENT(IN) :: ro_h, dro_h, basis_h
  39. END SUBROUTINE starpu_loop_element_task_c
  40. END INTERFACE
  41. INTERFACE
  42. SUBROUTINE starpu_copy_element_task_c( &
  43. ro_h,dro_h) BIND(C)
  44. USE iso_c_binding
  45. TYPE(C_PTR), INTENT(IN) :: ro_h, dro_h
  46. END SUBROUTINE starpu_copy_element_task_c
  47. END INTERFACE
  48. INTERFACE
  49. FUNCTION starpu_init_c() BIND(C)
  50. USE iso_c_binding
  51. INTEGER(KIND=C_INT) :: main_starpu_init_c
  52. END FUNCTION starpu_init_c
  53. END INTERFACE
  54. INTERFACE starpu_task_wait_for_all_c
  55. SUBROUTINE starpu_task_wait_for_all() BIND(C)
  56. END SUBROUTINE starpu_task_wait_for_all
  57. END INTERFACE
  58. INTERFACE starpu_shutdown_c
  59. SUBROUTINE starpu_shutdown() BIND(C)
  60. END SUBROUTINE starpu_shutdown
  61. END INTERFACE
  62. END MODULE mod_interface