Просмотр исходного кода

use assumed-size instead of assumed-shape arrays for native fortran API, for better backward compatibility

Olivier Aumage лет назад: 8
Родитель
Сommit
950d269178
4 измененных файлов с 7 добавлено и 10 удалено
  1. 4 4
      include/fstarpu_mod.f90
  2. 1 2
      src/core/sched_ctx.c
  3. 1 2
      src/util/fstarpu.c
  4. 1 2
      src/util/starpu_task_insert_utils.c

+ 4 - 4
include/fstarpu_mod.f90

@@ -1647,17 +1647,17 @@ module fstarpu_mod
 
                 subroutine fstarpu_task_insert(arglist) bind(C)
                         use iso_c_binding, only: c_ptr
-                        type(c_ptr), dimension(:), intent(in) :: arglist
+                        type(c_ptr), dimension(*), intent(in) :: arglist
                 end subroutine fstarpu_task_insert
                 subroutine fstarpu_insert_task(arglist) bind(C,name="fstarpu_task_insert")
                         use iso_c_binding, only: c_ptr
-                        type(c_ptr), dimension(:), intent(in) :: arglist
+                        type(c_ptr), dimension(*), intent(in) :: arglist
                 end subroutine fstarpu_insert_task
 
                 subroutine fstarpu_unpack_arg(cl_arg,bufferlist) bind(C)
                         use iso_c_binding, only: c_ptr
                         type(c_ptr), value, intent(in) :: cl_arg
-                        type(c_ptr), dimension(:), intent(in) :: bufferlist
+                        type(c_ptr), dimension(*), intent(in) :: bufferlist
                 end subroutine fstarpu_unpack_arg
 
                 ! == starpu_sched_ctx.h ==
@@ -1669,7 +1669,7 @@ module fstarpu_mod
                         integer(c_int), intent(in) :: workers_array(*)
                         integer(c_int), value, intent(in) :: nworkers
                         character(c_char), intent(in) :: ctx_name
-                        type(c_ptr), dimension(:), intent(in) :: arglist
+                        type(c_ptr), dimension(*), intent(in) :: arglist
                 end function fstarpu_sched_ctx_create
 
                 ! unsigned starpu_sched_ctx_create_inside_interval(const char *policy_name, const char *sched_ctx_name, int min_ncpus, int max_ncpus, int min_ngpus, int max_ngpus, unsigned allow_overlap);

+ 1 - 2
src/core/sched_ctx.c

@@ -899,9 +899,8 @@ unsigned starpu_sched_ctx_create(int *workerids, int nworkers, const char *sched
 	return sched_ctx->id;
 }
 
-int fstarpu_sched_ctx_create(int *workerids, int nworkers, const char *sched_ctx_name, void ***_arglist)
+int fstarpu_sched_ctx_create(int *workerids, int nworkers, const char *sched_ctx_name, void **arglist)
 {
-	void **arglist = *_arglist;
 	int arg_i = 0;
 	int min_prio_set = 0;
 	int max_prio_set = 0;

+ 1 - 2
src/util/fstarpu.c

@@ -480,9 +480,8 @@ void fstarpu_data_acquire(starpu_data_handle_t handle, intptr_t mode)
 	starpu_data_acquire(handle, (int)mode);
 }
 
-void fstarpu_unpack_arg(char *cl_arg, void ***_buffer_list)
+void fstarpu_unpack_arg(char *cl_arg, void **buffer_list)
 {
-	void **buffer_list = *_buffer_list;
 	size_t current_arg_offset = 0;
 	int nargs, arg;
 

+ 1 - 2
src/util/starpu_task_insert_utils.c

@@ -697,9 +697,8 @@ int _fstarpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 }
 
 /* Fortran interface to task_insert */
-void fstarpu_task_insert(void ***_arglist)
+void fstarpu_task_insert(void **arglist)
 {
-	void **arglist = *_arglist;
 	struct starpu_codelet *cl = arglist[0];
 	if (cl == NULL)
 	{