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