diff options
Diffstat (limited to 'libraries/scafacos/scafacos-1.0.1.fix.diff')
-rw-r--r-- | libraries/scafacos/scafacos-1.0.1.fix.diff | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/libraries/scafacos/scafacos-1.0.1.fix.diff b/libraries/scafacos/scafacos-1.0.1.fix.diff new file mode 100644 index 0000000000..1307e4d841 --- /dev/null +++ b/libraries/scafacos/scafacos-1.0.1.fix.diff @@ -0,0 +1,188 @@ +--- ./lib/fmm/src/mp_wrapper.f90 ++++ ./lib/fmm/src/mp_wrapper.f90 +index c78178b..6a3c403 100644 +--- a/lib/fmm/src/mp_wrapper.f90 ++++ b/lib/fmm/src/mp_wrapper.f90 +@@ -491,7 +491,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp +- ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ integer(kind=8) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + elem_tmp = 1 + + call mpi_allreduce(MPI_IN_PLACE,dst,elem_tmp,MPI_INTEGER8,op,comm,ierr) +@@ -510,6 +515,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ integer(kind=8), dimension(*) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + elem_tmp = elem + +@@ -528,6 +539,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode):: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ real(kind=4) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + elem_tmp = 1 + +@@ -547,6 +564,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ real(kind=4), dimension(*) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + elem_tmp = elem + +@@ -566,6 +589,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ real(kind=4), dimension(*) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + lo = lbound(dst,1) + hi = ubound(dst,1) +@@ -586,6 +615,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode):: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ real(kind=8) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + elem_tmp = 1 + +@@ -605,6 +640,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ real(kind=8), dimension(*) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + elem_tmp = elem + +@@ -624,6 +665,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allreduce(send,recv,num,rtype,rop,rcomm,rerr) ++ real(kind=8), dimension(*) :: recv ++ integer(kind=4) :: send, num, rop, rtype, rcomm, rerr ++ end subroutine mpi_allreduce ++ end interface + + lo = lbound(dst,1) + hi = ubound(dst,1) +@@ -648,6 +695,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode):: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allgather(send,snum,stype,recv,rnum,rtype,gcomm,gerr) ++ byte, dimension(*) :: recv ++ integer(kind=4) :: send, snum, rnum, stype, rtype, gcomm, gerr ++ end subroutine mpi_allgather ++ end interface + + lo = lbound(dst,1) + hi = ubound(dst,1) +@@ -668,6 +721,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode):: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allgather(send,snum,stype,recv,rnum,rtype,gcomm,gerr) ++ byte, dimension(*) :: recv ++ integer(kind=4) :: send, snum, rnum, stype, rtype, gcomm, gerr ++ end subroutine mpi_allgather ++ end interface + + lo1 = lbound(dst,1) + hi1 = ubound(dst,1) +@@ -690,6 +749,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allgather(send,snum,stype,recv,rnum,rtype,gcomm,gerr) ++ real(kind=4), dimension(*) :: recv ++ integer(kind=4) :: send, snum, rnum, stype, rtype, gcomm, gerr ++ end subroutine mpi_allgather ++ end interface + + elem_tmp = elem + +@@ -708,6 +773,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allgather(send,snum,stype,recv,rnum,rtype,gcomm,gerr) ++ integer(kind=8), dimension(*) :: recv ++ integer(kind=4) :: send, snum, rnum, stype, rtype, gcomm, gerr ++ end subroutine mpi_allgather ++ end interface + + elem_tmp = elem + +@@ -726,6 +797,12 @@ implicit none + integer(MyMPI_Comm) :: comm + integer(MyMPI_Errorcode) :: ierr,ierr2 + integer(MyMPI_Entries) :: elem_tmp ++ interface ++ subroutine mpi_allgather(send,snum,stype,recv,rnum,rtype,gcomm,gerr) ++ integer(kind=8), dimension(*) :: recv ++ integer(kind=4) :: send, snum, rnum, stype, rtype, gcomm, gerr ++ end subroutine mpi_allgather ++ end interface + + lo = lbound(dst,1) + hi = ubound(dst,1) +diff --git a/src/fcs_fmm.c b/src/fcs_fmm.c +index 37acb67..10bbd10 100644 +--- a/src/fcs_fmm.c ++++ b/src/fcs_fmm.c +@@ -430,7 +430,7 @@ FCSResult fcs_fmm_tune(FCS handle, fcs_int local_particles, fcs_float *positions + return FCS_RESULT_SUCCESS; + } + +-int fcs_mpi_fmm_sort_front_part, fcs_mpi_fmm_sort_back_part, fcs_mpi_fmm_sort_front_merge_presorted; ++extern int fcs_mpi_fmm_sort_front_part, fcs_mpi_fmm_sort_back_part, fcs_mpi_fmm_sort_front_merge_presorted; + + /* internal fmm-specific run function */ + FCSResult fcs_fmm_run(FCS handle, fcs_int local_particles, |