Thanks to Daniel Spangberg for noticing this problem in the f77
interface: - Fix the handling of MPI_BOTTOM in various places Update of r15030 - While being at it, handle MPI_IN_PLACE in the same way. Convert OMPI_ADDR -> OMPI_F2C_BOTTOM Convert OMPI_IN_PLACE -> OMPI_F2C_IN_PLACE and have them converted before the actual call. - Approved by George and tested with icc and simple f77 mpi-program and with program by Daniel. This commit was SVN r15129. The following SVN revision numbers were found above: r15030 --> open-mpi/ompi@15f9e58c68
Этот коммит содержится в:
родитель
858735c53c
Коммит
9b91ac2fa3
3
NEWS
3
NEWS
@ -32,6 +32,9 @@ Trunk (not on release branches yet)
|
||||
- Removed dependency on sysfsutils from the openib BTL for libibverbs
|
||||
>=v1.1 (i.e., OFED 1.2 and beyond).
|
||||
--> Expected 1.2.x
|
||||
- Fix a problem with MPI_BOTTOM in various places of the f77-interface.
|
||||
Thanks to Daniel Spangberg for bringing this up.
|
||||
--> Expected 1.2.x
|
||||
- Fix several problems with redirecting large files into mpirun's
|
||||
stdin.
|
||||
--> Expected 1.2.x
|
||||
|
@ -70,7 +70,7 @@ void mpi_accumulate_f(char *origin_addr, MPI_Fint *origin_count,
|
||||
MPI_Win c_win = MPI_Win_f2c(*win);
|
||||
MPI_Op c_op = MPI_Op_f2c(*op);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Accumulate(OMPI_ADDR(origin_addr),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Accumulate(OMPI_F2C_BOTTOM(origin_addr),
|
||||
OMPI_FINT_2_INT(*origin_count),
|
||||
c_origin_datatype,
|
||||
OMPI_FINT_2_INT(*target_rank),
|
||||
|
@ -69,14 +69,14 @@ void mpi_allgather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
c_sendtype = MPI_Type_f2c(*sendtype);
|
||||
c_recvtype = MPI_Type_f2c(*recvtype);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgather(OMPI_ADDR(sendbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgather(sendbuf,
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
OMPI_ADDR(recvbuf),
|
||||
recvbuf,
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype, c_comm));
|
||||
|
||||
|
@ -76,14 +76,14 @@ void mpi_allgatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
|
||||
OMPI_ARRAY_FINT_2_INT(displs, size);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgatherv(OMPI_ADDR(sendbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allgatherv(sendbuf,
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
OMPI_ADDR(recvbuf),
|
||||
recvbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(displs),
|
||||
c_recvtype, c_comm));
|
||||
|
@ -70,11 +70,11 @@ void mpi_allreduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
c_type = MPI_Type_f2c(*datatype);
|
||||
c_op = MPI_Op_f2c(*op);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allreduce(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Allreduce(sendbuf, recvbuf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op, c_comm));
|
||||
}
|
||||
|
@ -69,10 +69,14 @@ void mpi_alltoall_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
c_sendtype = MPI_Type_f2c(*sendtype);
|
||||
c_recvtype = MPI_Type_f2c(*recvtype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoall(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
OMPI_ADDR(recvbuf),
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype, c_comm));
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoall(sendbuf,
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
recvbuf,
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype, c_comm));
|
||||
}
|
||||
|
@ -81,12 +81,15 @@ void mpi_alltoallv_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls,
|
||||
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
|
||||
OMPI_ARRAY_FINT_2_INT(rdispls, size);
|
||||
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallv(OMPI_ADDR(sendbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallv(sendbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(sendcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(sdispls),
|
||||
c_sendtype,
|
||||
OMPI_ADDR(recvbuf),
|
||||
recvbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(rdispls),
|
||||
c_recvtype, c_comm));
|
||||
|
@ -89,11 +89,15 @@ void mpi_alltoallw_f(char *sendbuf, MPI_Fint *sendcounts,
|
||||
--size;
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallw(OMPI_ADDR(sendbuf),
|
||||
/* Alltoallw does not support MPI_IN_PLACE */
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Alltoallw(sendbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(sendcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(sdispls),
|
||||
c_sendtypes,
|
||||
OMPI_ADDR(recvbuf),
|
||||
recvbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(rdispls),
|
||||
c_recvtypes, c_comm));
|
||||
|
@ -67,7 +67,7 @@ void mpi_bcast_f(char *buffer, MPI_Fint *count, MPI_Fint *datatype,
|
||||
c_comm = MPI_Comm_f2c(*comm);
|
||||
c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bcast(OMPI_ADDR(buffer),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bcast(OMPI_F2C_BOTTOM(buffer),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
OMPI_FINT_2_INT(*root),
|
||||
|
@ -65,7 +65,7 @@ void mpi_bsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bsend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bsend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag), c_comm));
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ void mpi_bsend_init_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bsend_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Bsend_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
|
@ -89,7 +89,7 @@ OMPI_DECLSPEC extern type double_u
|
||||
|
||||
/* Note that the rationale for the types of each of these variables is
|
||||
discussed in ompi/include/mpif-common.h. Do not change the types
|
||||
without also changing ompi/mpi/runtime/ompi_mpi_init.c and
|
||||
without also changing ompi/runtime/ompi_mpi_init.c and
|
||||
ompi/include/mpif-common.h. */
|
||||
|
||||
DECL(int, MPI_FORTRAN_BOTTOM, mpi_fortran_bottom,
|
||||
@ -215,7 +215,7 @@ DECL(double, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
#endif /* weak / specific symbol type */
|
||||
|
||||
/* Convert between Fortran and C MPI_BOTTOM */
|
||||
#define OMPI_ADDR(addr) (OMPI_IS_FORTRAN_BOTTOM(addr) ? MPI_BOTTOM : (addr))
|
||||
#define OMPI_IN_PLACE(addr) (OMPI_IS_FORTRAN_IN_PLACE(addr) ? MPI_IN_PLACE : (addr))
|
||||
#define OMPI_F2C_BOTTOM(addr) (OMPI_IS_FORTRAN_BOTTOM(addr) ? MPI_BOTTOM : (addr))
|
||||
#define OMPI_F2C_IN_PLACE(addr) (OMPI_IS_FORTRAN_IN_PLACE(addr) ? MPI_IN_PLACE : (addr))
|
||||
|
||||
#endif /* OMPI_F77_CONSTANTS_H */
|
||||
|
@ -70,7 +70,11 @@ void mpi_exscan_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
c_type = MPI_Type_f2c(*datatype);
|
||||
c_op = MPI_Op_f2c(*op);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Exscan(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
/* MPI_IN_PLACE is not supported */
|
||||
sendbuf = OMPI_F2C_BOTTOM (sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM (recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Exscan(sendbuf, recvbuf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op, c_comm));
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ void mpi_file_iread_at_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
MPI_Request c_request;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iread_at(c_fh, (MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
&c_request));
|
||||
|
@ -65,7 +65,7 @@ void mpi_file_iread_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_request;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iread(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iread(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, &c_request));
|
||||
|
||||
|
@ -67,7 +67,7 @@ void mpi_file_iread_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Request c_request;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iread_shared(c_fh,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
&c_request));
|
||||
|
@ -67,7 +67,7 @@ void mpi_file_iwrite_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf,
|
||||
MPI_Request c_request;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iwrite_at(c_fh, (MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, &c_request));
|
||||
if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
|
||||
|
@ -64,7 +64,7 @@ void mpi_file_iwrite_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datat
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_request;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iwrite(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iwrite(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, &c_request));
|
||||
|
||||
|
@ -67,7 +67,7 @@ void mpi_file_iwrite_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_Request c_request;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_iwrite_shared(c_fh,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
&c_request));
|
||||
|
@ -65,7 +65,7 @@ void mpi_file_read_all_begin_f(MPI_Fint *fh, char *buf,
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_all_begin(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_all_begin(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ void mpi_file_read_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_all(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_all(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
|
@ -67,7 +67,7 @@ void mpi_file_read_at_all_begin_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_at_all_begin(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ void mpi_file_read_at_all_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_at_all(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
@ -86,7 +86,7 @@ void mpi_file_read_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
|
@ -64,7 +64,7 @@ void mpi_file_read_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_ordered_begin(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_read_ordered_begin(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ void mpi_file_read_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_ordered(c_fh,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
@ -87,7 +87,7 @@ void mpi_file_read_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_read_shared(c_fh,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
@ -65,7 +65,7 @@ void mpi_file_write_all_begin_f(MPI_Fint *fh, char *buf,
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all_begin(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all_begin(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ void mpi_file_write_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_all(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
|
@ -67,7 +67,7 @@ void mpi_file_write_at_all_begin_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all_begin(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ void mpi_file_write_at_all_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at_all(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
@ -87,7 +87,7 @@ void mpi_file_write_at_f(MPI_Fint *fh, MPI_Offset *offset,
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_at(c_fh,
|
||||
(MPI_Offset) *offset,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
|
@ -85,7 +85,7 @@ void mpi_file_write_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_status));
|
||||
|
||||
|
@ -65,7 +65,7 @@ void mpi_file_write_ordered_begin_f(MPI_Fint *fh, char *buf,
|
||||
MPI_File c_fh = MPI_File_f2c(*fh);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_ordered_begin(c_fh, OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_File_write_ordered_begin(c_fh, OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type));
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ void mpi_file_write_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_ordered(c_fh,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
@ -87,7 +87,7 @@ void mpi_file_write_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count,
|
||||
}
|
||||
|
||||
*ierr = OMPI_FINT_2_INT(MPI_File_write_shared(c_fh,
|
||||
OMPI_ADDR(buf),
|
||||
OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
c_status));
|
||||
|
@ -69,13 +69,12 @@ void mpi_gather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
c_sendtype = MPI_Type_f2c(*sendtype);
|
||||
c_recvtype = MPI_Type_f2c(*recvtype);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gather(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gather(sendbuf, OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, recvbuf,
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype,
|
||||
OMPI_FINT_2_INT(*root),
|
||||
|
@ -77,13 +77,12 @@ void mpi_gatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
|
||||
OMPI_ARRAY_FINT_2_INT(displs, size);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gatherv(OMPI_ADDR(sendbuf),
|
||||
OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Gatherv(sendbuf, OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, recvbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(displs),
|
||||
c_recvtype,
|
||||
|
@ -68,7 +68,7 @@ void mpi_get_f(char *origin_addr, MPI_Fint *origin_count,
|
||||
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
|
||||
MPI_Win c_win = MPI_Win_f2c(*win);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Get(OMPI_ADDR(origin_addr),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Get(OMPI_F2C_BOTTOM(origin_addr),
|
||||
OMPI_FINT_2_INT(*origin_count),
|
||||
c_origin_datatype,
|
||||
OMPI_FINT_2_INT(*target_rank),
|
||||
|
@ -68,7 +68,7 @@ void mpi_ibsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ibsend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ibsend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
@ -68,7 +68,7 @@ void mpi_irecv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Irecv(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Irecv(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*source),
|
||||
OMPI_FINT_2_INT(*tag), c_comm, &c_req));
|
||||
|
||||
|
@ -66,7 +66,7 @@ void mpi_irsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Irsend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Irsend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag), c_comm,
|
||||
&c_req));
|
||||
|
@ -66,7 +66,7 @@ void mpi_isend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Isend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Isend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
@ -66,7 +66,7 @@ void mpi_issend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Issend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Issend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
@ -65,7 +65,7 @@ void mpi_pack_external_f(char *datarep, char *inbuf, MPI_Fint *incount,
|
||||
{
|
||||
MPI_Datatype type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Pack_external(datarep, OMPI_ADDR(inbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Pack_external(datarep, OMPI_F2C_BOTTOM(inbuf),
|
||||
OMPI_FINT_2_INT(*incount),
|
||||
type, outbuf,
|
||||
*outsize,
|
||||
|
@ -70,7 +70,7 @@ void mpi_pack_f(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype,
|
||||
c_type = MPI_Type_f2c(*datatype);
|
||||
OMPI_SINGLE_FINT_2_INT(position);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Pack(OMPI_ADDR(inbuf), OMPI_FINT_2_INT(*incount),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Pack(OMPI_F2C_BOTTOM(inbuf), OMPI_FINT_2_INT(*incount),
|
||||
c_type, outbuf,
|
||||
OMPI_FINT_2_INT(*outsize),
|
||||
OMPI_SINGLE_NAME_CONVERT(position),
|
||||
|
@ -68,7 +68,7 @@ void mpi_put_f(char *origin_addr, MPI_Fint *origin_count,
|
||||
MPI_Datatype c_target_datatype = MPI_Type_f2c(*target_datatype);
|
||||
MPI_Win c_win = MPI_Win_f2c(*win);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Put(OMPI_ADDR(origin_addr),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Put(OMPI_F2C_BOTTOM(origin_addr),
|
||||
OMPI_FINT_2_INT(*origin_count),
|
||||
c_origin_datatype,
|
||||
OMPI_FINT_2_INT(*target_rank),
|
||||
|
@ -87,7 +87,7 @@ void mpi_recv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
}
|
||||
|
||||
/* Call the C function */
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Recv(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Recv(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*source),
|
||||
OMPI_FINT_2_INT(*tag), c_comm,
|
||||
c_status));
|
||||
|
@ -68,7 +68,7 @@ void mpi_recv_init_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Recv_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Recv_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*source),
|
||||
OMPI_INT_2_FINT(*tag), c_comm,
|
||||
&c_req));
|
||||
|
@ -70,11 +70,11 @@ void mpi_reduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
c_op = MPI_Op_f2c(*op);
|
||||
c_comm = MPI_Comm_f2c(*comm);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce(sendbuf, recvbuf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op,
|
||||
OMPI_FINT_2_INT(*root),
|
||||
|
@ -75,11 +75,11 @@ void mpi_reduce_scatter_f(char *sendbuf, char *recvbuf,
|
||||
MPI_Comm_size(c_comm, &size);
|
||||
OMPI_ARRAY_FINT_2_INT(recvcounts, size);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce_scatter(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Reduce_scatter(sendbuf, recvbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(recvcounts),
|
||||
c_type, c_op, c_comm));
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ void mpi_rsend_f(char *ibuf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Rsend(OMPI_ADDR(ibuf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Rsend(OMPI_F2C_BOTTOM(ibuf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag), c_comm));
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ void mpi_rsend_init_f(char *buf, MPI_Fint *count,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Rsend_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Rsend_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
@ -70,11 +70,11 @@ void mpi_scan_f(char *sendbuf, char *recvbuf, MPI_Fint *count,
|
||||
c_op = MPI_Op_f2c(*op);
|
||||
c_comm = MPI_Comm_f2c(*comm);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scan(OMPI_ADDR(sendbuf), OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scan(sendbuf, recvbuf,
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type, c_op,
|
||||
c_comm));
|
||||
|
@ -69,12 +69,12 @@ void mpi_scatter_f(char *sendbuf, MPI_Fint *sendcount,
|
||||
c_sendtype = MPI_Type_f2c(*sendtype);
|
||||
c_recvtype = MPI_Type_f2c(*recvtype);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatter(OMPI_ADDR(sendbuf),OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatter(sendbuf,OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype, recvbuf,
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype,
|
||||
OMPI_FINT_2_INT(*root), c_comm));
|
||||
|
@ -78,14 +78,14 @@ void mpi_scatterv_f(char *sendbuf, MPI_Fint *sendcounts,
|
||||
OMPI_ARRAY_FINT_2_INT(sendcounts, size);
|
||||
OMPI_ARRAY_FINT_2_INT(displs, size);
|
||||
|
||||
if (OMPI_IS_FORTRAN_IN_PLACE(sendbuf)) {
|
||||
sendbuf = MPI_IN_PLACE;
|
||||
}
|
||||
sendbuf = OMPI_F2C_IN_PLACE(sendbuf);
|
||||
sendbuf = OMPI_F2C_BOTTOM(sendbuf);
|
||||
recvbuf = OMPI_F2C_BOTTOM(recvbuf);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatterv(OMPI_ADDR(sendbuf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Scatterv(sendbuf,
|
||||
OMPI_ARRAY_NAME_CONVERT(sendcounts),
|
||||
OMPI_ARRAY_NAME_CONVERT(displs),
|
||||
c_sendtype, OMPI_ADDR(recvbuf),
|
||||
c_sendtype, recvbuf,
|
||||
OMPI_FINT_2_INT(*recvcount),
|
||||
c_recvtype,
|
||||
OMPI_FINT_2_INT(*root), c_comm));
|
||||
|
@ -64,7 +64,7 @@ void mpi_send_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Comm c_comm = MPI_Comm_f2c(*comm);
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Send(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Send(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag), c_comm));
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ void mpi_send_init_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Send_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Send_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
@ -71,11 +71,11 @@ void mpi_sendrecv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Sendrecv(OMPI_ADDR(sendbuf), OMPI_FINT_2_INT(*sendcount),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Sendrecv(OMPI_F2C_BOTTOM(sendbuf), OMPI_FINT_2_INT(*sendcount),
|
||||
c_sendtype,
|
||||
OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*sendtag),
|
||||
OMPI_ADDR(recvbuf), *recvcount,
|
||||
OMPI_F2C_BOTTOM(recvbuf), *recvcount,
|
||||
c_recvtype, OMPI_FINT_2_INT(*source),
|
||||
OMPI_FINT_2_INT(*recvtag),
|
||||
c_comm, &c_status));
|
||||
|
@ -69,7 +69,7 @@ void mpi_sendrecv_replace_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Sendrecv_replace(OMPI_ADDR(buf),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Sendrecv_replace(OMPI_F2C_BOTTOM(buf),
|
||||
OMPI_FINT_2_INT(*count),
|
||||
c_type,
|
||||
OMPI_FINT_2_INT(*dest),
|
||||
|
@ -67,7 +67,7 @@ void mpi_ssend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ssend(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ssend(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag), c_comm));
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ void mpi_ssend_init_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ssend_init(OMPI_ADDR(buf), OMPI_FINT_2_INT(*count),
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ssend_init(OMPI_F2C_BOTTOM(buf), OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
@ -69,7 +69,7 @@ void mpi_unpack_external_f (char *datarep, char *inbuf, MPI_Aint *insize,
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Unpack_external(datarep, inbuf,
|
||||
*insize,
|
||||
position,
|
||||
OMPI_ADDR(outbuf),
|
||||
OMPI_F2C_BOTTOM(outbuf),
|
||||
OMPI_FINT_2_INT(*outcount),
|
||||
c_type));
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ void mpi_unpack_f(char *inbuf, MPI_Fint *insize, MPI_Fint *position,
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Unpack(inbuf, OMPI_FINT_2_INT(*insize),
|
||||
OMPI_SINGLE_NAME_CONVERT(position),
|
||||
OMPI_ADDR(outbuf), OMPI_FINT_2_INT(*outcount),
|
||||
OMPI_F2C_BOTTOM(outbuf), OMPI_FINT_2_INT(*outcount),
|
||||
c_type, c_comm));
|
||||
if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
|
||||
OMPI_SINGLE_INT_2_FINT(position);
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user