1! Copyright (C) by Argonne National Laboratory 2! See COPYRIGHT in top-level directory 3 MODULE MPI_CONSTANTS 4 IMPLICIT NONE 5 INCLUDE 'mpifnoext.h' 6 TYPE :: MPI_Status 7 SEQUENCE 8 INTEGER :: count_lo 9 INTEGER :: count_hi_and_cancelled 10 INTEGER :: MPI_SOURCE, MPI_TAG, MPI_ERROR 11 END TYPE MPI_Status 12 TYPE :: MPI_Info 13 SEQUENCE 14 INTEGER :: MPI_VAL 15 END TYPE MPI_Info 16 TYPE :: MPI_Request 17 SEQUENCE 18 INTEGER :: MPI_VAL 19 END TYPE MPI_Request 20 TYPE :: MPI_Comm 21 SEQUENCE 22 INTEGER :: MPI_VAL 23 END TYPE MPI_Comm 24 TYPE :: MPI_Win 25 SEQUENCE 26 INTEGER :: MPI_VAL 27 END TYPE MPI_Win 28 TYPE :: MPI_File 29 SEQUENCE 30 INTEGER :: MPI_VAL 31 END TYPE MPI_File 32 TYPE :: MPI_Message 33 SEQUENCE 34 INTEGER :: MPI_VAL 35 END TYPE MPI_Message 36 TYPE :: MPI_Errhandler 37 SEQUENCE 38 INTEGER :: MPI_VAL 39 END TYPE MPI_Errhandler 40 TYPE :: MPI_Group 41 SEQUENCE 42 INTEGER :: MPI_VAL 43 END TYPE MPI_Group 44 TYPE :: MPI_Datatype 45 SEQUENCE 46 INTEGER :: MPI_VAL 47 END TYPE MPI_Datatype 48 TYPE :: MPI_Op 49 SEQUENCE 50 INTEGER :: MPI_VAL 51 END TYPE MPI_Op 52 INTERFACE OPERATOR(.EQ.) 53 MODULE PROCEDURE infoeq 54 MODULE PROCEDURE requesteq 55 MODULE PROCEDURE commeq 56 MODULE PROCEDURE wineq 57 MODULE PROCEDURE fileeq 58 MODULE PROCEDURE messageeq 59 MODULE PROCEDURE errhandlereq 60 MODULE PROCEDURE groupeq 61 MODULE PROCEDURE datatypeeq 62 MODULE PROCEDURE opeq 63 END INTERFACE 64 INTERFACE OPERATOR(.NE.) 65 MODULE PROCEDURE infoneq 66 MODULE PROCEDURE requestneq 67 MODULE PROCEDURE commneq 68 MODULE PROCEDURE winneq 69 MODULE PROCEDURE fileneq 70 MODULE PROCEDURE messageneq 71 MODULE PROCEDURE errhandlerneq 72 MODULE PROCEDURE groupneq 73 MODULE PROCEDURE datatypeneq 74 MODULE PROCEDURE opneq 75 END INTERFACE 76 CONTAINS 77 LOGICAL FUNCTION infoeq(lhs,rhs) 78 TYPE(MPI_Info), INTENT(IN) :: lhs, rhs 79 infoeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 80 END FUNCTION infoeq 81 LOGICAL FUNCTION infoneq(lhs,rhs) 82 TYPE(MPI_Info), INTENT(IN) :: lhs, rhs 83 infoneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 84 END FUNCTION infoneq 85 LOGICAL FUNCTION requesteq(lhs,rhs) 86 TYPE(MPI_Request), INTENT(IN) :: lhs, rhs 87 requesteq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 88 END FUNCTION requesteq 89 LOGICAL FUNCTION requestneq(lhs,rhs) 90 TYPE(MPI_Request), INTENT(IN) :: lhs, rhs 91 requestneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 92 END FUNCTION requestneq 93 LOGICAL FUNCTION commeq(lhs,rhs) 94 TYPE(MPI_Comm), INTENT(IN) :: lhs, rhs 95 commeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 96 END FUNCTION commeq 97 LOGICAL FUNCTION commneq(lhs,rhs) 98 TYPE(MPI_Comm), INTENT(IN) :: lhs, rhs 99 commneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 100 END FUNCTION commneq 101 LOGICAL FUNCTION wineq(lhs,rhs) 102 TYPE(MPI_Win), INTENT(IN) :: lhs, rhs 103 wineq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 104 END FUNCTION wineq 105 LOGICAL FUNCTION winneq(lhs,rhs) 106 TYPE(MPI_Win), INTENT(IN) :: lhs, rhs 107 winneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 108 END FUNCTION winneq 109 LOGICAL FUNCTION fileeq(lhs,rhs) 110 TYPE(MPI_File), INTENT(IN) :: lhs, rhs 111 fileeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 112 END FUNCTION fileeq 113 LOGICAL FUNCTION fileneq(lhs,rhs) 114 TYPE(MPI_File), INTENT(IN) :: lhs, rhs 115 fileneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 116 END FUNCTION fileneq 117 LOGICAL FUNCTION messageeq(lhs,rhs) 118 TYPE(MPI_Message), INTENT(IN) :: lhs, rhs 119 messageeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 120 END FUNCTION messageeq 121 LOGICAL FUNCTION messageneq(lhs,rhs) 122 TYPE(MPI_Message), INTENT(IN) :: lhs, rhs 123 messageneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 124 END FUNCTION messageneq 125 LOGICAL FUNCTION errhandlereq(lhs,rhs) 126 TYPE(MPI_Errhandler), INTENT(IN) :: lhs, rhs 127 errhandlereq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 128 END FUNCTION errhandlereq 129 LOGICAL FUNCTION errhandlerneq(lhs,rhs) 130 TYPE(MPI_Errhandler), INTENT(IN) :: lhs, rhs 131 errhandlerneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 132 END FUNCTION errhandlerneq 133 LOGICAL FUNCTION groupeq(lhs,rhs) 134 TYPE(MPI_Group), INTENT(IN) :: lhs, rhs 135 groupeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 136 END FUNCTION groupeq 137 LOGICAL FUNCTION groupneq(lhs,rhs) 138 TYPE(MPI_Group), INTENT(IN) :: lhs, rhs 139 groupneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 140 END FUNCTION groupneq 141 LOGICAL FUNCTION datatypeeq(lhs,rhs) 142 TYPE(MPI_Datatype), INTENT(IN) :: lhs, rhs 143 datatypeeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 144 END FUNCTION datatypeeq 145 LOGICAL FUNCTION datatypeneq(lhs,rhs) 146 TYPE(MPI_Datatype), INTENT(IN) :: lhs, rhs 147 datatypeneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 148 END FUNCTION datatypeneq 149 LOGICAL FUNCTION opeq(lhs,rhs) 150 TYPE(MPI_Op), INTENT(IN) :: lhs, rhs 151 opeq = lhs%MPI_VAL .EQ. rhs%MPI_VAL 152 END FUNCTION opeq 153 LOGICAL FUNCTION opneq(lhs,rhs) 154 TYPE(MPI_Op), INTENT(IN) :: lhs, rhs 155 opneq = lhs%MPI_VAL .NE. rhs%MPI_VAL 156 END FUNCTION opneq 157 END MODULE MPI_CONSTANTS 158