1 ! -*- fortran -*-
2 !
3 ! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
4 !                         University Research and Technology
5 !                         Corporation.  All rights reserved.
6 ! Copyright (c) 2004-2005 The University of Tennessee and The University
7 !                         of Tennessee Research Foundation.  All rights
8 !                         reserved.
9 ! Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
10 !                         University of Stuttgart.  All rights reserved.
11 ! Copyright (c) 2004-2005 The Regents of the University of California.
12 !                         All rights reserved.
13 ! Copyright (c) 2006-2018 Cisco Systems, Inc.  All rights reserved.
14 ! Copyright (c) 2016-2018 Research Organization for Information Science
15 !                         and Technology (RIST).  All rights reserved.
16 ! $COPYRIGHT$
17 !
18 ! Additional copyrights may follow
19 !
20 ! $HEADER$
21 !
22 
23 interface PMPI_Wtick
24 
25 function PMPI_Wtick()
26     double precision PMPI_Wtick
27 end function PMPI_Wtick
28 
29 end interface
30 
31 
32 interface PMPI_Wtime
33 
34 function PMPI_Wtime()
35     double precision PMPI_Wtime
36 end function PMPI_Wtime
37 
38 end interface
39 
40 
41 interface PMPI_Abort
42 
43 subroutine PMPI_Abort(comm, errorcode, ierror)
44   integer, intent(in) :: comm
45   integer, intent(in) :: errorcode
46   integer, intent(out) :: ierror
47 end subroutine PMPI_Abort
48 
49 end interface
50 
51 
52 interface PMPI_Add_error_class
53 
54 subroutine PMPI_Add_error_class(errorclass, ierror)
55   integer, intent(out) :: errorclass
56   integer, intent(out) :: ierror
57 end subroutine PMPI_Add_error_class
58 
59 end interface
60 
61 
62 interface PMPI_Add_error_code
63 
64 subroutine PMPI_Add_error_code(errorclass, errorcode, ierror)
65   integer, intent(in) :: errorclass
66   integer, intent(out) :: errorcode
67   integer, intent(out) :: ierror
68 end subroutine PMPI_Add_error_code
69 
70 end interface
71 
72 
73 interface PMPI_Add_error_string
74 
75 subroutine PMPI_Add_error_string(errorcode, string, ierror)
76   integer, intent(in) :: errorcode
77   character(len=*), intent(in) :: string
78   integer, intent(out) :: ierror
79 end subroutine PMPI_Add_error_string
80 
81 end interface
82 
83 interface PMPI_Aint_add
84 
85 function PMPI_Aint_add(base, diff)
86   include 'mpif-config.h'
87   integer(kind=MPI_ADDRESS_KIND), intent(in) :: base
88   integer(kind=MPI_ADDRESS_KIND), intent(in) :: diff
89   integer(kind=MPI_ADDRESS_KIND) PMPI_Aint_add
90 end function PMPI_Aint_add
91 
92 end interface
93 
94 interface PMPI_Aint_diff
95 
96 function PMPI_Aint_diff(addr1, addr2)
97   include 'mpif-config.h'
98   integer(kind=MPI_ADDRESS_KIND), intent(in) :: addr1
99   integer(kind=MPI_ADDRESS_KIND), intent(in) :: addr2
100   integer(kind=MPI_ADDRESS_KIND) PMPI_Aint_diff
101 end function PMPI_Aint_diff
102 
103 end interface
104 
105 
106 interface PMPI_Barrier
107 
108 subroutine PMPI_Barrier(comm, ierror)
109   integer, intent(in) :: comm
110   integer, intent(out) :: ierror
111 end subroutine PMPI_Barrier
112 
113 end interface
114 
115 
116 interface PMPI_Ibarrier
117 
118 subroutine PMPI_Ibarrier(comm, request, ierror)
119   integer, intent(in) :: comm
120   integer, intent(out) :: request
121   integer, intent(out) :: ierror
122 end subroutine PMPI_Ibarrier
123 
124 end interface
125 
126 
127 interface PMPI_Cancel
128 
129 subroutine PMPI_Cancel(request, ierror)
130   integer, intent(in) :: request
131   integer, intent(out) :: ierror
132 end subroutine PMPI_Cancel
133 
134 end interface
135 
136 
137 interface PMPI_Cart_coords
138 
139 subroutine PMPI_Cart_coords(comm, rank, maxdims, coords, ierror)
140   integer, intent(in) :: comm
141   integer, intent(in) :: rank
142   integer, intent(in) :: maxdims
143   integer, dimension(*), intent(out) :: coords
144   integer, intent(out) :: ierror
145 end subroutine PMPI_Cart_coords
146 
147 end interface
148 
149 
150 interface PMPI_Cart_create
151 
152 subroutine PMPI_Cart_create(old_comm, ndims, dims, periods, reorder, &
153         comm_cart, ierror)
154   integer, intent(in) :: old_comm
155   integer, intent(in) :: ndims
156   integer, dimension(*), intent(in) :: dims
157   logical, dimension(*), intent(in) :: periods
158   logical, intent(in) :: reorder
159   integer, intent(out) :: comm_cart
160   integer, intent(out) :: ierror
161 end subroutine PMPI_Cart_create
162 
163 end interface
164 
165 
166 interface PMPI_Cart_get
167 
168 subroutine PMPI_Cart_get(comm, maxdims, dims, periods, coords&
169         , ierror)
170   integer, intent(in) :: comm
171   integer, intent(in) :: maxdims
172   integer, dimension(*), intent(out) :: dims
173   logical, dimension(*), intent(out) :: periods
174   integer, dimension(*), intent(out) :: coords
175   integer, intent(out) :: ierror
176 end subroutine PMPI_Cart_get
177 
178 end interface
179 
180 
181 interface PMPI_Cart_map
182 
183 subroutine PMPI_Cart_map(comm, ndims, dims, periods, newrank&
184         , ierror)
185   integer, intent(in) :: comm
186   integer, intent(in) :: ndims
187   integer, dimension(*), intent(in) :: dims
188   logical, dimension(*), intent(in) :: periods
189   integer, intent(out) :: newrank
190   integer, intent(out) :: ierror
191 end subroutine PMPI_Cart_map
192 
193 end interface
194 
195 
196 interface PMPI_Cart_rank
197 
198 subroutine PMPI_Cart_rank(comm, coords, rank, ierror)
199   integer, intent(in) :: comm
200   integer, dimension(*), intent(in) :: coords
201   integer, intent(out) :: rank
202   integer, intent(out) :: ierror
203 end subroutine PMPI_Cart_rank
204 
205 end interface
206 
207 
208 interface PMPI_Cart_shift
209 
210 subroutine PMPI_Cart_shift(comm, direction, disp, rank_source, rank_dest&
211         , ierror)
212   integer, intent(in) :: comm
213   integer, intent(in) :: direction
214   integer, intent(in) :: disp
215   integer, intent(out) :: rank_source
216   integer, intent(out) :: rank_dest
217   integer, intent(out) :: ierror
218 end subroutine PMPI_Cart_shift
219 
220 end interface
221 
222 
223 interface PMPI_Cart_sub
224 
225 subroutine PMPI_Cart_sub(comm, remain_dims, new_comm, ierror)
226   integer, intent(in) :: comm
227   logical, dimension(*), intent(in) :: remain_dims
228   integer, intent(out) :: new_comm
229   integer, intent(out) :: ierror
230 end subroutine PMPI_Cart_sub
231 
232 end interface
233 
234 
235 interface PMPI_Cartdim_get
236 
237 subroutine PMPI_Cartdim_get(comm, ndims, ierror)
238   integer, intent(in) :: comm
239   integer, intent(out) :: ndims
240   integer, intent(out) :: ierror
241 end subroutine PMPI_Cartdim_get
242 
243 end interface
244 
245 
246 interface PMPI_Comm_call_errhandler
247 
248 subroutine PMPI_Comm_call_errhandler(comm, errorcode, ierror)
249   integer, intent(in) :: comm
250   integer, intent(in) :: errorcode
251   integer, intent(out) :: ierror
252 end subroutine PMPI_Comm_call_errhandler
253 
254 end interface
255 
256 
257 interface PMPI_Comm_compare
258 
259 subroutine PMPI_Comm_compare(comm1, comm2, result, ierror)
260   integer, intent(in) :: comm1
261   integer, intent(in) :: comm2
262   integer, intent(out) :: result
263   integer, intent(out) :: ierror
264 end subroutine PMPI_Comm_compare
265 
266 end interface
267 
268 
269 interface PMPI_Comm_create
270 
271 subroutine PMPI_Comm_create(comm, group, newcomm, ierror)
272   integer, intent(in) :: comm
273   integer, intent(in) :: group
274   integer, intent(out) :: newcomm
275   integer, intent(out) :: ierror
276 end subroutine PMPI_Comm_create
277 
278 end interface
279 
280 
281 interface PMPI_Comm_create_group
282 
283 subroutine PMPI_Comm_create_group(comm, group, tag, newcomm, ierror)
284   integer, intent(in) :: comm
285   integer, intent(in) :: group
286   integer, intent(in) :: tag
287   integer, intent(out) :: newcomm
288   integer, intent(out) :: ierror
289 end subroutine PMPI_Comm_create_group
290 
291 end interface
292 
293 
294 interface PMPI_Comm_create_errhandler
295 
296 subroutine PMPI_Comm_create_errhandler(function, errhandler, ierror)
297   external :: function
298   integer, intent(out) :: errhandler
299   integer, intent(out) :: ierror
300 end subroutine PMPI_Comm_create_errhandler
301 
302 end interface
303 
304 
305 interface PMPI_Comm_create_keyval
306 
307 subroutine PMPI_Comm_create_keyval(comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval, extra_state, ierror)
308   include 'mpif-config.h'
309   external :: comm_copy_attr_fn
310   external :: comm_delete_attr_fn
311   integer, intent(out) :: comm_keyval
312   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
313   integer, intent(out) :: ierror
314 end subroutine PMPI_Comm_create_keyval
315 
316 end interface
317 
318 
319 interface PMPI_Comm_delete_attr
320 
321 subroutine PMPI_Comm_delete_attr(comm, comm_keyval, ierror)
322   integer, intent(in) :: comm
323   integer, intent(in) :: comm_keyval
324   integer, intent(out) :: ierror
325 end subroutine PMPI_Comm_delete_attr
326 
327 end interface
328 
329 
330 interface PMPI_Comm_dup
331 
332 subroutine PMPI_Comm_dup(comm, newcomm, ierror)
333   integer, intent(in) :: comm
334   integer, intent(out) :: newcomm
335   integer, intent(out) :: ierror
336 end subroutine PMPI_Comm_dup
337 
338 end interface
339 
340 
341 interface PMPI_Comm_dup_with_info
342 
343 subroutine PMPI_Comm_dup_with_info(comm, info, newcomm, ierror)
344   integer, intent(in) :: comm
345   integer, intent(in) :: info
346   integer, intent(out) :: newcomm
347   integer, intent(out) :: ierror
348 end subroutine PMPI_Comm_dup_with_info
349 
350 end interface
351 
352 
353 interface PMPI_Comm_idup
354 
355 subroutine PMPI_Comm_idup(comm, newcomm, request, ierror)
356   integer, intent(in) :: comm
357   integer, intent(out) :: newcomm
358   integer, intent(out) :: request
359   integer, intent(out) :: ierror
360 end subroutine PMPI_Comm_idup
361 
362 end interface
363 
364 
365 interface PMPI_Comm_free
366 
367 subroutine PMPI_Comm_free(comm, ierror)
368   integer, intent(inout) :: comm
369   integer, intent(out) :: ierror
370 end subroutine PMPI_Comm_free
371 
372 end interface
373 
374 
375 interface PMPI_Comm_free_keyval
376 
377 subroutine PMPI_Comm_free_keyval(comm_keyval, ierror)
378   integer, intent(inout) :: comm_keyval
379   integer, intent(out) :: ierror
380 end subroutine PMPI_Comm_free_keyval
381 
382 end interface
383 
384 
385 interface PMPI_Comm_get_info
386 
387 subroutine PMPI_Comm_get_info(comm, info_used, ierror)
388   include 'mpif-config.h'
389   integer, intent(in) :: comm
390   integer, intent(out) :: info_used
391   integer, intent(out) :: ierror
392 end subroutine PMPI_Comm_get_info
393 
394 end interface
395 
396 
397 interface PMPI_Comm_get_attr
398 
399 subroutine PMPI_Comm_get_attr(comm, comm_keyval, attribute_val, flag, ierror)
400   include 'mpif-config.h'
401   integer, intent(in) :: comm
402   integer, intent(in) :: comm_keyval
403   integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val
404   logical, intent(out) :: flag
405   integer, intent(out) :: ierror
406 end subroutine PMPI_Comm_get_attr
407 
408 end interface
409 
410 
411 interface PMPI_Comm_get_errhandler
412 
413 subroutine PMPI_Comm_get_errhandler(comm, erhandler, ierror)
414   integer, intent(in) :: comm
415   integer, intent(out) :: erhandler
416   integer, intent(out) :: ierror
417 end subroutine PMPI_Comm_get_errhandler
418 
419 end interface
420 
421 
422 interface PMPI_Comm_get_name
423 
424 subroutine PMPI_Comm_get_name(comm, comm_name, resultlen, ierror)
425   integer, intent(in) :: comm
426   character(len=*), intent(out) :: comm_name
427   integer, intent(out) :: resultlen
428   integer, intent(out) :: ierror
429 end subroutine PMPI_Comm_get_name
430 
431 end interface
432 
433 
434 interface PMPI_Comm_group
435 
436 subroutine PMPI_Comm_group(comm, group, ierror)
437   integer, intent(in) :: comm
438   integer, intent(out) :: group
439   integer, intent(out) :: ierror
440 end subroutine PMPI_Comm_group
441 
442 end interface
443 
444 
445 interface PMPI_Comm_rank
446 
447 subroutine PMPI_Comm_rank(comm, rank, ierror)
448   integer, intent(in) :: comm
449   integer, intent(out) :: rank
450   integer, intent(out) :: ierror
451 end subroutine PMPI_Comm_rank
452 
453 end interface
454 
455 
456 interface PMPI_Comm_remote_group
457 
458 subroutine PMPI_Comm_remote_group(comm, group, ierror)
459   integer, intent(in) :: comm
460   integer, intent(out) :: group
461   integer, intent(out) :: ierror
462 end subroutine PMPI_Comm_remote_group
463 
464 end interface
465 
466 
467 interface PMPI_Comm_remote_size
468 
469 subroutine PMPI_Comm_remote_size(comm, size, ierror)
470   integer, intent(in) :: comm
471   integer, intent(out) :: size
472   integer, intent(out) :: ierror
473 end subroutine PMPI_Comm_remote_size
474 
475 end interface
476 
477 
478 interface PMPI_Comm_set_info
479 
480 subroutine PMPI_Comm_set_info(comm, info, ierror)
481   include 'mpif-config.h'
482   integer, intent(in) :: comm
483   integer, intent(in) :: info
484   integer, intent(out) :: ierror
485 end subroutine PMPI_Comm_set_info
486 
487 end interface
488 
489 
490 interface PMPI_Comm_set_attr
491 
492 subroutine PMPI_Comm_set_attr(comm, comm_keyval, attribute_val, ierror)
493   include 'mpif-config.h'
494   integer, intent(in) :: comm
495   integer, intent(in) :: comm_keyval
496   integer(kind=MPI_ADDRESS_KIND), intent(in) :: attribute_val
497   integer, intent(out) :: ierror
498 end subroutine PMPI_Comm_set_attr
499 
500 end interface
501 
502 
503 interface PMPI_Comm_set_errhandler
504 
505 subroutine PMPI_Comm_set_errhandler(comm, errhandler, ierror)
506   integer, intent(in) :: comm
507   integer, intent(in) :: errhandler
508   integer, intent(out) :: ierror
509 end subroutine PMPI_Comm_set_errhandler
510 
511 end interface
512 
513 
514 interface PMPI_Comm_set_name
515 
516 subroutine PMPI_Comm_set_name(comm, comm_name, ierror)
517   integer, intent(in) :: comm
518   character(len=*), intent(in) :: comm_name
519   integer, intent(out) :: ierror
520 end subroutine PMPI_Comm_set_name
521 
522 end interface
523 
524 
525 interface PMPI_Comm_size
526 
527 subroutine PMPI_Comm_size(comm, size, ierror)
528   integer, intent(in) :: comm
529   integer, intent(out) :: size
530   integer, intent(out) :: ierror
531 end subroutine PMPI_Comm_size
532 
533 end interface
534 
535 
536 interface PMPI_Comm_split
537 
538 subroutine PMPI_Comm_split(comm, color, key, newcomm, ierror)
539   integer, intent(in) :: comm
540   integer, intent(in) :: color
541   integer, intent(in) :: key
542   integer, intent(out) :: newcomm
543   integer, intent(out) :: ierror
544 end subroutine PMPI_Comm_split
545 
546 end interface
547 
548 
549 interface PMPI_Comm_test_inter
550 
551 subroutine PMPI_Comm_test_inter(comm, flag, ierror)
552   integer, intent(in) :: comm
553   logical, intent(out) :: flag
554   integer, intent(out) :: ierror
555 end subroutine PMPI_Comm_test_inter
556 
557 end interface
558 
559 
560 interface PMPI_Dims_create
561 
562 subroutine PMPI_Dims_create(nnodes, ndims, dims, ierror)
563   integer, intent(in) :: nnodes
564   integer, intent(in) :: ndims
565   integer, dimension(*), intent(inout) :: dims
566   integer, intent(out) :: ierror
567 end subroutine PMPI_Dims_create
568 
569 end interface
570 
571 
572 interface PMPI_Errhandler_free
573 
574 subroutine PMPI_Errhandler_free(errhandler, ierror)
575   integer, intent(inout) :: errhandler
576   integer, intent(out) :: ierror
577 end subroutine PMPI_Errhandler_free
578 
579 end interface
580 
581 
582 interface PMPI_Error_class
583 
584 subroutine PMPI_Error_class(errorcode, errorclass, ierror)
585   integer, intent(in) :: errorcode
586   integer, intent(out) :: errorclass
587   integer, intent(out) :: ierror
588 end subroutine PMPI_Error_class
589 
590 end interface
591 
592 
593 interface PMPI_Error_string
594 
595 subroutine PMPI_Error_string(errorcode, string, resultlen, ierror)
596   integer, intent(in) :: errorcode
597   character(len=*), intent(out) :: string
598   integer, intent(out) :: resultlen
599   integer, intent(out) :: ierror
600 end subroutine PMPI_Error_string
601 
602 end interface
603 
604 
605 interface PMPI_Finalize
606 
607 subroutine PMPI_Finalize(ierror)
608   integer, intent(out) :: ierror
609 end subroutine PMPI_Finalize
610 
611 end interface
612 
613 
614 interface PMPI_Finalized
615 
616 subroutine PMPI_Finalized(flag, ierror)
617   logical, intent(out) :: flag
618   integer, intent(out) :: ierror
619 end subroutine PMPI_Finalized
620 
621 end interface
622 
623 
624 interface PMPI_Get_count
625 
626 subroutine PMPI_Get_count(status, datatype, count, ierror)
627   include 'mpif-config.h'
628   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
629   integer, intent(in) :: datatype
630   integer, intent(out) :: count
631   integer, intent(out) :: ierror
632 end subroutine PMPI_Get_count
633 
634 end interface
635 
636 
637 interface PMPI_Get_elements
638 
639 subroutine PMPI_Get_elements(status, datatype, count, ierror)
640   include 'mpif-config.h'
641   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
642   integer, intent(in) :: datatype
643   integer, intent(out) :: count
644   integer, intent(out) :: ierror
645 end subroutine PMPI_Get_elements
646 
647 end interface
648 
649 
650 interface PMPI_Get_elements_x
651 
652 subroutine PMPI_Get_elements_x(status, datatype, count, ierror)
653   include 'mpif-config.h'
654   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
655   integer, intent(in) :: datatype
656   integer(kind=MPI_COUNT_KIND), intent(out) :: count
657   integer, intent(out) :: ierror
658 end subroutine PMPI_Get_elements_x
659 
660 end interface
661 
662 
663 interface PMPI_Get_processor_name
664 
665 subroutine PMPI_Get_processor_name(name, resultlen, ierror)
666   character(len=*), intent(out) :: name
667   integer, intent(out) :: resultlen
668   integer, intent(out) :: ierror
669 end subroutine PMPI_Get_processor_name
670 
671 end interface
672 
673 
674 interface PMPI_Get_version
675 
676 subroutine PMPI_Get_version(version, subversion, ierror)
677   integer, intent(out) :: version
678   integer, intent(out) :: subversion
679   integer, intent(out) :: ierror
680 end subroutine PMPI_Get_version
681 
682 end interface
683 
684 
685 interface PMPI_Graph_create
686 
687 subroutine PMPI_Graph_create(comm_old, nnodes, index, edges, reorder, &
688         comm_graph, ierror)
689   integer, intent(in) :: comm_old
690   integer, intent(in) :: nnodes
691   integer, dimension(*), intent(in) :: index
692   integer, dimension(*), intent(in) :: edges
693   logical, intent(in) :: reorder
694   integer, intent(out) :: comm_graph
695   integer, intent(out) :: ierror
696 end subroutine PMPI_Graph_create
697 
698 end interface
699 
700 
701 interface PMPI_Graph_get
702 
703 subroutine PMPI_Graph_get(comm, maxindex, maxedges, index, edges&
704         , ierror)
705   integer, intent(in) :: comm
706   integer, intent(in) :: maxindex
707   integer, intent(in) :: maxedges
708   integer, dimension(*), intent(out) :: index
709   integer, dimension(*), intent(out) :: edges
710   integer, intent(out) :: ierror
711 end subroutine PMPI_Graph_get
712 
713 end interface
714 
715 
716 interface PMPI_Graph_map
717 
718 subroutine PMPI_Graph_map(comm, nnodes, index, edges, newrank&
719         , ierror)
720   integer, intent(in) :: comm
721   integer, intent(in) :: nnodes
722   integer, dimension(*), intent(in) :: index
723   integer, dimension(*), intent(in) :: edges
724   integer, intent(out) :: newrank
725   integer, intent(out) :: ierror
726 end subroutine PMPI_Graph_map
727 
728 end interface
729 
730 
731 interface PMPI_Graph_neighbors
732 
733 subroutine PMPI_Graph_neighbors(comm, rank, maxneighbors, neighbors, ierror)
734   integer, intent(in) :: comm
735   integer, intent(in) :: rank
736   integer, intent(in) :: maxneighbors
737   integer, dimension(*), intent(out) :: neighbors
738   integer, intent(out) :: ierror
739 end subroutine PMPI_Graph_neighbors
740 
741 end interface
742 
743 
744 interface PMPI_Graph_neighbors_count
745 
746 subroutine PMPI_Graph_neighbors_count(comm, rank, nneighbors, ierror)
747   integer, intent(in) :: comm
748   integer, intent(in) :: rank
749   integer, intent(out) :: nneighbors
750   integer, intent(out) :: ierror
751 end subroutine PMPI_Graph_neighbors_count
752 
753 end interface
754 
755 
756 interface PMPI_Graphdims_get
757 
758 subroutine PMPI_Graphdims_get(comm, nnodes, nedges, ierror)
759   integer, intent(in) :: comm
760   integer, intent(out) :: nnodes
761   integer, intent(out) :: nedges
762   integer, intent(out) :: ierror
763 end subroutine PMPI_Graphdims_get
764 
765 end interface
766 
767 
768 interface PMPI_Grequest_complete
769 
770 subroutine PMPI_Grequest_complete(request, ierror)
771   integer, intent(in) :: request
772   integer, intent(out) :: ierror
773 end subroutine PMPI_Grequest_complete
774 
775 end interface
776 
777 
778 interface PMPI_Grequest_start
779 
780 subroutine PMPI_Grequest_start(query_fn, free_fn, cancel_fn, extra_state, request&
781         , ierror)
782   include 'mpif-config.h'
783   external :: query_fn
784   external :: free_fn
785   external :: cancel_fn
786   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
787   integer, intent(out) :: request
788   integer, intent(out) :: ierror
789 end subroutine PMPI_Grequest_start
790 
791 end interface
792 
793 
794 interface PMPI_Group_compare
795 
796 subroutine PMPI_Group_compare(group1, group2, result, ierror)
797   integer, intent(in) :: group1
798   integer, intent(in) :: group2
799   integer, intent(out) :: result
800   integer, intent(out) :: ierror
801 end subroutine PMPI_Group_compare
802 
803 end interface
804 
805 
806 interface PMPI_Group_difference
807 
808 subroutine PMPI_Group_difference(group1, group2, newgroup, ierror)
809   integer, intent(in) :: group1
810   integer, intent(in) :: group2
811   integer, intent(out) :: newgroup
812   integer, intent(out) :: ierror
813 end subroutine PMPI_Group_difference
814 
815 end interface
816 
817 
818 interface PMPI_Group_excl
819 
820 subroutine PMPI_Group_excl(group, n, ranks, newgroup, ierror)
821   integer, intent(in) :: group
822   integer, intent(in) :: n
823   integer, dimension(*), intent(in) :: ranks
824   integer, intent(out) :: newgroup
825   integer, intent(out) :: ierror
826 end subroutine PMPI_Group_excl
827 
828 end interface
829 
830 
831 interface PMPI_Group_free
832 
833 subroutine PMPI_Group_free(group, ierror)
834   integer, intent(inout) :: group
835   integer, intent(out) :: ierror
836 end subroutine PMPI_Group_free
837 
838 end interface
839 
840 
841 interface PMPI_Group_incl
842 
843 subroutine PMPI_Group_incl(group, n, ranks, newgroup, ierror)
844   integer, intent(in) :: group
845   integer, intent(in) :: n
846   integer, dimension(*), intent(in) :: ranks
847   integer, intent(out) :: newgroup
848   integer, intent(out) :: ierror
849 end subroutine PMPI_Group_incl
850 
851 end interface
852 
853 
854 interface PMPI_Group_intersection
855 
856 subroutine PMPI_Group_intersection(group1, group2, newgroup, ierror)
857   integer, intent(in) :: group1
858   integer, intent(in) :: group2
859   integer, intent(out) :: newgroup
860   integer, intent(out) :: ierror
861 end subroutine PMPI_Group_intersection
862 
863 end interface
864 
865 
866 interface PMPI_Group_range_excl
867 
868 subroutine PMPI_Group_range_excl(group, n, ranges, newgroup, ierror)
869   integer, intent(in) :: group
870   integer, intent(in) :: n
871   integer, dimension(3, *), intent(in) :: ranges
872   integer, intent(out) :: newgroup
873   integer, intent(out) :: ierror
874 end subroutine PMPI_Group_range_excl
875 
876 end interface
877 
878 
879 interface PMPI_Group_range_incl
880 
881 subroutine PMPI_Group_range_incl(group, n, ranges, newgroup, ierror)
882   integer, intent(in) :: group
883   integer, intent(in) :: n
884   integer, dimension(3, *), intent(in) :: ranges
885   integer, intent(out) :: newgroup
886   integer, intent(out) :: ierror
887 end subroutine PMPI_Group_range_incl
888 
889 end interface
890 
891 
892 interface PMPI_Group_rank
893 
894 subroutine PMPI_Group_rank(group, rank, ierror)
895   integer, intent(in) :: group
896   integer, intent(out) :: rank
897   integer, intent(out) :: ierror
898 end subroutine PMPI_Group_rank
899 
900 end interface
901 
902 
903 interface PMPI_Group_size
904 
905 subroutine PMPI_Group_size(group, size, ierror)
906   integer, intent(in) :: group
907   integer, intent(out) :: size
908   integer, intent(out) :: ierror
909 end subroutine PMPI_Group_size
910 
911 end interface
912 
913 
914 interface PMPI_Group_translate_ranks
915 
916 subroutine PMPI_Group_translate_ranks(group1, n, ranks1, group2, ranks2&
917         , ierror)
918   integer, intent(in) :: group1
919   integer, intent(in) :: n
920   integer, dimension(*), intent(in) :: ranks1
921   integer, intent(in) :: group2
922   integer, dimension(*), intent(out) :: ranks2
923   integer, intent(out) :: ierror
924 end subroutine PMPI_Group_translate_ranks
925 
926 end interface
927 
928 
929 interface PMPI_Group_union
930 
931 subroutine PMPI_Group_union(group1, group2, newgroup, ierror)
932   integer, intent(in) :: group1
933   integer, intent(in) :: group2
934   integer, intent(out) :: newgroup
935   integer, intent(out) :: ierror
936 end subroutine PMPI_Group_union
937 
938 end interface
939 
940 
941 interface PMPI_Info_create
942 
943 subroutine PMPI_Info_create(info, ierror)
944   integer, intent(out) :: info
945   integer, intent(out) :: ierror
946 end subroutine PMPI_Info_create
947 
948 end interface
949 
950 
951 interface PMPI_Info_delete
952 
953 subroutine PMPI_Info_delete(info, key, ierror)
954   integer, intent(in) :: info
955   character(len=*), intent(in) :: key
956   integer, intent(out) :: ierror
957 end subroutine PMPI_Info_delete
958 
959 end interface
960 
961 
962 interface PMPI_Info_dup
963 
964 subroutine PMPI_Info_dup(info, newinfo, ierror)
965   integer, intent(in) :: info
966   integer, intent(out) :: newinfo
967   integer, intent(out) :: ierror
968 end subroutine PMPI_Info_dup
969 
970 end interface
971 
972 
973 interface PMPI_Info_free
974 
975 subroutine PMPI_Info_free(info, ierror)
976   integer, intent(inout) :: info
977   integer, intent(out) :: ierror
978 end subroutine PMPI_Info_free
979 
980 end interface
981 
982 
983 interface PMPI_Info_get
984 
985 subroutine PMPI_Info_get(info, key, valuelen, value, flag&
986         , ierror)
987   integer, intent(in) :: info
988   character(len=*), intent(in) :: key
989   integer, intent(in) :: valuelen
990   character(len=*), intent(out) :: value
991   logical, intent(out) :: flag
992   integer, intent(out) :: ierror
993 end subroutine PMPI_Info_get
994 
995 end interface
996 
997 
998 interface PMPI_Info_get_nkeys
999 
1000 subroutine PMPI_Info_get_nkeys(info, nkeys, ierror)
1001   integer, intent(in) :: info
1002   integer, intent(out) :: nkeys
1003   integer, intent(out) :: ierror
1004 end subroutine PMPI_Info_get_nkeys
1005 
1006 end interface
1007 
1008 
1009 interface PMPI_Info_get_nthkey
1010 
1011 subroutine PMPI_Info_get_nthkey(info, n, key, ierror)
1012   integer, intent(in) :: info
1013   integer, intent(in) :: n
1014   character(len=*), intent(out) :: key
1015   integer, intent(out) :: ierror
1016 end subroutine PMPI_Info_get_nthkey
1017 
1018 end interface
1019 
1020 
1021 interface PMPI_Info_get_valuelen
1022 
1023 subroutine PMPI_Info_get_valuelen(info, key, valuelen, flag, ierror)
1024   integer, intent(in) :: info
1025   character(len=*), intent(in) :: key
1026   integer, intent(out) :: valuelen
1027   logical, intent(out) :: flag
1028   integer, intent(out) :: ierror
1029 end subroutine PMPI_Info_get_valuelen
1030 
1031 end interface
1032 
1033 
1034 interface PMPI_Info_set
1035 
1036 subroutine PMPI_Info_set(info, key, value, ierror)
1037   integer, intent(in) :: info
1038   character(len=*), intent(in) :: key
1039   character(len=*), intent(in) :: value
1040   integer, intent(out) :: ierror
1041 end subroutine PMPI_Info_set
1042 
1043 end interface
1044 
1045 
1046 interface PMPI_Init
1047 
1048 subroutine PMPI_Init(ierror)
1049   integer, intent(out) :: ierror
1050 end subroutine PMPI_Init
1051 
1052 end interface
1053 
1054 
1055 interface PMPI_Init_thread
1056 
1057 subroutine PMPI_Init_thread(required, provided, ierror)
1058   integer, intent(in) :: required
1059   integer, intent(out) :: provided
1060   integer, intent(out) :: ierror
1061 end subroutine PMPI_Init_thread
1062 
1063 end interface
1064 
1065 
1066 interface PMPI_Initialized
1067 
1068 subroutine PMPI_Initialized(flag, ierror)
1069   logical, intent(out) :: flag
1070   integer, intent(out) :: ierror
1071 end subroutine PMPI_Initialized
1072 
1073 end interface
1074 
1075 
1076 interface PMPI_Intercomm_create
1077 
1078 subroutine PMPI_Intercomm_create(local_comm, local_leader, bridge_comm, remote_leader, tag, &
1079         newintercomm, ierror)
1080   integer, intent(in) :: local_comm
1081   integer, intent(in) :: local_leader
1082   integer, intent(in) :: bridge_comm
1083   integer, intent(in) :: remote_leader
1084   integer, intent(in) :: tag
1085   integer, intent(out) :: newintercomm
1086   integer, intent(out) :: ierror
1087 end subroutine PMPI_Intercomm_create
1088 
1089 end interface
1090 
1091 
1092 interface PMPI_Intercomm_merge
1093 
1094 subroutine PMPI_Intercomm_merge(intercomm, high, newintercomm, ierror)
1095   integer, intent(in) :: intercomm
1096   logical, intent(in) :: high
1097   integer, intent(out) :: newintercomm
1098   integer, intent(out) :: ierror
1099 end subroutine PMPI_Intercomm_merge
1100 
1101 end interface
1102 
1103 
1104 interface PMPI_Iprobe
1105 
1106 subroutine PMPI_Iprobe(source, tag, comm, flag, status&
1107         , ierror)
1108   include 'mpif-config.h'
1109   integer, intent(in) :: source
1110   integer, intent(in) :: tag
1111   integer, intent(in) :: comm
1112   logical, intent(out) :: flag
1113   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1114   integer, intent(out) :: ierror
1115 end subroutine PMPI_Iprobe
1116 
1117 end interface
1118 
1119 
1120 interface PMPI_Is_thread_main
1121 
1122 subroutine PMPI_Is_thread_main(flag, ierror)
1123   logical, intent(out) :: flag
1124   integer, intent(out) :: ierror
1125 end subroutine PMPI_Is_thread_main
1126 
1127 end interface
1128 
1129 
1130 interface PMPI_Op_commutative
1131 
1132 subroutine PMPI_Op_commutative(op, commute, ierror)
1133   integer, intent(in) :: op
1134   logical, intent(out) :: commute
1135   integer, intent(out) :: ierror
1136 end subroutine PMPI_Op_commutative
1137 
1138 end interface
1139 
1140 
1141 interface PMPI_Op_create
1142 
1143 subroutine PMPI_Op_create(function, commute, op, ierror)
1144   external :: function
1145   logical, intent(in) :: commute
1146   integer, intent(out) :: op
1147   integer, intent(out) :: ierror
1148 end subroutine PMPI_Op_create
1149 
1150 end interface
1151 
1152 
1153 interface PMPI_Op_free
1154 
1155 subroutine PMPI_Op_free(op, ierror)
1156   integer, intent(inout) :: op
1157   integer, intent(out) :: ierror
1158 end subroutine PMPI_Op_free
1159 
1160 end interface
1161 
1162 
1163 interface PMPI_Pack_external_size
1164 
1165 subroutine PMPI_Pack_external_size(datarep, incount, datatype, size, ierror)
1166   include 'mpif-config.h'
1167   character(len=*), intent(in) :: datarep
1168   integer, intent(in) :: incount
1169   integer, intent(in) :: datatype
1170   integer(kind=MPI_ADDRESS_KIND), intent(out) :: size
1171   integer, intent(out) :: ierror
1172 end subroutine PMPI_Pack_external_size
1173 
1174 end interface
1175 
1176 
1177 interface PMPI_Pack_size
1178 
1179 subroutine PMPI_Pack_size(incount, datatype, comm, size, ierror)
1180   integer, intent(in) :: incount
1181   integer, intent(in) :: datatype
1182   integer, intent(in) :: comm
1183   integer, intent(out) :: size
1184   integer, intent(out) :: ierror
1185 end subroutine PMPI_Pack_size
1186 
1187 end interface
1188 
1189 
1190 interface PMPI_Pcontrol
1191 
1192 subroutine PMPI_Pcontrol(level)
1193   integer, intent(in) :: level
1194 
1195 end subroutine PMPI_Pcontrol
1196 
1197 end interface
1198 
1199 
1200 interface PMPI_Probe
1201 
1202 subroutine PMPI_Probe(source, tag, comm, status, ierror)
1203   include 'mpif-config.h'
1204   integer, intent(in) :: source
1205   integer, intent(in) :: tag
1206   integer, intent(in) :: comm
1207   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1208   integer, intent(out) :: ierror
1209 end subroutine PMPI_Probe
1210 
1211 end interface
1212 
1213 
1214 interface PMPI_Query_thread
1215 
1216 subroutine PMPI_Query_thread(provided, ierror)
1217   integer, intent(out) :: provided
1218   integer, intent(out) :: ierror
1219 end subroutine PMPI_Query_thread
1220 
1221 end interface
1222 
1223 
1224 interface PMPI_Register_datarep
1225 
1226 subroutine PMPI_Register_datarep(datarep, read_conversion_fn, write_conversion_fn, dtype_file_extent_fn, extra_state&
1227         , ierror)
1228   include 'mpif-config.h'
1229   character(len=*), intent(in) :: datarep
1230   external :: read_conversion_fn
1231   external :: write_conversion_fn
1232   external :: dtype_file_extent_fn
1233   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
1234   integer, intent(out) :: ierror
1235 end subroutine PMPI_Register_datarep
1236 
1237 end interface
1238 
1239 
1240 interface PMPI_Request_free
1241 
1242 subroutine PMPI_Request_free(request, ierror)
1243   integer, intent(inout) :: request
1244   integer, intent(out) :: ierror
1245 end subroutine PMPI_Request_free
1246 
1247 end interface
1248 
1249 
1250 interface PMPI_Request_get_status
1251 
1252 subroutine PMPI_Request_get_status(request, flag, status, ierror)
1253   include 'mpif-config.h'
1254   integer, intent(in) :: request
1255   logical, intent(out) :: flag
1256   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1257   integer, intent(out) :: ierror
1258 end subroutine PMPI_Request_get_status
1259 
1260 end interface
1261 
1262 
1263 interface PMPI_Start
1264 
1265 subroutine PMPI_Start(request, ierror)
1266   integer, intent(inout) :: request
1267   integer, intent(out) :: ierror
1268 end subroutine PMPI_Start
1269 
1270 end interface
1271 
1272 
1273 interface PMPI_Startall
1274 
1275 subroutine PMPI_Startall(count, array_of_requests, ierror)
1276   integer, intent(in) :: count
1277   integer, dimension(*), intent(inout) :: array_of_requests
1278   integer, intent(out) :: ierror
1279 end subroutine PMPI_Startall
1280 
1281 end interface
1282 
1283 
1284 interface PMPI_Status_set_cancelled
1285 
1286 subroutine PMPI_Status_set_cancelled(status, flag, ierror)
1287   include 'mpif-config.h'
1288   integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status
1289   logical, intent(in) :: flag
1290   integer, intent(out) :: ierror
1291 end subroutine PMPI_Status_set_cancelled
1292 
1293 end interface
1294 
1295 
1296 interface PMPI_Status_set_elements
1297 
1298 subroutine PMPI_Status_set_elements(status, datatype, count, ierror)
1299   include 'mpif-config.h'
1300   integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status
1301   integer, intent(in) :: datatype
1302   integer, intent(in) :: count
1303   integer, intent(out) :: ierror
1304 end subroutine PMPI_Status_set_elements
1305 
1306 end interface
1307 
1308 
1309 interface PMPI_Test
1310 
1311 subroutine PMPI_Test(request, flag, status, ierror)
1312   include 'mpif-config.h'
1313   integer, intent(inout) :: request
1314   logical, intent(out) :: flag
1315   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1316   integer, intent(out) :: ierror
1317 end subroutine PMPI_Test
1318 
1319 end interface
1320 
1321 
1322 interface PMPI_Test_cancelled
1323 
1324 subroutine PMPI_Test_cancelled(status, flag, ierror)
1325   include 'mpif-config.h'
1326   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
1327   logical, intent(out) :: flag
1328   integer, intent(out) :: ierror
1329 end subroutine PMPI_Test_cancelled
1330 
1331 end interface
1332 
1333 
1334 interface PMPI_Testall
1335 
1336 subroutine PMPI_Testall(count, array_of_requests, flag, array_of_statuses, ierror)
1337   include 'mpif-config.h'
1338   integer, intent(in) :: count
1339   integer, dimension(count), intent(inout) :: array_of_requests
1340   logical, intent(out) :: flag
1341   integer, dimension(MPI_STATUS_SIZE, count), intent(out) :: array_of_statuses
1342   integer, intent(out) :: ierror
1343 end subroutine PMPI_Testall
1344 
1345 end interface
1346 
1347 
1348 interface PMPI_Testany
1349 
1350 subroutine PMPI_Testany(count, array_of_requests, index, flag, status&
1351         , ierror)
1352   include 'mpif-config.h'
1353   integer, intent(in) :: count
1354   integer, dimension(count), intent(inout) :: array_of_requests
1355   integer, intent(out) :: index
1356   logical, intent(out) :: flag
1357   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1358   integer, intent(out) :: ierror
1359 end subroutine PMPI_Testany
1360 
1361 end interface
1362 
1363 
1364 interface PMPI_Testsome
1365 
1366 subroutine PMPI_Testsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
1367         , ierror)
1368   include 'mpif-config.h'
1369   integer, intent(in) :: incount
1370   integer, dimension(incount), intent(inout) :: array_of_requests
1371   integer, intent(out) :: outcount
1372   integer, dimension(*), intent(out) :: array_of_indices
1373   integer, dimension(MPI_STATUS_SIZE, *), intent(out) :: array_of_statuses
1374   integer, intent(out) :: ierror
1375 end subroutine PMPI_Testsome
1376 
1377 end interface
1378 
1379 
1380 interface PMPI_Topo_test
1381 
1382 subroutine PMPI_Topo_test(comm, status, ierror)
1383   integer, intent(in) :: comm
1384   integer, intent(out) :: status
1385   integer, intent(out) :: ierror
1386 end subroutine PMPI_Topo_test
1387 
1388 end interface
1389 
1390 
1391 interface PMPI_Type_commit
1392 
1393 subroutine PMPI_Type_commit(datatype, ierror)
1394   integer, intent(inout) :: datatype
1395   integer, intent(out) :: ierror
1396 end subroutine PMPI_Type_commit
1397 
1398 end interface
1399 
1400 
1401 interface PMPI_Type_contiguous
1402 
1403 subroutine PMPI_Type_contiguous(count, oldtype, newtype, ierror)
1404   integer, intent(in) :: count
1405   integer, intent(in) :: oldtype
1406   integer, intent(out) :: newtype
1407   integer, intent(out) :: ierror
1408 end subroutine PMPI_Type_contiguous
1409 
1410 end interface
1411 
1412 
1413 interface PMPI_Type_create_darray
1414 
1415 subroutine PMPI_Type_create_darray(size, rank, ndims, gsize_array, distrib_array, &
1416         darg_array, psize_array, order, oldtype, newtype, ierror)
1417   integer, intent(in) :: size
1418   integer, intent(in) :: rank
1419   integer, intent(in) :: ndims
1420   integer, dimension(*), intent(in) :: gsize_array
1421   integer, dimension(*), intent(in) :: distrib_array
1422   integer, dimension(*), intent(in) :: darg_array
1423   integer, dimension(*), intent(in) :: psize_array
1424   integer, intent(in) :: order
1425   integer, intent(in) :: oldtype
1426   integer, intent(out) :: newtype
1427   integer, intent(out) :: ierror
1428 end subroutine PMPI_Type_create_darray
1429 
1430 end interface
1431 
1432 
1433 interface PMPI_Type_create_f90_complex
1434 
1435 subroutine PMPI_Type_create_f90_complex(p, r, newtype, ierror)
1436   integer, intent(in) :: p
1437   integer, intent(in) :: r
1438   integer, intent(out) :: newtype
1439   integer, intent(out) :: ierror
1440 end subroutine PMPI_Type_create_f90_complex
1441 
1442 end interface
1443 
1444 
1445 interface PMPI_Type_create_f90_integer
1446 
1447 subroutine PMPI_Type_create_f90_integer(r, newtype, ierror)
1448   integer, intent(in) :: r
1449   integer, intent(out) :: newtype
1450   integer, intent(out) :: ierror
1451 end subroutine PMPI_Type_create_f90_integer
1452 
1453 end interface
1454 
1455 
1456 interface PMPI_Type_create_f90_real
1457 
1458 subroutine PMPI_Type_create_f90_real(p, r, newtype, ierror)
1459   integer, intent(in) :: p
1460   integer, intent(in) :: r
1461   integer, intent(out) :: newtype
1462   integer, intent(out) :: ierror
1463 end subroutine PMPI_Type_create_f90_real
1464 
1465 end interface
1466 
1467 
1468 interface PMPI_Type_create_hindexed
1469 
1470 subroutine PMPI_Type_create_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
1471         , ierror)
1472   include 'mpif-config.h'
1473   integer, intent(in) :: count
1474   integer, dimension(*), intent(in) :: array_of_blocklengths
1475   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
1476   integer, intent(in) :: oldtype
1477   integer, intent(out) :: newtype
1478   integer, intent(out) :: ierror
1479 end subroutine PMPI_Type_create_hindexed
1480 
1481 end interface
1482 
1483 
1484 interface PMPI_Type_create_hvector
1485 
1486 subroutine PMPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype&
1487         , ierror)
1488   include 'mpif-config.h'
1489   integer, intent(in) :: count
1490   integer, intent(in) :: blocklength
1491   integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride
1492   integer, intent(in) :: oldtype
1493   integer, intent(out) :: newtype
1494   integer, intent(out) :: ierror
1495 end subroutine PMPI_Type_create_hvector
1496 
1497 end interface
1498 
1499 
1500 interface PMPI_Type_create_indexed_block
1501 
1502 subroutine PMPI_Type_create_indexed_block(count, blocklength, array_of_displacements, oldtype, newtype&
1503         , ierror)
1504   integer, intent(in) :: count
1505   integer, intent(in) :: blocklength
1506   integer, dimension(*), intent(in) :: array_of_displacements
1507   integer, intent(in) :: oldtype
1508   integer, intent(out) :: newtype
1509   integer, intent(out) :: ierror
1510 end subroutine PMPI_Type_create_indexed_block
1511 
1512 end interface
1513 
1514 
1515 interface PMPI_Type_create_keyval
1516 
1517 subroutine PMPI_Type_create_keyval(type_copy_attr_fn, type_delete_attr_fn, type_keyval, extra_state, ierror)
1518   include 'mpif-config.h'
1519   external :: type_copy_attr_fn
1520   external :: type_delete_attr_fn
1521   integer, intent(out) :: type_keyval
1522   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
1523   integer, intent(out) :: ierror
1524 end subroutine PMPI_Type_create_keyval
1525 
1526 end interface
1527 
1528 
1529 interface PMPI_Type_create_resized
1530 
1531 subroutine PMPI_Type_create_resized(oldtype, lb, extent, newtype, ierror)
1532   include 'mpif-config.h'
1533   integer, intent(in) :: oldtype
1534   integer(kind=MPI_ADDRESS_KIND), intent(in) :: lb
1535   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extent
1536   integer, intent(out) :: newtype
1537   integer, intent(out) :: ierror
1538 end subroutine PMPI_Type_create_resized
1539 
1540 end interface
1541 
1542 
1543 interface PMPI_Type_create_struct
1544 
1545 subroutine PMPI_Type_create_struct(count, array_of_block_lengths, array_of_displacements, array_of_types, newtype&
1546         , ierror)
1547   include 'mpif-config.h'
1548   integer, intent(in) :: count
1549   integer, dimension(*), intent(in) :: array_of_block_lengths
1550   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
1551   integer, dimension(*), intent(in) :: array_of_types
1552   integer, intent(out) :: newtype
1553   integer, intent(out) :: ierror
1554 end subroutine PMPI_Type_create_struct
1555 
1556 end interface
1557 
1558 
1559 interface PMPI_Type_create_subarray
1560 
1561 subroutine PMPI_Type_create_subarray(ndims, size_array, subsize_array, start_array, order, &
1562         oldtype, newtype, ierror)
1563   integer, intent(in) :: ndims
1564   integer, dimension(*), intent(in) :: size_array
1565   integer, dimension(*), intent(in) :: subsize_array
1566   integer, dimension(*), intent(in) :: start_array
1567   integer, intent(in) :: order
1568   integer, intent(in) :: oldtype
1569   integer, intent(out) :: newtype
1570   integer, intent(out) :: ierror
1571 end subroutine PMPI_Type_create_subarray
1572 
1573 end interface
1574 
1575 
1576 interface PMPI_Type_delete_attr
1577 
1578 subroutine PMPI_Type_delete_attr(datatype, type_keyval, ierror)
1579   integer, intent(in) :: datatype
1580   integer, intent(in) :: type_keyval
1581   integer, intent(out) :: ierror
1582 end subroutine PMPI_Type_delete_attr
1583 
1584 end interface
1585 
1586 
1587 interface PMPI_Type_dup
1588 
1589 subroutine PMPI_Type_dup(datatype, newtype, ierror)
1590   integer, intent(in) :: datatype
1591   integer, intent(out) :: newtype
1592   integer, intent(out) :: ierror
1593 end subroutine PMPI_Type_dup
1594 
1595 end interface
1596 
1597 
1598 interface PMPI_Type_free
1599 
1600 subroutine PMPI_Type_free(datatype, ierror)
1601   integer, intent(inout) :: datatype
1602   integer, intent(out) :: ierror
1603 end subroutine PMPI_Type_free
1604 
1605 end interface
1606 
1607 
1608 interface PMPI_Type_free_keyval
1609 
1610 subroutine PMPI_Type_free_keyval(type_keyval, ierror)
1611   integer, intent(inout) :: type_keyval
1612   integer, intent(out) :: ierror
1613 end subroutine PMPI_Type_free_keyval
1614 
1615 end interface
1616 
1617 
1618 interface PMPI_Type_get_attr
1619 
1620 subroutine PMPI_Type_get_attr(datatype, type_keyval, attribute_val, flag, ierror)
1621   include 'mpif-config.h'
1622   integer, intent(in) :: datatype
1623   integer, intent(in) :: type_keyval
1624   integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val
1625   logical, intent(out) :: flag
1626   integer, intent(out) :: ierror
1627 end subroutine PMPI_Type_get_attr
1628 
1629 end interface
1630 
1631 
1632 interface PMPI_Type_get_contents
1633 
1634 subroutine PMPI_Type_get_contents(datatype, max_integers, max_addresses, max_datatypes, array_of_integers, &
1635         array_of_addresses, array_of_datatypes, ierror)
1636   include 'mpif-config.h'
1637   integer, intent(in) :: datatype
1638   integer, intent(in) :: max_integers
1639   integer, intent(in) :: max_addresses
1640   integer, intent(in) :: max_datatypes
1641   integer, dimension(*), intent(out) :: array_of_integers
1642   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(out) :: array_of_addresses
1643   integer, dimension(*), intent(out) :: array_of_datatypes
1644   integer, intent(out) :: ierror
1645 end subroutine PMPI_Type_get_contents
1646 
1647 end interface
1648 
1649 
1650 interface PMPI_Type_get_envelope
1651 
1652 subroutine PMPI_Type_get_envelope(datatype, num_integers, num_addresses, num_datatypes, combiner&
1653         , ierror)
1654   integer, intent(in) :: datatype
1655   integer, intent(out) :: num_integers
1656   integer, intent(out) :: num_addresses
1657   integer, intent(out) :: num_datatypes
1658   integer, intent(out) :: combiner
1659   integer, intent(out) :: ierror
1660 end subroutine PMPI_Type_get_envelope
1661 
1662 end interface
1663 
1664 
1665 interface PMPI_Type_get_extent
1666 
1667 subroutine PMPI_Type_get_extent(datatype, lb, extent, ierror)
1668   include 'mpif-config.h'
1669   integer, intent(in) :: datatype
1670   integer(kind=MPI_ADDRESS_KIND), intent(out) :: lb
1671   integer(kind=MPI_ADDRESS_KIND), intent(out) :: extent
1672   integer, intent(out) :: ierror
1673 end subroutine PMPI_Type_get_extent
1674 
1675 end interface
1676 
1677 
1678 interface PMPI_Type_get_extent_x
1679 
1680 subroutine PMPI_Type_get_extent_x(datatype, lb, extent, ierror)
1681   include 'mpif-config.h'
1682   integer, intent(in) :: datatype
1683   integer(kind=MPI_COUNT_KIND), intent(out) :: lb
1684   integer(kind=MPI_COUNT_KIND), intent(out) :: extent
1685   integer, intent(out) :: ierror
1686 end subroutine PMPI_Type_get_extent_x
1687 
1688 end interface
1689 
1690 
1691 interface PMPI_Type_get_name
1692 
1693 subroutine PMPI_Type_get_name(datatype, type_name, resultlen, ierror)
1694   integer, intent(in) :: datatype
1695   character(len=*), intent(out) :: type_name
1696   integer, intent(out) :: resultlen
1697   integer, intent(out) :: ierror
1698 end subroutine PMPI_Type_get_name
1699 
1700 end interface
1701 
1702 
1703 interface PMPI_Type_get_true_extent
1704 
1705 subroutine PMPI_Type_get_true_extent(datatype, true_lb, true_extent, ierror)
1706   include 'mpif-config.h'
1707   integer, intent(in) :: datatype
1708   integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb
1709   integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent
1710   integer, intent(out) :: ierror
1711 end subroutine PMPI_Type_get_true_extent
1712 
1713 end interface
1714 
1715 
1716 interface PMPI_Type_get_true_extent_x
1717 
1718 subroutine PMPI_Type_get_true_extent_x(datatype, true_lb, true_extent, ierror)
1719   include 'mpif-config.h'
1720   integer, intent(in) :: datatype
1721   integer(kind=MPI_COUNT_KIND), intent(out) :: true_lb
1722   integer(kind=MPI_COUNT_KIND), intent(out) :: true_extent
1723   integer, intent(out) :: ierror
1724 end subroutine PMPI_Type_get_true_extent_x
1725 
1726 end interface
1727 
1728 
1729 interface PMPI_Type_indexed
1730 
1731 subroutine PMPI_Type_indexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
1732         , ierror)
1733   integer, intent(in) :: count
1734   integer, dimension(*), intent(in) :: array_of_blocklengths
1735   integer, dimension(*), intent(in) :: array_of_displacements
1736   integer, intent(in) :: oldtype
1737   integer, intent(out) :: newtype
1738   integer, intent(out) :: ierror
1739 end subroutine PMPI_Type_indexed
1740 
1741 end interface
1742 
1743 
1744 interface PMPI_Type_match_size
1745 
1746 subroutine PMPI_Type_match_size(typeclass, size, datatype, ierror)
1747   integer, intent(in) :: typeclass
1748   integer, intent(in) :: size
1749   integer, intent(out) :: datatype
1750   integer, intent(out) :: ierror
1751 end subroutine PMPI_Type_match_size
1752 
1753 end interface
1754 
1755 
1756 interface PMPI_Type_set_attr
1757 
1758 subroutine PMPI_Type_set_attr(datatype, type_keyval, attr_val, ierror)
1759   include 'mpif-config.h'
1760   integer, intent(in) :: datatype
1761   integer, intent(in) :: type_keyval
1762   integer(kind=MPI_ADDRESS_KIND), intent(in) :: attr_val
1763   integer, intent(out) :: ierror
1764 end subroutine PMPI_Type_set_attr
1765 
1766 end interface
1767 
1768 
1769 interface PMPI_Type_set_name
1770 
1771 subroutine PMPI_Type_set_name(datatype, type_name, ierror)
1772   integer, intent(in) :: datatype
1773   character(len=*), intent(in) :: type_name
1774   integer, intent(out) :: ierror
1775 end subroutine PMPI_Type_set_name
1776 
1777 end interface
1778 
1779 
1780 interface PMPI_Type_size
1781 
1782 subroutine PMPI_Type_size(datatype, size, ierror)
1783   integer, intent(in) :: datatype
1784   integer, intent(out) :: size
1785   integer, intent(out) :: ierror
1786 end subroutine PMPI_Type_size
1787 
1788 end interface
1789 
1790 
1791 interface PMPI_Type_size_x
1792 
1793 subroutine PMPI_Type_size_x(datatype, size, ierror)
1794   include 'mpif-config.h'
1795   integer, intent(in) :: datatype
1796   integer(kind=MPI_COUNT_KIND), intent(out) :: size
1797   integer, intent(out) :: ierror
1798 end subroutine PMPI_Type_size_x
1799 
1800 end interface
1801 
1802 
1803 interface PMPI_Type_vector
1804 
1805 subroutine PMPI_Type_vector(count, blocklength, stride, oldtype, newtype&
1806         , ierror)
1807   integer, intent(in) :: count
1808   integer, intent(in) :: blocklength
1809   integer, intent(in) :: stride
1810   integer, intent(in) :: oldtype
1811   integer, intent(out) :: newtype
1812   integer, intent(out) :: ierror
1813 end subroutine PMPI_Type_vector
1814 
1815 end interface
1816 
1817 
1818 interface PMPI_Wait
1819 
1820 subroutine PMPI_Wait(request, status, ierror)
1821   include 'mpif-config.h'
1822   integer, intent(inout) :: request
1823   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1824   integer, intent(out) :: ierror
1825 end subroutine PMPI_Wait
1826 
1827 end interface
1828 
1829 
1830 interface PMPI_Waitall
1831 
1832 subroutine PMPI_Waitall(count, array_of_requests, array_of_statuses, ierror)
1833   include 'mpif-config.h'
1834   integer, intent(in) :: count
1835   integer, dimension(count), intent(inout) :: array_of_requests
1836   integer, dimension(MPI_STATUS_SIZE, *), intent(out) :: array_of_statuses
1837   integer, intent(out) :: ierror
1838 end subroutine PMPI_Waitall
1839 
1840 end interface
1841 
1842 
1843 interface PMPI_Waitany
1844 
1845 subroutine PMPI_Waitany(count, array_of_requests, index, status, ierror)
1846   include 'mpif-config.h'
1847   integer, intent(in) :: count
1848   integer, dimension(count), intent(inout) :: array_of_requests
1849   integer, intent(out) :: index
1850   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1851   integer, intent(out) :: ierror
1852 end subroutine PMPI_Waitany
1853 
1854 end interface
1855 
1856 
1857 interface PMPI_Waitsome
1858 
1859 subroutine PMPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
1860         , ierror)
1861   include 'mpif-config.h'
1862   integer, intent(in) :: incount
1863   integer, dimension(incount), intent(inout) :: array_of_requests
1864   integer, intent(out) :: outcount
1865   integer, dimension(*), intent(out) :: array_of_indices
1866   integer, dimension(MPI_STATUS_SIZE, *), intent(out) :: array_of_statuses
1867   integer, intent(out) :: ierror
1868 end subroutine PMPI_Waitsome
1869 
1870 end interface
1871 
1872 
1873 interface PMPI_Win_call_errhandler
1874 
1875 subroutine PMPI_Win_call_errhandler(win, errorcode, ierror)
1876   integer, intent(in) :: win
1877   integer, intent(in) :: errorcode
1878   integer, intent(out) :: ierror
1879 end subroutine PMPI_Win_call_errhandler
1880 
1881 end interface
1882 
1883 
1884 interface PMPI_Win_complete
1885 
1886 subroutine PMPI_Win_complete(win, ierror)
1887   integer, intent(in) :: win
1888   integer, intent(out) :: ierror
1889 end subroutine PMPI_Win_complete
1890 
1891 end interface
1892 
1893 
1894 interface PMPI_Win_create_errhandler
1895 
1896 subroutine PMPI_Win_create_errhandler(function, errhandler, ierror)
1897   external :: function
1898   integer, intent(out) :: errhandler
1899   integer, intent(out) :: ierror
1900 end subroutine PMPI_Win_create_errhandler
1901 
1902 end interface
1903 
1904 
1905 interface PMPI_Win_create_keyval
1906 
1907 subroutine PMPI_Win_create_keyval(win_copy_attr_fn, win_delete_attr_fn, win_keyval, extra_state, ierror)
1908   include 'mpif-config.h'
1909   external :: win_copy_attr_fn
1910   external :: win_delete_attr_fn
1911   integer, intent(out) :: win_keyval
1912   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
1913   integer, intent(out) :: ierror
1914 end subroutine PMPI_Win_create_keyval
1915 
1916 end interface
1917 
1918 
1919 interface PMPI_Win_delete_attr
1920 
1921 subroutine PMPI_Win_delete_attr(win, win_keyval, ierror)
1922   integer, intent(in) :: win
1923   integer, intent(in) :: win_keyval
1924   integer, intent(out) :: ierror
1925 end subroutine PMPI_Win_delete_attr
1926 
1927 end interface
1928 
1929 
1930 interface PMPI_Win_fence
1931 
1932 subroutine PMPI_Win_fence(assert, win, ierror)
1933   integer, intent(in) :: assert
1934   integer, intent(in) :: win
1935   integer, intent(out) :: ierror
1936 end subroutine PMPI_Win_fence
1937 
1938 end interface
1939 
1940 
1941 interface PMPI_Win_free
1942 
1943 subroutine PMPI_Win_free(win, ierror)
1944   integer, intent(inout) :: win
1945   integer, intent(out) :: ierror
1946 end subroutine PMPI_Win_free
1947 
1948 end interface
1949 
1950 
1951 interface PMPI_Win_free_keyval
1952 
1953 subroutine PMPI_Win_free_keyval(win_keyval, ierror)
1954   integer, intent(inout) :: win_keyval
1955   integer, intent(out) :: ierror
1956 end subroutine PMPI_Win_free_keyval
1957 
1958 end interface
1959 
1960 
1961 interface PMPI_Win_get_attr
1962 
1963 subroutine PMPI_Win_get_attr(win, win_keyval, attribute_val, flag, ierror)
1964   include 'mpif-config.h'
1965   integer, intent(in) :: win
1966   integer, intent(in) :: win_keyval
1967   integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val
1968   logical, intent(out) :: flag
1969   integer, intent(out) :: ierror
1970 end subroutine PMPI_Win_get_attr
1971 
1972 end interface
1973 
1974 
1975 interface PMPI_Win_get_errhandler
1976 
1977 subroutine PMPI_Win_get_errhandler(win, errhandler, ierror)
1978   integer, intent(in) :: win
1979   integer, intent(out) :: errhandler
1980   integer, intent(out) :: ierror
1981 end subroutine PMPI_Win_get_errhandler
1982 
1983 end interface
1984 
1985 
1986 interface PMPI_Win_get_group
1987 
1988 subroutine PMPI_Win_get_group(win, group, ierror)
1989   integer, intent(in) :: win
1990   integer, intent(out) :: group
1991   integer, intent(out) :: ierror
1992 end subroutine PMPI_Win_get_group
1993 
1994 end interface
1995 
1996 
1997 interface PMPI_Win_get_name
1998 
1999 subroutine PMPI_Win_get_name(win, win_name, resultlen, ierror)
2000   integer, intent(in) :: win
2001   character(len=*), intent(out) :: win_name
2002   integer, intent(out) :: resultlen
2003   integer, intent(out) :: ierror
2004 end subroutine PMPI_Win_get_name
2005 
2006 end interface
2007 
2008 
2009 interface PMPI_Win_lock
2010 
2011 subroutine PMPI_Win_lock(lock_type, rank, assert, win, ierror)
2012   integer, intent(in) :: lock_type
2013   integer, intent(in) :: rank
2014   integer, intent(in) :: assert
2015   integer, intent(in) :: win
2016   integer, intent(out) :: ierror
2017 end subroutine PMPI_Win_lock
2018 
2019 end interface
2020 
2021 
2022 interface PMPI_Win_post
2023 
2024 subroutine PMPI_Win_post(group, assert, win, ierror)
2025   integer, intent(in) :: group
2026   integer, intent(in) :: assert
2027   integer, intent(in) :: win
2028   integer, intent(out) :: ierror
2029 end subroutine PMPI_Win_post
2030 
2031 end interface
2032 
2033 
2034 interface PMPI_Win_set_attr
2035 
2036 subroutine PMPI_Win_set_attr(win, win_keyval, attribute_val, ierror)
2037   include 'mpif-config.h'
2038   integer, intent(in) :: win
2039   integer, intent(in) :: win_keyval
2040   integer(kind=MPI_ADDRESS_KIND), intent(in) :: attribute_val
2041   integer, intent(out) :: ierror
2042 end subroutine PMPI_Win_set_attr
2043 
2044 end interface
2045 
2046 
2047 interface PMPI_Win_set_errhandler
2048 
2049 subroutine PMPI_Win_set_errhandler(win, errhandler, ierror)
2050   integer, intent(in) :: win
2051   integer, intent(in) :: errhandler
2052   integer, intent(out) :: ierror
2053 end subroutine PMPI_Win_set_errhandler
2054 
2055 end interface
2056 
2057 
2058 interface PMPI_Win_set_name
2059 
2060 subroutine PMPI_Win_set_name(win, win_name, ierror)
2061   integer, intent(in) :: win
2062   character(len=*), intent(in) :: win_name
2063   integer, intent(out) :: ierror
2064 end subroutine PMPI_Win_set_name
2065 
2066 end interface
2067 
2068 
2069 interface PMPI_Win_start
2070 
2071 subroutine PMPI_Win_start(group, assert, win, ierror)
2072   integer, intent(in) :: group
2073   integer, intent(in) :: assert
2074   integer, intent(in) :: win
2075   integer, intent(out) :: ierror
2076 end subroutine PMPI_Win_start
2077 
2078 end interface
2079 
2080 
2081 interface PMPI_Win_test
2082 
2083 subroutine PMPI_Win_test(win, flag, ierror)
2084   integer, intent(in) :: win
2085   logical, intent(out) :: flag
2086   integer, intent(out) :: ierror
2087 end subroutine PMPI_Win_test
2088 
2089 end interface
2090 
2091 
2092 interface PMPI_Win_unlock
2093 
2094 subroutine PMPI_Win_unlock(rank, win, ierror)
2095   integer, intent(in) :: rank
2096   integer, intent(in) :: win
2097   integer, intent(out) :: ierror
2098 end subroutine PMPI_Win_unlock
2099 
2100 end interface
2101 
2102 
2103 interface PMPI_Win_wait
2104 
2105 subroutine PMPI_Win_wait(win, ierror)
2106   integer, intent(in) :: win
2107   integer, intent(out) :: ierror
2108 end subroutine PMPI_Win_wait
2109 
2110 end interface
2111 
2112 
2113 interface PMPI_Close_port
2114 
2115 subroutine PMPI_Close_port(port_name, ierror)
2116   character(len=*), intent(in) :: port_name
2117   integer, intent(out) :: ierror
2118 end subroutine PMPI_Close_port
2119 
2120 end interface
2121 
2122 
2123 interface PMPI_Lookup_name
2124 
2125 subroutine PMPI_Lookup_name(service_name, info, port_name, ierror)
2126   character(len=*), intent(in) :: service_name
2127   integer, intent(in) :: info
2128   character(len=*), intent(out) :: port_name
2129   integer, intent(out) :: ierror
2130 end subroutine PMPI_Lookup_name
2131 
2132 end interface
2133 
2134 
2135 interface PMPI_Open_port
2136 
2137 subroutine PMPI_Open_port(info, port_name, ierror)
2138   integer, intent(in) :: info
2139   character(len=*), intent(out) :: port_name
2140   integer, intent(out) :: ierror
2141 end subroutine PMPI_Open_port
2142 
2143 end interface
2144 
2145 
2146 interface PMPI_Publish_name
2147 
2148 subroutine PMPI_Publish_name(service_name, info, port_name, ierror)
2149   character(len=*), intent(in) :: service_name
2150   integer, intent(in) :: info
2151   character(len=*), intent(in) :: port_name
2152   integer, intent(out) :: ierror
2153 end subroutine PMPI_Publish_name
2154 
2155 end interface
2156 
2157 
2158 interface PMPI_Unpublish_name
2159 
2160 subroutine PMPI_Unpublish_name(service_name, info, port_name, ierror)
2161   character(len=*), intent(in) :: service_name
2162   integer, intent(in) :: info
2163   character(len=*), intent(in) :: port_name
2164   integer, intent(out) :: ierror
2165 end subroutine PMPI_Unpublish_name
2166 
2167 end interface
2168 
2169 
2170 interface PMPI_Comm_disconnect
2171 
2172 subroutine PMPI_Comm_disconnect(comm, ierror)
2173   integer, intent(inout) :: comm
2174   integer, intent(out) :: ierror
2175 end subroutine PMPI_Comm_disconnect
2176 
2177 end interface
2178 
2179 
2180 interface PMPI_Comm_get_parent
2181 
2182 subroutine PMPI_Comm_get_parent(parent, ierror)
2183   integer, intent(out) :: parent
2184   integer, intent(out) :: ierror
2185 end subroutine PMPI_Comm_get_parent
2186 
2187 end interface
2188 
2189 
2190 interface PMPI_Comm_join
2191 
2192 subroutine PMPI_Comm_join(fd, intercomm, ierror)
2193   integer, intent(in) :: fd
2194   integer, intent(out) :: intercomm
2195   integer, intent(out) :: ierror
2196 end subroutine PMPI_Comm_join
2197 
2198 end interface
2199 
2200 
2201 interface PMPI_Comm_accept
2202 
2203 subroutine PMPI_Comm_accept(port_name, info, root, comm, newcomm&
2204         , ierror)
2205   character(len=*), intent(in) :: port_name
2206   integer, intent(in) :: info
2207   integer, intent(in) :: root
2208   integer, intent(in) :: comm
2209   integer, intent(out) :: newcomm
2210   integer, intent(out) :: ierror
2211 end subroutine PMPI_Comm_accept
2212 
2213 end interface
2214 
2215 
2216 interface PMPI_Comm_connect
2217 
2218 subroutine PMPI_Comm_connect(port_name, info, root, comm, newcomm&
2219         , ierror)
2220   character(len=*), intent(in) :: port_name
2221   integer, intent(in) :: info
2222   integer, intent(in) :: root
2223   integer, intent(in) :: comm
2224   integer, intent(out) :: newcomm
2225   integer, intent(out) :: ierror
2226 end subroutine PMPI_Comm_connect
2227 
2228 end interface
2229 
2230 
2231 interface PMPI_Comm_spawn
2232 
2233 subroutine PMPI_Comm_spawn(command, argv, maxprocs, info, root, &
2234         comm, intercomm, array_of_errcodes, ierror)
2235   character(len=*), intent(in) :: command
2236   character(len=*), dimension(*), intent(in) :: argv
2237   integer, intent(in) :: maxprocs
2238   integer, intent(in) :: info
2239   integer, intent(in) :: root
2240   integer, intent(in) :: comm
2241   integer, intent(out) :: intercomm
2242   integer, dimension(*), intent(out) :: array_of_errcodes
2243   integer, intent(out) :: ierror
2244 end subroutine PMPI_Comm_spawn
2245 
2246 end interface
2247 
2248 
2249 interface PMPI_Comm_spawn_multiple
2250 
2251 subroutine PMPI_Comm_spawn_multiple(count, array_of_commands, array_of_argv, array_of_maxprocs, array_of_info, &
2252         root, comm, intercomm, array_of_errcodes, ierror)
2253   integer, intent(in) :: count
2254   character(len=*), dimension(*), intent(in) :: array_of_commands
2255   character(len=*), dimension(count,*), intent(in) :: array_of_argv
2256   integer, dimension(*), intent(in) :: array_of_maxprocs
2257   integer, dimension(*), intent(in) :: array_of_info
2258   integer, intent(in) :: root
2259   integer, intent(in) :: comm
2260   integer, intent(out) :: intercomm
2261   integer, dimension(*), intent(out) :: array_of_errcodes
2262   integer, intent(out) :: ierror
2263 end subroutine PMPI_Comm_spawn_multiple
2264 
2265 end interface
2266 
2267 
2268 interface PMPI_Mprobe
2269 
2270 subroutine PMPI_Mprobe(source, tag, comm, message, status, ierror)
2271   include 'mpif-config.h'
2272   integer, intent(in) :: source
2273   integer, intent(in) :: tag
2274   integer, intent(in) :: comm
2275   integer, intent(out) :: message
2276   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
2277   integer, intent(out) :: ierror
2278 end subroutine PMPI_Mprobe
2279 
2280 end interface
2281 
2282 
2283 interface PMPI_Improbe
2284 
2285 subroutine PMPI_Improbe(source, tag, comm, flag, message, status, ierror)
2286   include 'mpif-config.h'
2287   integer, intent(in) :: source
2288   integer, intent(in) :: tag
2289   integer, intent(in) :: comm
2290   logical, intent(out) :: flag
2291   integer, intent(out) :: message
2292   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
2293   integer, intent(out) :: ierror
2294 end subroutine PMPI_Improbe
2295 
2296 end interface
2297 
2298 
2299 interface PMPI_Get_library_version
2300 
2301 subroutine PMPI_Get_library_version(version, resultlen, ierror)
2302   character(len=*), intent(out) :: version
2303   integer, intent(out) :: resultlen
2304   integer, intent(out) :: ierror
2305 end subroutine PMPI_Get_library_version
2306 
2307 end interface
2308 
2309 
2310 interface PMPI_Comm_split_type
2311 
2312 subroutine PMPI_Comm_split_type(comm, split_type, key, info, newcomm, ierror)
2313   integer, intent(in) :: comm
2314   integer, intent(in) :: split_type
2315   integer, intent(in) :: key
2316   integer, intent(in) :: info
2317   integer, intent(out) :: newcomm
2318   integer, intent(out) :: ierror
2319 end subroutine PMPI_Comm_split_type
2320 
2321 end interface
2322 
2323 
2324 interface PMPI_Type_create_hindexed_block
2325 
2326 subroutine PMPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype&
2327         , ierror)
2328   include 'mpif-config.h'
2329   integer, intent(in) :: count
2330   integer, intent(in) :: blocklength
2331   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
2332   integer, intent(in) :: oldtype
2333   integer, intent(out) :: newtype
2334   integer, intent(out) :: ierror
2335 end subroutine PMPI_Type_create_hindexed_block
2336 
2337 end interface
2338 
2339 
2340 interface PMPI_Dist_graph_create
2341 
2342 subroutine PMPI_Dist_graph_create(comm_old, n, sources, degrees, destinations, &
2343         weights, info, reorder, comm_dist_graph, ierror)
2344   integer, intent(in) :: comm_old
2345   integer, intent(in) :: n
2346   integer, dimension(n), intent(in) :: sources
2347   integer, dimension(n), intent(in) :: degrees
2348   integer, dimension(n), intent(in) :: destinations
2349   integer, dimension(n), intent(in) :: weights
2350   integer, intent(in) :: info
2351   logical, intent(in) :: reorder
2352   integer, intent(out) :: comm_dist_graph
2353   integer, intent(out) :: ierror
2354 end subroutine PMPI_Dist_graph_create
2355 
2356 end interface
2357 
2358 
2359 interface PMPI_Dist_graph_create_adjacent
2360 
2361 subroutine PMPI_Dist_graph_create_adjacent(comm_old, indegree, sources, sourceweights, &
2362        outdegree, destinations, destweights, info, reorder, &
2363        comm_dist_graph, ierror)
2364   integer, intent(in) :: comm_old
2365   integer, intent(in) :: indegree
2366   integer, dimension(indegree), intent(in) :: sources
2367   integer, dimension(indegree), intent(in) :: sourceweights
2368   integer, intent(in) :: outdegree
2369   integer, dimension(outdegree), intent(in) :: destinations
2370   integer, dimension(outdegree), intent(in) :: destweights
2371   integer, intent(in) :: info
2372   logical, intent(in) :: reorder
2373   integer, intent(out) :: comm_dist_graph
2374   integer, intent(out) :: ierror
2375 end subroutine PMPI_Dist_graph_create_adjacent
2376 
2377 end interface
2378 
2379 
2380 interface PMPI_Dist_graph_neighbors_count
2381 
2382 subroutine PMPI_Dist_graph_neighbors_count(comm, indegree, outdegree, weighted, ierror)
2383   integer, intent(in) :: comm
2384   integer, intent(out) :: indegree
2385   integer, intent(out) :: outdegree
2386   logical, intent(out) :: weighted
2387   integer, intent(out) :: ierror
2388 end subroutine PMPI_Dist_graph_neighbors_count
2389 
2390 end interface
2391 
2392 
2393 interface PMPI_Dist_graph_neighbors
2394 
2395 subroutine PMPI_Dist_graph_neighbors(comm, maxindegree, sources, sourceweights, &
2396        maxoutdegree, destinations, destweights, ierror)
2397   integer, intent(in) :: comm
2398   integer, intent(in) :: maxindegree
2399   integer, dimension(maxindegree), intent(out) :: sources
2400   integer, dimension(maxindegree), intent(out) :: sourceweights
2401   integer, intent(in) :: maxoutdegree
2402   integer, dimension(maxoutdegree), intent(out) :: destinations
2403   integer, dimension(maxoutdegree), intent(out) :: destweights
2404   integer, intent(out) :: ierror
2405 end subroutine PMPI_Dist_graph_neighbors
2406 
2407 end interface
2408 
2409 
2410 interface PMPI_Win_flush
2411 
2412 subroutine PMPI_Win_flush(rank, win, ierror)
2413   integer, intent(in) :: rank
2414   integer, intent(in) :: win
2415   integer, intent(out) :: ierror
2416 end subroutine PMPI_Win_flush
2417 
2418 end interface
2419 
2420 
2421 interface PMPI_Win_flush_all
2422 
2423 subroutine PMPI_Win_flush_all(win, ierror)
2424   integer, intent(in) :: win
2425   integer, intent(out) :: ierror
2426 end subroutine PMPI_Win_flush_all
2427 
2428 end interface
2429 
2430 
2431 interface PMPI_Win_flush_local
2432 
2433 subroutine PMPI_Win_flush_local(rank, win, ierror)
2434   integer, intent(in) :: rank
2435   integer, intent(in) :: win
2436   integer, intent(out) :: ierror
2437 end subroutine PMPI_Win_flush_local
2438 
2439 end interface
2440 
2441 
2442 interface PMPI_Win_flush_local_all
2443 
2444 subroutine PMPI_Win_flush_local_all(win, ierror)
2445   integer, intent(in) :: win
2446   integer, intent(out) :: ierror
2447 end subroutine PMPI_Win_flush_local_all
2448 
2449 end interface
2450