This commit was SVN r2635.
Этот коммит содержится в:
родитель
8e14d725ad
Коммит
af6fb8f347
@ -130,7 +130,7 @@
|
||||
#define OMPI_2_DIM_ARRAY_FINT_2_INT(in, n, dim2) \
|
||||
OMPI_ARRAY_NAME_CONVERT(in) = (int (*)[dim2]) malloc(n * sizeof(*OMPI_ARRAY_NAME_CONVERT(in))); \
|
||||
while(n > 0) { \
|
||||
for(dim2_index = 0; dim2_index < dims2; ++i) { \
|
||||
for(dim2_index = 0; dim2_index < dim2; ++dim2_index) { \
|
||||
OMPI_ARRAY_NAME_CONVERT(in)[n - 1][dim2_index] = in[n - 1][dim2_index]; \
|
||||
} \
|
||||
--n; \
|
||||
@ -143,7 +143,7 @@
|
||||
OMPI_ARRAY_NAME_CONVERT(in) = *(in)
|
||||
|
||||
#define OMPI_SINGLE_INT_2_FINT(in) \
|
||||
in = (MPI_Fint) OMPI_ARRAY_NAME_CONVERT(in)
|
||||
*in = (MPI_Fint) OMPI_ARRAY_NAME_CONVERT(in)
|
||||
|
||||
#define OMPI_ARRAY_INT_2_FINT(in, n) \
|
||||
while(n > 0) {\
|
||||
|
@ -47,14 +47,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_CREATE_KEYVAL,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
static const char FUNC_NAME[] = "MPI_Comm_create_keyval_f";
|
||||
static const char FUNC_NAME[] = "MPI_Comm_create_keyval_f";
|
||||
|
||||
void mpi_comm_create_keyval_f(MPI_Fint *comm_copy_attr_fn,
|
||||
MPI_Fint *comm_delete_attr_fn,
|
||||
MPI_Fint *comm_keyval,
|
||||
char *extra_state, MPI_Fint *ierr)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
ompi_attribute_fn_ptr_union_t copy_fn;
|
||||
ompi_attribute_fn_ptr_union_t del_fn;
|
||||
|
||||
@ -62,9 +62,10 @@ void mpi_comm_create_keyval_f(MPI_Fint *comm_copy_attr_fn,
|
||||
if ((NULL == comm_copy_attr_fn) ||
|
||||
(NULL == comm_delete_attr_fn) ||
|
||||
(NULL == comm_keyval) ) {
|
||||
*ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_ARG,
|
||||
FUNC_NAME);
|
||||
FUNC_NAME)
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
}
|
||||
}
|
||||
|
||||
@ -75,9 +76,10 @@ void mpi_comm_create_keyval_f(MPI_Fint *comm_copy_attr_fn,
|
||||
comm_keyval, extra_state, OMPI_KEYVAL_F77);
|
||||
|
||||
if (MPI_SUCCESS != ret) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_OTHER,
|
||||
FUNC_NAME))
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_OTHER,
|
||||
FUNC_NAME)
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
} else {
|
||||
*ierr = MPI_SUCCESS;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_SET_NAME,
|
||||
void mpi_comm_set_name_f(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr,
|
||||
int name_len)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
char *c_name;
|
||||
MPI_Comm c_comm = MPI_Comm_f2c(*comm);
|
||||
|
||||
@ -61,8 +61,9 @@ void mpi_comm_set_name_f(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr,
|
||||
|
||||
if (OMPI_SUCCESS != (ret = ompi_fortran_string_f2c(comm_name, name_len,
|
||||
&c_name))) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(c_comm, ret,
|
||||
"MPI_COMM_SET_NAME"));
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(c_comm, ret,
|
||||
"MPI_COMM_SET_NAME");
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,9 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IBSEND,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_ibsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)
|
||||
void mpi_ibsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm,
|
||||
MPI_Fint *request, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_req;
|
||||
@ -54,7 +56,10 @@ void mpi_ibsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Ibsend(buf, *count, c_type, *dest, *tag, c_comm, &c_req);
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Ibsend(buf, OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
||||
if (MPI_SUCCESS == *ierr) {
|
||||
*request = MPI_Request_c2f(c_req);
|
||||
|
@ -46,15 +46,22 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INTERCOMM_CREATE,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_intercomm_create_f(MPI_Fint *local_comm, MPI_Fint *local_leader, MPI_Fint *bridge_comm,
|
||||
MPI_Fint *remote_leader, MPI_Fint *tag, MPI_Fint *newintercomm,
|
||||
void mpi_intercomm_create_f(MPI_Fint *local_comm, MPI_Fint *local_leader,
|
||||
MPI_Fint *bridge_comm,
|
||||
MPI_Fint *remote_leader, MPI_Fint *tag,
|
||||
MPI_Fint *newintercomm,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Comm c_newcomm;
|
||||
MPI_Comm c_local_comm = MPI_Comm_f2c (*local_comm );
|
||||
MPI_Comm c_bridge_comm = MPI_Comm_f2c (*bridge_comm);
|
||||
|
||||
*ierr = MPI_Intercomm_create ( c_local_comm, (int) *local_leader, c_bridge_comm,
|
||||
(int) *remote_leader, (int) *tag, &c_newcomm );
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Intercomm_create(c_local_comm,
|
||||
OMPI_FINT_2_INT(*local_leader),
|
||||
c_bridge_comm,
|
||||
OMPI_FINT_2_INT(*remote_leader),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
&c_newcomm));
|
||||
|
||||
*newintercomm = MPI_Comm_c2f (c_newcomm);
|
||||
}
|
||||
|
@ -46,12 +46,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INTERCOMM_MERGE,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_intercomm_merge_f(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintracomm,
|
||||
void mpi_intercomm_merge_f(MPI_Fint *intercomm, MPI_Fint *high,
|
||||
MPI_Fint *newintracomm,
|
||||
MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Comm c_newcomm;
|
||||
MPI_Comm c_intercomm = MPI_Comm_f2c(*intercomm);
|
||||
|
||||
*ierr = MPI_Intercomm_merge (c_intercomm, (int) *high, &c_newcomm );
|
||||
*ierr = MPI_Intercomm_merge (c_intercomm, OMPI_FINT_2_INT(*high),
|
||||
&c_newcomm );
|
||||
*newintracomm = MPI_Comm_c2f (c_newcomm);
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_IPROBE = mpi_iprobe_f
|
||||
@ -46,11 +49,58 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IPROBE,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_iprobe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr)
|
||||
void mpi_iprobe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm,
|
||||
MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Status *c_status;
|
||||
int c_err;
|
||||
MPI_Comm c_comm;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
OMPI_SINGLE_NAME_DECL(flag);
|
||||
|
||||
/* Only check for the bad value if we're checking MPI parameters */
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
if (OMPI_IS_FORTRAN_STATUSES_IGNORE(status)) {
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(c_comm, MPI_ERR_ARG,
|
||||
"MPI_RECV");
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Iprobe(*source, *tag, c_comm, flag, (MPI_Status*)status);
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Iprobe(OMPI_FINT_2_INT(*source),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, OMPI_SINGLE_NAME_CONVERT(flag),
|
||||
c_status));
|
||||
|
||||
OMPI_SINGLE_INT_2_FINT(flag);
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -46,7 +46,9 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IRECV,
|
||||
#include "mpi/f77/profile/defines.h"
|
||||
#endif
|
||||
|
||||
void mpi_irecv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)
|
||||
void mpi_irecv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm,
|
||||
MPI_Fint *request, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Datatype c_type = MPI_Type_f2c(*datatype);
|
||||
MPI_Request c_req;
|
||||
@ -54,7 +56,9 @@ void mpi_irecv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *sourc
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Irecv(buf, *count, c_type, *source, *tag, c_comm, &c_req);
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Irecv(buf, OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*source),
|
||||
OMPI_FINT_2_INT(*tag), c_comm, &c_req));
|
||||
|
||||
if (MPI_SUCCESS == *ierr) {
|
||||
*request = MPI_Request_c2f(c_req);
|
||||
|
@ -54,7 +54,10 @@ void mpi_irsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Irsend(buf, *count, c_type, *dest, *tag, c_comm, &c_req);
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Irsend(buf, OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag), c_comm,
|
||||
&c_req));
|
||||
|
||||
if (MPI_SUCCESS == *ierr) {
|
||||
*request = MPI_Request_c2f(c_req);
|
||||
|
@ -48,5 +48,10 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IS_THREAD_MAIN,
|
||||
|
||||
void mpi_is_thread_main_f(MPI_Fint *flag, MPI_Fint *ierr)
|
||||
{
|
||||
*ierr = MPI_Is_thread_main( flag );
|
||||
OMPI_SINGLE_NAME_DECL(flag);
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Is_thread_main(OMPI_SINGLE_NAME_CONVERT(flag)
|
||||
));
|
||||
|
||||
OMPI_SINGLE_INT_2_FINT(flag);
|
||||
}
|
||||
|
@ -54,7 +54,10 @@ void mpi_isend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest,
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Isend(buf, *count, c_type, *dest, *tag, c_comm, &c_req);
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Isend(buf, OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
||||
if (MPI_SUCCESS == *ierr) {
|
||||
*request = MPI_Request_c2f(c_req);
|
||||
|
@ -54,7 +54,10 @@ void mpi_issend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Issend(buf, *count, c_type, *dest, *tag, c_comm, &c_req);
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Issend(buf, OMPI_FINT_2_INT(*count),
|
||||
c_type, OMPI_FINT_2_INT(*dest),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, &c_req));
|
||||
|
||||
if (MPI_SUCCESS == *ierr) {
|
||||
*request = MPI_Request_c2f(c_req);
|
||||
|
@ -52,7 +52,7 @@ static const char FUNC_NAME[] = "MPI_keyval_create_f";
|
||||
void mpi_keyval_create_f(MPI_Fint *copy_attr_fn, MPI_Fint *delete_attr_fn,
|
||||
MPI_Fint *keyval, char *extra_state, MPI_Fint *ierr)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
ompi_attribute_fn_ptr_union_t copy_fn;
|
||||
ompi_attribute_fn_ptr_union_t del_fn;
|
||||
|
||||
@ -60,9 +60,10 @@ void mpi_keyval_create_f(MPI_Fint *copy_attr_fn, MPI_Fint *delete_attr_fn,
|
||||
if ((NULL == copy_attr_fn) ||
|
||||
(NULL == delete_attr_fn) ||
|
||||
(NULL == keyval) ) {
|
||||
*ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_ARG,
|
||||
FUNC_NAME);
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,9 +74,10 @@ void mpi_keyval_create_f(MPI_Fint *copy_attr_fn, MPI_Fint *delete_attr_fn,
|
||||
keyval, extra_state, OMPI_KEYVAL_F77);
|
||||
|
||||
if (MPI_SUCCESS != ret) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_OTHER,
|
||||
FUNC_NAME))
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_OTHER,
|
||||
FUNC_NAME);
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
} else {
|
||||
*ierr = MPI_SUCCESS;
|
||||
}
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
#include "mpi.h"
|
||||
#include "mpi/f77/bindings.h"
|
||||
#include "mpi/f77/constants.h"
|
||||
#include "errhandler/errhandler.h"
|
||||
#include "communicator/communicator.h"
|
||||
|
||||
#if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER
|
||||
#pragma weak PMPI_PROBE = mpi_probe_f
|
||||
@ -48,9 +51,51 @@ OMPI_GENERATE_F77_BINDINGS (MPI_PROBE,
|
||||
|
||||
void mpi_probe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Status *c_status;
|
||||
int c_err;
|
||||
MPI_Comm c_comm;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
|
||||
c_comm = MPI_Comm_f2c (*comm);
|
||||
|
||||
*ierr = MPI_Probe(*source, *tag, c_comm, (MPI_Status*)status);
|
||||
/* Only check for the bad value if we're checking MPI parameters */
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
if (OMPI_IS_FORTRAN_STATUSES_IGNORE(status)) {
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(c_comm, MPI_ERR_ARG,
|
||||
"MPI_RECV");
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if we got MPI_STATUS_IGNORE */
|
||||
|
||||
if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) {
|
||||
c_status = MPI_STATUS_IGNORE;
|
||||
} else {
|
||||
|
||||
/* If sizeof(int) == sizeof(INTEGER), then there's no
|
||||
translation necessary -- let the underlying functions write
|
||||
directly into the Fortran status */
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT == SIZEOF_INT
|
||||
c_status = (MPI_Status *) status;
|
||||
#else
|
||||
c_status = &c_status2;
|
||||
#endif
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Probe(OMPI_FINT_2_INT(*source),
|
||||
OMPI_FINT_2_INT(*tag),
|
||||
c_comm, c_status));
|
||||
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
if (MPI_STATUS_IGNORE != c_status) {
|
||||
MPI_Status_c2f(c_status, status);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ void mpi_recv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
MPI_Fint *status, MPI_Fint *ierr)
|
||||
{
|
||||
MPI_Status *c_status;
|
||||
int c_err;
|
||||
#if OMPI_SIZEOF_FORTRAN_INT != SIZEOF_INT
|
||||
MPI_Status c_status2;
|
||||
#endif
|
||||
@ -64,8 +65,9 @@ void mpi_recv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype,
|
||||
|
||||
if (MPI_PARAM_CHECK) {
|
||||
if (OMPI_IS_FORTRAN_STATUSES_IGNORE(status)) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(c_comm, MPI_ERR_ARG,
|
||||
"MPI_RECV"));
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(c_comm, MPI_ERR_ARG,
|
||||
"MPI_RECV");
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ static char FUNC_NAME[] = "MPI_Type_create_keyval_f";
|
||||
|
||||
void mpi_type_create_keyval_f(MPI_Fint *type_copy_attr_fn, MPI_Fint *type_delete_attr_fn, MPI_Fint *type_keyval, char *extra_state, MPI_Fint *ierr)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
ompi_attribute_fn_ptr_union_t copy_fn;
|
||||
ompi_attribute_fn_ptr_union_t del_fn;
|
||||
|
||||
@ -59,9 +59,10 @@ void mpi_type_create_keyval_f(MPI_Fint *type_copy_attr_fn, MPI_Fint *type_delete
|
||||
if ((NULL == type_copy_attr_fn) ||
|
||||
(NULL == type_delete_attr_fn) ||
|
||||
(NULL == type_keyval) ) {
|
||||
*ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_ARG,
|
||||
FUNC_NAME);
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,9 +73,10 @@ void mpi_type_create_keyval_f(MPI_Fint *type_copy_attr_fn, MPI_Fint *type_delete
|
||||
type_keyval, extra_state, OMPI_KEYVAL_F77);
|
||||
|
||||
if (MPI_SUCCESS != ret) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_OTHER,
|
||||
FUNC_NAME))
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_OTHER,
|
||||
FUNC_NAME);
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
} else {
|
||||
*ierr = MPI_SUCCESS;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TYPE_SET_NAME,
|
||||
void mpi_type_set_name_f(MPI_Fint *type, char *type_name, MPI_Fint *ierr,
|
||||
int name_len)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
char *c_name;
|
||||
MPI_Datatype c_type;
|
||||
|
||||
@ -63,8 +63,9 @@ void mpi_type_set_name_f(MPI_Fint *type, char *type_name, MPI_Fint *ierr,
|
||||
|
||||
if (OMPI_SUCCESS != (ret = ompi_fortran_string_f2c(type_name, name_len,
|
||||
&c_name))) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, ret,
|
||||
"MPI_TYPE_SET_NAME"));
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, ret,
|
||||
"MPI_TYPE_SET_NAME");
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ static char FUNC_NAME[] = "MPI_Win_create_keyval";
|
||||
|
||||
void mpi_win_create_keyval_f(MPI_Fint *win_copy_attr_fn, MPI_Fint *win_delete_attr_fn, MPI_Fint *win_keyval, char *extra_state, MPI_Fint *ierr)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
ompi_attribute_fn_ptr_union_t copy_fn;
|
||||
ompi_attribute_fn_ptr_union_t del_fn;
|
||||
|
||||
@ -59,9 +59,10 @@ void mpi_win_create_keyval_f(MPI_Fint *win_copy_attr_fn, MPI_Fint *win_delete_at
|
||||
if ((NULL == win_copy_attr_fn) ||
|
||||
(NULL == win_delete_attr_fn) ||
|
||||
(NULL == win_keyval) ) {
|
||||
*ierr = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD,
|
||||
MPI_ERR_ARG,
|
||||
FUNC_NAME);
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
}
|
||||
}
|
||||
copy_fn.attr_F_copy_fn = (MPI_F_copy_function *)win_copy_attr_fn;
|
||||
@ -71,7 +72,9 @@ void mpi_win_create_keyval_f(MPI_Fint *win_copy_attr_fn, MPI_Fint *win_delete_at
|
||||
win_keyval, extra_state, OMPI_KEYVAL_F77);
|
||||
|
||||
if (MPI_SUCCESS != ret) {
|
||||
OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_OTHER, FUNC_NAME);
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_OTHER,
|
||||
FUNC_NAME);
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
} else {
|
||||
*ierr = MPI_SUCCESS;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_WIN_SET_NAME,
|
||||
void mpi_win_set_name_f(MPI_Fint *win, char *win_name, MPI_Fint *ierr,
|
||||
int name_len)
|
||||
{
|
||||
int ret;
|
||||
int ret, c_err;
|
||||
char *c_name;
|
||||
MPI_Win c_win;
|
||||
|
||||
@ -64,8 +64,9 @@ void mpi_win_set_name_f(MPI_Fint *win, char *win_name, MPI_Fint *ierr,
|
||||
|
||||
if (OMPI_SUCCESS != (ret = ompi_fortran_string_f2c(win_name, name_len,
|
||||
&c_name))) {
|
||||
*ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, ret,
|
||||
"MPI_WIN_SET_NAME"));
|
||||
c_err = OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, ret,
|
||||
"MPI_WIN_SET_NAME");
|
||||
*ierr = OMPI_INT_2_FINT(c_err);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user