1 #ifndef PyMPI_CONFIG_OPENMPI_H 2 #define PyMPI_CONFIG_OPENMPI_H 3 4 #include "mpi-11.h" 5 #include "mpi-12.h" 6 #include "mpi-20.h" 7 #include "mpi-22.h" 8 #include "mpi-30.h" 9 #include "mpi-31.h" 10 11 #ifndef OMPI_HAVE_FORTRAN_LOGICAL1 12 #define OMPI_HAVE_FORTRAN_LOGICAL1 0 13 #endif 14 #ifndef OMPI_HAVE_FORTRAN_LOGICAL2 15 #define OMPI_HAVE_FORTRAN_LOGICAL2 0 16 #endif 17 #ifndef OMPI_HAVE_FORTRAN_LOGICAL4 18 #define OMPI_HAVE_FORTRAN_LOGICAL4 0 19 #endif 20 #ifndef OMPI_HAVE_FORTRAN_LOGICAL8 21 #define OMPI_HAVE_FORTRAN_LOGICAL8 0 22 #endif 23 24 #if OMPI_HAVE_FORTRAN_LOGICAL1 25 #define PyMPI_HAVE_MPI_LOGICAL1 1 26 #endif 27 #if OMPI_HAVE_FORTRAN_LOGICAL2 28 #define PyMPI_HAVE_MPI_LOGICAL2 1 29 #endif 30 #if OMPI_HAVE_FORTRAN_LOGICAL4 31 #define PyMPI_HAVE_MPI_LOGICAL4 1 32 #endif 33 #if OMPI_HAVE_FORTRAN_LOGICAL8 34 #define PyMPI_HAVE_MPI_LOGICAL8 1 35 #endif 36 37 #if !OMPI_HAVE_FORTRAN_INTEGER1 38 #undef PyMPI_HAVE_MPI_INTEGER1 39 #endif 40 #if !OMPI_HAVE_FORTRAN_INTEGER2 41 #undef PyMPI_HAVE_MPI_INTEGER2 42 #endif 43 #if !OMPI_HAVE_FORTRAN_INTEGER4 44 #undef PyMPI_HAVE_MPI_INTEGER4 45 #endif 46 #if !OMPI_HAVE_FORTRAN_INTEGER8 47 #undef PyMPI_HAVE_MPI_INTEGER8 48 #endif 49 #if !OMPI_HAVE_FORTRAN_INTEGER16 50 #undef PyMPI_HAVE_MPI_INTEGER16 51 #endif 52 #if !OMPI_HAVE_FORTRAN_REAL2 53 #undef PyMPI_HAVE_MPI_REAL2 54 #undef PyMPI_HAVE_MPI_COMPLEX4 55 #endif 56 #if !OMPI_HAVE_FORTRAN_REAL4 57 #undef PyMPI_HAVE_MPI_REAL4 58 #undef PyMPI_HAVE_MPI_COMPLEX8 59 #endif 60 #if !OMPI_HAVE_FORTRAN_REAL8 61 #undef PyMPI_HAVE_MPI_REAL8 62 #undef PyMPI_HAVE_MPI_COMPLEX16 63 #endif 64 #if !OMPI_HAVE_FORTRAN_REAL16 65 #undef PyMPI_HAVE_MPI_REAL16 66 #undef PyMPI_HAVE_MPI_COMPLEX32 67 #endif 68 69 #ifdef OMPI_PROVIDE_MPI_FILE_INTERFACE 70 #if OMPI_PROVIDE_MPI_FILE_INTERFACE == 0 71 #include "openmpi-io.h" 72 #endif 73 #endif 74 75 #if (defined(OMPI_MAJOR_VERSION) && \ 76 defined(OMPI_MINOR_VERSION) && \ 77 defined(OMPI_RELEASE_VERSION)) 78 #define OMPI_NUMVERSION (OMPI_MAJOR_VERSION*10000 + \ 79 OMPI_MINOR_VERSION*100 + \ 80 OMPI_RELEASE_VERSION) 81 #else 82 #define OMPI_NUMVERSION (10100) 83 #endif 84 85 #if MPI_VERSION < 3 86 87 #if OMPI_NUMVERSION >= 10700 88 #define PyMPI_HAVE_MPI_Message 1 89 #define PyMPI_HAVE_MPI_MESSAGE_NULL 1 90 #define PyMPI_HAVE_MPI_MESSAGE_NO_PROC 1 91 #define PyMPI_HAVE_MPI_Message_c2f 1 92 #define PyMPI_HAVE_MPI_Message_f2c 1 93 #define PyMPI_HAVE_MPI_Mprobe 1 94 #define PyMPI_HAVE_MPI_Improbe 1 95 #define PyMPI_HAVE_MPI_Mrecv 1 96 #define PyMPI_HAVE_MPI_Imrecv 1 97 #define PyMPI_HAVE_MPI_Ibarrier 1 98 #define PyMPI_HAVE_MPI_Ibcast 1 99 #define PyMPI_HAVE_MPI_Igather 1 100 #define PyMPI_HAVE_MPI_Igatherv 1 101 #define PyMPI_HAVE_MPI_Iscatter 1 102 #define PyMPI_HAVE_MPI_Iscatterv 1 103 #define PyMPI_HAVE_MPI_Iallgather 1 104 #define PyMPI_HAVE_MPI_Iallgatherv 1 105 #define PyMPI_HAVE_MPI_Ialltoall 1 106 #define PyMPI_HAVE_MPI_Ialltoallv 1 107 #define PyMPI_HAVE_MPI_Ialltoallw 1 108 #define PyMPI_HAVE_MPI_Ireduce 1 109 #define PyMPI_HAVE_MPI_Iallreduce 1 110 #define PyMPI_HAVE_MPI_Ireduce_scatter_block 1 111 #define PyMPI_HAVE_MPI_Ireduce_scatter 1 112 #define PyMPI_HAVE_MPI_Iscan 1 113 #define PyMPI_HAVE_MPI_Iexscan 1 114 #define PyMPI_HAVE_MPI_MAX_LIBRARY_VERSION_STRING 1 115 #define PyMPI_HAVE_MPI_Get_library_version 1 116 #endif /* OMPI >= 1.7.0 */ 117 118 #if OMPI_NUMVERSION >= 10704 119 #define PyMPI_HAVE_MPI_Neighbor_allgather 1 120 #define PyMPI_HAVE_MPI_Neighbor_allgatherv 1 121 #define PyMPI_HAVE_MPI_Neighbor_alltoall 1 122 #define PyMPI_HAVE_MPI_Neighbor_alltoallv 1 123 #define PyMPI_HAVE_MPI_Neighbor_alltoallw 1 124 #define PyMPI_HAVE_MPI_Ineighbor_allgather 1 125 #define PyMPI_HAVE_MPI_Ineighbor_allgatherv 1 126 #define PyMPI_HAVE_MPI_Ineighbor_alltoall 1 127 #define PyMPI_HAVE_MPI_Ineighbor_alltoallv 1 128 #define PyMPI_HAVE_MPI_Ineighbor_alltoallw 1 129 #endif /* OMPI >= 1.7.4 */ 130 131 #endif 132 133 #if MPI_VERSION == 3 134 135 #if OMPI_NUMVERSION <= 10705 136 #undef PyMPI_HAVE_MPI_Comm_set_info 137 #undef PyMPI_HAVE_MPI_Comm_get_info 138 #undef PyMPI_HAVE_MPI_WEIGHTS_EMPTY 139 #undef PyMPI_HAVE_MPI_ERR_RMA_SHARED 140 #endif /* OMPI <= 1.7.5 */ 141 142 #endif 143 144 #endif /* !PyMPI_CONFIG_OPENMPI_H */ 145