1
1

ompi: disable functions removed from MPI-3.0 by default

This commit adds a new configure option: --enable-mpi1-compat. Without
this option we will no longer provide APIs, typedefs, and defines that
were removed from the standard in MPI-3.0. This option will exist for
one major release (Open MPI v4.x.x) and then the option and associated
code will be removed in Open MPI v5.x.x. Open MPI has already
internally prepared for this change. Please prepare your codes
accordingly.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
Этот коммит содержится в:
Nathan Hjelm
2018-05-01 15:13:44 -06:00
коммит произвёл Nathan Hjelm
родитель f5631e546d
Коммит 89da9651bb
23 изменённых файлов: 1024 добавлений и 860 удалений

Просмотреть файл

@ -3,6 +3,8 @@
# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved
# Copyright (c) 2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
# Copyright (c) 2018 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -33,6 +35,7 @@ AC_DEFUN([OMPI_CONFIG_FILES],[
ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile
ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h
ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-file-interfaces.h
ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-removed-interfaces.h
ompi/mpi/fortran/use-mpi-f08/Makefile
ompi/mpi/fortran/use-mpi-f08/mod/Makefile
ompi/mpi/fortran/mpiext/Makefile

Просмотреть файл

@ -13,7 +13,7 @@ dnl All rights reserved.
dnl Copyright (c) 2006-2017 Cisco Systems, Inc. All rights reserved
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
dnl Copyright (c) 2009 IBM Corporation. All rights reserved.
dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights
dnl Copyright (c) 2009-2018 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
dnl Copyright (c) 2013 Intel, Inc. All rights reserved.
@ -196,6 +196,21 @@ fi
AC_DEFINE_UNQUOTED([OMPI_WANT_MPI_CXX_SEEK], [$OMPI_WANT_MPI_CXX_SEEK],
[do we want to try to work around C++ bindings SEEK_* issue?])
# Remove these when we finally kill them once and for all
AC_ARG_ENABLE([mpi1-compatibility],
[AC_HELP_STRING([--enable-mpi1-compatibility],
[Enable support for MPI-1.x functions removed from the current MPI standard (MPI-3.x). This option will go away in a future release of Open MPI (default: disabled)])])
if test "x$enable_mpi1_compatibility" = "xyes" ; then
ompi_mpi1_support=1
else
ompi_mpi1_support=0
fi
AC_DEFINE_UNQUOTED([OMPI_ENABLE_MPI1_COMPAT], [$ompi_mpi1_support], [whether we want MPI-1.x support])
AC_SUBST([OMPI_ENABLE_MPI1_COMPAT], [$ompi_mpi1_support])
AM_CONDITIONAL([OMPI_ENABLE_MPI1_COMPAT],[test $ompi_mpi1_support = 1])
#
# Do we want to disable MPI parameter checking at run-time?

Просмотреть файл

@ -223,6 +223,7 @@ AC_DEFUN([OPAL_CHECK_ATTRIBUTES], [
opal_cv___attribute__weak_alias=0
opal_cv___attribute__destructor=0
opal_cv___attribute__optnone=0
opal_cv___attribute__error=0
else
AC_MSG_RESULT([yes])
@ -271,6 +272,13 @@ AC_DEFUN([OPAL_CHECK_ATTRIBUTES], [
[],
[])
_OPAL_CHECK_SPECIFIC_ATTRIBUTE([error],
[
int foo(int arg1, int arg2) __attribute__ ((__error__("")));
],
[],
[])
ATTRIBUTE_CFLAGS=
case "$opal_c_vendor" in
gnu)
@ -629,4 +637,6 @@ AC_DEFUN([OPAL_CHECK_ATTRIBUTES], [
[Whether your compiler has __attribute__ optnone or not])
AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_EXTENSION, [$opal_cv___attribute__extension],
[Whether your compiler has __attribute__ extension or not])
AC_DEFINE_UNQUOTED(OPAL_HAVE_ATTRIBUTE_ERROR, [$opal_cv___attribute__error],
[Whether your compiler has __attribute__ error or not])
])

Просмотреть файл

@ -839,7 +839,9 @@ ompi_datatype_t* ompi_datatype_get_single_predefined_type_from_args( ompi_dataty
return NULL;
}
}
#if OMPI_ENABLE_MPI1_COMPAT
if (current_predef != MPI_LB && current_predef != MPI_UB) {
#endif
if( NULL == predef ) { /* This is the first iteration */
predef = current_predef;
} else {
@ -853,7 +855,9 @@ ompi_datatype_t* ompi_datatype_get_single_predefined_type_from_args( ompi_dataty
return NULL;
}
}
#if OMPI_ENABLE_MPI1_COMPAT
}
#endif
}
return predef;
}

Просмотреть файл

