1! -*- f90 -*-
2!
3! Copyright (c) 2009-2015 Cisco Systems, Inc.  All rights reserved.
4! Copyright (c) 2009-2013 Los Alamos National Security, LLC.
5!                         All rights reserved.
6! Copyright (c) 2012      The University of Tennessee and The University
7!                         of Tennessee Research Foundation.  All rights
8!                         reserved.
9! Copyright (c) 2012      Inria.  All rights reserved.
10! Copyright (c) 2015-2017 Research Organization for Information Science
11!                         and Technology (RIST). All rights reserved.
12! Copyright (c) 2017      FUJITSU LIMITED.  All rights reserved.
13! $COPYRIGHT$
14!
15! This file provides the interface specifications for the MPI Fortran
16! API bindings.  It effectively maps between public names ("MPI_Init")
17! and the name for tools ("MPI_Init_f08") and the back-end implementation
18! name (e.g., "MPI_Init_f08").
19
20#include "ompi/mpi/fortran/configure-fortran-output.h"
21
22module pmpi_f08_interfaces
23
24interface  PMPI_Bsend
25subroutine PMPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror)
26   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
27   implicit none
28   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
29   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
30   !$PRAGMA IGNORE_TKR buf
31   !DIR$ IGNORE_TKR buf
32   !IBM* IGNORE_TKR buf
33   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
34   INTEGER, INTENT(IN) :: count, dest, tag
35   TYPE(MPI_Datatype), INTENT(IN) :: datatype
36   TYPE(MPI_Comm), INTENT(IN) :: comm
37   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
38end subroutine PMPI_Bsend_f08
39end interface  PMPI_Bsend
40
41interface  PMPI_Bsend_init
42subroutine PMPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror)
43   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
44   implicit none
45   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
46   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
47   !$PRAGMA IGNORE_TKR buf
48   !DIR$ IGNORE_TKR buf
49   !IBM* IGNORE_TKR buf
50   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
51   INTEGER, INTENT(IN) :: count, dest, tag
52   TYPE(MPI_Datatype), INTENT(IN) :: datatype
53   TYPE(MPI_Comm), INTENT(IN) :: comm
54   TYPE(MPI_Request), INTENT(OUT) :: request
55   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
56end subroutine PMPI_Bsend_init_f08
57end interface  PMPI_Bsend_init
58
59interface  PMPI_Buffer_attach
60subroutine PMPI_Buffer_attach_f08(buffer,size,ierror)
61   implicit none
62   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer
63   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer
64   !$PRAGMA IGNORE_TKR buffer
65   !DIR$ IGNORE_TKR buffer
66   !IBM* IGNORE_TKR buffer
67   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer
68   INTEGER, INTENT(IN) :: size
69   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
70end subroutine PMPI_Buffer_attach_f08
71end interface  PMPI_Buffer_attach
72
73interface  PMPI_Buffer_detach
74subroutine PMPI_Buffer_detach_f08(buffer_addr,size,ierror)
75   USE, INTRINSIC ::  ISO_C_BINDING, ONLY : C_PTR
76   implicit none
77   TYPE(C_PTR), INTENT(OUT) ::  buffer_addr
78   INTEGER, INTENT(OUT) :: size
79   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
80end subroutine PMPI_Buffer_detach_f08
81end interface  PMPI_Buffer_detach
82
83interface  PMPI_Cancel
84subroutine PMPI_Cancel_f08(request,ierror)
85   use :: mpi_f08_types, only : MPI_Request
86   implicit none
87   TYPE(MPI_Request), INTENT(IN) :: request
88   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
89end subroutine PMPI_Cancel_f08
90end interface  PMPI_Cancel
91
92interface  PMPI_Get_count
93subroutine PMPI_Get_count_f08(status,datatype,count,ierror)
94   use :: mpi_f08_types, only : MPI_Status, MPI_Datatype
95   implicit none
96   TYPE(MPI_Status), INTENT(IN) :: status
97   TYPE(MPI_Datatype), INTENT(IN) :: datatype
98   INTEGER, INTENT(OUT) :: count
99   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
100end subroutine PMPI_Get_count_f08
101end interface  PMPI_Get_count
102
103interface  PMPI_Ibsend
104subroutine PMPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror)
105   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
106   implicit none
107   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
108   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
109   !$PRAGMA IGNORE_TKR buf
110   !DIR$ IGNORE_TKR buf
111   !IBM* IGNORE_TKR buf
112   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
113   INTEGER, INTENT(IN) :: count, dest, tag
114   TYPE(MPI_Datatype), INTENT(IN) :: datatype
115   TYPE(MPI_Comm), INTENT(IN) :: comm
116   TYPE(MPI_Request), INTENT(OUT) :: request
117   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
118end subroutine PMPI_Ibsend_f08
119end interface  PMPI_Ibsend
120
121interface  PMPI_Iprobe
122subroutine PMPI_Iprobe_f08(source,tag,comm,flag,status,ierror)
123   use :: mpi_f08_types, only : MPI_Comm, MPI_Status
124   implicit none
125   INTEGER, INTENT(IN) :: source, tag
126   TYPE(MPI_Comm), INTENT(IN) :: comm
127   LOGICAL, INTENT(OUT) :: flag
128   TYPE(MPI_Status), INTENT(OUT) :: status
129   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
130end subroutine PMPI_Iprobe_f08
131end interface  PMPI_Iprobe
132
133interface  PMPI_Irecv
134subroutine PMPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror)
135   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
136   implicit none
137   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
138   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
139   !$PRAGMA IGNORE_TKR buf
140   !DIR$ IGNORE_TKR buf
141   !IBM* IGNORE_TKR buf
142   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
143   INTEGER, INTENT(IN) :: count, source, tag
144   TYPE(MPI_Datatype), INTENT(IN) :: datatype
145   TYPE(MPI_Comm), INTENT(IN) :: comm
146   TYPE(MPI_Request), INTENT(OUT) :: request
147   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
148end subroutine PMPI_Irecv_f08
149end interface  PMPI_Irecv
150
151interface  PMPI_Irsend
152subroutine PMPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror)
153   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
154   implicit none
155   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
156   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
157   !$PRAGMA IGNORE_TKR buf
158   !DIR$ IGNORE_TKR buf
159   !IBM* IGNORE_TKR buf
160   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
161   INTEGER, INTENT(IN) :: count, dest, tag
162   TYPE(MPI_Datatype), INTENT(IN) :: datatype
163   TYPE(MPI_Comm), INTENT(IN) :: comm
164   TYPE(MPI_Request), INTENT(OUT) :: request
165   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
166end subroutine PMPI_Irsend_f08
167end interface  PMPI_Irsend
168
169interface  PMPI_Isend
170subroutine PMPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror)
171   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
172   implicit none
173   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
174   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
175   !$PRAGMA IGNORE_TKR buf
176   !DIR$ IGNORE_TKR buf
177   !IBM* IGNORE_TKR buf
178   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
179   INTEGER, INTENT(IN) :: count, dest, tag
180   TYPE(MPI_Datatype), INTENT(IN) :: datatype
181   TYPE(MPI_Comm), INTENT(IN) :: comm
182   TYPE(MPI_Request), INTENT(OUT) :: request
183   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
184end subroutine PMPI_Isend_f08
185end interface  PMPI_Isend
186
187interface  PMPI_Issend
188subroutine PMPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror)
189   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
190   implicit none
191   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
192   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
193   !$PRAGMA IGNORE_TKR buf
194   !DIR$ IGNORE_TKR buf
195   !IBM* IGNORE_TKR buf
196   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
197   INTEGER, INTENT(IN) :: count, dest, tag
198   TYPE(MPI_Datatype), INTENT(IN) :: datatype
199   TYPE(MPI_Comm), INTENT(IN) :: comm
200   TYPE(MPI_Request), INTENT(OUT) :: request
201   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
202end subroutine PMPI_Issend_f08
203end interface  PMPI_Issend
204
205interface  PMPI_Probe
206subroutine PMPI_Probe_f08(source,tag,comm,status,ierror)
207   use :: mpi_f08_types, only : MPI_Comm, MPI_Status
208   implicit none
209   INTEGER, INTENT(IN) :: source, tag
210   TYPE(MPI_Comm), INTENT(IN) :: comm
211   TYPE(MPI_Status), INTENT(OUT) :: status
212   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
213end subroutine PMPI_Probe_f08
214end interface  PMPI_Probe
215
216interface  PMPI_Recv
217subroutine PMPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror)
218   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status
219   implicit none
220   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
221   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
222   !$PRAGMA IGNORE_TKR buf
223   !DIR$ IGNORE_TKR buf
224   !IBM* IGNORE_TKR buf
225   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
226   INTEGER, INTENT(IN) :: count, source, tag
227   TYPE(MPI_Datatype), INTENT(IN) :: datatype
228   TYPE(MPI_Comm), INTENT(IN) :: comm
229   TYPE(MPI_Status) :: status
230   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
231end subroutine PMPI_Recv_f08
232end interface  PMPI_Recv
233
234interface  PMPI_Recv_init
235subroutine PMPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror)
236   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
237   implicit none
238   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
239   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
240   !$PRAGMA IGNORE_TKR buf
241   !DIR$ IGNORE_TKR buf
242   !IBM* IGNORE_TKR buf
243   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
244   INTEGER, INTENT(IN) :: count, source, tag
245   TYPE(MPI_Datatype), INTENT(IN) :: datatype
246   TYPE(MPI_Comm), INTENT(IN) :: comm
247   TYPE(MPI_Request), INTENT(OUT) :: request
248   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
249end subroutine PMPI_Recv_init_f08
250end interface  PMPI_Recv_init
251
252interface  PMPI_Request_free
253subroutine PMPI_Request_free_f08(request,ierror)
254   use :: mpi_f08_types, only : MPI_Request
255   implicit none
256   TYPE(MPI_Request), INTENT(INOUT) :: request
257   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
258end subroutine PMPI_Request_free_f08
259end interface  PMPI_Request_free
260
261interface  PMPI_Request_get_status
262subroutine PMPI_Request_get_status_f08(request,flag,status,ierror)
263   use :: mpi_f08_types, only : MPI_Request, MPI_Status
264   implicit none
265   TYPE(MPI_Request), INTENT(IN) :: request
266   LOGICAL, INTENT(OUT) :: flag
267   TYPE(MPI_Status) :: status
268   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
269end subroutine PMPI_Request_get_status_f08
270end interface  PMPI_Request_get_status
271
272interface  PMPI_Rsend
273subroutine PMPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror)
274   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
275   implicit none
276   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
277   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
278   !$PRAGMA IGNORE_TKR buf
279   !DIR$ IGNORE_TKR buf
280   !IBM* IGNORE_TKR buf
281   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
282   INTEGER, INTENT(IN) :: count, dest, tag
283   TYPE(MPI_Datatype), INTENT(IN) :: datatype
284   TYPE(MPI_Comm), INTENT(IN) :: comm
285   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
286end subroutine PMPI_Rsend_f08
287end interface  PMPI_Rsend
288
289interface  PMPI_Rsend_init
290subroutine PMPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror)
291   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
292   implicit none
293   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
294   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
295   !$PRAGMA IGNORE_TKR buf
296   !DIR$ IGNORE_TKR buf
297   !IBM* IGNORE_TKR buf
298   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
299   INTEGER, INTENT(IN) :: count, dest, tag
300   TYPE(MPI_Datatype), INTENT(IN) :: datatype
301   TYPE(MPI_Comm), INTENT(IN) :: comm
302   TYPE(MPI_Request), INTENT(OUT) :: request
303   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
304end subroutine PMPI_Rsend_init_f08
305end interface  PMPI_Rsend_init
306
307interface  PMPI_Send
308subroutine PMPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror)
309   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
310   implicit none
311   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
312   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
313   !$PRAGMA IGNORE_TKR buf
314   !DIR$ IGNORE_TKR buf
315   !IBM* IGNORE_TKR buf
316   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
317   INTEGER, INTENT(IN) :: count, dest, tag
318   TYPE(MPI_Datatype), INTENT(IN) :: datatype
319   TYPE(MPI_Comm), INTENT(IN) :: comm
320   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
321end subroutine PMPI_Send_f08
322end interface  PMPI_Send
323
324interface  PMPI_Sendrecv
325subroutine PMPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, &
326                            recvcount,recvtype,source,recvtag,comm,status,ierror)
327   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status
328   implicit none
329   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
330   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
331   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
332   !DIR$ IGNORE_TKR sendbuf, recvbuf
333   !IBM* IGNORE_TKR sendbuf, recvbuf
334   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
335   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
336   INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag
337   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
338   TYPE(MPI_Comm), INTENT(IN) :: comm
339   TYPE(MPI_Status) :: status
340   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
341end subroutine PMPI_Sendrecv_f08
342end interface  PMPI_Sendrecv
343
344interface  PMPI_Sendrecv_replace
345subroutine PMPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvtag, &
346                                    comm,status,ierror)
347   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status
348   implicit none
349   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
350   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
351   !$PRAGMA IGNORE_TKR buf
352   !DIR$ IGNORE_TKR buf
353   !IBM* IGNORE_TKR buf
354   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
355   INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag
356   TYPE(MPI_Datatype), INTENT(IN) :: datatype
357   TYPE(MPI_Comm), INTENT(IN) :: comm
358   TYPE(MPI_Status) :: status
359   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
360end subroutine PMPI_Sendrecv_replace_f08
361end interface  PMPI_Sendrecv_replace
362
363interface  PMPI_Send_init
364subroutine PMPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror)
365   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
366   implicit none
367   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
368   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
369   !$PRAGMA IGNORE_TKR buf
370   !DIR$ IGNORE_TKR buf
371   !IBM* IGNORE_TKR buf
372   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
373   INTEGER, INTENT(IN) :: count, dest, tag
374   TYPE(MPI_Datatype), INTENT(IN) :: datatype
375   TYPE(MPI_Comm), INTENT(IN) :: comm
376   TYPE(MPI_Request), INTENT(OUT) :: request
377   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
378end subroutine PMPI_Send_init_f08
379end interface  PMPI_Send_init
380
381interface  PMPI_Ssend
382subroutine PMPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror)
383   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
384   implicit none
385   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
386   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
387   !$PRAGMA IGNORE_TKR buf
388   !DIR$ IGNORE_TKR buf
389   !IBM* IGNORE_TKR buf
390   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
391   INTEGER, INTENT(IN) :: count, dest, tag
392   TYPE(MPI_Datatype), INTENT(IN) :: datatype
393   TYPE(MPI_Comm), INTENT(IN) :: comm
394   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
395end subroutine PMPI_Ssend_f08
396end interface  PMPI_Ssend
397
398interface  PMPI_Ssend_init
399subroutine PMPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror)
400   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
401   implicit none
402   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
403   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
404   !$PRAGMA IGNORE_TKR buf
405   !DIR$ IGNORE_TKR buf
406   !IBM* IGNORE_TKR buf
407   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
408   INTEGER, INTENT(IN) :: count, dest, tag
409   TYPE(MPI_Datatype), INTENT(IN) :: datatype
410   TYPE(MPI_Comm), INTENT(IN) :: comm
411   TYPE(MPI_Request), INTENT(OUT) :: request
412   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
413end subroutine PMPI_Ssend_init_f08
414end interface  PMPI_Ssend_init
415
416interface  PMPI_Start
417subroutine PMPI_Start_f08(request,ierror)
418   use :: mpi_f08_types, only : MPI_Request
419   implicit none
420   TYPE(MPI_Request), INTENT(INOUT) :: request
421   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
422end subroutine PMPI_Start_f08
423end interface  PMPI_Start
424
425interface  PMPI_Startall
426subroutine PMPI_Startall_f08(count,array_of_requests,ierror)
427   use :: mpi_f08_types, only : MPI_Request
428   implicit none
429   INTEGER, INTENT(IN) :: count
430   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
431   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
432end subroutine PMPI_Startall_f08
433end interface  PMPI_Startall
434
435interface  PMPI_Test
436subroutine PMPI_Test_f08(request,flag,status,ierror)
437   use :: mpi_f08_types, only : MPI_Request, MPI_Status
438   implicit none
439   TYPE(MPI_Request), INTENT(INOUT) :: request
440   LOGICAL, INTENT(OUT) :: flag
441   TYPE(MPI_Status) :: status
442   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
443end subroutine PMPI_Test_f08
444end interface  PMPI_Test
445
446interface  PMPI_Testall
447subroutine PMPI_Testall_f08(count,array_of_requests,flag,array_of_statuses,ierror)
448   use :: mpi_f08_types, only : MPI_Request, MPI_Status
449   implicit none
450   INTEGER, INTENT(IN) :: count
451   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
452   LOGICAL, INTENT(OUT) :: flag
453   TYPE(MPI_Status) :: array_of_statuses(*)
454   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
455end subroutine PMPI_Testall_f08
456end interface  PMPI_Testall
457
458interface  PMPI_Testany
459subroutine PMPI_Testany_f08(count,array_of_requests,index,flag,status,ierror)
460   use :: mpi_f08_types, only : MPI_Request, MPI_Status
461   implicit none
462   INTEGER, INTENT(IN) :: count
463   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
464   INTEGER, INTENT(OUT) :: index
465   LOGICAL, INTENT(OUT) :: flag
466   TYPE(MPI_Status) :: status
467   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
468end subroutine PMPI_Testany_f08
469end interface  PMPI_Testany
470
471interface  PMPI_Testsome
472subroutine PMPI_Testsome_f08(incount,array_of_requests,outcount, &
473                        array_of_indices,array_of_statuses,ierror)
474   use :: mpi_f08_types, only : MPI_Request, MPI_Status
475   implicit none
476   INTEGER, INTENT(IN) :: incount
477   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(incount)
478   INTEGER, INTENT(OUT) :: outcount, array_of_indices(*)
479   TYPE(MPI_Status) :: array_of_statuses(*)
480   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
481end subroutine PMPI_Testsome_f08
482end interface  PMPI_Testsome
483
484interface  PMPI_Test_cancelled
485subroutine PMPI_Test_cancelled_f08(status,flag,ierror)
486   use :: mpi_f08_types, only : MPI_Status
487   implicit none
488   TYPE(MPI_Status), INTENT(IN) :: status
489   LOGICAL, INTENT(OUT) :: flag
490   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
491end subroutine PMPI_Test_cancelled_f08
492end interface  PMPI_Test_cancelled
493
494interface  PMPI_Wait
495subroutine PMPI_Wait_f08(request,status,ierror)
496   use :: mpi_f08_types, only : MPI_Request, MPI_Status
497   implicit none
498   TYPE(MPI_Request), INTENT(INOUT) :: request
499   TYPE(MPI_Status) :: status
500   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
501end subroutine PMPI_Wait_f08
502end interface  PMPI_Wait
503
504interface  PMPI_Waitall
505subroutine PMPI_Waitall_f08(count,array_of_requests,array_of_statuses,ierror)
506   use :: mpi_f08_types, only : MPI_Request, MPI_Status
507   implicit none
508   INTEGER, INTENT(IN) :: count
509   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
510   TYPE(MPI_Status) :: array_of_statuses(*)
511   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
512end subroutine PMPI_Waitall_f08
513end interface  PMPI_Waitall
514
515interface  PMPI_Waitany
516subroutine PMPI_Waitany_f08(count,array_of_requests,index,status,ierror)
517   use :: mpi_f08_types, only : MPI_Request, MPI_Status
518   implicit none
519   INTEGER, INTENT(IN) :: count
520   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
521   INTEGER, INTENT(OUT) :: index
522   TYPE(MPI_Status) :: status
523   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
524end subroutine PMPI_Waitany_f08
525end interface  PMPI_Waitany
526
527interface  PMPI_Waitsome
528subroutine PMPI_Waitsome_f08(incount,array_of_requests,outcount, &
529                        array_of_indices,array_of_statuses,ierror)
530   use :: mpi_f08_types, only : MPI_Request, MPI_Status
531   implicit none
532   INTEGER, INTENT(IN) :: incount
533   TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(incount)
534   INTEGER, INTENT(OUT) :: outcount, array_of_indices(*)
535   TYPE(MPI_Status) :: array_of_statuses(*)
536   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
537end subroutine PMPI_Waitsome_f08
538end interface  PMPI_Waitsome
539
540interface  PMPI_Get_address
541subroutine PMPI_Get_address_f08(location,address,ierror)
542   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
543   implicit none
544   !DEC$ ATTRIBUTES NO_ARG_CHECK :: location
545   !GCC$ ATTRIBUTES NO_ARG_CHECK :: location
546   !$PRAGMA IGNORE_TKR location
547   !DIR$ IGNORE_TKR location
548   !IBM* IGNORE_TKR location
549   OMPI_FORTRAN_IGNORE_TKR_TYPE :: location
550   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address
551   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
552end subroutine PMPI_Get_address_f08
553end interface  PMPI_Get_address
554
555interface  PMPI_Get_elements
556subroutine PMPI_Get_elements_f08(status,datatype,count,ierror)
557   use :: mpi_f08_types, only : MPI_Status, MPI_Datatype
558   implicit none
559   TYPE(MPI_Status), INTENT(IN) :: status
560   TYPE(MPI_Datatype), INTENT(IN) :: datatype
561   INTEGER, INTENT(OUT) :: count
562   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
563end subroutine PMPI_Get_elements_f08
564end interface  PMPI_Get_elements
565
566interface  PMPI_Get_elements_x
567subroutine PMPI_Get_elements_x_f08(status,datatype,count,ierror)
568   use :: mpi_f08_types, only : MPI_Status, MPI_Datatype, MPI_COUNT_KIND
569   implicit none
570   TYPE(MPI_Status), INTENT(IN) :: status
571   TYPE(MPI_Datatype), INTENT(IN) :: datatype
572   INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: count
573   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
574end subroutine PMPI_Get_elements_x_f08
575end interface  PMPI_Get_elements_x
576
577interface  PMPI_Pack
578subroutine PMPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ierror)
579   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
580   implicit none
581   !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
582   !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
583   !$PRAGMA IGNORE_TKR inbuf, outbuf
584   !DIR$ IGNORE_TKR inbuf, outbuf
585   !IBM* IGNORE_TKR inbuf, outbuf
586   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
587   OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
588   INTEGER, INTENT(IN) :: incount, outsize
589   TYPE(MPI_Datatype), INTENT(IN) :: datatype
590   INTEGER, INTENT(INOUT) :: position
591   TYPE(MPI_Comm), INTENT(IN) :: comm
592   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
593end subroutine PMPI_Pack_f08
594end interface  PMPI_Pack
595
596interface  PMPI_Pack_external
597subroutine PMPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, &
598                                 position,ierror)
599   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
600   implicit none
601   CHARACTER(LEN=*), INTENT(IN) :: datarep
602   !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
603   !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
604   !$PRAGMA IGNORE_TKR inbuf, outbuf
605   !DIR$ IGNORE_TKR inbuf, outbuf
606   !IBM* IGNORE_TKR inbuf, outbuf
607   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
608   OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
609   INTEGER, INTENT(IN) :: incount
610   TYPE(MPI_Datatype), INTENT(IN) :: datatype
611   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize
612   INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position
613   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
614end subroutine PMPI_Pack_external_f08
615end interface  PMPI_Pack_external
616
617interface  PMPI_Pack_external_size
618subroutine PMPI_Pack_external_size_f08(datarep,incount,datatype,size,ierror &
619           )
620   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
621   implicit none
622   TYPE(MPI_Datatype), INTENT(IN) :: datatype
623   INTEGER, INTENT(IN) :: incount
624   CHARACTER(LEN=*), INTENT(IN) :: datarep
625   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: size
626   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
627end subroutine PMPI_Pack_external_size_f08
628end interface  PMPI_Pack_external_size
629
630interface  PMPI_Pack_size
631subroutine PMPI_Pack_size_f08(incount,datatype,comm,size,ierror)
632   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
633   implicit none
634   INTEGER, INTENT(IN) :: incount
635   TYPE(MPI_Datatype), INTENT(IN) :: datatype
636   TYPE(MPI_Comm), INTENT(IN) :: comm
637   INTEGER, INTENT(OUT) :: size
638   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
639end subroutine PMPI_Pack_size_f08
640end interface  PMPI_Pack_size
641
642interface  PMPI_Type_commit
643subroutine PMPI_Type_commit_f08(datatype,ierror)
644   use :: mpi_f08_types, only : MPI_Datatype
645   implicit none
646   TYPE(MPI_Datatype), INTENT(INOUT) :: datatype
647   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
648end subroutine PMPI_Type_commit_f08
649end interface  PMPI_Type_commit
650
651interface  PMPI_Type_contiguous
652subroutine PMPI_Type_contiguous_f08(count,oldtype,newtype,ierror)
653   use :: mpi_f08_types, only : MPI_Datatype
654   implicit none
655   INTEGER, INTENT(IN) :: count
656   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
657   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
658   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
659end subroutine PMPI_Type_contiguous_f08
660end interface  PMPI_Type_contiguous
661
662interface  PMPI_Type_create_darray
663subroutine PMPI_Type_create_darray_f08(size,rank,ndims,array_of_gsizes, &
664                    array_of_distribs,array_of_dargs,array_of_psizes,order, &
665                    oldtype,newtype,ierror)
666   use :: mpi_f08_types, only : MPI_Datatype
667   implicit none
668   INTEGER, INTENT(IN) :: size, rank, ndims, order
669   INTEGER, INTENT(IN) :: array_of_gsizes(ndims), array_of_distribs(ndims)
670   INTEGER, INTENT(IN) :: array_of_dargs(ndims), array_of_psizes(ndims)
671   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
672   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
673   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
674end subroutine PMPI_Type_create_darray_f08
675end interface  PMPI_Type_create_darray
676
677interface  PMPI_Type_create_hindexed
678subroutine PMPI_Type_create_hindexed_f08(count,array_of_blocklengths, &
679                                        array_of_displacements,oldtype,newtype,ierror)
680   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
681   implicit none
682   INTEGER, INTENT(IN) :: count
683   INTEGER, INTENT(IN) :: array_of_blocklengths(count)
684   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
685   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
686   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
687   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
688end subroutine PMPI_Type_create_hindexed_f08
689end interface  PMPI_Type_create_hindexed
690
691interface  PMPI_Type_create_hvector
692subroutine PMPI_Type_create_hvector_f08(count,blocklength,stride,oldtype,newtype,ierror)
693   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
694   implicit none
695   INTEGER, INTENT(IN) :: count, blocklength
696   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: stride
697   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
698   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
699   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
700end subroutine PMPI_Type_create_hvector_f08
701end interface  PMPI_Type_create_hvector
702
703interface  PMPI_Type_create_indexed_block
704subroutine PMPI_Type_create_indexed_block_f08(count,blocklength, &
705                           array_of_displacements,oldtype,newtype,ierror)
706   use :: mpi_f08_types, only : MPI_Datatype
707   implicit none
708   INTEGER, INTENT(IN) :: count, blocklength
709   INTEGER, INTENT(IN) :: array_of_displacements(count)
710   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
711   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
712   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
713end subroutine PMPI_Type_create_indexed_block_f08
714end interface  PMPI_Type_create_indexed_block
715
716interface  PMPI_Type_create_hindexed_block
717subroutine PMPI_Type_create_hindexed_block_f08(count,blocklength, &
718                           array_of_displacements,oldtype,newtype,ierror)
719   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
720   implicit none
721   INTEGER, INTENT(IN) :: count, blocklength
722   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
723   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
724   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
725   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
726end subroutine PMPI_Type_create_hindexed_block_f08
727end interface  PMPI_Type_create_hindexed_block
728
729interface  PMPI_Type_create_resized
730subroutine PMPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror)
731   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
732   implicit none
733   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: lb, extent
734   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
735   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
736   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
737end subroutine PMPI_Type_create_resized_f08
738end interface  PMPI_Type_create_resized
739
740interface  PMPI_Type_create_struct
741subroutine PMPI_Type_create_struct_f08(count,array_of_blocklengths, &
742                           array_of_displacements,array_of_types,newtype,ierror)
743   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
744   implicit none
745   INTEGER, INTENT(IN) :: count
746   INTEGER, INTENT(IN) :: array_of_blocklengths(count)
747   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
748   TYPE(MPI_Datatype), INTENT(IN) :: array_of_types(count)
749   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
750   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
751end subroutine PMPI_Type_create_struct_f08
752end interface  PMPI_Type_create_struct
753
754interface  PMPI_Type_create_subarray
755subroutine PMPI_Type_create_subarray_f08(ndims,array_of_sizes,array_of_subsizes, &
756                    array_of_starts,order,oldtype,newtype,ierror)
757   use :: mpi_f08_types, only : MPI_Datatype
758   implicit none
759   INTEGER, INTENT(IN) :: ndims, order
760   INTEGER, INTENT(IN) :: array_of_sizes(ndims), array_of_subsizes(ndims)
761   INTEGER, INTENT(IN) :: array_of_starts(ndims)
762   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
763   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
764   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
765end subroutine PMPI_Type_create_subarray_f08
766end interface  PMPI_Type_create_subarray
767
768interface  PMPI_Type_dup
769subroutine PMPI_Type_dup_f08(oldtype,newtype,ierror)
770   use :: mpi_f08_types, only : MPI_Datatype
771   implicit none
772   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
773   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
774   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
775end subroutine PMPI_Type_dup_f08
776end interface  PMPI_Type_dup
777
778interface  PMPI_Type_free
779subroutine PMPI_Type_free_f08(datatype,ierror)
780   use :: mpi_f08_types, only : MPI_Datatype
781   implicit none
782   TYPE(MPI_Datatype), INTENT(INOUT) :: datatype
783   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
784end subroutine PMPI_Type_free_f08
785end interface  PMPI_Type_free
786
787interface  PMPI_Type_get_contents
788subroutine PMPI_Type_get_contents_f08(datatype,max_integers,max_addresses,max_datatypes, &
789                                     array_of_integers,array_of_addresses,array_of_datatypes, &
790                                     ierror)
791   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
792   implicit none
793   TYPE(MPI_Datatype), INTENT(IN) :: datatype
794   INTEGER, INTENT(IN) :: max_integers, max_addresses, max_datatypes
795   INTEGER, INTENT(OUT) :: array_of_integers(max_integers)
796   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: array_of_addresses(max_addresses)
797   TYPE(MPI_Datatype), INTENT(OUT) :: array_of_datatypes(max_datatypes)
798   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
799end subroutine PMPI_Type_get_contents_f08
800end interface  PMPI_Type_get_contents
801
802interface  PMPI_Type_get_envelope
803subroutine PMPI_Type_get_envelope_f08(datatype,num_integers,num_addresses,num_datatypes, &
804                                     combiner,ierror)
805   use :: mpi_f08_types, only : MPI_Datatype
806   implicit none
807   TYPE(MPI_Datatype), INTENT(IN) :: datatype
808   INTEGER, INTENT(OUT) :: num_integers, num_addresses, num_datatypes, combiner
809   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
810end subroutine PMPI_Type_get_envelope_f08
811end interface  PMPI_Type_get_envelope
812
813interface  PMPI_Type_get_extent
814subroutine PMPI_Type_get_extent_f08(datatype,lb,extent,ierror)
815   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
816   implicit none
817   TYPE(MPI_Datatype), INTENT(IN) :: datatype
818   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: lb, extent
819   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
820end subroutine PMPI_Type_get_extent_f08
821end interface  PMPI_Type_get_extent
822
823interface  PMPI_Type_get_extent_x
824subroutine PMPI_Type_get_extent_x_f08(datatype,lb,extent,ierror)
825   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND, MPI_COUNT_KIND
826   implicit none
827   TYPE(MPI_Datatype), INTENT(IN) :: datatype
828   INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: lb, extent
829   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
830end subroutine PMPI_Type_get_extent_x_f08
831end interface  PMPI_Type_get_extent_x
832
833interface  PMPI_Type_get_true_extent
834subroutine PMPI_Type_get_true_extent_f08(datatype,true_lb,true_extent,ierror)
835   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
836   implicit none
837   TYPE(MPI_Datatype), INTENT(IN) :: datatype
838   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: true_lb, true_extent
839   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
840end subroutine PMPI_Type_get_true_extent_f08
841end interface  PMPI_Type_get_true_extent
842
843interface  PMPI_Type_get_true_extent_x
844subroutine PMPI_Type_get_true_extent_x_f08(datatype,true_lb,true_extent,ierror)
845   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND, MPI_COUNT_KIND
846   implicit none
847   TYPE(MPI_Datatype), INTENT(IN) :: datatype
848   INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: true_lb, true_extent
849   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
850end subroutine PMPI_Type_get_true_extent_x_f08
851end interface  PMPI_Type_get_true_extent_x
852
853interface  PMPI_Type_indexed
854subroutine PMPI_Type_indexed_f08(count,array_of_blocklengths, &
855                                array_of_displacements,oldtype,newtype,ierror)
856   use :: mpi_f08_types, only : MPI_Datatype
857   implicit none
858   INTEGER, INTENT(IN) :: count
859   INTEGER, INTENT(IN) :: array_of_blocklengths(count), array_of_displacements(count)
860   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
861   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
862   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
863end subroutine PMPI_Type_indexed_f08
864end interface  PMPI_Type_indexed
865
866interface  PMPI_Type_size
867subroutine PMPI_Type_size_f08(datatype,size,ierror)
868   use :: mpi_f08_types, only : MPI_Datatype
869   implicit none
870   TYPE(MPI_Datatype), INTENT(IN) :: datatype
871   INTEGER, INTENT(OUT) :: size
872   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
873end subroutine PMPI_Type_size_f08
874end interface  PMPI_Type_size
875
876interface  PMPI_Type_size_x
877subroutine PMPI_Type_size_x_f08(datatype,size,ierror)
878   use :: mpi_f08_types, only : MPI_Datatype, MPI_COUNT_KIND
879   implicit none
880   TYPE(MPI_Datatype), INTENT(IN) :: datatype
881   INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: size
882   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
883end subroutine PMPI_Type_size_x_f08
884end interface  PMPI_Type_size_x
885
886interface  PMPI_Type_vector
887subroutine PMPI_Type_vector_f08(count,blocklength,stride,oldtype,newtype,ierror)
888   use :: mpi_f08_types, only : MPI_Datatype
889   implicit none
890   INTEGER, INTENT(IN) :: count, blocklength, stride
891   TYPE(MPI_Datatype), INTENT(IN) :: oldtype
892   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
893   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
894end subroutine PMPI_Type_vector_f08
895end interface  PMPI_Type_vector
896
897interface  PMPI_Unpack
898subroutine PMPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm, &
899                          ierror)
900   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
901   implicit none
902   !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
903   !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
904   !$PRAGMA IGNORE_TKR inbuf, outbuf
905   !DIR$ IGNORE_TKR inbuf, outbuf
906   !IBM* IGNORE_TKR inbuf, outbuf
907   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
908   OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
909   INTEGER, INTENT(IN) :: insize, outcount
910   INTEGER, INTENT(INOUT) :: position
911   TYPE(MPI_Datatype), INTENT(IN) :: datatype
912   TYPE(MPI_Comm), INTENT(IN) :: comm
913   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
914end subroutine PMPI_Unpack_f08
915end interface  PMPI_Unpack
916
917interface  PMPI_Unpack_external
918subroutine PMPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount, &
919                                   datatype,ierror &
920           )
921   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
922   implicit none
923   CHARACTER(LEN=*), INTENT(IN) :: datarep
924   !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
925   !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
926   !$PRAGMA IGNORE_TKR inbuf, outbuf
927   !DIR$ IGNORE_TKR inbuf, outbuf
928   !IBM* IGNORE_TKR inbuf, outbuf
929   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
930   OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
931   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize
932   INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position
933   INTEGER, INTENT(IN) :: outcount
934   TYPE(MPI_Datatype), INTENT(IN) :: datatype
935   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
936end subroutine PMPI_Unpack_external_f08
937end interface  PMPI_Unpack_external
938
939interface  PMPI_Allgather
940subroutine PMPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
941                             comm,ierror)
942   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
943   implicit none
944   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
945   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
946   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
947   !DIR$ IGNORE_TKR sendbuf, recvbuf
948   !IBM* IGNORE_TKR sendbuf, recvbuf
949   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
950   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
951   INTEGER, INTENT(IN) :: sendcount, recvcount
952   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
953   TYPE(MPI_Comm), INTENT(IN) :: comm
954   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
955end subroutine PMPI_Allgather_f08
956end interface  PMPI_Allgather
957
958interface  PMPI_Iallgather
959subroutine PMPI_Iallgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
960                             comm,request,ierror)
961   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
962   implicit none
963   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
964   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
965   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
966   !DIR$ IGNORE_TKR sendbuf, recvbuf
967   !IBM* IGNORE_TKR sendbuf, recvbuf
968   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
969   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
970   INTEGER, INTENT(IN) :: sendcount, recvcount
971   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
972   TYPE(MPI_Comm), INTENT(IN) :: comm
973   TYPE(MPI_Request), INTENT(OUT) :: request
974   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
975end subroutine PMPI_Iallgather_f08
976end interface  PMPI_Iallgather
977
978interface  PMPI_Allgatherv
979subroutine PMPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
980                              recvtype,comm,ierror)
981   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
982   implicit none
983   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
984   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
985   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
986   !DIR$ IGNORE_TKR sendbuf, recvbuf
987   !IBM* IGNORE_TKR sendbuf, recvbuf
988   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
989   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
990   INTEGER, INTENT(IN) :: sendcount
991   INTEGER, INTENT(IN) :: recvcounts(*), displs(*)
992   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
993   TYPE(MPI_Comm), INTENT(IN) :: comm
994   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
995end subroutine PMPI_Allgatherv_f08
996end interface  PMPI_Allgatherv
997
998interface  PMPI_Iallgatherv
999subroutine PMPI_Iallgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
1000                              recvtype,comm,request,ierror)
1001   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1002   implicit none
1003   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1004   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1005   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1006   !DIR$ IGNORE_TKR sendbuf, recvbuf
1007   !IBM* IGNORE_TKR sendbuf, recvbuf
1008   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1009   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1010   INTEGER, INTENT(IN) :: sendcount
1011   INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*)
1012   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1013   TYPE(MPI_Comm), INTENT(IN) :: comm
1014   TYPE(MPI_Request), INTENT(OUT) :: request
1015   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1016end subroutine PMPI_Iallgatherv_f08
1017end interface  PMPI_Iallgatherv
1018
1019interface  PMPI_Allreduce
1020subroutine PMPI_Allreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror)
1021   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
1022   implicit none
1023   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1024   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1025   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1026   !DIR$ IGNORE_TKR sendbuf, recvbuf
1027   !IBM* IGNORE_TKR sendbuf, recvbuf
1028   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1029   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1030   INTEGER, INTENT(IN) :: count
1031   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1032   TYPE(MPI_Op), INTENT(IN) :: op
1033   TYPE(MPI_Comm), INTENT(IN) :: comm
1034   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1035end subroutine PMPI_Allreduce_f08
1036end interface  PMPI_Allreduce
1037
1038interface  PMPI_Iallreduce
1039subroutine PMPI_Iallreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror)
1040   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request
1041   implicit none
1042   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1043   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1044   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1045   !DIR$ IGNORE_TKR sendbuf, recvbuf
1046   !IBM* IGNORE_TKR sendbuf, recvbuf
1047   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1048   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1049   INTEGER, INTENT(IN) :: count
1050   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1051   TYPE(MPI_Op), INTENT(IN) :: op
1052   TYPE(MPI_Comm), INTENT(IN) :: comm
1053   TYPE(MPI_Request), INTENT(OUT) :: request
1054   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1055end subroutine PMPI_Iallreduce_f08
1056end interface  PMPI_Iallreduce
1057
1058interface  PMPI_Alltoall
1059subroutine PMPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
1060                            comm,ierror)
1061   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1062   implicit none
1063   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1064   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1065   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1066   !DIR$ IGNORE_TKR sendbuf, recvbuf
1067   !IBM* IGNORE_TKR sendbuf, recvbuf
1068   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1069   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1070   INTEGER, INTENT(IN) :: sendcount, recvcount
1071   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1072   TYPE(MPI_Comm), INTENT(IN) :: comm
1073   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1074end subroutine PMPI_Alltoall_f08
1075end interface  PMPI_Alltoall
1076
1077interface  PMPI_Ialltoall
1078subroutine PMPI_Ialltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
1079                            comm,request,ierror)
1080   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1081   implicit none
1082   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1083   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1084   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1085   !DIR$ IGNORE_TKR sendbuf, recvbuf
1086   !IBM* IGNORE_TKR sendbuf, recvbuf
1087   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1088   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1089   INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcount, recvcount
1090   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1091   TYPE(MPI_Comm), INTENT(IN) :: comm
1092   TYPE(MPI_Request), INTENT(OUT) :: request
1093   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1094end subroutine PMPI_Ialltoall_f08
1095end interface  PMPI_Ialltoall
1096
1097interface  PMPI_Alltoallv
1098subroutine PMPI_Alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, &
1099                             rdispls,recvtype,comm,ierror)
1100   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1101   implicit none
1102   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1103   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1104   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1105   !DIR$ IGNORE_TKR sendbuf, recvbuf
1106   !IBM* IGNORE_TKR sendbuf, recvbuf
1107   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1108   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1109   INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
1110   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1111   TYPE(MPI_Comm), INTENT(IN) :: comm
1112   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1113end subroutine PMPI_Alltoallv_f08
1114end interface  PMPI_Alltoallv
1115
1116interface  PMPI_Ialltoallv
1117subroutine PMPI_Ialltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, &
1118                             rdispls,recvtype,comm,request,ierror)
1119   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1120   implicit none
1121   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1122   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1123   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1124   !DIR$ IGNORE_TKR sendbuf, recvbuf
1125   !IBM* IGNORE_TKR sendbuf, recvbuf
1126   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1127   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1128   INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
1129   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1130   TYPE(MPI_Comm), INTENT(IN) :: comm
1131   TYPE(MPI_Request), INTENT(OUT) :: request
1132   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1133end subroutine PMPI_Ialltoallv_f08
1134end interface  PMPI_Ialltoallv
1135
1136interface  PMPI_Alltoallw
1137subroutine PMPI_Alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, &
1138                             rdispls,recvtypes,comm,ierror)
1139   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1140   implicit none
1141   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1142   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1143   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1144   !DIR$ IGNORE_TKR sendbuf, recvbuf
1145   !IBM* IGNORE_TKR sendbuf, recvbuf
1146   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1147   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1148   INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
1149   TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*)
1150   TYPE(MPI_Comm), INTENT(IN) :: comm
1151   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1152end subroutine PMPI_Alltoallw_f08
1153end interface  PMPI_Alltoallw
1154
1155interface  PMPI_Ialltoallw
1156subroutine PMPI_Ialltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, &
1157                             rdispls,recvtypes,comm,request,ierror)
1158   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1159   implicit none
1160   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1161   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1162   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1163   !DIR$ IGNORE_TKR sendbuf, recvbuf
1164   !IBM* IGNORE_TKR sendbuf, recvbuf
1165   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1166   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1167   INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
1168   TYPE(MPI_Datatype), INTENT(IN), ASYNCHRONOUS :: sendtypes(*), recvtypes(*)
1169   TYPE(MPI_Comm), INTENT(IN) :: comm
1170   TYPE(MPI_Request), INTENT(OUT) :: request
1171   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1172end subroutine PMPI_Ialltoallw_f08
1173end interface  PMPI_Ialltoallw
1174
1175interface  PMPI_Barrier
1176subroutine PMPI_Barrier_f08(comm,ierror)
1177   use :: mpi_f08_types, only : MPI_Comm
1178   implicit none
1179   TYPE(MPI_Comm), INTENT(IN) :: comm
1180   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1181end subroutine PMPI_Barrier_f08
1182end interface  PMPI_Barrier
1183
1184interface  PMPI_Ibarrier
1185subroutine PMPI_Ibarrier_f08(comm,request,ierror)
1186   use :: mpi_f08_types, only : MPI_Comm, MPI_Request
1187   implicit none
1188   TYPE(MPI_Comm), INTENT(IN) :: comm
1189   TYPE(MPI_Request), INTENT(OUT) :: request
1190   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1191end subroutine PMPI_Ibarrier_f08
1192end interface  PMPI_Ibarrier
1193
1194interface  PMPI_Bcast
1195subroutine PMPI_Bcast_f08(buffer,count,datatype,root,comm,ierror)
1196   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1197   implicit none
1198   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer
1199   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer
1200   !$PRAGMA IGNORE_TKR buffer
1201   !DIR$ IGNORE_TKR buffer
1202   !IBM* IGNORE_TKR buffer
1203   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer
1204   INTEGER, INTENT(IN) :: count, root
1205   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1206   TYPE(MPI_Comm), INTENT(IN) :: comm
1207   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1208end subroutine PMPI_Bcast_f08
1209end interface  PMPI_Bcast
1210
1211interface  PMPI_Ibcast
1212subroutine PMPI_Ibcast_f08(buffer,count,datatype,root,comm,request,ierror)
1213   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1214   implicit none
1215   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer
1216   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer
1217   !$PRAGMA IGNORE_TKR buffer
1218   !DIR$ IGNORE_TKR buffer
1219   !IBM* IGNORE_TKR buffer
1220   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: buffer
1221   INTEGER, INTENT(IN) :: count, root
1222   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1223   TYPE(MPI_Comm), INTENT(IN) :: comm
1224   TYPE(MPI_Request), INTENT(OUT) :: request
1225   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1226end subroutine PMPI_Ibcast_f08
1227end interface  PMPI_Ibcast
1228
1229interface  PMPI_Exscan
1230subroutine PMPI_Exscan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror)
1231   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
1232   implicit none
1233   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1234   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1235   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1236   !DIR$ IGNORE_TKR sendbuf, recvbuf
1237   !IBM* IGNORE_TKR sendbuf, recvbuf
1238   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1239   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1240   INTEGER, INTENT(IN) :: count
1241   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1242   TYPE(MPI_Op), INTENT(IN) :: op
1243   TYPE(MPI_Comm), INTENT(IN) :: comm
1244   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1245end subroutine PMPI_Exscan_f08
1246end interface  PMPI_Exscan
1247
1248interface  PMPI_Iexscan
1249subroutine PMPI_Iexscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror)
1250   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request
1251   implicit none
1252   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1253   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1254   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1255   !DIR$ IGNORE_TKR sendbuf, recvbuf
1256   !IBM* IGNORE_TKR sendbuf, recvbuf
1257   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1258   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1259   INTEGER, INTENT(IN) :: count
1260   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1261   TYPE(MPI_Op), INTENT(IN) :: op
1262   TYPE(MPI_Comm), INTENT(IN) :: comm
1263   TYPE(MPI_Request), INTENT(OUT) :: request
1264   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1265end subroutine PMPI_Iexscan_f08
1266end interface  PMPI_Iexscan
1267
1268interface  PMPI_Gather
1269subroutine PMPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
1270                          root,comm,ierror)
1271   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1272   implicit none
1273   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1274   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1275   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1276   !DIR$ IGNORE_TKR sendbuf, recvbuf
1277   !IBM* IGNORE_TKR sendbuf, recvbuf
1278   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1279   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1280   INTEGER, INTENT(IN) :: sendcount, recvcount, root
1281   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1282   TYPE(MPI_Comm), INTENT(IN) :: comm
1283   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1284end subroutine PMPI_Gather_f08
1285end interface  PMPI_Gather
1286
1287interface  PMPI_Igather
1288subroutine PMPI_Igather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
1289                          root,comm,request,ierror)
1290   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1291   implicit none
1292   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1293   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1294   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1295   !DIR$ IGNORE_TKR sendbuf, recvbuf
1296   !IBM* IGNORE_TKR sendbuf, recvbuf
1297   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1298   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1299   INTEGER, INTENT(IN) :: sendcount, recvcount, root
1300   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1301   TYPE(MPI_Comm), INTENT(IN) :: comm
1302   TYPE(MPI_Request), INTENT(OUT) :: request
1303   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1304end subroutine PMPI_Igather_f08
1305end interface  PMPI_Igather
1306
1307interface  PMPI_Gatherv
1308subroutine PMPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
1309                           recvtype,root,comm,ierror)
1310   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1311   implicit none
1312   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1313   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1314   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1315   !DIR$ IGNORE_TKR sendbuf, recvbuf
1316   !IBM* IGNORE_TKR sendbuf, recvbuf
1317   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1318   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1319   INTEGER, INTENT(IN) :: sendcount, root
1320   INTEGER, INTENT(IN) :: recvcounts(*), displs(*)
1321   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1322   TYPE(MPI_Comm), INTENT(IN) :: comm
1323   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1324end subroutine PMPI_Gatherv_f08
1325end interface  PMPI_Gatherv
1326
1327interface  PMPI_Igatherv
1328subroutine PMPI_Igatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
1329                           recvtype,root,comm,request,ierror)
1330   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1331   implicit none
1332   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1333   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1334   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1335   !DIR$ IGNORE_TKR sendbuf, recvbuf
1336   !IBM* IGNORE_TKR sendbuf, recvbuf
1337   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1338   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1339   INTEGER, INTENT(IN) :: sendcount, root
1340   INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*)
1341   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1342   TYPE(MPI_Comm), INTENT(IN) :: comm
1343   TYPE(MPI_Request), INTENT(OUT) :: request
1344   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1345end subroutine PMPI_Igatherv_f08
1346end interface  PMPI_Igatherv
1347
1348interface  PMPI_Op_commutative
1349subroutine PMPI_Op_commutative_f08(op,commute,ierror)
1350   use :: mpi_f08_types, only : MPI_Op
1351   implicit none
1352   TYPE(MPI_Op), INTENT(IN) :: op
1353   LOGICAL, INTENT(OUT) :: commute
1354   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1355end subroutine PMPI_Op_commutative_f08
1356end interface  PMPI_Op_commutative
1357
1358interface  PMPI_Op_create
1359subroutine PMPI_Op_create_f08(user_fn,commute,op,ierror)
1360   use :: mpi_f08_types, only : MPI_Op
1361   use :: mpi_f08_interfaces_callbacks, only : MPI_User_function
1362   implicit none
1363   PROCEDURE(MPI_User_function) :: user_fn
1364   LOGICAL, INTENT(IN) :: commute
1365   TYPE(MPI_Op), INTENT(OUT) :: op
1366   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1367end subroutine PMPI_Op_create_f08
1368end interface  PMPI_Op_create
1369
1370interface  PMPI_Op_free
1371subroutine PMPI_Op_free_f08(op,ierror)
1372   use :: mpi_f08_types, only : MPI_Op
1373   implicit none
1374   TYPE(MPI_Op), INTENT(INOUT) :: op
1375   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1376end subroutine PMPI_Op_free_f08
1377end interface  PMPI_Op_free
1378
1379interface  PMPI_Reduce
1380subroutine PMPI_Reduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,ierror)
1381   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
1382   implicit none
1383   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1384   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1385   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1386   !DIR$ IGNORE_TKR sendbuf, recvbuf
1387   !IBM* IGNORE_TKR sendbuf, recvbuf
1388   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1389   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1390   INTEGER, INTENT(IN) :: count, root
1391   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1392   TYPE(MPI_Op), INTENT(IN) :: op
1393   TYPE(MPI_Comm), INTENT(IN) :: comm
1394   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1395end subroutine PMPI_Reduce_f08
1396end interface  PMPI_Reduce
1397
1398interface  PMPI_Ireduce
1399subroutine PMPI_Ireduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,request,ierror)
1400   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request
1401   implicit none
1402   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1403   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1404   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1405   !DIR$ IGNORE_TKR sendbuf, recvbuf
1406   !IBM* IGNORE_TKR sendbuf, recvbuf
1407   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1408   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1409   INTEGER, INTENT(IN) :: count, root
1410   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1411   TYPE(MPI_Op), INTENT(IN) :: op
1412   TYPE(MPI_Comm), INTENT(IN) :: comm
1413   TYPE(MPI_Request), INTENT(OUT) :: request
1414   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1415end subroutine PMPI_Ireduce_f08
1416end interface  PMPI_Ireduce
1417
1418interface  PMPI_Reduce_local
1419subroutine PMPI_Reduce_local_f08(inbuf,inoutbuf,count,datatype,op,ierror)
1420   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op
1421   implicit none
1422   !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, inoutbuf
1423   !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, inoutbuf
1424   !$PRAGMA IGNORE_TKR inbuf, inoutbuf
1425   !DIR$ IGNORE_TKR inbuf, inoutbuf
1426   !IBM* IGNORE_TKR inbuf, inoutbuf
1427   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
1428   OMPI_FORTRAN_IGNORE_TKR_TYPE :: inoutbuf
1429   INTEGER, INTENT(IN) :: count
1430   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1431   TYPE(MPI_Op), INTENT(IN) :: op
1432   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1433end subroutine PMPI_Reduce_local_f08
1434end interface  PMPI_Reduce_local
1435
1436interface  PMPI_Reduce_scatter
1437subroutine PMPI_Reduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, &
1438                                  ierror)
1439   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
1440   implicit none
1441   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1442   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1443   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1444   !DIR$ IGNORE_TKR sendbuf, recvbuf
1445   !IBM* IGNORE_TKR sendbuf, recvbuf
1446   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1447   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1448   INTEGER, INTENT(IN) :: recvcounts(*)
1449   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1450   TYPE(MPI_Op), INTENT(IN) :: op
1451   TYPE(MPI_Comm), INTENT(IN) :: comm
1452   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1453end subroutine PMPI_Reduce_scatter_f08
1454end interface  PMPI_Reduce_scatter
1455
1456interface  PMPI_Ireduce_scatter
1457subroutine PMPI_Ireduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, &
1458                                  request,ierror)
1459   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request
1460   implicit none
1461   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1462   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1463   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1464   !DIR$ IGNORE_TKR sendbuf, recvbuf
1465   !IBM* IGNORE_TKR sendbuf, recvbuf
1466   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1467   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1468   INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*)
1469   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1470   TYPE(MPI_Op), INTENT(IN) :: op
1471   TYPE(MPI_Comm), INTENT(IN) :: comm
1472   TYPE(MPI_Request), INTENT(OUT) :: request
1473   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1474end subroutine PMPI_Ireduce_scatter_f08
1475end interface  PMPI_Ireduce_scatter
1476
1477interface  PMPI_Reduce_scatter_block
1478subroutine PMPI_Reduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, &
1479                                        ierror)
1480   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
1481   implicit none
1482   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1483   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1484   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1485   !DIR$ IGNORE_TKR sendbuf, recvbuf
1486   !IBM* IGNORE_TKR sendbuf, recvbuf
1487   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1488   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1489   INTEGER, INTENT(IN) :: recvcount
1490   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1491   TYPE(MPI_Op), INTENT(IN) :: op
1492   TYPE(MPI_Comm), INTENT(IN) :: comm
1493   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1494end subroutine PMPI_Reduce_scatter_block_f08
1495end interface  PMPI_Reduce_scatter_block
1496
1497interface  PMPI_Ireduce_scatter_block
1498subroutine PMPI_Ireduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, &
1499                                        request,ierror)
1500   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request
1501   implicit none
1502   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1503   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1504   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1505   !DIR$ IGNORE_TKR sendbuf, recvbuf
1506   !IBM* IGNORE_TKR sendbuf, recvbuf
1507   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1508   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1509   INTEGER, INTENT(IN) :: recvcount
1510   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1511   TYPE(MPI_Op), INTENT(IN) :: op
1512   TYPE(MPI_Comm), INTENT(IN) :: comm
1513   TYPE(MPI_Request), INTENT(OUT) :: request
1514   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1515end subroutine PMPI_Ireduce_scatter_block_f08
1516end interface  PMPI_Ireduce_scatter_block
1517
1518interface  PMPI_Scan
1519subroutine PMPI_Scan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror)
1520   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
1521   implicit none
1522   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1523   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1524   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1525   !DIR$ IGNORE_TKR sendbuf, recvbuf
1526   !IBM* IGNORE_TKR sendbuf, recvbuf
1527   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1528   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1529   INTEGER, INTENT(IN) :: count
1530   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1531   TYPE(MPI_Op), INTENT(IN) :: op
1532   TYPE(MPI_Comm), INTENT(IN) :: comm
1533   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1534end subroutine PMPI_Scan_f08
1535end interface  PMPI_Scan
1536
1537interface  PMPI_Iscan
1538subroutine PMPI_Iscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror)
1539   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request
1540   implicit none
1541   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1542   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1543   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1544   !DIR$ IGNORE_TKR sendbuf, recvbuf
1545   !IBM* IGNORE_TKR sendbuf, recvbuf
1546   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1547   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1548   INTEGER, INTENT(IN) :: count
1549   TYPE(MPI_Datatype), INTENT(IN) :: datatype
1550   TYPE(MPI_Op), INTENT(IN) :: op
1551   TYPE(MPI_Comm), INTENT(IN) :: comm
1552   TYPE(MPI_Request), INTENT(OUT) :: request
1553   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1554end subroutine PMPI_Iscan_f08
1555end interface  PMPI_Iscan
1556
1557interface  PMPI_Scatter
1558subroutine PMPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
1559                           root,comm,ierror)
1560   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1561   implicit none
1562   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1563   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1564   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1565   !DIR$ IGNORE_TKR sendbuf, recvbuf
1566   !IBM* IGNORE_TKR sendbuf, recvbuf
1567   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1568   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1569   INTEGER, INTENT(IN) :: sendcount, recvcount, root
1570   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1571   TYPE(MPI_Comm), INTENT(IN) :: comm
1572   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1573end subroutine PMPI_Scatter_f08
1574end interface  PMPI_Scatter
1575
1576interface  PMPI_Iscatter
1577subroutine PMPI_Iscatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
1578                           root,comm,request,ierror)
1579   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1580   implicit none
1581   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1582   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1583   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1584   !DIR$ IGNORE_TKR sendbuf, recvbuf
1585   !IBM* IGNORE_TKR sendbuf, recvbuf
1586   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1587   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1588   INTEGER, INTENT(IN) :: sendcount, recvcount, root
1589   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1590   TYPE(MPI_Comm), INTENT(IN) :: comm
1591   TYPE(MPI_Request), INTENT(OUT) :: request
1592   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1593end subroutine PMPI_Iscatter_f08
1594end interface  PMPI_Iscatter
1595
1596interface  PMPI_Scatterv
1597subroutine PMPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, &
1598                            recvtype,root,comm,ierror)
1599   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
1600   implicit none
1601   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1602   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1603   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1604   !DIR$ IGNORE_TKR sendbuf, recvbuf
1605   !IBM* IGNORE_TKR sendbuf, recvbuf
1606   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
1607   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
1608   INTEGER, INTENT(IN) :: recvcount, root
1609   INTEGER, INTENT(IN) :: sendcounts(*), displs(*)
1610   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1611   TYPE(MPI_Comm), INTENT(IN) :: comm
1612   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1613end subroutine PMPI_Scatterv_f08
1614end interface  PMPI_Scatterv
1615
1616interface  PMPI_Iscatterv
1617subroutine PMPI_Iscatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, &
1618                            recvtype,root,comm,request,ierror)
1619   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
1620   implicit none
1621   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1622   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
1623   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
1624   !DIR$ IGNORE_TKR sendbuf, recvbuf
1625   !IBM* IGNORE_TKR sendbuf, recvbuf
1626   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf
1627   OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf
1628   INTEGER, INTENT(IN) :: recvcount, root
1629   INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), displs(*)
1630   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
1631   TYPE(MPI_Comm), INTENT(IN) :: comm
1632   TYPE(MPI_Request), INTENT(OUT) :: request
1633   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1634end subroutine PMPI_Iscatterv_f08
1635end interface  PMPI_Iscatterv
1636
1637interface  PMPI_Comm_compare
1638subroutine PMPI_Comm_compare_f08(comm1,comm2,result,ierror)
1639   use :: mpi_f08_types, only : MPI_Comm
1640   implicit none
1641   TYPE(MPI_Comm), INTENT(IN) :: comm1
1642   TYPE(MPI_Comm), INTENT(IN) :: comm2
1643   INTEGER, INTENT(OUT) :: result
1644   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1645end subroutine PMPI_Comm_compare_f08
1646end interface  PMPI_Comm_compare
1647
1648interface  PMPI_Comm_create
1649subroutine PMPI_Comm_create_f08(comm,group,newcomm,ierror)
1650   use :: mpi_f08_types, only : MPI_Comm, MPI_Group
1651   implicit none
1652   TYPE(MPI_Comm), INTENT(IN) :: comm
1653   TYPE(MPI_Group), INTENT(IN) :: group
1654   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
1655   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1656end subroutine PMPI_Comm_create_f08
1657end interface  PMPI_Comm_create
1658
1659interface  PMPI_Comm_create_group
1660subroutine PMPI_Comm_create_group_f08(comm,group,tag,newcomm,ierror)
1661   use :: mpi_f08_types, only : MPI_Comm, MPI_Group
1662   implicit none
1663   TYPE(MPI_Comm), INTENT(IN) :: comm
1664   TYPE(MPI_Group), INTENT(IN) :: group
1665   INTEGER, INTENT(IN) :: tag
1666   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
1667   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1668end subroutine PMPI_Comm_create_group_f08
1669end interface  PMPI_Comm_create_group
1670
1671interface  PMPI_Comm_create_keyval
1672subroutine PMPI_Comm_create_keyval_f08(comm_copy_attr_fn,comm_delete_attr_fn,comm_keyval, &
1673                                      extra_state,ierror)
1674   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
1675   use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_copy_attr_function
1676   use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_delete_attr_function
1677   implicit none
1678   PROCEDURE(MPI_Comm_copy_attr_function) :: comm_copy_attr_fn
1679   PROCEDURE(MPI_Comm_delete_attr_function) :: comm_delete_attr_fn
1680   INTEGER, INTENT(OUT) :: comm_keyval
1681   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
1682   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1683end subroutine PMPI_Comm_create_keyval_f08
1684end interface  PMPI_Comm_create_keyval
1685
1686interface  PMPI_Comm_delete_attr
1687subroutine PMPI_Comm_delete_attr_f08(comm,comm_keyval,ierror)
1688   use :: mpi_f08_types, only : MPI_Comm
1689   implicit none
1690   TYPE(MPI_Comm), INTENT(IN) :: comm
1691   INTEGER, INTENT(IN) :: comm_keyval
1692   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1693end subroutine PMPI_Comm_delete_attr_f08
1694end interface  PMPI_Comm_delete_attr
1695
1696interface  PMPI_Comm_dup
1697subroutine PMPI_Comm_dup_f08(comm,newcomm,ierror)
1698   use :: mpi_f08_types, only : MPI_Comm
1699   implicit none
1700   TYPE(MPI_Comm), INTENT(IN) :: comm
1701   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
1702   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1703end subroutine PMPI_Comm_dup_f08
1704end interface  PMPI_Comm_dup
1705
1706interface  PMPI_Comm_dup_with_info
1707subroutine PMPI_Comm_dup_with_info_f08(comm,info,newcomm,ierror)
1708   use :: mpi_f08_types, only : MPI_Comm, MPI_Info
1709   implicit none
1710   TYPE(MPI_Comm), INTENT(IN) :: comm
1711   TYPE(MPI_Info), INTENT(IN) :: info
1712   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
1713   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1714end subroutine PMPI_Comm_dup_with_info_f08
1715end interface  PMPI_Comm_dup_with_info
1716
1717interface  PMPI_Comm_idup
1718subroutine PMPI_Comm_idup_f08(comm,newcomm,request,ierror)
1719   use :: mpi_f08_types, only : MPI_Comm, MPI_Request
1720   implicit none
1721   TYPE(MPI_Comm), INTENT(IN) :: comm
1722   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
1723   TYPE(MPI_Request), INTENT(OUT) :: request
1724   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1725end subroutine PMPI_Comm_idup_f08
1726end interface  PMPI_Comm_idup
1727
1728interface  PMPI_Comm_free
1729subroutine PMPI_Comm_free_f08(comm,ierror)
1730   use :: mpi_f08_types, only : MPI_Comm
1731   implicit none
1732   TYPE(MPI_Comm), INTENT(INOUT) :: comm
1733   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1734end subroutine PMPI_Comm_free_f08
1735end interface  PMPI_Comm_free
1736
1737interface  PMPI_Comm_free_keyval
1738subroutine PMPI_Comm_free_keyval_f08(comm_keyval,ierror)
1739   implicit none
1740   INTEGER, INTENT(INOUT) :: comm_keyval
1741   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1742end subroutine PMPI_Comm_free_keyval_f08
1743end interface  PMPI_Comm_free_keyval
1744
1745interface  PMPI_Comm_get_attr
1746subroutine PMPI_Comm_get_attr_f08(comm,comm_keyval,attribute_val,flag,ierror)
1747   use :: mpi_f08_types, only : MPI_Comm, MPI_ADDRESS_KIND
1748   implicit none
1749   TYPE(MPI_Comm), INTENT(IN) :: comm
1750   INTEGER, INTENT(IN) :: comm_keyval
1751   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val
1752   LOGICAL, INTENT(OUT) :: flag
1753   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1754end subroutine PMPI_Comm_get_attr_f08
1755end interface  PMPI_Comm_get_attr
1756
1757interface  PMPI_Comm_get_info
1758subroutine PMPI_Comm_get_info_f08(comm,info_used,ierror)
1759   use :: mpi_f08_types, only : MPI_Comm, MPI_Info
1760   implicit none
1761   TYPE(MPI_Comm), INTENT(IN) :: comm
1762   TYPE(MPI_Info), INTENT(OUT) :: info_used
1763   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1764end subroutine PMPI_Comm_get_info_f08
1765end interface  PMPI_Comm_get_info
1766
1767interface  PMPI_Comm_get_name
1768subroutine PMPI_Comm_get_name_f08(comm,comm_name,resultlen,ierror)
1769   use :: mpi_f08_types, only : MPI_Comm, MPI_MAX_OBJECT_NAME
1770   implicit none
1771   TYPE(MPI_Comm), INTENT(IN) :: comm
1772   CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: comm_name
1773   INTEGER, INTENT(OUT) :: resultlen
1774   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1775end subroutine PMPI_Comm_get_name_f08
1776end interface  PMPI_Comm_get_name
1777
1778interface  PMPI_Comm_group
1779subroutine PMPI_Comm_group_f08(comm,group,ierror)
1780   use :: mpi_f08_types, only : MPI_Comm, MPI_Group
1781   implicit none
1782   TYPE(MPI_Comm), INTENT(IN) :: comm
1783   TYPE(MPI_Group), INTENT(OUT) :: group
1784   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1785end subroutine PMPI_Comm_group_f08
1786end interface  PMPI_Comm_group
1787
1788interface  PMPI_Comm_rank
1789subroutine PMPI_Comm_rank_f08(comm,rank,ierror)
1790   use :: mpi_f08_types, only : MPI_Comm
1791   implicit none
1792   TYPE(MPI_Comm), INTENT(IN) :: comm
1793   INTEGER, INTENT(OUT) :: rank
1794   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1795end subroutine PMPI_Comm_rank_f08
1796end interface  PMPI_Comm_rank
1797
1798interface  PMPI_Comm_remote_group
1799subroutine PMPI_Comm_remote_group_f08(comm,group,ierror)
1800   use :: mpi_f08_types, only : MPI_Comm, MPI_Group
1801   implicit none
1802   TYPE(MPI_Comm), INTENT(IN) :: comm
1803   TYPE(MPI_Group), INTENT(OUT) :: group
1804   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1805end subroutine PMPI_Comm_remote_group_f08
1806end interface  PMPI_Comm_remote_group
1807
1808interface  PMPI_Comm_remote_size
1809subroutine PMPI_Comm_remote_size_f08(comm,size,ierror)
1810   use :: mpi_f08_types, only : MPI_Comm
1811   implicit none
1812   TYPE(MPI_Comm), INTENT(IN) :: comm
1813   INTEGER, INTENT(OUT) :: size
1814   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1815end subroutine PMPI_Comm_remote_size_f08
1816end interface  PMPI_Comm_remote_size
1817
1818interface  PMPI_Comm_set_attr
1819subroutine PMPI_Comm_set_attr_f08(comm,comm_keyval,attribute_val,ierror)
1820   use :: mpi_f08_types, only : MPI_Comm, MPI_ADDRESS_KIND
1821   implicit none
1822   TYPE(MPI_Comm), INTENT(IN) :: comm
1823   INTEGER, INTENT(IN) :: comm_keyval
1824   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val
1825   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1826end subroutine PMPI_Comm_set_attr_f08
1827end interface  PMPI_Comm_set_attr
1828
1829interface  PMPI_Comm_set_info
1830subroutine PMPI_Comm_set_info_f08(comm,info,ierror)
1831   use :: mpi_f08_types, only : MPI_Comm, MPI_Info
1832   implicit none
1833   TYPE(MPI_Comm), INTENT(IN) :: comm
1834   TYPE(MPI_Info), INTENT(IN) :: info
1835   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1836end subroutine PMPI_Comm_set_info_f08
1837end interface  PMPI_Comm_set_info
1838
1839interface  PMPI_Comm_set_name
1840subroutine PMPI_Comm_set_name_f08(comm,comm_name,ierror)
1841   use :: mpi_f08_types, only : MPI_Comm
1842   implicit none
1843   TYPE(MPI_Comm), INTENT(IN) :: comm
1844   CHARACTER(LEN=*), INTENT(IN) :: comm_name
1845   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1846end subroutine PMPI_Comm_set_name_f08
1847end interface  PMPI_Comm_set_name
1848
1849interface  PMPI_Comm_size
1850subroutine PMPI_Comm_size_f08(comm,size,ierror)
1851   use :: mpi_f08_types, only : MPI_Comm
1852   implicit none
1853   TYPE(MPI_Comm), INTENT(IN) :: comm
1854   INTEGER, INTENT(OUT) :: size
1855   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1856end subroutine PMPI_Comm_size_f08
1857end interface  PMPI_Comm_size
1858
1859interface  PMPI_Comm_split
1860subroutine PMPI_Comm_split_f08(comm,color,key,newcomm,ierror)
1861   use :: mpi_f08_types, only : MPI_Comm
1862   implicit none
1863   TYPE(MPI_Comm), INTENT(IN) :: comm
1864   INTEGER, INTENT(IN) :: color, key
1865   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
1866   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1867end subroutine PMPI_Comm_split_f08
1868end interface  PMPI_Comm_split
1869
1870interface  PMPI_Comm_test_inter
1871subroutine PMPI_Comm_test_inter_f08(comm,flag,ierror)
1872   use :: mpi_f08_types, only : MPI_Comm
1873   implicit none
1874   TYPE(MPI_Comm), INTENT(IN) :: comm
1875   LOGICAL, INTENT(OUT) :: flag
1876   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1877end subroutine PMPI_Comm_test_inter_f08
1878end interface  PMPI_Comm_test_inter
1879
1880interface  PMPI_Group_compare
1881subroutine PMPI_Group_compare_f08(group1,group2,result,ierror)
1882   use :: mpi_f08_types, only : MPI_Group
1883   implicit none
1884   TYPE(MPI_Group), INTENT(IN) :: group1, group2
1885   INTEGER, INTENT(OUT) :: result
1886   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1887end subroutine PMPI_Group_compare_f08
1888end interface  PMPI_Group_compare
1889
1890interface  PMPI_Group_difference
1891subroutine PMPI_Group_difference_f08(group1,group2,newgroup,ierror)
1892   use :: mpi_f08_types, only : MPI_Group
1893   implicit none
1894   TYPE(MPI_Group), INTENT(IN) :: group1, group2
1895   TYPE(MPI_Group), INTENT(OUT) :: newgroup
1896   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1897end subroutine PMPI_Group_difference_f08
1898end interface  PMPI_Group_difference
1899
1900interface  PMPI_Group_excl
1901subroutine PMPI_Group_excl_f08(group,n,ranks,newgroup,ierror)
1902   use :: mpi_f08_types, only : MPI_Group
1903   implicit none
1904   TYPE(MPI_Group), INTENT(IN) :: group
1905   INTEGER, INTENT(IN) :: n, ranks(n)
1906   TYPE(MPI_Group), INTENT(OUT) :: newgroup
1907   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1908end subroutine PMPI_Group_excl_f08
1909end interface  PMPI_Group_excl
1910
1911interface  PMPI_Group_free
1912subroutine PMPI_Group_free_f08(group,ierror)
1913   use :: mpi_f08_types, only : MPI_Group
1914   implicit none
1915   TYPE(MPI_Group), INTENT(INOUT) :: group
1916   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1917end subroutine PMPI_Group_free_f08
1918end interface  PMPI_Group_free
1919
1920interface  PMPI_Group_incl
1921subroutine PMPI_Group_incl_f08(group,n,ranks,newgroup,ierror)
1922   use :: mpi_f08_types, only : MPI_Group
1923   implicit none
1924   INTEGER, INTENT(IN) :: n, ranks(n)
1925   TYPE(MPI_Group), INTENT(IN) :: group
1926   TYPE(MPI_Group), INTENT(OUT) :: newgroup
1927   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1928end subroutine PMPI_Group_incl_f08
1929end interface  PMPI_Group_incl
1930
1931interface  PMPI_Group_intersection
1932subroutine PMPI_Group_intersection_f08(group1,group2,newgroup,ierror)
1933   use :: mpi_f08_types, only : MPI_Group
1934   implicit none
1935   TYPE(MPI_Group), INTENT(IN) :: group1, group2
1936   TYPE(MPI_Group), INTENT(OUT) :: newgroup
1937   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1938end subroutine PMPI_Group_intersection_f08
1939end interface  PMPI_Group_intersection
1940
1941interface  PMPI_Group_range_excl
1942subroutine PMPI_Group_range_excl_f08(group,n,ranges,newgroup,ierror)
1943   use :: mpi_f08_types, only : MPI_Group
1944   implicit none
1945   TYPE(MPI_Group), INTENT(IN) :: group
1946   INTEGER, INTENT(IN) :: n, ranges(3,n)
1947   TYPE(MPI_Group), INTENT(OUT) :: newgroup
1948   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1949end subroutine PMPI_Group_range_excl_f08
1950end interface  PMPI_Group_range_excl
1951
1952interface  PMPI_Group_range_incl
1953subroutine PMPI_Group_range_incl_f08(group,n,ranges,newgroup,ierror)
1954   use :: mpi_f08_types, only : MPI_Group
1955   implicit none
1956   TYPE(MPI_Group), INTENT(IN) :: group
1957   INTEGER, INTENT(IN) :: n, ranges(3,n)
1958   TYPE(MPI_Group), INTENT(OUT) :: newgroup
1959   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1960end subroutine PMPI_Group_range_incl_f08
1961end interface  PMPI_Group_range_incl
1962
1963interface  PMPI_Group_rank
1964subroutine PMPI_Group_rank_f08(group,rank,ierror)
1965   use :: mpi_f08_types, only : MPI_Group
1966   implicit none
1967   TYPE(MPI_Group), INTENT(IN) :: group
1968   INTEGER, INTENT(OUT) :: rank
1969   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1970end subroutine PMPI_Group_rank_f08
1971end interface  PMPI_Group_rank
1972
1973interface  PMPI_Group_size
1974subroutine PMPI_Group_size_f08(group,size,ierror)
1975   use :: mpi_f08_types, only : MPI_Group
1976   implicit none
1977   TYPE(MPI_Group), INTENT(IN) :: group
1978   INTEGER, INTENT(OUT) :: size
1979   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1980end subroutine PMPI_Group_size_f08
1981end interface  PMPI_Group_size
1982
1983interface  PMPI_Group_translate_ranks
1984subroutine PMPI_Group_translate_ranks_f08(group1,n,ranks1,group2,ranks2,ierror)
1985   use :: mpi_f08_types, only : MPI_Group
1986   implicit none
1987   TYPE(MPI_Group), INTENT(IN) :: group1, group2
1988   INTEGER, INTENT(IN) :: n
1989   INTEGER, INTENT(IN) :: ranks1(n)
1990   INTEGER, INTENT(OUT) :: ranks2(n)
1991   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
1992end subroutine PMPI_Group_translate_ranks_f08
1993end interface  PMPI_Group_translate_ranks
1994
1995interface  PMPI_Group_union
1996subroutine PMPI_Group_union_f08(group1,group2,newgroup,ierror)
1997   use :: mpi_f08_types, only : MPI_Group
1998   implicit none
1999   TYPE(MPI_Group), INTENT(IN) :: group1, group2
2000   TYPE(MPI_Group), INTENT(OUT) :: newgroup
2001   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2002end subroutine PMPI_Group_union_f08
2003end interface  PMPI_Group_union
2004
2005interface  PMPI_Intercomm_create
2006subroutine PMPI_Intercomm_create_f08(local_comm,local_leader,peer_comm,remote_leader, &
2007                                    tag,newintercomm,ierror)
2008   use :: mpi_f08_types, only : MPI_Comm
2009   implicit none
2010   TYPE(MPI_Comm), INTENT(IN) :: local_comm, peer_comm
2011   INTEGER, INTENT(IN) :: local_leader, remote_leader, tag
2012   TYPE(MPI_Comm), INTENT(OUT) :: newintercomm
2013   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2014end subroutine PMPI_Intercomm_create_f08
2015end interface  PMPI_Intercomm_create
2016
2017interface  PMPI_Intercomm_merge
2018subroutine PMPI_Intercomm_merge_f08(intercomm,high,newintracomm,ierror)
2019   use :: mpi_f08_types, only : MPI_Comm
2020   implicit none
2021   TYPE(MPI_Comm), INTENT(IN) :: intercomm
2022   LOGICAL, INTENT(IN) :: high
2023   TYPE(MPI_Comm), INTENT(OUT) :: newintracomm
2024   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2025end subroutine PMPI_Intercomm_merge_f08
2026end interface  PMPI_Intercomm_merge
2027
2028interface  PMPI_Type_create_keyval
2029subroutine PMPI_Type_create_keyval_f08(type_copy_attr_fn,type_delete_attr_fn,type_keyval, &
2030                                      extra_state,ierror)
2031   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
2032   use :: mpi_f08_interfaces_callbacks, only : MPI_Type_copy_attr_function
2033   use :: mpi_f08_interfaces_callbacks, only : MPI_Type_delete_attr_function
2034   implicit none
2035   PROCEDURE(MPI_Type_copy_attr_function) :: type_copy_attr_fn
2036   PROCEDURE(MPI_Type_delete_attr_function) :: type_delete_attr_fn
2037   INTEGER, INTENT(OUT) :: type_keyval
2038   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
2039   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2040end subroutine PMPI_Type_create_keyval_f08
2041end interface  PMPI_Type_create_keyval
2042
2043interface  PMPI_Type_delete_attr
2044subroutine PMPI_Type_delete_attr_f08(datatype,type_keyval,ierror)
2045   use :: mpi_f08_types, only : MPI_Datatype
2046   implicit none
2047   TYPE(MPI_Datatype), INTENT(IN) :: datatype
2048   INTEGER, INTENT(IN) :: type_keyval
2049   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2050end subroutine PMPI_Type_delete_attr_f08
2051end interface  PMPI_Type_delete_attr
2052
2053interface  PMPI_Type_free_keyval
2054subroutine PMPI_Type_free_keyval_f08(type_keyval,ierror)
2055   implicit none
2056   INTEGER, INTENT(INOUT) :: type_keyval
2057   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2058end subroutine PMPI_Type_free_keyval_f08
2059end interface  PMPI_Type_free_keyval
2060
2061interface  PMPI_Type_get_attr
2062subroutine PMPI_Type_get_attr_f08(datatype,type_keyval,attribute_val,flag,ierror)
2063   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
2064   implicit none
2065   TYPE(MPI_Datatype), INTENT(IN) :: datatype
2066   INTEGER, INTENT(IN) :: type_keyval
2067   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val
2068   LOGICAL, INTENT(OUT) :: flag
2069   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2070end subroutine PMPI_Type_get_attr_f08
2071end interface  PMPI_Type_get_attr
2072
2073interface  PMPI_Type_get_name
2074subroutine PMPI_Type_get_name_f08(datatype,type_name,resultlen,ierror)
2075   use :: mpi_f08_types, only : MPI_Datatype, MPI_MAX_OBJECT_NAME
2076   implicit none
2077   TYPE(MPI_Datatype), INTENT(IN) :: datatype
2078   CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: type_name
2079   INTEGER, INTENT(OUT) :: resultlen
2080   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2081end subroutine PMPI_Type_get_name_f08
2082end interface  PMPI_Type_get_name
2083
2084interface  PMPI_Type_set_attr
2085subroutine PMPI_Type_set_attr_f08(datatype,type_keyval,attribute_val,ierror)
2086   use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
2087   implicit none
2088   TYPE(MPI_Datatype), INTENT(IN) :: datatype
2089   INTEGER, INTENT(IN) :: type_keyval
2090   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val
2091   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2092end subroutine PMPI_Type_set_attr_f08
2093end interface  PMPI_Type_set_attr
2094
2095interface  PMPI_Type_set_name
2096subroutine PMPI_Type_set_name_f08(datatype,type_name,ierror)
2097   use :: mpi_f08_types, only : MPI_Datatype
2098   implicit none
2099   TYPE(MPI_Datatype), INTENT(IN) :: datatype
2100   CHARACTER(LEN=*), INTENT(IN) :: type_name
2101   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2102end subroutine PMPI_Type_set_name_f08
2103end interface  PMPI_Type_set_name
2104
2105interface  PMPI_Win_allocate
2106subroutine PMPI_Win_allocate_f08(size, disp_unit, info, comm, &
2107      baseptr, win, ierror)
2108  USE, INTRINSIC ::  ISO_C_BINDING, ONLY : C_PTR
2109  use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
2110  INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) ::  size
2111  INTEGER, INTENT(IN) ::  disp_unit
2112  TYPE(MPI_Info), INTENT(IN) ::  info
2113  TYPE(MPI_Comm), INTENT(IN) ::  comm
2114  TYPE(C_PTR), INTENT(OUT) ::  baseptr
2115  TYPE(MPI_Win), INTENT(OUT) ::  win
2116  INTEGER, OPTIONAL, INTENT(OUT) ::  ierror
2117end subroutine PMPI_Win_allocate_f08
2118end interface  PMPI_Win_allocate
2119
2120interface  PMPI_Win_allocate_shared
2121subroutine PMPI_Win_allocate_shared_f08(size, disp_unit, info, comm, &
2122      baseptr, win, ierror)
2123  USE, INTRINSIC ::  ISO_C_BINDING, ONLY : C_PTR
2124  use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
2125  INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) ::  size
2126  INTEGER, INTENT(IN) ::  disp_unit
2127  TYPE(MPI_Info), INTENT(IN) ::  info
2128  TYPE(MPI_Comm), INTENT(IN) ::  comm
2129  TYPE(C_PTR), INTENT(OUT) ::  baseptr
2130  TYPE(MPI_Win), INTENT(OUT) ::  win
2131  INTEGER, OPTIONAL, INTENT(OUT) ::  ierror
2132end subroutine PMPI_Win_allocate_shared_f08
2133end interface  PMPI_Win_allocate_shared
2134
2135interface  PMPI_Win_create_keyval
2136subroutine PMPI_Win_create_keyval_f08(win_copy_attr_fn,win_delete_attr_fn,win_keyval, &
2137                                     extra_state,ierror)
2138   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
2139   use :: mpi_f08_interfaces_callbacks, only : MPI_Win_copy_attr_function
2140   use :: mpi_f08_interfaces_callbacks, only : MPI_Win_delete_attr_function
2141   implicit none
2142   PROCEDURE(MPI_Win_copy_attr_function) :: win_copy_attr_fn
2143   PROCEDURE(MPI_Win_delete_attr_function) :: win_delete_attr_fn
2144   INTEGER, INTENT(OUT) :: win_keyval
2145   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
2146   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2147end subroutine PMPI_Win_create_keyval_f08
2148end interface  PMPI_Win_create_keyval
2149
2150interface  PMPI_Win_delete_attr
2151subroutine PMPI_Win_delete_attr_f08(win,win_keyval,ierror)
2152   use :: mpi_f08_types, only : MPI_Win
2153   implicit none
2154   TYPE(MPI_Win), INTENT(IN) :: win
2155   INTEGER, INTENT(IN) :: win_keyval
2156   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2157end subroutine PMPI_Win_delete_attr_f08
2158end interface  PMPI_Win_delete_attr
2159
2160interface  PMPI_Win_free_keyval
2161subroutine PMPI_Win_free_keyval_f08(win_keyval,ierror)
2162   implicit none
2163   INTEGER, INTENT(INOUT) :: win_keyval
2164   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2165end subroutine PMPI_Win_free_keyval_f08
2166end interface  PMPI_Win_free_keyval
2167
2168interface  PMPI_Win_get_attr
2169subroutine PMPI_Win_get_attr_f08(win,win_keyval,attribute_val,flag,ierror)
2170   use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
2171   implicit none
2172   TYPE(MPI_Win), INTENT(IN) :: win
2173   INTEGER, INTENT(IN) :: win_keyval
2174   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val
2175   LOGICAL, INTENT(OUT) :: flag
2176   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2177end subroutine PMPI_Win_get_attr_f08
2178end interface  PMPI_Win_get_attr
2179
2180interface  PMPI_Win_get_info
2181subroutine PMPI_Win_get_info_f08(win,info,ierror)
2182   use :: mpi_f08_types, only : MPI_Win, MPI_Info
2183   implicit none
2184   TYPE(MPI_Win), INTENT(IN) :: win
2185   TYPE(MPI_Info), INTENT(OUT) :: info
2186   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2187end subroutine PMPI_Win_get_info_f08
2188end interface  PMPI_Win_get_info
2189
2190interface  PMPI_Win_get_name
2191subroutine PMPI_Win_get_name_f08(win,win_name,resultlen,ierror)
2192   use :: mpi_f08_types, only : MPI_Win, MPI_MAX_OBJECT_NAME
2193   implicit none
2194   TYPE(MPI_Win), INTENT(IN) :: win
2195   CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: win_name
2196   INTEGER, INTENT(OUT) :: resultlen
2197   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2198end subroutine PMPI_Win_get_name_f08
2199end interface  PMPI_Win_get_name
2200
2201interface  PMPI_Win_set_attr
2202subroutine PMPI_Win_set_attr_f08(win,win_keyval,attribute_val,ierror)
2203   use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
2204   implicit none
2205   TYPE(MPI_Win), INTENT(IN) :: win
2206   INTEGER, INTENT(IN) :: win_keyval
2207   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val
2208   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2209end subroutine PMPI_Win_set_attr_f08
2210end interface  PMPI_Win_set_attr
2211
2212interface  PMPI_Win_set_info
2213subroutine PMPI_Win_set_info_f08(win,info,ierror)
2214   use :: mpi_f08_types, only : MPI_Win, MPI_Info
2215   implicit none
2216   TYPE(MPI_Win), INTENT(IN) :: win
2217   TYPE(MPI_Info), INTENT(IN) :: info
2218   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2219end subroutine PMPI_Win_set_info_f08
2220end interface  PMPI_Win_set_info
2221
2222interface  PMPI_Win_set_name
2223subroutine PMPI_Win_set_name_f08(win,win_name,ierror)
2224   use :: mpi_f08_types, only : MPI_Win
2225   implicit none
2226   TYPE(MPI_Win), INTENT(IN) :: win
2227   CHARACTER(LEN=*), INTENT(IN) :: win_name
2228   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2229end subroutine PMPI_Win_set_name_f08
2230end interface  PMPI_Win_set_name
2231
2232interface  PMPI_Cartdim_get
2233subroutine PMPI_Cartdim_get_f08(comm,ndims,ierror)
2234   use :: mpi_f08_types, only : MPI_Comm
2235   implicit none
2236   TYPE(MPI_Comm), INTENT(IN) :: comm
2237   INTEGER, INTENT(OUT) :: ndims
2238   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2239end subroutine PMPI_Cartdim_get_f08
2240end interface  PMPI_Cartdim_get
2241
2242interface  PMPI_Cart_coords
2243subroutine PMPI_Cart_coords_f08(comm,rank,maxdims,coords,ierror)
2244   use :: mpi_f08_types, only : MPI_Comm
2245   implicit none
2246   TYPE(MPI_Comm), INTENT(IN) :: comm
2247   INTEGER, INTENT(IN) :: rank, maxdims
2248   INTEGER, INTENT(OUT) :: coords(maxdims)
2249   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2250end subroutine PMPI_Cart_coords_f08
2251end interface  PMPI_Cart_coords
2252
2253interface  PMPI_Cart_create
2254subroutine PMPI_Cart_create_f08(comm_old,ndims,dims,periods,reorder,comm_cart,ierror)
2255   use :: mpi_f08_types, only : MPI_Comm
2256   implicit none
2257   TYPE(MPI_Comm), INTENT(IN) :: comm_old
2258   INTEGER, INTENT(IN) :: ndims, dims(ndims)
2259   LOGICAL, INTENT(IN) :: periods(ndims), reorder
2260   TYPE(MPI_Comm), INTENT(OUT) :: comm_cart
2261   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2262end subroutine PMPI_Cart_create_f08
2263end interface  PMPI_Cart_create
2264
2265interface  PMPI_Cart_get
2266subroutine PMPI_Cart_get_f08(comm,maxdims,dims,periods,coords,ierror)
2267   use :: mpi_f08_types, only : MPI_Comm
2268   implicit none
2269   TYPE(MPI_Comm), INTENT(IN) :: comm
2270   INTEGER, INTENT(IN) :: maxdims
2271   INTEGER, INTENT(OUT) :: dims(maxdims), coords(maxdims)
2272   LOGICAL, INTENT(OUT) :: periods(maxdims)
2273   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2274end subroutine PMPI_Cart_get_f08
2275end interface  PMPI_Cart_get
2276
2277interface  PMPI_Cart_map
2278subroutine PMPI_Cart_map_f08(comm,ndims,dims,periods,newrank,ierror)
2279   use :: mpi_f08_types, only : MPI_Comm
2280   implicit none
2281   TYPE(MPI_Comm), INTENT(IN) :: comm
2282   INTEGER, INTENT(IN) :: ndims, dims(ndims)
2283   LOGICAL, INTENT(IN) :: periods(ndims)
2284   INTEGER, INTENT(OUT) :: newrank
2285   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2286end subroutine PMPI_Cart_map_f08
2287end interface  PMPI_Cart_map
2288
2289interface  PMPI_Cart_rank
2290subroutine PMPI_Cart_rank_f08(comm,coords,rank,ierror)
2291   use :: mpi_f08_types, only : MPI_Comm
2292   implicit none
2293   TYPE(MPI_Comm), INTENT(IN) :: comm
2294   INTEGER, INTENT(IN) :: coords(*)
2295   INTEGER, INTENT(OUT) :: rank
2296   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2297end subroutine PMPI_Cart_rank_f08
2298end interface  PMPI_Cart_rank
2299
2300interface  PMPI_Cart_shift
2301subroutine PMPI_Cart_shift_f08(comm,direction,disp,rank_source,rank_dest,ierror)
2302   use :: mpi_f08_types, only : MPI_Comm
2303   implicit none
2304   TYPE(MPI_Comm), INTENT(IN) :: comm
2305   INTEGER, INTENT(IN) :: direction, disp
2306   INTEGER, INTENT(OUT) :: rank_source, rank_dest
2307   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2308end subroutine PMPI_Cart_shift_f08
2309end interface  PMPI_Cart_shift
2310
2311interface  PMPI_Cart_sub
2312subroutine PMPI_Cart_sub_f08(comm,remain_dims,newcomm,ierror)
2313   use :: mpi_f08_types, only : MPI_Comm
2314   implicit none
2315   TYPE(MPI_Comm), INTENT(IN) :: comm
2316   LOGICAL, INTENT(IN) :: remain_dims(*)
2317   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
2318   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2319end subroutine PMPI_Cart_sub_f08
2320end interface  PMPI_Cart_sub
2321
2322interface  PMPI_Dims_create
2323subroutine PMPI_Dims_create_f08(nnodes,ndims,dims,ierror)
2324   implicit none
2325   INTEGER, INTENT(IN) :: nnodes, ndims
2326   INTEGER, INTENT(INOUT) :: dims(ndims)
2327   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2328end subroutine PMPI_Dims_create_f08
2329end interface  PMPI_Dims_create
2330
2331interface  PMPI_Dist_graph_create
2332subroutine PMPI_Dist_graph_create_f08(comm_old,n,sources,degrees,destinations,weights, &
2333                                     info,reorder,comm_dist_graph,ierror)
2334   use :: mpi_f08_types, only : MPI_Comm, MPI_Info
2335   implicit none
2336   TYPE(MPI_Comm), INTENT(IN) :: comm_old
2337   INTEGER, INTENT(IN) :: n, sources(n), degrees(n), destinations(*), weights(*)
2338   TYPE(MPI_Info), INTENT(IN) :: info
2339   LOGICAL, INTENT(IN) :: reorder
2340   TYPE(MPI_Comm), INTENT(OUT) :: comm_dist_graph
2341   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2342end subroutine PMPI_Dist_graph_create_f08
2343end interface  PMPI_Dist_graph_create
2344
2345interface  PMPI_Dist_graph_create_adjacent
2346subroutine PMPI_Dist_graph_create_adjacent_f08(comm_old,indegree,sources,sourceweights, &
2347                                              outdegree,destinations,destweights,info,reorder, &
2348                                              comm_dist_graph,ierror)
2349   use :: mpi_f08_types, only : MPI_Comm, MPI_Info
2350   implicit none
2351   TYPE(MPI_Comm), INTENT(IN) :: comm_old
2352   INTEGER, INTENT(IN) :: indegree, sources(indegree), outdegree, destinations(outdegree)
2353   INTEGER, INTENT(IN) :: sourceweights(indegree), destweights(outdegree)
2354   TYPE(MPI_Info), INTENT(IN) :: info
2355   LOGICAL, INTENT(IN) :: reorder
2356   TYPE(MPI_Comm), INTENT(OUT) :: comm_dist_graph
2357   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2358end subroutine PMPI_Dist_graph_create_adjacent_f08
2359end interface  PMPI_Dist_graph_create_adjacent
2360
2361interface  PMPI_Dist_graph_neighbors
2362subroutine PMPI_Dist_graph_neighbors_f08(comm,maxindegree,sources,sourceweights, &
2363                                        maxoutdegree,destinations,destweights,ierror)
2364   use :: mpi_f08_types, only : MPI_Comm
2365   implicit none
2366   TYPE(MPI_Comm), INTENT(IN) :: comm
2367   INTEGER, INTENT(IN) :: maxindegree, maxoutdegree
2368   INTEGER, INTENT(OUT) :: sources(maxindegree), destinations(maxoutdegree)
2369   INTEGER, INTENT(OUT) :: sourceweights(maxindegree), destweights(maxoutdegree)
2370   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2371end subroutine PMPI_Dist_graph_neighbors_f08
2372end interface  PMPI_Dist_graph_neighbors
2373
2374interface  PMPI_Dist_graph_neighbors_count
2375subroutine PMPI_Dist_graph_neighbors_count_f08(comm,indegree,outdegree,weighted,ierror)
2376   use :: mpi_f08_types, only : MPI_Comm
2377   implicit none
2378   TYPE(MPI_Comm), INTENT(IN) :: comm
2379   INTEGER, INTENT(OUT) :: indegree, outdegree
2380   LOGICAL, INTENT(OUT) :: weighted
2381   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2382end subroutine PMPI_Dist_graph_neighbors_count_f08
2383end interface  PMPI_Dist_graph_neighbors_count
2384
2385interface  PMPI_Graphdims_get
2386subroutine PMPI_Graphdims_get_f08(comm,nnodes,nedges,ierror)
2387   use :: mpi_f08_types, only : MPI_Comm
2388   implicit none
2389   TYPE(MPI_Comm), INTENT(IN) :: comm
2390   INTEGER, INTENT(OUT) :: nnodes, nedges
2391   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2392end subroutine PMPI_Graphdims_get_f08
2393end interface  PMPI_Graphdims_get
2394
2395interface  PMPI_Graph_create
2396subroutine PMPI_Graph_create_f08(comm_old,nnodes,index,edges,reorder,comm_graph, &
2397                                ierror)
2398   use :: mpi_f08_types, only : MPI_Comm
2399   implicit none
2400   TYPE(MPI_Comm), INTENT(IN) :: comm_old
2401   INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*)
2402   LOGICAL, INTENT(IN) :: reorder
2403   TYPE(MPI_Comm), INTENT(OUT) :: comm_graph
2404   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2405end subroutine PMPI_Graph_create_f08
2406end interface  PMPI_Graph_create
2407
2408interface  PMPI_Graph_get
2409subroutine PMPI_Graph_get_f08(comm,maxindex,maxedges,index,edges,ierror)
2410   use :: mpi_f08_types, only : MPI_Comm
2411   implicit none
2412   TYPE(MPI_Comm), INTENT(IN) :: comm
2413   INTEGER, INTENT(IN) :: maxindex, maxedges
2414   INTEGER, INTENT(OUT) :: index(maxindex), edges(maxedges)
2415   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2416end subroutine PMPI_Graph_get_f08
2417end interface  PMPI_Graph_get
2418
2419interface  PMPI_Graph_map
2420subroutine PMPI_Graph_map_f08(comm,nnodes,index,edges,newrank,ierror)
2421   use :: mpi_f08_types, only : MPI_Comm
2422   implicit none
2423   TYPE(MPI_Comm), INTENT(IN) :: comm
2424   INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*)
2425   INTEGER, INTENT(OUT) :: newrank
2426   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2427end subroutine PMPI_Graph_map_f08
2428end interface  PMPI_Graph_map
2429
2430interface  PMPI_Graph_neighbors
2431subroutine PMPI_Graph_neighbors_f08(comm,rank,maxneighbors,neighbors,ierror)
2432   use :: mpi_f08_types, only : MPI_Comm
2433   implicit none
2434   TYPE(MPI_Comm), INTENT(IN) :: comm
2435   INTEGER, INTENT(IN) :: rank, maxneighbors
2436   INTEGER, INTENT(OUT) :: neighbors(maxneighbors)
2437   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2438end subroutine PMPI_Graph_neighbors_f08
2439end interface  PMPI_Graph_neighbors
2440
2441interface  PMPI_Graph_neighbors_count
2442subroutine PMPI_Graph_neighbors_count_f08(comm,rank,nneighbors,ierror)
2443   use :: mpi_f08_types, only : MPI_Comm
2444   implicit none
2445   TYPE(MPI_Comm), INTENT(IN) :: comm
2446   INTEGER, INTENT(IN) :: rank
2447   INTEGER, INTENT(OUT) :: nneighbors
2448   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2449end subroutine PMPI_Graph_neighbors_count_f08
2450end interface  PMPI_Graph_neighbors_count
2451
2452interface  PMPI_Topo_test
2453subroutine PMPI_Topo_test_f08(comm,status,ierror)
2454   use :: mpi_f08_types, only : MPI_Comm, MPI_Status
2455   implicit none
2456   TYPE(MPI_Comm), INTENT(IN) :: comm
2457   INTEGER, INTENT(OUT) :: status
2458   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2459end subroutine PMPI_Topo_test_f08
2460end interface  PMPI_Topo_test
2461
2462! MPI_Wtick is not a wrapper function
2463!
2464interface PMPI_Wtick
2465function  PMPI_Wtick_f08( ) BIND(C,name="PMPI_Wtick")
2466   use, intrinsic :: ISO_C_BINDING
2467   implicit none
2468   DOUBLE PRECISION :: PMPI_Wtick_f08
2469end function  PMPI_Wtick_f08
2470end interface PMPI_Wtick
2471
2472! MPI_Wtime is not a wrapper function
2473!
2474interface PMPI_Wtime
2475function  PMPI_Wtime_f08( ) BIND(C,name="PMPI_Wtime")
2476   use, intrinsic :: ISO_C_BINDING
2477   implicit none
2478   DOUBLE PRECISION :: PMPI_Wtime_f08
2479end function  PMPI_Wtime_f08
2480end interface PMPI_Wtime
2481
2482interface PMPI_Aint_add
2483function  PMPI_Aint_add_f08(base,diff)
2484   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
2485   implicit none
2486   INTEGER(MPI_ADDRESS_KIND) :: base
2487   INTEGER(MPI_ADDRESS_KIND) :: diff
2488   INTEGER(MPI_ADDRESS_KIND) :: PMPI_Aint_add_f08
2489end function  PMPI_Aint_add_f08
2490end interface PMPI_Aint_add
2491
2492interface PMPI_Aint_diff
2493function  PMPI_Aint_diff_f08(addr1,addr2)
2494   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
2495   implicit none
2496   INTEGER(MPI_ADDRESS_KIND) :: addr1
2497   INTEGER(MPI_ADDRESS_KIND) :: addr2
2498   INTEGER(MPI_ADDRESS_KIND) :: PMPI_Aint_diff_f08
2499end function  PMPI_Aint_diff_f08
2500end interface PMPI_Aint_diff
2501
2502interface  PMPI_Abort
2503subroutine PMPI_Abort_f08(comm,errorcode,ierror)
2504   use :: mpi_f08_types, only : MPI_Comm
2505   implicit none
2506   TYPE(MPI_Comm), INTENT(IN) :: comm
2507   INTEGER, INTENT(IN) :: errorcode
2508   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2509end subroutine PMPI_Abort_f08
2510end interface  PMPI_Abort
2511
2512interface  PMPI_Add_error_class
2513subroutine PMPI_Add_error_class_f08(errorclass,ierror)
2514   implicit none
2515   INTEGER, INTENT(OUT) :: errorclass
2516   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2517end subroutine PMPI_Add_error_class_f08
2518end interface  PMPI_Add_error_class
2519
2520interface  PMPI_Add_error_code
2521subroutine PMPI_Add_error_code_f08(errorclass,errorcode,ierror)
2522   implicit none
2523   INTEGER, INTENT(IN) :: errorclass
2524   INTEGER, INTENT(OUT) :: errorcode
2525   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2526end subroutine PMPI_Add_error_code_f08
2527end interface  PMPI_Add_error_code
2528
2529interface  PMPI_Add_error_string
2530subroutine PMPI_Add_error_string_f08(errorcode,string,ierror)
2531   implicit none
2532   integer, intent(in) :: errorcode
2533   character(len=*), intent(in) :: string
2534   integer, optional, intent(out) :: ierror
2535end subroutine PMPI_Add_error_string_f08
2536end interface  PMPI_Add_error_string
2537
2538interface  PMPI_Alloc_mem
2539subroutine PMPI_Alloc_mem_f08(size,info,baseptr,ierror)
2540   use, intrinsic :: ISO_C_BINDING, only : C_PTR
2541   use :: mpi_f08_types, only : MPI_Info, MPI_ADDRESS_KIND
2542   implicit none
2543   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
2544   TYPE(MPI_Info), INTENT(IN) :: info
2545   TYPE(C_PTR), INTENT(OUT) :: baseptr
2546   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2547end subroutine PMPI_Alloc_mem_f08
2548end interface  PMPI_Alloc_mem
2549
2550interface  PMPI_Comm_call_errhandler
2551subroutine PMPI_Comm_call_errhandler_f08(comm,errorcode,ierror)
2552   use :: mpi_f08_types, only : MPI_Comm
2553   implicit none
2554   TYPE(MPI_Comm), INTENT(IN) :: comm
2555   INTEGER, INTENT(IN) :: errorcode
2556   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2557end subroutine PMPI_Comm_call_errhandler_f08
2558end interface  PMPI_Comm_call_errhandler
2559
2560interface  PMPI_Comm_create_errhandler
2561subroutine PMPI_Comm_create_errhandler_f08(comm_errhandler_fn,errhandler,ierror)
2562   use :: mpi_f08_types, only : MPI_Errhandler
2563   use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_errhandler_function
2564   implicit none
2565   PROCEDURE(MPI_Comm_errhandler_function) :: comm_errhandler_fn
2566   TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
2567   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2568end subroutine PMPI_Comm_create_errhandler_f08
2569end interface  PMPI_Comm_create_errhandler
2570
2571interface  PMPI_Comm_get_errhandler
2572subroutine PMPI_Comm_get_errhandler_f08(comm,errhandler,ierror)
2573   use :: mpi_f08_types, only : MPI_Comm, MPI_Errhandler
2574   implicit none
2575   TYPE(MPI_Comm), INTENT(IN) :: comm
2576   TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
2577   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2578end subroutine PMPI_Comm_get_errhandler_f08
2579end interface  PMPI_Comm_get_errhandler
2580
2581interface  PMPI_Comm_set_errhandler
2582subroutine PMPI_Comm_set_errhandler_f08(comm,errhandler,ierror)
2583   use :: mpi_f08_types, only : MPI_Comm, MPI_Errhandler
2584   implicit none
2585   TYPE(MPI_Comm), INTENT(IN) :: comm
2586   TYPE(MPI_Errhandler), INTENT(IN) :: errhandler
2587   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2588end subroutine PMPI_Comm_set_errhandler_f08
2589end interface  PMPI_Comm_set_errhandler
2590
2591interface  PMPI_Errhandler_free
2592subroutine PMPI_Errhandler_free_f08(errhandler,ierror)
2593   use :: mpi_f08_types, only : MPI_Errhandler
2594   implicit none
2595   TYPE(MPI_Errhandler), INTENT(INOUT) :: errhandler
2596   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2597end subroutine PMPI_Errhandler_free_f08
2598end interface  PMPI_Errhandler_free
2599
2600interface  PMPI_Error_class
2601subroutine PMPI_Error_class_f08(errorcode,errorclass,ierror)
2602   implicit none
2603   INTEGER, INTENT(IN) :: errorcode
2604   INTEGER, INTENT(OUT) :: errorclass
2605   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2606end subroutine PMPI_Error_class_f08
2607end interface  PMPI_Error_class
2608
2609interface  PMPI_Error_string
2610subroutine PMPI_Error_string_f08(errorcode,string,resultlen,ierror)
2611   use :: mpi_f08_types, only : MPI_MAX_ERROR_STRING
2612   implicit none
2613   integer, intent(in) :: errorcode
2614   character(len=MPI_MAX_ERROR_STRING), intent(out) :: string
2615   integer, intent(out) :: resultlen
2616   integer, optional, intent(out) :: ierror
2617end subroutine PMPI_Error_string_f08
2618end interface  PMPI_Error_string
2619
2620interface  PMPI_File_call_errhandler
2621subroutine PMPI_File_call_errhandler_f08(fh,errorcode,ierror)
2622   use :: mpi_f08_types, only : MPI_File
2623   implicit none
2624   TYPE(MPI_File), INTENT(IN) :: fh
2625   INTEGER, INTENT(IN) :: errorcode
2626   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2627end subroutine PMPI_File_call_errhandler_f08
2628end interface  PMPI_File_call_errhandler
2629
2630interface  PMPI_File_create_errhandler
2631subroutine PMPI_File_create_errhandler_f08(file_errhandler_fn,errhandler,ierror)
2632   use :: mpi_f08_types, only : MPI_Errhandler
2633   use :: mpi_f08_interfaces_callbacks, only : MPI_File_errhandler_function
2634   implicit none
2635   PROCEDURE(MPI_File_errhandler_function) :: file_errhandler_fn
2636   TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
2637   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2638end subroutine PMPI_File_create_errhandler_f08
2639end interface  PMPI_File_create_errhandler
2640
2641interface  PMPI_File_get_errhandler
2642subroutine PMPI_File_get_errhandler_f08(file,errhandler,ierror)
2643   use :: mpi_f08_types, only : MPI_File, MPI_Errhandler
2644   implicit none
2645   TYPE(MPI_File), INTENT(IN) :: file
2646   TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
2647   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2648end subroutine PMPI_File_get_errhandler_f08
2649end interface  PMPI_File_get_errhandler
2650
2651interface  PMPI_File_set_errhandler
2652subroutine PMPI_File_set_errhandler_f08(file,errhandler,ierror)
2653   use :: mpi_f08_types, only : MPI_File, MPI_Errhandler
2654   implicit none
2655   TYPE(MPI_File), INTENT(IN) :: file
2656   TYPE(MPI_Errhandler), INTENT(IN) :: errhandler
2657   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2658end subroutine PMPI_File_set_errhandler_f08
2659end interface  PMPI_File_set_errhandler
2660
2661interface  PMPI_Finalize
2662subroutine PMPI_Finalize_f08(ierror)
2663   implicit none
2664   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2665end subroutine PMPI_Finalize_f08
2666end interface  PMPI_Finalize
2667
2668interface  PMPI_Finalized
2669subroutine PMPI_Finalized_f08(flag,ierror)
2670   implicit none
2671   LOGICAL, INTENT(OUT) :: flag
2672   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2673end subroutine PMPI_Finalized_f08
2674end interface  PMPI_Finalized
2675
2676! ASYNCHRONOUS had to removed from the base argument because
2677! the dummy argument is not an assumed-shape array.  This will
2678! be okay once the Interop TR is implemented.
2679interface  PMPI_Free_mem
2680subroutine PMPI_Free_mem_f08(base,ierror)
2681   implicit none
2682   !DEC$ ATTRIBUTES NO_ARG_CHECK :: base
2683   !GCC$ ATTRIBUTES NO_ARG_CHECK :: base
2684   !$PRAGMA IGNORE_TKR base
2685   !DIR$ IGNORE_TKR base
2686   !IBM* IGNORE_TKR base
2687   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base
2688   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2689end subroutine PMPI_Free_mem_f08
2690end interface  PMPI_Free_mem
2691
2692interface  PMPI_Get_processor_name
2693subroutine PMPI_Get_processor_name_f08(name,resultlen,ierror)
2694   use :: mpi_f08_types, only : MPI_MAX_PROCESSOR_NAME
2695   implicit none
2696   character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name
2697   integer, intent(out) :: resultlen
2698   integer, optional, intent(out) :: ierror
2699end subroutine PMPI_Get_processor_name_f08
2700end interface  PMPI_Get_processor_name
2701
2702interface  PMPI_Get_version
2703subroutine PMPI_Get_version_f08(version,subversion,ierror)
2704   implicit none
2705   INTEGER, INTENT(OUT) :: version, subversion
2706   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2707end subroutine PMPI_Get_version_f08
2708end interface  PMPI_Get_version
2709
2710interface  PMPI_Init
2711subroutine PMPI_Init_f08(ierror)
2712   implicit none
2713   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2714end subroutine PMPI_Init_f08
2715end interface  PMPI_Init
2716
2717interface  PMPI_Initialized
2718subroutine PMPI_Initialized_f08(flag,ierror)
2719   implicit none
2720   LOGICAL, INTENT(OUT) :: flag
2721   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2722end subroutine PMPI_Initialized_f08
2723end interface  PMPI_Initialized
2724
2725interface  PMPI_Win_call_errhandler
2726subroutine PMPI_Win_call_errhandler_f08(win,errorcode,ierror)
2727   use :: mpi_f08_types, only : MPI_Win
2728   implicit none
2729   TYPE(MPI_Win), INTENT(IN) :: win
2730   INTEGER, INTENT(IN) :: errorcode
2731   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2732end subroutine PMPI_Win_call_errhandler_f08
2733end interface  PMPI_Win_call_errhandler
2734
2735interface  PMPI_Win_create_errhandler
2736subroutine PMPI_Win_create_errhandler_f08(win_errhandler_fn,errhandler,ierror)
2737   use :: mpi_f08_types, only : MPI_Errhandler
2738   use :: mpi_f08_interfaces_callbacks, only : MPI_Win_errhandler_function
2739   implicit none
2740   PROCEDURE(MPI_Win_errhandler_function) :: win_errhandler_fn
2741   TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
2742   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2743end subroutine PMPI_Win_create_errhandler_f08
2744end interface  PMPI_Win_create_errhandler
2745
2746interface  PMPI_Win_get_errhandler
2747subroutine PMPI_Win_get_errhandler_f08(win,errhandler,ierror)
2748   use :: mpi_f08_types, only : MPI_Win, MPI_Errhandler
2749   implicit none
2750   TYPE(MPI_Win), INTENT(IN) :: win
2751   TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
2752   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2753end subroutine PMPI_Win_get_errhandler_f08
2754end interface  PMPI_Win_get_errhandler
2755
2756interface  PMPI_Win_set_errhandler
2757subroutine PMPI_Win_set_errhandler_f08(win,errhandler,ierror)
2758   use :: mpi_f08_types, only : MPI_Win, MPI_Errhandler
2759   implicit none
2760   TYPE(MPI_Win), INTENT(IN) :: win
2761   TYPE(MPI_Errhandler), INTENT(IN) :: errhandler
2762   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2763end subroutine PMPI_Win_set_errhandler_f08
2764end interface  PMPI_Win_set_errhandler
2765
2766interface  PMPI_Info_create
2767subroutine PMPI_Info_create_f08(info,ierror)
2768   use :: mpi_f08_types, only : MPI_Info
2769   implicit none
2770   TYPE(MPI_Info), INTENT(OUT) :: info
2771   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2772end subroutine PMPI_Info_create_f08
2773end interface  PMPI_Info_create
2774
2775interface  PMPI_Info_delete
2776subroutine PMPI_Info_delete_f08(info,key,ierror)
2777   use :: mpi_f08_types, only : MPI_Info
2778   implicit none
2779   TYPE(MPI_Info), INTENT(IN) :: info
2780   CHARACTER(LEN=*), INTENT(IN) :: key
2781   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2782end subroutine PMPI_Info_delete_f08
2783end interface  PMPI_Info_delete
2784
2785interface  PMPI_Info_dup
2786subroutine PMPI_Info_dup_f08(info,newinfo,ierror)
2787   use :: mpi_f08_types, only : MPI_Info
2788   implicit none
2789   TYPE(MPI_Info), INTENT(IN) :: info
2790   TYPE(MPI_Info), INTENT(OUT) :: newinfo
2791   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2792end subroutine PMPI_Info_dup_f08
2793end interface  PMPI_Info_dup
2794
2795interface  PMPI_Info_free
2796subroutine PMPI_Info_free_f08(info,ierror)
2797   use :: mpi_f08_types, only : MPI_Info
2798   implicit none
2799   TYPE(MPI_Info), INTENT(INOUT) :: info
2800   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2801end subroutine PMPI_Info_free_f08
2802end interface  PMPI_Info_free
2803
2804interface  PMPI_Info_get
2805subroutine PMPI_Info_get_f08(info,key,valuelen,value,flag,ierror)
2806   use :: mpi_f08_types, only : MPI_Info
2807   implicit none
2808   TYPE(MPI_Info), INTENT(IN) :: info
2809   CHARACTER(LEN=*), INTENT(IN) :: key
2810   INTEGER, INTENT(IN) :: valuelen
2811   CHARACTER(LEN=valuelen), INTENT(OUT) :: value
2812   LOGICAL, INTENT(OUT) :: flag
2813   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2814end subroutine PMPI_Info_get_f08
2815end interface  PMPI_Info_get
2816
2817interface  PMPI_Info_get_nkeys
2818subroutine PMPI_Info_get_nkeys_f08(info,nkeys,ierror)
2819   use :: mpi_f08_types, only : MPI_Info
2820   implicit none
2821   TYPE(MPI_Info), INTENT(IN) :: info
2822   INTEGER, INTENT(OUT) :: nkeys
2823   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2824end subroutine PMPI_Info_get_nkeys_f08
2825end interface  PMPI_Info_get_nkeys
2826
2827interface  PMPI_Info_get_nthkey
2828subroutine PMPI_Info_get_nthkey_f08(info,n,key,ierror)
2829   use :: mpi_f08_types, only : MPI_Info
2830   implicit none
2831   TYPE(MPI_Info), INTENT(IN) :: info
2832   INTEGER, INTENT(IN) :: n
2833   CHARACTER(lEN=*), INTENT(OUT) :: key
2834   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2835end subroutine PMPI_Info_get_nthkey_f08
2836end interface  PMPI_Info_get_nthkey
2837
2838interface  PMPI_Info_get_valuelen
2839subroutine PMPI_Info_get_valuelen_f08(info,key,valuelen,flag,ierror)
2840   use :: mpi_f08_types, only : MPI_Info
2841   implicit none
2842   TYPE(MPI_Info), INTENT(IN) :: info
2843   CHARACTER(LEN=*), INTENT(IN) :: key
2844   INTEGER, INTENT(OUT) :: valuelen
2845   LOGICAL, INTENT(OUT) :: flag
2846   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2847end subroutine PMPI_Info_get_valuelen_f08
2848end interface  PMPI_Info_get_valuelen
2849
2850interface  PMPI_Info_set
2851subroutine PMPI_Info_set_f08(info,key,value,ierror)
2852   use :: mpi_f08_types, only : MPI_Info
2853   implicit none
2854   TYPE(MPI_Info), INTENT(IN) :: info
2855   CHARACTER(LEN=*), INTENT(IN) :: key, value
2856   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2857end subroutine PMPI_Info_set_f08
2858end interface  PMPI_Info_set
2859
2860interface  PMPI_Close_port
2861subroutine PMPI_Close_port_f08(port_name,ierror)
2862   implicit none
2863   CHARACTER(LEN=*), INTENT(IN) :: port_name
2864   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2865end subroutine PMPI_Close_port_f08
2866end interface  PMPI_Close_port
2867
2868interface  PMPI_Comm_accept
2869subroutine PMPI_Comm_accept_f08(port_name,info,root,comm,newcomm,ierror)
2870   use :: mpi_f08_types, only : MPI_Info, MPI_Comm
2871   implicit none
2872   CHARACTER(LEN=*), INTENT(IN) :: port_name
2873   TYPE(MPI_Info), INTENT(IN) :: info
2874   INTEGER, INTENT(IN) :: root
2875   TYPE(MPI_Comm), INTENT(IN) :: comm
2876   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
2877   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2878end subroutine PMPI_Comm_accept_f08
2879end interface  PMPI_Comm_accept
2880
2881interface  PMPI_Comm_connect
2882subroutine PMPI_Comm_connect_f08(port_name,info,root,comm,newcomm,ierror)
2883   use :: mpi_f08_types, only : MPI_Info, MPI_Comm
2884   implicit none
2885   CHARACTER(LEN=*), INTENT(IN) :: port_name
2886   TYPE(MPI_Info), INTENT(IN) :: info
2887   INTEGER, INTENT(IN) :: root
2888   TYPE(MPI_Comm), INTENT(IN) :: comm
2889   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
2890   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2891end subroutine PMPI_Comm_connect_f08
2892end interface  PMPI_Comm_connect
2893
2894interface  PMPI_Comm_disconnect
2895subroutine PMPI_Comm_disconnect_f08(comm,ierror)
2896   use :: mpi_f08_types, only : MPI_Comm
2897   implicit none
2898   TYPE(MPI_Comm), INTENT(INOUT) :: comm
2899   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2900end subroutine PMPI_Comm_disconnect_f08
2901end interface  PMPI_Comm_disconnect
2902
2903interface  PMPI_Comm_get_parent
2904subroutine PMPI_Comm_get_parent_f08(parent,ierror)
2905   use :: mpi_f08_types, only : MPI_Comm
2906   implicit none
2907   TYPE(MPI_Comm), INTENT(OUT) :: parent
2908   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2909end subroutine PMPI_Comm_get_parent_f08
2910end interface  PMPI_Comm_get_parent
2911
2912interface  PMPI_Comm_join
2913subroutine PMPI_Comm_join_f08(fd,intercomm,ierror)
2914   use :: mpi_f08_types, only : MPI_Comm
2915   implicit none
2916   INTEGER, INTENT(IN) :: fd
2917   TYPE(MPI_Comm), INTENT(OUT) :: intercomm
2918   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2919end subroutine PMPI_Comm_join_f08
2920end interface  PMPI_Comm_join
2921
2922interface  PMPI_Comm_spawn
2923subroutine PMPI_Comm_spawn_f08(command,argv,maxprocs,info,root,comm,intercomm, &
2924                              array_of_errcodes,ierror)
2925   use :: mpi_f08_types, only : MPI_Info, MPI_Comm
2926   implicit none
2927   CHARACTER(LEN=*), INTENT(IN) :: command, argv(*)
2928   INTEGER, INTENT(IN) :: maxprocs, root
2929   TYPE(MPI_Info), INTENT(IN) :: info
2930   TYPE(MPI_Comm), INTENT(IN) :: comm
2931   TYPE(MPI_Comm), INTENT(OUT) :: intercomm
2932   INTEGER :: array_of_errcodes(*)
2933   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2934end subroutine PMPI_Comm_spawn_f08
2935end interface  PMPI_Comm_spawn
2936
2937interface  PMPI_Comm_spawn_multiple
2938subroutine PMPI_Comm_spawn_multiple_f08(count,array_of_commands,array_of_argv,array_of_maxprocs, &
2939                                       array_of_info,root,comm,intercomm, &
2940                                       array_of_errcodes,ierror)
2941   use :: mpi_f08_types, only : MPI_Info, MPI_Comm
2942   implicit none
2943   INTEGER, INTENT(IN) :: count, array_of_maxprocs(*), root
2944   CHARACTER(LEN=*), INTENT(IN) :: array_of_commands(*), array_of_argv(count,*)
2945   TYPE(MPI_Info), INTENT(IN) :: array_of_info(*)
2946   TYPE(MPI_Comm), INTENT(IN) :: comm
2947   TYPE(MPI_Comm), INTENT(OUT) :: intercomm
2948   INTEGER :: array_of_errcodes(*)
2949   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2950end subroutine PMPI_Comm_spawn_multiple_f08
2951end interface  PMPI_Comm_spawn_multiple
2952
2953interface  PMPI_Lookup_name
2954subroutine PMPI_Lookup_name_f08(service_name,info,port_name,ierror)
2955   use :: mpi_f08_types, only : MPI_Info, MPI_MAX_PORT_NAME
2956   implicit none
2957   CHARACTER(LEN=*), INTENT(IN) :: service_name
2958   TYPE(MPI_Info), INTENT(IN) :: info
2959   CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name
2960   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2961end subroutine PMPI_Lookup_name_f08
2962end interface  PMPI_Lookup_name
2963
2964interface  PMPI_Open_port
2965subroutine PMPI_Open_port_f08(info,port_name,ierror)
2966   use :: mpi_f08_types, only : MPI_Info, MPI_MAX_PORT_NAME
2967   implicit none
2968   TYPE(MPI_Info), INTENT(IN) :: info
2969   CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name
2970   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2971end subroutine PMPI_Open_port_f08
2972end interface  PMPI_Open_port
2973
2974interface  PMPI_Publish_name
2975subroutine PMPI_Publish_name_f08(service_name,info,port_name,ierror)
2976   use :: mpi_f08_types, only : MPI_Info
2977   implicit none
2978   TYPE(MPI_Info), INTENT(IN) :: info
2979   CHARACTER(LEN=*), INTENT(IN) :: service_name, port_name
2980   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2981end subroutine PMPI_Publish_name_f08
2982end interface  PMPI_Publish_name
2983
2984interface  PMPI_Unpublish_name
2985subroutine PMPI_Unpublish_name_f08(service_name,info,port_name,ierror)
2986   use :: mpi_f08_types, only : MPI_Info
2987   implicit none
2988   CHARACTER(LEN=*), INTENT(IN) :: service_name, port_name
2989   TYPE(MPI_Info), INTENT(IN) :: info
2990   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
2991end subroutine PMPI_Unpublish_name_f08
2992end interface  PMPI_Unpublish_name
2993
2994interface  PMPI_Accumulate
2995subroutine PMPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, &
2996                              target_disp,target_count,target_datatype,op,win,ierror)
2997   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
2998   implicit none
2999   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3000   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3001   !$PRAGMA IGNORE_TKR origin_addr
3002   !DIR$ IGNORE_TKR origin_addr
3003   !IBM* IGNORE_TKR origin_addr
3004   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
3005   INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
3006   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3007   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3008   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3009   TYPE(MPI_Op), INTENT(IN) :: op
3010   TYPE(MPI_Win), INTENT(IN) :: win
3011   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3012end subroutine PMPI_Accumulate_f08
3013end interface  PMPI_Accumulate
3014
3015interface  PMPI_Raccumulate
3016subroutine PMPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, &
3017                               target_disp,target_count,target_datatype,op,win,request, &
3018                               ierror)
3019   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
3020   implicit none
3021   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3022   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3023   !$PRAGMA IGNORE_TKR origin_addr
3024   !DIR$ IGNORE_TKR origin_addr
3025   !IBM* IGNORE_TKR origin_addr
3026   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
3027   INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
3028   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3029   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3030   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3031   TYPE(MPI_Op), INTENT(IN) :: op
3032   TYPE(MPI_Win), INTENT(IN) :: win
3033   TYPE(MPI_Request), INTENT(OUT) :: request
3034   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3035end subroutine PMPI_Raccumulate_f08
3036end interface  PMPI_Raccumulate
3037
3038interface  PMPI_Get
3039subroutine PMPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, &
3040                               target_disp,target_count,target_datatype,win,ierror)
3041   use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
3042   implicit none
3043   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3044   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3045   !$PRAGMA IGNORE_TKR origin_addr
3046   !DIR$ IGNORE_TKR origin_addr
3047   !IBM* IGNORE_TKR origin_addr
3048   OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
3049   INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
3050   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3051   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3052   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3053   TYPE(MPI_Win), INTENT(IN) :: win
3054   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3055end subroutine PMPI_Get_f08
3056end interface  PMPI_Get
3057
3058interface  PMPI_Rget
3059subroutine PMPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, &
3060                        target_disp,target_count,target_datatype,win,request,ierror)
3061   use :: mpi_f08_types, only : MPI_Datatype, MPI_Request, MPI_Win, MPI_ADDRESS_KIND
3062   implicit none
3063   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3064   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3065   !$PRAGMA IGNORE_TKR origin_addr
3066   !DIR$ IGNORE_TKR origin_addr
3067   !IBM* IGNORE_TKR origin_addr
3068   OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
3069   INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
3070   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3071   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3072   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3073   TYPE(MPI_Win), INTENT(IN) :: win
3074   TYPE(MPI_Request), INTENT(OUT) :: request
3075   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3076end subroutine PMPI_Rget_f08
3077end interface  PMPI_Rget
3078
3079interface  PMPI_Get_accumulate
3080subroutine PMPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, &
3081                                  result_count,result_datatype,target_rank,target_disp, &
3082                                  target_count,target_datatype,op,win,ierror)
3083   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
3084   implicit none
3085   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
3086   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
3087   !$PRAGMA IGNORE_TKR origin_addr,result_addr
3088   !DIR$ IGNORE_TKR origin_addr,result_addr
3089   !IBM* IGNORE_TKR origin_addr,result_addr
3090   OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
3091   INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
3092   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3093   OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr
3094   TYPE(MPI_Datatype), INTENT(IN) :: result_datatype
3095   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3096   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3097   TYPE(MPI_Op), INTENT(IN) :: op
3098   TYPE(MPI_Win), INTENT(IN) :: win
3099   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3100end subroutine PMPI_Get_accumulate_f08
3101end interface  PMPI_Get_accumulate
3102
3103interface  PMPI_Rget_accumulate
3104subroutine PMPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, &
3105                                   result_count,result_datatype,target_rank,target_disp, &
3106                                   target_count,target_datatype,op,win,request,ierror)
3107   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Request, MPI_Win, MPI_ADDRESS_KIND
3108   implicit none
3109   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
3110   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
3111   !$PRAGMA IGNORE_TKR origin_addr,result_addr
3112   !DIR$ IGNORE_TKR origin_addr,result_addr
3113   !IBM* IGNORE_TKR origin_addr,result_addr
3114   OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr
3115   INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count
3116   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3117   OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr
3118   TYPE(MPI_Datatype), INTENT(IN) :: result_datatype
3119   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3120   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3121   TYPE(MPI_Op), INTENT(IN) :: op
3122   TYPE(MPI_Win), INTENT(IN) :: win
3123   TYPE(MPI_Request), INTENT(OUT) :: request
3124   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3125end subroutine PMPI_Rget_accumulate_f08
3126end interface  PMPI_Rget_accumulate
3127
3128interface  PMPI_Put
3129subroutine PMPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, &
3130                               target_disp,target_count,target_datatype,win,ierror)
3131   use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
3132   implicit none
3133   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3134   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3135   !$PRAGMA IGNORE_TKR origin_addr
3136   !DIR$ IGNORE_TKR origin_addr
3137   !IBM* IGNORE_TKR origin_addr
3138   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
3139   INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
3140   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3141   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3142   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3143   TYPE(MPI_Win), INTENT(IN) :: win
3144   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3145end subroutine PMPI_Put_f08
3146end interface  PMPI_Put
3147
3148interface  PMPI_Rput
3149subroutine PMPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank, &
3150                        target_disp,target_count,target_datatype,win,request,ierror)
3151   use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND
3152   implicit none
3153   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3154   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
3155   !$PRAGMA IGNORE_TKR origin_addr
3156   !DIR$ IGNORE_TKR origin_addr
3157   !IBM* IGNORE_TKR origin_addr
3158   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
3159   INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
3160   TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
3161   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3162   TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
3163   TYPE(MPI_Win), INTENT(IN) :: win
3164   TYPE(MPI_Request), INTENT(OUT) :: request
3165   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3166end subroutine PMPI_Rput_f08
3167end interface  PMPI_Rput
3168
3169interface  PMPI_Fetch_and_op
3170subroutine PMPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, &
3171                                target_disp,op,win,ierror)
3172   use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
3173   implicit none
3174   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
3175   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr
3176   !$PRAGMA IGNORE_TKR origin_addr,result_addr
3177   !DIR$ IGNORE_TKR origin_addr,result_addr
3178   !IBM* IGNORE_TKR origin_addr,result_addr
3179   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr
3180   OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr
3181   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3182   INTEGER, INTENT(IN) :: target_rank
3183   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3184   TYPE(MPI_Op), INTENT(IN) :: op
3185   TYPE(MPI_Win), INTENT(IN) :: win
3186   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3187end subroutine PMPI_Fetch_and_op_f08
3188end interface  PMPI_Fetch_and_op
3189
3190interface  PMPI_Compare_and_swap
3191subroutine PMPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,datatype, &
3192                                    target_rank,target_disp,win,ierror)
3193   use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
3194   implicit none
3195   !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr
3196   !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr
3197   !$PRAGMA IGNORE_TKR origin_addr,compare_addr,result_addr
3198   !DIR$ IGNORE_TKR origin_addr,compare_addr,result_addr
3199   !IBM* IGNORE_TKR origin_addr,compare_addr,result_addr
3200   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr,compare_addr
3201   OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr
3202   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3203   INTEGER, INTENT(IN) :: target_rank
3204   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
3205   TYPE(MPI_Win), INTENT(IN) :: win
3206   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3207end subroutine PMPI_Compare_and_swap_f08
3208end interface  PMPI_Compare_and_swap
3209
3210interface  PMPI_Win_complete
3211subroutine PMPI_Win_complete_f08(win,ierror)
3212   use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
3213   implicit none
3214   TYPE(MPI_Win), INTENT(IN) :: win
3215   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3216end subroutine PMPI_Win_complete_f08
3217end interface  PMPI_Win_complete
3218
3219interface  PMPI_Win_create
3220subroutine PMPI_Win_create_f08(base,size,disp_unit,info,comm,win,ierror)
3221   use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
3222   implicit none
3223   !DEC$ ATTRIBUTES NO_ARG_CHECK :: base
3224   !GCC$ ATTRIBUTES NO_ARG_CHECK :: base
3225   !$PRAGMA IGNORE_TKR base
3226   !DIR$ IGNORE_TKR base
3227   !IBM* IGNORE_TKR base
3228   OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
3229   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
3230   INTEGER, INTENT(IN) :: disp_unit
3231   TYPE(MPI_Info), INTENT(IN) :: info
3232   TYPE(MPI_Comm), INTENT(IN) :: comm
3233   TYPE(MPI_Win), INTENT(OUT) :: win
3234   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3235end subroutine PMPI_Win_create_f08
3236end interface  PMPI_Win_create
3237
3238interface  PMPI_Win_create_dynamic
3239subroutine PMPI_Win_create_dynamic_f08(info,comm,win,ierror)
3240   use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win
3241   implicit none
3242   TYPE(MPI_Info), INTENT(IN) :: info
3243   TYPE(MPI_Comm), INTENT(IN) :: comm
3244   TYPE(MPI_Win), INTENT(OUT) :: win
3245   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3246end subroutine PMPI_Win_create_dynamic_f08
3247end interface  PMPI_Win_create_dynamic
3248
3249interface  PMPI_Win_attach
3250subroutine PMPI_Win_attach_f08(win,base,size,ierror)
3251   use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
3252   implicit none
3253   !DEC$ ATTRIBUTES NO_ARG_CHECK :: base
3254   !GCC$ ATTRIBUTES NO_ARG_CHECK :: base
3255   !$PRAGMA IGNORE_TKR base
3256   !DIR$ IGNORE_TKR base
3257   !IBM* IGNORE_TKR base
3258   OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
3259   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
3260   TYPE(MPI_Win), INTENT(IN) :: win
3261   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3262end subroutine PMPI_Win_attach_f08
3263end interface  PMPI_Win_attach
3264
3265interface  PMPI_Win_detach
3266subroutine PMPI_Win_detach_f08(win,base,ierror)
3267   use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
3268   implicit none
3269   !DEC$ ATTRIBUTES NO_ARG_CHECK :: base
3270   !GCC$ ATTRIBUTES NO_ARG_CHECK :: base
3271   !$PRAGMA IGNORE_TKR base
3272   !DIR$ IGNORE_TKR base
3273   !IBM* IGNORE_TKR base
3274   OMPI_FORTRAN_IGNORE_TKR_TYPE :: base
3275   TYPE(MPI_Win), INTENT(IN) :: win
3276   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3277end subroutine PMPI_Win_detach_f08
3278end interface  PMPI_Win_detach
3279
3280interface  PMPI_Win_fence
3281subroutine PMPI_Win_fence_f08(assert,win,ierror)
3282   use :: mpi_f08_types, only : MPI_Win
3283   implicit none
3284   INTEGER, INTENT(IN) :: assert
3285   TYPE(MPI_Win), INTENT(IN) :: win
3286   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3287end subroutine PMPI_Win_fence_f08
3288end interface  PMPI_Win_fence
3289
3290interface  PMPI_Win_free
3291subroutine PMPI_Win_free_f08(win,ierror)
3292   use :: mpi_f08_types, only : MPI_Win
3293   implicit none
3294   TYPE(MPI_Win), INTENT(INOUT) :: win
3295   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3296end subroutine PMPI_Win_free_f08
3297end interface  PMPI_Win_free
3298
3299interface  PMPI_Win_get_group
3300subroutine PMPI_Win_get_group_f08(win,group,ierror)
3301   use :: mpi_f08_types, only : MPI_Win, MPI_Group
3302   implicit none
3303   TYPE(MPI_Win), INTENT(IN) :: win
3304   TYPE(MPI_Group), INTENT(OUT) :: group
3305   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3306end subroutine PMPI_Win_get_group_f08
3307end interface  PMPI_Win_get_group
3308
3309interface  PMPI_Win_lock
3310subroutine PMPI_Win_lock_f08(lock_type,rank,assert,win,ierror)
3311   use :: mpi_f08_types, only : MPI_Win
3312   implicit none
3313   INTEGER, INTENT(IN) :: lock_type, rank, assert
3314   TYPE(MPI_Win), INTENT(IN) :: win
3315   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3316end subroutine PMPI_Win_lock_f08
3317end interface  PMPI_Win_lock
3318
3319interface  PMPI_Win_lock_all
3320subroutine PMPI_Win_lock_all_f08(assert,win,ierror)
3321   use :: mpi_f08_types, only : MPI_Win
3322   implicit none
3323   INTEGER, INTENT(IN) :: assert
3324   TYPE(MPI_Win), INTENT(IN) :: win
3325   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3326end subroutine PMPI_Win_lock_all_f08
3327end interface  PMPI_Win_lock_all
3328
3329interface  PMPI_Win_post
3330subroutine PMPI_Win_post_f08(group,assert,win,ierror)
3331   use :: mpi_f08_types, only : MPI_Group, MPI_Win
3332   implicit none
3333   TYPE(MPI_Group), INTENT(IN) :: group
3334   INTEGER, INTENT(IN) :: assert
3335   TYPE(MPI_Win), INTENT(IN) :: win
3336   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3337end subroutine PMPI_Win_post_f08
3338end interface  PMPI_Win_post
3339
3340interface  PMPI_Win_shared_query
3341subroutine PMPI_Win_shared_query_f08(win, rank, size, disp_unit, baseptr,&
3342      ierror)
3343  USE, INTRINSIC ::  ISO_C_BINDING, ONLY : C_PTR
3344  use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
3345  TYPE(MPI_Win), INTENT(IN) ::  win
3346  INTEGER, INTENT(IN) ::  rank
3347  INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(OUT) ::  size
3348  INTEGER, INTENT(OUT) ::  disp_unit
3349  TYPE(C_PTR), INTENT(OUT) ::  baseptr
3350  INTEGER, OPTIONAL, INTENT(OUT) ::  ierror
3351end subroutine PMPI_Win_shared_query_f08
3352end interface  PMPI_Win_shared_query
3353
3354interface  PMPI_Win_start
3355subroutine PMPI_Win_start_f08(group,assert,win,ierror)
3356   use :: mpi_f08_types, only : MPI_Group, MPI_Win
3357   implicit none
3358   TYPE(MPI_Group), INTENT(IN) :: group
3359   INTEGER, INTENT(IN) :: assert
3360   TYPE(MPI_Win), INTENT(IN) :: win
3361   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3362end subroutine PMPI_Win_start_f08
3363end interface  PMPI_Win_start
3364
3365interface  PMPI_Win_sync
3366subroutine PMPI_Win_sync_f08(win,ierror)
3367   use :: mpi_f08_types, only : MPI_Group, MPI_Win
3368   implicit none
3369   TYPE(MPI_Win), INTENT(IN) :: win
3370   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3371end subroutine PMPI_Win_sync_f08
3372end interface  PMPI_Win_sync
3373
3374interface  PMPI_Win_test
3375subroutine PMPI_Win_test_f08(win,flag,ierror)
3376   use :: mpi_f08_types, only : MPI_Win
3377   implicit none
3378   LOGICAL, INTENT(OUT) :: flag
3379   TYPE(MPI_Win), INTENT(IN) :: win
3380   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3381end subroutine PMPI_Win_test_f08
3382end interface  PMPI_Win_test
3383
3384interface  PMPI_Win_unlock
3385subroutine PMPI_Win_unlock_f08(rank,win,ierror)
3386   use :: mpi_f08_types, only : MPI_Win
3387   implicit none
3388   INTEGER, INTENT(IN) :: rank
3389   TYPE(MPI_Win), INTENT(IN) :: win
3390   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3391end subroutine PMPI_Win_unlock_f08
3392end interface  PMPI_Win_unlock
3393
3394interface  PMPI_Win_unlock_all
3395subroutine PMPI_Win_unlock_all_f08(win,ierror)
3396   use :: mpi_f08_types, only : MPI_Win
3397   implicit none
3398   TYPE(MPI_Win), INTENT(IN) :: win
3399   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3400end subroutine PMPI_Win_unlock_all_f08
3401end interface  PMPI_Win_unlock_all
3402
3403interface  PMPI_Win_wait
3404subroutine PMPI_Win_wait_f08(win,ierror)
3405   use :: mpi_f08_types, only : MPI_Win
3406   implicit none
3407   TYPE(MPI_Win), INTENT(IN) :: win
3408   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3409end subroutine PMPI_Win_wait_f08
3410end interface  PMPI_Win_wait
3411
3412interface  PMPI_Win_flush
3413subroutine PMPI_Win_flush_f08(rank,win,ierror)
3414   use :: mpi_f08_types, only : MPI_Win
3415   implicit none
3416   INTEGER, INTENT(IN) :: rank
3417   TYPE(MPI_Win), INTENT(IN) :: win
3418   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3419end subroutine PMPI_Win_flush_f08
3420end interface  PMPI_Win_flush
3421
3422interface  PMPI_Win_flush_local
3423subroutine PMPI_Win_flush_local_f08(rank,win,ierror)
3424   use :: mpi_f08_types, only : MPI_Win
3425   implicit none
3426   INTEGER, INTENT(IN) :: rank
3427   TYPE(MPI_Win), INTENT(IN) :: win
3428   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3429end subroutine PMPI_Win_flush_local_f08
3430end interface  PMPI_Win_flush_local
3431
3432interface  PMPI_Win_flush_local_all
3433subroutine PMPI_Win_flush_local_all_f08(win,ierror)
3434   use :: mpi_f08_types, only : MPI_Win
3435   implicit none
3436   TYPE(MPI_Win), INTENT(IN) :: win
3437   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3438end subroutine PMPI_Win_flush_local_all_f08
3439end interface  PMPI_Win_flush_local_all
3440
3441interface  PMPI_Win_flush_all
3442subroutine PMPI_Win_flush_all_f08(win,ierror)
3443   use :: mpi_f08_types, only : MPI_Win
3444   implicit none
3445   TYPE(MPI_Win), INTENT(IN) :: win
3446   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3447end subroutine PMPI_Win_flush_all_f08
3448end interface  PMPI_Win_flush_all
3449
3450interface  PMPI_Grequest_complete
3451subroutine PMPI_Grequest_complete_f08(request,ierror)
3452   use :: mpi_f08_types, only : MPI_Request
3453   implicit none
3454   TYPE(MPI_Request), INTENT(IN) :: request
3455   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3456end subroutine PMPI_Grequest_complete_f08
3457end interface  PMPI_Grequest_complete
3458
3459interface  PMPI_Grequest_start
3460subroutine PMPI_Grequest_start_f08(query_fn,free_fn,cancel_fn,extra_state,request, &
3461                                  ierror)
3462   use :: mpi_f08_types, only : MPI_Request, MPI_ADDRESS_KIND
3463   use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_query_function
3464   use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_free_function
3465   use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_cancel_function
3466   implicit none
3467   PROCEDURE(MPI_Grequest_query_function) :: query_fn
3468   PROCEDURE(MPI_Grequest_free_function) :: free_fn
3469   PROCEDURE(MPI_Grequest_cancel_function) :: cancel_fn
3470   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
3471   TYPE(MPI_Request), INTENT(OUT) :: request
3472   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3473end subroutine PMPI_Grequest_start_f08
3474end interface  PMPI_Grequest_start
3475
3476interface  PMPI_Init_thread
3477subroutine PMPI_Init_thread_f08(required,provided,ierror)
3478   implicit none
3479   INTEGER, INTENT(IN) :: required
3480   INTEGER, INTENT(OUT) :: provided
3481   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3482end subroutine PMPI_Init_thread_f08
3483end interface  PMPI_Init_thread
3484
3485interface  PMPI_Is_thread_main
3486subroutine PMPI_Is_thread_main_f08(flag,ierror)
3487   implicit none
3488   LOGICAL, INTENT(OUT) :: flag
3489   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3490end subroutine PMPI_Is_thread_main_f08
3491end interface  PMPI_Is_thread_main
3492
3493interface  PMPI_Query_thread
3494subroutine PMPI_Query_thread_f08(provided,ierror)
3495   implicit none
3496   INTEGER, INTENT(OUT) :: provided
3497   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3498end subroutine PMPI_Query_thread_f08
3499end interface  PMPI_Query_thread
3500
3501interface  PMPI_Status_set_cancelled
3502subroutine PMPI_Status_set_cancelled_f08(status,flag,ierror)
3503   use :: mpi_f08_types, only : MPI_Status
3504   implicit none
3505   TYPE(MPI_Status), INTENT(INOUT) :: status
3506   LOGICAL, INTENT(OUT) :: flag
3507   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3508end subroutine PMPI_Status_set_cancelled_f08
3509end interface  PMPI_Status_set_cancelled
3510
3511interface  PMPI_Status_set_elements
3512subroutine PMPI_Status_set_elements_f08(status,datatype,count,ierror)
3513   use :: mpi_f08_types, only : MPI_Status, MPI_Datatype
3514   implicit none
3515   TYPE(MPI_Status), INTENT(INOUT) :: status
3516   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3517   INTEGER, INTENT(IN) :: count
3518   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3519end subroutine PMPI_Status_set_elements_f08
3520end interface  PMPI_Status_set_elements
3521
3522interface  PMPI_Status_set_elements_x
3523subroutine PMPI_Status_set_elements_x_f08(status,datatype,count,ierror)
3524   use :: mpi_f08_types, only : MPI_Status, MPI_Datatype, MPI_COUNT_KIND
3525   implicit none
3526   TYPE(MPI_Status), INTENT(INOUT) :: status
3527   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3528   INTEGER(MPI_COUNT_KIND), INTENT(IN) :: count
3529   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3530end subroutine PMPI_Status_set_elements_x_f08
3531end interface  PMPI_Status_set_elements_x
3532
3533interface  PMPI_File_close
3534subroutine PMPI_File_close_f08(fh,ierror)
3535   use :: mpi_f08_types, only : MPI_File
3536   implicit none
3537   TYPE(MPI_File), INTENT(INOUT) :: fh
3538   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3539end subroutine PMPI_File_close_f08
3540end interface  PMPI_File_close
3541
3542interface  PMPI_File_delete
3543subroutine PMPI_File_delete_f08(filename,info,ierror)
3544   use :: mpi_f08_types, only : MPI_Info
3545   implicit none
3546   CHARACTER(LEN=*), INTENT(IN) :: filename
3547   TYPE(MPI_Info), INTENT(IN) :: info
3548   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3549end subroutine PMPI_File_delete_f08
3550end interface  PMPI_File_delete
3551
3552interface  PMPI_File_get_amode
3553subroutine PMPI_File_get_amode_f08(fh,amode,ierror)
3554   use :: mpi_f08_types, only : MPI_File
3555   implicit none
3556   TYPE(MPI_File), INTENT(IN) :: fh
3557   INTEGER, INTENT(OUT) :: amode
3558   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3559end subroutine PMPI_File_get_amode_f08
3560end interface  PMPI_File_get_amode
3561
3562interface  PMPI_File_get_atomicity
3563subroutine PMPI_File_get_atomicity_f08(fh,flag,ierror)
3564   use :: mpi_f08_types, only : MPI_File
3565   implicit none
3566   TYPE(MPI_File), INTENT(IN) :: fh
3567   LOGICAL, INTENT(OUT) :: flag
3568   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3569end subroutine PMPI_File_get_atomicity_f08
3570end interface  PMPI_File_get_atomicity
3571
3572interface  PMPI_File_get_byte_offset
3573subroutine PMPI_File_get_byte_offset_f08(fh,offset,disp,ierror)
3574   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
3575   implicit none
3576   TYPE(MPI_File), INTENT(IN) :: fh
3577   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3578   INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp
3579   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3580end subroutine PMPI_File_get_byte_offset_f08
3581end interface  PMPI_File_get_byte_offset
3582
3583interface  PMPI_File_get_group
3584subroutine PMPI_File_get_group_f08(fh,group,ierror)
3585   use :: mpi_f08_types, only : MPI_File, MPI_Group
3586   implicit none
3587   TYPE(MPI_File), INTENT(IN) :: fh
3588   TYPE(MPI_Group), INTENT(OUT) :: group
3589   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3590end subroutine PMPI_File_get_group_f08
3591end interface  PMPI_File_get_group
3592
3593interface  PMPI_File_get_info
3594subroutine PMPI_File_get_info_f08(fh,info_used,ierror)
3595   use :: mpi_f08_types, only : MPI_File, MPI_Info
3596   implicit none
3597   TYPE(MPI_File), INTENT(IN) :: fh
3598   TYPE(MPI_Info), INTENT(OUT) :: info_used
3599   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3600end subroutine PMPI_File_get_info_f08
3601end interface  PMPI_File_get_info
3602
3603interface  PMPI_File_get_position
3604subroutine PMPI_File_get_position_f08(fh,offset,ierror)
3605   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
3606   implicit none
3607   TYPE(MPI_File), INTENT(IN) :: fh
3608   INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset
3609   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3610end subroutine PMPI_File_get_position_f08
3611end interface  PMPI_File_get_position
3612
3613interface  PMPI_File_get_position_shared
3614subroutine PMPI_File_get_position_shared_f08(fh,offset,ierror)
3615   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
3616   implicit none
3617   TYPE(MPI_File), INTENT(IN) :: fh
3618   INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset
3619   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3620end subroutine PMPI_File_get_position_shared_f08
3621end interface  PMPI_File_get_position_shared
3622
3623interface  PMPI_File_get_size
3624subroutine PMPI_File_get_size_f08(fh,size,ierror)
3625   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
3626   implicit none
3627   TYPE(MPI_File), INTENT(IN) :: fh
3628   INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: size
3629   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3630end subroutine PMPI_File_get_size_f08
3631end interface  PMPI_File_get_size
3632
3633interface  PMPI_File_get_type_extent
3634subroutine PMPI_File_get_type_extent_f08(fh,datatype,extent,ierror)
3635   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_ADDRESS_KIND
3636   implicit none
3637   TYPE(MPI_File), INTENT(IN) :: fh
3638   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3639   INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: extent
3640   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3641end subroutine PMPI_File_get_type_extent_f08
3642end interface  PMPI_File_get_type_extent
3643
3644interface  PMPI_File_get_view
3645subroutine PMPI_File_get_view_f08(fh,disp,etype,filetype,datarep,ierror)
3646   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND
3647   implicit none
3648   TYPE(MPI_File), INTENT(IN) :: fh
3649   INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp
3650   TYPE(MPI_Datatype), INTENT(OUT) :: etype
3651   TYPE(MPI_Datatype), INTENT(OUT) :: filetype
3652   CHARACTER(LEN=*), INTENT(OUT) :: datarep
3653   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3654end subroutine PMPI_File_get_view_f08
3655end interface  PMPI_File_get_view
3656
3657interface  PMPI_File_iread
3658subroutine PMPI_File_iread_f08(fh,buf,count,datatype,request,ierror)
3659   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
3660   implicit none
3661   TYPE(MPI_File), INTENT(IN) :: fh
3662   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3663   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3664   !$PRAGMA IGNORE_TKR buf
3665   !DIR$ IGNORE_TKR buf
3666   !IBM* IGNORE_TKR buf
3667   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3668   INTEGER, INTENT(IN) :: count
3669   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3670   TYPE(MPI_Request), INTENT(OUT) :: request
3671   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3672end subroutine PMPI_File_iread_f08
3673end interface  PMPI_File_iread
3674
3675interface  PMPI_File_iread_at
3676subroutine PMPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror)
3677   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
3678   implicit none
3679   TYPE(MPI_File), INTENT(IN) :: fh
3680   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3681   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3682   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3683   !$PRAGMA IGNORE_TKR buf
3684   !DIR$ IGNORE_TKR buf
3685   !IBM* IGNORE_TKR buf
3686   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3687   INTEGER, INTENT(IN) :: count
3688   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3689   TYPE(MPI_Request), INTENT(OUT) :: request
3690   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3691end subroutine PMPI_File_iread_at_f08
3692end interface  PMPI_File_iread_at
3693
3694interface  PMPI_File_iread_all
3695subroutine PMPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror)
3696   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
3697   implicit none
3698   TYPE(MPI_File), INTENT(IN) :: fh
3699   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3700   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3701   !$PRAGMA IGNORE_TKR buf
3702   !DIR$ IGNORE_TKR buf
3703   !IBM* IGNORE_TKR buf
3704   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3705   INTEGER, INTENT(IN) :: count
3706   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3707   TYPE(MPI_Request), INTENT(OUT) :: request
3708   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3709end subroutine PMPI_File_iread_all_f08
3710end interface  PMPI_File_iread_all
3711
3712interface  PMPI_File_iread_at_all
3713subroutine PMPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
3714   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
3715   implicit none
3716   TYPE(MPI_File), INTENT(IN) :: fh
3717   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3718   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3719   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3720   !$PRAGMA IGNORE_TKR buf
3721   !DIR$ IGNORE_TKR buf
3722   !IBM* IGNORE_TKR buf
3723   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3724   INTEGER, INTENT(IN) :: count
3725   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3726   TYPE(MPI_Request), INTENT(OUT) :: request
3727   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3728end subroutine PMPI_File_iread_at_all_f08
3729end interface  PMPI_File_iread_at_all
3730
3731interface  PMPI_File_iread_shared
3732subroutine PMPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror)
3733   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
3734   implicit none
3735   TYPE(MPI_File), INTENT(IN) :: fh
3736   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3737   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3738   !$PRAGMA IGNORE_TKR buf
3739   !DIR$ IGNORE_TKR buf
3740   !IBM* IGNORE_TKR buf
3741   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3742   INTEGER, INTENT(IN) :: count
3743   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3744   TYPE(MPI_Request), INTENT(OUT) :: request
3745   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3746end subroutine PMPI_File_iread_shared_f08
3747end interface  PMPI_File_iread_shared
3748
3749interface  PMPI_File_iwrite
3750subroutine PMPI_File_iwrite_f08(fh,buf,count,datatype,request,ierror)
3751   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
3752   implicit none
3753   TYPE(MPI_File), INTENT(IN) :: fh
3754   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3755   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3756   !$PRAGMA IGNORE_TKR buf
3757   !DIR$ IGNORE_TKR buf
3758   !IBM* IGNORE_TKR buf
3759   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
3760   INTEGER, INTENT(IN) :: count
3761   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3762   TYPE(MPI_Request), INTENT(OUT) :: request
3763   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3764end subroutine PMPI_File_iwrite_f08
3765end interface  PMPI_File_iwrite
3766
3767interface  PMPI_File_iwrite_at
3768subroutine PMPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror)
3769   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
3770   implicit none
3771   TYPE(MPI_File), INTENT(IN) :: fh
3772   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3773   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3774   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3775   !$PRAGMA IGNORE_TKR buf
3776   !DIR$ IGNORE_TKR buf
3777   !IBM* IGNORE_TKR buf
3778   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
3779   INTEGER, INTENT(IN) :: count
3780   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3781   TYPE(MPI_Request), INTENT(OUT) :: request
3782   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3783end subroutine PMPI_File_iwrite_at_f08
3784end interface  PMPI_File_iwrite_at
3785
3786interface  PMPI_File_iwrite_all
3787subroutine PMPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror)
3788   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
3789   implicit none
3790   TYPE(MPI_File), INTENT(IN) :: fh
3791   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3792   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3793   !$PRAGMA IGNORE_TKR buf
3794   !DIR$ IGNORE_TKR buf
3795   !IBM* IGNORE_TKR buf
3796   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
3797   INTEGER, INTENT(IN) :: count
3798   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3799   TYPE(MPI_Request), INTENT(OUT) :: request
3800   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3801end subroutine PMPI_File_iwrite_all_f08
3802end interface  PMPI_File_iwrite_all
3803
3804interface  PMPI_File_iwrite_at_all
3805subroutine PMPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror)
3806   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
3807   implicit none
3808   TYPE(MPI_File), INTENT(IN) :: fh
3809   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3810   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3811   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3812   !$PRAGMA IGNORE_TKR buf
3813   !DIR$ IGNORE_TKR buf
3814   !IBM* IGNORE_TKR buf
3815   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
3816   INTEGER, INTENT(IN) :: count
3817   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3818   TYPE(MPI_Request), INTENT(OUT) :: request
3819   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3820end subroutine PMPI_File_iwrite_at_all_f08
3821end interface  PMPI_File_iwrite_at_all
3822
3823interface  PMPI_File_iwrite_shared
3824subroutine PMPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror)
3825   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
3826   implicit none
3827   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3828   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3829   !$PRAGMA IGNORE_TKR buf
3830   !DIR$ IGNORE_TKR buf
3831   !IBM* IGNORE_TKR buf
3832   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
3833   TYPE(MPI_File), INTENT(IN) :: fh
3834   INTEGER, INTENT(IN) :: count
3835   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3836   TYPE(MPI_Request), INTENT(OUT) :: request
3837   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3838end subroutine PMPI_File_iwrite_shared_f08
3839end interface  PMPI_File_iwrite_shared
3840
3841interface  PMPI_File_open
3842subroutine PMPI_File_open_f08(comm,filename,amode,info,fh,ierror)
3843   use :: mpi_f08_types, only : MPI_Comm, MPI_Info, MPI_File
3844   implicit none
3845   TYPE(MPI_Comm), INTENT(IN) :: comm
3846   CHARACTER(LEN=*), INTENT(IN) :: filename
3847   INTEGER, INTENT(IN) :: amode
3848   TYPE(MPI_Info), INTENT(IN) :: info
3849   TYPE(MPI_File), INTENT(OUT) :: fh
3850   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3851end subroutine PMPI_File_open_f08
3852end interface  PMPI_File_open
3853
3854interface  PMPI_File_preallocate
3855subroutine PMPI_File_preallocate_f08(fh,size,ierror)
3856   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
3857   implicit none
3858   TYPE(MPI_File), INTENT(IN) :: fh
3859   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size
3860   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3861end subroutine PMPI_File_preallocate_f08
3862end interface  PMPI_File_preallocate
3863
3864interface  PMPI_File_read
3865subroutine PMPI_File_read_f08(fh,buf,count,datatype,status,ierror)
3866   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
3867   implicit none
3868   TYPE(MPI_File), INTENT(IN) :: fh
3869   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3870   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3871   !$PRAGMA IGNORE_TKR buf
3872   !DIR$ IGNORE_TKR buf
3873   !IBM* IGNORE_TKR buf
3874   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3875   INTEGER, INTENT(IN) :: count
3876   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3877   TYPE(MPI_Status) :: status
3878   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3879end subroutine PMPI_File_read_f08
3880end interface  PMPI_File_read
3881
3882interface  PMPI_File_read_all
3883subroutine PMPI_File_read_all_f08(fh,buf,count,datatype,status,ierror)
3884   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
3885   implicit none
3886   TYPE(MPI_File), INTENT(IN) :: fh
3887   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3888   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3889   !$PRAGMA IGNORE_TKR buf
3890   !DIR$ IGNORE_TKR buf
3891   !IBM* IGNORE_TKR buf
3892   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3893   INTEGER, INTENT(IN) :: count
3894   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3895   TYPE(MPI_Status) :: status
3896   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3897end subroutine PMPI_File_read_all_f08
3898end interface  PMPI_File_read_all
3899
3900interface  PMPI_File_read_all_begin
3901subroutine PMPI_File_read_all_begin_f08(fh,buf,count,datatype,ierror)
3902   use :: mpi_f08_types, only : MPI_File, MPI_Datatype
3903   implicit none
3904   TYPE(MPI_File), INTENT(IN) :: fh
3905   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3906   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3907   !$PRAGMA IGNORE_TKR buf
3908   !DIR$ IGNORE_TKR buf
3909   !IBM* IGNORE_TKR buf
3910   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3911   INTEGER, INTENT(IN) :: count
3912   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3913   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3914end subroutine PMPI_File_read_all_begin_f08
3915end interface  PMPI_File_read_all_begin
3916
3917interface  PMPI_File_read_all_end
3918subroutine PMPI_File_read_all_end_f08(fh,buf,status,ierror)
3919   use :: mpi_f08_types, only : MPI_File, MPI_Status
3920   implicit none
3921   TYPE(MPI_File), INTENT(IN) :: fh
3922   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3923   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3924   !$PRAGMA IGNORE_TKR buf
3925   !DIR$ IGNORE_TKR buf
3926   !IBM* IGNORE_TKR buf
3927   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3928   TYPE(MPI_Status) :: status
3929   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3930end subroutine PMPI_File_read_all_end_f08
3931end interface  PMPI_File_read_all_end
3932
3933interface  PMPI_File_read_at
3934subroutine PMPI_File_read_at_f08(fh,offset,buf,count,datatype,status,ierror)
3935   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
3936   implicit none
3937   TYPE(MPI_File), INTENT(IN) :: fh
3938   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3939   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3940   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3941   !$PRAGMA IGNORE_TKR buf
3942   !DIR$ IGNORE_TKR buf
3943   !IBM* IGNORE_TKR buf
3944   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3945   INTEGER, INTENT(IN) :: count
3946   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3947   TYPE(MPI_Status) :: status
3948   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3949end subroutine PMPI_File_read_at_f08
3950end interface  PMPI_File_read_at
3951
3952interface  PMPI_File_read_at_all
3953subroutine PMPI_File_read_at_all_f08(fh,offset,buf,count,datatype,status,ierror)
3954   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
3955   implicit none
3956   TYPE(MPI_File), INTENT(IN) :: fh
3957   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3958   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3959   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3960   !$PRAGMA IGNORE_TKR buf
3961   !DIR$ IGNORE_TKR buf
3962   !IBM* IGNORE_TKR buf
3963   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3964   INTEGER, INTENT(IN) :: count
3965   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3966   TYPE(MPI_Status) :: status
3967   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3968end subroutine PMPI_File_read_at_all_f08
3969end interface  PMPI_File_read_at_all
3970
3971interface  PMPI_File_read_at_all_begin
3972subroutine PMPI_File_read_at_all_begin_f08(fh,offset,buf,count,datatype,ierror)
3973   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND
3974   implicit none
3975   TYPE(MPI_File), INTENT(IN) :: fh
3976   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
3977   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3978   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3979   !$PRAGMA IGNORE_TKR buf
3980   !DIR$ IGNORE_TKR buf
3981   !IBM* IGNORE_TKR buf
3982   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
3983   INTEGER, INTENT(IN) :: count
3984   TYPE(MPI_Datatype), INTENT(IN) :: datatype
3985   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
3986end subroutine PMPI_File_read_at_all_begin_f08
3987end interface  PMPI_File_read_at_all_begin
3988
3989interface  PMPI_File_read_at_all_end
3990subroutine PMPI_File_read_at_all_end_f08(fh,buf,status,ierror)
3991   use :: mpi_f08_types, only : MPI_File, MPI_Status
3992   implicit none
3993   TYPE(MPI_File), INTENT(IN) :: fh
3994   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
3995   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
3996   !$PRAGMA IGNORE_TKR buf
3997   !DIR$ IGNORE_TKR buf
3998   !IBM* IGNORE_TKR buf
3999   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4000   TYPE(MPI_Status) :: status
4001   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4002end subroutine PMPI_File_read_at_all_end_f08
4003end interface  PMPI_File_read_at_all_end
4004
4005interface  PMPI_File_read_ordered
4006subroutine PMPI_File_read_ordered_f08(fh,buf,count,datatype,status,ierror)
4007   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
4008   implicit none
4009   TYPE(MPI_File), INTENT(IN) :: fh
4010   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4011   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4012   !$PRAGMA IGNORE_TKR buf
4013   !DIR$ IGNORE_TKR buf
4014   !IBM* IGNORE_TKR buf
4015   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4016   INTEGER, INTENT(IN) :: count
4017   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4018   TYPE(MPI_Status) :: status
4019   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4020end subroutine PMPI_File_read_ordered_f08
4021end interface  PMPI_File_read_ordered
4022
4023interface  PMPI_File_read_ordered_begin
4024subroutine PMPI_File_read_ordered_begin_f08(fh,buf,count,datatype,ierror)
4025   use :: mpi_f08_types, only : MPI_File, MPI_Datatype
4026   implicit none
4027   TYPE(MPI_File), INTENT(IN) :: fh
4028   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4029   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4030   !$PRAGMA IGNORE_TKR buf
4031   !DIR$ IGNORE_TKR buf
4032   !IBM* IGNORE_TKR buf
4033   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4034   INTEGER, INTENT(IN) :: count
4035   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4036   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4037end subroutine PMPI_File_read_ordered_begin_f08
4038end interface  PMPI_File_read_ordered_begin
4039
4040interface  PMPI_File_read_ordered_end
4041subroutine PMPI_File_read_ordered_end_f08(fh,buf,status,ierror)
4042   use :: mpi_f08_types, only : MPI_File, MPI_Status
4043   implicit none
4044   TYPE(MPI_File), INTENT(IN) :: fh
4045   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4046   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4047   !$PRAGMA IGNORE_TKR buf
4048   !DIR$ IGNORE_TKR buf
4049   !IBM* IGNORE_TKR buf
4050   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4051   TYPE(MPI_Status) :: status
4052   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4053end subroutine PMPI_File_read_ordered_end_f08
4054end interface  PMPI_File_read_ordered_end
4055
4056interface  PMPI_File_read_shared
4057subroutine PMPI_File_read_shared_f08(fh,buf,count,datatype,status,ierror)
4058   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
4059   implicit none
4060   TYPE(MPI_File), INTENT(IN) :: fh
4061   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4062   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4063   !$PRAGMA IGNORE_TKR buf
4064   !DIR$ IGNORE_TKR buf
4065   !IBM* IGNORE_TKR buf
4066   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4067   INTEGER, INTENT(IN) :: count
4068   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4069   TYPE(MPI_Status) :: status
4070   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4071end subroutine PMPI_File_read_shared_f08
4072end interface  PMPI_File_read_shared
4073
4074interface  PMPI_File_seek
4075subroutine PMPI_File_seek_f08(fh,offset,whence,ierror)
4076   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
4077   implicit none
4078   TYPE(MPI_File), INTENT(IN) :: fh
4079   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
4080   INTEGER, INTENT(IN) :: whence
4081   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4082end subroutine PMPI_File_seek_f08
4083end interface  PMPI_File_seek
4084
4085interface  PMPI_File_seek_shared
4086subroutine PMPI_File_seek_shared_f08(fh,offset,whence,ierror)
4087   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
4088   implicit none
4089   TYPE(MPI_File), INTENT(IN) :: fh
4090   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
4091   INTEGER, INTENT(IN) :: whence
4092   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4093end subroutine PMPI_File_seek_shared_f08
4094end interface  PMPI_File_seek_shared
4095
4096interface  PMPI_File_set_atomicity
4097subroutine PMPI_File_set_atomicity_f08(fh,flag,ierror)
4098   use :: mpi_f08_types, only : MPI_File
4099   implicit none
4100   TYPE(MPI_File), INTENT(IN) :: fh
4101   LOGICAL, INTENT(IN) :: flag
4102   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4103end subroutine PMPI_File_set_atomicity_f08
4104end interface  PMPI_File_set_atomicity
4105
4106interface  PMPI_File_set_info
4107subroutine PMPI_File_set_info_f08(fh,info,ierror)
4108   use :: mpi_f08_types, only : MPI_File, MPI_Info
4109   implicit none
4110   TYPE(MPI_File), INTENT(IN) :: fh
4111   TYPE(MPI_Info), INTENT(IN) :: info
4112   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4113end subroutine PMPI_File_set_info_f08
4114end interface  PMPI_File_set_info
4115
4116interface  PMPI_File_set_size
4117subroutine PMPI_File_set_size_f08(fh,size,ierror)
4118   use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
4119   implicit none
4120   TYPE(MPI_File), INTENT(IN) :: fh
4121   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size
4122   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4123end subroutine PMPI_File_set_size_f08
4124end interface  PMPI_File_set_size
4125
4126interface  PMPI_File_set_view
4127subroutine PMPI_File_set_view_f08(fh,disp,etype,filetype,datarep,info,ierror)
4128   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Info, MPI_OFFSET_KIND
4129   implicit none
4130   TYPE(MPI_File), INTENT(IN) :: fh
4131   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: disp
4132   TYPE(MPI_Datatype), INTENT(IN) :: etype
4133   TYPE(MPI_Datatype), INTENT(IN) :: filetype
4134   CHARACTER(LEN=*), INTENT(IN) :: datarep
4135   TYPE(MPI_Info), INTENT(IN) :: info
4136   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4137end subroutine PMPI_File_set_view_f08
4138end interface  PMPI_File_set_view
4139
4140interface  PMPI_File_sync
4141subroutine PMPI_File_sync_f08(fh,ierror)
4142   use :: mpi_f08_types, only : MPI_File
4143   implicit none
4144   TYPE(MPI_File), INTENT(IN) :: fh
4145   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4146end subroutine PMPI_File_sync_f08
4147end interface  PMPI_File_sync
4148
4149interface  PMPI_File_write
4150subroutine PMPI_File_write_f08(fh,buf,count,datatype,status,ierror)
4151   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
4152   implicit none
4153   TYPE(MPI_File), INTENT(IN) :: fh
4154   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4155   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4156   !$PRAGMA IGNORE_TKR buf
4157   !DIR$ IGNORE_TKR buf
4158   !IBM* IGNORE_TKR buf
4159   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4160   INTEGER, INTENT(IN) :: count
4161   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4162   TYPE(MPI_Status) :: status
4163   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4164end subroutine PMPI_File_write_f08
4165end interface  PMPI_File_write
4166
4167interface  PMPI_File_write_all
4168subroutine PMPI_File_write_all_f08(fh,buf,count,datatype,status,ierror)
4169   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
4170   implicit none
4171   TYPE(MPI_File), INTENT(IN) :: fh
4172   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4173   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4174   !$PRAGMA IGNORE_TKR buf
4175   !DIR$ IGNORE_TKR buf
4176   !IBM* IGNORE_TKR buf
4177   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4178   INTEGER, INTENT(IN) :: count
4179   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4180   TYPE(MPI_Status) :: status
4181   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4182end subroutine PMPI_File_write_all_f08
4183end interface  PMPI_File_write_all
4184
4185interface  PMPI_File_write_all_begin
4186subroutine PMPI_File_write_all_begin_f08(fh,buf,count,datatype,ierror)
4187   use :: mpi_f08_types, only : MPI_File, MPI_Datatype
4188   implicit none
4189   TYPE(MPI_File), INTENT(IN) :: fh
4190   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4191   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4192   !$PRAGMA IGNORE_TKR buf
4193   !DIR$ IGNORE_TKR buf
4194   !IBM* IGNORE_TKR buf
4195   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4196   INTEGER, INTENT(IN) :: count
4197   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4198   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4199end subroutine PMPI_File_write_all_begin_f08
4200end interface  PMPI_File_write_all_begin
4201
4202interface  PMPI_File_write_all_end
4203subroutine PMPI_File_write_all_end_f08(fh,buf,status,ierror)
4204   use :: mpi_f08_types, only : MPI_File, MPI_Status
4205   implicit none
4206   TYPE(MPI_File), INTENT(IN) :: fh
4207   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4208   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4209   !$PRAGMA IGNORE_TKR buf
4210   !DIR$ IGNORE_TKR buf
4211   !IBM* IGNORE_TKR buf
4212   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4213   TYPE(MPI_Status) :: status
4214   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4215end subroutine PMPI_File_write_all_end_f08
4216end interface  PMPI_File_write_all_end
4217
4218interface  PMPI_File_write_at
4219subroutine PMPI_File_write_at_f08(fh,offset,buf,count,datatype,status,ierror)
4220   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
4221   implicit none
4222   TYPE(MPI_File), INTENT(IN) :: fh
4223   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
4224   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4225   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4226   !$PRAGMA IGNORE_TKR buf
4227   !DIR$ IGNORE_TKR buf
4228   !IBM* IGNORE_TKR buf
4229   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4230   INTEGER, INTENT(IN) :: count
4231   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4232   TYPE(MPI_Status) :: status
4233   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4234end subroutine PMPI_File_write_at_f08
4235end interface  PMPI_File_write_at
4236
4237interface  PMPI_File_write_at_all
4238subroutine PMPI_File_write_at_all_f08(fh,offset,buf,count,datatype,status,ierror)
4239   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
4240   implicit none
4241   TYPE(MPI_File), INTENT(IN) :: fh
4242   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
4243   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4244   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4245   !$PRAGMA IGNORE_TKR buf
4246   !DIR$ IGNORE_TKR buf
4247   !IBM* IGNORE_TKR buf
4248   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4249   INTEGER, INTENT(IN) :: count
4250   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4251   TYPE(MPI_Status) :: status
4252   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4253end subroutine PMPI_File_write_at_all_f08
4254end interface  PMPI_File_write_at_all
4255
4256interface  PMPI_File_write_at_all_begin
4257subroutine PMPI_File_write_at_all_begin_f08(fh,offset,buf,count,datatype,ierror)
4258   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND
4259   implicit none
4260   TYPE(MPI_File), INTENT(IN) :: fh
4261   INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
4262   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4263   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4264   !$PRAGMA IGNORE_TKR buf
4265   !DIR$ IGNORE_TKR buf
4266   !IBM* IGNORE_TKR buf
4267   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4268   INTEGER, INTENT(IN) :: count
4269   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4270   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4271end subroutine PMPI_File_write_at_all_begin_f08
4272end interface  PMPI_File_write_at_all_begin
4273
4274interface  PMPI_File_write_at_all_end
4275subroutine PMPI_File_write_at_all_end_f08(fh,buf,status,ierror)
4276   use :: mpi_f08_types, only : MPI_File, MPI_Status
4277   implicit none
4278   TYPE(MPI_File), INTENT(IN) :: fh
4279   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4280   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4281   !$PRAGMA IGNORE_TKR buf
4282   !DIR$ IGNORE_TKR buf
4283   !IBM* IGNORE_TKR buf
4284   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4285   TYPE(MPI_Status) :: status
4286   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4287end subroutine PMPI_File_write_at_all_end_f08
4288end interface  PMPI_File_write_at_all_end
4289
4290interface  PMPI_File_write_ordered
4291subroutine PMPI_File_write_ordered_f08(fh,buf,count,datatype,status,ierror)
4292   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
4293   implicit none
4294   TYPE(MPI_File), INTENT(IN) :: fh
4295   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4296   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4297   !$PRAGMA IGNORE_TKR buf
4298   !DIR$ IGNORE_TKR buf
4299   !IBM* IGNORE_TKR buf
4300   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4301   INTEGER, INTENT(IN) :: count
4302   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4303   TYPE(MPI_Status) :: status
4304   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4305end subroutine PMPI_File_write_ordered_f08
4306end interface  PMPI_File_write_ordered
4307
4308interface  PMPI_File_write_ordered_begin
4309subroutine PMPI_File_write_ordered_begin_f08(fh,buf,count,datatype,ierror)
4310   use :: mpi_f08_types, only : MPI_File, MPI_Datatype
4311   implicit none
4312   TYPE(MPI_File), INTENT(IN) :: fh
4313   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4314   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4315   !$PRAGMA IGNORE_TKR buf
4316   !DIR$ IGNORE_TKR buf
4317   !IBM* IGNORE_TKR buf
4318   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4319   INTEGER, INTENT(IN) :: count
4320   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4321   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4322end subroutine PMPI_File_write_ordered_begin_f08
4323end interface  PMPI_File_write_ordered_begin
4324
4325interface  PMPI_File_write_ordered_end
4326subroutine PMPI_File_write_ordered_end_f08(fh,buf,status,ierror)
4327   use :: mpi_f08_types, only : MPI_File, MPI_Status
4328   implicit none
4329   TYPE(MPI_File), INTENT(IN) :: fh
4330   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4331   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4332   !$PRAGMA IGNORE_TKR buf
4333   !DIR$ IGNORE_TKR buf
4334   !IBM* IGNORE_TKR buf
4335   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4336   TYPE(MPI_Status) :: status
4337   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4338end subroutine PMPI_File_write_ordered_end_f08
4339end interface  PMPI_File_write_ordered_end
4340
4341interface  PMPI_File_write_shared
4342subroutine PMPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror)
4343   use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
4344   implicit none
4345   TYPE(MPI_File), INTENT(IN) :: fh
4346   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4347   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4348   !$PRAGMA IGNORE_TKR buf
4349   !DIR$ IGNORE_TKR buf
4350   !IBM* IGNORE_TKR buf
4351   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
4352   INTEGER, INTENT(IN) :: count
4353   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4354   TYPE(MPI_Status) :: status
4355   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4356end subroutine PMPI_File_write_shared_f08
4357end interface  PMPI_File_write_shared
4358
4359interface  PMPI_Register_datarep
4360subroutine PMPI_Register_datarep_f08(datarep,read_conversion_fn,write_conversion_fn, &
4361                                            dtype_file_extent_fn,extra_state,ierror)
4362   use :: mpi_f08_types, only : MPI_ADDRESS_KIND
4363   use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_conversion_function
4364   use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_extent_function
4365   implicit none
4366   CHARACTER(LEN=*), INTENT(IN) :: datarep
4367   PROCEDURE(MPI_Datarep_conversion_function) :: read_conversion_fn
4368   PROCEDURE(MPI_Datarep_conversion_function) :: write_conversion_fn
4369   PROCEDURE(MPI_Datarep_extent_function) :: dtype_file_extent_fn
4370   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
4371   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4372end subroutine PMPI_Register_datarep_f08
4373end interface  PMPI_Register_datarep
4374
4375!
4376! MPI_Sizeof is generic for numeric types.  This ignore TKR interface
4377! is replaced by the specific generics.  Implemented in mpi_sizeof_mod.F90.
4378!
4379!subroutine PMPI_Sizeof(x,size,ierror)
4380!   use :: mpi_f08_types
4381!   implicit none
4382!   !DEC$ ATTRIBUTES NO_ARG_CHECK :: x
4383!   !GCC$ ATTRIBUTES NO_ARG_CHECK :: x
4384!   !$PRAGMA IGNORE_TKR x
4385!   !DIR$ IGNORE_TKR x
4386!   !IBM* IGNORE_TKR x
4387!   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: x
4388!   INTEGER, INTENT(OUT) :: size
4389!   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4390!end subroutine PMPI_Sizeof
4391
4392interface  PMPI_Type_create_f90_complex
4393subroutine PMPI_Type_create_f90_complex_f08(p,r,newtype,ierror)
4394   use :: mpi_f08_types, only : MPI_Datatype
4395   implicit none
4396   INTEGER, INTENT(IN) :: p, r
4397   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
4398   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4399end subroutine PMPI_Type_create_f90_complex_f08
4400end interface  PMPI_Type_create_f90_complex
4401
4402interface  PMPI_Type_create_f90_integer
4403subroutine PMPI_Type_create_f90_integer_f08(r,newtype,ierror)
4404   use :: mpi_f08_types, only : MPI_Datatype
4405   implicit none
4406   INTEGER, INTENT(IN) :: r
4407   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
4408   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4409end subroutine PMPI_Type_create_f90_integer_f08
4410end interface  PMPI_Type_create_f90_integer
4411
4412interface  PMPI_Type_create_f90_real
4413subroutine PMPI_Type_create_f90_real_f08(p,r,newtype,ierror)
4414   use :: mpi_f08_types, only : MPI_Datatype
4415   implicit none
4416   INTEGER, INTENT(IN) :: p, r
4417   TYPE(MPI_Datatype), INTENT(OUT) :: newtype
4418   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4419end subroutine PMPI_Type_create_f90_real_f08
4420end interface  PMPI_Type_create_f90_real
4421
4422interface  PMPI_Type_match_size
4423subroutine PMPI_Type_match_size_f08(typeclass,size,datatype,ierror)
4424   use :: mpi_f08_types, only : MPI_Datatype
4425   implicit none
4426   INTEGER, INTENT(IN) :: typeclass, size
4427   TYPE(MPI_Datatype), INTENT(OUT) :: datatype
4428   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4429end subroutine PMPI_Type_match_size_f08
4430end interface  PMPI_Type_match_size
4431
4432interface  PMPI_Pcontrol
4433subroutine PMPI_Pcontrol_f08(level)
4434   implicit none
4435   INTEGER, INTENT(IN) :: level
4436end subroutine PMPI_Pcontrol_f08
4437end interface  PMPI_Pcontrol
4438
4439
4440!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4441! New routines to MPI-3
4442!
4443
4444interface  PMPI_Comm_split_type
4445subroutine PMPI_Comm_split_type_f08(comm,split_type,key,info,newcomm,ierror)
4446   use :: mpi_f08_types, only : MPI_Comm, MPI_Info
4447   implicit none
4448   TYPE(MPI_Comm), INTENT(IN) :: comm
4449   INTEGER, INTENT(IN) :: split_type
4450   INTEGER, INTENT(IN) :: key
4451   TYPE(MPI_Info), INTENT(IN) :: info
4452   TYPE(MPI_Comm), INTENT(OUT) :: newcomm
4453   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4454end subroutine PMPI_Comm_split_type_f08
4455end interface  PMPI_Comm_split_type
4456
4457interface  PMPI_F_sync_reg
4458subroutine PMPI_F_sync_reg_f08(buf)
4459   implicit none
4460   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4461   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4462   !$PRAGMA IGNORE_TKR buf
4463   !DIR$ IGNORE_TKR buf
4464   !IBM* IGNORE_TKR buf
4465   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4466end subroutine PMPI_F_sync_reg_f08
4467end interface  PMPI_F_sync_reg
4468
4469interface  PMPI_Get_library_version
4470subroutine PMPI_Get_library_version_f08(version,resultlen,ierror)
4471   use :: mpi_f08_types, only : MPI_MAX_LIBRARY_VERSION_STRING
4472   implicit none
4473   character(len=MPI_MAX_LIBRARY_VERSION_STRING), intent(out) :: version
4474   integer, intent(out) :: resultlen
4475   integer, optional, intent(out) :: ierror
4476end subroutine PMPI_Get_library_version_f08
4477end interface  PMPI_Get_library_version
4478
4479interface  PMPI_Mprobe
4480subroutine PMPI_Mprobe_f08(source,tag,comm,message,status,ierror)
4481   use :: mpi_f08_types, only : MPI_Comm, MPI_Message, MPI_Status
4482   implicit none
4483   INTEGER, INTENT(IN) :: source, tag
4484   TYPE(MPI_Comm), INTENT(IN) :: comm
4485   TYPE(MPI_Message), INTENT(OUT) :: message
4486   TYPE(MPI_Status), INTENT(OUT) :: status
4487   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4488end subroutine PMPI_Mprobe_f08
4489end interface  PMPI_Mprobe
4490
4491interface  PMPI_Improbe
4492subroutine PMPI_Improbe_f08(source,tag,comm,flag,message,status,ierror)
4493   use :: mpi_f08_types, only : MPI_Comm, MPI_Message, MPI_Status
4494   implicit none
4495   INTEGER, INTENT(IN) :: source, tag
4496   TYPE(MPI_Comm), INTENT(IN) :: comm
4497   LOGICAL, INTENT(OUT) :: flag
4498   TYPE(MPI_Message), INTENT(OUT) :: message
4499   TYPE(MPI_Status), INTENT(OUT) :: status
4500   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4501end subroutine PMPI_Improbe_f08
4502end interface  PMPI_Improbe
4503
4504interface  PMPI_Imrecv
4505subroutine PMPI_Imrecv_f08(buf,count,datatype,message,request,ierror)
4506   use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request
4507   implicit none
4508   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4509   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4510   !$PRAGMA IGNORE_TKR buf
4511   !DIR$ IGNORE_TKR buf
4512   !IBM* IGNORE_TKR buf
4513   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4514   INTEGER, INTENT(IN) :: count
4515   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4516   TYPE(MPI_Message), INTENT(INOUT) :: message
4517   TYPE(MPI_Request), INTENT(OUT) :: request
4518   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4519end subroutine PMPI_Imrecv_f08
4520end interface  PMPI_Imrecv
4521
4522interface  PMPI_Mrecv
4523subroutine PMPI_Mrecv_f08(buf,count,datatype,message,status,ierror)
4524   use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status
4525   implicit none
4526   !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
4527   !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
4528   !$PRAGMA IGNORE_TKR buf
4529   !DIR$ IGNORE_TKR buf
4530   !IBM* IGNORE_TKR buf
4531   OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
4532   INTEGER, INTENT(IN) :: count
4533   TYPE(MPI_Datatype), INTENT(IN) :: datatype
4534   TYPE(MPI_Message), INTENT(INOUT) :: message
4535   TYPE(MPI_Status) :: status
4536   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4537end subroutine PMPI_Mrecv_f08
4538end interface  PMPI_Mrecv
4539
4540interface  PMPI_Neighbor_allgather
4541subroutine PMPI_Neighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
4542                             comm,ierror)
4543   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
4544   implicit none
4545   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4546   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4547   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4548   !DIR$ IGNORE_TKR sendbuf, recvbuf
4549   !IBM* IGNORE_TKR sendbuf, recvbuf
4550   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4551   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4552   INTEGER, INTENT(IN) :: sendcount, recvcount
4553   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4554   TYPE(MPI_Comm), INTENT(IN) :: comm
4555   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4556end subroutine PMPI_Neighbor_allgather_f08
4557end interface  PMPI_Neighbor_allgather
4558
4559interface  PMPI_Ineighbor_allgather
4560subroutine PMPI_Ineighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
4561                             comm,request,ierror)
4562   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
4563   implicit none
4564   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4565   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4566   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4567   !DIR$ IGNORE_TKR sendbuf, recvbuf
4568   !IBM* IGNORE_TKR sendbuf, recvbuf
4569   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4570   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4571   INTEGER, INTENT(IN) :: sendcount, recvcount
4572   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4573   TYPE(MPI_Comm), INTENT(IN) :: comm
4574   TYPE(MPI_Request), INTENT(OUT) :: request
4575   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4576end subroutine PMPI_Ineighbor_allgather_f08
4577end interface  PMPI_Ineighbor_allgather
4578
4579interface  PMPI_Neighbor_allgatherv
4580subroutine PMPI_Neighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
4581                              recvtype,comm,ierror)
4582   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
4583   implicit none
4584   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4585   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4586   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4587   !DIR$ IGNORE_TKR sendbuf, recvbuf
4588   !IBM* IGNORE_TKR sendbuf, recvbuf
4589   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4590   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4591   INTEGER, INTENT(IN) :: sendcount
4592   INTEGER, INTENT(IN) :: recvcounts(*), displs(*)
4593   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4594   TYPE(MPI_Comm), INTENT(IN) :: comm
4595   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4596end subroutine PMPI_Neighbor_allgatherv_f08
4597end interface  PMPI_Neighbor_allgatherv
4598
4599interface  PMPI_Ineighbor_allgatherv
4600subroutine PMPI_Ineighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
4601                              recvtype,comm,request,ierror)
4602   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
4603   implicit none
4604   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4605   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4606   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4607   !DIR$ IGNORE_TKR sendbuf, recvbuf
4608   !IBM* IGNORE_TKR sendbuf, recvbuf
4609   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4610   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4611   INTEGER, INTENT(IN) :: sendcount
4612   INTEGER, INTENT(IN) :: recvcounts(*), displs(*)
4613   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4614   TYPE(MPI_Comm), INTENT(IN) :: comm
4615   TYPE(MPI_Request), INTENT(OUT) :: request
4616   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4617end subroutine PMPI_Ineighbor_allgatherv_f08
4618end interface  PMPI_Ineighbor_allgatherv
4619
4620interface  PMPI_Neighbor_alltoall
4621subroutine PMPI_Neighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
4622                            comm,ierror)
4623   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
4624   implicit none
4625   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4626   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4627   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4628   !DIR$ IGNORE_TKR sendbuf, recvbuf
4629   !IBM* IGNORE_TKR sendbuf, recvbuf
4630   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4631   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4632   INTEGER, INTENT(IN) :: sendcount, recvcount
4633   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4634   TYPE(MPI_Comm), INTENT(IN) :: comm
4635   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4636end subroutine PMPI_Neighbor_alltoall_f08
4637end interface  PMPI_Neighbor_alltoall
4638
4639interface  PMPI_Ineighbor_alltoall
4640subroutine PMPI_Ineighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
4641                            comm,request,ierror)
4642   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
4643   implicit none
4644   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4645   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4646   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4647   !DIR$ IGNORE_TKR sendbuf, recvbuf
4648   !IBM* IGNORE_TKR sendbuf, recvbuf
4649   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4650   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4651   INTEGER, INTENT(IN) :: sendcount, recvcount
4652   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4653   TYPE(MPI_Comm), INTENT(IN) :: comm
4654   TYPE(MPI_Request), INTENT(OUT) :: request
4655   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4656end subroutine PMPI_Ineighbor_alltoall_f08
4657end interface  PMPI_Ineighbor_alltoall
4658
4659interface  PMPI_Neighbor_alltoallv
4660subroutine PMPI_Neighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, &
4661                             rdispls,recvtype,comm,ierror)
4662   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
4663   implicit none
4664   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4665   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4666   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4667   !DIR$ IGNORE_TKR sendbuf, recvbuf
4668   !IBM* IGNORE_TKR sendbuf, recvbuf
4669   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4670   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4671   INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
4672   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4673   TYPE(MPI_Comm), INTENT(IN) :: comm
4674   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4675end subroutine PMPI_Neighbor_alltoallv_f08
4676end interface  PMPI_Neighbor_alltoallv
4677
4678interface  PMPI_Ineighbor_alltoallv
4679subroutine PMPI_Ineighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, &
4680                             rdispls,recvtype,comm,request,ierror)
4681   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
4682   implicit none
4683   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4684   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4685   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4686   !DIR$ IGNORE_TKR sendbuf, recvbuf
4687   !IBM* IGNORE_TKR sendbuf, recvbuf
4688   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4689   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4690   INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
4691   TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
4692   TYPE(MPI_Comm), INTENT(IN) :: comm
4693   TYPE(MPI_Request), INTENT(OUT) :: request
4694   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4695end subroutine PMPI_Ineighbor_alltoallv_f08
4696end interface  PMPI_Ineighbor_alltoallv
4697
4698interface  PMPI_Neighbor_alltoallw
4699subroutine PMPI_Neighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, &
4700                             rdispls,recvtypes,comm,ierror)
4701   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_ADDRESS_KIND
4702   implicit none
4703   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4704   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4705   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4706   !DIR$ IGNORE_TKR sendbuf, recvbuf
4707   !IBM* IGNORE_TKR sendbuf, recvbuf
4708   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4709   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4710   INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*)
4711   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*)
4712   TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*)
4713   TYPE(MPI_Comm), INTENT(IN) :: comm
4714   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4715end subroutine PMPI_Neighbor_alltoallw_f08
4716end interface  PMPI_Neighbor_alltoallw
4717
4718interface  PMPI_Ineighbor_alltoallw
4719subroutine PMPI_Ineighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, &
4720                             rdispls,recvtypes,comm,request,ierror)
4721   use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND
4722   implicit none
4723   !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4724   !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
4725   !$PRAGMA IGNORE_TKR sendbuf, recvbuf
4726   !DIR$ IGNORE_TKR sendbuf, recvbuf
4727   !IBM* IGNORE_TKR sendbuf, recvbuf
4728   OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
4729   OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
4730   INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*)
4731   INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*)
4732   TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*)
4733   TYPE(MPI_Comm), INTENT(IN) :: comm
4734   TYPE(MPI_Request), INTENT(OUT) :: request
4735   INTEGER, OPTIONAL, INTENT(OUT) :: ierror
4736end subroutine PMPI_Ineighbor_alltoallw_f08
4737end interface  PMPI_Ineighbor_alltoallw
4738
4739end module pmpi_f08_interfaces
4740