11 type,
bind(c) :: MPI_Status
17 type,
bind(c) :: MPI_Comm
21 type,
bind(c) :: MPI_Datatype
25 type,
bind(c) :: MPI_Errhandler
27 end type mpi_errhandler
29 type,
bind(c) :: MPI_File
33 type,
bind(c) :: MPI_Group
37 type,
bind(c) :: MPI_Info
41 type,
bind(c) :: MPI_Message
45 type,
bind(c) :: MPI_Op
49 type,
bind(c) :: MPI_Request
53 type,
bind(c) :: MPI_Session
57 type,
bind(c) :: MPI_Win
61 type(MPI_Comm),
parameter :: MPI_COMM_NULL = mpi_comm(0)
62 type(MPI_Datatype),
parameter :: MPI_DATATYPE_NULL = mpi_datatype(0)
63 type(MPI_Errhandler),
parameter :: MPI_ERRHANDLER_NULL = mpi_errhandler(0)
64 type(MPI_File),
parameter :: MPI_FILE_NULL = mpi_file(0)
65 type(MPI_Group),
parameter :: MPI_GROUP_NULL = mpi_group(0)
66 type(MPI_Info),
parameter :: MPI_INFO_NULL = mpi_info(0)
67 type(MPI_Message),
parameter :: MPI_MESSAGE_NULL = mpi_message(0)
68 type(MPI_Op),
parameter :: MPI_OP_NULL = mpi_op(0)
69 type(MPI_Request),
parameter :: MPI_REQUEST_NULL = mpi_request(0)
70 type(MPI_Win),
parameter :: MPI_WIN_NULL = mpi_win(0)
72 type(MPI_Datatype),
parameter :: MPI_INTEGER = mpi_datatype(0)
73 type(MPI_Datatype),
parameter :: MPI_INTEGER8 = mpi_datatype(0)
74 type(MPI_Datatype),
parameter :: MPI_DOUBLE_PRECISION = mpi_datatype(0)
75 type(MPI_Datatype),
parameter :: MPI_DOUBLE_COMPLEX = mpi_datatype(0)
76 type(MPI_Datatype),
parameter :: MPI_2DOUBLE_PRECISION = mpi_datatype(0)
77 type(MPI_Datatype),
parameter :: MPI_CHARACTER = mpi_datatype(0)
78 type(MPI_Datatype),
parameter :: MPI_LOGICAL = mpi_datatype(0)
80 type(MPI_Op),
parameter :: MPI_SUM = mpi_op(0)
81 type(MPI_Op),
parameter :: MPI_MINLOC = mpi_op(0)
82 type(MPI_Op),
parameter :: MPI_MAXLOC = mpi_op(0)
83 type(MPI_Op),
parameter :: MPI_LOR = mpi_op(0)
84 type(MPI_Op),
parameter :: MPI_LAND = mpi_op(0)
85 type(MPI_Op),
parameter :: MPI_MAX = mpi_op(0)
86 type(MPI_Op),
parameter :: MPI_MIN = mpi_op(0)
87 type(MPI_Op),
parameter :: MPI_IN_PLACE = mpi_op(0)
89 interface operator (.EQ.)
90 module procedure oct_mpi_comm_op_eq
91 module procedure oct_mpi_datatype_op_eq
92 module procedure oct_mpi_errhandler_op_eq
93 module procedure oct_mpi_file_op_eq
94 module procedure oct_mpi_group_op_eq
95 module procedure oct_mpi_info_op_eq
96 module procedure oct_mpi_message_op_eq
97 module procedure oct_mpi_op_op_eq
98 module procedure oct_mpi_request_op_eq
99 module procedure oct_mpi_win_op_eq
100 end interface operator (.EQ.)
102 interface operator (.NE.)
103 module procedure oct_mpi_comm_op_ne
104 module procedure oct_mpi_datatype_op_ne
105 module procedure oct_mpi_errhandler_op_ne
106 module procedure oct_mpi_file_op_ne
107 module procedure oct_mpi_group_op_ne
108 module procedure oct_mpi_info_op_ne
109 module procedure oct_mpi_message_op_ne
110 module procedure oct_mpi_op_op_ne
111 module procedure oct_mpi_request_op_ne
112 module procedure oct_mpi_win_op_ne
113 end interface operator (.NE.)
119 logical function oct_mpi_comm_op_eq(a, b)
120 type(MPI_Comm),
intent(in) :: a, b
121 oct_mpi_comm_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
122 end function oct_mpi_comm_op_eq
124 logical function oct_mpi_datatype_op_eq(a, b)
125 type(MPI_Datatype),
intent(in) :: a, b
126 oct_mpi_datatype_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
127 end function oct_mpi_datatype_op_eq
129 logical function oct_mpi_errhandler_op_eq(a, b)
130 type(MPI_Errhandler),
intent(in) :: a, b
131 oct_mpi_errhandler_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
132 end function oct_mpi_errhandler_op_eq
134 logical function oct_mpi_file_op_eq(a, b)
135 type(MPI_File),
intent(in) :: a, b
136 oct_mpi_file_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
137 end function oct_mpi_file_op_eq
139 logical function oct_mpi_group_op_eq(a, b)
140 type(MPI_Group),
intent(in) :: a, b
141 oct_mpi_group_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
142 end function oct_mpi_group_op_eq
144 logical function oct_mpi_info_op_eq(a, b)
145 type(MPI_Info),
intent(in) :: a, b
146 oct_mpi_info_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
147 end function oct_mpi_info_op_eq
149 logical function oct_mpi_message_op_eq(a, b)
150 type(MPI_Message),
intent(in) :: a, b
151 oct_mpi_message_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
152 end function oct_mpi_message_op_eq
154 logical function oct_mpi_op_op_eq(a, b)
155 type(MPI_Op),
intent(in) :: a, b
156 oct_mpi_op_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
157 end function oct_mpi_op_op_eq
159 logical function oct_mpi_request_op_eq(a, b)
160 type(MPI_Request),
intent(in) :: a, b
161 oct_mpi_request_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
162 end function oct_mpi_request_op_eq
164 logical function oct_mpi_win_op_eq(a, b)
165 type(MPI_Win),
intent(in) :: a, b
166 oct_mpi_win_op_eq = (a%MPI_VAL .EQ. b%MPI_VAL)
167 end function oct_mpi_win_op_eq
171 logical function oct_mpi_comm_op_ne(a, b)
172 type(MPI_Comm),
intent(in) :: a, b
173 oct_mpi_comm_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
174 end function oct_mpi_comm_op_ne
176 logical function oct_mpi_datatype_op_ne(a, b)
177 type(MPI_Datatype),
intent(in) :: a, b
178 oct_mpi_datatype_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
179 end function oct_mpi_datatype_op_ne
181 logical function oct_mpi_errhandler_op_ne(a, b)
182 type(MPI_Errhandler),
intent(in) :: a, b
183 oct_mpi_errhandler_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
184 end function oct_mpi_errhandler_op_ne
186 logical function oct_mpi_file_op_ne(a, b)
187 type(MPI_File),
intent(in) :: a, b
188 oct_mpi_file_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
189 end function oct_mpi_file_op_ne
191 logical function oct_mpi_group_op_ne(a, b)
192 type(MPI_Group),
intent(in) :: a, b
193 oct_mpi_group_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
194 end function oct_mpi_group_op_ne
196 logical function oct_mpi_info_op_ne(a, b)
197 type(MPI_Info),
intent(in) :: a, b
198 oct_mpi_info_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
199 end function oct_mpi_info_op_ne
201 logical function oct_mpi_message_op_ne(a, b)
202 type(MPI_Message),
intent(in) :: a, b
203 oct_mpi_message_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
204 end function oct_mpi_message_op_ne
206 logical function oct_mpi_op_op_ne(a, b)
207 type(MPI_Op),
intent(in) :: a, b
208 oct_mpi_op_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
209 end function oct_mpi_op_op_ne
211 logical function oct_mpi_request_op_ne(a, b)
212 type(MPI_Request),
intent(in) :: a, b
213 oct_mpi_request_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
214 end function oct_mpi_request_op_ne
216 logical function oct_mpi_win_op_ne(a, b)
217 type(MPI_Win),
intent(in) :: a, b
218 oct_mpi_win_op_ne = (a%MPI_VAL .NE. b%MPI_VAL)
219 end function oct_mpi_win_op_ne