@ -13,7 +13,7 @@
* Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2009-2012 Oak Rigde National Laboratory. All rights reserved.
* Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
* Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
* Copyright (c) 2012-2018 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2011-2013 INRIA. All rights reserved.
* Copyright (c) 2015 University of Houston. All rights reserved.
@ -58,6 +58,9 @@
/* Whether your compiler has __attribute__ deprecated with the optional argument */
#undef OPAL_HAVE_ATTRIBUTE_DEPRECATED_ARGUMENT
/* Whether you compiler has __attribute__ error or not */
#undef OPAL_HAVE_ATTRIBUTE_ERROR
/* Define to 1 if you have the <sys/time.h> header file. */
#undef OPAL_HAVE_SYS_TIME_H
@ -133,6 +136,9 @@
/* Whether we have FORTRAN REAL*8 or not */
#undef OMPI_HAVE_FORTRAN_REAL8
/* Whether in include MPI-1 compatibility */
#undef OMPI_ENABLE_MPI1_COMPAT
/* Whether we have float _Complex or not */
#undef HAVE_FLOAT__COMPLEX
@ -273,6 +279,15 @@
# define __mpi_interface_deprecated__(msg) __attribute__((__deprecated__))
# endif
# endif
# if !OMPI_ENABLE_MPI1_COMPAT
# if OPAL_HAVE_ATTRIBUTE_ERROR
# define __mpi_interface_removed__(msg) __attribute__((__error__(msg)))
# define OMPI_OMIT_MPI1_COMPAT_DECLS 0
# endif
# else
# define __mpi_interface_removed__(msg) __mpi_interface_deprecated__(msg)
# define OMPI_OMIT_MPI1_COMPAT_DECLS 0
# endif
# endif
# endif
#endif
@ -286,6 +301,14 @@
# define __mpi_interface_deprecated__(msg)
#endif
#if !defined(__mpi_interface_removed__)
# define __mpi_interface_removed__(msg)
#endif
#if !defined(OMPI_OMIT_MPI1_COMPAT_DECLS)
# define OMPI_OMIT_MPI1_COMPAT_DECLS !OMPI_ENABLE_MPI1_COMPAT
#endif
/*
* To accomodate programs written for MPI implementations that use a
* straight ROMIO import
@ -360,36 +383,19 @@ typedef struct ompi_status_public_t ompi_status_public_t;
/*
* User typedefs
*
* Even though MPI_Copy_function and MPI_Delete_function are
* deprecated, we do not use the attributes marking them as such,
* because otherwise the compiler will warn for all the functions that
* are declared using them (e.g., MPI_Keyval_create).
*/
typedef int (MPI_Copy_function)(MPI_Comm, int, void *,
void *, void *, int *);
typedef int (MPI_Delete_function)(MPI_Comm, int, void *, void *);
typedef int (MPI_Datarep_extent_function)(MPI_Datatype, MPI_Aint *, void *);
typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype,
int, void *, MPI_Offset, void *);
typedef void (MPI_Comm_errhandler_function)(MPI_Comm *, int *, ...);
typedef MPI_Comm_errhandler_function MPI_Comm_errhandler_fn
__mpi_interface_deprecated__("MPI_Comm_errhandler_fn was deprecated in MPI-2.2; use MPI_Comm_errhandler_function instead");
/* This is a little hackish, but errhandler.h needs space for a
MPI_File_errhandler_fn. While it could just be removed, this
allows us to maintain a stable ABI within OMPI, at least for
apps that don't use MPI I/O. */
typedef void (ompi_file_errhandler_fn)(MPI_File *, int *, ...);
typedef ompi_file_errhandler_fn MPI_File_errhandler_fn
__mpi_interface_deprecated__("MPI_File_errhandler_fn was deprecated in MPI-2.2; use MPI_File_errhandler_function instead");
typedef ompi_file_errhandler_fn MPI_File_errhandler_function;
typedef void (MPI_Win_errhandler_function)(MPI_Win *, int *, ...);
typedef MPI_Win_errhandler_function MPI_Win_errhandler_fn
__mpi_interface_deprecated__("MPI_Win_errhandler_fn was deprecated in MPI-2.2; use MPI_Win_errhandler_function instead");
/* MPI_Handler_function is deprecated, but we don't mark it as
such because otherwise the MPI_Errhandler_create() declaration
would cause a warning to be issued */
typedef void (MPI_Handler_function)(MPI_Comm *, int *, ...);
typedef void (MPI_User_function)(void *, void *, int *, MPI_Datatype *);
typedef int (MPI_Comm_copy_attr_function)(MPI_Comm, int, void *,
void *, void *, int *);
@ -405,6 +411,24 @@ typedef int (MPI_Grequest_query_function)(void *, MPI_Status *);
typedef int (MPI_Grequest_free_function)(void *);
typedef int (MPI_Grequest_cancel_function)(void *, int);
#if !OMPI_OMIT_MPI1_COMPAT_DECLS
/*
* Removed typedefs. These will be deleted in a future Open MPI release.
*/
typedef int (MPI_Copy_function)(MPI_Comm, int, void *,
void *, void *, int *);
typedef int (MPI_Delete_function)(MPI_Comm, int, void *, void *);
typedef MPI_Comm_errhandler_function MPI_Comm_errhandler_fn
__mpi_interface_removed__("MPI_Comm_errhandler_fn was removed in MPI-3.0; use MPI_Comm_errhandler_function instead");
typedef ompi_file_errhandler_fn MPI_File_errhandler_fn
__mpi_interface_removed__("MPI_File_errhandler_fn was removed in MPI-3.0; use MPI_File_errhandler_function instead");
typedef MPI_Win_errhandler_function MPI_Win_errhandler_fn
__mpi_interface_removed__("MPI_Win_errhandler_fn was removed in MPI-3.0; use MPI_Win_errhandler_function instead");
typedef void (MPI_Handler_function)(MPI_Comm *, int *, ...)
__mpi_interface_removed__("MPI_Handler_function was removed in MPI-3.0; use MPI_Win_errhandler_function instead");
#endif /* !OMPI_OMIT_MPI1_COMPAT_DECLS */
/*
* Miscellaneous constants
*/
@ -838,22 +862,6 @@ OMPI_DECLSPEC int OMPI_C_MPI_COMM_DUP_FN( MPI_Comm comm, int comm_keyval,
void* attribute_val_in,
void* attribute_val_out,
int* flag );
OMPI_DECLSPEC int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval,
void* attribute_val_out,
void* extra_state )
__mpi_interface_deprecated__("MPI_NULL_DELETE_FN is deprecated in MPI-2.0");
OMPI_DECLSPEC int OMPI_C_MPI_NULL_COPY_FN( MPI_Comm comm, int comm_keyval,
void* extra_state,
void* attribute_val_in,
void* attribute_val_out,
int* flag )
__mpi_interface_deprecated__("MPI_NULL_COPY_FN is deprecated in MPI-2.0");
OMPI_DECLSPEC int OMPI_C_MPI_DUP_FN( MPI_Comm comm, int comm_keyval,
void* extra_state,
void* attribute_val_in,
void* attribute_val_out,
int* flag )
__mpi_interface_deprecated__("MPI_DUP_FN is deprecated in MPI-2.0");
OMPI_DECLSPEC int OMPI_C_MPI_WIN_NULL_DELETE_FN( MPI_Win window,
int win_keyval,
void* attribute_val_out,
@ -868,6 +876,24 @@ OMPI_DECLSPEC int OMPI_C_MPI_WIN_DUP_FN( MPI_Win window, int win_keyval,
void* attribute_val_in,
void* attribute_val_out,
int* flag );
#if !OMPI_OMIT_MPI1_COMPAT_DECLS
/*
* Removed in MPI-3.0. Will be deleted in a future Open MPI release.
*/
OMPI_DECLSPEC int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval,
void* attribute_val_out,
void* extra_state );
OMPI_DECLSPEC int OMPI_C_MPI_NULL_COPY_FN( MPI_Comm comm, int comm_keyval,
void* extra_state,
void* attribute_val_in,
void* attribute_val_out,
int* flag );
OMPI_DECLSPEC int OMPI_C_MPI_DUP_FN( MPI_Comm comm, int comm_keyval,
void* extra_state,
void* attribute_val_in,
void* attribute_val_out,
int* flag );
#endif /* !OMPI_OMIT_MPI1_COMPAT_DECLS */
/*
* External variables
@ -908,8 +934,6 @@ OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_no_op;
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_datatype_null;
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_lb __mpi_interface_deprecated__("MPI_LB is deprecated in MPI-2.0");
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_ub __mpi_interface_deprecated__("MPI_UB is deprecated in MPI-2.0");
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_char;
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_signed_char;
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_char;
@ -1010,6 +1034,13 @@ OMPI_DECLSPEC extern struct ompi_predefined_info_t ompi_mpi_info_env;
OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUS_IGNORE;
OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
#if !OMPI_OMIT_MPI1_COMPAT_DECLS
/*
* Removed datatypes
*/
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_lb __mpi_interface_removed__("MPI_LB was removed in MPI-3.0");
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_ub __mpi_interface_removed__("MPI_UB was removed in MPI-3.0");
#endif /* !OMPI_OMIT_MPI1_COMPAT_DECLS */
/*
* MPI predefined handles
@ -1182,8 +1213,6 @@ OMPI_DECLSPEC int MPI_Accumulate(const void *origin_addr, int origin_count, MPI
OMPI_DECLSPEC int MPI_Add_error_class(int *errorclass);
OMPI_DECLSPEC int MPI_Add_error_code(int errorclass, int *errorcode);
OMPI_DECLSPEC int MPI_Add_error_string(int errorcode, const char *string);
OMPI_DECLSPEC int MPI_Address(void *location, MPI_Aint *address)
__mpi_interface_deprecated__("MPI_Address is superseded by MPI_Get_address in MPI-2.0");
OMPI_DECLSPEC int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount,
MPI_Datatype recvtype, MPI_Comm comm);
@ -1220,12 +1249,6 @@ OMPI_DECLSPEC int MPI_Alltoallw(const void *sendbuf, const int sendcounts[], co
OMPI_DECLSPEC int MPI_Ialltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[],
void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[],
MPI_Comm comm, MPI_Request *request);
OMPI_DECLSPEC int MPI_Attr_delete(MPI_Comm comm, int keyval)
__mpi_interface_deprecated__("MPI_Attr_delete is superseded by MPI_Comm_delete_attr in MPI-2.0");
OMPI_DECLSPEC int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
__mpi_interface_deprecated__("MPI_Attr_get is superseded by MPI_Comm_get_attr in MPI-2.0");
OMPI_DECLSPEC int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
__mpi_interface_deprecated__("MPI_Attr_put is superseded by MPI_Comm_set_attr in MPI-2.0");
OMPI_DECLSPEC int MPI_Barrier(MPI_Comm comm);
OMPI_DECLSPEC int MPI_Ibarrier(MPI_Comm comm, MPI_Request *request);
OMPI_DECLSPEC int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype,
@ -1327,15 +1350,8 @@ OMPI_DECLSPEC int MPI_Compare_and_swap(const void *origin_addr, const void *com
MPI_Aint target_disp, MPI_Win win);
OMPI_DECLSPEC int MPI_Dims_create(int nnodes, int ndims, int dims[]);
OMPI_DECLSPEC MPI_Fint MPI_Errhandler_c2f(MPI_Errhandler errhandler);
OMPI_DECLSPEC int MPI_Errhandler_create(MPI_Handler_function *function,
MPI_Errhandler *errhandler)
__mpi_interface_deprecated__("MPI_Errhandler_create is superseded by MPI_Comm_create_errhandler in MPI-2.0");
OMPI_DECLSPEC MPI_Errhandler MPI_Errhandler_f2c(MPI_Fint errhandler);
OMPI_DECLSPEC int MPI_Errhandler_free(MPI_Errhandler *errhandler);
OMPI_DECLSPEC int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
__mpi_interface_deprecated__("MPI_Errhandler_get is superseded by MPI_Comm_get_errhandler in MPI-2.0");
OMPI_DECLSPEC int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
__mpi_interface_deprecated__("MPI_Errhandler_set is superseded by MPI_Comm_set_errhandler in MPI-2.0");
OMPI_DECLSPEC int MPI_Error_class(int errorcode, int *errorclass);
OMPI_DECLSPEC int MPI_Error_string(int errorcode, char *string, int *resultlen);
OMPI_DECLSPEC int MPI_Exscan(const void *sendbuf, void *recvbuf, int count,
@ -1547,12 +1563,6 @@ OMPI_DECLSPEC int MPI_Isend(const void *buf, int count, MPI_Datatype datatype,
OMPI_DECLSPEC int MPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm, MPI_Request *request);
OMPI_DECLSPEC int MPI_Is_thread_main(int *flag);
OMPI_DECLSPEC int MPI_Keyval_create(MPI_Copy_function *copy_fn,
MPI_Delete_function *delete_fn,
int *keyval, void *extra_state)
__mpi_interface_deprecated__("MPI_Keyval_create is superseded by MPI_Comm_create_keyval in MPI-2.0");
OMPI_DECLSPEC int MPI_Keyval_free(int *keyval)
__mpi_interface_deprecated__("MPI_Keyval_free is superseded by MPI_Comm_free_keyval in MPI-2.0");
OMPI_DECLSPEC int MPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name);
OMPI_DECLSPEC MPI_Fint MPI_Message_c2f(MPI_Message message);
OMPI_DECLSPEC MPI_Message MPI_Message_f2c(MPI_Fint message);
@ -1754,8 +1764,6 @@ OMPI_DECLSPEC int MPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb,
MPI_Aint extent, MPI_Datatype *newtype);
OMPI_DECLSPEC int MPI_Type_delete_attr(MPI_Datatype type, int type_keyval);
OMPI_DECLSPEC int MPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype);
OMPI_DECLSPEC int MPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
__mpi_interface_deprecated__("MPI_Type_extent is superseded by MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_free(MPI_Datatype *type);
OMPI_DECLSPEC int MPI_Type_free_keyval(int *type_keyval);
OMPI_DECLSPEC MPI_Datatype MPI_Type_f2c(MPI_Fint datatype);
@ -1779,31 +1787,15 @@ OMPI_DECLSPEC int MPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *tru
MPI_Aint *true_extent);
OMPI_DECLSPEC int MPI_Type_get_true_extent_x(MPI_Datatype datatype, MPI_Count *true_lb,
MPI_Count *true_extent);
OMPI_DECLSPEC int MPI_Type_hindexed(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_deprecated__("MPI_Type_hindexed is superseded by MPI_Type_create_hindexed in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_deprecated__("MPI_Type_hvector is superseded by MPI_Type_create_hvector in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_indexed(int count, const int array_of_blocklengths[],
const int array_of_displacements[],
MPI_Datatype oldtype, MPI_Datatype *newtype);
OMPI_DECLSPEC int MPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
__mpi_interface_deprecated__("MPI_Type_lb is deprecated, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
OMPI_DECLSPEC int MPI_Type_set_attr(MPI_Datatype type, int type_keyval,
void *attr_val);
OMPI_DECLSPEC int MPI_Type_set_name(MPI_Datatype type, const char *type_name);
OMPI_DECLSPEC int MPI_Type_size(MPI_Datatype type, int *size);
OMPI_DECLSPEC int MPI_Type_size_x(MPI_Datatype type, MPI_Count *size);
OMPI_DECLSPEC int MPI_Type_struct(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype array_of_types[],
MPI_Datatype *newtype)
__mpi_interface_deprecated__("MPI_Type_struct is superseded by MPI_Type_create_struct in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
__mpi_interface_deprecated__("MPI_Type_ub is deprecated, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_vector(int count, int blocklength, int stride,
MPI_Datatype oldtype, MPI_Datatype *newtype);
OMPI_DECLSPEC int MPI_Unpack(const void *inbuf, int insize, int *position,
@ -1880,8 +1872,6 @@ OMPI_DECLSPEC int PMPI_Accumulate(const void *origin_addr, int origin_count, MP
OMPI_DECLSPEC int PMPI_Add_error_class(int *errorclass);
OMPI_DECLSPEC int PMPI_Add_error_code(int errorclass, int *errorcode);
OMPI_DECLSPEC int PMPI_Add_error_string(int errorcode, const char *string);
OMPI_DECLSPEC int PMPI_Address(void *location, MPI_Aint *address)
__mpi_interface_deprecated__("MPI_Address is superseded by MPI_Get_address in MPI-2.0");
OMPI_DECLSPEC int PMPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount,
MPI_Datatype recvtype, MPI_Comm comm);
@ -1918,10 +1908,6 @@ OMPI_DECLSPEC int PMPI_Alltoallw(const void *sendbuf, const int sendcounts[], c
OMPI_DECLSPEC int PMPI_Ialltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[], const MPI_Datatype sendtypes[],
void *recvbuf, const int recvcounts[], const int rdispls[], const MPI_Datatype recvtypes[],
MPI_Comm comm, MPI_Request *request);
OMPI_DECLSPEC int PMPI_Attr_delete(MPI_Comm comm, int keyval)
__mpi_interface_deprecated__("MPI_Attr_delete is superseded by MPI_Comm_delete_attr in MPI-2.0");
OMPI_DECLSPEC int PMPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
__mpi_interface_deprecated__("MPI_Attr_get is superseded by MPI_Comm_get_attr in MPI-2.0");
OMPI_DECLSPEC int PMPI_Dist_graph_create(MPI_Comm comm_old, int n, const int nodes[],
const int degrees[], const int targets[],
const int weights[], MPI_Info info,
@ -1943,8 +1929,6 @@ OMPI_DECLSPEC int PMPI_Dist_graph_neighbors_count(MPI_Comm comm,
int *inneighbors,
int *outneighbors,
int *weighted);
OMPI_DECLSPEC int PMPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
__mpi_interface_deprecated__("MPI_Attr_put is superseded by MPI_Comm_set_attr in MPI-2.0");
OMPI_DECLSPEC int PMPI_Barrier(MPI_Comm comm);
OMPI_DECLSPEC int PMPI_Ibarrier(MPI_Comm comm, MPI_Request *request);
OMPI_DECLSPEC int PMPI_Bcast(void *buffer, int count, MPI_Datatype datatype,
@ -2025,15 +2009,8 @@ OMPI_DECLSPEC int PMPI_Compare_and_swap(const void *origin_addr, const void *co
MPI_Aint target_disp, MPI_Win win);
OMPI_DECLSPEC int PMPI_Dims_create(int nnodes, int ndims, int dims[]);
OMPI_DECLSPEC MPI_Fint PMPI_Errhandler_c2f(MPI_Errhandler errhandler);
OMPI_DECLSPEC int PMPI_Errhandler_create(MPI_Handler_function *function,
MPI_Errhandler *errhandler)
__mpi_interface_deprecated__("MPI_Errhandler_create is superseded by MPI_Comm_create_errhandler in MPI-2.0");
OMPI_DECLSPEC MPI_Errhandler PMPI_Errhandler_f2c(MPI_Fint errhandler);
OMPI_DECLSPEC int PMPI_Errhandler_free(MPI_Errhandler *errhandler);
OMPI_DECLSPEC int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
__mpi_interface_deprecated__("MPI_Errhandler_get is superseded by MPI_Comm_get_errhandler in MPI-2.0");
OMPI_DECLSPEC int PMPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
__mpi_interface_deprecated__("MPI_Errhandler_set is superseded by MPI_Comm_set_errhandler in MPI-2.0");
OMPI_DECLSPEC int PMPI_Error_class(int errorcode, int *errorclass);
OMPI_DECLSPEC int PMPI_Error_string(int errorcode, char *string, int *resultlen);
OMPI_DECLSPEC int PMPI_Exscan(const void *sendbuf, void *recvbuf, int count,
@ -2247,12 +2224,6 @@ OMPI_DECLSPEC int PMPI_Isend(const void *buf, int count, MPI_Datatype datatype,
OMPI_DECLSPEC int PMPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm, MPI_Request *request);
OMPI_DECLSPEC int PMPI_Is_thread_main(int *flag);
OMPI_DECLSPEC int PMPI_Keyval_create(MPI_Copy_function *copy_fn,
MPI_Delete_function *delete_fn,
int *keyval, void *extra_state)
__mpi_interface_deprecated__("MPI_Keyval_create is superseded by MPI_Comm_create_keyval in MPI-2.0");
OMPI_DECLSPEC int PMPI_Keyval_free(int *keyval)
__mpi_interface_deprecated__("MPI_Keyval_free is superseded by MPI_Comm_free_keyval in MPI-2.0");
OMPI_DECLSPEC int PMPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name);
OMPI_DECLSPEC MPI_Fint PMPI_Message_c2f(MPI_Message message);
OMPI_DECLSPEC MPI_Message PMPI_Message_f2c(MPI_Fint message);
@ -2453,8 +2424,6 @@ OMPI_DECLSPEC int PMPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb,
MPI_Aint extent, MPI_Datatype *newtype);
OMPI_DECLSPEC int PMPI_Type_delete_attr(MPI_Datatype type, int type_keyval);
OMPI_DECLSPEC int PMPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype);
OMPI_DECLSPEC int PMPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
__mpi_interface_deprecated__("MPI_Type_extent is superseded by MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_free(MPI_Datatype *type);
OMPI_DECLSPEC int PMPI_Type_free_keyval(int *type_keyval);
OMPI_DECLSPEC MPI_Datatype PMPI_Type_f2c(MPI_Fint datatype);
@ -2478,31 +2447,15 @@ OMPI_DECLSPEC int PMPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *tr
MPI_Aint *true_extent);
OMPI_DECLSPEC int PMPI_Type_get_true_extent_x(MPI_Datatype datatype, MPI_Count *true_lb,
MPI_Count *true_extent);
OMPI_DECLSPEC int PMPI_Type_hindexed(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_deprecated__("MPI_Type_hindexed is superseded by MPI_Type_create_hindexed in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_deprecated__("MPI_Type_hvector is superseded by MPI_Type_create_hvector in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_indexed(int count, const int array_of_blocklengths[],
const int array_of_displacements[],
MPI_Datatype oldtype, MPI_Datatype *newtype);
OMPI_DECLSPEC int PMPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
__mpi_interface_deprecated__("MPI_Type_lb is deprecated, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
OMPI_DECLSPEC int PMPI_Type_set_attr(MPI_Datatype type, int type_keyval,
void *attr_val);
OMPI_DECLSPEC int PMPI_Type_set_name(MPI_Datatype type, const char *type_name);
OMPI_DECLSPEC int PMPI_Type_size(MPI_Datatype type, int *size);
OMPI_DECLSPEC int PMPI_Type_size_x(MPI_Datatype type, MPI_Count *size);
OMPI_DECLSPEC int PMPI_Type_struct(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype array_of_types[],
MPI_Datatype *newtype)
__mpi_interface_deprecated__("MPI_Type_struct is superseded by MPI_Type_create_struct in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
__mpi_interface_deprecated__("MPI_Type_ub is deprecated, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_vector(int count, int blocklength, int stride,
MPI_Datatype oldtype, MPI_Datatype *newtype);
OMPI_DECLSPEC int PMPI_Unpack(const void *inbuf, int insize, int *position,
@ -2666,6 +2619,90 @@ OMPI_DECLSPEC int MPI_T_enum_get_info(MPI_T_enum enumtype, int *num, char *name
OMPI_DECLSPEC int MPI_T_enum_get_item(MPI_T_enum enumtype, int index, int *value, char *name,
int *name_len);
#if !OMPI_OMIT_MPI1_COMPAT_DECLS
/*
* Removed APIs
*/
OMPI_DECLSPEC int MPI_Address(void *location, MPI_Aint *address)
__mpi_interface_removed__("MPI_Address is superseded by MPI_Get_address in MPI-2.0");
OMPI_DECLSPEC int MPI_Attr_delete(MPI_Comm comm, int keyval)
__mpi_interface_deprecated__("MPI_Attr_delete is superseded by MPI_Comm_delete_attr in MPI-2.0");
OMPI_DECLSPEC int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
__mpi_interface_deprecated__("MPI_Attr_get is superseded by MPI_Comm_get_attr in MPI-2.0");
OMPI_DECLSPEC int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
__mpi_interface_deprecated__("MPI_Attr_put is superseded by MPI_Comm_set_attr in MPI-2.0");
OMPI_DECLSPEC int MPI_Errhandler_create(MPI_Handler_function *function,
MPI_Errhandler *errhandler)
__mpi_interface_removed__("MPI_Errhandler_create is superseded by MPI_Comm_create_errhandler in MPI-2.0");
OMPI_DECLSPEC int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
__mpi_interface_removed__("MPI_Errhandler_get is superseded by MPI_Comm_get_errhandler in MPI-2.0");
OMPI_DECLSPEC int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
__mpi_interface_removed__("MPI_Errhandler_set is superseded by MPI_Comm_set_errhandler in MPI-2.0");
OMPI_DECLSPEC int MPI_Keyval_create(MPI_Copy_function *copy_fn,
MPI_Delete_function *delete_fn,
int *keyval, void *extra_state)
__mpi_interface_deprecated__("MPI_Keyval_create is superseded by MPI_Comm_create_keyval in MPI-2.0");
OMPI_DECLSPEC int MPI_Keyval_free(int *keyval)
__mpi_interface_deprecated__("MPI_Keyval_free is superseded by MPI_Comm_free_keyval in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
__mpi_interface_removed__("MPI_Type_extent is superseded by MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_hindexed(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_removed__("MPI_Type_hindexed is superseded by MPI_Type_create_hindexed in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_removed__("MPI_Type_hvector is superseded by MPI_Type_create_hvector in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
__mpi_interface_removed__("MPI_Type_lb has been removed, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_struct(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype array_of_types[],
MPI_Datatype *newtype)
__mpi_interface_removed__("MPI_Type_struct is superseded by MPI_Type_create_struct in MPI-2.0");
OMPI_DECLSPEC int MPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
__mpi_interface_removed__("MPI_Type_ub has been removed, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int PMPI_Address(void *location, MPI_Aint *address)
__mpi_interface_removed__("MPI_Address is superseded by MPI_Get_address in MPI-2.0");
OMPI_DECLSPEC int PMPI_Attr_delete(MPI_Comm comm, int keyval)
__mpi_interface_deprecated__("MPI_Attr_delete is superseded by MPI_Comm_delete_attr in MPI-2.0");
OMPI_DECLSPEC int PMPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
__mpi_interface_deprecated__("MPI_Attr_get is superseded by MPI_Comm_get_attr in MPI-2.0");
OMPI_DECLSPEC int PMPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
__mpi_interface_deprecated__("MPI_Attr_put is superseded by MPI_Comm_set_attr in MPI-2.0");
OMPI_DECLSPEC int PMPI_Errhandler_create(MPI_Handler_function *function,
MPI_Errhandler *errhandler)
__mpi_interface_removed__("MPI_Errhandler_create is superseded by MPI_Comm_create_errhandler in MPI-2.0");
OMPI_DECLSPEC int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
__mpi_interface_removed__("MPI_Errhandler_get is superseded by MPI_Comm_get_errhandler in MPI-2.0");
OMPI_DECLSPEC int PMPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
__mpi_interface_removed__("MPI_Errhandler_set is superseded by MPI_Comm_set_errhandler in MPI-2.0");
OMPI_DECLSPEC int PMPI_Keyval_create(MPI_Copy_function *copy_fn,
MPI_Delete_function *delete_fn,
int *keyval, void *extra_state)
__mpi_interface_deprecated__("MPI_Keyval_create is superseded by MPI_Comm_create_keyval in MPI-2.0");
OMPI_DECLSPEC int PMPI_Keyval_free(int *keyval)
__mpi_interface_deprecated__("MPI_Keyval_free is superseded by MPI_Comm_free_keyval in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_extent(MPI_Datatype type, MPI_Aint *extent)
__mpi_interface_removed__("MPI_Type_extent is superseded by MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_hindexed(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_removed__("MPI_Type_hindexed is superseded by MPI_Type_create_hindexed in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
MPI_Datatype oldtype, MPI_Datatype *newtype)
__mpi_interface_removed__("MPI_Type_hvector is superseded by MPI_Type_create_hvector in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_lb(MPI_Datatype type, MPI_Aint *lb)
__mpi_interface_removed__("MPI_Type_lb has been removed, use MPI_Type_get_extent in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_struct(int count, int array_of_blocklengths[],
MPI_Aint array_of_displacements[],
MPI_Datatype array_of_types[],
MPI_Datatype *newtype)
__mpi_interface_removed__("MPI_Type_struct is superseded by MPI_Type_create_struct in MPI-2.0");
OMPI_DECLSPEC int PMPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub)
__mpi_interface_removed__("MPI_Type_ub has been removed, use MPI_Type_get_extent in MPI-2.0");
#endif /* !OMPI_OMIT_MPI1_COMPAT_DECLS */
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif

Просмотреть файл

@ -13,7 +13,7 @@
# Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
# Copyright (c) 2012 Oak Rigde National Laboratory. All rights reserved.
# Copyright (c) 2012-2013 Inria. All rights reserved.
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights
# Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2015-2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
@ -65,7 +65,6 @@ libmpi_c_mpi_la_SOURCES = \
add_error_class.c \
add_error_code.c \
add_error_string.c \
address.c \
allgather.c \
iallgather.c \
allgatherv.c \
@ -79,9 +78,6 @@ libmpi_c_mpi_la_SOURCES = \
ialltoallv.c \
alltoallw.c \
ialltoallw.c \
attr_delete.c \
attr_get.c \
attr_put.c \
barrier.c \
ibarrier.c \
bcast.c \
@ -144,11 +140,8 @@ libmpi_c_mpi_la_SOURCES = \
compare_and_swap.c \
dims_create.c \
errhandler_c2f.c \
errhandler_create.c \
errhandler_f2c.c \
errhandler_free.c \
errhandler_get.c \
errhandler_set.c \
error_class.c \
error_string.c \
exscan.c \
@ -277,8 +270,6 @@ libmpi_c_mpi_la_SOURCES = \
is_thread_main.c \
isend.c \
issend.c \
keyval_create.c \
keyval_free.c \
lookup_name.c \
message_f2c.c \
message_c2f.c \
@ -370,7 +361,6 @@ libmpi_c_mpi_la_SOURCES = \
type_create_subarray.c \
type_delete_attr.c \
type_dup.c \
type_extent.c \
type_f2c.c \
type_free.c \
type_free_keyval.c \
@ -382,17 +372,12 @@ libmpi_c_mpi_la_SOURCES = \
type_get_name.c \
type_get_true_extent.c \
type_get_true_extent_x.c \
type_hindexed.c \
type_hvector.c \
type_indexed.c \
type_lb.c \
type_match_size.c \
type_set_attr.c \
type_set_name.c \
type_size.c \
type_size_x.c \
type_struct.c \
type_ub.c \
type_vector.c \
unpack_external.c \
unpack.c \
@ -446,6 +431,25 @@ libmpi_c_mpi_la_SOURCES = \
win_unlock_all.c \
win_wait.c
if OMPI_ENABLE_MPI1_COMPAT
libmpi_c_mpi_la_SOURCES += \
address.c \
attr_delete.c \
attr_get.c \
attr_put.c \
errhandler_create.c \
errhandler_get.c \
errhandler_set.c \
keyval_create.c \
keyval_free.c \
type_extent.c \
type_hindexed.c \
type_hvector.c \
type_lb.c \
type_struct.c \
type_ub.c
endif
# Conditionally install the header files
if WANT_INSTALL_HEADERS

Просмотреть файл

@ -131,6 +131,11 @@ int OMPI_C_MPI_COMM_DUP_FN( MPI_Comm comm, int comm_keyval, void* extra_state,
return MPI_SUCCESS;
}
#if !defined(OMPI_ENABLE_MPI1_COMPAT)
#error "Need to delete the code below now that the removed functions are no longer shipping"
#elif OMPI_ENABLE_MPI1_COMPAT
int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval,
void* attribute_val_out,
void* extra_state )
@ -154,3 +159,4 @@ int OMPI_C_MPI_DUP_FN( MPI_Comm comm, int comm_keyval, void* extra_state,
*(void**)attribute_val_out = attribute_val_in;
return MPI_SUCCESS;
}
#endif

Просмотреть файл

@ -1,4 +1,4 @@
# -*- makefile -*-
# -*- makefile.am -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
@ -45,7 +45,6 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
padd_error_class.c \
padd_error_code.c \
padd_error_string.c \
paddress.c \
pallgather.c \
piallgather.c \
pallgatherv.c \
@ -59,9 +58,6 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
pialltoallv.c \
palltoallw.c \
pialltoallw.c \
pattr_delete.c \
pattr_get.c \
pattr_put.c \
pbarrier.c \
pibarrier.c \
pbcast.c \
@ -124,11 +120,8 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
pcompare_and_swap.c \
pdims_create.c \
perrhandler_c2f.c \
perrhandler_create.c \
perrhandler_f2c.c \
perrhandler_free.c \
perrhandler_get.c \
perrhandler_set.c \
perror_class.c \
perror_string.c \
pexscan.c \
@ -257,8 +250,6 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
pis_thread_main.c \
pisend.c \
pissend.c \
pkeyval_create.c \
pkeyval_free.c \
plookup_name.c \
pmessage_f2c.c \
pmessage_c2f.c \
@ -350,7 +341,6 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
ptype_create_subarray.c \
ptype_delete_attr.c \
ptype_dup.c \
ptype_extent.c \
ptype_f2c.c \
ptype_free.c \
ptype_free_keyval.c \
@ -362,17 +352,12 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
ptype_get_name.c \
ptype_get_true_extent.c \
ptype_get_true_extent_x.c \
ptype_hindexed.c \
ptype_hvector.c \
ptype_indexed.c \
ptype_lb.c \
ptype_match_size.c \
ptype_set_attr.c \
ptype_set_name.c \
ptype_size.c \
ptype_size_x.c \
ptype_struct.c \
ptype_ub.c \
ptype_vector.c \
punpack_external.c \
punpack.c \
@ -426,6 +411,25 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
pwin_unlock_all.c \
pwin_wait.c
if OMPI_ENABLE_MPI1_COMPAT
nodist_libmpi_c_pmpi_la_SOURCES += \
paddress.c \
pattr_delete.c \
pattr_get.c \
pattr_put.c \
perrhandler_create.c \
perrhandler_get.c \
perrhandler_set.c \
pkeyval_create.c \
pkeyval_free.c \
ptype_extent.c \
ptype_hindexed.c \
ptype_hvector.c \
ptype_lb.c \
ptype_struct.c \
ptype_ub.c
endif
#
# Sym link in the sources from the real MPI directory
#

Просмотреть файл

@ -106,6 +106,8 @@
#define OMPI_KIND_FORTRAN_COMPLEX32 @OMPI_KIND_FORTRAN_COMPLEX32@
#define OMPI_SIZEOF_FORTRAN_COMPLEX32 @OMPI_SIZEOF_FORTRAN_COMPLEX32@
#define OMPI_ENABLE_MPI1_COMPAT @OMPI_ENABLE_MPI1_COMPAT@
! Include some post-processing, based on the values from above
#include "ompi/mpi/fortran/configure-fortran-output-bottom.h"

Просмотреть файл

@ -12,7 +12,7 @@
# Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2011-2013 Inria. All rights reserved.
# Copyright (c) 2011-2013 Universite Bordeaux 1
# Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
# Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2015-2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.
@ -129,7 +129,6 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
add_error_class_f.c \
add_error_code_f.c \
add_error_string_f.c \
address_f.c \
aint_add_f.c \
aint_diff_f.c \
allgather_f.c \
@ -139,9 +138,6 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
alltoall_f.c \
alltoallv_f.c \
alltoallw_f.c \
attr_delete_f.c \
attr_get_f.c \
attr_put_f.c \
barrier_f.c \
bcast_f.c \
bsend_f.c \
@ -198,10 +194,7 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
dist_graph_neighbors_f.c \
dist_graph_neighbors_count_f.c \
dims_create_f.c \
errhandler_create_f.c \
errhandler_free_f.c \
errhandler_get_f.c \
errhandler_set_f.c \
error_class_f.c \
error_string_f.c \
exscan_f.c \
@ -342,8 +335,6 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
iscatterv_f.c \
issend_f.c \
is_thread_main_f.c \
keyval_create_f.c \
keyval_free_f.c \
lookup_name_f.c \
mprobe_f.c \
mrecv_f.c \
@ -411,7 +402,6 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
type_create_subarray_f.c \
type_delete_attr_f.c \
type_dup_f.c \
type_extent_f.c \
type_free_f.c \
type_free_keyval_f.c \
type_get_attr_f.c \
@ -422,17 +412,12 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
type_get_name_f.c \
type_get_true_extent_f.c \
type_get_true_extent_x_f.c \
type_hindexed_f.c \
type_hvector_f.c \
type_indexed_f.c \
type_lb_f.c \
type_match_size_f.c \
type_set_attr_f.c \
type_set_name_f.c \
type_size_f.c \
type_size_x_f.c \
type_struct_f.c \
type_ub_f.c \
type_vector_f.c \
unpack_external_f.c \
unpack_f.c \
@ -491,6 +476,25 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
win_flush_local_f.c \
win_flush_local_all_f.c
if OMPI_ENABLE_MPI1_COMPAT
lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \
address_f.c \
attr_delete_f.c \
attr_get_f.c \
attr_put_f.c \
errhandler_create_f.c \
errhandler_get_f.c \
errhandler_set_f.c \
keyval_create_f.c \
keyval_free_f.c \
type_extent_f.c \
type_hindexed_f.c \
type_hvector_f.c \
type_lb_f.c \
type_struct_f.c \
type_ub_f.c
endif
endif
#

Просмотреть файл

@ -45,7 +45,6 @@ linked_files = \
padd_error_class_f.c \
padd_error_code_f.c \
padd_error_string_f.c \
paddress_f.c \
paint_add_f.c \
paint_diff_f.c \
pallgather_f.c \
@ -55,9 +54,6 @@ linked_files = \
palltoall_f.c \
palltoallv_f.c \
palltoallw_f.c \
pattr_delete_f.c \
pattr_get_f.c \
pattr_put_f.c \
pbarrier_f.c \
pbcast_f.c \
pbsend_f.c \
@ -114,10 +110,7 @@ linked_files = \
pdist_graph_create_f.c \
pdist_graph_neighbors_f.c \
pdist_graph_neighbors_count_f.c \
perrhandler_create_f.c \
perrhandler_free_f.c \
perrhandler_get_f.c \
perrhandler_set_f.c \
perror_class_f.c \
perror_string_f.c \
pexscan_f.c \
@ -258,8 +251,6 @@ linked_files = \
pisend_f.c \
pissend_f.c \
pis_thread_main_f.c \
pkeyval_create_f.c \
pkeyval_free_f.c \
plookup_name_f.c \
pmprobe_f.c \
pmrecv_f.c \
@ -326,7 +317,6 @@ linked_files = \
ptype_create_subarray_f.c \
ptype_delete_attr_f.c \
ptype_dup_f.c \
ptype_extent_f.c \
ptype_free_f.c \
ptype_free_keyval_f.c \
ptype_get_attr_f.c \
@ -337,17 +327,12 @@ linked_files = \
ptype_get_name_f.c \
ptype_get_true_extent_f.c \
ptype_get_true_extent_x_f.c \
ptype_hindexed_f.c \
ptype_hvector_f.c \
ptype_indexed_f.c \
ptype_lb_f.c \
ptype_match_size_f.c \
ptype_set_attr_f.c \
ptype_set_name_f.c \
ptype_size_f.c \
ptype_size_x_f.c \
ptype_struct_f.c \
ptype_ub_f.c \
ptype_vector_f.c \
punpack_external_f.c \
punpack_f.c \
@ -407,6 +392,25 @@ linked_files = \
pwin_flush_local_f.c \
pwin_flush_local_all_f.c
if OMPI_ENABLE_MPI1_COMPAT
linked_files = \
paddress_f.c \
pattr_delete_f.c \
pattr_get_f.c \
pattr_put_f.c \
perrhandler_create_f.c \
perrhandler_get_f.c \
perrhandler_set_f.c \
pkeyval_create_f.c \
pkeyval_free_f.c \
ptype_extent_f.c \
ptype_hindexed_f.c \
ptype_hvector_f.c \
ptype_lb_f.c \
ptype_struct_f.c \
ptype_ub_f.c
endif
#
# Sym link in the sources from the real MPI directory
#

Просмотреть файл

@ -73,7 +73,7 @@ void ompi_type_create_hvector_f(MPI_Fint *count, MPI_Fint *blocklength,
MPI_Datatype c_old = PMPI_Type_f2c(*oldtype);
MPI_Datatype c_new;
c_ierr = PMPI_Type_hvector(OMPI_FINT_2_INT(*count),
c_ierr = PMPI_Type_create_hvector(OMPI_FINT_2_INT(*count),
OMPI_FINT_2_INT(*blocklength),
*stride,
c_old, &c_new);

Просмотреть файл

@ -1,11 +1,11 @@
# -*- makefile -*-
# -*- makefile.am -*-
#
# Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2012-2013 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2012-2013 Inria. All rights reserved.
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights
# Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2015-2017 Research Organization for Information Science
# and Technology (RIST). All rights reserved.

Просмотреть файл

@ -27,11 +27,13 @@ lib_LTLIBRARIES = lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr.la
mpi-ignore-tkr-interfaces.h: mpi-ignore-tkr-interfaces.h.in
mpi-ignore-tkr-file-interfaces.h: mpi-ignore-tkr-file-interfaces.h.in
mpi-ignore-tkr-removed-interfaces.h: mpi-ignore-tkr-removed-interfaces.h.in
mpi-ignore-tkr.lo: $(top_srcdir)/ompi/mpi/fortran/base/attr-fn-int-callback-interfaces.h
mpi-ignore-tkr.lo: $(top_srcdir)/ompi/mpi/fortran/base/conversion-fn-null-int-interface.h
mpi-ignore-tkr.lo: mpi-ignore-tkr-interfaces.h
mpi-ignore-tkr.lo: mpi-ignore-tkr-file-interfaces.h
mpi-ignore-tkr.lo: mpi-ignore-tkr-removed-interfaces.h
mpi-ignore-tkr.lo: mpi-ignore-tkr-sizeof.h
mpi-ignore-tkr.lo: mpi-ignore-tkr-sizeof.f90
mpi-ignore-tkr.lo: mpi-ignore-tkr.F90
@ -40,7 +42,8 @@ lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr_la_SOURCES = \
mpi-ignore-tkr.F90
nodist_lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr_la_SOURCES = \
mpi-ignore-tkr-interfaces.h \
mpi-ignore-tkr-file-interfaces.h
mpi-ignore-tkr-file-interfaces.h \
mpi-ignore-tkr-removed-interfaces.h
if BUILD_FORTRAN_SIZEOF
# These files are generated; do not distribute them

Просмотреть файл

@ -141,29 +141,6 @@ end subroutine PMPI_Add_error_string
end interface
interface MPI_Address
subroutine MPI_Address(location, address, ierror)
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ location
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: location
integer, intent(out) :: address
integer, intent(out) :: ierror
end subroutine MPI_Address
end interface
interface PMPI_Address
subroutine PMPI_Address(location, address, ierror)
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ location
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: location
integer, intent(out) :: address
integer, intent(out) :: ierror
end subroutine PMPI_Address
end interface
interface MPI_Aint_add
function MPI_Aint_add(base, diff)
@ -483,75 +460,6 @@ end subroutine PMPI_Alltoallw
end interface
interface MPI_Attr_delete
subroutine MPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Attr_delete
end interface
interface PMPI_Attr_delete
subroutine PMPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Attr_delete
end interface
interface MPI_Attr_get
subroutine MPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine MPI_Attr_get
end interface
interface PMPI_Attr_get
subroutine PMPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine PMPI_Attr_get
end interface
interface MPI_Attr_put
subroutine MPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine MPI_Attr_put
end interface
interface PMPI_Attr_put
subroutine PMPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine PMPI_Attr_put
end interface
interface MPI_Barrier
subroutine MPI_Barrier(comm, ierror)
@ -1959,27 +1867,6 @@ end subroutine PMPI_Dist_graph_neighbors_count
end interface
interface MPI_Errhandler_create
subroutine MPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_create
end interface
interface PMPI_Errhandler_create
subroutine PMPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_create
end interface
interface MPI_Errhandler_free
subroutine MPI_Errhandler_free(errhandler, ierror)
@ -1999,48 +1886,6 @@ end subroutine PMPI_Errhandler_free
end interface
interface MPI_Errhandler_get
subroutine MPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_get
end interface
interface PMPI_Errhandler_get
subroutine PMPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_get
end interface
interface MPI_Errhandler_set
subroutine MPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_set
end interface
interface PMPI_Errhandler_set
subroutine PMPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_set
end interface
interface MPI_Error_class
subroutine MPI_Error_class(errorcode, errorclass, ierror)
@ -4517,50 +4362,6 @@ end subroutine PMPI_Issend
end interface
interface MPI_Keyval_create
subroutine MPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine MPI_Keyval_create
end interface
interface PMPI_Keyval_create
subroutine PMPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_create
end interface
interface MPI_Keyval_free
subroutine MPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Keyval_free
end interface
interface PMPI_Keyval_free
subroutine PMPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_free
end interface
interface MPI_Lookup_name
subroutine MPI_Lookup_name(service_name, info, port_name, ierror)
@ -6763,27 +6564,6 @@ end subroutine PMPI_Type_dup
end interface
interface MPI_Type_extent
subroutine MPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine MPI_Type_extent
end interface
interface PMPI_Type_extent
subroutine PMPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine PMPI_Type_extent
end interface
interface MPI_Type_free
subroutine MPI_Type_free(datatype, ierror)
@ -7036,64 +6816,6 @@ end subroutine PMPI_Type_get_true_extent_x
end interface
interface MPI_Type_hindexed
subroutine MPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hindexed
end interface
interface PMPI_Type_hindexed
subroutine PMPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hindexed
end interface
interface MPI_Type_hvector
subroutine MPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hvector
end interface
interface PMPI_Type_hvector
subroutine PMPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hvector
end interface
interface MPI_Type_indexed
subroutine MPI_Type_indexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
@ -7123,27 +6845,6 @@ end subroutine PMPI_Type_indexed
end interface
interface MPI_Type_lb
subroutine MPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine MPI_Type_lb
end interface
interface PMPI_Type_lb
subroutine PMPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine PMPI_Type_lb
end interface
interface MPI_Type_match_size
subroutine MPI_Type_match_size(typeclass, size, datatype, ierror)
@ -7257,56 +6958,6 @@ end subroutine PMPI_Type_size_x
end interface
interface MPI_Type_struct
subroutine MPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_struct
end interface
interface PMPI_Type_struct
subroutine PMPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_struct
end interface
interface MPI_Type_ub
subroutine MPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine MPI_Type_ub
end interface
interface PMPI_Type_ub
subroutine PMPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine PMPI_Type_ub
end interface
interface MPI_Type_vector
subroutine MPI_Type_vector(count, blocklength, stride, oldtype, newtype&

Просмотреть файл

@ -0,0 +1,358 @@
! -*- fortran -*-
!
! Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2007 Los Alamos National Security, LLC. All rights
! reserved.
! Copyright (c) 2012 The University of Tennessee and The University
! of Tennessee Research Foundation. All rights
! reserved.
! Copyright (c) 2012 Inria. All rights reserved.
! Copyright (c) 2013-2018 Los Alamos National Security, LLC. All rights
! reserved.
! Copyright (c) 2015 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
interface MPI_Address
subroutine MPI_Address(location, address, ierror)
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ location
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: location
integer, intent(out) :: address
integer, intent(out) :: ierror
end subroutine MPI_Address
end interface
interface PMPI_Address
subroutine PMPI_Address(location, address, ierror)
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ location
@OMPI_FORTRAN_IGNORE_TKR_TYPE@, intent(in) :: location
integer, intent(out) :: address
integer, intent(out) :: ierror
end subroutine PMPI_Address
end interface
interface MPI_Attr_delete
subroutine MPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Attr_delete
end interface
interface PMPI_Attr_delete
subroutine PMPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Attr_delete
end interface
interface MPI_Attr_get
subroutine MPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine MPI_Attr_get
end interface
interface PMPI_Attr_get
subroutine PMPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine PMPI_Attr_get
end interface
interface MPI_Attr_put
subroutine MPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine MPI_Attr_put
end interface
interface PMPI_Attr_put
subroutine PMPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine PMPI_Attr_put
end interface
interface MPI_Errhandler_create
subroutine MPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_create
end interface
interface PMPI_Errhandler_create
subroutine PMPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_create
end interface
interface MPI_Errhandler_get
subroutine MPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_get
end interface
interface PMPI_Errhandler_get
subroutine PMPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_get
end interface
interface MPI_Errhandler_set
subroutine MPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_set
end interface
interface PMPI_Errhandler_set
subroutine PMPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_set
end interface
interface MPI_Keyval_create
subroutine MPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine MPI_Keyval_create
end interface
interface PMPI_Keyval_create
subroutine PMPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_create
end interface
interface MPI_Keyval_free
subroutine MPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Keyval_free
end interface
interface PMPI_Keyval_free
subroutine PMPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_free
end interface
interface MPI_Type_extent
subroutine MPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine MPI_Type_extent
end interface
interface PMPI_Type_extent
subroutine PMPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine PMPI_Type_extent
end interface
interface MPI_Type_hindexed
subroutine MPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hindexed
end interface
interface PMPI_Type_hindexed
subroutine PMPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hindexed
end interface
interface MPI_Type_hvector
subroutine MPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hvector
end interface
interface PMPI_Type_hvector
subroutine PMPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hvector
end interface
interface MPI_Type_lb
subroutine MPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine MPI_Type_lb
end interface
interface PMPI_Type_lb
subroutine PMPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine PMPI_Type_lb
end interface
interface MPI_Type_struct
subroutine MPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_struct
end interface
interface PMPI_Type_struct
subroutine PMPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_struct
end interface
interface MPI_Type_ub
subroutine MPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine MPI_Type_ub
end interface
interface PMPI_Type_ub
subroutine PMPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine PMPI_Type_ub
end interface

Просмотреть файл

@ -43,6 +43,13 @@ module mpi
include "ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h"
include "ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-file-interfaces.h"
#if !defined(OMPI_ENABLE_MPI1_COMPAT)
#error "Remove MPI-1 compat code"
#elif OMPI_ENABLE_MPI1_COMPAT
include "ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-removed-interfaces.h"
#endif
include 'mpi-ignore-tkr-sizeof.h'

Просмотреть файл

@ -59,10 +59,12 @@ lib_LTLIBRARIES += lib@OMPI_LIBMPI_NAME@_usempi.la
mpi.lo: mpi.F90
mpi.lo: mpi-f90-interfaces.h
mpi.lo: mpi-f90-file-interfaces.h
mpi.lo: mpi-f90-removed-interfaces.h
mpi.lo: $(top_builddir)/ompi/mpi/fortran/configure-fortran-output.h
mpi.lo: mpi-f90-cptr-interfaces.h
mpi.lo: pmpi-f90-interfaces.h
mpi.lo: pmpi-f90-file-interfaces.h
mpi.lo: pmpi-f90-removed-interfaces.h
mpi.lo: pmpi-f90-cptr-interfaces.h
# Per MPI-3 p610:34-41, if we're building a TKR mpi module, we should
@ -168,8 +170,10 @@ endif
EXTRA_DIST = \
mpi-f90-interfaces.h \
mpi-f90-file-interfaces.h \
mpi-f90-removed-interfaces.h \
mpi-f90-cptr-interfaces.h \
pmpi-f90-interfaces.h \
pmpi-f90-file-interfaces.h \
pmpi-f90-removed-interfaces.h \
pmpi-f90-cptr-interfaces.h

Просмотреть файл

@ -102,41 +102,6 @@ end function MPI_Aint_diff
end interface
interface MPI_Attr_delete
subroutine MPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Attr_delete
end interface
interface MPI_Attr_get
subroutine MPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine MPI_Attr_get
end interface
interface MPI_Attr_put
subroutine MPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine MPI_Attr_put
end interface
interface MPI_Barrier
@ -604,17 +569,6 @@ end subroutine MPI_Dims_create
end interface
interface MPI_Errhandler_create
subroutine MPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_create
end interface
interface MPI_Errhandler_free
subroutine MPI_Errhandler_free(errhandler, ierror)
@ -625,28 +579,6 @@ end subroutine MPI_Errhandler_free
end interface
interface MPI_Errhandler_get
subroutine MPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_get
end interface
interface MPI_Errhandler_set
subroutine MPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_set
end interface
interface MPI_Error_class
subroutine MPI_Error_class(errorcode, errorclass, ierror)
@ -1195,29 +1127,6 @@ end subroutine MPI_Is_thread_main
end interface
interface MPI_Keyval_create
subroutine MPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine MPI_Keyval_create
end interface
interface MPI_Keyval_free
subroutine MPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Keyval_free
end interface
interface MPI_Op_commutative
subroutine MPI_Op_commutative(op, commute, ierror)
@ -1686,17 +1595,6 @@ end subroutine MPI_Type_dup
end interface
interface MPI_Type_extent
subroutine MPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine MPI_Type_extent
end interface
interface MPI_Type_free
subroutine MPI_Type_free(datatype, ierror)
@ -1828,36 +1726,6 @@ end subroutine MPI_Type_get_true_extent_x
end interface
interface MPI_Type_hindexed
subroutine MPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hindexed
end interface
interface MPI_Type_hvector
subroutine MPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hvector
end interface
interface MPI_Type_indexed
subroutine MPI_Type_indexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
@ -1871,19 +1739,6 @@ subroutine MPI_Type_indexed(count, array_of_blocklengths, array_of_displacements
end subroutine MPI_Type_indexed
end interface
interface MPI_Type_lb
subroutine MPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine MPI_Type_lb
end interface
interface MPI_Type_match_size
subroutine MPI_Type_match_size(typeclass, size, datatype, ierror)
@ -1943,32 +1798,6 @@ end subroutine MPI_Type_size_x
end interface
interface MPI_Type_struct
subroutine MPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_struct
end interface
interface MPI_Type_ub
subroutine MPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine MPI_Type_ub
end interface
interface MPI_Type_vector
subroutine MPI_Type_vector(count, blocklength, stride, oldtype, newtype&

Просмотреть файл

@ -0,0 +1,183 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2016 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! Copyright (c) 2018 Los Alamos National Security, LLC. All rights
! reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
interface MPI_Attr_delete
subroutine MPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Attr_delete
end interface
interface MPI_Attr_get
subroutine MPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine MPI_Attr_get
end interface
interface MPI_Attr_put
subroutine MPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine MPI_Attr_put
end interface
interface MPI_Errhandler_create
subroutine MPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_create
end interface
interface MPI_Errhandler_get
subroutine MPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_get
end interface
interface MPI_Errhandler_set
subroutine MPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine MPI_Errhandler_set
end interface
interface MPI_Keyval_create
subroutine MPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine MPI_Keyval_create
end interface
interface MPI_Keyval_free
subroutine MPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine MPI_Keyval_free
end interface
interface MPI_Type_extent
subroutine MPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine MPI_Type_extent
end interface
interface MPI_Type_hindexed
subroutine MPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hindexed
end interface
interface MPI_Type_hvector
subroutine MPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_hvector
end interface
interface MPI_Type_lb
subroutine MPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine MPI_Type_lb
end interface
interface MPI_Type_struct
subroutine MPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine MPI_Type_struct
end interface
interface MPI_Type_ub
subroutine MPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine MPI_Type_ub

Просмотреть файл

@ -60,4 +60,13 @@ module mpi
include "mpi-tkr-sizeof.h"
#endif
#if !defined(OMPI_ENABLE_MPI1_COMPAT)
#error "Remove MPI-1 compat code"
#elif OMPI_ENABLE_MPI1_COMPAT
include "mpi-f90-removed-interfaces.h"
include "pmpi-f90-removed-interfaces.h"
#endif
end module mpi

Просмотреть файл

@ -102,41 +102,6 @@ end function PMPI_Aint_diff
end interface
interface PMPI_Attr_delete
subroutine PMPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Attr_delete
end interface
interface PMPI_Attr_get
subroutine PMPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine PMPI_Attr_get
end interface
interface PMPI_Attr_put
subroutine PMPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine PMPI_Attr_put
end interface
interface PMPI_Barrier
@ -604,17 +569,6 @@ end subroutine PMPI_Dims_create
end interface
interface PMPI_Errhandler_create
subroutine PMPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_create
end interface
interface PMPI_Errhandler_free
subroutine PMPI_Errhandler_free(errhandler, ierror)
@ -625,28 +579,6 @@ end subroutine PMPI_Errhandler_free
end interface
interface PMPI_Errhandler_get
subroutine PMPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_get
end interface
interface PMPI_Errhandler_set
subroutine PMPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_set
end interface
interface PMPI_Error_class
subroutine PMPI_Error_class(errorcode, errorclass, ierror)
@ -1195,29 +1127,6 @@ end subroutine PMPI_Is_thread_main
end interface
interface PMPI_Keyval_create
subroutine PMPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_create
end interface
interface PMPI_Keyval_free
subroutine PMPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_free
end interface
interface PMPI_Op_commutative
subroutine PMPI_Op_commutative(op, commute, ierror)
@ -1828,36 +1737,6 @@ end subroutine PMPI_Type_get_true_extent_x
end interface
interface PMPI_Type_hindexed
subroutine PMPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hindexed
end interface
interface PMPI_Type_hvector
subroutine PMPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hvector
end interface
interface PMPI_Type_indexed
subroutine PMPI_Type_indexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
@ -1873,17 +1752,6 @@ end subroutine PMPI_Type_indexed
end interface
interface PMPI_Type_lb
subroutine PMPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine PMPI_Type_lb
end interface
interface PMPI_Type_match_size
subroutine PMPI_Type_match_size(typeclass, size, datatype, ierror)
@ -1943,32 +1811,6 @@ end subroutine PMPI_Type_size_x
end interface
interface PMPI_Type_struct
subroutine PMPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_struct
end interface
interface PMPI_Type_ub
subroutine PMPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine PMPI_Type_ub
end interface
interface PMPI_Type_vector
subroutine PMPI_Type_vector(count, blocklength, stride, oldtype, newtype&

Просмотреть файл

@ -0,0 +1,185 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2016 Research Organization for Information Science
! and Technology (RIST). All rights reserved.
! Copyright (c) 2018 Los Alamos National Security, LLC. All rights
! reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
interface PMPI_Attr_delete
subroutine PMPI_Attr_delete(comm, keyval, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Attr_delete
end interface
interface PMPI_Attr_get
subroutine PMPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(out) :: attribute_val
logical, intent(out) :: flag
integer, intent(out) :: ierror
end subroutine PMPI_Attr_get
end interface
interface PMPI_Attr_put
subroutine PMPI_Attr_put(comm, keyval, attribute_val, ierror)
integer, intent(in) :: comm
integer, intent(in) :: keyval
integer, intent(in) :: attribute_val
integer, intent(out) :: ierror
end subroutine PMPI_Attr_put
end interface
interface PMPI_Errhandler_create
subroutine PMPI_Errhandler_create(function, errhandler, ierror)
external :: function
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_create
end interface
interface PMPI_Errhandler_get
subroutine PMPI_Errhandler_get(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(out) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_get
end interface
interface PMPI_Errhandler_set
subroutine PMPI_Errhandler_set(comm, errhandler, ierror)
integer, intent(in) :: comm
integer, intent(in) :: errhandler
integer, intent(out) :: ierror
end subroutine PMPI_Errhandler_set
end interface
interface PMPI_Keyval_create
subroutine PMPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
external :: copy_fn
external :: delete_fn
integer, intent(out) :: keyval
integer, intent(in) :: extra_state
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_create
end interface
interface PMPI_Keyval_free
subroutine PMPI_Keyval_free(keyval, ierror)
integer, intent(inout) :: keyval
integer, intent(out) :: ierror
end subroutine PMPI_Keyval_free
end interface
interface PMPI_Type_extent
subroutine PMPI_Type_extent(datatype, extent, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: extent
integer, intent(out) :: ierror
end subroutine PMPI_Type_extent
end interface
interface PMPI_Type_hindexed
subroutine PMPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hindexed
end interface
interface PMPI_Type_hvector
subroutine PMPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
, ierror)
integer, intent(in) :: count
integer, intent(in) :: blocklength
integer, intent(in) :: stride
integer, intent(in) :: oldtype
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_hvector
end interface
interface PMPI_Type_lb
subroutine PMPI_Type_lb(datatype, lb, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: lb
integer, intent(out) :: ierror
end subroutine PMPI_Type_lb
end interface
interface PMPI_Type_struct
subroutine PMPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierror)
integer, intent(in) :: count
integer, dimension(*), intent(in) :: array_of_blocklengths
integer, dimension(*), intent(in) :: array_of_displacements
integer, dimension(*), intent(in) :: array_of_types
integer, intent(out) :: newtype
integer, intent(out) :: ierror
end subroutine PMPI_Type_struct
end interface
interface PMPI_Type_ub
subroutine PMPI_Type_ub(datatype, ub, ierror)
integer, intent(in) :: datatype
integer, intent(out) :: ub
integer, intent(out) :: ierror
end subroutine PMPI_Type_ub
end interface