diff --git a/acinclude.m4 b/acinclude.m4 index 37d5d16820..33638c1fb0 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -36,6 +36,8 @@ m4_include(config/f77_find_ext_symbol_convention.m4) m4_include(config/f77_get_alignment.m4) m4_include(config/f77_get_fortran_handle_max.m4) m4_include(config/f77_get_sizeof.m4) +m4_include(config/f77_get_value_true.m4) +m4_include(config/f77_check_logical_array.m4) m4_include(config/f77_purge_unsupported_kind.m4) m4_include(config/f90_check_type.m4) diff --git a/config/f77_check_logical_array.m4 b/config/f77_check_logical_array.m4 new file mode 100644 index 0000000000..85a56373d5 --- /dev/null +++ b/config/f77_check_logical_array.m4 @@ -0,0 +1,137 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 The Trustees of the University of Tennessee. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_F77_CHECK_LOGICAL_ARRAY],[ +AC_MSG_CHECKING([for correct handling of FORTRAN logical arrays]) + +if test "$1" = "none" -o "$OMPI_WANT_F77_BINDINGS" = "0"; then + AC_MSG_RESULT([no Fortran 77 bindings -- skipped]) +else + + if test "x$ompi_ac_doubleunder" = xy || test "x$ompi_ac_singleunder" = xy; then + ompi_ac_check_logical_fn=check_ + else + if test "x$ompi_ac_nounder" = xy; then + ompi_ac_check_logical_fn=check + else + if test "x$ompi_ac_caps" = xy; then + ompi_ac_check_logical_fn=CHECK + else + AC_MSG_WARN([*** FORTRAN external naming convention undefined]) + AC_MSG_ERROR([*** Cannot continue.]) + fi + fi + fi + + # + # Cannot use standard AC_TRY macros because we need two different .o + # files here, and link them together + # + + # + # Fortran module + # + cat > conftestf.f < conftest.c < +#include +#include "confdefs.h" + +#ifdef __cplusplus + extern "C" { +#endif +void $ompi_ac_check_logical_fn(ompi_fortran_logical_t * logical); + +void $ompi_ac_check_logical_fn(ompi_fortran_logical_t * logical) +{ + int result = 0; + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + + if (logical[[0]] == 0 && + logical[[1]] == $ompi_ac_value_true) + result = 1; + fprintf(f, "%d\n", result); +} +#ifdef __cplusplus +} +#endif +EOF + + # + # Try the compilation and run. Can't use AC_TRY_RUN because it's two + # module files. + # + + OMPI_LOG_COMMAND([$CC $CFLAGS -I. -c conftest.c], + OMPI_LOG_COMMAND([$F77 $FFLAGS conftestf.f conftest.o -o conftest $LDFLAGS $LIBS], + OMPI_LOG_COMMAND([./conftest],[HAPPY=1],[HAPPY=0]), + [HAPPY=0]), + [HAPPY=0]) + + if test "$HAPPY" = "1" -a -f conftestval; then + ompi_result=`cat conftestval` + if test "$ompi_result" = "1"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_WARN([*** Problem running configure test!]) + AC_MSG_WARN([*** See config.log for details.]) + AC_MSG_ERROR([*** Cannot continue.]) + fi + else + AC_MSG_RESULT([unknown]) + + OMPI_LOG_MSG([here is the C program:], 1) + OMPI_LOG_FILE([conftest.c]) + if test -f conftest.h; then + OMPI_LOG_MSG([here is contest.h:], 1) + OMPI_LOG_FILE([conftest.h]) + fi + OMPI_LOG_MSG([here is the fortran program:], 1) + OMPI_LOG_FILE([conftestf.f]) + + AC_MSG_WARN([*** Problem running configure test!]) + AC_MSG_WARN([*** See config.log for details.]) + AC_MSG_ERROR([*** Cannot continue.]) + fi + + unset HAPPY ompi_result + /bin/rm -f conftest* +fi +])dnl \ No newline at end of file diff --git a/config/f77_get_value_true.m4 b/config/f77_get_value_true.m4 new file mode 100644 index 0000000000..b279a78452 --- /dev/null +++ b/config/f77_get_value_true.m4 @@ -0,0 +1,68 @@ +dnl -*- shell-script -*- +dnl +dnl Copyright (c) 2004-2005 The Trustees of Indiana University. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 The Trustees of the University of Tennessee. +dnl All rights reserved. +dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, +dnl University of Stuttgart. All rights reserved. +dnl Copyright (c) 2004-2005 The Regents of the University of California. +dnl All rights reserved. +dnl $COPYRIGHT$ +dnl +dnl Additional copyrights may follow +dnl +dnl $HEADER$ +dnl + +AC_DEFUN([OMPI_F77_GET_VALUE_TRUE],[ +# Determine the value of .TRUE. of this FORTRAN compiler. + +AC_MSG_CHECKING([FORTRAN value for .TRUE. logical type]) + +if test "$1" = "none" -o "$OMPI_WANT_F77_BINDINGS" = "0"; then + OMPI_FORTRAN_VALUE_TRUE=0 + AC_MSG_RESULT([no Fortran 77 bindings -- skipped]) +else + + cat > conftestf.f <c_keyhash, - OMPI_FINT_2_INT(*keyval), - attribute_val, - &c_flag); - *ierr = OMPI_INT_2_FINT(c_err); - *flag = OMPI_INT_2_FINT(c_flag); + *ierr = OMPI_INT_2_FINT(ompi_attr_get_fortran_mpi1(c_comm->c_keyhash, + OMPI_FINT_2_INT(*keyval), + attribute_val, + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); + OMPI_SINGLE_INT_2_LOGICAL(flag); } diff --git a/ompi/mpi/f77/bindings.h b/ompi/mpi/f77/bindings.h index 197e0e7b08..f41fa870a8 100644 --- a/ompi/mpi/f77/bindings.h +++ b/ompi/mpi/f77/bindings.h @@ -51,10 +51,11 @@ * top-level always builds MPI_* bindings and bottom level will always build * PMPI_* bindings. This means that top-level includes "src/mpi/interface/f77" * .h files and lower-level includes "src/mpi/interface/f77/profile" .h files + * + * Both prototypes for all MPI- PMPI functions is moved into prototypes_mpi.h */ #include "mpi/f77/prototypes_mpi.h" -#include "mpi/f77/profile/prototypes_pmpi.h" #include "mpi/f77/fint_2_int.h" diff --git a/ompi/mpi/f77/cart_create_f.c b/ompi/mpi/f77/cart_create_f.c index 6e7ab01156..7ae5058d71 100644 --- a/ompi/mpi/f77/cart_create_f.c +++ b/ompi/mpi/f77/cart_create_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_CART_CREATE, pmpi_cart_create_, pmpi_cart_create__, pmpi_cart_create_f, - (MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr), + (MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Flogical *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr), (old_comm, ndims, dims, periods, reorder, comm_cart, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_CREATE, mpi_cart_create_, mpi_cart_create__, mpi_cart_create_f, - (MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr), + (MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Flogical *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr), (old_comm, ndims, dims, periods, reorder, comm_cart, ierr) ) #endif @@ -58,30 +58,34 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_CREATE, #endif void mpi_cart_create_f(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, - MPI_Fint *periods, MPI_Fint *reorder, - MPI_Fint *comm_cart, MPI_Fint *ierr) + MPI_Flogical *periods, MPI_Flogical *reorder, + MPI_Fint *comm_cart, MPI_Fint *ierr) { MPI_Comm c_comm1, c_comm2; int size; OMPI_ARRAY_NAME_DECL(dims); - OMPI_ARRAY_NAME_DECL(periods); + OMPI_LOGICAL_ARRAY_NAME_DECL(periods); c_comm1 = MPI_Comm_f2c(*old_comm); c_comm2 = MPI_Comm_f2c(*comm_cart); size = OMPI_FINT_2_INT(*ndims); OMPI_ARRAY_FINT_2_INT(dims, size); - OMPI_ARRAY_FINT_2_INT(periods, size); + OMPI_ARRAY_LOGICAL_2_INT(periods, size); *ierr = OMPI_INT_2_FINT(MPI_Cart_create(c_comm1, OMPI_FINT_2_INT(*ndims), - OMPI_ARRAY_NAME_CONVERT(dims), - OMPI_ARRAY_NAME_CONVERT(periods), - OMPI_FINT_2_INT(*reorder), - &c_comm2)); + OMPI_ARRAY_NAME_CONVERT(dims), + OMPI_LOGICAL_ARRAY_NAME_CONVERT(periods), + OMPI_LOGICAL_2_INT(*reorder), + &c_comm2)); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { *comm_cart = MPI_Comm_c2f(c_comm2); } + /* + * Need to convert back into Fortran, to not surprise the user + */ OMPI_ARRAY_FINT_2_INT_CLEANUP(dims); - OMPI_ARRAY_FINT_2_INT_CLEANUP(periods); + OMPI_ARRAY_INT_2_LOGICAL(periods, size); + OMPI_ARRAY_LOGICAL_2_INT_CLEANUP(periods); } diff --git a/ompi/mpi/f77/cart_get_f.c b/ompi/mpi/f77/cart_get_f.c index 71de2bac8e..192cb067d9 100644 --- a/ompi/mpi/f77/cart_get_f.c +++ b/ompi/mpi/f77/cart_get_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_CART_GET, pmpi_cart_get_, pmpi_cart_get__, pmpi_cart_get_f, - (MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Fint *coords, MPI_Fint *ierr), (comm, maxdims, dims, periods, coords, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_GET, mpi_cart_get_, mpi_cart_get__, mpi_cart_get_f, - (MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Fint *coords, MPI_Fint *ierr), (comm, maxdims, dims, periods, coords, ierr) ) #endif @@ -58,28 +58,29 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_GET, #endif void mpi_cart_get_f(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, - MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr) + MPI_Flogical *periods, MPI_Fint *coords, MPI_Fint *ierr) { MPI_Comm c_comm; int size; OMPI_ARRAY_NAME_DECL(dims); - OMPI_ARRAY_NAME_DECL(periods); OMPI_ARRAY_NAME_DECL(coords); - + OMPI_LOGICAL_ARRAY_NAME_DECL(periods); + c_comm = MPI_Comm_f2c(*comm); size = OMPI_FINT_2_INT(*maxdims); OMPI_ARRAY_FINT_2_INT_ALLOC(dims, size); - OMPI_ARRAY_FINT_2_INT_ALLOC(periods, size); OMPI_ARRAY_FINT_2_INT_ALLOC(coords, size); - + OMPI_ARRAY_LOGICAL_2_INT_ALLOC(periods, size); + *ierr = OMPI_INT_2_FINT(MPI_Cart_get(c_comm, - OMPI_FINT_2_INT(*maxdims), - OMPI_ARRAY_NAME_CONVERT(dims), - OMPI_ARRAY_NAME_CONVERT(periods), - OMPI_ARRAY_NAME_CONVERT(coords))); + OMPI_FINT_2_INT(*maxdims), + OMPI_ARRAY_NAME_CONVERT(dims), + OMPI_LOGICAL_ARRAY_NAME_CONVERT(periods), + OMPI_ARRAY_NAME_CONVERT(coords))); OMPI_ARRAY_INT_2_FINT(dims, size); - OMPI_ARRAY_INT_2_FINT(periods, size); + OMPI_ARRAY_INT_2_LOGICAL(periods, size); OMPI_ARRAY_INT_2_FINT(coords, size); + OMPI_ARRAY_LOGICAL_2_INT_CLEANUP(periods); } diff --git a/ompi/mpi/f77/cart_map_f.c b/ompi/mpi/f77/cart_map_f.c index 5a6e60d12c..a41df06889 100644 --- a/ompi/mpi/f77/cart_map_f.c +++ b/ompi/mpi/f77/cart_map_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_CART_MAP, pmpi_cart_map_, pmpi_cart_map__, pmpi_cart_map_f, - (MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Fint *newrank, MPI_Fint *ierr), (comm, ndims, dims, periods, newrank, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_MAP, mpi_cart_map_, mpi_cart_map__, mpi_cart_map_f, - (MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Fint *newrank, MPI_Fint *ierr), (comm, ndims, dims, periods, newrank, ierr) ) #endif @@ -58,27 +58,28 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_MAP, #endif void mpi_cart_map_f(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, - MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr) + MPI_Flogical *periods, MPI_Fint *newrank, MPI_Fint *ierr) { MPI_Comm c_comm; int size; OMPI_ARRAY_NAME_DECL(dims); - OMPI_ARRAY_NAME_DECL(periods); + OMPI_LOGICAL_ARRAY_NAME_DECL(periods); OMPI_SINGLE_NAME_DECL(newrank); c_comm = MPI_Comm_f2c(*comm); size = OMPI_FINT_2_INT(*ndims); OMPI_ARRAY_FINT_2_INT(dims, size); - OMPI_ARRAY_FINT_2_INT(periods, size); + OMPI_ARRAY_LOGICAL_2_INT(periods, size); *ierr = OMPI_INT_2_FINT(MPI_Cart_map(c_comm, - OMPI_FINT_2_INT(*ndims), - OMPI_ARRAY_NAME_CONVERT(dims), - OMPI_ARRAY_NAME_CONVERT(periods), - OMPI_SINGLE_NAME_CONVERT(newrank))); - + OMPI_FINT_2_INT(*ndims), + OMPI_ARRAY_NAME_CONVERT(dims), + OMPI_LOGICAL_ARRAY_NAME_CONVERT(periods), + OMPI_SINGLE_NAME_CONVERT(newrank))); + OMPI_ARRAY_FINT_2_INT_CLEANUP(dims); - OMPI_ARRAY_FINT_2_INT_CLEANUP(periods); + OMPI_ARRAY_INT_2_LOGICAL(periods, size); + OMPI_ARRAY_LOGICAL_2_INT_CLEANUP(periods); OMPI_SINGLE_INT_2_FINT(newrank); } diff --git a/ompi/mpi/f77/cart_sub_f.c b/ompi/mpi/f77/cart_sub_f.c index 41cb19fbcb..d23fb9ceca 100644 --- a/ompi/mpi/f77/cart_sub_f.c +++ b/ompi/mpi/f77/cart_sub_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_CART_SUB, pmpi_cart_sub_, pmpi_cart_sub__, pmpi_cart_sub_f, - (MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Flogical *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr), (comm, remain_dims, new_comm, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_SUB, mpi_cart_sub_, mpi_cart_sub__, mpi_cart_sub_f, - (MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Flogical *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr), (comm, remain_dims, new_comm, ierr) ) #endif @@ -57,16 +57,38 @@ OMPI_GENERATE_F77_BINDINGS (MPI_CART_SUB, #include "mpi/f77/profile/defines.h" #endif -void mpi_cart_sub_f(MPI_Fint *comm, MPI_Fint *remain_dims, - MPI_Fint *new_comm, MPI_Fint *ierr) +void mpi_cart_sub_f(MPI_Fint *comm, MPI_Flogical *remain_dims, + MPI_Fint *new_comm, MPI_Fint *ierr) { MPI_Comm c_comm, c_new_comm; + /* + * Just in the case, when sizeof(logical)!=sizeof(int) and + * Fortran TRUE-value != 1, we have to convert -- then we need + * to know the number of dimensions, for the size of remain_dims + */ +#if OMPI_FORTRAN_MUST_CONVERT_LOGICAL_2_INT == 1 + int ndims; +#endif + OMPI_LOGICAL_ARRAY_NAME_DECL(remain_dims); c_comm = MPI_Comm_f2c(*comm); c_new_comm = MPI_Comm_f2c(*new_comm); - *ierr = OMPI_INT_2_FINT(MPI_Cart_sub(c_comm, remain_dims, &c_new_comm)); +#if OMPI_FORTRAN_MUST_CONVERT_LOGICAL_2_INT == 1 + *ierr = OMPI_INT_2_FINT(MPI_Cartdim_get(c_comm, &ndims)); + if (MPI_SUCCESS != OMPI_FINT_2_INT(*ierr)) { + return; + } +#endif + OMPI_ARRAY_LOGICAL_2_INT(remain_dims, ndims); + + *ierr = OMPI_INT_2_FINT(MPI_Cart_sub(c_comm, + OMPI_LOGICAL_ARRAY_NAME_CONVERT(remain_dims), + &c_new_comm)); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { *new_comm = MPI_Comm_c2f(c_new_comm); } + + OMPI_ARRAY_INT_2_LOGICAL(remain_dims, ndims); + OMPI_ARRAY_LOGICAL_2_INT_CLEANUP(remain_dims); } diff --git a/ompi/mpi/f77/comm_get_attr_f.c b/ompi/mpi/f77/comm_get_attr_f.c index 1cb79aa902..9a44b0cc96 100644 --- a/ompi/mpi/f77/comm_get_attr_f.c +++ b/ompi/mpi/f77/comm_get_attr_f.c @@ -33,7 +33,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_COMM_GET_ATTR, pmpi_comm_get_attr_, pmpi_comm_get_attr__, pmpi_comm_get_attr_f, - (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr), (comm, comm_keyval, attribute_val, flag, ierr) ) #endif @@ -50,7 +50,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_GET_ATTR, mpi_comm_get_attr_, mpi_comm_get_attr__, mpi_comm_get_attr_f, - (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr), (comm, comm_keyval, attribute_val, flag, ierr) ) #endif @@ -60,11 +60,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_GET_ATTR, #endif void mpi_comm_get_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, - MPI_Aint *attribute_val, MPI_Fint *flag, + MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr) { - int c_err, c_flag; + int c_err; MPI_Comm c_comm = MPI_Comm_f2c(*comm); + OMPI_LOGICAL_NAME_DECL(flag); /* This stuff is very confusing. Be sure to see the comment at the top of src/attributes/attributes.c. */ @@ -72,7 +73,7 @@ void mpi_comm_get_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, c_err = ompi_attr_get_fortran_mpi2(c_comm->c_keyhash, OMPI_FINT_2_INT(*comm_keyval), attribute_val, - &c_flag); + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag)); *ierr = OMPI_INT_2_FINT(c_err); - *flag = OMPI_INT_2_FINT(c_flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } diff --git a/ompi/mpi/f77/comm_test_inter_f.c b/ompi/mpi/f77/comm_test_inter_f.c index 6cbaf11db9..98c38a1c43 100644 --- a/ompi/mpi/f77/comm_test_inter_f.c +++ b/ompi/mpi/f77/comm_test_inter_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_COMM_TEST_INTER, pmpi_comm_test_inter_, pmpi_comm_test_inter__, pmpi_comm_test_inter_f, - (MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *ierr), (comm, flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_TEST_INTER, mpi_comm_test_inter_, mpi_comm_test_inter__, mpi_comm_test_inter_f, - (MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *ierr), (comm, flag, ierr) ) #endif @@ -57,14 +57,13 @@ OMPI_GENERATE_F77_BINDINGS (MPI_COMM_TEST_INTER, #include "mpi/f77/profile/defines.h" #endif -void mpi_comm_test_inter_f(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr) +void mpi_comm_test_inter_f(MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_Comm c_comm = MPI_Comm_f2c (*comm); - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); - *ierr = OMPI_INT_2_FINT(MPI_Comm_test_inter(c_comm, - OMPI_SINGLE_NAME_CONVERT(flag))); + *ierr = OMPI_INT_2_FINT(MPI_Comm_test_inter(c_comm, OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/file_get_atomicity_f.c b/ompi/mpi/f77/file_get_atomicity_f.c index 1195e6d468..5f2ca3c732 100644 --- a/ompi/mpi/f77/file_get_atomicity_f.c +++ b/ompi/mpi/f77/file_get_atomicity_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_FILE_GET_ATOMICITY, pmpi_file_get_atomicity_, pmpi_file_get_atomicity__, pmpi_file_get_atomicity_f, - (MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr), (fh, flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_GET_ATOMICITY, mpi_file_get_atomicity_, mpi_file_get_atomicity__, mpi_file_get_atomicity_f, - (MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr), (fh, flag, ierr) ) #endif @@ -57,15 +57,15 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_GET_ATOMICITY, #include "mpi/f77/profile/defines.h" #endif -void mpi_file_get_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr) +void mpi_file_get_atomicity_f(MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_File c_fh; - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); c_fh = MPI_File_f2c(*fh); - *ierr = OMPI_INT_2_FINT(MPI_File_get_atomicity(c_fh, - OMPI_SINGLE_NAME_CONVERT(flag))); + *ierr = OMPI_INT_2_FINT(MPI_File_get_atomicity(c_fh, + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/file_set_atomicity_f.c b/ompi/mpi/f77/file_set_atomicity_f.c index 7cbe589eb1..ffba006b1d 100644 --- a/ompi/mpi/f77/file_set_atomicity_f.c +++ b/ompi/mpi/f77/file_set_atomicity_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_FILE_SET_ATOMICITY, pmpi_file_set_atomicity_, pmpi_file_set_atomicity__, pmpi_file_set_atomicity_f, - (MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr), (fh, flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_ATOMICITY, mpi_file_set_atomicity_, mpi_file_set_atomicity__, mpi_file_set_atomicity_f, - (MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr), (fh, flag, ierr) ) #endif @@ -57,10 +57,10 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FILE_SET_ATOMICITY, #include "mpi/f77/profile/defines.h" #endif -void mpi_file_set_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr) +void mpi_file_set_atomicity_f(MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_File c_fh = MPI_File_f2c(*fh); - *ierr = OMPI_INT_2_FINT(MPI_File_set_atomicity(c_fh, - OMPI_FINT_2_INT(*flag))); + *ierr = OMPI_INT_2_FINT(MPI_File_set_atomicity(c_fh, + OMPI_LOGICAL_2_INT(*flag))); } diff --git a/ompi/mpi/f77/finalized_f.c b/ompi/mpi/f77/finalized_f.c index 1c3be16207..3c8f45038f 100644 --- a/ompi/mpi/f77/finalized_f.c +++ b/ompi/mpi/f77/finalized_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_FINALIZED, pmpi_finalized_, pmpi_finalized__, pmpi_finalized_f, - (MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Flogical *flag, MPI_Fint *ierr), (flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FINALIZED, mpi_finalized_, mpi_finalized__, mpi_finalized_f, - (MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Flogical *flag, MPI_Fint *ierr), (flag, ierr) ) #endif @@ -57,11 +57,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_FINALIZED, #include "mpi/f77/profile/defines.h" #endif -void mpi_finalized_f(MPI_Fint *flag, MPI_Fint *ierr) +void mpi_finalized_f(MPI_Flogical *flag, MPI_Fint *ierr) { - OMPI_SINGLE_NAME_DECL(flag); - *ierr = OMPI_INT_2_FINT(MPI_Finalized(OMPI_SINGLE_NAME_CONVERT(flag))); + OMPI_LOGICAL_NAME_DECL(flag); + + *ierr = OMPI_INT_2_FINT(MPI_Finalized(OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/fint_2_int.h b/ompi/mpi/f77/fint_2_int.h index 73c61d1205..cb3b1f7516 100644 --- a/ompi/mpi/f77/fint_2_int.h +++ b/ompi/mpi/f77/fint_2_int.h @@ -139,7 +139,92 @@ } \ free(OMPI_ARRAY_NAME_CONVERT(in)) - #endif +/* + * Define MACROS to take account of different size of logical from int + */ + +#if OMPI_SIZEOF_FORTRAN_LOGICAL == SIZEOF_INT +# define OMPI_LOGICAL_NAME_DECL(in) /* Not needed for int==logical */ +# define OMPI_LOGICAL_NAME_CONVERT(in) in /* Not needed for int==logical */ +# define OMPI_LOGICAL_SINGLE_NAME_CONVERT(in) in /* Not needed for int==logical */ +# define OMPI_LOGICAL_ARRAY_NAME_DECL(in) /* Not needed for int==logical */ +# define OMPI_LOGICAL_ARRAY_NAME_CONVERT(in) in /* Not needed for int==logical */ +# define OMPI_ARRAY_LOGICAL_2_INT_ALLOC(in,n) /* Not needed for int==logical */ +# define OMPI_ARRAY_LOGICAL_2_INT_CLEANUP(in) /* Not needed for int==logical */ + +# if OMPI_FORTRAN_VALUE_TRUE == 1 +# define OMPI_FORTRAN_MUST_CONVERT_LOGICAL_2_INT 0 +# define OMPI_LOGICAL_2_INT(a) a +# define OMPI_INT_2_LOGICAL(a) a +# define OMPI_ARRAY_LOGICAL_2_INT(in, n) +# define OMPI_ARRAY_INT_2_LOGICAL(in, n) +# define OMPI_SINGLE_INT_2_LOGICAL(a) /* Single-OUT variable -- Not needed for int==logical, true=1 */ +# else +# define OMPI_FORTRAN_MUST_CONVERT_LOGICAL_2_INT 1 +# define OMPI_LOGICAL_2_INT(a) ((a)==0? 0 : 1) +# define OMPI_INT_2_LOGICAL(a) ((a)==0? 0 : OMPI_FORTRAN_VALUE_TRUE) +# define OMPI_SINGLE_INT_2_LOGICAL(a) *a=OMPI_INT_2_LOGICAL(OMPI_LOGICAL_NAME_CONVERT(*a)) +# define OMPI_ARRAY_LOGICAL_2_INT(in, n) do { \ + int __n = (n); \ + OMPI_ARRAY_LOGICAL_2_INT_ALLOC(in, __n); \ + while (__n > 0) { \ + OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)[__n]=OMPI_LOGICAL_2_INT(in[__n]); \ + __n--; \ + } \ + } while (0) +# define OMPI_ARRAY_INT_2_LOGICAL(in, n) do { \ + int __n = (n); \ + while (__n > 0) { \ + in[__n]=OMPI_INT_2_LOGICAL(OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)[__n]); \ + __n--; \ + } \ + } while (0) \ + /* free(OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)) * No Need to free, here */ + +# endif +#else +/* + * For anything other than Fortran-logical == C-int, we have to convert + */ +# define OMPI_FORTRAN_MUST_CONVERT_LOGICAL_2_INT 1 +# define OMPI_LOGICAL_NAME_DECL(in) int c_##in +# define OMPI_LOGICAL_NAME_CONVERT(in) c_##in +# define OMPI_LOGICAL_SINGLE_NAME_CONVERT(in) &c_##in +# define OMPI_LOGICAL_ARRAY_NAME_DECL(in) int * c_##in +# define OMPI_LOGICAL_ARRAY_NAME_CONVERT(in) c_##in +# define OMPI_ARRAY_LOGICAL_2_INT_ALLOC(in,n) \ + OMPI_LOGICAL_ARRAY_NAME_CONVERT(in) = malloc(n * sizeof(int)) +# define OMPI_ARRAY_LOGICAL_2_INT_CLEANUP(in) \ + free(OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)) + +# if OMPI_FORTRAN_VALUE_TRUE == 1 +# define OMPI_LOGICAL_2_INT(a) (int)a +# define OMPI_INT_2_LOGICAL(a) (MPI_Flogical)a +# define OMPI_SINGLE_INT_2_LOGICAL(a) *a=(OMPI_INT_2_LOGICAL(OMPI_LOGICAL_NAME_CONVERT(a))) +# else +# define OMPI_LOGICAL_2_INT(a) ((a)==0? 0 : 1) +# define OMPI_INT_2_LOGICAL(a) ((a)==0? 0 : OMPI_FORTRAN_VALUE_TRUE) +# define OMPI_SINGLE_INT_2_LOGICAL(a) *a=(OMPI_INT_2_LOGICAL(OMPI_LOGICAL_NAME_CONVERT(a))) +# endif +# define OMPI_ARRAY_LOGICAL_2_INT(in, n) do { \ + int __n = (n); \ + OMPI_ARRAY_LOGICAL_2_INT_ALLOC(in, __n); \ + while (__n > 0) { \ + OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)[__n]=OMPI_LOGICAL_2_INT(in[__n]); \ + __n--; \ + } \ + } while (0) +# define OMPI_ARRAY_INT_2_LOGICAL(in, n) do { \ + int __n = (n); \ + while (__n > 0) { \ + in[__n]=OMPI_INT_2_LOGICAL(OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)[__n]); \ + __n--; \ + } \ + } while (0) \ + /* free(OMPI_LOGICAL_ARRAY_NAME_CONVERT(in)) * No Need to free, here */ +#endif /* OMPI_SIZEOF_FORTRAN_LOGICAL */ + + #endif /* OMPI_FINT_2_INT_H */ diff --git a/ompi/mpi/f77/graph_create_f.c b/ompi/mpi/f77/graph_create_f.c index 362c76bcf3..6ee51c9638 100644 --- a/ompi/mpi/f77/graph_create_f.c +++ b/ompi/mpi/f77/graph_create_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_GRAPH_CREATE, pmpi_graph_create_, pmpi_graph_create__, pmpi_graph_create_f, - (MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr), + (MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Flogical *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr), (comm_old, nnodes, index, edges, reorder, comm_graph, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_GRAPH_CREATE, mpi_graph_create_, mpi_graph_create__, mpi_graph_create_f, - (MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr), + (MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Flogical *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr), (comm_old, nnodes, index, edges, reorder, comm_graph, ierr) ) #endif @@ -58,27 +58,27 @@ OMPI_GENERATE_F77_BINDINGS (MPI_GRAPH_CREATE, #endif void mpi_graph_create_f(MPI_Fint *comm_old, MPI_Fint *nnodes, - MPI_Fint *index, MPI_Fint *edges, - MPI_Fint *reorder, MPI_Fint *comm_graph, - MPI_Fint *ierr) + MPI_Fint *index, MPI_Fint *edges, + MPI_Flogical *reorder, MPI_Fint *comm_graph, + MPI_Fint *ierr) { MPI_Comm c_comm_old, c_comm_graph; OMPI_ARRAY_NAME_DECL(index); OMPI_ARRAY_NAME_DECL(edges); - + c_comm_old = MPI_Comm_f2c(*comm_old); - + OMPI_ARRAY_FINT_2_INT(index, *nnodes); - + /* Number of edges is equal to the last entry in the index array */ OMPI_ARRAY_FINT_2_INT(edges, index[*nnodes - 1]); *ierr = OMPI_INT_2_FINT(MPI_Graph_create(c_comm_old, - OMPI_FINT_2_INT(*nnodes), - OMPI_ARRAY_NAME_CONVERT(index), - OMPI_ARRAY_NAME_CONVERT(edges), - OMPI_FINT_2_INT(*reorder), - &c_comm_graph)); + OMPI_FINT_2_INT(*nnodes), + OMPI_ARRAY_NAME_CONVERT(index), + OMPI_ARRAY_NAME_CONVERT(edges), + OMPI_LOGICAL_2_INT(*reorder), + &c_comm_graph)); if (OMPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { *comm_graph = MPI_Comm_c2f(c_comm_graph); } diff --git a/ompi/mpi/f77/info_get_f.c b/ompi/mpi/f77/info_get_f.c index 93e66c2d0d..fd0fd1d639 100644 --- a/ompi/mpi/f77/info_get_f.c +++ b/ompi/mpi/f77/info_get_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_INFO_GET, pmpi_info_get_, pmpi_info_get__, pmpi_info_get_f, - (MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Flogical *flag, MPI_Fint *ierr), (info, key, valuelen, value, flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INFO_GET, mpi_info_get_, mpi_info_get__, mpi_info_get_f, - (MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Flogical *flag, MPI_Fint *ierr), (info, key, valuelen, value, flag, ierr) ) #endif @@ -58,18 +58,18 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INFO_GET, #endif void mpi_info_get_f(MPI_Fint *info, char *key, MPI_Fint *valuelen, - char *value, MPI_Fint *flag, MPI_Fint *ierr) + char *value, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_Info c_info; - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); c_info = MPI_Info_f2c(*info); - *ierr = OMPI_INT_2_FINT(MPI_Info_get(c_info, key, - OMPI_FINT_2_INT(*valuelen), - value, - OMPI_SINGLE_NAME_CONVERT(flag))); + *ierr = OMPI_INT_2_FINT(MPI_Info_get(c_info, key, + OMPI_FINT_2_INT(*valuelen), + value, + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/info_get_valuelen_f.c b/ompi/mpi/f77/info_get_valuelen_f.c index 6906449ad5..6825aff491 100644 --- a/ompi/mpi/f77/info_get_valuelen_f.c +++ b/ompi/mpi/f77/info_get_valuelen_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_INFO_GET_VALUELEN, pmpi_info_get_valuelen_, pmpi_info_get_valuelen__, pmpi_info_get_valuelen_f, - (MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Flogical *flag, MPI_Fint *ierr), (info, key, valuelen, flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INFO_GET_VALUELEN, mpi_info_get_valuelen_, mpi_info_get_valuelen__, mpi_info_get_valuelen_f, - (MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Flogical *flag, MPI_Fint *ierr), (info, key, valuelen, flag, ierr) ) #endif @@ -58,20 +58,19 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INFO_GET_VALUELEN, #endif void mpi_info_get_valuelen_f(MPI_Fint *info, char *key, - MPI_Fint *valuelen, MPI_Fint *flag, - MPI_Fint *ierr) + MPI_Fint *valuelen, MPI_Flogical *flag, + MPI_Fint *ierr) { MPI_Info c_info; OMPI_SINGLE_NAME_DECL(valuelen); - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); c_info = MPI_Info_f2c(*info); *ierr = OMPI_INT_2_FINT(MPI_Info_get_valuelen(c_info, key, - OMPI_SINGLE_NAME_CONVERT(valuelen), - OMPI_SINGLE_NAME_CONVERT(flag) - )); + OMPI_SINGLE_NAME_CONVERT(valuelen), + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { OMPI_SINGLE_INT_2_FINT(valuelen); - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/initialized_f.c b/ompi/mpi/f77/initialized_f.c index c6c627b4d7..58c4eb8dd8 100644 --- a/ompi/mpi/f77/initialized_f.c +++ b/ompi/mpi/f77/initialized_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_INITIALIZED, pmpi_initialized_, pmpi_initialized__, pmpi_initialized_f, - (MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Flogical *flag, MPI_Fint *ierr), (flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INITIALIZED, mpi_initialized_, mpi_initialized__, mpi_initialized_f, - (MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Flogical *flag, MPI_Fint *ierr), (flag, ierr) ) #endif @@ -57,11 +57,11 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INITIALIZED, #include "mpi/f77/profile/defines.h" #endif -void mpi_initialized_f(MPI_Fint *flag, MPI_Fint *ierr) +void mpi_initialized_f(MPI_Flogical *flag, MPI_Fint *ierr) { - OMPI_SINGLE_NAME_DECL(flag); - *ierr = OMPI_INT_2_FINT(MPI_Initialized(OMPI_SINGLE_NAME_CONVERT(flag))); + OMPI_LOGICAL_NAME_DECL(flag); + *ierr = OMPI_INT_2_FINT(MPI_Initialized(OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/intercomm_merge_f.c b/ompi/mpi/f77/intercomm_merge_f.c index 570b6c325a..5e21bebd28 100644 --- a/ompi/mpi/f77/intercomm_merge_f.c +++ b/ompi/mpi/f77/intercomm_merge_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_INTERCOMM_MERGE, pmpi_intercomm_merge_, pmpi_intercomm_merge__, pmpi_intercomm_merge_f, - (MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr), + (MPI_Fint *intercomm, MPI_Flogical *high, MPI_Fint *newintercomm, MPI_Fint *ierr), (intercomm, high, newintercomm, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_INTERCOMM_MERGE, mpi_intercomm_merge_, mpi_intercomm_merge__, mpi_intercomm_merge_f, - (MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr), + (MPI_Fint *intercomm, MPI_Flogical *high, MPI_Fint *newintercomm, MPI_Fint *ierr), (intercomm, high, newintercomm, ierr) ) #endif @@ -57,15 +57,15 @@ 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_Flogical *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, OMPI_FINT_2_INT(*high), - &c_newcomm ); + *ierr = MPI_Intercomm_merge (c_intercomm, OMPI_LOGICAL_2_INT(*high), + &c_newcomm); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { *newintracomm = MPI_Comm_c2f (c_newcomm); } diff --git a/ompi/mpi/f77/iprobe_f.c b/ompi/mpi/f77/iprobe_f.c index 21bb2f9249..d83f0f6800 100644 --- a/ompi/mpi/f77/iprobe_f.c +++ b/ompi/mpi/f77/iprobe_f.c @@ -34,7 +34,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_IPROBE, pmpi_iprobe_, pmpi_iprobe__, pmpi_iprobe_f, - (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (source, tag, comm, flag, status, ierr) ) #endif @@ -51,7 +51,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IPROBE, mpi_iprobe_, mpi_iprobe__, mpi_iprobe_f, - (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (source, tag, comm, flag, status, ierr) ) #endif @@ -61,14 +61,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IPROBE, #endif void mpi_iprobe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, - MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr) + MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr) { MPI_Status *c_status; MPI_Comm c_comm; #if OMPI_SIZEOF_FORTRAN_INTEGER != SIZEOF_INT MPI_Status c_status2; #endif - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); c_comm = MPI_Comm_f2c (*comm); @@ -89,11 +89,11 @@ void mpi_iprobe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, } *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_FINT_2_INT(*tag), + c_comm, OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag), + c_status)); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); #if OMPI_SIZEOF_FORTRAN_INTEGER != SIZEOF_INT if (MPI_STATUS_IGNORE != c_status) { MPI_Status_c2f(c_status, status); diff --git a/ompi/mpi/f77/is_thread_main_f.c b/ompi/mpi/f77/is_thread_main_f.c index 6b6858f77c..30b1ea4165 100644 --- a/ompi/mpi/f77/is_thread_main_f.c +++ b/ompi/mpi/f77/is_thread_main_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_IS_THREAD_MAIN, pmpi_is_thread_main_, pmpi_is_thread_main__, pmpi_is_thread_main_f, - (MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Flogical *flag, MPI_Fint *ierr), (flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IS_THREAD_MAIN, mpi_is_thread_main_, mpi_is_thread_main__, mpi_is_thread_main_f, - (MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Flogical *flag, MPI_Fint *ierr), (flag, ierr) ) #endif @@ -57,13 +57,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_IS_THREAD_MAIN, #include "mpi/f77/profile/defines.h" #endif -void mpi_is_thread_main_f(MPI_Fint *flag, MPI_Fint *ierr) +void mpi_is_thread_main_f(MPI_Flogical *flag, MPI_Fint *ierr) { - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); - *ierr = OMPI_INT_2_FINT(MPI_Is_thread_main(OMPI_SINGLE_NAME_CONVERT(flag) - )); + *ierr = OMPI_INT_2_FINT(MPI_Is_thread_main(OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f77/op_create_f.c b/ompi/mpi/f77/op_create_f.c index 3ab7d84cd8..e0996397a4 100644 --- a/ompi/mpi/f77/op_create_f.c +++ b/ompi/mpi/f77/op_create_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_OP_CREATE, pmpi_op_create_, pmpi_op_create__, pmpi_op_create_f, - (ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr), + (ompi_op_fortran_handler_fn_t* function, MPI_Flogical *commute, MPI_Fint *op, MPI_Fint *ierr), (function, commute, op, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_OP_CREATE, mpi_op_create_, mpi_op_create__, mpi_op_create_f, - (ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr), + (ompi_op_fortran_handler_fn_t* function, MPI_Flogical *commute, MPI_Fint *op, MPI_Fint *ierr), (function, commute, op, ierr) ) #endif @@ -57,7 +57,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_OP_CREATE, #include "mpi/f77/profile/defines.h" #endif -void mpi_op_create_f(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, +void mpi_op_create_f(ompi_op_fortran_handler_fn_t* function, MPI_Flogical *commute, MPI_Fint *op, MPI_Fint *ierr) { MPI_Op c_op; @@ -66,8 +66,8 @@ void mpi_op_create_f(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, (void*) for function pointers in this function */ *ierr = OMPI_INT_2_FINT(MPI_Op_create((MPI_User_function *) function, - OMPI_FINT_2_INT(*commute), - &c_op)); + OMPI_LOGICAL_2_INT(*commute), + &c_op)); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { c_op->o_flags |= OMPI_OP_FLAGS_FORTRAN_FUNC; *op = MPI_Op_c2f(c_op); diff --git a/ompi/mpi/f77/profile/Makefile.am b/ompi/mpi/f77/profile/Makefile.am index b03b270c21..fe384b5b48 100644 --- a/ompi/mpi/f77/profile/Makefile.am +++ b/ompi/mpi/f77/profile/Makefile.am @@ -39,8 +39,7 @@ noinst_LTLIBRARIES += endif headers = \ - defines.h \ - prototypes_pmpi.h + defines.h nodist_libmpi_f77_pmpi_la_SOURCES = \ pabort_f.c \ diff --git a/ompi/mpi/f77/profile/prototypes_pmpi.h b/ompi/mpi/f77/profile/prototypes_pmpi.h deleted file mode 100644 index eddcfe7e5e..0000000000 --- a/ompi/mpi/f77/profile/prototypes_pmpi.h +++ /dev/null @@ -1,1486 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * This file prototypes all MPI fortran functions in all four fortran - * symbol conventions as well as all the internal real OMPI wrapper - * functions (different from any of the four fortran symbol - * conventions for clarity, at the cost of more typing for me...). - * This file is included in the top-level build ONLY. The prototyping - * is done ONLY for MPI_* bindings - * - * Zeroth, the OMPI wrapper functions, with a _f suffix. - * - * This is needed ONLY if the lower-level prototypes_pmpi.h has not - * already been included - * - * Note about function pointers: all function pointers are prototyped - * here as (void*) rather than including the .h file that defines the - * proper type (e.g., "op/op.h" defines ompi_op_fortran_handler_fn_t, - * which is the function pointer type for fortran op callback - * functions. This is because there is no type checking coming in - * from fortran, so why bother? Also, including "op/op.h" (and - * friends) makes the all the f77 bindings files dependant on these - * files -- any change to any one of them will cause the recompilation - * of the entire set of f77 bindings (ugh!). - */ - -#ifndef OMPI_F77_PROTOTYPES_PMPI_H -#define OMPI_F77_PROTOTYPES_PMPI_H - -/* - * pmpi_*_f definitions go here --- .mpif_f.h - */ -void pmpi_abort_f(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_accumulate_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 *op, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_add_error_class_f(MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_add_error_code_f(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_add_error_string_f(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void pmpi_address_f(char *location, MPI_Fint *address, MPI_Fint *ierr); -void pmpi_allgather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_allgatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alloc_mem_f(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void pmpi_allreduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoall_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallv_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallw_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_attr_delete_f(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_attr_get_f(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_attr_put_f(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void pmpi_barrier_f(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bcast_f(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend_init_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 pmpi_buffer_attach_f(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_buffer_detach_f(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_cancel_f(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_cart_coords_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_create_f(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void pmpi_cart_get_f(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_map_f(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_cart_rank_f(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_cart_shift_f(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void pmpi_cart_sub_f(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void pmpi_cartdim_get_f(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void pmpi_close_port_f(char *port_name, MPI_Fint *ierr); -void pmpi_comm_accept_f(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_call_errhandler_f(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_comm_compare_f(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_comm_connect_f(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_create_errhandler_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_create_keyval_f(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_comm_create_f(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_delete_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_disconnect_f(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_dup_f(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_free_keyval_f(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_free_f(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_get_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_comm_get_errhandler_f(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void pmpi_comm_get_name_f(MPI_Fint *comm, char *comm_name, - MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void pmpi_comm_get_parent_f(MPI_Fint *parent, MPI_Fint *ierr); -void pmpi_comm_group_f(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_join_f(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void pmpi_comm_rank_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_comm_remote_group_f(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_remote_size_f(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_set_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_comm_set_errhandler_f(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_set_name_f(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, - int name_len); -void pmpi_comm_size_f(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_spawn_f(char *command, char *argv, MPI_Fint *maxprocs, - MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, - MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, - MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_spawn_multiple_f(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_split_f(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_test_inter_f(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_dims_create_f(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void pmpi_errhandler_create_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_free_f(MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_get_f(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_set_f(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_error_class_f(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_error_string_f(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_exscan_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_file_call_errhandler_f(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_file_create_errhandler_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_set_errhandler_f(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_get_errhandler_f(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_open_f(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_close_f(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_delete_f(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_set_size_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_preallocate_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_size_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_group_f(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_file_get_amode_f(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void pmpi_file_set_info_f(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_info_f(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void pmpi_file_set_view_f(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_view_f(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void pmpi_file_read_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_at_all_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_seek_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_get_byte_offset_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void pmpi_file_read_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_seek_shared_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position_shared_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_read_at_all_begin_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_at_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all_begin_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_at_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_ordered_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_ordered_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_get_type_extent_f(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_file_set_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_get_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_sync_f(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_finalize_f(MPI_Fint *ierr); -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_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); -void pmpi_get_processor_name_f(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_get_version_f(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void pmpi_graph_create_f(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void pmpi_graph_get_f(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void pmpi_graph_map_f(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_graph_neighbors_count_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void pmpi_graph_neighbors_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void pmpi_graphdims_get_f(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void pmpi_grequest_complete_f(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_grequest_start_f(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_group_compare_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_group_difference_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_excl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_free_f(MPI_Fint *group, MPI_Fint *ierr); -void pmpi_group_incl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_intersection_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_excl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_incl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_rank_f(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_group_size_f(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_group_translate_ranks_f(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void pmpi_group_union_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_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 pmpi_info_create_f(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_delete_f(MPI_Fint *info, char *key, MPI_Fint *ierr); -void pmpi_info_dup_f(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void pmpi_info_free_f(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_get_f(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_get_nkeys_f(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void pmpi_info_get_nthkey_f(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void pmpi_info_get_valuelen_f(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_set_f(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void pmpi_init_f(MPI_Fint *ierr); -void pmpi_initialized_f(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_init_thread_f(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_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 pmpi_intercomm_merge_f(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void pmpi_iprobe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_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 pmpi_irsend_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 pmpi_isend_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 pmpi_issend_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 pmpi_is_thread_main_f(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_keyval_create_f(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_keyval_free_f(MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_lookup_name_f(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_create_f(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void pmpi_open_port_f(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_free_f(MPI_Fint *op, MPI_Fint *ierr); -void pmpi_pack_external_f(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void pmpi_pack_external_size_f(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pack_f(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_pack_size_f(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pcontrol_f(MPI_Fint *level); -void pmpi_probe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_publish_name_f(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_put_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); -void pmpi_query_thread_f(MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_recv_init_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 pmpi_recv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_reduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_reduce_scatter_f(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_register_datarep_f(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_request_free_f(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_request_get_status_f(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_rsend_f(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_rsend_init_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 pmpi_scan_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_scatter_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_scatterv_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_send_init_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 pmpi_send_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_sendrecv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_sendrecv_replace_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_ssend_init_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 pmpi_ssend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_start_f(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_startall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void pmpi_status_set_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_status_set_elements_f(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void pmpi_testall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_testany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test_f(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_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 pmpi_topo_test_f(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_type_commit_f(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_contiguous_f(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_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 pmpi_type_create_f90_complex_f(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_integer_f(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_real_f(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hindexed_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hvector_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_keyval_f(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_type_create_indexed_block_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_struct_f(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_subarray_f(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_resized_f(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_delete_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_dup_f(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_extent_f(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_type_free_f(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_free_keyval_f(MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_get_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_type_get_contents_f(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void pmpi_type_get_envelope_f(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void pmpi_type_get_extent_f(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void pmpi_type_get_name_f(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_type_get_true_extent_f(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void pmpi_type_hindexed_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_hvector_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_indexed_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_lb_f(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void pmpi_type_match_size_f(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_set_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void pmpi_type_set_name_f(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void pmpi_type_size_f(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_type_struct_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_ub_f(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void pmpi_type_vector_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_unpack_f(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_unpublish_name_f(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_unpack_external_f (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_waitall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_waitany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_wait_f(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_waitsome_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 pmpi_win_call_errhandler_f(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_win_complete_f(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create_f(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create_errhandler_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_create_keyval_f(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_win_delete_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_fence_f(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free_f(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free_keyval_f(MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_get_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_get_errhandler_f(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_get_group_f(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_win_get_name_f(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_win_lock_f(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_post_f(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_set_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_win_set_errhandler_f(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_set_name_f(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void pmpi_win_start_f(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_test_f(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_unlock_f(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_wait_f(MPI_Fint *win, MPI_Fint *ierr); -double pmpi_wtick_f(void); -double pmpi_wtime_f(void); -/*This is the all lower case prototypes*/ - -void pmpi_abort(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_accumulate(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_add_error_class(MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_add_error_code(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_add_error_string(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void pmpi_address(char *location, MPI_Fint *address, MPI_Fint *ierr); -void pmpi_allgather(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_allgatherv(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alloc_mem(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void pmpi_allreduce(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoall(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallv(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallw(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_attr_delete(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_attr_get(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_attr_put(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void pmpi_barrier(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bcast(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend_init(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_buffer_attach(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_buffer_detach(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_cancel(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_cart_coords(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_create(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void pmpi_cart_get(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_map(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_cart_rank(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_cart_shift(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void pmpi_cart_sub(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void pmpi_cartdim_get(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void pmpi_close_port(char *port_name, MPI_Fint *ierr); -void pmpi_comm_accept(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_call_errhandler(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_comm_compare(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_comm_connect(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_create_errhandler(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_create_keyval(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_comm_create(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_delete_attr(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_disconnect(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_dup(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_free_keyval(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_free(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_get_attr(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_comm_get_errhandler(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void pmpi_comm_get_name(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void pmpi_comm_get_parent(MPI_Fint *parent, MPI_Fint *ierr); -void pmpi_comm_group(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_join(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void pmpi_comm_rank(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_comm_remote_group(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_remote_size(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_set_attr(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_comm_set_errhandler(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_set_name(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void pmpi_comm_size(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_spawn(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_spawn_multiple(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_split(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_test_inter(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_dims_create(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void pmpi_errhandler_create(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_free(MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_get(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_set(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_error_class(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_error_string(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_exscan(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_file_call_errhandler(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_file_create_errhandler(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_set_errhandler(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_get_errhandler(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_open(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_close(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_delete(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_set_size(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_preallocate(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_size(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_group(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_file_get_amode(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void pmpi_file_set_info(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_info(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void pmpi_file_set_view(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_view(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void pmpi_file_read_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_at_all(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_seek(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_get_byte_offset(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void pmpi_file_read_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read_ordered(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_seek_shared(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position_shared(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_read_at_all_begin(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_at_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all_begin(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_at_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_ordered_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_ordered_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_ordered_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_get_type_extent(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_file_set_atomicity(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_get_atomicity(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_sync(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_finalize(MPI_Fint *ierr); -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_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); -void pmpi_get_processor_name(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_get_version(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void pmpi_graph_create(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void pmpi_graph_get(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void pmpi_graph_map(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_graph_neighbors_count(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void pmpi_graph_neighbors(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void pmpi_graphdims_get(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void pmpi_grequest_complete(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_grequest_start(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_group_compare(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_group_difference(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_excl(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_free(MPI_Fint *group, MPI_Fint *ierr); -void pmpi_group_incl(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_intersection(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_excl(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_incl(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_rank(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_group_size(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_group_translate_ranks(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void pmpi_group_union(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_ibsend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_info_create(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_delete(MPI_Fint *info, char *key, MPI_Fint *ierr); -void pmpi_info_dup(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void pmpi_info_free(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_get(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_get_nkeys(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void pmpi_info_get_nthkey(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void pmpi_info_get_valuelen(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_set(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void pmpi_init(MPI_Fint *ierr); -void pmpi_initialized(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_init_thread(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_intercomm_create(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 pmpi_intercomm_merge(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void pmpi_iprobe(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_irecv(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_irsend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_isend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_issend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_is_thread_main(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_keyval_create(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_keyval_free(MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_lookup_name(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_create(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void pmpi_open_port(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_free(MPI_Fint *op, MPI_Fint *ierr); -void pmpi_pack_external(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void pmpi_pack_external_size(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pack(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_pack_size(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pcontrol(MPI_Fint *level); -void pmpi_probe(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_publish_name(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_put(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); -void pmpi_query_thread(MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_recv_init(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_recv(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_reduce(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_reduce_scatter(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_register_datarep(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_request_free(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_request_get_status(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_rsend(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_rsend_init(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_scan(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_scatter(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_scatterv(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_send_init(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_send(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_sendrecv(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_sendrecv_replace(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_ssend_init(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_ssend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_start(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_startall(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void pmpi_status_set_cancelled(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_status_set_elements(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void pmpi_testall(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_testany(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test_cancelled(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_testsome(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 pmpi_topo_test(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_type_commit(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_contiguous(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_darray(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 pmpi_type_create_f90_complex(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_integer(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_real(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hindexed(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hvector(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_keyval(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_type_create_indexed_block(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_struct(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_subarray(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_resized(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_delete_attr(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_dup(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_extent(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_type_free(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_free_keyval(MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_get_attr(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_type_get_contents(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void pmpi_type_get_envelope(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void pmpi_type_get_extent(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void pmpi_type_get_name(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_type_get_true_extent(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void pmpi_type_hindexed(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_hvector(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_indexed(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_lb(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void pmpi_type_match_size(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_set_attr(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void pmpi_type_set_name(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void pmpi_type_size(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_type_struct(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_ub(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void pmpi_type_vector(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_unpack(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_unpublish_name(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_unpack_external (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_waitall(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_waitany(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_wait(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_waitsome(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 pmpi_win_call_errhandler(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_win_complete(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create_errhandler(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_create_keyval(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_win_delete_attr(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_fence(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free_keyval(MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_get_attr(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_get_errhandler(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_get_group(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_win_get_name(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_win_lock(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_post(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_set_attr(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_win_set_errhandler(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_set_name(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void pmpi_win_start(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_test(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_unlock(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_wait(MPI_Fint *win, MPI_Fint *ierr); -double pmpi_wtick(void); -double pmpi_wtime(void); -/*This is the single underscore prototypes*/ - -void pmpi_abort_(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_accumulate_(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_add_error_class_(MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_add_error_code_(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_add_error_string_(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void pmpi_address_(char *location, MPI_Fint *address, MPI_Fint *ierr); -void pmpi_allgather_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_allgatherv_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alloc_mem_(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void pmpi_allreduce_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoall_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallv_(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallw_(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_attr_delete_(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_attr_get_(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_attr_put_(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void pmpi_barrier_(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bcast_(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend_init_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_buffer_attach_(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_buffer_detach_(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_cancel_(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_cart_coords_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_create_(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void pmpi_cart_get_(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_map_(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_cart_rank_(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_cart_shift_(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void pmpi_cart_sub_(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void pmpi_cartdim_get_(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void pmpi_close_port_(char *port_name, MPI_Fint *ierr); -void pmpi_comm_accept_(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_call_errhandler_(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_comm_compare_(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_comm_connect_(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_create_errhandler_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_create_keyval_(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_comm_create_(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_delete_attr_(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_disconnect_(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_dup_(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_free_keyval_(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_free_(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_get_attr_(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_comm_get_errhandler_(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void pmpi_comm_get_name_(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void pmpi_comm_get_parent_(MPI_Fint *parent, MPI_Fint *ierr); -void pmpi_comm_group_(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_join_(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void pmpi_comm_rank_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_comm_remote_group_(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_remote_size_(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_set_attr_(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_comm_set_errhandler_(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_set_name_(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void pmpi_comm_size_(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_spawn_(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_spawn_multiple_(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_split_(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_test_inter_(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_dims_create_(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void pmpi_errhandler_create_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_free_(MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_get_(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_set_(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_error_class_(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_error_string_(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_exscan_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_file_call_errhandler_(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_file_create_errhandler_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_set_errhandler_(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_get_errhandler_(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_open_(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_close_(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_delete_(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_set_size_(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_preallocate_(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_size_(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_group_(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_file_get_amode_(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void pmpi_file_set_info_(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_info_(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void pmpi_file_set_view_(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_view_(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void pmpi_file_read_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_at_all_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_seek_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_get_byte_offset_(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void pmpi_file_read_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read_ordered_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_seek_shared_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position_shared_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_read_at_all_begin_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_at_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all_begin_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_at_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_ordered_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_ordered_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_ordered_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_get_type_extent_(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_file_set_atomicity_(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_get_atomicity_(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_sync_(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_finalize_(MPI_Fint *ierr); -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_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); -void pmpi_get_processor_name_(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_get_version_(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void pmpi_graph_create_(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void pmpi_graph_get_(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void pmpi_graph_map_(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_graph_neighbors_count_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void pmpi_graph_neighbors_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void pmpi_graphdims_get_(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void pmpi_grequest_complete_(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_grequest_start_(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_group_compare_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_group_difference_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_excl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_free_(MPI_Fint *group, MPI_Fint *ierr); -void pmpi_group_incl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_intersection_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_excl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_incl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_rank_(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_group_size_(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_group_translate_ranks_(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void pmpi_group_union_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_ibsend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_info_create_(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_delete_(MPI_Fint *info, char *key, MPI_Fint *ierr); -void pmpi_info_dup_(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void pmpi_info_free_(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_get_(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_get_nkeys_(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void pmpi_info_get_nthkey_(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void pmpi_info_get_valuelen_(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_set_(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void pmpi_init_(MPI_Fint *ierr); -void pmpi_initialized_(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_init_thread_(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_intercomm_create_(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 pmpi_intercomm_merge_(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void pmpi_iprobe_(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_irecv_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_irsend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_isend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_issend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_is_thread_main_(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_keyval_create_(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_keyval_free_(MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_lookup_name_(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_create_(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void pmpi_open_port_(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_free_(MPI_Fint *op, MPI_Fint *ierr); -void pmpi_pack_external_(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void pmpi_pack_external_size_(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pack_(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_pack_size_(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pcontrol_(MPI_Fint *level); -void pmpi_probe_(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_publish_name_(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_put_(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); -void pmpi_query_thread_(MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_recv_init_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_recv_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_reduce_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_reduce_scatter_(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_register_datarep_(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_request_free_(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_request_get_status_(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_rsend_(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_rsend_init_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_scan_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_scatter_(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_scatterv_(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_send_init_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_send_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_sendrecv_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_sendrecv_replace_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_ssend_init_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_ssend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_start_(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_startall_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void pmpi_status_set_cancelled_(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_status_set_elements_(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void pmpi_testall_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_testany_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test_(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test_cancelled_(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_testsome_(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 pmpi_topo_test_(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_type_commit_(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_contiguous_(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_darray_(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 pmpi_type_create_f90_complex_(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_integer_(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_real_(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hindexed_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hvector_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_keyval_(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_type_create_indexed_block_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_struct_(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_subarray_(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_resized_(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_delete_attr_(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_dup_(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_extent_(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_type_free_(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_free_keyval_(MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_get_attr_(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_type_get_contents_(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void pmpi_type_get_envelope_(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void pmpi_type_get_extent_(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void pmpi_type_get_name_(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_type_get_true_extent_(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void pmpi_type_hindexed_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_hvector_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_indexed_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_lb_(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void pmpi_type_match_size_(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_set_attr_(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void pmpi_type_set_name_(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void pmpi_type_size_(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_type_struct_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_ub_(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void pmpi_type_vector_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_unpack_(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_unpublish_name_(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_unpack_external_ (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_waitall_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_waitany_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_wait_(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_waitsome_(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 pmpi_win_call_errhandler_(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_win_complete_(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create_(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create_errhandler_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_create_keyval_(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_win_delete_attr_(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_fence_(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free_(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free_keyval_(MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_get_attr_(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_get_errhandler_(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_get_group_(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_win_get_name_(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_win_lock_(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_post_(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_set_attr_(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_win_set_errhandler_(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_set_name_(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void pmpi_win_start_(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_test_(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_unlock_(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_wait_(MPI_Fint *win, MPI_Fint *ierr); -double pmpi_wtick_(void); -double pmpi_wtime_(void); -/*This is the double underscore prototypes*/ - -void pmpi_abort__(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_accumulate__(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_add_error_class__(MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_add_error_code__(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_add_error_string__(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void pmpi_address__(char *location, MPI_Fint *address, MPI_Fint *ierr); -void pmpi_allgather__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_allgatherv__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alloc_mem__(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void pmpi_allreduce__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoall__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallv__(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_alltoallw__(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_attr_delete__(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_attr_get__(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_attr_put__(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void pmpi_barrier__(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bcast__(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_bsend_init__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_buffer_attach__(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_buffer_detach__(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_cancel__(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_cart_coords__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_create__(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void pmpi_cart_get__(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void pmpi_cart_map__(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_cart_rank__(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_cart_shift__(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void pmpi_cart_sub__(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void pmpi_cartdim_get__(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void pmpi_close_port__(char *port_name, MPI_Fint *ierr); -void pmpi_comm_accept__(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_call_errhandler__(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_comm_compare__(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_comm_connect__(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_create_errhandler__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_create_keyval__(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_comm_create__(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_delete_attr__(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_disconnect__(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_dup__(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_free_keyval__(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void pmpi_comm_free__(MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_comm_get_attr__(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_comm_get_errhandler__(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void pmpi_comm_get_name__(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void pmpi_comm_get_parent__(MPI_Fint *parent, MPI_Fint *ierr); -void pmpi_comm_group__(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_join__(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void pmpi_comm_rank__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_comm_remote_group__(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_comm_remote_size__(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_set_attr__(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_comm_set_errhandler__(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_comm_set_name__(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void pmpi_comm_size__(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_comm_spawn__(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_spawn_multiple__(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void pmpi_comm_split__(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void pmpi_comm_test_inter__(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_dims_create__(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void pmpi_errhandler_create__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_free__(MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_get__(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_errhandler_set__(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_error_class__(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void pmpi_error_string__(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_exscan__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_file_call_errhandler__(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_file_create_errhandler__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_set_errhandler__(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_get_errhandler__(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_file_open__(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_close__(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_file_delete__(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_set_size__(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_preallocate__(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_size__(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void pmpi_file_get_group__(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_file_get_amode__(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void pmpi_file_set_info__(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_info__(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void pmpi_file_set_view__(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void pmpi_file_get_view__(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void pmpi_file_read_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_at_all__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_seek__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_get_byte_offset__(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void pmpi_file_read_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_iread_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_iwrite_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_file_read_ordered__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_seek_shared__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void pmpi_file_get_position_shared__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void pmpi_file_read_at_all_begin__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_at_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_at_all_begin__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_at_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_all_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_all_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_read_ordered_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_read_ordered_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_write_ordered_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_file_write_ordered_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_file_get_type_extent__(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_file_set_atomicity__(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_get_atomicity__(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_file_sync__(MPI_Fint *fh, MPI_Fint *ierr); -void pmpi_finalize__(MPI_Fint *ierr); -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_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); -void pmpi_get_processor_name__(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_get_version__(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void pmpi_graph_create__(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void pmpi_graph_get__(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void pmpi_graph_map__(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void pmpi_graph_neighbors_count__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void pmpi_graph_neighbors__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void pmpi_graphdims_get__(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void pmpi_grequest_complete__(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_grequest_start__(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_group_compare__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void pmpi_group_difference__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_excl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_free__(MPI_Fint *group, MPI_Fint *ierr); -void pmpi_group_incl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_intersection__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_excl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_range_incl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_group_rank__(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void pmpi_group_size__(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_group_translate_ranks__(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void pmpi_group_union__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void pmpi_ibsend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_info_create__(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_delete__(MPI_Fint *info, char *key, MPI_Fint *ierr); -void pmpi_info_dup__(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void pmpi_info_free__(MPI_Fint *info, MPI_Fint *ierr); -void pmpi_info_get__(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_get_nkeys__(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void pmpi_info_get_nthkey__(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void pmpi_info_get_valuelen__(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_info_set__(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void pmpi_init__(MPI_Fint *ierr); -void pmpi_initialized__(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_init_thread__(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_intercomm_create__(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 pmpi_intercomm_merge__(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void pmpi_iprobe__(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_irecv__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_irsend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_isend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_issend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_is_thread_main__(MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_keyval_create__(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_keyval_free__(MPI_Fint *keyval, MPI_Fint *ierr); -void pmpi_lookup_name__(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_create__(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void pmpi_open_port__(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_op_free__(MPI_Fint *op, MPI_Fint *ierr); -void pmpi_pack_external__(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void pmpi_pack_external_size__(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pack__(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_pack_size__(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_pcontrol__(MPI_Fint *level); -void pmpi_probe__(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_publish_name__(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_put__(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); -void pmpi_query_thread__(MPI_Fint *provided, MPI_Fint *ierr); -void pmpi_recv_init__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_recv__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_reduce__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_reduce_scatter__(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_register_datarep__(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_request_free__(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_request_get_status__(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_rsend__(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_rsend_init__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_scan__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_scatter__(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_scatterv__(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_send_init__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_send__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_sendrecv__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_sendrecv_replace__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_ssend_init__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void pmpi_ssend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_start__(MPI_Fint *request, MPI_Fint *ierr); -void pmpi_startall__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void pmpi_status_set_cancelled__(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_status_set_elements__(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void pmpi_testall__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_testany__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test__(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_test_cancelled__(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_testsome__(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 pmpi_topo_test__(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_type_commit__(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_contiguous__(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_darray__(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 pmpi_type_create_f90_complex__(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_integer__(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_f90_real__(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hindexed__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_hvector__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_keyval__(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_type_create_indexed_block__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_struct__(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_subarray__(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_create_resized__(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_delete_attr__(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_dup__(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_extent__(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void pmpi_type_free__(MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_free_keyval__(MPI_Fint *type_keyval, MPI_Fint *ierr); -void pmpi_type_get_attr__(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_type_get_contents__(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void pmpi_type_get_envelope__(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void pmpi_type_get_extent__(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void pmpi_type_get_name__(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_type_get_true_extent__(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void pmpi_type_hindexed__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_hvector__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_indexed__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_lb__(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void pmpi_type_match_size__(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void pmpi_type_set_attr__(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void pmpi_type_set_name__(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void pmpi_type_size__(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void pmpi_type_struct__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_type_ub__(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void pmpi_type_vector__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void pmpi_unpack__(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void pmpi_unpublish_name__(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void pmpi_unpack_external__ (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void pmpi_waitall__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void pmpi_waitany__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_wait__(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void pmpi_waitsome__(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 pmpi_win_call_errhandler__(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void pmpi_win_complete__(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create__(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_create_errhandler__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_create_keyval__(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void pmpi_win_delete_attr__(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_fence__(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free__(MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_free_keyval__(MPI_Fint *win_keyval, MPI_Fint *ierr); -void pmpi_win_get_attr__(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_get_errhandler__(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_get_group__(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void pmpi_win_get_name__(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void pmpi_win_lock__(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_post__(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_set_attr__(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void pmpi_win_set_errhandler__(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void pmpi_win_set_name__(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void pmpi_win_start__(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_test__(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void pmpi_win_unlock__(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void pmpi_win_wait__(MPI_Fint *win, MPI_Fint *ierr); -double pmpi_wtick__(void); -double pmpi_wtime__(void); -/*This is the all upper case prototypes*/ - -void PMPI_ABORT(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void PMPI_ACCUMULATE(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_ADD_ERROR_CLASS(MPI_Fint *errorclass, MPI_Fint *ierr); -void PMPI_ADD_ERROR_CODE(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void PMPI_ADD_ERROR_STRING(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void PMPI_ADDRESS(char *location, MPI_Fint *address, MPI_Fint *ierr); -void PMPI_ALLGATHER(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_ALLGATHERV(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_ALLOC_MEM(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void PMPI_ALLREDUCE(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_ALLTOALL(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_ALLTOALLV(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_ALLTOALLW(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_ATTR_DELETE(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void PMPI_ATTR_GET(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_ATTR_PUT(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void PMPI_BARRIER(MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_BCAST(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_BSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_BSEND_INIT(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_BUFFER_ATTACH(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_BUFFER_DETACH(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_CANCEL(MPI_Fint *request, MPI_Fint *ierr); -void PMPI_CART_COORDS(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void PMPI_CART_CREATE(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void PMPI_CART_GET(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void PMPI_CART_MAP(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void PMPI_CART_RANK(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void PMPI_CART_SHIFT(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void PMPI_CART_SUB(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void PMPI_CARTDIM_GET(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void PMPI_CLOSE_PORT(char *port_name, MPI_Fint *ierr); -void PMPI_COMM_ACCEPT(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void PMPI_COMM_CALL_ERRHANDLER(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void PMPI_COMM_COMPARE(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void PMPI_COMM_CONNECT(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void PMPI_COMM_CREATE_ERRHANDLER(ompi_errhandler_fortran_handler_fn_t *function, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_COMM_CREATE_KEYVAL(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void PMPI_COMM_CREATE(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void PMPI_COMM_DELETE_ATTR(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void PMPI_COMM_DISCONNECT(MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_COMM_DUP(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void PMPI_COMM_FREE_KEYVAL(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void PMPI_COMM_FREE(MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_COMM_GET_ATTR(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_COMM_GET_ERRHANDLER(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void PMPI_COMM_GET_NAME(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void PMPI_COMM_GET_PARENT(MPI_Fint *parent, MPI_Fint *ierr); -void PMPI_COMM_GROUP(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void PMPI_COMM_JOIN(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void PMPI_COMM_RANK(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void PMPI_COMM_REMOTE_GROUP(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void PMPI_COMM_REMOTE_SIZE(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_COMM_SET_ATTR(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void PMPI_COMM_SET_ERRHANDLER(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_COMM_SET_NAME(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void PMPI_COMM_SIZE(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_COMM_SPAWN(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void PMPI_COMM_SPAWN_MULTIPLE(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void PMPI_COMM_SPLIT(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void PMPI_COMM_TEST_INTER(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_DIMS_CREATE(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void PMPI_ERRHANDLER_CREATE(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_ERRHANDLER_FREE(MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_ERRHANDLER_GET(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_ERRHANDLER_SET(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_ERROR_CLASS(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void PMPI_ERROR_STRING(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void PMPI_EXSCAN(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_FILE_CALL_ERRHANDLER(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void PMPI_FILE_CREATE_ERRHANDLER(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_FILE_SET_ERRHANDLER(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_FILE_GET_ERRHANDLER(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_FILE_OPEN(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void PMPI_FILE_CLOSE(MPI_Fint *fh, MPI_Fint *ierr); -void PMPI_FILE_DELETE(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void PMPI_FILE_SET_SIZE(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void PMPI_FILE_PREALLOCATE(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void PMPI_FILE_GET_SIZE(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void PMPI_FILE_GET_GROUP(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void PMPI_FILE_GET_AMODE(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void PMPI_FILE_SET_INFO(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void PMPI_FILE_GET_INFO(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void PMPI_FILE_SET_VIEW(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void PMPI_FILE_GET_VIEW(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void PMPI_FILE_READ_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_READ_AT_ALL(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_AT_ALL(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_IREAD_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_FILE_IWRITE_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_FILE_READ(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_READ_ALL(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_ALL(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_IREAD(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_FILE_IWRITE(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_FILE_SEEK(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void PMPI_FILE_GET_POSITION(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void PMPI_FILE_GET_BYTE_OFFSET(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void PMPI_FILE_READ_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_IREAD_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_FILE_IWRITE_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_FILE_READ_ORDERED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_ORDERED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_SEEK_SHARED(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void PMPI_FILE_GET_POSITION_SHARED(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void PMPI_FILE_READ_AT_ALL_BEGIN(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_FILE_READ_AT_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_AT_ALL_BEGIN(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_FILE_WRITE_AT_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_READ_ALL_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_FILE_READ_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_ALL_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_FILE_WRITE_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_READ_ORDERED_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_FILE_READ_ORDERED_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_WRITE_ORDERED_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_FILE_WRITE_ORDERED_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_FILE_GET_TYPE_EXTENT(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void PMPI_FILE_SET_ATOMICITY(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_FILE_GET_ATOMICITY(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_FILE_SYNC(MPI_Fint *fh, MPI_Fint *ierr); -void PMPI_FINALIZE(MPI_Fint *ierr); -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_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); -void PMPI_GET_PROCESSOR_NAME(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void PMPI_GET_VERSION(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void PMPI_GRAPH_CREATE(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void PMPI_GRAPH_GET(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void PMPI_GRAPH_MAP(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void PMPI_GRAPH_NEIGHBORS_COUNT(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void PMPI_GRAPH_NEIGHBORS(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void PMPI_GRAPHDIMS_GET(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void PMPI_GREQUEST_COMPLETE(MPI_Fint *request, MPI_Fint *ierr); -void PMPI_GREQUEST_START(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_GROUP_COMPARE(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void PMPI_GROUP_DIFFERENCE(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_GROUP_EXCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_GROUP_FREE(MPI_Fint *group, MPI_Fint *ierr); -void PMPI_GROUP_INCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_GROUP_INTERSECTION(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_GROUP_RANGE_EXCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_GROUP_RANGE_INCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_GROUP_RANK(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void PMPI_GROUP_SIZE(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_GROUP_TRANSLATE_RANKS(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void PMPI_GROUP_UNION(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void PMPI_IBSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_INFO_CREATE(MPI_Fint *info, MPI_Fint *ierr); -void PMPI_INFO_DELETE(MPI_Fint *info, char *key, MPI_Fint *ierr); -void PMPI_INFO_DUP(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void PMPI_INFO_FREE(MPI_Fint *info, MPI_Fint *ierr); -void PMPI_INFO_GET(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_INFO_GET_NKEYS(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void PMPI_INFO_GET_NTHKEY(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void PMPI_INFO_GET_VALUELEN(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_INFO_SET(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void PMPI_INIT(MPI_Fint *ierr); -void PMPI_INITIALIZED(MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_INIT_THREAD(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void PMPI_INTERCOMM_CREATE(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 PMPI_INTERCOMM_MERGE(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void PMPI_IPROBE(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_IRECV(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_IRSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_ISEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_ISSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_IS_THREAD_MAIN(MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_KEYVAL_CREATE(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void PMPI_KEYVAL_FREE(MPI_Fint *keyval, MPI_Fint *ierr); -void PMPI_LOOKUP_NAME(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void PMPI_OP_CREATE(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void PMPI_OPEN_PORT(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void PMPI_OP_FREE(MPI_Fint *op, MPI_Fint *ierr); -void PMPI_PACK_EXTERNAL(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void PMPI_PACK_EXTERNAL_SIZE(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_PACK(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_PACK_SIZE(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_PCONTROL(MPI_Fint *level); -void PMPI_PROBE(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_PUBLISH_NAME(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void PMPI_PUT(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); -void PMPI_QUERY_THREAD(MPI_Fint *provided, MPI_Fint *ierr); -void PMPI_RECV_INIT(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_RECV(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_REDUCE(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_REDUCE_SCATTER(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_REGISTER_DATAREP(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void PMPI_REQUEST_FREE(MPI_Fint *request, MPI_Fint *ierr); -void PMPI_REQUEST_GET_STATUS(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_RSEND(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_RSEND_INIT(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_SCAN(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_SCATTER(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_SCATTERV(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_SEND_INIT(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_SEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_SENDRECV(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_SENDRECV_REPLACE(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_SSEND_INIT(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr); -void PMPI_SSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_START(MPI_Fint *request, MPI_Fint *ierr); -void PMPI_STARTALL(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void PMPI_STATUS_SET_CANCELLED(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_STATUS_SET_ELEMENTS(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void PMPI_TESTALL(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void PMPI_TESTANY(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_TEST(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_TEST_CANCELLED(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_TESTSOME(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 PMPI_TOPO_TEST(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_TYPE_COMMIT(MPI_Fint *type, MPI_Fint *ierr); -void PMPI_TYPE_CONTIGUOUS(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_DARRAY(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 PMPI_TYPE_CREATE_F90_COMPLEX(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_F90_INTEGER(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_F90_REAL(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_HINDEXED(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_HVECTOR(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_KEYVAL(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_INDEXED_BLOCK(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_STRUCT(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_SUBARRAY(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_CREATE_RESIZED(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_DELETE_ATTR(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void PMPI_TYPE_DUP(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_EXTENT(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void PMPI_TYPE_FREE(MPI_Fint *type, MPI_Fint *ierr); -void PMPI_TYPE_FREE_KEYVAL(MPI_Fint *type_keyval, MPI_Fint *ierr); -void PMPI_TYPE_GET_ATTR(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_TYPE_GET_CONTENTS(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void PMPI_TYPE_GET_ENVELOPE(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void PMPI_TYPE_GET_EXTENT(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void PMPI_TYPE_GET_NAME(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void PMPI_TYPE_GET_TRUE_EXTENT(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void PMPI_TYPE_HINDEXED(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_HVECTOR(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_INDEXED(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_LB(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void PMPI_TYPE_MATCH_SIZE(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void PMPI_TYPE_SET_ATTR(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void PMPI_TYPE_SET_NAME(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void PMPI_TYPE_SIZE(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void PMPI_TYPE_STRUCT(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_TYPE_UB(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void PMPI_TYPE_VECTOR(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void PMPI_UNPACK(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void PMPI_UNPUBLISH_NAME(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void PMPI_UNPACK_EXTERNAL (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void PMPI_WAITALL(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void PMPI_WAITANY(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_WAIT(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void PMPI_WAITSOME(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 PMPI_WIN_CALL_ERRHANDLER(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void PMPI_WIN_COMPLETE(MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_CREATE(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_CREATE_ERRHANDLER(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_WIN_CREATE_KEYVAL(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void PMPI_WIN_DELETE_ATTR(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void PMPI_WIN_FENCE(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_FREE(MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_FREE_KEYVAL(MPI_Fint *win_keyval, MPI_Fint *ierr); -void PMPI_WIN_GET_ATTR(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_WIN_GET_ERRHANDLER(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_WIN_GET_GROUP(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void PMPI_WIN_GET_NAME(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void PMPI_WIN_LOCK(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_POST(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_SET_ATTR(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void PMPI_WIN_SET_ERRHANDLER(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void PMPI_WIN_SET_NAME(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void PMPI_WIN_START(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_TEST(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void PMPI_WIN_UNLOCK(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void PMPI_WIN_WAIT(MPI_Fint *win, MPI_Fint *ierr); -double PMPI_WTICK(void); -double PMPI_WTIME(void); -#endif - diff --git a/ompi/mpi/f77/prototypes_mpi.h b/ompi/mpi/f77/prototypes_mpi.h index 7e8e940d00..88336acc31 100644 --- a/ompi/mpi/f77/prototypes_mpi.h +++ b/ompi/mpi/f77/prototypes_mpi.h @@ -41,1519 +41,316 @@ #ifndef OMPI_F77_PROTOTYPES_MPI_H #define OMPI_F77_PROTOTYPES_MPI_H -#ifndef OMPI_F77_PROTOTYPES_PMPI_H - /* These are the prototypes for the "real" back-end fortran functions. */ +#define PN(ret, lower_name, upper_name, args) \ + ret lower_name##_f args; \ + ret lower_name args; \ + ret lower_name##_ args; \ + ret lower_name##__ args; \ + ret upper_name args; \ + ret p##lower_name##_f args; \ + ret p##lower_name args; \ + ret p##lower_name##_ args; \ + ret p##lower_name##__ args; \ + ret P##upper_name args -void mpi_abort_f(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_accumulate_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 *op, MPI_Fint *win, MPI_Fint *ierr); -void mpi_add_error_class_f(MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_add_error_code_f(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_add_error_string_f(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void mpi_address_f(char *location, MPI_Fint *address, MPI_Fint *ierr); -void mpi_allgather_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_allgatherv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alloc_mem_f(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void mpi_allreduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoall_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallv_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallw_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_attr_delete_f(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_attr_get_f(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_attr_put_f(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void mpi_barrier_f(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bcast_f(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend_init_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_buffer_attach_f(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_buffer_detach_f(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_cancel_f(MPI_Fint *request, MPI_Fint *ierr); -void mpi_cart_coords_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_create_f(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void mpi_cart_get_f(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_map_f(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_cart_rank_f(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_cart_shift_f(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void mpi_cart_sub_f(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void mpi_cartdim_get_f(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void mpi_close_port_f(char *port_name, MPI_Fint *ierr); -void mpi_comm_accept_f(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_call_errhandler_f(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_comm_compare_f(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_comm_connect_f(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_create_errhandler_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_create_keyval_f(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_comm_create_f(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_delete_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_disconnect_f(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_dup_f(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_free_keyval_f(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_free_f(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_get_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_comm_get_errhandler_f(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void mpi_comm_get_name_f(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, - MPI_Fint *ierr, int name_len); -void mpi_comm_get_parent_f(MPI_Fint *parent, MPI_Fint *ierr); -void mpi_comm_group_f(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_join_f(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void mpi_comm_rank_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_comm_remote_group_f(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_remote_size_f(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_set_attr_f(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_comm_set_errhandler_f(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_set_name_f(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, - int name_len); -void mpi_comm_size_f(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_spawn_f(char *command, char *argv, MPI_Fint *maxprocs, - MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, - MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, - MPI_Fint *ierr, int command_len, int argv_len); -void mpi_comm_spawn_multiple_f(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_split_f(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_test_inter_f(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_dims_create_f(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void mpi_errhandler_create_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_free_f(MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_get_f(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_set_f(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_error_class_f(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_error_string_f(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_exscan_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_file_call_errhandler_f(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_file_create_errhandler_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_set_errhandler_f(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_get_errhandler_f(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_open_f(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_close_f(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_delete_f(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_set_size_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_preallocate_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_size_f(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_group_f(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void mpi_file_get_amode_f(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void mpi_file_set_info_f(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_info_f(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void mpi_file_set_view_f(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_view_f(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void mpi_file_read_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_at_all_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_at_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_seek_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_get_byte_offset_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void mpi_file_read_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_shared_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_seek_shared_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position_shared_f(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_read_at_all_begin_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_at_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all_begin_f(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_at_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_all_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_ordered_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered_begin_f(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_ordered_end_f(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_get_type_extent_f(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_file_set_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_get_atomicity_f(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_sync_f(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_finalize_f(MPI_Fint *ierr); -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_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); -void mpi_get_processor_name_f(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_get_version_f(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void mpi_graph_create_f(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void mpi_graph_get_f(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void mpi_graph_map_f(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_graph_neighbors_count_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void mpi_graph_neighbors_f(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void mpi_graphdims_get_f(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void mpi_grequest_complete_f(MPI_Fint *request, MPI_Fint *ierr); -void mpi_grequest_start_f(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void mpi_group_compare_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_group_difference_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_excl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_free_f(MPI_Fint *group, MPI_Fint *ierr); -void mpi_group_incl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_intersection_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_excl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_incl_f(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_rank_f(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_group_size_f(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void mpi_group_translate_ranks_f(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void mpi_group_union_f(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, 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); -void mpi_info_create_f(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_delete_f(MPI_Fint *info, char *key, MPI_Fint *ierr); -void mpi_info_dup_f(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void mpi_info_free_f(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_get_f(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -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 *ierr); -void mpi_initialized_f(MPI_Fint *flag, 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); -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_irsend_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_isend_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_issend_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_is_thread_main_f(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_keyval_create_f(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_keyval_free_f(MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_lookup_name_f(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_create_f(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void mpi_open_port_f(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_free_f(MPI_Fint *op, MPI_Fint *ierr); -void mpi_pack_external_f(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void mpi_pack_external_size_f(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pack_f(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_pack_size_f(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pcontrol_f(MPI_Fint *level); -void mpi_probe_f(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_publish_name_f(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_put_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); -void mpi_query_thread_f(MPI_Fint *provided, MPI_Fint *ierr); -void mpi_recv_init_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_recv_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_reduce_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_reduce_scatter_f(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_register_datarep_f(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_request_free_f(MPI_Fint *request, MPI_Fint *ierr); -void mpi_request_get_status_f(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_rsend_f(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_rsend_init_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_scan_f(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_scatter_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_scatterv_f(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_send_init_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_send_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_sendrecv_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_sendrecv_replace_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_ssend_init_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_ssend_f(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_start_f(MPI_Fint *request, MPI_Fint *ierr); -void mpi_startall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void mpi_status_set_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_status_set_elements_f(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void mpi_testall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_testany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, 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); -void mpi_test_cancelled_f(MPI_Fint *status, MPI_Fint *flag, 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); -void mpi_topo_test_f(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_type_commit_f(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_contiguous_f(MPI_Fint *count, 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); -void mpi_type_create_f90_complex_f(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_integer_f(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_real_f(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hindexed_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hvector_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_keyval_f(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_type_create_indexed_block_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_struct_f(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_subarray_f(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_resized_f(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_delete_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_dup_f(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_extent_f(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_type_free_f(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_free_keyval_f(MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_get_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_type_get_contents_f(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void mpi_type_get_envelope_f(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void mpi_type_get_extent_f(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void mpi_type_get_name_f(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_type_get_true_extent_f(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void mpi_type_hindexed_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_hvector_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_indexed_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_lb_f(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void mpi_type_match_size_f(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_set_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void mpi_type_set_name_f(MPI_Fint *type, char *type_name, MPI_Fint *ierr, - int name_len); -void mpi_type_size_f(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void mpi_type_struct_f(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_ub_f(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void mpi_type_vector_f(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_unpack_f(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_unpublish_name_f(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_unpack_external_f (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_waitall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_waitany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void mpi_wait_f(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void mpi_waitsome_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_win_call_errhandler_f(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_win_complete_f(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create_f(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create_errhandler_f(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_create_keyval_f(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_win_delete_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_fence_f(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free_f(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free_keyval_f(MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_get_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_get_errhandler_f(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_get_group_f(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void mpi_win_get_name_f(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_win_lock_f(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_post_f(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_set_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_win_set_errhandler_f(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_set_name_f(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void mpi_win_start_f(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_test_f(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_unlock_f(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_wait_f(MPI_Fint *win, MPI_Fint *ierr); -double mpi_wtick_f(void); -double mpi_wtime_f(void); +PN(void, mpi_abort, MPI_ABORT, (MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr)); +PN(void, mpi_accumulate, MPI_ACCUMULATE, (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 *op, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_add_error_class, MPI_ADD_ERROR_CLASS, (MPI_Fint *errorclass, MPI_Fint *ierr)); +PN(void, mpi_add_error_code, MPI_ADD_ERROR_CODE, (MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr)); +PN(void, mpi_add_error_string, MPI_ADD_ERROR_STRING, (MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l)); +PN(void, mpi_address, MPI_ADDRESS, (char *location, MPI_Aint *address, MPI_Fint *ierr)); +PN(void, mpi_allgather, MPI_ALLGATHER, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_allgatherv, MPI_ALLGATHERV, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_alloc_mem, MPI_ALLOC_MEM, (MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr)); +PN(void, mpi_allreduce, MPI_ALLREDUCE, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_alltoall, MPI_ALLTOALL, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_alltoallv, MPI_ALLTOALLV, (char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_alltoallw, MPI_ALLTOALLW, (char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_attr_delete, MPI_ATTR_DELETE, (MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr)); +PN(void, mpi_attr_get, MPI_ATTR_GET, (MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_attr_put, MPI_ATTR_PUT, (MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr)); +PN(void, mpi_barrier, MPI_BARRIER, (MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_bcast, MPI_BCAST, (char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_bsend, MPI_BSEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_bsend_init, MPI_BSEND_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_buffer_attach, MPI_BUFFER_ATTACH, (char *buffer, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_buffer_detach, MPI_BUFFER_DETACH, (char *buffer, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_cancel, MPI_CANCEL, (MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_cart_coords, MPI_CART_COORDS, (MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr)); +PN(void, mpi_cart_create, MPI_CART_CREATE, (MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Flogical *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr)); +PN(void, mpi_cart_get, MPI_CART_GET, (MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Fint *coords, MPI_Fint *ierr)); +PN(void, mpi_cart_map, MPI_CART_MAP, (MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Flogical *periods, MPI_Fint *newrank, MPI_Fint *ierr)); +PN(void, mpi_cart_rank, MPI_CART_RANK, (MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr)); +PN(void, mpi_cart_shift, MPI_CART_SHIFT, (MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr)); +PN(void, mpi_cart_sub, MPI_CART_SUB, (MPI_Fint *comm, MPI_Flogical *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr)); +PN(void, mpi_cartdim_get, MPI_CARTDIM_GET, (MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr)); +PN(void, mpi_close_port, MPI_CLOSE_PORT, (char *port_name, MPI_Fint *ierr)); +PN(void, mpi_comm_accept, MPI_COMM_ACCEPT, (char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr)); +PN(void, mpi_comm_call_errhandler, MPI_COMM_CALL_ERRHANDLER, (MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr)); +PN(void, mpi_comm_compare, MPI_COMM_COMPARE, (MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr)); +PN(void, mpi_comm_connect, MPI_COMM_CONNECT, (char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr)); +PN(void, mpi_comm_create_errhandler, MPI_COMM_CREATE_ERRHANDLER, (ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_comm_create_keyval, MPI_COMM_CREATE_KEYVAL, (ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr)); +PN(void, mpi_comm_create, MPI_COMM_CREATE, (MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr)); +PN(void, mpi_comm_delete_attr, MPI_COMM_DELETE_ATTR, (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr)); +PN(void, mpi_comm_disconnect, MPI_COMM_DISCONNECT, (MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_comm_dup, MPI_COMM_DUP, (MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr)); +PN(void, mpi_comm_free_keyval, MPI_COMM_FREE_KEYVAL, (MPI_Fint *comm_keyval, MPI_Fint *ierr)); +PN(void, mpi_comm_free, MPI_COMM_FREE, (MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_comm_get_attr, MPI_COMM_GET_ATTR, (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_comm_get_errhandler, MPI_COMM_GET_ERRHANDLER, (MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr)); +PN(void, mpi_comm_get_name, MPI_COMM_GET_NAME, (MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len)); +PN(void, mpi_comm_get_parent, MPI_COMM_GET_PARENT, (MPI_Fint *parent, MPI_Fint *ierr)); +PN(void, mpi_comm_group, MPI_COMM_GROUP, (MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr)); +PN(void, mpi_comm_join, MPI_COMM_JOIN, (MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr)); +PN(void, mpi_comm_rank, MPI_COMM_RANK, (MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr)); +PN(void, mpi_comm_remote_group, MPI_COMM_REMOTE_GROUP, (MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr)); +PN(void, mpi_comm_remote_size, MPI_COMM_REMOTE_SIZE, (MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_comm_set_attr, MPI_COMM_SET_ATTR, (MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr)); +PN(void, mpi_comm_set_errhandler, MPI_COMM_SET_ERRHANDLER, (MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_comm_set_name, MPI_COMM_SET_NAME, (MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len)); +PN(void, mpi_comm_size, MPI_COMM_SIZE, (MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_comm_spawn, MPI_COMM_SPAWN, (char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int command_len, int argv_len)); +PN(void, mpi_comm_spawn_multiple, MPI_COMM_SPAWN_MULTIPLE, (MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len)); +PN(void, mpi_comm_split, MPI_COMM_SPLIT, (MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr)); +PN(void, mpi_comm_test_inter, MPI_COMM_TEST_INTER, (MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_dims_create, MPI_DIMS_CREATE, (MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr)); +PN(void, mpi_errhandler_create, MPI_ERRHANDLER_CREATE, (ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_errhandler_free, MPI_ERRHANDLER_FREE, (MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_errhandler_get, MPI_ERRHANDLER_GET, (MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_errhandler_set, MPI_ERRHANDLER_SET, (MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_error_class, MPI_ERROR_CLASS, (MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr)); +PN(void, mpi_error_string, MPI_ERROR_STRING, (MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr)); +PN(void, mpi_exscan, MPI_EXSCAN, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_file_call_errhandler, MPI_FILE_CALL_ERRHANDLER, (MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr)); +PN(void, mpi_file_create_errhandler, MPI_FILE_CREATE_ERRHANDLER, (ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_file_set_errhandler, MPI_FILE_SET_ERRHANDLER, (MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_file_get_errhandler, MPI_FILE_GET_ERRHANDLER, (MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_file_open, MPI_FILE_OPEN, (MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr)); +PN(void, mpi_file_close, MPI_FILE_CLOSE, (MPI_Fint *fh, MPI_Fint *ierr)); +PN(void, mpi_file_delete, MPI_FILE_DELETE, (char *filename, MPI_Fint *info, MPI_Fint *ierr)); +PN(void, mpi_file_set_size, MPI_FILE_SET_SIZE, (MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr)); +PN(void, mpi_file_preallocate, MPI_FILE_PREALLOCATE, (MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr)); +PN(void, mpi_file_get_size, MPI_FILE_GET_SIZE, (MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr)); +PN(void, mpi_file_get_group, MPI_FILE_GET_GROUP, (MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr)); +PN(void, mpi_file_get_amode, MPI_FILE_GET_AMODE, (MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr)); +PN(void, mpi_file_set_info, MPI_FILE_SET_INFO, (MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr)); +PN(void, mpi_file_get_info, MPI_FILE_GET_INFO, (MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr)); +PN(void, mpi_file_set_view, MPI_FILE_SET_VIEW, (MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr)); +PN(void, mpi_file_get_view, MPI_FILE_GET_VIEW, (MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr)); +PN(void, mpi_file_read_at, MPI_FILE_READ_AT, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_read_at_all, MPI_FILE_READ_AT_ALL, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_at, MPI_FILE_WRITE_AT, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_at_all, MPI_FILE_WRITE_AT_ALL, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_iread_at, MPI_FILE_IREAD_AT, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_file_iwrite_at, MPI_FILE_IWRITE_AT, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_file_read, MPI_FILE_READ, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_read_all, MPI_FILE_READ_ALL, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write, MPI_FILE_WRITE, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_all, MPI_FILE_WRITE_ALL, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_iread, MPI_FILE_IREAD, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_file_iwrite, MPI_FILE_IWRITE, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_file_seek, MPI_FILE_SEEK, (MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr)); +PN(void, mpi_file_get_position, MPI_FILE_GET_POSITION, (MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr)); +PN(void, mpi_file_get_byte_offset, MPI_FILE_GET_BYTE_OFFSET, (MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr)); +PN(void, mpi_file_read_shared, MPI_FILE_READ_SHARED, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_shared, MPI_FILE_WRITE_SHARED, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_iread_shared, MPI_FILE_IREAD_SHARED, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_file_iwrite_shared, MPI_FILE_IWRITE_SHARED, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_file_read_ordered, MPI_FILE_READ_ORDERED, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_ordered, MPI_FILE_WRITE_ORDERED, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_seek_shared, MPI_FILE_SEEK_SHARED, (MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr)); +PN(void, mpi_file_get_position_shared, MPI_FILE_GET_POSITION_SHARED, (MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr)); +PN(void, mpi_file_read_at_all_begin, MPI_FILE_READ_AT_ALL_BEGIN, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_file_read_at_all_end, MPI_FILE_READ_AT_ALL_END, (MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_at_all_begin, MPI_FILE_WRITE_AT_ALL_BEGIN, (MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_file_write_at_all_end, MPI_FILE_WRITE_AT_ALL_END, (MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_read_all_begin, MPI_FILE_READ_ALL_BEGIN, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_file_read_all_end, MPI_FILE_READ_ALL_END, (MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_all_begin, MPI_FILE_WRITE_ALL_BEGIN, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_file_write_all_end, MPI_FILE_WRITE_ALL_END, (MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_read_ordered_begin, MPI_FILE_READ_ORDERED_BEGIN, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_file_read_ordered_end, MPI_FILE_READ_ORDERED_END, (MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_write_ordered_begin, MPI_FILE_WRITE_ORDERED_BEGIN, (MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_file_write_ordered_end, MPI_FILE_WRITE_ORDERED_END, (MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_file_get_type_extent, MPI_FILE_GET_TYPE_EXTENT, (MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr)); +PN(void, mpi_file_set_atomicity, MPI_FILE_SET_ATOMICITY, (MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_file_get_atomicity, MPI_FILE_GET_ATOMICITY, (MPI_Fint *fh, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_file_sync, MPI_FILE_SYNC, (MPI_Fint *fh, MPI_Fint *ierr)); +PN(void, mpi_finalize, MPI_FINALIZE, (MPI_Fint *ierr)); +PN(void, mpi_finalized, MPI_FINALIZED, (MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_free_mem, MPI_FREE_MEM, (char *base, MPI_Fint *ierr)); +PN(void, mpi_gather, 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)); +PN(void, mpi_gatherv, 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)); +PN(void, mpi_get_address, MPI_GET_ADDRESS, (char *location, MPI_Aint *address, MPI_Fint *ierr)); +PN(void, mpi_get_count, MPI_GET_COUNT, (MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr)); +PN(void, mpi_get_elements, MPI_GET_ELEMENTS, (MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr)); +PN(void, mpi_get, 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)); +PN(void, mpi_get_processor_name, MPI_GET_PROCESSOR_NAME, (char *name, MPI_Fint *resultlen, MPI_Fint *ierr)); +PN(void, mpi_get_version, MPI_GET_VERSION, (MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr)); +PN(void, mpi_graph_create, MPI_GRAPH_CREATE, (MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Flogical *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr)); +PN(void, mpi_graph_get, MPI_GRAPH_GET, (MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr)); +PN(void, mpi_graph_map, MPI_GRAPH_MAP, (MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr)); +PN(void, mpi_graph_neighbors_count, MPI_GRAPH_NEIGHBORS_COUNT, (MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr)); +PN(void, mpi_graph_neighbors, MPI_GRAPH_NEIGHBORS, (MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr)); +PN(void, mpi_graphdims_get, MPI_GRAPHDIMS_GET, (MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr)); +PN(void, mpi_grequest_complete, MPI_GREQUEST_COMPLETE, (MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_grequest_start, MPI_GREQUEST_START, (MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_group_compare, MPI_GROUP_COMPARE, (MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr)); +PN(void, mpi_group_difference, MPI_GROUP_DIFFERENCE, (MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_group_excl, MPI_GROUP_EXCL, (MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_group_free, MPI_GROUP_FREE, (MPI_Fint *group, MPI_Fint *ierr)); +PN(void, mpi_group_incl, MPI_GROUP_INCL, (MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_group_intersection, MPI_GROUP_INTERSECTION, (MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_group_range_excl, MPI_GROUP_RANGE_EXCL, (MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_group_range_incl, MPI_GROUP_RANGE_INCL, (MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_group_rank, MPI_GROUP_RANK, (MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr)); +PN(void, mpi_group_size, MPI_GROUP_SIZE, (MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_group_translate_ranks, MPI_GROUP_TRANSLATE_RANKS, (MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr)); +PN(void, mpi_group_union, MPI_GROUP_UNION, (MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr)); +PN(void, mpi_ibsend, MPI_IBSEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_info_create, MPI_INFO_CREATE, (MPI_Fint *info, MPI_Fint *ierr)); +PN(void, mpi_info_delete, MPI_INFO_DELETE, (MPI_Fint *info, char *key, MPI_Fint *ierr)); +PN(void, mpi_info_dup, MPI_INFO_DUP, (MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr)); +PN(void, mpi_info_free, MPI_INFO_FREE, (MPI_Fint *info, MPI_Fint *ierr)); +PN(void, mpi_info_get, MPI_INFO_GET, (MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_info_get_nkeys, MPI_INFO_GET_NKEYS, (MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr)); +PN(void, mpi_info_get_nthkey, MPI_INFO_GET_NTHKEY, (MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr)); +PN(void, mpi_info_get_valuelen, MPI_INFO_GET_VALUELEN, (MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_info_set, MPI_INFO_SET, (MPI_Fint *info, char *key, char *value, MPI_Fint *ierr)); +PN(void, mpi_init, MPI_INIT, (MPI_Fint *ierr)); +PN(void, mpi_initialized, MPI_INITIALIZED, (MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_init_thread, MPI_INIT_THREAD, (MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr)); +PN(void, mpi_intercomm_create, MPI_INTERCOMM_CREATE, (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)); +PN(void, mpi_intercomm_merge, MPI_INTERCOMM_MERGE, (MPI_Fint *intercomm, MPI_Flogical *high, MPI_Fint *newintercomm, MPI_Fint *ierr)); +PN(void, mpi_iprobe, MPI_IPROBE, (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_irecv, MPI_IRECV, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_irsend, MPI_IRSEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_isend, MPI_ISEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_issend, MPI_ISSEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_is_thread_main, MPI_IS_THREAD_MAIN, (MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_keyval_create, MPI_KEYVAL_CREATE, (ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr)); +PN(void, mpi_keyval_free, MPI_KEYVAL_FREE, (MPI_Fint *keyval, MPI_Fint *ierr)); +PN(void, mpi_lookup_name, MPI_LOOKUP_NAME, (char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr)); +PN(void, mpi_op_create, MPI_OP_CREATE, (ompi_op_fortran_handler_fn_t* function, MPI_Flogical *commute, MPI_Fint *op, MPI_Fint *ierr)); +PN(void, mpi_open_port, MPI_OPEN_PORT, (MPI_Fint *info, char *port_name, MPI_Fint *ierr)); +PN(void, mpi_op_free, MPI_OP_FREE, (MPI_Fint *op, MPI_Fint *ierr)); +PN(void, mpi_pack_external, MPI_PACK_EXTERNAL, (char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr)); +PN(void, mpi_pack_external_size, MPI_PACK_EXTERNAL_SIZE, (char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_pack, MPI_PACK, (char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_pack_size, MPI_PACK_SIZE, (MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_pcontrol, MPI_PCONTROL, (MPI_Fint *level)); +PN(void, mpi_probe, MPI_PROBE, (MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_publish_name, MPI_PUBLISH_NAME, (char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr)); +PN(void, mpi_put, MPI_PUT, (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)); +PN(void, mpi_query_thread, MPI_QUERY_THREAD, (MPI_Fint *provided, MPI_Fint *ierr)); +PN(void, mpi_recv_init, MPI_RECV_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_recv, MPI_RECV, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_reduce, MPI_REDUCE, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_reduce_scatter, MPI_REDUCE_SCATTER, (char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_register_datarep, MPI_REGISTER_DATAREP, (char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr)); +PN(void, mpi_request_free, MPI_REQUEST_FREE, (MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_request_get_status, MPI_REQUEST_GET_STATUS, (MPI_Fint *request, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_rsend, MPI_RSEND, (char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_rsend_init, MPI_RSEND_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_scan, MPI_SCAN, (char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_scatter, MPI_SCATTER, (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)); +PN(void, mpi_scatterv, MPI_SCATTERV, (char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_send_init, MPI_SEND_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_send, MPI_SEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_sendrecv, MPI_SENDRECV, (char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_sendrecv_replace, MPI_SENDRECV_REPLACE, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_ssend_init, MPI_SSEND_INIT, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_ssend, MPI_SSEND, (char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_start, MPI_START, (MPI_Fint *request, MPI_Fint *ierr)); +PN(void, mpi_startall, MPI_STARTALL, (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr)); +PN(void, mpi_status_set_cancelled, MPI_STATUS_SET_CANCELLED, (MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_status_set_elements, MPI_STATUS_SET_ELEMENTS, (MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr)); +PN(void, mpi_testall, MPI_TESTALL, (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Flogical *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr)); +PN(void, mpi_testany, MPI_TESTANY, (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_test, MPI_TEST, (MPI_Fint *request, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_test_cancelled, MPI_TEST_CANCELLED, (MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_testsome, MPI_TESTSOME, (MPI_Fint *incount, MPI_Fint *array_of_requests, MPI_Fint *outcount, MPI_Fint *array_of_indices, MPI_Fint *array_of_statuses, MPI_Fint *ierr)); +PN(void, mpi_topo_test, MPI_TOPO_TEST, (MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_type_commit, MPI_TYPE_COMMIT, (MPI_Fint *type, MPI_Fint *ierr)); +PN(void, mpi_type_contiguous, MPI_TYPE_CONTIGUOUS, (MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_darray, MPI_TYPE_CREATE_DARRAY, (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)); +PN(void, mpi_type_create_f90_complex, MPI_TYPE_CREATE_F90_COMPLEX, (MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_f90_integer, MPI_TYPE_CREATE_F90_INTEGER, (MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_f90_real, MPI_TYPE_CREATE_F90_REAL, (MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_hindexed, MPI_TYPE_CREATE_HINDEXED, (MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_hvector, MPI_TYPE_CREATE_HVECTOR, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_keyval, MPI_TYPE_CREATE_KEYVAL, (ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr)); +PN(void, mpi_type_create_indexed_block, MPI_TYPE_CREATE_INDEXED_BLOCK, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_struct, MPI_TYPE_CREATE_STRUCT, (MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_subarray, MPI_TYPE_CREATE_SUBARRAY, (MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_create_resized, MPI_TYPE_CREATE_RESIZED, (MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_delete_attr, MPI_TYPE_DELETE_ATTR, (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr)); +PN(void, mpi_type_dup, MPI_TYPE_DUP, (MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_extent, MPI_TYPE_EXTENT, (MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr)); +PN(void, mpi_type_free, MPI_TYPE_FREE, (MPI_Fint *type, MPI_Fint *ierr)); +PN(void, mpi_type_free_keyval, MPI_TYPE_FREE_KEYVAL, (MPI_Fint *type_keyval, MPI_Fint *ierr)); +PN(void, mpi_type_get_attr, MPI_TYPE_GET_ATTR, (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_type_get_contents, MPI_TYPE_GET_CONTENTS, (MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr)); +PN(void, mpi_type_get_envelope, MPI_TYPE_GET_ENVELOPE, (MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr)); +PN(void, mpi_type_get_extent, MPI_TYPE_GET_EXTENT, (MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr)); +PN(void, mpi_type_get_name, MPI_TYPE_GET_NAME, (MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr)); +PN(void, mpi_type_get_true_extent, MPI_TYPE_GET_TRUE_EXTENT, (MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr)); +PN(void, mpi_type_hindexed, MPI_TYPE_HINDEXED, (MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_hvector, MPI_TYPE_HVECTOR, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_indexed, MPI_TYPE_INDEXED, (MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_lb, MPI_TYPE_LB, (MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr)); +PN(void, mpi_type_match_size, MPI_TYPE_MATCH_SIZE, (MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr)); +PN(void, mpi_type_set_attr, MPI_TYPE_SET_ATTR, (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr)); +PN(void, mpi_type_set_name, MPI_TYPE_SET_NAME, (MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len)); +PN(void, mpi_type_size, MPI_TYPE_SIZE, (MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr)); +PN(void, mpi_type_struct, MPI_TYPE_STRUCT, (MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_type_ub, MPI_TYPE_UB, (MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr)); +PN(void, mpi_type_vector, MPI_TYPE_VECTOR, (MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr)); +PN(void, mpi_unpack, MPI_UNPACK, (char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr)); +PN(void, mpi_unpublish_name, MPI_UNPUBLISH_NAME, (char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr)); +PN(void, mpi_unpack_external, MPI_UNPACK_EXTERNAL, (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr)); +PN(void, mpi_waitall, MPI_WAITALL, (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr)); +PN(void, mpi_waitany, MPI_WAITANY, (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_wait, MPI_WAIT, (MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr)); +PN(void, mpi_waitsome, MPI_WAITSOME, (MPI_Fint *incount, MPI_Fint *array_of_requests, MPI_Fint *outcount, MPI_Fint *array_of_indices, MPI_Fint *array_of_statuses, MPI_Fint *ierr)); +PN(void, mpi_win_call_errhandler, MPI_WIN_CALL_ERRHANDLER, (MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr)); +PN(void, mpi_win_complete, MPI_WIN_COMPLETE, (MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_create, MPI_WIN_CREATE, (char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_create_errhandler, MPI_WIN_CREATE_ERRHANDLER, (ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_win_create_keyval, MPI_WIN_CREATE_KEYVAL, (ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr)); +PN(void, mpi_win_delete_attr, MPI_WIN_DELETE_ATTR, (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr)); +PN(void, mpi_win_fence, MPI_WIN_FENCE, (MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_free, MPI_WIN_FREE, (MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_free_keyval, MPI_WIN_FREE_KEYVAL, (MPI_Fint *win_keyval, MPI_Fint *ierr)); +PN(void, mpi_win_get_attr, MPI_WIN_GET_ATTR, (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_win_get_errhandler, MPI_WIN_GET_ERRHANDLER, (MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_win_get_group, MPI_WIN_GET_GROUP, (MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr)); +PN(void, mpi_win_get_name, MPI_WIN_GET_NAME, (MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr)); +PN(void, mpi_win_lock, MPI_WIN_LOCK, (MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_post, MPI_WIN_POST, (MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_set_attr, MPI_WIN_SET_ATTR, (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr)); +PN(void, mpi_win_set_errhandler, MPI_WIN_SET_ERRHANDLER, (MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr)); +PN(void, mpi_win_set_name, MPI_WIN_SET_NAME, (MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len)); +PN(void, mpi_win_start, MPI_WIN_START, (MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_test, MPI_WIN_TEST, (MPI_Fint *win, MPI_Flogical *flag, MPI_Fint *ierr)); +PN(void, mpi_win_unlock, MPI_WIN_UNLOCK, (MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr)); +PN(void, mpi_win_wait, MPI_WIN_WAIT, (MPI_Fint *win, MPI_Fint *ierr)); +PN(double, mpi_wtick, MPI_WTICK, (void)); +PN(double, mpi_wtime, MPI_WTIME, (void)); -void mpi_type_null_delete_fn_f(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_type_null_copy_fn_f(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_type_dup_fn_f(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_dup_fn_f(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_copy_fn_f(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_delete_fn_f(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_delete_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_copy_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_dup_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_null_delete_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_comm_null_copy_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_dup_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); - -#endif - -/* These are the all lower case prototypes */ - -void mpi_abort(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_accumulate(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void mpi_add_error_class(MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_add_error_code(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_add_error_string(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void mpi_address(char *location, MPI_Fint *address, MPI_Fint *ierr); -void mpi_allgather(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_allgatherv(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alloc_mem(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void mpi_allreduce(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoall(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallv(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallw(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_attr_delete(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_attr_get(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_attr_put(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void mpi_barrier(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bcast(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend_init(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_buffer_attach(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_buffer_detach(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_cancel(MPI_Fint *request, MPI_Fint *ierr); -void mpi_cart_coords(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_create(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void mpi_cart_get(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_map(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_cart_rank(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_cart_shift(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void mpi_cart_sub(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void mpi_cartdim_get(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void mpi_close_port(char *port_name, MPI_Fint *ierr); -void mpi_comm_accept(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_call_errhandler(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_comm_compare(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_comm_connect(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_create_errhandler(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_create_keyval(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_comm_create(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_delete_attr(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_disconnect(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_dup(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_free_keyval(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_free(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_get_attr(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_comm_get_errhandler(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void mpi_comm_get_name(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void mpi_comm_get_parent(MPI_Fint *parent, MPI_Fint *ierr); -void mpi_comm_group(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_join(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void mpi_comm_rank(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_comm_remote_group(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_remote_size(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_set_attr(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_comm_set_errhandler(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_set_name(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void mpi_comm_size(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_spawn(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_spawn_multiple(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_split(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_test_inter(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_dims_create(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void mpi_errhandler_create(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_free(MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_get(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_set(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_error_class(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_error_string(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_exscan(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_file_call_errhandler(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_file_create_errhandler(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_set_errhandler(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_get_errhandler(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_open(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_close(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_delete(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_set_size(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_preallocate(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_size(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_group(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void mpi_file_get_amode(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void mpi_file_set_info(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_info(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void mpi_file_set_view(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_view(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void mpi_file_read_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_at_all(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_at(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_seek(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_get_byte_offset(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void mpi_file_read_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_shared(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read_ordered(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_seek_shared(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position_shared(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_read_at_all_begin(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_at_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all_begin(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_at_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_all_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_ordered_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_ordered_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered_begin(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_ordered_end(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_get_type_extent(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_file_set_atomicity(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_get_atomicity(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_sync(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_finalize(MPI_Fint *ierr); -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_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); -void mpi_get_processor_name(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_get_version(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void mpi_graph_create(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void mpi_graph_get(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void mpi_graph_map(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_graph_neighbors_count(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void mpi_graph_neighbors(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void mpi_graphdims_get(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void mpi_grequest_complete(MPI_Fint *request, MPI_Fint *ierr); -void mpi_grequest_start(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void mpi_group_compare(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_group_difference(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_excl(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_free(MPI_Fint *group, MPI_Fint *ierr); -void mpi_group_incl(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_intersection(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_excl(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_incl(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_rank(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_group_size(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void mpi_group_translate_ranks(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void mpi_group_union(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_ibsend(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_info_create(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_delete(MPI_Fint *info, char *key, MPI_Fint *ierr); -void mpi_info_dup(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void mpi_info_free(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_get(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_info_get_nkeys(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void mpi_info_get_nthkey(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void mpi_info_get_valuelen(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_info_set(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void mpi_init(MPI_Fint *ierr); -void mpi_initialized(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_init_thread(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void mpi_intercomm_create(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(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void mpi_iprobe(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_irecv(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_irsend(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_isend(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_issend(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_is_thread_main(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_keyval_create(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_keyval_free(MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_lookup_name(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_create(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void mpi_open_port(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_free(MPI_Fint *op, MPI_Fint *ierr); -void mpi_pack_external(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void mpi_pack_external_size(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pack(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_pack_size(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pcontrol(MPI_Fint *level); -void mpi_probe(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_publish_name(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_put(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); -void mpi_query_thread(MPI_Fint *provided, MPI_Fint *ierr); -void mpi_recv_init(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_recv(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_reduce(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_reduce_scatter(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_register_datarep(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_request_free(MPI_Fint *request, MPI_Fint *ierr); -void mpi_request_get_status(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_rsend(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_rsend_init(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_scan(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_scatter(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_scatterv(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_send_init(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_send(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_sendrecv(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_sendrecv_replace(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_ssend_init(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_ssend(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_start(MPI_Fint *request, MPI_Fint *ierr); -void mpi_startall(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void mpi_status_set_cancelled(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_status_set_elements(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void mpi_testall(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_testany(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_test(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_test_cancelled(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_testsome(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_topo_test(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_type_commit(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_contiguous(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_darray(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_f90_complex(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_integer(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_real(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hindexed(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hvector(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_keyval(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_type_create_indexed_block(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_struct(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_subarray(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_resized(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_delete_attr(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_dup(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_extent(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_type_free(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_free_keyval(MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_get_attr(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_type_get_contents(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void mpi_type_get_envelope(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void mpi_type_get_extent(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void mpi_type_get_name(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_type_get_true_extent(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void mpi_type_hindexed(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_hvector(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_indexed(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_lb(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void mpi_type_match_size(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_set_attr(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void mpi_type_set_name(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void mpi_type_size(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void mpi_type_struct(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_ub(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void mpi_type_vector(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_unpack(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_unpublish_name(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_unpack_external (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_waitall(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_waitany(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void mpi_wait(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void mpi_waitsome(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_win_call_errhandler(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_win_complete(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create_errhandler(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_create_keyval(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_win_delete_attr(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_fence(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free_keyval(MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_get_attr(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_get_errhandler(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_get_group(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void mpi_win_get_name(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_win_lock(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_post(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_set_attr(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_win_set_errhandler(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_set_name(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void mpi_win_start(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_test(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_unlock(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_wait(MPI_Fint *win, MPI_Fint *ierr); -double mpi_wtick(void); -double mpi_wtime(void); - -void mpi_type_null_delete_fn(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_type_null_copy_fn(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_type_dup_fn(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_dup_fn(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_copy_fn(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_delete_fn(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_delete_fn(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_copy_fn(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_dup_fn(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_null_delete_fn(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_comm_null_copy_fn(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_dup_fn(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); - -/* These are all the single underscore prototypes */ - -void mpi_abort_(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_accumulate_(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void mpi_add_error_class_(MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_add_error_code_(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_add_error_string_(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void mpi_address_(char *location, MPI_Fint *address, MPI_Fint *ierr); -void mpi_allgather_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_allgatherv_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alloc_mem_(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void mpi_allreduce_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoall_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallv_(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallw_(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_attr_delete_(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_attr_get_(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_attr_put_(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void mpi_barrier_(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bcast_(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend_init_(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_buffer_attach_(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_buffer_detach_(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_cancel_(MPI_Fint *request, MPI_Fint *ierr); -void mpi_cart_coords_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_create_(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void mpi_cart_get_(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_map_(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_cart_rank_(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_cart_shift_(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void mpi_cart_sub_(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void mpi_cartdim_get_(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void mpi_close_port_(char *port_name, MPI_Fint *ierr); -void mpi_comm_accept_(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_call_errhandler_(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_comm_compare_(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_comm_connect_(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_create_errhandler_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_create_keyval_(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_comm_create_(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_delete_attr_(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_disconnect_(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_dup_(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_free_keyval_(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_free_(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_get_attr_(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_comm_get_errhandler_(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void mpi_comm_get_name_(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void mpi_comm_get_parent_(MPI_Fint *parent, MPI_Fint *ierr); -void mpi_comm_group_(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_join_(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void mpi_comm_rank_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_comm_remote_group_(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_remote_size_(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_set_attr_(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_comm_set_errhandler_(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_set_name_(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void mpi_comm_size_(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_spawn_(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_spawn_multiple_(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_split_(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_test_inter_(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_dims_create_(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void mpi_errhandler_create_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_free_(MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_get_(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_set_(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_error_class_(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_error_string_(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_exscan_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_file_call_errhandler_(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_file_create_errhandler_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_set_errhandler_(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_get_errhandler_(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_open_(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_close_(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_delete_(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_set_size_(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_preallocate_(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_size_(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_group_(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void mpi_file_get_amode_(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void mpi_file_set_info_(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_info_(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void mpi_file_set_view_(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_view_(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void mpi_file_read_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_at_all_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_at_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_seek_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_get_byte_offset_(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void mpi_file_read_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_shared_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read_ordered_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_seek_shared_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position_shared_(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_read_at_all_begin_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_at_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all_begin_(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_at_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_all_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_ordered_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_ordered_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered_begin_(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_ordered_end_(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_get_type_extent_(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_file_set_atomicity_(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_get_atomicity_(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_sync_(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_finalize_(MPI_Fint *ierr); -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_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); -void mpi_get_processor_name_(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_get_version_(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void mpi_graph_create_(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void mpi_graph_get_(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void mpi_graph_map_(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_graph_neighbors_count_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void mpi_graph_neighbors_(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void mpi_graphdims_get_(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void mpi_grequest_complete_(MPI_Fint *request, MPI_Fint *ierr); -void mpi_grequest_start_(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void mpi_group_compare_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_group_difference_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_excl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_free_(MPI_Fint *group, MPI_Fint *ierr); -void mpi_group_incl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_intersection_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_excl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_incl_(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_rank_(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_group_size_(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void mpi_group_translate_ranks_(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void mpi_group_union_(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_ibsend_(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_info_create_(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_delete_(MPI_Fint *info, char *key, MPI_Fint *ierr); -void mpi_info_dup_(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void mpi_info_free_(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_get_(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_info_get_nkeys_(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void mpi_info_get_nthkey_(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void mpi_info_get_valuelen_(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_info_set_(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void mpi_init_(MPI_Fint *ierr); -void mpi_initialized_(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_init_thread_(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void mpi_intercomm_create_(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_(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void mpi_iprobe_(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_irecv_(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_irsend_(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_isend_(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_issend_(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_is_thread_main_(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_keyval_create_(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_keyval_free_(MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_lookup_name_(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_create_(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void mpi_open_port_(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_free_(MPI_Fint *op, MPI_Fint *ierr); -void mpi_pack_external_(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void mpi_pack_external_size_(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pack_(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_pack_size_(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pcontrol_(MPI_Fint *level); -void mpi_probe_(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_publish_name_(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_put_(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); -void mpi_query_thread_(MPI_Fint *provided, MPI_Fint *ierr); -void mpi_recv_init_(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_recv_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_reduce_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_reduce_scatter_(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_register_datarep_(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_request_free_(MPI_Fint *request, MPI_Fint *ierr); -void mpi_request_get_status_(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_rsend_(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_rsend_init_(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_scan_(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_scatter_(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_scatterv_(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_send_init_(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_send_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_sendrecv_(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_sendrecv_replace_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_ssend_init_(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_ssend_(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_start_(MPI_Fint *request, MPI_Fint *ierr); -void mpi_startall_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void mpi_status_set_cancelled_(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_status_set_elements_(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void mpi_testall_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_testany_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_test_(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_test_cancelled_(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_testsome_(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_topo_test_(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_type_commit_(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_contiguous_(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_darray_(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_f90_complex_(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_integer_(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_real_(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hindexed_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hvector_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_keyval_(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_type_create_indexed_block_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_struct_(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_subarray_(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_resized_(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_delete_attr_(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_dup_(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_extent_(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_type_free_(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_free_keyval_(MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_get_attr_(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_type_get_contents_(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void mpi_type_get_envelope_(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void mpi_type_get_extent_(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void mpi_type_get_name_(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_type_get_true_extent_(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void mpi_type_hindexed_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_hvector_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_indexed_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_lb_(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void mpi_type_match_size_(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_set_attr_(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void mpi_type_set_name_(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void mpi_type_size_(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void mpi_type_struct_(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_ub_(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void mpi_type_vector_(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_unpack_(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_unpublish_name_(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_unpack_external_ (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_waitall_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_waitany_(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void mpi_wait_(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void mpi_waitsome_(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_win_call_errhandler_(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_win_complete_(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create_(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create_errhandler_(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_create_keyval_(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_win_delete_attr_(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_fence_(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free_(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free_keyval_(MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_get_attr_(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_get_errhandler_(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_get_group_(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void mpi_win_get_name_(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_win_lock_(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_post_(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_set_attr_(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_win_set_errhandler_(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_set_name_(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void mpi_win_start_(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_test_(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_unlock_(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_wait_(MPI_Fint *win, MPI_Fint *ierr); -double mpi_wtick_(void); -double mpi_wtime_(void); - -void mpi_type_null_delete_fn_(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_type_null_copy_fn_(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_type_dup_fn_(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_dup_fn_(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_copy_fn_(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_delete_fn_(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_delete_fn_(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_copy_fn_(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_dup_fn_(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_null_delete_fn_(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_comm_null_copy_fn_(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_dup_fn_(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); - -/* These are all the double underscore prototypes */ - -void mpi_abort__(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_accumulate__(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void mpi_add_error_class__(MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_add_error_code__(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_add_error_string__(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void mpi_address__(char *location, MPI_Fint *address, MPI_Fint *ierr); -void mpi_allgather__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_allgatherv__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alloc_mem__(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void mpi_allreduce__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoall__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallv__(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_alltoallw__(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_attr_delete__(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_attr_get__(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_attr_put__(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void mpi_barrier__(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bcast__(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_bsend_init__(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_buffer_attach__(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_buffer_detach__(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void mpi_cancel__(MPI_Fint *request, MPI_Fint *ierr); -void mpi_cart_coords__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_create__(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void mpi_cart_get__(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void mpi_cart_map__(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_cart_rank__(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_cart_shift__(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void mpi_cart_sub__(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void mpi_cartdim_get__(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void mpi_close_port__(char *port_name, MPI_Fint *ierr); -void mpi_comm_accept__(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_call_errhandler__(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_comm_compare__(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_comm_connect__(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_create_errhandler__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_create_keyval__(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_comm_create__(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_delete_attr__(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_disconnect__(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_dup__(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_free_keyval__(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void mpi_comm_free__(MPI_Fint *comm, MPI_Fint *ierr); -void mpi_comm_get_attr__(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_comm_get_errhandler__(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void mpi_comm_get_name__(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void mpi_comm_get_parent__(MPI_Fint *parent, MPI_Fint *ierr); -void mpi_comm_group__(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_join__(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void mpi_comm_rank__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_comm_remote_group__(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void mpi_comm_remote_size__(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_set_attr__(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_comm_set_errhandler__(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_comm_set_name__(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void mpi_comm_size__(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_comm_spawn__(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_spawn_multiple__(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void mpi_comm_split__(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void mpi_comm_test_inter__(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_dims_create__(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void mpi_errhandler_create__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_free__(MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_get__(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_errhandler_set__(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_error_class__(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void mpi_error_string__(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_exscan__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_file_call_errhandler__(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_file_create_errhandler__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_set_errhandler__(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_get_errhandler__(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_file_open__(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_close__(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_file_delete__(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_set_size__(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_preallocate__(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_size__(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void mpi_file_get_group__(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void mpi_file_get_amode__(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void mpi_file_set_info__(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_info__(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void mpi_file_set_view__(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void mpi_file_get_view__(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void mpi_file_read_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_at_all__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_at__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_seek__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_get_byte_offset__(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void mpi_file_read_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_iread_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_iwrite_shared__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void mpi_file_read_ordered__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_seek_shared__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void mpi_file_get_position_shared__(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void mpi_file_read_at_all_begin__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_at_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_at_all_begin__(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_at_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_all_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_all_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_all_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_read_ordered_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_read_ordered_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_write_ordered_begin__(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_file_write_ordered_end__(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void mpi_file_get_type_extent__(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_file_set_atomicity__(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_get_atomicity__(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_file_sync__(MPI_Fint *fh, MPI_Fint *ierr); -void mpi_finalize__(MPI_Fint *ierr); -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_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); -void mpi_get_processor_name__(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_get_version__(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void mpi_graph_create__(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void mpi_graph_get__(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void mpi_graph_map__(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void mpi_graph_neighbors_count__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void mpi_graph_neighbors__(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void mpi_graphdims_get__(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void mpi_grequest_complete__(MPI_Fint *request, MPI_Fint *ierr); -void mpi_grequest_start__(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function* cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void mpi_group_compare__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void mpi_group_difference__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_excl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_free__(MPI_Fint *group, MPI_Fint *ierr); -void mpi_group_incl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_intersection__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_excl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_range_incl__(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_group_rank__(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void mpi_group_size__(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void mpi_group_translate_ranks__(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void mpi_group_union__(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void mpi_ibsend__(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_info_create__(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_delete__(MPI_Fint *info, char *key, MPI_Fint *ierr); -void mpi_info_dup__(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void mpi_info_free__(MPI_Fint *info, MPI_Fint *ierr); -void mpi_info_get__(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_info_get_nkeys__(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void mpi_info_get_nthkey__(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void mpi_info_get_valuelen__(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_info_set__(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void mpi_init__(MPI_Fint *ierr); -void mpi_initialized__(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_init_thread__(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void mpi_intercomm_create__(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__(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void mpi_iprobe__(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_irecv__(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_irsend__(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_isend__(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_issend__(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_is_thread_main__(MPI_Fint *flag, MPI_Fint *ierr); -void mpi_keyval_create__(ompi_mpi1_fortran_copy_attr_function* copy_fn, ompi_mpi1_fortran_delete_attr_function* delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_keyval_free__(MPI_Fint *keyval, MPI_Fint *ierr); -void mpi_lookup_name__(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_create__(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void mpi_open_port__(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_op_free__(MPI_Fint *op, MPI_Fint *ierr); -void mpi_pack_external__(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void mpi_pack_external_size__(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pack__(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_pack_size__(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void mpi_pcontrol__(MPI_Fint *level); -void mpi_probe__(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_publish_name__(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_put__(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); -void mpi_query_thread__(MPI_Fint *provided, MPI_Fint *ierr); -void mpi_recv_init__(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_recv__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_reduce__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_reduce_scatter__(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_register_datarep__(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_request_free__(MPI_Fint *request, MPI_Fint *ierr); -void mpi_request_get_status__(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_rsend__(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_rsend_init__(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_scan__(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_scatter__(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_scatterv__(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_send_init__(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_send__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_sendrecv__(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_sendrecv_replace__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_ssend_init__(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_ssend__(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_start__(MPI_Fint *request, MPI_Fint *ierr); -void mpi_startall__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void mpi_status_set_cancelled__(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_status_set_elements__(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void mpi_testall__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_testany__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_test__(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void mpi_test_cancelled__(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_testsome__(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_topo_test__(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void mpi_type_commit__(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_contiguous__(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_darray__(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_f90_complex__(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_integer__(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_f90_real__(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hindexed__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_hvector__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_keyval__(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_type_create_indexed_block__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_struct__(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_subarray__(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_create_resized__(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_delete_attr__(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_dup__(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_extent__(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void mpi_type_free__(MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_free_keyval__(MPI_Fint *type_keyval, MPI_Fint *ierr); -void mpi_type_get_attr__(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_type_get_contents__(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void mpi_type_get_envelope__(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void mpi_type_get_extent__(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void mpi_type_get_name__(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_type_get_true_extent__(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void mpi_type_hindexed__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_hvector__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_indexed__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_lb__(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void mpi_type_match_size__(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void mpi_type_set_attr__(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void mpi_type_set_name__(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void mpi_type_size__(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void mpi_type_struct__(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_type_ub__(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void mpi_type_vector__(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void mpi_unpack__(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void mpi_unpublish_name__(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void mpi_unpack_external__ (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void mpi_waitall__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void mpi_waitany__(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void mpi_wait__(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void mpi_waitsome__(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_win_call_errhandler__(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void mpi_win_complete__(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create__(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_create_errhandler__(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_create_keyval__(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void mpi_win_delete_attr__(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_fence__(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free__(MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_free_keyval__(MPI_Fint *win_keyval, MPI_Fint *ierr); -void mpi_win_get_attr__(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_get_errhandler__(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_get_group__(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void mpi_win_get_name__(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void mpi_win_lock__(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_post__(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_set_attr__(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void mpi_win_set_errhandler__(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void mpi_win_set_name__(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void mpi_win_start__(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_test__(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void mpi_win_unlock__(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void mpi_win_wait__(MPI_Fint *win, MPI_Fint *ierr); -double mpi_wtick__(void); -double mpi_wtime__(void); - -void mpi_type_null_delete_fn__(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_type_null_copy_fn__(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_type_dup_fn__(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_dup_fn__(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_copy_fn__(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_win_null_delete_fn__(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_delete_fn__(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_null_copy_fn__(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_dup_fn__(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_null_delete_fn__(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void mpi_comm_null_copy_fn__(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void mpi_comm_dup_fn__(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); - -/* These are all the upper case prototypes */ - -void MPI_ABORT(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void MPI_ACCUMULATE(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 *op, MPI_Fint *win, MPI_Fint *ierr); -void MPI_ADD_ERROR_CLASS(MPI_Fint *errorclass, MPI_Fint *ierr); -void MPI_ADD_ERROR_CODE(MPI_Fint *errorclass, MPI_Fint *errorcode, MPI_Fint *ierr); -void MPI_ADD_ERROR_STRING(MPI_Fint *errorcode, char *string, MPI_Fint *ierr, int l); -void MPI_ADDRESS(char *location, MPI_Fint *address, MPI_Fint *ierr); -void MPI_ALLGATHER(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_ALLGATHERV(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *displs, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_ALLOC_MEM(MPI_Fint *size, MPI_Fint *info, char *baseptr, MPI_Fint *ierr); -void MPI_ALLREDUCE(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_ALLTOALL(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_ALLTOALLV(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtype, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_ALLTOALLW(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *sdispls, MPI_Fint *sendtypes, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *rdispls, MPI_Fint *recvtypes, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_ATTR_DELETE(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *ierr); -void MPI_ATTR_GET(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_ATTR_PUT(MPI_Fint *comm, MPI_Fint *keyval, MPI_Fint *attribute_val, MPI_Fint *ierr); -void MPI_BARRIER(MPI_Fint *comm, MPI_Fint *ierr); -void MPI_BCAST(char *buffer, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_BSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_BSEND_INIT(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_BUFFER_ATTACH(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void MPI_BUFFER_DETACH(char *buffer, MPI_Fint *size, MPI_Fint *ierr); -void MPI_CANCEL(MPI_Fint *request, MPI_Fint *ierr); -void MPI_CART_COORDS(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxdims, MPI_Fint *coords, MPI_Fint *ierr); -void MPI_CART_CREATE(MPI_Fint *old_comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *reorder, MPI_Fint *comm_cart, MPI_Fint *ierr); -void MPI_CART_GET(MPI_Fint *comm, MPI_Fint *maxdims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *coords, MPI_Fint *ierr); -void MPI_CART_MAP(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *periods, MPI_Fint *newrank, MPI_Fint *ierr); -void MPI_CART_RANK(MPI_Fint *comm, MPI_Fint *coords, MPI_Fint *rank, MPI_Fint *ierr); -void MPI_CART_SHIFT(MPI_Fint *comm, MPI_Fint *direction, MPI_Fint *disp, MPI_Fint *rank_source, MPI_Fint *rank_dest, MPI_Fint *ierr); -void MPI_CART_SUB(MPI_Fint *comm, MPI_Fint *remain_dims, MPI_Fint *new_comm, MPI_Fint *ierr); -void MPI_CARTDIM_GET(MPI_Fint *comm, MPI_Fint *ndims, MPI_Fint *ierr); -void MPI_CLOSE_PORT(char *port_name, MPI_Fint *ierr); -void MPI_COMM_ACCEPT(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void MPI_COMM_CALL_ERRHANDLER(MPI_Fint *comm, MPI_Fint *errorcode, MPI_Fint *ierr); -void MPI_COMM_COMPARE(MPI_Fint *comm1, MPI_Fint *comm2, MPI_Fint *result, MPI_Fint *ierr); -void MPI_COMM_CONNECT(char *port_name, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void MPI_COMM_CREATE_ERRHANDLER(ompi_errhandler_fortran_handler_fn_t *function, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_COMM_CREATE_KEYVAL(ompi_mpi2_fortran_copy_attr_function* comm_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* comm_delete_attr_fn, MPI_Fint *comm_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void MPI_COMM_CREATE(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *newcomm, MPI_Fint *ierr); -void MPI_COMM_DELETE_ATTR(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Fint *ierr); -void MPI_COMM_DISCONNECT(MPI_Fint *comm, MPI_Fint *ierr); -void MPI_COMM_DUP(MPI_Fint *comm, MPI_Fint *newcomm, MPI_Fint *ierr); -void MPI_COMM_FREE_KEYVAL(MPI_Fint *comm_keyval, MPI_Fint *ierr); -void MPI_COMM_FREE(MPI_Fint *comm, MPI_Fint *ierr); -void MPI_COMM_GET_ATTR(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_COMM_GET_ERRHANDLER(MPI_Fint *comm, MPI_Fint *erhandler, MPI_Fint *ierr); -void MPI_COMM_GET_NAME(MPI_Fint *comm, char *comm_name, MPI_Fint *resultlen, MPI_Fint *ierr, int name_len); -void MPI_COMM_GET_PARENT(MPI_Fint *parent, MPI_Fint *ierr); -void MPI_COMM_GROUP(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void MPI_COMM_JOIN(MPI_Fint *fd, MPI_Fint *intercomm, MPI_Fint *ierr); -void MPI_COMM_RANK(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *ierr); -void MPI_COMM_REMOTE_GROUP(MPI_Fint *comm, MPI_Fint *group, MPI_Fint *ierr); -void MPI_COMM_REMOTE_SIZE(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void MPI_COMM_SET_ATTR(MPI_Fint *comm, MPI_Fint *comm_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void MPI_COMM_SET_ERRHANDLER(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_COMM_SET_NAME(MPI_Fint *comm, char *comm_name, MPI_Fint *ierr, int name_len); -void MPI_COMM_SIZE(MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void MPI_COMM_SPAWN(char *command, char *argv, MPI_Fint *maxprocs, MPI_Fint *info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void MPI_COMM_SPAWN_MULTIPLE(MPI_Fint *count, char *array_of_commands, char *array_of_argv, MPI_Fint *array_of_maxprocs, MPI_Fint *array_of_info, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *intercomm, MPI_Fint *array_of_errcodes, MPI_Fint *ierr, int cmd_len, int argv_len); -void MPI_COMM_SPLIT(MPI_Fint *comm, MPI_Fint *color, MPI_Fint *key, MPI_Fint *newcomm, MPI_Fint *ierr); -void MPI_COMM_TEST_INTER(MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_DIMS_CREATE(MPI_Fint *nnodes, MPI_Fint *ndims, MPI_Fint *dims, MPI_Fint *ierr); -void MPI_ERRHANDLER_CREATE(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_ERRHANDLER_FREE(MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_ERRHANDLER_GET(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_ERRHANDLER_SET(MPI_Fint *comm, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_ERROR_CLASS(MPI_Fint *errorcode, MPI_Fint *errorclass, MPI_Fint *ierr); -void MPI_ERROR_STRING(MPI_Fint *errorcode, char *string, MPI_Fint *resultlen, MPI_Fint *ierr); -void MPI_EXSCAN(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_FILE_CALL_ERRHANDLER(MPI_Fint *fh, MPI_Fint *errorcode, MPI_Fint *ierr); -void MPI_FILE_CREATE_ERRHANDLER(ompi_errhandler_fortran_handler_fn_t *function, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_FILE_SET_ERRHANDLER(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_FILE_GET_ERRHANDLER(MPI_Fint *file, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_FILE_OPEN(MPI_Fint *comm, char *filename, MPI_Fint *amode, MPI_Fint *info, MPI_Fint *fh, MPI_Fint *ierr); -void MPI_FILE_CLOSE(MPI_Fint *fh, MPI_Fint *ierr); -void MPI_FILE_DELETE(char *filename, MPI_Fint *info, MPI_Fint *ierr); -void MPI_FILE_SET_SIZE(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void MPI_FILE_PREALLOCATE(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void MPI_FILE_GET_SIZE(MPI_Fint *fh, MPI_Offset *size, MPI_Fint *ierr); -void MPI_FILE_GET_GROUP(MPI_Fint *fh, MPI_Fint *group, MPI_Fint *ierr); -void MPI_FILE_GET_AMODE(MPI_Fint *fh, MPI_Fint *amode, MPI_Fint *ierr); -void MPI_FILE_SET_INFO(MPI_Fint *fh, MPI_Fint *info, MPI_Fint *ierr); -void MPI_FILE_GET_INFO(MPI_Fint *fh, MPI_Fint *info_used, MPI_Fint *ierr); -void MPI_FILE_SET_VIEW(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *info, MPI_Fint *ierr); -void MPI_FILE_GET_VIEW(MPI_Fint *fh, MPI_Offset *disp, MPI_Fint *etype, MPI_Fint *filetype, char *datarep, MPI_Fint *ierr); -void MPI_FILE_READ_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_READ_AT_ALL(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_AT_ALL(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_IREAD_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void MPI_FILE_IWRITE_AT(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void MPI_FILE_READ(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_READ_ALL(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_ALL(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_IREAD(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void MPI_FILE_IWRITE(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void MPI_FILE_SEEK(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void MPI_FILE_GET_POSITION(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void MPI_FILE_GET_BYTE_OFFSET(MPI_Fint *fh, MPI_Offset *offset, MPI_Offset *disp, MPI_Fint *ierr); -void MPI_FILE_READ_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_IREAD_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void MPI_FILE_IWRITE_SHARED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *request, MPI_Fint *ierr); -void MPI_FILE_READ_ORDERED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_ORDERED(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_SEEK_SHARED(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *whence, MPI_Fint *ierr); -void MPI_FILE_GET_POSITION_SHARED(MPI_Fint *fh, MPI_Offset *offset, MPI_Fint *ierr); -void MPI_FILE_READ_AT_ALL_BEGIN(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_FILE_READ_AT_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_AT_ALL_BEGIN(MPI_Fint *fh, MPI_Offset *offset, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_FILE_WRITE_AT_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_READ_ALL_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_FILE_READ_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_ALL_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_FILE_WRITE_ALL_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_READ_ORDERED_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_FILE_READ_ORDERED_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_WRITE_ORDERED_BEGIN(MPI_Fint *fh, char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_FILE_WRITE_ORDERED_END(MPI_Fint *fh, char *buf, MPI_Fint *status, MPI_Fint *ierr); -void MPI_FILE_GET_TYPE_EXTENT(MPI_Fint *fh, MPI_Fint *datatype, MPI_Fint *extent, MPI_Fint *ierr); -void MPI_FILE_SET_ATOMICITY(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_FILE_GET_ATOMICITY(MPI_Fint *fh, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_FILE_SYNC(MPI_Fint *fh, MPI_Fint *ierr); -void MPI_FINALIZE(MPI_Fint *ierr); -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_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); -void MPI_GET_PROCESSOR_NAME(char *name, MPI_Fint *resultlen, MPI_Fint *ierr); -void MPI_GET_VERSION(MPI_Fint *version, MPI_Fint *subversion, MPI_Fint *ierr); -void MPI_GRAPH_CREATE(MPI_Fint *comm_old, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *reorder, MPI_Fint *comm_graph, MPI_Fint *ierr); -void MPI_GRAPH_GET(MPI_Fint *comm, MPI_Fint *maxindex, MPI_Fint *maxedges, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *ierr); -void MPI_GRAPH_MAP(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *index, MPI_Fint *edges, MPI_Fint *newrank, MPI_Fint *ierr); -void MPI_GRAPH_NEIGHBORS_COUNT(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *nneighbors, MPI_Fint *ierr); -void MPI_GRAPH_NEIGHBORS(MPI_Fint *comm, MPI_Fint *rank, MPI_Fint *maxneighbors, MPI_Fint *neighbors, MPI_Fint *ierr); -void MPI_GRAPHDIMS_GET(MPI_Fint *comm, MPI_Fint *nnodes, MPI_Fint *nedges, MPI_Fint *ierr); -void MPI_GREQUEST_COMPLETE(MPI_Fint *request, MPI_Fint *ierr); -void MPI_GREQUEST_START(MPI_F_Grequest_query_function* query_fn, MPI_F_Grequest_free_function* free_fn, MPI_F_Grequest_cancel_function *cancel_fn, MPI_Fint *extra_state, MPI_Fint *request, MPI_Fint *ierr); -void MPI_GROUP_COMPARE(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *result, MPI_Fint *ierr); -void MPI_GROUP_DIFFERENCE(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_GROUP_EXCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_GROUP_FREE(MPI_Fint *group, MPI_Fint *ierr); -void MPI_GROUP_INCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint *ranks, MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_GROUP_INTERSECTION(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_GROUP_RANGE_EXCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_GROUP_RANGE_INCL(MPI_Fint *group, MPI_Fint *n, MPI_Fint ranges[][3], MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_GROUP_RANK(MPI_Fint *group, MPI_Fint *rank, MPI_Fint *ierr); -void MPI_GROUP_SIZE(MPI_Fint *group, MPI_Fint *size, MPI_Fint *ierr); -void MPI_GROUP_TRANSLATE_RANKS(MPI_Fint *group1, MPI_Fint *n, MPI_Fint *ranks1, MPI_Fint *group2, MPI_Fint *ranks2, MPI_Fint *ierr); -void MPI_GROUP_UNION(MPI_Fint *group1, MPI_Fint *group2, MPI_Fint *newgroup, MPI_Fint *ierr); -void MPI_IBSEND(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_INFO_CREATE(MPI_Fint *info, MPI_Fint *ierr); -void MPI_INFO_DELETE(MPI_Fint *info, char *key, MPI_Fint *ierr); -void MPI_INFO_DUP(MPI_Fint *info, MPI_Fint *newinfo, MPI_Fint *ierr); -void MPI_INFO_FREE(MPI_Fint *info, MPI_Fint *ierr); -void MPI_INFO_GET(MPI_Fint *info, char *key, MPI_Fint *valuelen, char *value, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_INFO_GET_NKEYS(MPI_Fint *info, MPI_Fint *nkeys, MPI_Fint *ierr); -void MPI_INFO_GET_NTHKEY(MPI_Fint *info, MPI_Fint *n, char *key, MPI_Fint *ierr); -void MPI_INFO_GET_VALUELEN(MPI_Fint *info, char *key, MPI_Fint *valuelen, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_INFO_SET(MPI_Fint *info, char *key, char *value, MPI_Fint *ierr); -void MPI_INIT(MPI_Fint *ierr); -void MPI_INITIALIZED(MPI_Fint *flag, MPI_Fint *ierr); -void MPI_INIT_THREAD(MPI_Fint *required, MPI_Fint *provided, MPI_Fint *ierr); -void MPI_INTERCOMM_CREATE(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(MPI_Fint *intercomm, MPI_Fint *high, MPI_Fint *newintercomm, MPI_Fint *ierr); -void MPI_IPROBE(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void MPI_IRECV(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_IRSEND(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_ISEND(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_ISSEND(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_IS_THREAD_MAIN(MPI_Fint *flag, MPI_Fint *ierr); -void MPI_KEYVAL_CREATE(ompi_mpi1_fortran_copy_attr_function *copy_fn, ompi_mpi1_fortran_delete_attr_function *delete_fn, MPI_Fint *keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void MPI_KEYVAL_FREE(MPI_Fint *keyval, MPI_Fint *ierr); -void MPI_LOOKUP_NAME(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void MPI_OP_CREATE(ompi_op_fortran_handler_fn_t* function, MPI_Fint *commute, MPI_Fint *op, MPI_Fint *ierr); -void MPI_OPEN_PORT(MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void MPI_OP_FREE(MPI_Fint *op, MPI_Fint *ierr); -void MPI_PACK_EXTERNAL(char *datarep, char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *ierr); -void MPI_PACK_EXTERNAL_SIZE(char *datarep, MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *size, MPI_Fint *ierr); -void MPI_PACK(char *inbuf, MPI_Fint *incount, MPI_Fint *datatype, char *outbuf, MPI_Fint *outsize, MPI_Fint *position, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_PACK_SIZE(MPI_Fint *incount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *size, MPI_Fint *ierr); -void MPI_PCONTROL(MPI_Fint *level); -void MPI_PROBE(MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void MPI_PUBLISH_NAME(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void MPI_PUT(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); -void MPI_QUERY_THREAD(MPI_Fint *provided, MPI_Fint *ierr); -void MPI_RECV_INIT(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_RECV(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *source, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void MPI_REDUCE(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_REDUCE_SCATTER(char *sendbuf, char *recvbuf, MPI_Fint *recvcounts, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_REGISTER_DATAREP(char *datarep, void *read_conversion_fn, void *write_conversion_fn, void *dtype_file_extent_fn, MPI_Fint *extra_state, MPI_Fint *ierr); -void MPI_REQUEST_FREE(MPI_Fint *request, MPI_Fint *ierr); -void MPI_REQUEST_GET_STATUS(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void MPI_RSEND(char *ibuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_RSEND_INIT(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_SCAN(char *sendbuf, char *recvbuf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *op, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_SCATTER(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_SCATTERV(char *sendbuf, MPI_Fint *sendcounts, MPI_Fint *displs, MPI_Fint *sendtype, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *root, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_SEND_INIT(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_SEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_SENDRECV(char *sendbuf, MPI_Fint *sendcount, MPI_Fint *sendtype, MPI_Fint *dest, MPI_Fint *sendtag, char *recvbuf, MPI_Fint *recvcount, MPI_Fint *recvtype, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void MPI_SENDRECV_REPLACE(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *sendtag, MPI_Fint *source, MPI_Fint *recvtag, MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void MPI_SSEND_INIT(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_SSEND(char *buf, MPI_Fint *count, MPI_Fint *datatype, MPI_Fint *dest, MPI_Fint *tag, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_START(MPI_Fint *request, MPI_Fint *ierr); -void MPI_STARTALL(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *ierr); -void MPI_STATUS_SET_CANCELLED(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_STATUS_SET_ELEMENTS(MPI_Fint *status, MPI_Fint *datatype, MPI_Fint *count, MPI_Fint *ierr); -void MPI_TESTALL(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void MPI_TESTANY(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void MPI_TEST(MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr); -void MPI_TEST_CANCELLED(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_TESTSOME(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_TOPO_TEST(MPI_Fint *comm, MPI_Fint *status, MPI_Fint *ierr); -void MPI_TYPE_COMMIT(MPI_Fint *type, MPI_Fint *ierr); -void MPI_TYPE_CONTIGUOUS(MPI_Fint *count, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_DARRAY(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_F90_COMPLEX(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_F90_INTEGER(MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_F90_REAL(MPI_Fint *p, MPI_Fint *r, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_HINDEXED(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_HVECTOR(MPI_Fint *count, MPI_Fint *blocklength, MPI_Aint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_KEYVAL(ompi_mpi2_fortran_copy_attr_function* type_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* type_delete_attr_fn, MPI_Fint *type_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void MPI_TYPE_CREATE_INDEXED_BLOCK(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_STRUCT(MPI_Fint *count, MPI_Fint *array_of_block_lengths, MPI_Aint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_SUBARRAY(MPI_Fint *ndims, MPI_Fint *size_array, MPI_Fint *subsize_array, MPI_Fint *start_array, MPI_Fint *order, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_CREATE_RESIZED(MPI_Fint *oldtype, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_DELETE_ATTR(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Fint *ierr); -void MPI_TYPE_DUP(MPI_Fint *type, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_EXTENT(MPI_Fint *type, MPI_Fint *extent, MPI_Fint *ierr); -void MPI_TYPE_FREE(MPI_Fint *type, MPI_Fint *ierr); -void MPI_TYPE_FREE_KEYVAL(MPI_Fint *type_keyval, MPI_Fint *ierr); -void MPI_TYPE_GET_ATTR(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_TYPE_GET_CONTENTS(MPI_Fint *mtype, MPI_Fint *max_integers, MPI_Fint *max_addresses, MPI_Fint *max_datatypes, MPI_Fint *array_of_integers, MPI_Fint *array_of_addresses, MPI_Fint *array_of_datatypes, MPI_Fint *ierr); -void MPI_TYPE_GET_ENVELOPE(MPI_Fint *type, MPI_Fint *num_integers, MPI_Fint *num_addresses, MPI_Fint *num_datatypes, MPI_Fint *combiner, MPI_Fint *ierr); -void MPI_TYPE_GET_EXTENT(MPI_Fint *type, MPI_Aint *lb, MPI_Aint *extent, MPI_Fint *ierr); -void MPI_TYPE_GET_NAME(MPI_Fint *type, char *type_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void MPI_TYPE_GET_TRUE_EXTENT(MPI_Fint *datatype, MPI_Aint *true_lb, MPI_Aint *true_extent, MPI_Fint *ierr); -void MPI_TYPE_HINDEXED(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_HVECTOR(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_INDEXED(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_LB(MPI_Fint *type, MPI_Fint *lb, MPI_Fint *ierr); -void MPI_TYPE_MATCH_SIZE(MPI_Fint *typeclass, MPI_Fint *size, MPI_Fint *type, MPI_Fint *ierr); -void MPI_TYPE_SET_ATTR(MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attr_val, MPI_Fint *ierr); -void MPI_TYPE_SET_NAME(MPI_Fint *type, char *type_name, MPI_Fint *ierr, int name_len); -void MPI_TYPE_SIZE(MPI_Fint *type, MPI_Fint *size, MPI_Fint *ierr); -void MPI_TYPE_STRUCT(MPI_Fint *count, MPI_Fint *array_of_blocklengths, MPI_Fint *array_of_displacements, MPI_Fint *array_of_types, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_TYPE_UB(MPI_Fint *mtype, MPI_Fint *ub, MPI_Fint *ierr); -void MPI_TYPE_VECTOR(MPI_Fint *count, MPI_Fint *blocklength, MPI_Fint *stride, MPI_Fint *oldtype, MPI_Fint *newtype, MPI_Fint *ierr); -void MPI_UNPACK(char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *comm, MPI_Fint *ierr); -void MPI_UNPUBLISH_NAME(char *service_name, MPI_Fint *info, char *port_name, MPI_Fint *ierr); -void MPI_UNPACK_EXTERNAL (char *datarep, char *inbuf, MPI_Fint *insize, MPI_Fint *position, char *outbuf, MPI_Fint *outcount, MPI_Fint *datatype, MPI_Fint *ierr); -void MPI_WAITALL(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *array_of_statuses, MPI_Fint *ierr); -void MPI_WAITANY(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr); -void MPI_WAIT(MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr); -void MPI_WAITSOME(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_WIN_CALL_ERRHANDLER(MPI_Fint *win, MPI_Fint *errorcode, MPI_Fint *ierr); -void MPI_WIN_COMPLETE(MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_CREATE(char *base, MPI_Fint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_CREATE_ERRHANDLER(ompi_errhandler_fortran_handler_fn_t* function, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_WIN_CREATE_KEYVAL(ompi_mpi2_fortran_copy_attr_function* win_copy_attr_fn, ompi_mpi2_fortran_delete_attr_function* win_delete_attr_fn, MPI_Fint *win_keyval, MPI_Fint *extra_state, MPI_Fint *ierr); -void MPI_WIN_DELETE_ATTR(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Fint *ierr); -void MPI_WIN_FENCE(MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_FREE(MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_FREE_KEYVAL(MPI_Fint *win_keyval, MPI_Fint *ierr); -void MPI_WIN_GET_ATTR(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_WIN_GET_ERRHANDLER(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_WIN_GET_GROUP(MPI_Fint *win, MPI_Fint *group, MPI_Fint *ierr); -void MPI_WIN_GET_NAME(MPI_Fint *win, char *win_name, MPI_Fint *resultlen, MPI_Fint *ierr); -void MPI_WIN_LOCK(MPI_Fint *lock_type, MPI_Fint *rank, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_POST(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_SET_ATTR(MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *ierr); -void MPI_WIN_SET_ERRHANDLER(MPI_Fint *win, MPI_Fint *errhandler, MPI_Fint *ierr); -void MPI_WIN_SET_NAME(MPI_Fint *win, char *win_name, MPI_Fint *ierr, int name_len); -void MPI_WIN_START(MPI_Fint *group, MPI_Fint *assert, MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_TEST(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr); -void MPI_WIN_UNLOCK(MPI_Fint *rank, MPI_Fint *win, MPI_Fint *ierr); -void MPI_WIN_WAIT(MPI_Fint *win, MPI_Fint *ierr); -double MPI_WTICK(void); -double MPI_WTIME(void); - -void MPI_TYPE_NULL_DELETE_FN(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void MPI_TYPE_NULL_COPY_FN(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_TYPE_DUP_FN(MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_WIN_DUP_FN(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_WIN_NULL_COPY_FN(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_WIN_NULL_DELETE_FN(MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void MPI_NULL_DELETE_FN(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void MPI_NULL_COPY_FN(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_DUP_FN(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_COMM_NULL_DELETE_FN(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr); -void MPI_COMM_NULL_COPY_FN(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); -void MPI_COMM_DUP_FN(MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr); +PN(void, mpi_type_null_delete_fn, MPI_TYPE_NULL_DELETE_FN, (MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr)); +PN(void, mpi_type_null_copy_fn, MPI_TYPE_NULL_COPY_FN, (MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_type_dup_fn, MPI_TYPE_DUP_FN, (MPI_Fint* type, MPI_Fint* type_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_win_dup_fn, MPI_WIN_DUP_FN, (MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_win_null_copy_fn, MPI_WIN_NULL_COPY_FN, (MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_win_null_delete_fn, MPI_WIN_NULL_DELETE_FN, (MPI_Fint* window, MPI_Fint* win_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr)); +PN(void, mpi_null_delete_fn, MPI_NULL_DELETE_FN, (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr)); +PN(void, mpi_null_copy_fn, MPI_NULL_COPY_FN, (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_dup_fn, MPI_DUP_FN, (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_comm_null_delete_fn, MPI_COMM_NULL_DELETE_FN, (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr)); +PN(void, mpi_comm_null_copy_fn, MPI_COMM_NULL_COPY_FN, (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); +PN(void, mpi_comm_dup_fn, MPI_COMM_DUP_FN, (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, MPI_Flogical * flag, MPI_Fint* ierr)); #endif diff --git a/ompi/mpi/f77/request_get_status_f.c b/ompi/mpi/f77/request_get_status_f.c index f423fca81d..36b2a9db5c 100644 --- a/ompi/mpi/f77/request_get_status_f.c +++ b/ompi/mpi/f77/request_get_status_f.c @@ -32,7 +32,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_REQUEST_GET_STATUS, pmpi_request_get_status_, pmpi_request_get_status__, pmpi_request_get_status_f, - (MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *request, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (request, flag, status, ierr) ) #endif @@ -49,7 +49,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_REQUEST_GET_STATUS, mpi_request_get_status_, mpi_request_get_status__, mpi_request_get_status_f, - (MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *request, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (request, flag, status, ierr) ) #endif @@ -58,24 +58,23 @@ OMPI_GENERATE_F77_BINDINGS (MPI_REQUEST_GET_STATUS, #include "mpi/f77/profile/defines.h" #endif -void mpi_request_get_status_f(MPI_Fint *request, MPI_Fint *flag, - MPI_Fint *status, MPI_Fint *ierr) +void mpi_request_get_status_f(MPI_Fint *request, MPI_Flogical *flag, + MPI_Fint *status, MPI_Fint *ierr) { MPI_Status c_status; MPI_Request c_req = MPI_Request_f2c( *request ); - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); /* This seems silly, but someone will do it */ if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) { - *flag = OMPI_INT_2_FINT(0); + *flag = OMPI_INT_2_LOGICAL(0); *ierr = OMPI_INT_2_FINT(MPI_SUCCESS); } else { *ierr = OMPI_INT_2_FINT(MPI_Request_get_status(c_req, - OMPI_SINGLE_NAME_CONVERT(flag), + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag), &c_status)); - - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); MPI_Status_c2f( &c_status, status ); } } diff --git a/ompi/mpi/f77/status_set_cancelled_f.c b/ompi/mpi/f77/status_set_cancelled_f.c index 428a92016c..1211a745a3 100644 --- a/ompi/mpi/f77/status_set_cancelled_f.c +++ b/ompi/mpi/f77/status_set_cancelled_f.c @@ -32,7 +32,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_STATUS_SET_CANCELLED, pmpi_status_set_cancelled_, pmpi_status_set_cancelled__, pmpi_status_set_cancelled_f, - (MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr), (status, flag, ierr) ) #endif @@ -49,7 +49,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_STATUS_SET_CANCELLED, mpi_status_set_cancelled_, mpi_status_set_cancelled__, mpi_status_set_cancelled_f, - (MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr), (status, flag, ierr) ) #endif @@ -58,7 +58,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_STATUS_SET_CANCELLED, #include "mpi/f77/profile/defines.h" #endif -void mpi_status_set_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr) +void mpi_status_set_cancelled_f(MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_Status c_status; @@ -69,8 +69,8 @@ void mpi_status_set_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr } else { MPI_Status_f2c( status, &c_status ); - *ierr = OMPI_INT_2_FINT(MPI_Status_set_cancelled(&c_status, - OMPI_FINT_2_INT(*flag))); + *ierr = OMPI_INT_2_FINT(MPI_Status_set_cancelled(&c_status, + OMPI_LOGICAL_2_INT(*flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { MPI_Status_c2f(&c_status, status); diff --git a/ompi/mpi/f77/test_cancelled_f.c b/ompi/mpi/f77/test_cancelled_f.c index 49471731f3..171c6c9163 100644 --- a/ompi/mpi/f77/test_cancelled_f.c +++ b/ompi/mpi/f77/test_cancelled_f.c @@ -32,7 +32,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_TEST_CANCELLED, pmpi_test_cancelled_, pmpi_test_cancelled__, pmpi_test_cancelled_f, - (MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr), (status, flag, ierr) ) #endif @@ -49,7 +49,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TEST_CANCELLED, mpi_test_cancelled_, mpi_test_cancelled__, mpi_test_cancelled_f, - (MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr), (status, flag, ierr) ) #endif @@ -58,24 +58,24 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TEST_CANCELLED, #include "mpi/f77/profile/defines.h" #endif -void mpi_test_cancelled_f(MPI_Fint *status, MPI_Fint *flag, MPI_Fint *ierr) +void mpi_test_cancelled_f(MPI_Fint *status, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_Status c_status; - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); /* This seems silly, but someone will do it */ if (OMPI_IS_FORTRAN_STATUS_IGNORE(status)) { - *flag = OMPI_INT_2_FINT(0); + *flag = OMPI_INT_2_LOGICAL(0); *ierr = OMPI_INT_2_FINT(MPI_SUCCESS); } else { *ierr = MPI_Status_f2c( status, &c_status ); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - *ierr = OMPI_INT_2_FINT(MPI_Test_cancelled(&c_status, - OMPI_SINGLE_NAME_CONVERT(flag))); - - OMPI_SINGLE_INT_2_FINT(flag); + *ierr = OMPI_INT_2_FINT(MPI_Test_cancelled(&c_status, + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); + + OMPI_SINGLE_INT_2_LOGICAL(flag); } } } diff --git a/ompi/mpi/f77/test_f.c b/ompi/mpi/f77/test_f.c index e10da7e36e..f035545573 100644 --- a/ompi/mpi/f77/test_f.c +++ b/ompi/mpi/f77/test_f.c @@ -33,7 +33,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_TEST, pmpi_test_, pmpi_test__, pmpi_test_f, - (MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *request, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (request, flag, status, ierr) ) #endif @@ -50,7 +50,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TEST, mpi_test_, mpi_test__, mpi_test_f, - (MPI_Fint *request, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *request, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (request, flag, status, ierr) ) #endif @@ -59,18 +59,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_Flogical *flag, + MPI_Fint *status, MPI_Fint *ierr) { MPI_Request c_req = MPI_Request_f2c(*request); MPI_Status c_status; - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); *ierr = OMPI_INT_2_FINT(MPI_Test(&c_req, - OMPI_SINGLE_NAME_CONVERT(flag), - &c_status)); + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag), + &c_status)); - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { *request = OMPI_INT_2_FINT(c_req->req_f_to_c_index); diff --git a/ompi/mpi/f77/testall_f.c b/ompi/mpi/f77/testall_f.c index a62aca7fe8..6764f01493 100644 --- a/ompi/mpi/f77/testall_f.c +++ b/ompi/mpi/f77/testall_f.c @@ -34,7 +34,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_TESTALL, pmpi_testall_, pmpi_testall__, pmpi_testall_f, - (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr), + (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Flogical *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr), (count, array_of_requests, flag, array_of_statuses, ierr) ) #endif @@ -51,7 +51,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TESTALL, mpi_testall_, mpi_testall__, mpi_testall_f, - (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr), + (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Flogical *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr), (count, array_of_requests, flag, array_of_statuses, ierr) ) #endif @@ -62,15 +62,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TESTALL, static const char FUNC_NAME[] = "MPI_TESTALL"; - -void mpi_testall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr) +void mpi_testall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Flogical *flag, MPI_Fint *array_of_statuses, MPI_Fint *ierr) { MPI_Request *c_req; MPI_Status *c_status; int i; - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); - c_req = malloc(OMPI_FINT_2_INT(*count) * + c_req = malloc(OMPI_FINT_2_INT(*count) * (sizeof(MPI_Request) + sizeof(MPI_Status))); if (NULL == c_req){ *ierr = OMPI_INT_2_FINT(OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, @@ -83,12 +82,15 @@ void mpi_testall_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *flag, c_req[i] = MPI_Request_f2c(array_of_requests[i]); } - *ierr = OMPI_INT_2_FINT(MPI_Testall(OMPI_FINT_2_INT(*count), c_req, - OMPI_SINGLE_NAME_CONVERT(flag), + *ierr = OMPI_INT_2_FINT(MPI_Testall(OMPI_FINT_2_INT(*count), c_req, + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag), c_status)); - if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr) && - 1 == *(OMPI_SINGLE_NAME_CONVERT(flag))) { + OMPI_SINGLE_INT_2_LOGICAL(flag); + /* + * All Fortran Compilers have FALSE == 0 -- we just need a TRUE value, i.e. *flag != 0 + */ + if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr) && *flag) { for (i = 0; i < OMPI_FINT_2_INT(*count); ++i) { array_of_requests[i] = c_req[i]->req_f_to_c_index; if (!OMPI_IS_FORTRAN_STATUSES_IGNORE(array_of_statuses) && diff --git a/ompi/mpi/f77/testany_f.c b/ompi/mpi/f77/testany_f.c index b78b79b17e..57227f9107 100644 --- a/ompi/mpi/f77/testany_f.c +++ b/ompi/mpi/f77/testany_f.c @@ -34,7 +34,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_TESTANY, pmpi_testany_, pmpi_testany__, pmpi_testany_f, - (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (count, array_of_requests, index, flag, status, ierr) ) #endif @@ -51,7 +51,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TESTANY, mpi_testany_, mpi_testany__, mpi_testany_f, - (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr), + (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr), (count, array_of_requests, index, flag, status, ierr) ) #endif @@ -63,12 +63,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TESTANY, static const char FUNC_NAME[] = "MPI_TESTANY"; -void mpi_testany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *flag, MPI_Fint *status, MPI_Fint *ierr) +void mpi_testany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Flogical *flag, MPI_Fint *status, MPI_Fint *ierr) { MPI_Request *c_req; MPI_Status c_status; int i; - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); OMPI_SINGLE_NAME_DECL(index); c_req = malloc(OMPI_FINT_2_INT(*count) * sizeof(MPI_Request)); @@ -85,15 +85,16 @@ void mpi_testany_f(MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index *ierr = OMPI_INT_2_FINT(MPI_Testany(OMPI_FINT_2_INT(*count), c_req, OMPI_SINGLE_NAME_CONVERT(index), - OMPI_SINGLE_NAME_CONVERT(flag), + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag), &c_status)); + OMPI_SINGLE_INT_2_LOGICAL(flag); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { /* Increment index by one for fortran conventions */ OMPI_SINGLE_INT_2_FINT(index); - if (1 == OMPI_INT_2_FINT(*flag) && + if (*flag && MPI_UNDEFINED != *(OMPI_SINGLE_NAME_CONVERT(index))) { array_of_requests[OMPI_INT_2_FINT(*index)] = c_req[OMPI_INT_2_FINT(*index)]->req_f_to_c_index; diff --git a/ompi/mpi/f77/type_get_attr_f.c b/ompi/mpi/f77/type_get_attr_f.c index bf226c6ca5..5c3d1e4dc5 100644 --- a/ompi/mpi/f77/type_get_attr_f.c +++ b/ompi/mpi/f77/type_get_attr_f.c @@ -33,7 +33,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_TYPE_GET_ATTR, pmpi_type_get_attr_, pmpi_type_get_attr__, pmpi_type_get_attr_f, - (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr), (type, type_keyval, attribute_val, flag, ierr) ) #endif @@ -50,7 +50,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TYPE_GET_ATTR, mpi_type_get_attr_, mpi_type_get_attr__, mpi_type_get_attr_f, - (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *type, MPI_Fint *type_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr), (type, type_keyval, attribute_val, flag, ierr) ) #endif @@ -60,11 +60,12 @@ OMPI_GENERATE_F77_BINDINGS (MPI_TYPE_GET_ATTR, #endif void mpi_type_get_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, - MPI_Aint *attribute_val, MPI_Fint *flag, + MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr) { - int c_err, c_flag; + int c_err; MPI_Datatype c_type = MPI_Type_f2c(*type); + OMPI_LOGICAL_NAME_DECL(flag); /* This stuff is very confusing. Be sure to see the comment at the top of src/attributes/attributes.c. */ @@ -72,7 +73,7 @@ void mpi_type_get_attr_f(MPI_Fint *type, MPI_Fint *type_keyval, c_err = ompi_attr_get_fortran_mpi2(c_type->d_keyhash, OMPI_FINT_2_INT(*type_keyval), attribute_val, - &c_flag); + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag)); *ierr = OMPI_INT_2_FINT(c_err); - *flag = OMPI_INT_2_FINT(c_flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } diff --git a/ompi/mpi/f77/win_get_attr_f.c b/ompi/mpi/f77/win_get_attr_f.c index 540cd86659..339b78de92 100644 --- a/ompi/mpi/f77/win_get_attr_f.c +++ b/ompi/mpi/f77/win_get_attr_f.c @@ -33,7 +33,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_GET_ATTR, pmpi_win_get_attr_, pmpi_win_get_attr__, pmpi_win_get_attr_f, - (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr), (win, win_keyval, attribute_val, flag, ierr) ) #endif @@ -50,7 +50,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_WIN_GET_ATTR, mpi_win_get_attr_, mpi_win_get_attr__, mpi_win_get_attr_f, - (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *win, MPI_Fint *win_keyval, MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr), (win, win_keyval, attribute_val, flag, ierr) ) #endif @@ -60,10 +60,11 @@ OMPI_GENERATE_F77_BINDINGS (MPI_WIN_GET_ATTR, #endif void mpi_win_get_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, - MPI_Aint *attribute_val, MPI_Fint *flag, MPI_Fint *ierr) + MPI_Aint *attribute_val, MPI_Flogical *flag, MPI_Fint *ierr) { - int c_err, c_flag; + int c_err; MPI_Win c_win = MPI_Win_f2c(*win); + OMPI_LOGICAL_NAME_DECL(flag); /* This stuff is very confusing. Be sure to see the comment at the top of src/attributes/attributes.c. */ @@ -71,7 +72,7 @@ void mpi_win_get_attr_f(MPI_Fint *win, MPI_Fint *win_keyval, c_err = ompi_attr_get_fortran_mpi2(c_win->w_keyhash, OMPI_FINT_2_INT(*win_keyval), attribute_val, - &c_flag); + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag)); *ierr = OMPI_INT_2_FINT(c_err); - *flag = OMPI_INT_2_FINT(c_flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } diff --git a/ompi/mpi/f77/win_test_f.c b/ompi/mpi/f77/win_test_f.c index 4ebbbe5cd8..8e8e698924 100644 --- a/ompi/mpi/f77/win_test_f.c +++ b/ompi/mpi/f77/win_test_f.c @@ -31,7 +31,7 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_TEST, pmpi_win_test_, pmpi_win_test__, pmpi_win_test_f, - (MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *win, MPI_Flogical *flag, MPI_Fint *ierr), (win, flag, ierr) ) #endif @@ -48,7 +48,7 @@ OMPI_GENERATE_F77_BINDINGS (MPI_WIN_TEST, mpi_win_test_, mpi_win_test__, mpi_win_test_f, - (MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr), + (MPI_Fint *win, MPI_Flogical *flag, MPI_Fint *ierr), (win, flag, ierr) ) #endif @@ -57,14 +57,14 @@ OMPI_GENERATE_F77_BINDINGS (MPI_WIN_TEST, #include "mpi/f77/profile/defines.h" #endif -void mpi_win_test_f(MPI_Fint *win, MPI_Fint *flag, MPI_Fint *ierr) +void mpi_win_test_f(MPI_Fint *win, MPI_Flogical *flag, MPI_Fint *ierr) { MPI_Win c_win = MPI_Win_f2c(*win); - OMPI_SINGLE_NAME_DECL(flag); + OMPI_LOGICAL_NAME_DECL(flag); *ierr = OMPI_INT_2_FINT(MPI_Win_test(c_win, - OMPI_SINGLE_NAME_CONVERT(flag))); + OMPI_LOGICAL_SINGLE_NAME_CONVERT(flag))); if (MPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) { - OMPI_SINGLE_INT_2_FINT(flag); + OMPI_SINGLE_INT_2_LOGICAL(flag); } } diff --git a/ompi/mpi/f90/scripts/mpi-f90-interfaces.h.sh b/ompi/mpi/f90/scripts/mpi-f90-interfaces.h.sh index 58f08aef9c..c624218896 100755 --- a/ompi/mpi/f90/scripts/mpi-f90-interfaces.h.sh +++ b/ompi/mpi/f90/scripts/mpi-f90-interfaces.h.sh @@ -1508,7 +1508,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: comm" echo " integer, intent(in) :: keyval" echo " integer, intent(out) :: attribute_val" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -2292,8 +2292,8 @@ echo " use mpi_kinds" echo " integer, intent(in) :: old_comm" echo " integer, intent(in) :: ndims" echo " integer, dimension(*), intent(in) :: dims" -echo " integer, dimension(*), intent(in) :: periods" -echo " integer, intent(in) :: reorder" +echo " logical, dimension(*), intent(in) :: periods" +echo " logical, intent(in) :: reorder" echo " integer, intent(out) :: comm_cart" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -2314,7 +2314,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: comm" echo " integer, intent(in) :: maxdims" echo " integer, dimension(*), intent(out) :: dims" -echo " integer, dimension(*), intent(out) :: periods" +echo " logical, dimension(*), intent(out) :: periods" echo " integer, dimension(*), intent(out) :: coords" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -2335,7 +2335,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: comm" echo " integer, intent(in) :: ndims" echo " integer, dimension(*), intent(in) :: dims" -echo " integer, dimension(*), intent(in) :: periods" +echo " logical, dimension(*), intent(in) :: periods" echo " integer, intent(out) :: newrank" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -2392,7 +2392,7 @@ proc="${procedure}" echo "subroutine ${proc}(comm, remain_dims, new_comm, ierr)" echo " use mpi_kinds" echo " integer, intent(in) :: comm" -echo " integer, dimension(*), intent(in) :: remain_dims" +echo " logical, dimension(*), intent(in) :: remain_dims" echo " integer, intent(out) :: new_comm" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -2584,7 +2584,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: comm" echo " integer, intent(in) :: comm_keyval" echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -2792,7 +2792,7 @@ proc="${procedure}" echo "subroutine ${proc}(comm, flag, ierr)" echo " use mpi_kinds" echo " integer, intent(inout) :: comm" -echo " integer, intent(in) :: flag" +echo " logical, intent(in) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -3172,7 +3172,7 @@ proc="${procedure}" echo "subroutine ${proc}(fh, flag, ierr)" echo " use mpi_kinds" echo " integer, intent(in) :: fh" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -6007,7 +6007,7 @@ proc="${procedure}" echo "subroutine ${proc}(fh, flag, ierr)" echo " use mpi_kinds" echo " integer, intent(inout) :: fh" -echo " integer, intent(in) :: flag" +echo " logical, intent(in) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -7825,7 +7825,7 @@ echo proc="${procedure}" echo "subroutine ${proc}(flag, ierr)" echo " use mpi_kinds" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -8667,7 +8667,7 @@ echo " integer, intent(in) :: comm_old" echo " integer, intent(in) :: nnodes" echo " integer, dimension(*), intent(in) :: index" echo " integer, dimension(*), intent(in) :: edges" -echo " integer, intent(in) :: reorder" +echo " logical, intent(in) :: reorder" echo " integer, intent(out) :: comm_graph" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -9271,7 +9271,7 @@ echo " integer, intent(in) :: info" echo " character(len=*), intent(in) :: key" echo " integer, intent(in) :: valuelen" echo " character(len=*), intent(out) :: value" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -9325,7 +9325,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: info" echo " character(len=*), intent(in) :: key" echo " integer, intent(out) :: valuelen" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -9391,7 +9391,7 @@ echo proc="${procedure}" echo "subroutine ${proc}(flag, ierr)" echo " use mpi_kinds" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -9430,7 +9430,7 @@ proc="${procedure}" echo "subroutine ${proc}(intercomm, high, newintercomm, ierr)" echo " use mpi_kinds" echo " integer, intent(in) :: intercomm" -echo " integer, intent(in) :: high" +echo " logical, intent(in) :: high" echo " integer, intent(out) :: newintercomm" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -9451,7 +9451,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: source" echo " integer, intent(in) :: tag" echo " integer, intent(in) :: comm" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -9794,7 +9794,7 @@ echo proc="${procedure}" echo "subroutine ${proc}(flag, ierr)" echo " use mpi_kinds" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -10172,7 +10172,7 @@ proc="${procedure}" echo "subroutine ${proc}(function, commute, op, ierr)" echo " use mpi_kinds" echo " integer(MPI_ADDRESS_KIND), intent(in) :: function" -echo " integer, intent(in) :: commute" +echo " logical, intent(in) :: commute" echo " integer, intent(out) :: op" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -11481,7 +11481,7 @@ proc="${procedure}" echo "subroutine ${proc}(request, flag, status, ierr)" echo " use mpi_kinds" echo " integer, intent(in) :: request" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -13500,7 +13500,7 @@ proc="${procedure}" echo "subroutine ${proc}(status, flag, ierr)" echo " use mpi_kinds" echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status" -echo " integer, intent(in) :: flag" +echo " logical, intent(in) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -13535,7 +13535,7 @@ proc="${procedure}" echo "subroutine ${proc}(request, flag, status, ierr)" echo " use mpi_kinds" echo " integer, intent(inout) :: request" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -13553,7 +13553,7 @@ proc="${procedure}" echo "subroutine ${proc}(status, flag, ierr)" echo " use mpi_kinds" echo " integer, dimension(MPI_STATUS_SIZE), intent(in) :: status" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -13571,7 +13571,7 @@ echo "subroutine ${proc}(count, array_of_requests, flag, array_of_statuses, ierr echo " use mpi_kinds" echo " integer, intent(in) :: count" echo " integer, dimension(*), intent(inout) :: array_of_requests" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, dimension(MPI_STATUS_SIZE,*), intent(inout) :: array_of_statuses" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -13592,7 +13592,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: count" echo " integer, dimension(*), intent(inout) :: array_of_requests" echo " integer, intent(out) :: index" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" @@ -13991,7 +13991,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: type" echo " integer, intent(in) :: type_keyval" echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -15008,7 +15008,7 @@ echo " use mpi_kinds" echo " integer, intent(in) :: win" echo " integer, intent(in) :: win_keyval" echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo @@ -15184,7 +15184,7 @@ proc="${procedure}" echo "subroutine ${proc}(win, flag, ierr)" echo " use mpi_kinds" echo " integer, intent(in) :: win" -echo " integer, intent(out) :: flag" +echo " logical, intent(out) :: flag" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo diff --git a/ompi/tools/ompi_info/param.cc b/ompi/tools/ompi_info/param.cc index fa1bf05711..259423f02c 100644 --- a/ompi/tools/ompi_info/param.cc +++ b/ompi/tools/ompi_info/param.cc @@ -408,6 +408,12 @@ void ompi_info::do_config(bool want_all) out("Fort integer size", "compiler:fortran:sizeof:integer", OMPI_SIZEOF_FORTRAN_INTEGER); + out("Fort logical size", "compiler:fortran:sizeof:logical", + OMPI_SIZEOF_FORTRAN_LOGICAL); + out("Fort logical value true", "compiler:fortran:value:true", + OMPI_FORTRAN_VALUE_TRUE); + + // May or may not have the other Fortran sizes if (OMPI_WANT_F77_BINDINGS || OMPI_WANT_F90_BINDINGS) {