fixing the fortran interface for MPI_Get_address. Since the address
argument is defined to be integer (KIND=MPI_ADDRESS_KIND) we have to map that to an MPI_Aint in the f->c interface, else the typecast back from the C to the Fortran interface will be wrong as well. The same holds (at least) for all other new MPI-2 datatype functions which take a byte-displacement or an address as an argument. This commit was SVN r8243.
Этот коммит содержится в:
родитель
b6ddb73f38
Коммит
a1b00e0a49
@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_GET_ADDRESS,
|
||||
pmpi_get_address_,
|
||||
pmpi_get_address__,
|
||||
pmpi_get_address_f,
|
||||
(char *location, MPI_Fint *address, MPI_Fint *ierr),
|
||||
(char *location, MPI_Aint *address, MPI_Fint *ierr),
|
||||
(location, address, ierr) )
|
||||
#endif
|
||||
|
||||
@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_GET_ADDRESS,
|
||||
mpi_get_address_,
|
||||
mpi_get_address__,
|
||||
mpi_get_address_f,
|
||||
(char *location, MPI_Fint *address, MPI_Fint *ierr),
|
||||
(char *location, MPI_Aint *address, MPI_Fint *ierr),
|
||||
(location, address, ierr) )
|
||||
#endif
|
||||
|
||||
@ -57,12 +57,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_GET_ADDRESS,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_get_address_f(char *location, MPI_Fint *address, MPI_Fint *ierr)
|
||||
void mpi_get_address_f(char *location, MPI_Aint *address, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Aint c_address;
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Get_address(location, &c_address));
|
||||
if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
|
||||
*address = (MPI_Fint) c_address;
|
||||
*address = (MPI_Aint) c_address;
|
||||
}
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ void pmpi_finalized_f(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void pmpi_free_mem_f(char *base, MPI_Fint *ierr);
|
||||
void pmpi_gather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_gatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_get_address_f(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_address_f(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_count_f(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get_elements_f(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get_f(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -465,7 +465,7 @@ void pmpi_finalized(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void pmpi_free_mem(char *base, MPI_Fint *ierr);
|
||||
void pmpi_gather(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_gatherv(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_get_address(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_address(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_count(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get_elements(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -752,7 +752,7 @@ void pmpi_finalized_(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void pmpi_free_mem_(char *base, MPI_Fint *ierr);
|
||||
void pmpi_gather_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_gatherv_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_get_address_(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_address_(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_count_(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get_elements_(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get_(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -1039,7 +1039,7 @@ void pmpi_finalized__(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void pmpi_free_mem__(char *base, MPI_Fint *ierr);
|
||||
void pmpi_gather__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_gatherv__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void pmpi_get_address__(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_address__(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void pmpi_get_count__(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get_elements__(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void pmpi_get__(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -1326,7 +1326,7 @@ void PMPI_FINALIZED(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void PMPI_FREE_MEM(char *base, MPI_Fint *ierr);
|
||||
void PMPI_GATHER(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void PMPI_GATHERV(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void PMPI_GET_ADDRESS(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void PMPI_GET_ADDRESS(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void PMPI_GET_COUNT(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void PMPI_GET_ELEMENTS(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void PMPI_GET(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
|
@ -179,7 +179,7 @@ void mpi_finalized_f(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void mpi_free_mem_f(char *base, MPI_Fint *ierr);
|
||||
void mpi_gather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_gatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_get_address_f(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void mpi_get_address_f(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void mpi_get_count_f(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get_elements_f(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get_f(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -483,7 +483,7 @@ void mpi_finalized(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void mpi_free_mem(char *base, MPI_Fint *ierr);
|
||||
void mpi_gather(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_gatherv(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_get_address(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void mpi_get_address(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void mpi_get_count(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get_elements(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -784,7 +784,7 @@ void mpi_finalized_(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void mpi_free_mem_(char *base, MPI_Fint *ierr);
|
||||
void mpi_gather_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_gatherv_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_get_address_(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void mpi_get_address_(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void mpi_get_count_(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get_elements_(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get_(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -1085,7 +1085,7 @@ void mpi_finalized__(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void mpi_free_mem__(char *base, MPI_Fint *ierr);
|
||||
void mpi_gather__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_gatherv__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void mpi_get_address__(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void mpi_get_address__(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void mpi_get_count__(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get_elements__(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void mpi_get__(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
@ -1386,7 +1386,7 @@ void MPI_FINALIZED(MPI_Fint *flag, MPI_Fint *ierr);
|
||||
void MPI_FREE_MEM(char *base, MPI_Fint *ierr);
|
||||
void MPI_GATHER(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void MPI_GATHERV(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr);
|
||||
void MPI_GET_ADDRESS(char *location, MPI_Fint *address, MPI_Fint *ierr);
|
||||
void MPI_GET_ADDRESS(char *location, MPI_Aint *address, MPI_Fint *ierr);
|
||||
void MPI_GET_COUNT(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void MPI_GET_ELEMENTS(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr);
|
||||
void MPI_GET(char *origin_addr, MPI_Fint *origin_count, MPI_Fint *origin_datatype, MPI_Fint *target_rank, MPI_Fint *target_disp, MPI_Fint *target_count, MPI_Fint *target_datatype, MPI_Fint *win, MPI_Fint *ierr);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user