diff --git a/src/mpi/f77/comm_rank_f.c b/src/mpi/f77/comm_rank_f.c index 3b8aa24eb2..cb72f4ef06 100644 --- a/src/mpi/f77/comm_rank_f.c +++ b/src/mpi/f77/comm_rank_f.c @@ -48,5 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_RANK, void mpi_comm_rank_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr) { + MPI_Comm c_comm = MPI_Comm_f2c( *comm ); + *ierr = MPI_Comm_rank( c_comm, rank ); } diff --git a/src/mpi/f77/comm_size_f.c b/src/mpi/f77/comm_size_f.c index c9c04f37ee..27d2f7d1aa 100644 --- a/src/mpi/f77/comm_size_f.c +++ b/src/mpi/f77/comm_size_f.c @@ -48,5 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_SIZE, void mpi_comm_size_f(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr) { + MPI_Comm c_comm = MPI_Comm_f2c( *comm ); + *ierr = MPI_Comm_size( c_comm, size ); } diff --git a/src/mpi/f77/finalize_f.c b/src/mpi/f77/finalize_f.c index 15e5e2e300..ed28d8dec2 100644 --- a/src/mpi/f77/finalize_f.c +++ b/src/mpi/f77/finalize_f.c @@ -48,5 +48,5 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FINALIZE, void mpi_finalize_f(MPI_Fint *ierr) { - + *ierr = MPI_Finalize(); } diff --git a/src/mpi/f77/init_f.c b/src/mpi/f77/init_f.c index 9eddfb1d6d..718f2679b0 100644 --- a/src/mpi/f77/init_f.c +++ b/src/mpi/f77/init_f.c @@ -20,8 +20,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_INIT, pmpi_init_, pmpi_init__, pmpi_init_f, - (MPI_Fint *argc, char *argv, MPI_Fint *ierr), - (argc, argv, ierr) ) + (MPI_Fint *ierr), + (ierr) ) #endif #if OMPI_HAVE_WEAK_SYMBOLS @@ -37,8 +37,8 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INIT, mpi_init_, mpi_init__, mpi_init_f, - (MPI_Fint *argc, char *argv, MPI_Fint *ierr), - (argc, argv, ierr) ) + (MPI_Fint *ierr), + (ierr) ) #endif @@ -46,7 +46,9 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INIT, #include "mpi/c/profile/defines.h" #endif -void mpi_init_f(MPI_Fint *argc, char *argv, MPI_Fint *ierr) +void mpi_init_f( MPI_Fint *ierr ) { - + int argc = 0; + char **argv = NULL; + *ierr = MPI_Init( &argc, &argv ); } diff --git a/src/mpi/f77/init_thread_f.c b/src/mpi/f77/init_thread_f.c index 55db1177d6..492e76bc00 100644 --- a/src/mpi/f77/init_thread_f.c +++ b/src/mpi/f77/init_thread_f.c @@ -20,8 +20,8 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_INIT_THREAD, pmpi_init_thread_, pmpi_init_thread__, pmpi_init_thread_f, - (MPI_Fint *argc, char *argv, MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr), - (argc, argv, required, provided, ierr) ) + (MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr), + (required, provided, ierr) ) #endif #if OMPI_HAVE_WEAK_SYMBOLS @@ -37,8 +37,8 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INIT_THREAD, mpi_init_thread_, mpi_init_thread__, mpi_init_thread_f, - (MPI_Fint *argc, char *argv, MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr), - (argc, argv, required, provided, ierr) ) + (MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr), + (required, provided, ierr) ) #endif @@ -46,7 +46,10 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INIT_THREAD, #include "mpi/c/profile/defines.h" #endif -void mpi_init_thread_f(MPI_Fint *argc, char *argv, MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr) +void mpi_init_thread_f( MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr ) { + int argc = 0; + char** argv = NULL; + *ierr = MPI_Init_thread( &argc, &argv, *required, provided ); } diff --git a/src/mpi/f77/prototypes_mpi.h b/src/mpi/f77/prototypes_mpi.h index 3540a4d1c2..630fb5bf1c 100644 --- a/src/mpi/f77/prototypes_mpi.h +++ b/src/mpi/f77/prototypes_mpi.h @@ -183,9 +183,9 @@ void mpi_info_get_nkeys_f(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); void mpi_info_get_nthkey_f(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); void mpi_info_get_valuelen_f(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); void mpi_info_set_f(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void mpi_init_f(MPI_Fint *argc, char *argv, MPI_Fint *ierr); +void mpi_init_f( MPI_Fint *ierr ); void mpi_initialized_f(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_init_thread_f(MPI_Fint *argc, char *argv, MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); +void mpi_init_thread_f( MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr ); 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); void mpi_intercomm_merge_f(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, 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);