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-2014 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 MPI_Wtick
24 
25 function MPI_Wtick()
26     double precision MPI_Wtick
27 end function MPI_Wtick
28 
29 end interface
30 
31 
32 interface MPI_Wtime
33 
34 function MPI_Wtime()
35     double precision MPI_Wtime
36 end function MPI_Wtime
37 
38 end interface
39 
40 
41 interface MPI_Abort
42 
43 subroutine MPI_Abort(comm, errorcode, ierror)
44   integer, intent(in) :: comm
45   integer, intent(in) :: errorcode
46   integer, intent(out) :: ierror
47 end subroutine MPI_Abort
48 
49 end interface
50 
51 
52 interface MPI_Add_error_class
53 
54 subroutine MPI_Add_error_class(errorclass, ierror)
55   integer, intent(out) :: errorclass
56   integer, intent(out) :: ierror
57 end subroutine MPI_Add_error_class
58 
59 end interface
60 
61 
62 interface MPI_Add_error_code
63 
64 subroutine MPI_Add_error_code(errorclass, errorcode, ierror)
65   integer, intent(in) :: errorclass
66   integer, intent(out) :: errorcode
67   integer, intent(out) :: ierror
68 end subroutine MPI_Add_error_code
69 
70 end interface
71 
72 
73 interface MPI_Add_error_string
74 
75 subroutine MPI_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 MPI_Add_error_string
80 
81 end interface
82 
83 interface MPI_Aint_add
84 
85 function MPI_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) MPI_Aint_add
90 end function MPI_Aint_add
91 
92 end interface
93 
94 interface MPI_Aint_diff
95 
96 function MPI_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) MPI_Aint_diff
101 end function MPI_Aint_diff
102 
103 end interface
104 
105 interface MPI_Attr_delete
106 
107 subroutine MPI_Attr_delete(comm, keyval, ierror)
108   integer, intent(in) :: comm
109   integer, intent(in) :: keyval
110   integer, intent(out) :: ierror
111 end subroutine MPI_Attr_delete
112 
113 end interface
114 
115 
116 interface MPI_Attr_get
117 
118 subroutine MPI_Attr_get(comm, keyval, attribute_val, flag, ierror)
119   integer, intent(in) :: comm
120   integer, intent(in) :: keyval
121   integer, intent(out) :: attribute_val
122   logical, intent(out) :: flag
123   integer, intent(out) :: ierror
124 end subroutine MPI_Attr_get
125 
126 end interface
127 
128 
129 interface MPI_Attr_put
130 
131 subroutine MPI_Attr_put(comm, keyval, attribute_val, ierror)
132   integer, intent(in) :: comm
133   integer, intent(in) :: keyval
134   integer, intent(in) :: attribute_val
135   integer, intent(out) :: ierror
136 end subroutine MPI_Attr_put
137 
138 end interface
139 
140 
141 interface MPI_Barrier
142 
143 subroutine MPI_Barrier(comm, ierror)
144   integer, intent(in) :: comm
145   integer, intent(out) :: ierror
146 end subroutine MPI_Barrier
147 
148 end interface
149 
150 
151 interface MPI_Ibarrier
152 
153 subroutine MPI_Ibarrier(comm, request, ierror)
154   integer, intent(in) :: comm
155   integer, intent(out) :: request
156   integer, intent(out) :: ierror
157 end subroutine MPI_Ibarrier
158 
159 end interface
160 
161 
162 interface MPI_Cancel
163 
164 subroutine MPI_Cancel(request, ierror)
165   integer, intent(in) :: request
166   integer, intent(out) :: ierror
167 end subroutine MPI_Cancel
168 
169 end interface
170 
171 
172 interface MPI_Cart_coords
173 
174 subroutine MPI_Cart_coords(comm, rank, maxdims, coords, ierror)
175   integer, intent(in) :: comm
176   integer, intent(in) :: rank
177   integer, intent(in) :: maxdims
178   integer, dimension(*), intent(out) :: coords
179   integer, intent(out) :: ierror
180 end subroutine MPI_Cart_coords
181 
182 end interface
183 
184 
185 interface MPI_Cart_create
186 
187 subroutine MPI_Cart_create(old_comm, ndims, dims, periods, reorder, &
188         comm_cart, ierror)
189   integer, intent(in) :: old_comm
190   integer, intent(in) :: ndims
191   integer, dimension(*), intent(in) :: dims
192   logical, dimension(*), intent(in) :: periods
193   logical, intent(in) :: reorder
194   integer, intent(out) :: comm_cart
195   integer, intent(out) :: ierror
196 end subroutine MPI_Cart_create
197 
198 end interface
199 
200 
201 interface MPI_Cart_get
202 
203 subroutine MPI_Cart_get(comm, maxdims, dims, periods, coords&
204         , ierror)
205   integer, intent(in) :: comm
206   integer, intent(in) :: maxdims
207   integer, dimension(*), intent(out) :: dims
208   logical, dimension(*), intent(out) :: periods
209   integer, dimension(*), intent(out) :: coords
210   integer, intent(out) :: ierror
211 end subroutine MPI_Cart_get
212 
213 end interface
214 
215 
216 interface MPI_Cart_map
217 
218 subroutine MPI_Cart_map(comm, ndims, dims, periods, newrank&
219         , ierror)
220   integer, intent(in) :: comm
221   integer, intent(in) :: ndims
222   integer, dimension(*), intent(in) :: dims
223   logical, dimension(*), intent(in) :: periods
224   integer, intent(out) :: newrank
225   integer, intent(out) :: ierror
226 end subroutine MPI_Cart_map
227 
228 end interface
229 
230 
231 interface MPI_Cart_rank
232 
233 subroutine MPI_Cart_rank(comm, coords, rank, ierror)
234   integer, intent(in) :: comm
235   integer, dimension(*), intent(in) :: coords
236   integer, intent(out) :: rank
237   integer, intent(out) :: ierror
238 end subroutine MPI_Cart_rank
239 
240 end interface
241 
242 
243 interface MPI_Cart_shift
244 
245 subroutine MPI_Cart_shift(comm, direction, disp, rank_source, rank_dest&
246         , ierror)
247   integer, intent(in) :: comm
248   integer, intent(in) :: direction
249   integer, intent(in) :: disp
250   integer, intent(out) :: rank_source
251   integer, intent(out) :: rank_dest
252   integer, intent(out) :: ierror
253 end subroutine MPI_Cart_shift
254 
255 end interface
256 
257 
258 interface MPI_Cart_sub
259 
260 subroutine MPI_Cart_sub(comm, remain_dims, new_comm, ierror)
261   integer, intent(in) :: comm
262   logical, dimension(*), intent(in) :: remain_dims
263   integer, intent(out) :: new_comm
264   integer, intent(out) :: ierror
265 end subroutine MPI_Cart_sub
266 
267 end interface
268 
269 
270 interface MPI_Cartdim_get
271 
272 subroutine MPI_Cartdim_get(comm, ndims, ierror)
273   integer, intent(in) :: comm
274   integer, intent(out) :: ndims
275   integer, intent(out) :: ierror
276 end subroutine MPI_Cartdim_get
277 
278 end interface
279 
280 
281 interface MPI_Comm_call_errhandler
282 
283 subroutine MPI_Comm_call_errhandler(comm, errorcode, ierror)
284   integer, intent(in) :: comm
285   integer, intent(in) :: errorcode
286   integer, intent(out) :: ierror
287 end subroutine MPI_Comm_call_errhandler
288 
289 end interface
290 
291 
292 interface MPI_Comm_compare
293 
294 subroutine MPI_Comm_compare(comm1, comm2, result, ierror)
295   integer, intent(in) :: comm1
296   integer, intent(in) :: comm2
297   integer, intent(out) :: result
298   integer, intent(out) :: ierror
299 end subroutine MPI_Comm_compare
300 
301 end interface
302 
303 
304 interface MPI_Comm_create
305 
306 subroutine MPI_Comm_create(comm, group, newcomm, ierror)
307   integer, intent(in) :: comm
308   integer, intent(in) :: group
309   integer, intent(out) :: newcomm
310   integer, intent(out) :: ierror
311 end subroutine MPI_Comm_create
312 
313 end interface
314 
315 
316 interface MPI_Comm_create_group
317 
318 subroutine MPI_Comm_create_group(comm, group, tag, newcomm, ierror)
319   integer, intent(in) :: comm
320   integer, intent(in) :: group
321   integer, intent(in) :: tag
322   integer, intent(out) :: newcomm
323   integer, intent(out) :: ierror
324 end subroutine MPI_Comm_create_group
325 
326 end interface
327 
328 
329 interface MPI_Comm_create_errhandler
330 
331 subroutine MPI_Comm_create_errhandler(function, errhandler, ierror)
332   external :: function
333   integer, intent(out) :: errhandler
334   integer, intent(out) :: ierror
335 end subroutine MPI_Comm_create_errhandler
336 
337 end interface
338 
339 
340 interface MPI_Comm_create_keyval
341 
342 subroutine MPI_Comm_create_keyval(comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval, extra_state, ierror)
343   include 'mpif-config.h'
344   external :: comm_copy_attr_fn
345   external :: comm_delete_attr_fn
346   integer, intent(out) :: comm_keyval
347   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
348   integer, intent(out) :: ierror
349 end subroutine MPI_Comm_create_keyval
350 
351 end interface
352 
353 
354 interface MPI_Comm_delete_attr
355 
356 subroutine MPI_Comm_delete_attr(comm, comm_keyval, ierror)
357   integer, intent(in) :: comm
358   integer, intent(in) :: comm_keyval
359   integer, intent(out) :: ierror
360 end subroutine MPI_Comm_delete_attr
361 
362 end interface
363 
364 
365 interface MPI_Comm_dup
366 
367 subroutine MPI_Comm_dup(comm, newcomm, ierror)
368   integer, intent(in) :: comm
369   integer, intent(out) :: newcomm
370   integer, intent(out) :: ierror
371 end subroutine MPI_Comm_dup
372 
373 end interface
374 
375 
376 interface MPI_Comm_dup_with_info
377 
378 subroutine MPI_Comm_dup_with_info(comm, info, newcomm, ierror)
379   integer, intent(in) :: comm
380   integer, intent(in) :: info
381   integer, intent(out) :: newcomm
382   integer, intent(out) :: ierror
383 end subroutine MPI_Comm_dup_with_info
384 
385 end interface
386 
387 
388 interface MPI_Comm_idup
389 
390 subroutine MPI_Comm_idup(comm, newcomm, request, ierror)
391   integer, intent(in) :: comm
392   integer, intent(out) :: newcomm
393   integer, intent(out) :: request
394   integer, intent(out) :: ierror
395 end subroutine MPI_Comm_idup
396 
397 end interface
398 
399 
400 interface MPI_Comm_free
401 
402 subroutine MPI_Comm_free(comm, ierror)
403   integer, intent(inout) :: comm
404   integer, intent(out) :: ierror
405 end subroutine MPI_Comm_free
406 
407 end interface
408 
409 
410 interface MPI_Comm_free_keyval
411 
412 subroutine MPI_Comm_free_keyval(comm_keyval, ierror)
413   integer, intent(inout) :: comm_keyval
414   integer, intent(out) :: ierror
415 end subroutine MPI_Comm_free_keyval
416 
417 end interface
418 
419 
420 interface MPI_Comm_get_info
421 
422 subroutine MPI_Comm_get_info(comm, info_used, ierror)
423   include 'mpif-config.h'
424   integer, intent(in) :: comm
425   integer, intent(out) :: info_used
426   integer, intent(out) :: ierror
427 end subroutine MPI_Comm_get_info
428 
429 end interface
430 
431 
432 interface MPI_Comm_get_attr
433 
434 subroutine MPI_Comm_get_attr(comm, comm_keyval, attribute_val, flag, ierror)
435   include 'mpif-config.h'
436   integer, intent(in) :: comm
437   integer, intent(in) :: comm_keyval
438   integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val
439   logical, intent(out) :: flag
440   integer, intent(out) :: ierror
441 end subroutine MPI_Comm_get_attr
442 
443 end interface
444 
445 
446 interface MPI_Comm_get_errhandler
447 
448 subroutine MPI_Comm_get_errhandler(comm, erhandler, ierror)
449   integer, intent(in) :: comm
450   integer, intent(out) :: erhandler
451   integer, intent(out) :: ierror
452 end subroutine MPI_Comm_get_errhandler
453 
454 end interface
455 
456 
457 interface MPI_Comm_get_name
458 
459 subroutine MPI_Comm_get_name(comm, comm_name, resultlen, ierror)
460   integer, intent(in) :: comm
461   character(len=*), intent(out) :: comm_name
462   integer, intent(out) :: resultlen
463   integer, intent(out) :: ierror
464 end subroutine MPI_Comm_get_name
465 
466 end interface
467 
468 
469 interface MPI_Comm_group
470 
471 subroutine MPI_Comm_group(comm, group, ierror)
472   integer, intent(in) :: comm
473   integer, intent(out) :: group
474   integer, intent(out) :: ierror
475 end subroutine MPI_Comm_group
476 
477 end interface
478 
479 
480 interface MPI_Comm_rank
481 
482 subroutine MPI_Comm_rank(comm, rank, ierror)
483   integer, intent(in) :: comm
484   integer, intent(out) :: rank
485   integer, intent(out) :: ierror
486 end subroutine MPI_Comm_rank
487 
488 end interface
489 
490 
491 interface MPI_Comm_remote_group
492 
493 subroutine MPI_Comm_remote_group(comm, group, ierror)
494   integer, intent(in) :: comm
495   integer, intent(out) :: group
496   integer, intent(out) :: ierror
497 end subroutine MPI_Comm_remote_group
498 
499 end interface
500 
501 
502 interface MPI_Comm_remote_size
503 
504 subroutine MPI_Comm_remote_size(comm, size, ierror)
505   integer, intent(in) :: comm
506   integer, intent(out) :: size
507   integer, intent(out) :: ierror
508 end subroutine MPI_Comm_remote_size
509 
510 end interface
511 
512 
513 interface MPI_Comm_set_info
514 
515 subroutine MPI_Comm_set_info(comm, info, ierror)
516   include 'mpif-config.h'
517   integer, intent(in) :: comm
518   integer, intent(in) :: info
519   integer, intent(out) :: ierror
520 end subroutine MPI_Comm_set_info
521 
522 end interface
523 
524 
525 interface MPI_Comm_set_attr
526 
527 subroutine MPI_Comm_set_attr(comm, comm_keyval, attribute_val, ierror)
528   include 'mpif-config.h'
529   integer, intent(in) :: comm
530   integer, intent(in) :: comm_keyval
531   integer(kind=MPI_ADDRESS_KIND), intent(in) :: attribute_val
532   integer, intent(out) :: ierror
533 end subroutine MPI_Comm_set_attr
534 
535 end interface
536 
537 
538 interface MPI_Comm_set_errhandler
539 
540 subroutine MPI_Comm_set_errhandler(comm, errhandler, ierror)
541   integer, intent(in) :: comm
542   integer, intent(in) :: errhandler
543   integer, intent(out) :: ierror
544 end subroutine MPI_Comm_set_errhandler
545 
546 end interface
547 
548 
549 interface MPI_Comm_set_name
550 
551 subroutine MPI_Comm_set_name(comm, comm_name, ierror)
552   integer, intent(in) :: comm
553   character(len=*), intent(in) :: comm_name
554   integer, intent(out) :: ierror
555 end subroutine MPI_Comm_set_name
556 
557 end interface
558 
559 
560 interface MPI_Comm_size
561 
562 subroutine MPI_Comm_size(comm, size, ierror)
563   integer, intent(in) :: comm
564   integer, intent(out) :: size
565   integer, intent(out) :: ierror
566 end subroutine MPI_Comm_size
567 
568 end interface
569 
570 
571 interface MPI_Comm_split
572 
573 subroutine MPI_Comm_split(comm, color, key, newcomm, ierror)
574   integer, intent(in) :: comm
575   integer, intent(in) :: color
576   integer, intent(in) :: key
577   integer, intent(out) :: newcomm
578   integer, intent(out) :: ierror
579 end subroutine MPI_Comm_split
580 
581 end interface
582 
583 
584 interface MPI_Comm_test_inter
585 
586 subroutine MPI_Comm_test_inter(comm, flag, ierror)
587   integer, intent(in) :: comm
588   logical, intent(out) :: flag
589   integer, intent(out) :: ierror
590 end subroutine MPI_Comm_test_inter
591 
592 end interface
593 
594 
595 interface MPI_Dims_create
596 
597 subroutine MPI_Dims_create(nnodes, ndims, dims, ierror)
598   integer, intent(in) :: nnodes
599   integer, intent(in) :: ndims
600   integer, dimension(*), intent(inout) :: dims
601   integer, intent(out) :: ierror
602 end subroutine MPI_Dims_create
603 
604 end interface
605 
606 
607 interface MPI_Errhandler_create
608 
609 subroutine MPI_Errhandler_create(function, errhandler, ierror)
610   external :: function
611   integer, intent(out) :: errhandler
612   integer, intent(out) :: ierror
613 end subroutine MPI_Errhandler_create
614 
615 end interface
616 
617 
618 interface MPI_Errhandler_free
619 
620 subroutine MPI_Errhandler_free(errhandler, ierror)
621   integer, intent(inout) :: errhandler
622   integer, intent(out) :: ierror
623 end subroutine MPI_Errhandler_free
624 
625 end interface
626 
627 
628 interface MPI_Errhandler_get
629 
630 subroutine MPI_Errhandler_get(comm, errhandler, ierror)
631   integer, intent(in) :: comm
632   integer, intent(out) :: errhandler
633   integer, intent(out) :: ierror
634 end subroutine MPI_Errhandler_get
635 
636 end interface
637 
638 
639 interface MPI_Errhandler_set
640 
641 subroutine MPI_Errhandler_set(comm, errhandler, ierror)
642   integer, intent(in) :: comm
643   integer, intent(in) :: errhandler
644   integer, intent(out) :: ierror
645 end subroutine MPI_Errhandler_set
646 
647 end interface
648 
649 
650 interface MPI_Error_class
651 
652 subroutine MPI_Error_class(errorcode, errorclass, ierror)
653   integer, intent(in) :: errorcode
654   integer, intent(out) :: errorclass
655   integer, intent(out) :: ierror
656 end subroutine MPI_Error_class
657 
658 end interface
659 
660 
661 interface MPI_Error_string
662 
663 subroutine MPI_Error_string(errorcode, string, resultlen, ierror)
664   integer, intent(in) :: errorcode
665   character(len=*), intent(out) :: string
666   integer, intent(out) :: resultlen
667   integer, intent(out) :: ierror
668 end subroutine MPI_Error_string
669 
670 end interface
671 
672 
673 interface MPI_Finalize
674 
675 subroutine MPI_Finalize(ierror)
676   integer, intent(out) :: ierror
677 end subroutine MPI_Finalize
678 
679 end interface
680 
681 
682 interface MPI_Finalized
683 
684 subroutine MPI_Finalized(flag, ierror)
685   logical, intent(out) :: flag
686   integer, intent(out) :: ierror
687 end subroutine MPI_Finalized
688 
689 end interface
690 
691 
692 interface MPI_Get_count
693 
694 subroutine MPI_Get_count(status, datatype, count, ierror)
695   include 'mpif-config.h'
696   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
697   integer, intent(in) :: datatype
698   integer, intent(out) :: count
699   integer, intent(out) :: ierror
700 end subroutine MPI_Get_count
701 
702 end interface
703 
704 
705 interface MPI_Get_elements
706 
707 subroutine MPI_Get_elements(status, datatype, count, ierror)
708   include 'mpif-config.h'
709   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
710   integer, intent(in) :: datatype
711   integer, intent(out) :: count
712   integer, intent(out) :: ierror
713 end subroutine MPI_Get_elements
714 
715 end interface
716 
717 
718 interface MPI_Get_elements_x
719 
720 subroutine MPI_Get_elements_x(status, datatype, count, ierror)
721   include 'mpif-config.h'
722   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
723   integer, intent(in) :: datatype
724   integer(kind=MPI_COUNT_KIND), intent(out) :: count
725   integer, intent(out) :: ierror
726 end subroutine MPI_Get_elements_x
727 
728 end interface
729 
730 
731 interface MPI_Get_processor_name
732 
733 subroutine MPI_Get_processor_name(name, resultlen, ierror)
734   character(len=*), intent(out) :: name
735   integer, intent(out) :: resultlen
736   integer, intent(out) :: ierror
737 end subroutine MPI_Get_processor_name
738 
739 end interface
740 
741 
742 interface MPI_Get_version
743 
744 subroutine MPI_Get_version(version, subversion, ierror)
745   integer, intent(out) :: version
746   integer, intent(out) :: subversion
747   integer, intent(out) :: ierror
748 end subroutine MPI_Get_version
749 
750 end interface
751 
752 
753 interface MPI_Graph_create
754 
755 subroutine MPI_Graph_create(comm_old, nnodes, index, edges, reorder, &
756         comm_graph, ierror)
757   integer, intent(in) :: comm_old
758   integer, intent(in) :: nnodes
759   integer, dimension(*), intent(in) :: index
760   integer, dimension(*), intent(in) :: edges
761   logical, intent(in) :: reorder
762   integer, intent(out) :: comm_graph
763   integer, intent(out) :: ierror
764 end subroutine MPI_Graph_create
765 
766 end interface
767 
768 
769 interface MPI_Graph_get
770 
771 subroutine MPI_Graph_get(comm, maxindex, maxedges, index, edges&
772         , ierror)
773   integer, intent(in) :: comm
774   integer, intent(in) :: maxindex
775   integer, intent(in) :: maxedges
776   integer, dimension(*), intent(out) :: index
777   integer, dimension(*), intent(out) :: edges
778   integer, intent(out) :: ierror
779 end subroutine MPI_Graph_get
780 
781 end interface
782 
783 
784 interface MPI_Graph_map
785 
786 subroutine MPI_Graph_map(comm, nnodes, index, edges, newrank&
787         , ierror)
788   integer, intent(in) :: comm
789   integer, intent(in) :: nnodes
790   integer, dimension(*), intent(in) :: index
791   integer, dimension(*), intent(in) :: edges
792   integer, intent(out) :: newrank
793   integer, intent(out) :: ierror
794 end subroutine MPI_Graph_map
795 
796 end interface
797 
798 
799 interface MPI_Graph_neighbors
800 
801 subroutine MPI_Graph_neighbors(comm, rank, maxneighbors, neighbors, ierror)
802   integer, intent(in) :: comm
803   integer, intent(in) :: rank
804   integer, intent(in) :: maxneighbors
805   integer, dimension(*), intent(out) :: neighbors
806   integer, intent(out) :: ierror
807 end subroutine MPI_Graph_neighbors
808 
809 end interface
810 
811 
812 interface MPI_Graph_neighbors_count
813 
814 subroutine MPI_Graph_neighbors_count(comm, rank, nneighbors, ierror)
815   integer, intent(in) :: comm
816   integer, intent(in) :: rank
817   integer, intent(out) :: nneighbors
818   integer, intent(out) :: ierror
819 end subroutine MPI_Graph_neighbors_count
820 
821 end interface
822 
823 
824 interface MPI_Graphdims_get
825 
826 subroutine MPI_Graphdims_get(comm, nnodes, nedges, ierror)
827   integer, intent(in) :: comm
828   integer, intent(out) :: nnodes
829   integer, intent(out) :: nedges
830   integer, intent(out) :: ierror
831 end subroutine MPI_Graphdims_get
832 
833 end interface
834 
835 
836 interface MPI_Grequest_complete
837 
838 subroutine MPI_Grequest_complete(request, ierror)
839   integer, intent(in) :: request
840   integer, intent(out) :: ierror
841 end subroutine MPI_Grequest_complete
842 
843 end interface
844 
845 
846 interface MPI_Grequest_start
847 
848 subroutine MPI_Grequest_start(query_fn, free_fn, cancel_fn, extra_state, request&
849         , ierror)
850   include 'mpif-config.h'
851   external :: query_fn
852   external :: free_fn
853   external :: cancel_fn
854   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
855   integer, intent(out) :: request
856   integer, intent(out) :: ierror
857 end subroutine MPI_Grequest_start
858 
859 end interface
860 
861 
862 interface MPI_Group_compare
863 
864 subroutine MPI_Group_compare(group1, group2, result, ierror)
865   integer, intent(in) :: group1
866   integer, intent(in) :: group2
867   integer, intent(out) :: result
868   integer, intent(out) :: ierror
869 end subroutine MPI_Group_compare
870 
871 end interface
872 
873 
874 interface MPI_Group_difference
875 
876 subroutine MPI_Group_difference(group1, group2, newgroup, ierror)
877   integer, intent(in) :: group1
878   integer, intent(in) :: group2
879   integer, intent(out) :: newgroup
880   integer, intent(out) :: ierror
881 end subroutine MPI_Group_difference
882 
883 end interface
884 
885 
886 interface MPI_Group_excl
887 
888 subroutine MPI_Group_excl(group, n, ranks, newgroup, ierror)
889   integer, intent(in) :: group
890   integer, intent(in) :: n
891   integer, dimension(*), intent(in) :: ranks
892   integer, intent(out) :: newgroup
893   integer, intent(out) :: ierror
894 end subroutine MPI_Group_excl
895 
896 end interface
897 
898 
899 interface MPI_Group_free
900 
901 subroutine MPI_Group_free(group, ierror)
902   integer, intent(inout) :: group
903   integer, intent(out) :: ierror
904 end subroutine MPI_Group_free
905 
906 end interface
907 
908 
909 interface MPI_Group_incl
910 
911 subroutine MPI_Group_incl(group, n, ranks, newgroup, ierror)
912   integer, intent(in) :: group
913   integer, intent(in) :: n
914   integer, dimension(*), intent(in) :: ranks
915   integer, intent(out) :: newgroup
916   integer, intent(out) :: ierror
917 end subroutine MPI_Group_incl
918 
919 end interface
920 
921 
922 interface MPI_Group_intersection
923 
924 subroutine MPI_Group_intersection(group1, group2, newgroup, ierror)
925   integer, intent(in) :: group1
926   integer, intent(in) :: group2
927   integer, intent(out) :: newgroup
928   integer, intent(out) :: ierror
929 end subroutine MPI_Group_intersection
930 
931 end interface
932 
933 
934 interface MPI_Group_range_excl
935 
936 subroutine MPI_Group_range_excl(group, n, ranges, newgroup, ierror)
937   integer, intent(in) :: group
938   integer, intent(in) :: n
939   integer, dimension(3, *), intent(in) :: ranges
940   integer, intent(out) :: newgroup
941   integer, intent(out) :: ierror
942 end subroutine MPI_Group_range_excl
943 
944 end interface
945 
946 
947 interface MPI_Group_range_incl
948 
949 subroutine MPI_Group_range_incl(group, n, ranges, newgroup, ierror)
950   integer, intent(in) :: group
951   integer, intent(in) :: n
952   integer, dimension(3, *), intent(in) :: ranges
953   integer, intent(out) :: newgroup
954   integer, intent(out) :: ierror
955 end subroutine MPI_Group_range_incl
956 
957 end interface
958 
959 
960 interface MPI_Group_rank
961 
962 subroutine MPI_Group_rank(group, rank, ierror)
963   integer, intent(in) :: group
964   integer, intent(out) :: rank
965   integer, intent(out) :: ierror
966 end subroutine MPI_Group_rank
967 
968 end interface
969 
970 
971 interface MPI_Group_size
972 
973 subroutine MPI_Group_size(group, size, ierror)
974   integer, intent(in) :: group
975   integer, intent(out) :: size
976   integer, intent(out) :: ierror
977 end subroutine MPI_Group_size
978 
979 end interface
980 
981 
982 interface MPI_Group_translate_ranks
983 
984 subroutine MPI_Group_translate_ranks(group1, n, ranks1, group2, ranks2&
985         , ierror)
986   integer, intent(in) :: group1
987   integer, intent(in) :: n
988   integer, dimension(*), intent(in) :: ranks1
989   integer, intent(in) :: group2
990   integer, dimension(*), intent(out) :: ranks2
991   integer, intent(out) :: ierror
992 end subroutine MPI_Group_translate_ranks
993 
994 end interface
995 
996 
997 interface MPI_Group_union
998 
999 subroutine MPI_Group_union(group1, group2, newgroup, ierror)
1000   integer, intent(in) :: group1
1001   integer, intent(in) :: group2
1002   integer, intent(out) :: newgroup
1003   integer, intent(out) :: ierror
1004 end subroutine MPI_Group_union
1005 
1006 end interface
1007 
1008 
1009 interface MPI_Info_create
1010 
1011 subroutine MPI_Info_create(info, ierror)
1012   integer, intent(out) :: info
1013   integer, intent(out) :: ierror
1014 end subroutine MPI_Info_create
1015 
1016 end interface
1017 
1018 
1019 interface MPI_Info_delete
1020 
1021 subroutine MPI_Info_delete(info, key, ierror)
1022   integer, intent(in) :: info
1023   character(len=*), intent(in) :: key
1024   integer, intent(out) :: ierror
1025 end subroutine MPI_Info_delete
1026 
1027 end interface
1028 
1029 
1030 interface MPI_Info_dup
1031 
1032 subroutine MPI_Info_dup(info, newinfo, ierror)
1033   integer, intent(in) :: info
1034   integer, intent(out) :: newinfo
1035   integer, intent(out) :: ierror
1036 end subroutine MPI_Info_dup
1037 
1038 end interface
1039 
1040 
1041 interface MPI_Info_free
1042 
1043 subroutine MPI_Info_free(info, ierror)
1044   integer, intent(inout) :: info
1045   integer, intent(out) :: ierror
1046 end subroutine MPI_Info_free
1047 
1048 end interface
1049 
1050 
1051 interface MPI_Info_get
1052 
1053 subroutine MPI_Info_get(info, key, valuelen, value, flag&
1054         , ierror)
1055   integer, intent(in) :: info
1056   character(len=*), intent(in) :: key
1057   integer, intent(in) :: valuelen
1058   character(len=*), intent(out) :: value
1059   logical, intent(out) :: flag
1060   integer, intent(out) :: ierror
1061 end subroutine MPI_Info_get
1062 
1063 end interface
1064 
1065 
1066 interface MPI_Info_get_nkeys
1067 
1068 subroutine MPI_Info_get_nkeys(info, nkeys, ierror)
1069   integer, intent(in) :: info
1070   integer, intent(out) :: nkeys
1071   integer, intent(out) :: ierror
1072 end subroutine MPI_Info_get_nkeys
1073 
1074 end interface
1075 
1076 
1077 interface MPI_Info_get_nthkey
1078 
1079 subroutine MPI_Info_get_nthkey(info, n, key, ierror)
1080   integer, intent(in) :: info
1081   integer, intent(in) :: n
1082   character(len=*), intent(out) :: key
1083   integer, intent(out) :: ierror
1084 end subroutine MPI_Info_get_nthkey
1085 
1086 end interface
1087 
1088 
1089 interface MPI_Info_get_valuelen
1090 
1091 subroutine MPI_Info_get_valuelen(info, key, valuelen, flag, ierror)
1092   integer, intent(in) :: info
1093   character(len=*), intent(in) :: key
1094   integer, intent(out) :: valuelen
1095   logical, intent(out) :: flag
1096   integer, intent(out) :: ierror
1097 end subroutine MPI_Info_get_valuelen
1098 
1099 end interface
1100 
1101 
1102 interface MPI_Info_set
1103 
1104 subroutine MPI_Info_set(info, key, value, ierror)
1105   integer, intent(in) :: info
1106   character(len=*), intent(in) :: key
1107   character(len=*), intent(in) :: value
1108   integer, intent(out) :: ierror
1109 end subroutine MPI_Info_set
1110 
1111 end interface
1112 
1113 
1114 interface MPI_Init
1115 
1116 subroutine MPI_Init(ierror)
1117   integer, intent(out) :: ierror
1118 end subroutine MPI_Init
1119 
1120 end interface
1121 
1122 
1123 interface MPI_Init_thread
1124 
1125 subroutine MPI_Init_thread(required, provided, ierror)
1126   integer, intent(in) :: required
1127   integer, intent(out) :: provided
1128   integer, intent(out) :: ierror
1129 end subroutine MPI_Init_thread
1130 
1131 end interface
1132 
1133 
1134 interface MPI_Initialized
1135 
1136 subroutine MPI_Initialized(flag, ierror)
1137   logical, intent(out) :: flag
1138   integer, intent(out) :: ierror
1139 end subroutine MPI_Initialized
1140 
1141 end interface
1142 
1143 
1144 interface MPI_Intercomm_create
1145 
1146 subroutine MPI_Intercomm_create(local_comm, local_leader, bridge_comm, remote_leader, tag, &
1147         newintercomm, ierror)
1148   integer, intent(in) :: local_comm
1149   integer, intent(in) :: local_leader
1150   integer, intent(in) :: bridge_comm
1151   integer, intent(in) :: remote_leader
1152   integer, intent(in) :: tag
1153   integer, intent(out) :: newintercomm
1154   integer, intent(out) :: ierror
1155 end subroutine MPI_Intercomm_create
1156 
1157 end interface
1158 
1159 
1160 interface MPI_Intercomm_merge
1161 
1162 subroutine MPI_Intercomm_merge(intercomm, high, newintercomm, ierror)
1163   integer, intent(in) :: intercomm
1164   logical, intent(in) :: high
1165   integer, intent(out) :: newintercomm
1166   integer, intent(out) :: ierror
1167 end subroutine MPI_Intercomm_merge
1168 
1169 end interface
1170 
1171 
1172 interface MPI_Iprobe
1173 
1174 subroutine MPI_Iprobe(source, tag, comm, flag, status&
1175         , ierror)
1176   include 'mpif-config.h'
1177   integer, intent(in) :: source
1178   integer, intent(in) :: tag
1179   integer, intent(in) :: comm
1180   logical, intent(out) :: flag
1181   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1182   integer, intent(out) :: ierror
1183 end subroutine MPI_Iprobe
1184 
1185 end interface
1186 
1187 
1188 interface MPI_Is_thread_main
1189 
1190 subroutine MPI_Is_thread_main(flag, ierror)
1191   logical, intent(out) :: flag
1192   integer, intent(out) :: ierror
1193 end subroutine MPI_Is_thread_main
1194 
1195 end interface
1196 
1197 
1198 interface MPI_Keyval_create
1199 
1200 subroutine MPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
1201   external :: copy_fn
1202   external :: delete_fn
1203   integer, intent(out) :: keyval
1204   integer, intent(in) :: extra_state
1205   integer, intent(out) :: ierror
1206 end subroutine MPI_Keyval_create
1207 
1208 end interface
1209 
1210 
1211 interface MPI_Keyval_free
1212 
1213 subroutine MPI_Keyval_free(keyval, ierror)
1214   integer, intent(inout) :: keyval
1215   integer, intent(out) :: ierror
1216 end subroutine MPI_Keyval_free
1217 
1218 end interface
1219 
1220 
1221 interface MPI_Op_commutative
1222 
1223 subroutine MPI_Op_commutative(op, commute, ierror)
1224   integer, intent(in) :: op
1225   logical, intent(out) :: commute
1226   integer, intent(out) :: ierror
1227 end subroutine MPI_Op_commutative
1228 
1229 end interface
1230 
1231 
1232 interface MPI_Op_create
1233 
1234 subroutine MPI_Op_create(function, commute, op, ierror)
1235   external :: function
1236   logical, intent(in) :: commute
1237   integer, intent(out) :: op
1238   integer, intent(out) :: ierror
1239 end subroutine MPI_Op_create
1240 
1241 end interface
1242 
1243 
1244 interface MPI_Op_free
1245 
1246 subroutine MPI_Op_free(op, ierror)
1247   integer, intent(inout) :: op
1248   integer, intent(out) :: ierror
1249 end subroutine MPI_Op_free
1250 
1251 end interface
1252 
1253 
1254 interface MPI_Pack_external_size
1255 
1256 subroutine MPI_Pack_external_size(datarep, incount, datatype, size, ierror)
1257   include 'mpif-config.h'
1258   character(len=*), intent(in) :: datarep
1259   integer, intent(in) :: incount
1260   integer, intent(in) :: datatype
1261   integer(kind=MPI_ADDRESS_KIND), intent(out) :: size
1262   integer, intent(out) :: ierror
1263 end subroutine MPI_Pack_external_size
1264 
1265 end interface
1266 
1267 
1268 interface MPI_Pack_size
1269 
1270 subroutine MPI_Pack_size(incount, datatype, comm, size, ierror)
1271   integer, intent(in) :: incount
1272   integer, intent(in) :: datatype
1273   integer, intent(in) :: comm
1274   integer, intent(out) :: size
1275   integer, intent(out) :: ierror
1276 end subroutine MPI_Pack_size
1277 
1278 end interface
1279 
1280 
1281 interface MPI_Pcontrol
1282 
1283 subroutine MPI_Pcontrol(level)
1284   integer, intent(in) :: level
1285 
1286 end subroutine MPI_Pcontrol
1287 
1288 end interface
1289 
1290 
1291 interface MPI_Probe
1292 
1293 subroutine MPI_Probe(source, tag, comm, status, ierror)
1294   include 'mpif-config.h'
1295   integer, intent(in) :: source
1296   integer, intent(in) :: tag
1297   integer, intent(in) :: comm
1298   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1299   integer, intent(out) :: ierror
1300 end subroutine MPI_Probe
1301 
1302 end interface
1303 
1304 
1305 interface MPI_Query_thread
1306 
1307 subroutine MPI_Query_thread(provided, ierror)
1308   integer, intent(out) :: provided
1309   integer, intent(out) :: ierror
1310 end subroutine MPI_Query_thread
1311 
1312 end interface
1313 
1314 
1315 interface MPI_Register_datarep
1316 
1317 subroutine MPI_Register_datarep(datarep, read_conversion_fn, write_conversion_fn, dtype_file_extent_fn, extra_state&
1318         , ierror)
1319   include 'mpif-config.h'
1320   character(len=*), intent(in) :: datarep
1321   external :: read_conversion_fn
1322   external :: write_conversion_fn
1323   external :: dtype_file_extent_fn
1324   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
1325   integer, intent(out) :: ierror
1326 end subroutine MPI_Register_datarep
1327 
1328 end interface
1329 
1330 
1331 interface MPI_Request_free
1332 
1333 subroutine MPI_Request_free(request, ierror)
1334   integer, intent(inout) :: request
1335   integer, intent(out) :: ierror
1336 end subroutine MPI_Request_free
1337 
1338 end interface
1339 
1340 
1341 interface MPI_Request_get_status
1342 
1343 subroutine MPI_Request_get_status(request, flag, status, ierror)
1344   include 'mpif-config.h'
1345   integer, intent(in) :: request
1346   logical, intent(out) :: flag
1347   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1348   integer, intent(out) :: ierror
1349 end subroutine MPI_Request_get_status
1350 
1351 end interface
1352 
1353 
1354 interface MPI_Start
1355 
1356 subroutine MPI_Start(request, ierror)
1357   integer, intent(inout) :: request
1358   integer, intent(out) :: ierror
1359 end subroutine MPI_Start
1360 
1361 end interface
1362 
1363 
1364 interface MPI_Startall
1365 
1366 subroutine MPI_Startall(count, array_of_requests, ierror)
1367   integer, intent(in) :: count
1368   integer, dimension(*), intent(inout) :: array_of_requests
1369   integer, intent(out) :: ierror
1370 end subroutine MPI_Startall
1371 
1372 end interface
1373 
1374 
1375 interface MPI_Status_set_cancelled
1376 
1377 subroutine MPI_Status_set_cancelled(status, flag, ierror)
1378   include 'mpif-config.h'
1379   integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status
1380   logical, intent(in) :: flag
1381   integer, intent(out) :: ierror
1382 end subroutine MPI_Status_set_cancelled
1383 
1384 end interface
1385 
1386 
1387 interface MPI_Status_set_elements
1388 
1389 subroutine MPI_Status_set_elements(status, datatype, count, ierror)
1390   include 'mpif-config.h'
1391   integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status
1392   integer, intent(in) :: datatype
1393   integer, intent(in) :: count
1394   integer, intent(out) :: ierror
1395 end subroutine MPI_Status_set_elements
1396 
1397 end interface
1398 
1399 
1400 interface MPI_Test
1401 
1402 subroutine MPI_Test(request, flag, status, ierror)
1403   include 'mpif-config.h'
1404   integer, intent(inout) :: request
1405   logical, intent(out) :: flag
1406   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1407   integer, intent(out) :: ierror
1408 end subroutine MPI_Test
1409 
1410 end interface
1411 
1412 
1413 interface MPI_Test_cancelled
1414 
1415 subroutine MPI_Test_cancelled(status, flag, ierror)
1416   include 'mpif-config.h'
1417   integer, dimension(MPI_STATUS_SIZE), intent(in) :: status
1418   logical, intent(out) :: flag
1419   integer, intent(out) :: ierror
1420 end subroutine MPI_Test_cancelled
1421 
1422 end interface
1423 
1424 
1425 interface MPI_Testall
1426 
1427 subroutine MPI_Testall(count, array_of_requests, flag, array_of_statuses, ierror)
1428   include 'mpif-config.h'
1429   integer, intent(in) :: count
1430   integer, dimension(count), intent(inout) :: array_of_requests
1431   logical, intent(out) :: flag
1432   integer, dimension(MPI_STATUS_SIZE, count), intent(out) :: array_of_statuses
1433   integer, intent(out) :: ierror
1434 end subroutine MPI_Testall
1435 
1436 end interface
1437 
1438 
1439 interface MPI_Testany
1440 
1441 subroutine MPI_Testany(count, array_of_requests, index, flag, status&
1442         , ierror)
1443   include 'mpif-config.h'
1444   integer, intent(in) :: count
1445   integer, dimension(count), intent(inout) :: array_of_requests
1446   integer, intent(out) :: index
1447   logical, intent(out) :: flag
1448   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1449   integer, intent(out) :: ierror
1450 end subroutine MPI_Testany
1451 
1452 end interface
1453 
1454 
1455 interface MPI_Testsome
1456 
1457 subroutine MPI_Testsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
1458         , ierror)
1459   include 'mpif-config.h'
1460   integer, intent(in) :: incount
1461   integer, dimension(incount), intent(inout) :: array_of_requests
1462   integer, intent(out) :: outcount
1463   integer, dimension(*), intent(out) :: array_of_indices
1464   integer, dimension(MPI_STATUS_SIZE, *), intent(out) :: array_of_statuses
1465   integer, intent(out) :: ierror
1466 end subroutine MPI_Testsome
1467 
1468 end interface
1469 
1470 
1471 interface MPI_Topo_test
1472 
1473 subroutine MPI_Topo_test(comm, status, ierror)
1474   integer, intent(in) :: comm
1475   integer, intent(out) :: status
1476   integer, intent(out) :: ierror
1477 end subroutine MPI_Topo_test
1478 
1479 end interface
1480 
1481 
1482 interface MPI_Type_commit
1483 
1484 subroutine MPI_Type_commit(datatype, ierror)
1485   integer, intent(inout) :: datatype
1486   integer, intent(out) :: ierror
1487 end subroutine MPI_Type_commit
1488 
1489 end interface
1490 
1491 
1492 interface MPI_Type_contiguous
1493 
1494 subroutine MPI_Type_contiguous(count, oldtype, newtype, ierror)
1495   integer, intent(in) :: count
1496   integer, intent(in) :: oldtype
1497   integer, intent(out) :: newtype
1498   integer, intent(out) :: ierror
1499 end subroutine MPI_Type_contiguous
1500 
1501 end interface
1502 
1503 
1504 interface MPI_Type_create_darray
1505 
1506 subroutine MPI_Type_create_darray(size, rank, ndims, gsize_array, distrib_array, &
1507         darg_array, psize_array, order, oldtype, newtype, ierror)
1508   integer, intent(in) :: size
1509   integer, intent(in) :: rank
1510   integer, intent(in) :: ndims
1511   integer, dimension(*), intent(in) :: gsize_array
1512   integer, dimension(*), intent(in) :: distrib_array
1513   integer, dimension(*), intent(in) :: darg_array
1514   integer, dimension(*), intent(in) :: psize_array
1515   integer, intent(in) :: order
1516   integer, intent(in) :: oldtype
1517   integer, intent(out) :: newtype
1518   integer, intent(out) :: ierror
1519 end subroutine MPI_Type_create_darray
1520 
1521 end interface
1522 
1523 
1524 interface MPI_Type_create_f90_complex
1525 
1526 subroutine MPI_Type_create_f90_complex(p, r, newtype, ierror)
1527   integer, intent(in) :: p
1528   integer, intent(in) :: r
1529   integer, intent(out) :: newtype
1530   integer, intent(out) :: ierror
1531 end subroutine MPI_Type_create_f90_complex
1532 
1533 end interface
1534 
1535 
1536 interface MPI_Type_create_f90_integer
1537 
1538 subroutine MPI_Type_create_f90_integer(r, newtype, ierror)
1539   integer, intent(in) :: r
1540   integer, intent(out) :: newtype
1541   integer, intent(out) :: ierror
1542 end subroutine MPI_Type_create_f90_integer
1543 
1544 end interface
1545 
1546 
1547 interface MPI_Type_create_f90_real
1548 
1549 subroutine MPI_Type_create_f90_real(p, r, newtype, ierror)
1550   integer, intent(in) :: p
1551   integer, intent(in) :: r
1552   integer, intent(out) :: newtype
1553   integer, intent(out) :: ierror
1554 end subroutine MPI_Type_create_f90_real
1555 
1556 end interface
1557 
1558 
1559 interface MPI_Type_create_hindexed
1560 
1561 subroutine MPI_Type_create_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
1562         , ierror)
1563   include 'mpif-config.h'
1564   integer, intent(in) :: count
1565   integer, dimension(*), intent(in) :: array_of_blocklengths
1566   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
1567   integer, intent(in) :: oldtype
1568   integer, intent(out) :: newtype
1569   integer, intent(out) :: ierror
1570 end subroutine MPI_Type_create_hindexed
1571 
1572 end interface
1573 
1574 
1575 interface MPI_Type_create_hvector
1576 
1577 subroutine MPI_Type_create_hvector(count, blocklength, stride, oldtype, newtype&
1578         , ierror)
1579   include 'mpif-config.h'
1580   integer, intent(in) :: count
1581   integer, intent(in) :: blocklength
1582   integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride
1583   integer, intent(in) :: oldtype
1584   integer, intent(out) :: newtype
1585   integer, intent(out) :: ierror
1586 end subroutine MPI_Type_create_hvector
1587 
1588 end interface
1589 
1590 
1591 interface MPI_Type_create_indexed_block
1592 
1593 subroutine MPI_Type_create_indexed_block(count, blocklength, array_of_displacements, oldtype, newtype&
1594         , ierror)
1595   integer, intent(in) :: count
1596   integer, intent(in) :: blocklength
1597   integer, dimension(*), intent(in) :: array_of_displacements
1598   integer, intent(in) :: oldtype
1599   integer, intent(out) :: newtype
1600   integer, intent(out) :: ierror
1601 end subroutine MPI_Type_create_indexed_block
1602 
1603 end interface
1604 
1605 
1606 interface MPI_Type_create_keyval
1607 
1608 subroutine MPI_Type_create_keyval(type_copy_attr_fn, type_delete_attr_fn, type_keyval, extra_state, ierror)
1609   include 'mpif-config.h'
1610   external :: type_copy_attr_fn
1611   external :: type_delete_attr_fn
1612   integer, intent(out) :: type_keyval
1613   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
1614   integer, intent(out) :: ierror
1615 end subroutine MPI_Type_create_keyval
1616 
1617 end interface
1618 
1619 
1620 interface MPI_Type_create_resized
1621 
1622 subroutine MPI_Type_create_resized(oldtype, lb, extent, newtype, ierror)
1623   include 'mpif-config.h'
1624   integer, intent(in) :: oldtype
1625   integer(kind=MPI_ADDRESS_KIND), intent(in) :: lb
1626   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extent
1627   integer, intent(out) :: newtype
1628   integer, intent(out) :: ierror
1629 end subroutine MPI_Type_create_resized
1630 
1631 end interface
1632 
1633 
1634 interface MPI_Type_create_struct
1635 
1636 subroutine MPI_Type_create_struct(count, array_of_block_lengths, array_of_displacements, array_of_types, newtype&
1637         , ierror)
1638   include 'mpif-config.h'
1639   integer, intent(in) :: count
1640   integer, dimension(*), intent(in) :: array_of_block_lengths
1641   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
1642   integer, dimension(*), intent(in) :: array_of_types
1643   integer, intent(out) :: newtype
1644   integer, intent(out) :: ierror
1645 end subroutine MPI_Type_create_struct
1646 
1647 end interface
1648 
1649 
1650 interface MPI_Type_create_subarray
1651 
1652 subroutine MPI_Type_create_subarray(ndims, size_array, subsize_array, start_array, order, &
1653         oldtype, newtype, ierror)
1654   integer, intent(in) :: ndims
1655   integer, dimension(*), intent(in) :: size_array
1656   integer, dimension(*), intent(in) :: subsize_array
1657   integer, dimension(*), intent(in) :: start_array
1658   integer, intent(in) :: order
1659   integer, intent(in) :: oldtype
1660   integer, intent(out) :: newtype
1661   integer, intent(out) :: ierror
1662 end subroutine MPI_Type_create_subarray
1663 
1664 end interface
1665 
1666 
1667 interface MPI_Type_delete_attr
1668 
1669 subroutine MPI_Type_delete_attr(datatype, type_keyval, ierror)
1670   integer, intent(in) :: datatype
1671   integer, intent(in) :: type_keyval
1672   integer, intent(out) :: ierror
1673 end subroutine MPI_Type_delete_attr
1674 
1675 end interface
1676 
1677 
1678 interface MPI_Type_dup
1679 
1680 subroutine MPI_Type_dup(oldtype, newtype, ierror)
1681   integer, intent(in) :: oldtype
1682   integer, intent(out) :: newtype
1683   integer, intent(out) :: ierror
1684 end subroutine MPI_Type_dup
1685 
1686 end interface
1687 
1688 
1689 interface MPI_Type_extent
1690 
1691 subroutine MPI_Type_extent(datatype, extent, ierror)
1692   integer, intent(in) :: datatype
1693   integer, intent(out) :: extent
1694   integer, intent(out) :: ierror
1695 end subroutine MPI_Type_extent
1696 
1697 end interface
1698 
1699 
1700 interface MPI_Type_free
1701 
1702 subroutine MPI_Type_free(datatype, ierror)
1703   integer, intent(inout) :: datatype
1704   integer, intent(out) :: ierror
1705 end subroutine MPI_Type_free
1706 
1707 end interface
1708 
1709 
1710 interface MPI_Type_free_keyval
1711 
1712 subroutine MPI_Type_free_keyval(type_keyval, ierror)
1713   integer, intent(inout) :: type_keyval
1714   integer, intent(out) :: ierror
1715 end subroutine MPI_Type_free_keyval
1716 
1717 end interface
1718 
1719 
1720 interface MPI_Type_get_attr
1721 
1722 subroutine MPI_Type_get_attr(datatype, type_keyval, attribute_val, flag, ierror)
1723   include 'mpif-config.h'
1724   integer, intent(in) :: datatype
1725   integer, intent(in) :: type_keyval
1726   integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val
1727   logical, intent(out) :: flag
1728   integer, intent(out) :: ierror
1729 end subroutine MPI_Type_get_attr
1730 
1731 end interface
1732 
1733 
1734 interface MPI_Type_get_contents
1735 
1736 subroutine MPI_Type_get_contents(datatype, max_integers, max_addresses, max_datatypes, array_of_integers, &
1737         array_of_addresses, array_of_datatypes, ierror)
1738   include 'mpif-config.h'
1739   integer, intent(in) :: datatype
1740   integer, intent(in) :: max_integers
1741   integer, intent(in) :: max_addresses
1742   integer, intent(in) :: max_datatypes
1743   integer, dimension(*), intent(out) :: array_of_integers
1744   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(out) :: array_of_addresses
1745   integer, dimension(*), intent(out) :: array_of_datatypes
1746   integer, intent(out) :: ierror
1747 end subroutine MPI_Type_get_contents
1748 
1749 end interface
1750 
1751 
1752 interface MPI_Type_get_envelope
1753 
1754 subroutine MPI_Type_get_envelope(datatype, num_integers, num_addresses, num_datatypes, combiner&
1755         , ierror)
1756   integer, intent(in) :: datatype
1757   integer, intent(out) :: num_integers
1758   integer, intent(out) :: num_addresses
1759   integer, intent(out) :: num_datatypes
1760   integer, intent(out) :: combiner
1761   integer, intent(out) :: ierror
1762 end subroutine MPI_Type_get_envelope
1763 
1764 end interface
1765 
1766 
1767 interface MPI_Type_get_extent
1768 
1769 subroutine MPI_Type_get_extent(datatype, lb, extent, ierror)
1770   include 'mpif-config.h'
1771   integer, intent(in) :: datatype
1772   integer(kind=MPI_ADDRESS_KIND), intent(out) :: lb
1773   integer(kind=MPI_ADDRESS_KIND), intent(out) :: extent
1774   integer, intent(out) :: ierror
1775 end subroutine MPI_Type_get_extent
1776 
1777 end interface
1778 
1779 
1780 interface MPI_Type_get_extent_x
1781 
1782 subroutine MPI_Type_get_extent_x(datatype, lb, extent, ierror)
1783   include 'mpif-config.h'
1784   integer, intent(in) :: datatype
1785   integer(kind=MPI_COUNT_KIND), intent(out) :: lb
1786   integer(kind=MPI_COUNT_KIND), intent(out) :: extent
1787   integer, intent(out) :: ierror
1788 end subroutine MPI_Type_get_extent_x
1789 
1790 end interface
1791 
1792 
1793 interface MPI_Type_get_name
1794 
1795 subroutine MPI_Type_get_name(datatype, type_name, resultlen, ierror)
1796   integer, intent(in) :: datatype
1797   character(len=*), intent(out) :: type_name
1798   integer, intent(out) :: resultlen
1799   integer, intent(out) :: ierror
1800 end subroutine MPI_Type_get_name
1801 
1802 end interface
1803 
1804 
1805 interface MPI_Type_get_true_extent
1806 
1807 subroutine MPI_Type_get_true_extent(datatype, true_lb, true_extent, ierror)
1808   include 'mpif-config.h'
1809   integer, intent(in) :: datatype
1810   integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb
1811   integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent
1812   integer, intent(out) :: ierror
1813 end subroutine MPI_Type_get_true_extent
1814 
1815 end interface
1816 
1817 
1818 interface MPI_Type_get_true_extent_x
1819 
1820 subroutine MPI_Type_get_true_extent_x(datatype, true_lb, true_extent, ierror)
1821   include 'mpif-config.h'
1822   integer, intent(in) :: datatype
1823   integer(kind=MPI_COUNT_KIND), intent(out) :: true_lb
1824   integer(kind=MPI_COUNT_KIND), intent(out) :: true_extent
1825   integer, intent(out) :: ierror
1826 end subroutine MPI_Type_get_true_extent_x
1827 
1828 end interface
1829 
1830 
1831 interface MPI_Type_hindexed
1832 
1833 subroutine MPI_Type_hindexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
1834         , ierror)
1835   integer, intent(in) :: count
1836   integer, dimension(*), intent(in) :: array_of_blocklengths
1837   integer, dimension(*), intent(in) :: array_of_displacements
1838   integer, intent(in) :: oldtype
1839   integer, intent(out) :: newtype
1840   integer, intent(out) :: ierror
1841 end subroutine MPI_Type_hindexed
1842 
1843 end interface
1844 
1845 
1846 interface MPI_Type_hvector
1847 
1848 subroutine MPI_Type_hvector(count, blocklength, stride, oldtype, newtype&
1849         , ierror)
1850   integer, intent(in) :: count
1851   integer, intent(in) :: blocklength
1852   integer, intent(in) :: stride
1853   integer, intent(in) :: oldtype
1854   integer, intent(out) :: newtype
1855   integer, intent(out) :: ierror
1856 end subroutine MPI_Type_hvector
1857 
1858 end interface
1859 
1860 
1861 interface MPI_Type_indexed
1862 
1863 subroutine MPI_Type_indexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
1864         , ierror)
1865   integer, intent(in) :: count
1866   integer, dimension(*), intent(in) :: array_of_blocklengths
1867   integer, dimension(*), intent(in) :: array_of_displacements
1868   integer, intent(in) :: oldtype
1869   integer, intent(out) :: newtype
1870   integer, intent(out) :: ierror
1871 end subroutine MPI_Type_indexed
1872 
1873 end interface
1874 
1875 
1876 interface MPI_Type_lb
1877 
1878 subroutine MPI_Type_lb(datatype, lb, ierror)
1879   integer, intent(in) :: datatype
1880   integer, intent(out) :: lb
1881   integer, intent(out) :: ierror
1882 end subroutine MPI_Type_lb
1883 
1884 end interface
1885 
1886 
1887 interface MPI_Type_match_size
1888 
1889 subroutine MPI_Type_match_size(typeclass, size, datatype, ierror)
1890   integer, intent(in) :: typeclass
1891   integer, intent(in) :: size
1892   integer, intent(out) :: datatype
1893   integer, intent(out) :: ierror
1894 end subroutine MPI_Type_match_size
1895 
1896 end interface
1897 
1898 
1899 interface MPI_Type_set_attr
1900 
1901 subroutine MPI_Type_set_attr(datatype, type_keyval, attr_val, ierror)
1902   include 'mpif-config.h'
1903   integer, intent(in) :: datatype
1904   integer, intent(in) :: type_keyval
1905   integer(kind=MPI_ADDRESS_KIND), intent(in) :: attr_val
1906   integer, intent(out) :: ierror
1907 end subroutine MPI_Type_set_attr
1908 
1909 end interface
1910 
1911 
1912 interface MPI_Type_set_name
1913 
1914 subroutine MPI_Type_set_name(datatype, type_name, ierror)
1915   integer, intent(in) :: datatype
1916   character(len=*), intent(in) :: type_name
1917   integer, intent(out) :: ierror
1918 end subroutine MPI_Type_set_name
1919 
1920 end interface
1921 
1922 
1923 interface MPI_Type_size
1924 
1925 subroutine MPI_Type_size(datatype, size, ierror)
1926   integer, intent(in) :: datatype
1927   integer, intent(out) :: size
1928   integer, intent(out) :: ierror
1929 end subroutine MPI_Type_size
1930 
1931 end interface
1932 
1933 
1934 interface MPI_Type_size_x
1935 
1936 subroutine MPI_Type_size_x(datatype, size, ierror)
1937   include 'mpif-config.h'
1938   integer, intent(in) :: datatype
1939   integer(kind=MPI_COUNT_KIND), intent(out) :: size
1940   integer, intent(out) :: ierror
1941 end subroutine MPI_Type_size_x
1942 
1943 end interface
1944 
1945 
1946 interface MPI_Type_struct
1947 
1948 subroutine MPI_Type_struct(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
1949         , ierror)
1950   integer, intent(in) :: count
1951   integer, dimension(*), intent(in) :: array_of_blocklengths
1952   integer, dimension(*), intent(in) :: array_of_displacements
1953   integer, dimension(*), intent(in) :: array_of_types
1954   integer, intent(out) :: newtype
1955   integer, intent(out) :: ierror
1956 end subroutine MPI_Type_struct
1957 
1958 end interface
1959 
1960 
1961 interface MPI_Type_ub
1962 
1963 subroutine MPI_Type_ub(datatype, ub, ierror)
1964   integer, intent(in) :: datatype
1965   integer, intent(out) :: ub
1966   integer, intent(out) :: ierror
1967 end subroutine MPI_Type_ub
1968 
1969 end interface
1970 
1971 
1972 interface MPI_Type_vector
1973 
1974 subroutine MPI_Type_vector(count, blocklength, stride, oldtype, newtype&
1975         , ierror)
1976   integer, intent(in) :: count
1977   integer, intent(in) :: blocklength
1978   integer, intent(in) :: stride
1979   integer, intent(in) :: oldtype
1980   integer, intent(out) :: newtype
1981   integer, intent(out) :: ierror
1982 end subroutine MPI_Type_vector
1983 
1984 end interface
1985 
1986 
1987 interface MPI_Wait
1988 
1989 subroutine MPI_Wait(request, status, ierror)
1990   include 'mpif-config.h'
1991   integer, intent(inout) :: request
1992   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
1993   integer, intent(out) :: ierror
1994 end subroutine MPI_Wait
1995 
1996 end interface
1997 
1998 
1999 interface MPI_Waitall
2000 
2001 subroutine MPI_Waitall(count, array_of_requests, array_of_statuses, ierror)
2002   include 'mpif-config.h'
2003   integer, intent(in) :: count
2004   integer, dimension(count), intent(inout) :: array_of_requests
2005   integer, dimension(MPI_STATUS_SIZE, *), intent(out) :: array_of_statuses
2006   integer, intent(out) :: ierror
2007 end subroutine MPI_Waitall
2008 
2009 end interface
2010 
2011 
2012 interface MPI_Waitany
2013 
2014 subroutine MPI_Waitany(count, array_of_requests, index, status, ierror)
2015   include 'mpif-config.h'
2016   integer, intent(in) :: count
2017   integer, dimension(count), intent(inout) :: array_of_requests
2018   integer, intent(out) :: index
2019   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
2020   integer, intent(out) :: ierror
2021 end subroutine MPI_Waitany
2022 
2023 end interface
2024 
2025 
2026 interface MPI_Waitsome
2027 
2028 subroutine MPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
2029         , ierror)
2030   include 'mpif-config.h'
2031   integer, intent(in) :: incount
2032   integer, dimension(incount), intent(inout) :: array_of_requests
2033   integer, intent(out) :: outcount
2034   integer, dimension(*), intent(out) :: array_of_indices
2035   integer, dimension(MPI_STATUS_SIZE, *), intent(out) :: array_of_statuses
2036   integer, intent(out) :: ierror
2037 end subroutine MPI_Waitsome
2038 
2039 end interface
2040 
2041 
2042 interface MPI_Win_call_errhandler
2043 
2044 subroutine MPI_Win_call_errhandler(win, errorcode, ierror)
2045   integer, intent(in) :: win
2046   integer, intent(in) :: errorcode
2047   integer, intent(out) :: ierror
2048 end subroutine MPI_Win_call_errhandler
2049 
2050 end interface
2051 
2052 
2053 interface MPI_Win_complete
2054 
2055 subroutine MPI_Win_complete(win, ierror)
2056   integer, intent(in) :: win
2057   integer, intent(out) :: ierror
2058 end subroutine MPI_Win_complete
2059 
2060 end interface
2061 
2062 
2063 interface MPI_Win_create_errhandler
2064 
2065 subroutine MPI_Win_create_errhandler(function, errhandler, ierror)
2066   external :: function
2067   integer, intent(out) :: errhandler
2068   integer, intent(out) :: ierror
2069 end subroutine MPI_Win_create_errhandler
2070 
2071 end interface
2072 
2073 
2074 interface MPI_Win_create_keyval
2075 
2076 subroutine MPI_Win_create_keyval(win_copy_attr_fn, win_delete_attr_fn, win_keyval, extra_state, ierror)
2077   include 'mpif-config.h'
2078   external :: win_copy_attr_fn
2079   external :: win_delete_attr_fn
2080   integer, intent(out) :: win_keyval
2081   integer(kind=MPI_ADDRESS_KIND), intent(in) :: extra_state
2082   integer, intent(out) :: ierror
2083 end subroutine MPI_Win_create_keyval
2084 
2085 end interface
2086 
2087 
2088 interface MPI_Win_delete_attr
2089 
2090 subroutine MPI_Win_delete_attr(win, win_keyval, ierror)
2091   integer, intent(in) :: win
2092   integer, intent(in) :: win_keyval
2093   integer, intent(out) :: ierror
2094 end subroutine MPI_Win_delete_attr
2095 
2096 end interface
2097 
2098 
2099 interface MPI_Win_fence
2100 
2101 subroutine MPI_Win_fence(assert, win, ierror)
2102   integer, intent(in) :: assert
2103   integer, intent(in) :: win
2104   integer, intent(out) :: ierror
2105 end subroutine MPI_Win_fence
2106 
2107 end interface
2108 
2109 
2110 interface MPI_Win_free
2111 
2112 subroutine MPI_Win_free(win, ierror)
2113   integer, intent(inout) :: win
2114   integer, intent(out) :: ierror
2115 end subroutine MPI_Win_free
2116 
2117 end interface
2118 
2119 
2120 interface MPI_Win_free_keyval
2121 
2122 subroutine MPI_Win_free_keyval(win_keyval, ierror)
2123   integer, intent(inout) :: win_keyval
2124   integer, intent(out) :: ierror
2125 end subroutine MPI_Win_free_keyval
2126 
2127 end interface
2128 
2129 
2130 interface MPI_Win_get_attr
2131 
2132 subroutine MPI_Win_get_attr(win, win_keyval, attribute_val, flag, ierror)
2133   include 'mpif-config.h'
2134   integer, intent(in) :: win
2135   integer, intent(in) :: win_keyval
2136   integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val
2137   logical, intent(out) :: flag
2138   integer, intent(out) :: ierror
2139 end subroutine MPI_Win_get_attr
2140 
2141 end interface
2142 
2143 
2144 interface MPI_Win_get_errhandler
2145 
2146 subroutine MPI_Win_get_errhandler(win, errhandler, ierror)
2147   integer, intent(in) :: win
2148   integer, intent(out) :: errhandler
2149   integer, intent(out) :: ierror
2150 end subroutine MPI_Win_get_errhandler
2151 
2152 end interface
2153 
2154 
2155 interface MPI_Win_get_group
2156 
2157 subroutine MPI_Win_get_group(win, group, ierror)
2158   integer, intent(in) :: win
2159   integer, intent(out) :: group
2160   integer, intent(out) :: ierror
2161 end subroutine MPI_Win_get_group
2162 
2163 end interface
2164 
2165 
2166 interface MPI_Win_get_name
2167 
2168 subroutine MPI_Win_get_name(win, win_name, resultlen, ierror)
2169   integer, intent(in) :: win
2170   character(len=*), intent(out) :: win_name
2171   integer, intent(out) :: resultlen
2172   integer, intent(out) :: ierror
2173 end subroutine MPI_Win_get_name
2174 
2175 end interface
2176 
2177 
2178 interface MPI_Win_lock
2179 
2180 subroutine MPI_Win_lock(lock_type, rank, assert, win, ierror)
2181   integer, intent(in) :: lock_type
2182   integer, intent(in) :: rank
2183   integer, intent(in) :: assert
2184   integer, intent(in) :: win
2185   integer, intent(out) :: ierror
2186 end subroutine MPI_Win_lock
2187 
2188 end interface
2189 
2190 
2191 interface MPI_Win_post
2192 
2193 subroutine MPI_Win_post(group, assert, win, ierror)
2194   integer, intent(in) :: group
2195   integer, intent(in) :: assert
2196   integer, intent(in) :: win
2197   integer, intent(out) :: ierror
2198 end subroutine MPI_Win_post
2199 
2200 end interface
2201 
2202 
2203 interface MPI_Win_set_attr
2204 
2205 subroutine MPI_Win_set_attr(win, win_keyval, attribute_val, ierror)
2206   include 'mpif-config.h'
2207   integer, intent(in) :: win
2208   integer, intent(in) :: win_keyval
2209   integer(kind=MPI_ADDRESS_KIND), intent(in) :: attribute_val
2210   integer, intent(out) :: ierror
2211 end subroutine MPI_Win_set_attr
2212 
2213 end interface
2214 
2215 
2216 interface MPI_Win_set_errhandler
2217 
2218 subroutine MPI_Win_set_errhandler(win, errhandler, ierror)
2219   integer, intent(in) :: win
2220   integer, intent(in) :: errhandler
2221   integer, intent(out) :: ierror
2222 end subroutine MPI_Win_set_errhandler
2223 
2224 end interface
2225 
2226 
2227 interface MPI_Win_set_name
2228 
2229 subroutine MPI_Win_set_name(win, win_name, ierror)
2230   integer, intent(in) :: win
2231   character(len=*), intent(in) :: win_name
2232   integer, intent(out) :: ierror
2233 end subroutine MPI_Win_set_name
2234 
2235 end interface
2236 
2237 
2238 interface MPI_Win_start
2239 
2240 subroutine MPI_Win_start(group, assert, win, ierror)
2241   integer, intent(in) :: group
2242   integer, intent(in) :: assert
2243   integer, intent(in) :: win
2244   integer, intent(out) :: ierror
2245 end subroutine MPI_Win_start
2246 
2247 end interface
2248 
2249 
2250 interface MPI_Win_test
2251 
2252 subroutine MPI_Win_test(win, flag, ierror)
2253   integer, intent(in) :: win
2254   logical, intent(out) :: flag
2255   integer, intent(out) :: ierror
2256 end subroutine MPI_Win_test
2257 
2258 end interface
2259 
2260 
2261 interface MPI_Win_unlock
2262 
2263 subroutine MPI_Win_unlock(rank, win, ierror)
2264   integer, intent(in) :: rank
2265   integer, intent(in) :: win
2266   integer, intent(out) :: ierror
2267 end subroutine MPI_Win_unlock
2268 
2269 end interface
2270 
2271 
2272 interface MPI_Win_wait
2273 
2274 subroutine MPI_Win_wait(win, ierror)
2275   integer, intent(in) :: win
2276   integer, intent(out) :: ierror
2277 end subroutine MPI_Win_wait
2278 
2279 end interface
2280 
2281 
2282 interface MPI_Close_port
2283 
2284 subroutine MPI_Close_port(port_name, ierror)
2285   character(len=*), intent(in) :: port_name
2286   integer, intent(out) :: ierror
2287 end subroutine MPI_Close_port
2288 
2289 end interface
2290 
2291 
2292 interface MPI_Lookup_name
2293 
2294 subroutine MPI_Lookup_name(service_name, info, port_name, ierror)
2295   character(len=*), intent(in) :: service_name
2296   integer, intent(in) :: info
2297   character(len=*), intent(out) :: port_name
2298   integer, intent(out) :: ierror
2299 end subroutine MPI_Lookup_name
2300 
2301 end interface
2302 
2303 
2304 interface MPI_Open_port
2305 
2306 subroutine MPI_Open_port(info, port_name, ierror)
2307   integer, intent(in) :: info
2308   character(len=*), intent(out) :: port_name
2309   integer, intent(out) :: ierror
2310 end subroutine MPI_Open_port
2311 
2312 end interface
2313 
2314 
2315 interface MPI_Publish_name
2316 
2317 subroutine MPI_Publish_name(service_name, info, port_name, ierror)
2318   character(len=*), intent(in) :: service_name
2319   integer, intent(in) :: info
2320   character(len=*), intent(in) :: port_name
2321   integer, intent(out) :: ierror
2322 end subroutine MPI_Publish_name
2323 
2324 end interface
2325 
2326 
2327 interface MPI_Unpublish_name
2328 
2329 subroutine MPI_Unpublish_name(service_name, info, port_name, ierror)
2330   character(len=*), intent(in) :: service_name
2331   integer, intent(in) :: info
2332   character(len=*), intent(in) :: port_name
2333   integer, intent(out) :: ierror
2334 end subroutine MPI_Unpublish_name
2335 
2336 end interface
2337 
2338 
2339 interface MPI_Comm_disconnect
2340 
2341 subroutine MPI_Comm_disconnect(comm, ierror)
2342   integer, intent(inout) :: comm
2343   integer, intent(out) :: ierror
2344 end subroutine MPI_Comm_disconnect
2345 
2346 end interface
2347 
2348 
2349 interface MPI_Comm_get_parent
2350 
2351 subroutine MPI_Comm_get_parent(parent, ierror)
2352   integer, intent(out) :: parent
2353   integer, intent(out) :: ierror
2354 end subroutine MPI_Comm_get_parent
2355 
2356 end interface
2357 
2358 
2359 interface MPI_Comm_join
2360 
2361 subroutine MPI_Comm_join(fd, intercomm, ierror)
2362   integer, intent(in) :: fd
2363   integer, intent(out) :: intercomm
2364   integer, intent(out) :: ierror
2365 end subroutine MPI_Comm_join
2366 
2367 end interface
2368 
2369 
2370 interface MPI_Comm_accept
2371 
2372 subroutine MPI_Comm_accept(port_name, info, root, comm, newcomm&
2373         , ierror)
2374   character(len=*), intent(in) :: port_name
2375   integer, intent(in) :: info
2376   integer, intent(in) :: root
2377   integer, intent(in) :: comm
2378   integer, intent(out) :: newcomm
2379   integer, intent(out) :: ierror
2380 end subroutine MPI_Comm_accept
2381 
2382 end interface
2383 
2384 
2385 interface MPI_Comm_connect
2386 
2387 subroutine MPI_Comm_connect(port_name, info, root, comm, newcomm&
2388         , ierror)
2389   character(len=*), intent(in) :: port_name
2390   integer, intent(in) :: info
2391   integer, intent(in) :: root
2392   integer, intent(in) :: comm
2393   integer, intent(out) :: newcomm
2394   integer, intent(out) :: ierror
2395 end subroutine MPI_Comm_connect
2396 
2397 end interface
2398 
2399 
2400 interface MPI_Comm_spawn
2401 
2402 subroutine MPI_Comm_spawn(command, argv, maxprocs, info, root, &
2403         comm, intercomm, array_of_errcodes, ierror)
2404   character(len=*), intent(in) :: command
2405   character(len=*), dimension(*), intent(in) :: argv
2406   integer, intent(in) :: maxprocs
2407   integer, intent(in) :: info
2408   integer, intent(in) :: root
2409   integer, intent(in) :: comm
2410   integer, intent(out) :: intercomm
2411   integer, dimension(*), intent(out) :: array_of_errcodes
2412   integer, intent(out) :: ierror
2413 end subroutine MPI_Comm_spawn
2414 
2415 end interface
2416 
2417 
2418 interface MPI_Comm_spawn_multiple
2419 
2420 subroutine MPI_Comm_spawn_multiple(count, array_of_commands, array_of_argv, array_of_maxprocs, array_of_info, &
2421         root, comm, intercomm, array_of_errcodes, ierror)
2422   integer, intent(in) :: count
2423   character(len=*), dimension(*), intent(in) :: array_of_commands
2424   character(len=*), dimension(count,*), intent(in) :: array_of_argv
2425   integer, dimension(*), intent(in) :: array_of_maxprocs
2426   integer, dimension(*), intent(in) :: array_of_info
2427   integer, intent(in) :: root
2428   integer, intent(in) :: comm
2429   integer, intent(out) :: intercomm
2430   integer, dimension(*), intent(out) :: array_of_errcodes
2431   integer, intent(out) :: ierror
2432 end subroutine MPI_Comm_spawn_multiple
2433 
2434 end interface
2435 
2436 
2437 interface MPI_Mprobe
2438 
2439 subroutine MPI_Mprobe(source, tag, comm, message, status, ierror)
2440   include 'mpif-config.h'
2441   integer, intent(in) :: source
2442   integer, intent(in) :: tag
2443   integer, intent(in) :: comm
2444   integer, intent(out) :: message
2445   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
2446   integer, intent(out) :: ierror
2447 end subroutine MPI_Mprobe
2448 
2449 end interface
2450 
2451 
2452 interface MPI_Improbe
2453 
2454 subroutine MPI_Improbe(source, tag, comm, flag, message, status, ierror)
2455   include 'mpif-config.h'
2456   integer, intent(in) :: source
2457   integer, intent(in) :: tag
2458   integer, intent(in) :: comm
2459   logical, intent(out) :: flag
2460   integer, intent(out) :: message
2461   integer, dimension(MPI_STATUS_SIZE), intent(out) :: status
2462   integer, intent(out) :: ierror
2463 end subroutine MPI_Improbe
2464 
2465 end interface
2466 
2467 
2468 interface MPI_Get_library_version
2469 
2470 subroutine MPI_Get_library_version(version, resultlen, ierror)
2471   character(len=*), intent(out) :: version
2472   integer, intent(out) :: resultlen
2473   integer, intent(out) :: ierror
2474 end subroutine MPI_Get_library_version
2475 
2476 end interface
2477 
2478 
2479 interface MPI_Comm_split_type
2480 
2481 subroutine MPI_Comm_split_type(comm, split_type, key, info, newcomm, ierror)
2482   integer, intent(in) :: comm
2483   integer, intent(in) :: split_type
2484   integer, intent(in) :: key
2485   integer, intent(in) :: info
2486   integer, intent(out) :: newcomm
2487   integer, intent(out) :: ierror
2488 end subroutine MPI_Comm_split_type
2489 
2490 end interface
2491 
2492 
2493 interface MPI_Type_create_hindexed_block
2494 
2495 subroutine MPI_Type_create_hindexed_block(count, blocklength, array_of_displacements, oldtype, newtype&
2496         , ierror)
2497   include 'mpif-config.h'
2498   integer, intent(in) :: count
2499   integer, intent(in) :: blocklength
2500   integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements
2501   integer, intent(in) :: oldtype
2502   integer, intent(out) :: newtype
2503   integer, intent(out) :: ierror
2504 end subroutine MPI_Type_create_hindexed_block
2505 
2506 end interface
2507 
2508 
2509 interface MPI_Dist_graph_create
2510 
2511 subroutine MPI_Dist_graph_create(comm_old, n, sources, degrees, destinations, &
2512         weights, info, reorder, comm_dist_graph, ierror)
2513   integer, intent(in) :: comm_old
2514   integer, intent(in) :: n
2515   integer, dimension(n), intent(in) :: sources
2516   integer, dimension(n), intent(in) :: degrees
2517   integer, dimension(n), intent(in) :: destinations
2518   integer, dimension(n), intent(in) :: weights
2519   integer, intent(in) :: info
2520   logical, intent(in) :: reorder
2521   integer, intent(out) :: comm_dist_graph
2522   integer, intent(out) :: ierror
2523 end subroutine MPI_Dist_graph_create
2524 
2525 end interface
2526 
2527 
2528 interface MPI_Dist_graph_create_adjacent
2529 
2530 subroutine MPI_Dist_graph_create_adjacent(comm_old, indegree, sources, sourceweights, &
2531        outdegree, destinations, destweights, info, reorder, &
2532        comm_dist_graph, ierror)
2533   integer, intent(in) :: comm_old
2534   integer, intent(in) :: indegree
2535   integer, dimension(indegree), intent(in) :: sources
2536   integer, dimension(indegree), intent(in) :: sourceweights
2537   integer, intent(in) :: outdegree
2538   integer, dimension(outdegree), intent(in) :: destinations
2539   integer, dimension(outdegree), intent(in) :: destweights
2540   integer, intent(in) :: info
2541   logical, intent(in) :: reorder
2542   integer, intent(out) :: comm_dist_graph
2543   integer, intent(out) :: ierror
2544 end subroutine MPI_Dist_graph_create_adjacent
2545 
2546 end interface
2547 
2548 
2549 interface MPI_Dist_graph_neighbors_count
2550 
2551 subroutine MPI_Dist_graph_neighbors_count(comm, indegree, outdegree, weighted, ierror)
2552   integer, intent(in) :: comm
2553   integer, intent(out) :: indegree
2554   integer, intent(out) :: outdegree
2555   logical, intent(out) :: weighted
2556   integer, intent(out) :: ierror
2557 end subroutine MPI_Dist_graph_neighbors_count
2558 
2559 end interface
2560 
2561 
2562 interface MPI_Dist_graph_neighbors
2563 
2564 subroutine MPI_Dist_graph_neighbors(comm, maxindegree, sources, sourceweights, &
2565        maxoutdegree, destinations, destweights, ierror)
2566   integer, intent(in) :: comm
2567   integer, intent(in) :: maxindegree
2568   integer, dimension(maxindegree), intent(out) :: sources
2569   integer, dimension(maxindegree), intent(out) :: sourceweights
2570   integer, intent(in) :: maxoutdegree
2571   integer, dimension(maxoutdegree), intent(out) :: destinations
2572   integer, dimension(maxoutdegree), intent(out) :: destweights
2573   integer, intent(out) :: ierror
2574 end subroutine MPI_Dist_graph_neighbors
2575 
2576 end interface
2577 
2578 
2579 interface MPI_Win_flush
2580 
2581 subroutine MPI_Win_flush(rank, win, ierror)
2582   integer, intent(in) :: rank
2583   integer, intent(in) :: win
2584   integer, intent(out) :: ierror
2585 end subroutine MPI_Win_flush
2586 
2587 end interface
2588 
2589 
2590 interface MPI_Win_flush_all
2591 
2592 subroutine MPI_Win_flush_all(win, ierror)
2593   integer, intent(in) :: win
2594   integer, intent(out) :: ierror
2595 end subroutine MPI_Win_flush_all
2596 
2597 end interface
2598 
2599 
2600 interface MPI_Win_flush_local
2601 
2602 subroutine MPI_Win_flush_local(rank, win, ierror)
2603   integer, intent(in) :: rank
2604   integer, intent(in) :: win
2605   integer, intent(out) :: ierror
2606 end subroutine MPI_Win_flush_local
2607 
2608 end interface
2609 
2610 
2611 interface MPI_Win_flush_local_all
2612 
2613 subroutine MPI_Win_flush_local_all(win, ierror)
2614   integer, intent(in) :: win
2615   integer, intent(out) :: ierror
2616 end subroutine MPI_Win_flush_local_all
2617 
2618 end interface
2619