From b6b0de9d8fe6b16d76caea5a3c75faeb78f4a6fc Mon Sep 17 00:00:00 2001 From: Vishal Sahay Date: Tue, 14 Sep 2004 05:59:53 +0000 Subject: [PATCH] More bindings This commit was SVN r2647. --- src/mpi/f77/test_cancelled_f.c | 7 ++++++- src/mpi/f77/test_f.c | 9 +++++++-- src/mpi/f77/testsome_f.c | 20 +++++++++++++++---- src/mpi/f77/type_commit_f.c | 2 +- src/mpi/f77/type_contiguous_f.c | 6 ++++-- src/mpi/f77/type_create_darray_f.c | 32 ++++++++++++++++++++++++++---- 6 files changed, 62 insertions(+), 14 deletions(-) diff --git a/src/mpi/f77/test_cancelled_f.c b/src/mpi/f77/test_cancelled_f.c index 700383555b..01e297547e 100644 --- a/src/mpi/f77/test_cancelled_f.c +++ b/src/mpi/f77/test_cancelled_f.c @@ -49,8 +49,13 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TEST_CANCELLED, void mpi_test_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr) { MPI_Status c_status; + OMPI_SINGLE_NAME_DECL(flag); MPI_Status_f2c( status, &c_status ); - *ierr = MPI_Test_cancelled(&c_status, flag); + *ierr = OMPI_INT_2_FINT(MPI_Test_cancelled(&c_status, + OMPI_SINGLE_NAME_CONVERT(flag) + )); + + OMPI_SINGLE_INT_2_FINT(flag); } diff --git a/src/mpi/f77/test_f.c b/src/mpi/f77/test_f.c index dcfbb5a192..41f9a7610a 100644 --- a/src/mpi/f77/test_f.c +++ b/src/mpi/f77/test_f.c @@ -46,13 +46,18 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TEST, #include "mpi/f77/profile/defines.h" #endif -void mpi_test_f(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr) +void mpi_test_f(MPI_Fint *request, MPI_Fint *flag, + MPI_Fint *status, MPI_Fint *ierr) { MPI_Request c_req = MPI_Request_f2c(*request); MPI_Status c_status; + OMPI_SINGLE_NAME_DECL(flag); - *ierr = MPI_Test(&c_req, flag, &c_status); + *ierr = OMPI_INT_2_FINT(MPI_Test(&c_req, + OMPI_SINGLE_NAME_CONVERT(flag), + &c_status)); + OMPI_SINGLE_INT_2_FINT(flag); MPI_Status_c2f( &c_status, status); if ( (MPI_SUCCESS == *ierr) && (NULL == c_req) ) { diff --git a/src/mpi/f77/testsome_f.c b/src/mpi/f77/testsome_f.c index fbb84e4081..a71f231289 100644 --- a/src/mpi/f77/testsome_f.c +++ b/src/mpi/f77/testsome_f.c @@ -52,16 +52,22 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TESTSOME, static const char FUNC_NAME[] = "MPI_TESTSOME"; -void mpi_testsome_f(MPI_Fint *incount, MPI_Fint *array_of_requests, MPI_Fint *outcount, MPI_Fint *array_of_indices, MPI_Fint *array_of_statuses, MPI_Fint *ierr) +void mpi_testsome_f(MPI_Fint *incount, MPI_Fint *array_of_requests, + MPI_Fint *outcount, MPI_Fint *array_of_indices, + MPI_Fint *array_of_statuses, MPI_Fint *ierr) { + int c_err; MPI_Request *c_req; MPI_Status *c_status; int i; + OMPI_SINGLE_NAME_DECL(outcount); + OMPI_ARRAY_NAME_DECL(array_of_indices); c_req = malloc(*incount * (sizeof(MPI_Request) + sizeof(MPI_Status))); if (NULL == c_req) { - *ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_NO_MEM, + c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_NO_MEM, FUNC_NAME); + *ierr = OMPI_INT_2_FINT(c_err); return; } c_status = (MPI_Status*) c_req + *incount; @@ -70,8 +76,14 @@ void mpi_testsome_f(MPI_Fint *incount, MPI_Fint *array_of_requests, MPI_Fint *ou c_req[i] = MPI_Request_f2c(array_of_requests[i]); } - *ierr = MPI_Testsome(*incount, c_req, outcount, array_of_indices, - c_status); + OMPI_ARRAY_FINT_2_INT_ALLOC(array_of_indices, *incount); + *ierr = OMPI_INT_2_FINT(MPI_Testsome(OMPI_FINT_2_INT(*incount), c_req, + OMPI_SINGLE_NAME_CONVERT(outcount), + OMPI_ARRAY_NAME_CONVERT(array_of_indices), + c_status)); + + OMPI_SINGLE_INT_2_FINT(outcount); + OMPI_ARRAY_INT_2_FINT(array_of_indices, *incount); if (MPI_SUCCESS == *ierr) { if (MPI_UNDEFINED != *outcount) { diff --git a/src/mpi/f77/type_commit_f.c b/src/mpi/f77/type_commit_f.c index 001d174ae2..607c01a116 100644 --- a/src/mpi/f77/type_commit_f.c +++ b/src/mpi/f77/type_commit_f.c @@ -50,7 +50,7 @@ void mpi_type_commit_f(MPI_Fint *type, MPI_Fint *ierr) { MPI_Datatype c_type = MPI_Type_f2c(*type); - *ierr = MPI_Type_commit(&c_type); + *ierr = OMPI_INT_2_FINT(MPI_Type_commit(&c_type)); if (MPI_SUCCESS == *ierr) { *type = MPI_Type_c2f(c_type); diff --git a/src/mpi/f77/type_contiguous_f.c b/src/mpi/f77/type_contiguous_f.c index afce355e38..e65b542e7b 100644 --- a/src/mpi/f77/type_contiguous_f.c +++ b/src/mpi/f77/type_contiguous_f.c @@ -46,12 +46,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TYPE_CONTIGUOUS, #include "mpi/f77/profile/defines.h" #endif -void mpi_type_contiguous_f(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr) +void mpi_type_contiguous_f(MPI_Fint *count, MPI_Fint *oldtype, + MPI_Fint *newtype, MPI_Fint *ierr) { MPI_Datatype c_old = MPI_Type_f2c(*oldtype); MPI_Datatype c_new; - *ierr = MPI_Type_contiguous(*count, c_old, &c_new); + *ierr = OMPI_INT_2_FINT(MPI_Type_contiguous(OMPI_FINT_2_INT(*count), + c_old, &c_new)); if (MPI_SUCCESS == *ierr) { *newtype = MPI_Type_c2f(c_new); diff --git a/src/mpi/f77/type_create_darray_f.c b/src/mpi/f77/type_create_darray_f.c index cfb448e83f..5dff4a4901 100644 --- a/src/mpi/f77/type_create_darray_f.c +++ b/src/mpi/f77/type_create_darray_f.c @@ -46,14 +46,38 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TYPE_CREATE_DARRAY, #include "mpi/f77/profile/defines.h" #endif -void mpi_type_create_darray_f(MPI_Fint *size, MPI_Fint *rank, MPI_Fint *ndims, MPI_Fint *gsize_array, MPI_Fint *distrib_array, MPI_Fint *darg_array, MPI_Fint *psize_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr) +void mpi_type_create_darray_f(MPI_Fint *size, MPI_Fint *rank, + MPI_Fint *ndims, MPI_Fint *gsize_array, + MPI_Fint *distrib_array, MPI_Fint *darg_array, + MPI_Fint *psize_array, MPI_Fint *order, + MPI_Fint *oldtype, MPI_Fint *newtype, + MPI_Fint *ierr) { MPI_Datatype c_old = MPI_Type_f2c(*oldtype); MPI_Datatype c_new; + OMPI_ARRAY_NAME_DECL(gsize_array); + OMPI_ARRAY_NAME_DECL(distrib_array); + OMPI_ARRAY_NAME_DECL(darg_array); + OMPI_ARRAY_NAME_DECL(psize_array); - *ierr = MPI_Type_create_darray(*size, *rank, *ndims, gsize_array, - distrib_array, darg_array, psize_array, - *order, c_old, &c_new); + OMPI_ARRAY_FINT_2_INT(gsize_array, *ndims); + OMPI_ARRAY_FINT_2_INT(distrib_array, *ndims); + OMPI_ARRAY_FINT_2_INT(darg_array, *ndims); + OMPI_ARRAY_FINT_2_INT(psize_array, *ndims); + + *ierr = OMPI_INT_2_FINT(MPI_Type_create_darray(OMPI_FINT_2_INT(*size), + OMPI_FINT_2_INT(*rank), + OMPI_FINT_2_INT(*ndims), + OMPI_ARRAY_NAME_CONVERT(gsize_array), + OMPI_ARRAY_NAME_CONVERT(distrib_array), + OMPI_ARRAY_NAME_CONVERT(darg_array), + OMPI_ARRAY_NAME_CONVERT(psize_array), + OMPI_FINT_2_INT(*order), c_old, &c_new)); + + OMPI_ARRAY_FINT_2_INT_CLEANUP(gsize_array); + OMPI_ARRAY_FINT_2_INT_CLEANUP(distrib_array); + OMPI_ARRAY_FINT_2_INT_CLEANUP(darg_array); + OMPI_ARRAY_FINT_2_INT_CLEANUP(psize_array); if (MPI_SUCCESS == *ierr) { *newtype = MPI_Type_c2f(c_new);