1! Copyright (C) by Argonne National Laboratory
2!     See COPYRIGHT in top-level directory
3       MODULE MPI_BASE
4       IMPLICIT NONE
5!      This module was created by the script buildiface
6       INTERFACE
7      SUBROUTINE MPI_TYPE_CREATE_DARRAY(size,rank,ndims,array_of_gsizes,&
8                  array_of_distribs,array_of_dargs,array_of_psizes,order,&
9                  oldtype,newtype,ierror)
10           INTEGER size
11           INTEGER rank
12           INTEGER ndims
13           INTEGER array_of_gsizes(*)
14           INTEGER array_of_distribs(*)
15           INTEGER array_of_dargs(*)
16           INTEGER array_of_psizes(*)
17           INTEGER order
18           INTEGER oldtype
19           INTEGER newtype
20           INTEGER ierror
21      END SUBROUTINE MPI_TYPE_CREATE_DARRAY
22
23      SUBROUTINE MPI_TYPE_EXTENT(datatype,extent,ierror)
24           INTEGER datatype
25           INTEGER extent
26           INTEGER ierror
27      END SUBROUTINE MPI_TYPE_EXTENT
28
29      SUBROUTINE MPI_TYPE_GET_NAME(datatype,type_name,resultlen,ierror)
30           INTEGER datatype
31           CHARACTER (LEN=*) type_name
32           INTEGER resultlen
33           INTEGER ierror
34      END SUBROUTINE MPI_TYPE_GET_NAME
35
36      SUBROUTINE MPI_WIN_LOCK(lock_type,rank,assert,win,ierror)
37           INTEGER lock_type
38           INTEGER rank
39           INTEGER assert
40           INTEGER win
41           INTEGER ierror
42      END SUBROUTINE MPI_WIN_LOCK
43
44      SUBROUTINE MPI_COMM_SPLIT(comm,color,key,newcomm,ierror)
45           INTEGER comm
46           INTEGER color
47           INTEGER key
48           INTEGER newcomm
49           INTEGER ierror
50      END SUBROUTINE MPI_COMM_SPLIT
51
52      SUBROUTINE MPI_WIN_COMPLETE(win,ierror)
53           INTEGER win
54           INTEGER ierror
55      END SUBROUTINE MPI_WIN_COMPLETE
56
57      SUBROUTINE MPI_GROUP_SIZE(group,size,ierror)
58           INTEGER group
59           INTEGER size
60           INTEGER ierror
61      END SUBROUTINE MPI_GROUP_SIZE
62
63      SUBROUTINE MPI_FILE_GET_ERRHANDLER(file,errhandler,ierror)
64           INTEGER file
65           INTEGER errhandler
66           INTEGER ierror
67      END SUBROUTINE MPI_FILE_GET_ERRHANDLER
68
69      SUBROUTINE MPI_REQUEST_FREE(request,ierror)
70           INTEGER request
71           INTEGER ierror
72      END SUBROUTINE MPI_REQUEST_FREE
73
74      SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK(count,blocklength,&
75                  array_of_displacements,oldtype,newtype,ierror)
76           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
77           INTEGER count
78           INTEGER blocklength
79           INTEGER(KIND=MPI_ADDRESS_KIND) array_of_displacements(*)
80           INTEGER oldtype
81           INTEGER newtype
82           INTEGER ierror
83      END SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK
84
85      SUBROUTINE MPI_BARRIER(comm,ierror)
86           INTEGER comm
87           INTEGER ierror
88      END SUBROUTINE MPI_BARRIER
89
90      SUBROUTINE MPI_TYPE_COMMIT(datatype,ierror)
91           INTEGER datatype
92           INTEGER ierror
93      END SUBROUTINE MPI_TYPE_COMMIT
94
95      SUBROUTINE MPI_GROUP_RANGE_EXCL(group,n,ranges,newgroup,ierror)
96           INTEGER group
97           INTEGER n
98           INTEGER ranges(3,*)
99           INTEGER newgroup
100           INTEGER ierror
101      END SUBROUTINE MPI_GROUP_RANGE_EXCL
102
103      SUBROUTINE MPI_REQUEST_GET_STATUS(request,flag,status,ierror)
104           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
105           INTEGER request
106           LOGICAL flag
107           INTEGER status(MPI_STATUS_SIZE)
108           INTEGER ierror
109      END SUBROUTINE MPI_REQUEST_GET_STATUS
110
111      SUBROUTINE MPI_COMM_SPAWN_MULTIPLE(count,array_of_commands,array_of_argv,&
112                  array_of_maxprocs,array_of_info,root,comm,intercomm,&
113                  array_of_errcodes,ierror)
114           INTEGER count
115           CHARACTER (LEN=*) array_of_commands(*)
116           CHARACTER (LEN=*) array_of_argv(count,*)
117           INTEGER array_of_maxprocs(*)
118           INTEGER array_of_info(*)
119           INTEGER root
120           INTEGER comm
121           INTEGER intercomm
122           INTEGER array_of_errcodes(*)
123           INTEGER ierror
124      END SUBROUTINE MPI_COMM_SPAWN_MULTIPLE
125
126      SUBROUTINE MPI_TYPE_GET_EXTENT(datatype,lb,extent,ierror)
127           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
128           INTEGER datatype
129           INTEGER(KIND=MPI_ADDRESS_KIND) lb
130           INTEGER(KIND=MPI_ADDRESS_KIND) extent
131           INTEGER ierror
132      END SUBROUTINE MPI_TYPE_GET_EXTENT
133
134      SUBROUTINE MPI_INFO_GET_VALUELEN(info,key,valuelen,flag,ierror)
135           INTEGER info
136           CHARACTER (LEN=*) key
137           INTEGER valuelen
138           LOGICAL flag
139           INTEGER ierror
140      END SUBROUTINE MPI_INFO_GET_VALUELEN
141
142      SUBROUTINE MPI_OP_CREATE(user_fn,commute,op,ierror)
143           EXTERNAL user_fn
144           LOGICAL commute
145           INTEGER op
146           INTEGER ierror
147      END SUBROUTINE MPI_OP_CREATE
148
149      SUBROUTINE MPI_TYPE_CREATE_STRUCT(count,array_of_blocklengths,&
150                  array_of_displacements,array_of_types,newtype,ierror)
151           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
152           INTEGER count
153           INTEGER array_of_blocklengths(*)
154           INTEGER(KIND=MPI_ADDRESS_KIND) array_of_displacements(*)
155           INTEGER array_of_types(*)
156           INTEGER newtype
157           INTEGER ierror
158      END SUBROUTINE MPI_TYPE_CREATE_STRUCT
159
160      SUBROUTINE MPI_WIN_GET_GROUP(win,group,ierror)
161           INTEGER win
162           INTEGER group
163           INTEGER ierror
164      END SUBROUTINE MPI_WIN_GET_GROUP
165
166      SUBROUTINE MPI_GROUP_COMPARE(group1,group2,result,ierror)
167           INTEGER group1
168           INTEGER group2
169           INTEGER result
170           INTEGER ierror
171      END SUBROUTINE MPI_GROUP_COMPARE
172
173      SUBROUTINE MPI_CART_SHIFT(comm,direction,disp,rank_source,rank_dest,&
174                  ierror)
175           INTEGER comm
176           INTEGER direction
177           INTEGER disp
178           INTEGER rank_source
179           INTEGER rank_dest
180           INTEGER ierror
181      END SUBROUTINE MPI_CART_SHIFT
182
183      SUBROUTINE MPI_COMM_GROUP(comm,group,ierror)
184           INTEGER comm
185           INTEGER group
186           INTEGER ierror
187      END SUBROUTINE MPI_COMM_GROUP
188
189      SUBROUTINE MPI_WIN_CALL_ERRHANDLER(win,errorcode,ierror)
190           INTEGER win
191           INTEGER errorcode
192           INTEGER ierror
193      END SUBROUTINE MPI_WIN_CALL_ERRHANDLER
194
195      SUBROUTINE MPI_LOOKUP_NAME(service_name,info,port_name,ierror)
196           CHARACTER (LEN=*) service_name
197           INTEGER info
198           CHARACTER (LEN=*) port_name
199           INTEGER ierror
200      END SUBROUTINE MPI_LOOKUP_NAME
201
202      SUBROUTINE MPI_INFO_FREE(info,ierror)
203           INTEGER info
204           INTEGER ierror
205      END SUBROUTINE MPI_INFO_FREE
206
207      SUBROUTINE MPI_GRAPH_GET(comm,maxindex,maxedges,indx,edges,ierror)
208           INTEGER comm
209           INTEGER maxindex
210           INTEGER maxedges
211           INTEGER indx(*)
212           INTEGER edges(*)
213           INTEGER ierror
214      END SUBROUTINE MPI_GRAPH_GET
215
216      SUBROUTINE MPI_STATUS_SET_ELEMENTS(status,datatype,count,ierror)
217           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
218           INTEGER status(MPI_STATUS_SIZE)
219           INTEGER datatype
220           INTEGER count
221           INTEGER ierror
222      END SUBROUTINE MPI_STATUS_SET_ELEMENTS
223
224      SUBROUTINE MPI_COMM_SET_INFO(comm,info,ierror)
225           INTEGER comm
226           INTEGER info
227           INTEGER ierror
228      END SUBROUTINE MPI_COMM_SET_INFO
229
230      SUBROUTINE MPI_WIN_FREE(win,ierror)
231           INTEGER win
232           INTEGER ierror
233      END SUBROUTINE MPI_WIN_FREE
234
235      SUBROUTINE MPI_PACK_EXTERNAL_SIZE(datarep,incount,datatype,size,ierror)
236           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
237           CHARACTER (LEN=*) datarep
238           INTEGER incount
239           INTEGER datatype
240           INTEGER(KIND=MPI_ADDRESS_KIND) size
241           INTEGER ierror
242      END SUBROUTINE MPI_PACK_EXTERNAL_SIZE
243
244      SUBROUTINE MPI_OPEN_PORT(info,port_name,ierror)
245           INTEGER info
246           CHARACTER (LEN=*) port_name
247           INTEGER ierror
248      END SUBROUTINE MPI_OPEN_PORT
249
250      SUBROUTINE MPI_COMM_SPLIT_TYPE(comm,split_type,key,info,newcomm,ierror)
251           INTEGER comm
252           INTEGER split_type
253           INTEGER key
254           INTEGER info
255           INTEGER newcomm
256           INTEGER ierror
257      END SUBROUTINE MPI_COMM_SPLIT_TYPE
258
259      SUBROUTINE MPI_FILE_CREATE_ERRHANDLER(file_errhandler_fn,errhandler,&
260                  ierror)
261           INTERFACE
262       SUBROUTINE file_errhandler_fn(vv0,vv1)
263       INTEGER vv0,vv1
264       END SUBROUTINE
265       END INTERFACE
266           INTEGER errhandler
267           INTEGER ierror
268      END SUBROUTINE MPI_FILE_CREATE_ERRHANDLER
269
270      SUBROUTINE MPI_COMM_CREATE_GROUP(comm,group,tag,newcomm,ierror)
271           INTEGER comm
272           INTEGER group
273           INTEGER tag
274           INTEGER newcomm
275           INTEGER ierror
276      END SUBROUTINE MPI_COMM_CREATE_GROUP
277
278      SUBROUTINE MPI_ATTR_DELETE(comm,keyval,ierror)
279           INTEGER comm
280           INTEGER keyval
281           INTEGER ierror
282      END SUBROUTINE MPI_ATTR_DELETE
283
284      SUBROUTINE MPI_WIN_LOCK_ALL(assert,win,ierror)
285           INTEGER assert
286           INTEGER win
287           INTEGER ierror
288      END SUBROUTINE MPI_WIN_LOCK_ALL
289
290      SUBROUTINE MPI_IBARRIER(comm,request,ierror)
291           INTEGER comm
292           INTEGER request
293           INTEGER ierror
294      END SUBROUTINE MPI_IBARRIER
295
296      SUBROUTINE MPI_TYPE_GET_CONTENTS(datatype,max_integers,max_addresses,&
297                  max_datatypes,array_of_integers,array_of_addresses,&
298                  array_of_datatypes,ierror)
299           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
300           INTEGER datatype
301           INTEGER max_integers
302           INTEGER max_addresses
303           INTEGER max_datatypes
304           INTEGER array_of_integers(*)
305           INTEGER(KIND=MPI_ADDRESS_KIND) array_of_addresses(*)
306           INTEGER array_of_datatypes(*)
307           INTEGER ierror
308      END SUBROUTINE MPI_TYPE_GET_CONTENTS
309
310      SUBROUTINE MPI_WIN_FLUSH_ALL(win,ierror)
311           INTEGER win
312           INTEGER ierror
313      END SUBROUTINE MPI_WIN_FLUSH_ALL
314
315      SUBROUTINE MPI_START(request,ierror)
316           INTEGER request
317           INTEGER ierror
318      END SUBROUTINE MPI_START
319
320      SUBROUTINE MPI_FINALIZE(ierror)
321           INTEGER ierror
322      END SUBROUTINE MPI_FINALIZE
323
324      SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT(comm,indegree,outdegree,&
325                  weighted,ierror)
326           INTEGER comm
327           INTEGER indegree
328           INTEGER outdegree
329           LOGICAL weighted
330           INTEGER ierror
331      END SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT
332
333      SUBROUTINE MPI_COMM_GET_PARENT(parent,ierror)
334           INTEGER parent
335           INTEGER ierror
336      END SUBROUTINE MPI_COMM_GET_PARENT
337
338      SUBROUTINE MPI_FINALIZED(flag,ierror)
339           LOGICAL flag
340           INTEGER ierror
341      END SUBROUTINE MPI_FINALIZED
342
343      SUBROUTINE MPI_INTERCOMM_MERGE(intercomm,high,newintracomm,ierror)
344           INTEGER intercomm
345           LOGICAL high
346           INTEGER newintracomm
347           INTEGER ierror
348      END SUBROUTINE MPI_INTERCOMM_MERGE
349
350      SUBROUTINE MPI_INFO_GET_NTHKEY(info,n,key,ierror)
351           INTEGER info
352           INTEGER n
353           CHARACTER (LEN=*) key
354           INTEGER ierror
355      END SUBROUTINE MPI_INFO_GET_NTHKEY
356
357      SUBROUTINE MPI_TYPE_MATCH_SIZE(typeclass,size,datatype,ierror)
358           INTEGER typeclass
359           INTEGER size
360           INTEGER datatype
361           INTEGER ierror
362      END SUBROUTINE MPI_TYPE_MATCH_SIZE
363
364      SUBROUTINE MPI_INITIALIZED(flag,ierror)
365           LOGICAL flag
366           INTEGER ierror
367      END SUBROUTINE MPI_INITIALIZED
368
369      SUBROUTINE MPI_TYPE_CONTIGUOUS(count,oldtype,newtype,ierror)
370           INTEGER count
371           INTEGER oldtype
372           INTEGER newtype
373           INTEGER ierror
374      END SUBROUTINE MPI_TYPE_CONTIGUOUS
375
376      SUBROUTINE MPI_TYPE_UB(datatype,displacement,ierror)
377           INTEGER datatype
378           INTEGER displacement
379           INTEGER ierror
380      END SUBROUTINE MPI_TYPE_UB
381
382      SUBROUTINE MPI_INFO_DUP(info,newinfo,ierror)
383           INTEGER info
384           INTEGER newinfo
385           INTEGER ierror
386      END SUBROUTINE MPI_INFO_DUP
387
388      SUBROUTINE MPI_WIN_DELETE_ATTR(win,win_keyval,ierror)
389           INTEGER win
390           INTEGER win_keyval
391           INTEGER ierror
392      END SUBROUTINE MPI_WIN_DELETE_ATTR
393
394      SUBROUTINE MPI_INFO_GET_NKEYS(info,nkeys,ierror)
395           INTEGER info
396           INTEGER nkeys
397           INTEGER ierror
398      END SUBROUTINE MPI_INFO_GET_NKEYS
399
400      SUBROUTINE MPI_WIN_CREATE_DYNAMIC(info,comm,win,ierror)
401           INTEGER info
402           INTEGER comm
403           INTEGER win
404           INTEGER ierror
405      END SUBROUTINE MPI_WIN_CREATE_DYNAMIC
406
407      SUBROUTINE MPI_GROUP_EXCL(group,n,ranks,newgroup,ierror)
408           INTEGER group
409           INTEGER n
410           INTEGER ranks(*)
411           INTEGER newgroup
412           INTEGER ierror
413      END SUBROUTINE MPI_GROUP_EXCL
414
415      SUBROUTINE MPI_WIN_GET_INFO(win,info_used,ierror)
416           INTEGER win
417           INTEGER info_used
418           INTEGER ierror
419      END SUBROUTINE MPI_WIN_GET_INFO
420
421      SUBROUTINE MPI_COMM_DELETE_ATTR(comm,comm_keyval,ierror)
422           INTEGER comm
423           INTEGER comm_keyval
424           INTEGER ierror
425      END SUBROUTINE MPI_COMM_DELETE_ATTR
426
427      SUBROUTINE MPI_GET_COUNT(status,datatype,count,ierror)
428           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
429           INTEGER status(MPI_STATUS_SIZE)
430           INTEGER datatype
431           INTEGER count
432           INTEGER ierror
433      END SUBROUTINE MPI_GET_COUNT
434
435      SUBROUTINE MPI_ADD_ERROR_CLASS(errorclass,ierror)
436           INTEGER errorclass
437           INTEGER ierror
438      END SUBROUTINE MPI_ADD_ERROR_CLASS
439
440      SUBROUTINE MPI_COMM_SET_NAME(comm,comm_name,ierror)
441           INTEGER comm
442           CHARACTER (LEN=*) comm_name
443           INTEGER ierror
444      END SUBROUTINE MPI_COMM_SET_NAME
445
446      SUBROUTINE MPI_COMM_DISCONNECT(comm,ierror)
447           INTEGER comm
448           INTEGER ierror
449      END SUBROUTINE MPI_COMM_DISCONNECT
450
451      SUBROUTINE MPI_ADD_ERROR_CODE(errorclass,errorcode,ierror)
452           INTEGER errorclass
453           INTEGER errorcode
454           INTEGER ierror
455      END SUBROUTINE MPI_ADD_ERROR_CODE
456
457      SUBROUTINE MPI_COMM_GET_ERRHANDLER(comm,errhandler,ierror)
458           INTEGER comm
459           INTEGER errhandler
460           INTEGER ierror
461      END SUBROUTINE MPI_COMM_GET_ERRHANDLER
462
463      SUBROUTINE MPI_COMM_CREATE(comm,group,newcomm,ierror)
464           INTEGER comm
465           INTEGER group
466           INTEGER newcomm
467           INTEGER ierror
468      END SUBROUTINE MPI_COMM_CREATE
469
470      SUBROUTINE MPI_COMM_REMOTE_SIZE(comm,size,ierror)
471           INTEGER comm
472           INTEGER size
473           INTEGER ierror
474      END SUBROUTINE MPI_COMM_REMOTE_SIZE
475
476      SUBROUTINE MPI_PROBE(source,tag,comm,status,ierror)
477           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
478           INTEGER source
479           INTEGER tag
480           INTEGER comm
481           INTEGER status(MPI_STATUS_SIZE)
482           INTEGER ierror
483      END SUBROUTINE MPI_PROBE
484
485      SUBROUTINE MPI_WIN_WAIT(win,ierror)
486           INTEGER win
487           INTEGER ierror
488      END SUBROUTINE MPI_WIN_WAIT
489
490      SUBROUTINE MPI_TYPE_CREATE_SUBARRAY(ndims,array_of_sizes,&
491                  array_of_subsizes,array_of_starts,order,oldtype,newtype,&
492                  ierror)
493           INTEGER ndims
494           INTEGER array_of_sizes(*)
495           INTEGER array_of_subsizes(*)
496           INTEGER array_of_starts(*)
497           INTEGER order
498           INTEGER oldtype
499           INTEGER newtype
500           INTEGER ierror
501      END SUBROUTINE MPI_TYPE_CREATE_SUBARRAY
502
503      SUBROUTINE MPI_TYPE_SIZE_X(datatype,size,ierror)
504           USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND
505           INTEGER datatype
506           INTEGER(KIND=MPI_COUNT_KIND) size
507           INTEGER ierror
508      END SUBROUTINE MPI_TYPE_SIZE_X
509
510      SUBROUTINE MPI_TYPE_FREE(datatype,ierror)
511           INTEGER datatype
512           INTEGER ierror
513      END SUBROUTINE MPI_TYPE_FREE
514
515      SUBROUTINE MPI_GRAPHDIMS_GET(comm,nnodes,nedges,ierror)
516           INTEGER comm
517           INTEGER nnodes
518           INTEGER nedges
519           INTEGER ierror
520      END SUBROUTINE MPI_GRAPHDIMS_GET
521
522      SUBROUTINE MPI_FILE_CALL_ERRHANDLER(fh,errorcode,ierror)
523           INTEGER fh
524           INTEGER errorcode
525           INTEGER ierror
526      END SUBROUTINE MPI_FILE_CALL_ERRHANDLER
527
528      SUBROUTINE MPI_TYPE_DELETE_ATTR(datatype,type_keyval,ierror)
529           INTEGER datatype
530           INTEGER type_keyval
531           INTEGER ierror
532      END SUBROUTINE MPI_TYPE_DELETE_ATTR
533
534      SUBROUTINE MPI_TYPE_CREATE_HINDEXED(count,array_of_blocklengths,&
535                  array_of_displacements,oldtype,newtype,ierror)
536           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
537           INTEGER count
538           INTEGER array_of_blocklengths(*)
539           INTEGER(KIND=MPI_ADDRESS_KIND) array_of_displacements(*)
540           INTEGER oldtype
541           INTEGER newtype
542           INTEGER ierror
543      END SUBROUTINE MPI_TYPE_CREATE_HINDEXED
544
545      SUBROUTINE MPI_STATUS_SET_ELEMENTS_X(status,datatype,count,ierror)
546           USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND, MPI_STATUS_SIZE
547           INTEGER status(MPI_STATUS_SIZE)
548           INTEGER datatype
549           INTEGER(KIND=MPI_COUNT_KIND) count
550           INTEGER ierror
551      END SUBROUTINE MPI_STATUS_SET_ELEMENTS_X
552
553      SUBROUTINE MPI_TYPE_INDEXED(count,array_of_blocklengths,&
554                  array_of_displacements,oldtype,newtype,ierror)
555           INTEGER count
556           INTEGER array_of_blocklengths(*)
557           INTEGER array_of_displacements(*)
558           INTEGER oldtype
559           INTEGER newtype
560           INTEGER ierror
561      END SUBROUTINE MPI_TYPE_INDEXED
562
563      SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT(comm,rank,nneighbors,ierror)
564           INTEGER comm
565           INTEGER rank
566           INTEGER nneighbors
567           INTEGER ierror
568      END SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT
569
570      SUBROUTINE MPI_KEYVAL_FREE(keyval,ierror)
571           INTEGER keyval
572           INTEGER ierror
573      END SUBROUTINE MPI_KEYVAL_FREE
574
575      SUBROUTINE MPI_GROUP_DIFFERENCE(group1,group2,newgroup,ierror)
576           INTEGER group1
577           INTEGER group2
578           INTEGER newgroup
579           INTEGER ierror
580      END SUBROUTINE MPI_GROUP_DIFFERENCE
581
582      SUBROUTINE MPI_COMM_DUP(comm,newcomm,ierror)
583           INTEGER comm
584           INTEGER newcomm
585           INTEGER ierror
586      END SUBROUTINE MPI_COMM_DUP
587
588      SUBROUTINE MPI_ERROR_CLASS(errorcode,errorclass,ierror)
589           INTEGER errorcode
590           INTEGER errorclass
591           INTEGER ierror
592      END SUBROUTINE MPI_ERROR_CLASS
593
594      SUBROUTINE MPI_COMM_FREE_KEYVAL(comm_keyval,ierror)
595           INTEGER comm_keyval
596           INTEGER ierror
597      END SUBROUTINE MPI_COMM_FREE_KEYVAL
598
599      SUBROUTINE MPI_GET_LIBRARY_VERSION(version,resultlen,ierror)
600           CHARACTER (LEN=*) version
601           INTEGER resultlen
602           INTEGER ierror
603      END SUBROUTINE MPI_GET_LIBRARY_VERSION
604
605      SUBROUTINE MPI_WIN_FLUSH_LOCAL(rank,win,ierror)
606           INTEGER rank
607           INTEGER win
608           INTEGER ierror
609      END SUBROUTINE MPI_WIN_FLUSH_LOCAL
610
611      SUBROUTINE MPI_GROUP_INTERSECTION(group1,group2,newgroup,ierror)
612           INTEGER group1
613           INTEGER group2
614           INTEGER newgroup
615           INTEGER ierror
616      END SUBROUTINE MPI_GROUP_INTERSECTION
617
618      SUBROUTINE MPI_CARTDIM_GET(comm,ndims,ierror)
619           INTEGER comm
620           INTEGER ndims
621           INTEGER ierror
622      END SUBROUTINE MPI_CARTDIM_GET
623
624      SUBROUTINE MPI_WIN_GET_ERRHANDLER(win,errhandler,ierror)
625           INTEGER win
626           INTEGER errhandler
627           INTEGER ierror
628      END SUBROUTINE MPI_WIN_GET_ERRHANDLER
629
630      SUBROUTINE MPI_CANCEL(request,ierror)
631           INTEGER request
632           INTEGER ierror
633      END SUBROUTINE MPI_CANCEL
634
635      SUBROUTINE MPI_WIN_POST(group,assert,win,ierror)
636           INTEGER group
637           INTEGER assert
638           INTEGER win
639           INTEGER ierror
640      END SUBROUTINE MPI_WIN_POST
641
642      SUBROUTINE MPI_TEST_CANCELLED(status,flag,ierror)
643           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
644           INTEGER status(MPI_STATUS_SIZE)
645           LOGICAL flag
646           INTEGER ierror
647      END SUBROUTINE MPI_TEST_CANCELLED
648
649      SUBROUTINE MPI_ADD_ERROR_STRING(errorcode,string,ierror)
650           INTEGER errorcode
651           CHARACTER (LEN=*) string
652           INTEGER ierror
653      END SUBROUTINE MPI_ADD_ERROR_STRING
654
655      SUBROUTINE MPI_GET_ELEMENTS(status,datatype,count,ierror)
656           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
657           INTEGER status(MPI_STATUS_SIZE)
658           INTEGER datatype
659           INTEGER count
660           INTEGER ierror
661      END SUBROUTINE MPI_GET_ELEMENTS
662
663      SUBROUTINE MPI_PACK_SIZE(incount,datatype,comm,size,ierror)
664           INTEGER incount
665           INTEGER datatype
666           INTEGER comm
667           INTEGER size
668           INTEGER ierror
669      END SUBROUTINE MPI_PACK_SIZE
670
671      SUBROUTINE MPI_ERRHANDLER_GET(comm,errhandler,ierror)
672           INTEGER comm
673           INTEGER errhandler
674           INTEGER ierror
675      END SUBROUTINE MPI_ERRHANDLER_GET
676
677      SUBROUTINE MPI_WIN_SET_INFO(win,info,ierror)
678           INTEGER win
679           INTEGER info
680           INTEGER ierror
681      END SUBROUTINE MPI_WIN_SET_INFO
682
683      SUBROUTINE MPI_OP_COMMUTATIVE(op,commute,ierror)
684           INTEGER op
685           LOGICAL commute
686           INTEGER ierror
687      END SUBROUTINE MPI_OP_COMMUTATIVE
688
689      SUBROUTINE MPI_TYPE_LB(datatype,displacement,ierror)
690           INTEGER datatype
691           INTEGER displacement
692           INTEGER ierror
693      END SUBROUTINE MPI_TYPE_LB
694
695      SUBROUTINE MPI_GROUP_RANGE_INCL(group,n,ranges,newgroup,ierror)
696           INTEGER group
697           INTEGER n
698           INTEGER ranges(3,*)
699           INTEGER newgroup
700           INTEGER ierror
701      END SUBROUTINE MPI_GROUP_RANGE_INCL
702
703      SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT(datatype,true_lb,true_extent,ierror)
704           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
705           INTEGER datatype
706           INTEGER(KIND=MPI_ADDRESS_KIND) true_lb
707           INTEGER(KIND=MPI_ADDRESS_KIND) true_extent
708           INTEGER ierror
709      END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT
710
711      SUBROUTINE MPI_IS_THREAD_MAIN(flag,ierror)
712           LOGICAL flag
713           INTEGER ierror
714      END SUBROUTINE MPI_IS_THREAD_MAIN
715
716      SUBROUTINE MPI_WIN_FREE_KEYVAL(win_keyval,ierror)
717           INTEGER win_keyval
718           INTEGER ierror
719      END SUBROUTINE MPI_WIN_FREE_KEYVAL
720
721      SUBROUTINE MPI_QUERY_THREAD(provided,ierror)
722           INTEGER provided
723           INTEGER ierror
724      END SUBROUTINE MPI_QUERY_THREAD
725
726      SUBROUTINE MPI_ERRHANDLER_CREATE(function,errhandler,ierror)
727           INTERFACE
728       SUBROUTINE function(vv0,vv1)
729       INTEGER vv0,vv1
730       END SUBROUTINE
731       END INTERFACE
732           INTEGER errhandler
733           INTEGER ierror
734      END SUBROUTINE MPI_ERRHANDLER_CREATE
735
736      SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X(datatype,lb,extent,ierror)
737           USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND
738           INTEGER datatype
739           INTEGER(KIND=MPI_COUNT_KIND) lb
740           INTEGER(KIND=MPI_COUNT_KIND) extent
741           INTEGER ierror
742      END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X
743
744      SUBROUTINE MPI_IMPROBE(source,tag,comm,flag,message,status,ierror)
745           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
746           INTEGER source
747           INTEGER tag
748           INTEGER comm
749           LOGICAL flag
750           INTEGER message
751           INTEGER status(MPI_STATUS_SIZE)
752           INTEGER ierror
753      END SUBROUTINE MPI_IMPROBE
754
755      SUBROUTINE MPI_COMM_REMOTE_GROUP(comm,group,ierror)
756           INTEGER comm
757           INTEGER group
758           INTEGER ierror
759      END SUBROUTINE MPI_COMM_REMOTE_GROUP
760
761      SUBROUTINE MPI_COMM_COMPARE(comm1,comm2,result,ierror)
762           INTEGER comm1
763           INTEGER comm2
764           INTEGER result
765           INTEGER ierror
766      END SUBROUTINE MPI_COMM_COMPARE
767
768      SUBROUTINE MPI_INFO_GET(info,key,valuelen,value,flag,ierror)
769           INTEGER info
770           CHARACTER (LEN=*) key
771           INTEGER valuelen
772           CHARACTER (LEN=*) value
773           LOGICAL flag
774           INTEGER ierror
775      END SUBROUTINE MPI_INFO_GET
776
777      SUBROUTINE MPI_TYPE_VECTOR(count,blocklength,stride,oldtype,newtype,&
778                  ierror)
779           INTEGER count
780           INTEGER blocklength
781           INTEGER stride
782           INTEGER oldtype
783           INTEGER newtype
784           INTEGER ierror
785      END SUBROUTINE MPI_TYPE_VECTOR
786
787      SUBROUTINE MPI_COMM_DUP_WITH_INFO(comm,info,newcomm,ierror)
788           INTEGER comm
789           INTEGER info
790           INTEGER newcomm
791           INTEGER ierror
792      END SUBROUTINE MPI_COMM_DUP_WITH_INFO
793
794      SUBROUTINE MPI_WIN_SET_ERRHANDLER(win,errhandler,ierror)
795           INTEGER win
796           INTEGER errhandler
797           INTEGER ierror
798      END SUBROUTINE MPI_WIN_SET_ERRHANDLER
799
800      SUBROUTINE MPI_COMM_SPAWN(command,argv,maxprocs,info,root,comm,intercomm,&
801                  array_of_errcodes,ierror)
802           CHARACTER (LEN=*) command
803           CHARACTER (LEN=*) argv(*)
804           INTEGER maxprocs
805           INTEGER info
806           INTEGER root
807           INTEGER comm
808           INTEGER intercomm
809           INTEGER array_of_errcodes(*)
810           INTEGER ierror
811      END SUBROUTINE MPI_COMM_SPAWN
812
813      SUBROUTINE MPI_GROUP_FREE(group,ierror)
814           INTEGER group
815           INTEGER ierror
816      END SUBROUTINE MPI_GROUP_FREE
817
818      SUBROUTINE MPI_COMM_SET_ERRHANDLER(comm,errhandler,ierror)
819           INTEGER comm
820           INTEGER errhandler
821           INTEGER ierror
822      END SUBROUTINE MPI_COMM_SET_ERRHANDLER
823
824      SUBROUTINE MPI_WIN_TEST(win,flag,ierror)
825           INTEGER win
826           LOGICAL flag
827           INTEGER ierror
828      END SUBROUTINE MPI_WIN_TEST
829
830      SUBROUTINE MPI_WIN_FLUSH_LOCAL_ALL(win,ierror)
831           INTEGER win
832           INTEGER ierror
833      END SUBROUTINE MPI_WIN_FLUSH_LOCAL_ALL
834
835      SUBROUTINE MPI_GRAPH_MAP(comm,nnodes,indx,edges,newrank,ierror)
836           INTEGER comm
837           INTEGER nnodes
838           INTEGER indx(*)
839           INTEGER edges(*)
840           INTEGER newrank
841           INTEGER ierror
842      END SUBROUTINE MPI_GRAPH_MAP
843
844      SUBROUTINE MPI_PUBLISH_NAME(service_name,info,port_name,ierror)
845           CHARACTER (LEN=*) service_name
846           INTEGER info
847           CHARACTER (LEN=*) port_name
848           INTEGER ierror
849      END SUBROUTINE MPI_PUBLISH_NAME
850
851      SUBROUTINE MPI_TYPE_GET_EXTENT_X(datatype,lb,extent,ierror)
852           USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND
853           INTEGER datatype
854           INTEGER(KIND=MPI_COUNT_KIND) lb
855           INTEGER(KIND=MPI_COUNT_KIND) extent
856           INTEGER ierror
857      END SUBROUTINE MPI_TYPE_GET_EXTENT_X
858
859      SUBROUTINE MPI_TYPE_CREATE_F90_REAL(precision,range,newtype,ierror)
860           INTEGER precision
861           INTEGER range
862           INTEGER newtype
863           INTEGER ierror
864      END SUBROUTINE MPI_TYPE_CREATE_F90_REAL
865
866      SUBROUTINE MPI_GROUP_UNION(group1,group2,newgroup,ierror)
867           INTEGER group1
868           INTEGER group2
869           INTEGER newgroup
870           INTEGER ierror
871      END SUBROUTINE MPI_GROUP_UNION
872
873      SUBROUTINE MPI_COMM_ACCEPT(port_name,info,root,comm,newcomm,ierror)
874           CHARACTER (LEN=*) port_name
875           INTEGER info
876           INTEGER root
877           INTEGER comm
878           INTEGER newcomm
879           INTEGER ierror
880      END SUBROUTINE MPI_COMM_ACCEPT
881
882      SUBROUTINE MPI_WIN_GET_NAME(win,win_name,resultlen,ierror)
883           INTEGER win
884           CHARACTER (LEN=*) win_name
885           INTEGER resultlen
886           INTEGER ierror
887      END SUBROUTINE MPI_WIN_GET_NAME
888
889      SUBROUTINE MPI_INFO_CREATE(info,ierror)
890           INTEGER info
891           INTEGER ierror
892      END SUBROUTINE MPI_INFO_CREATE
893
894      SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER(range,newtype,ierror)
895           INTEGER range
896           INTEGER newtype
897           INTEGER ierror
898      END SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER
899
900      SUBROUTINE MPI_TYPE_SET_NAME(datatype,type_name,ierror)
901           INTEGER datatype
902           CHARACTER (LEN=*) type_name
903           INTEGER ierror
904      END SUBROUTINE MPI_TYPE_SET_NAME
905
906      SUBROUTINE MPI_GROUP_INCL(group,n,ranks,newgroup,ierror)
907           INTEGER group
908           INTEGER n
909           INTEGER ranks(*)
910           INTEGER newgroup
911           INTEGER ierror
912      END SUBROUTINE MPI_GROUP_INCL
913
914      SUBROUTINE MPI_COMM_CONNECT(port_name,info,root,comm,newcomm,ierror)
915           CHARACTER (LEN=*) port_name
916           INTEGER info
917           INTEGER root
918           INTEGER comm
919           INTEGER newcomm
920           INTEGER ierror
921      END SUBROUTINE MPI_COMM_CONNECT
922
923      SUBROUTINE MPI_COMM_CREATE_ERRHANDLER(comm_errhandler_fn,errhandler,&
924                  ierror)
925           INTERFACE
926       SUBROUTINE comm_errhandler_fn(vv0,vv1)
927       INTEGER vv0,vv1
928       END SUBROUTINE
929       END INTERFACE
930           INTEGER errhandler
931           INTEGER ierror
932      END SUBROUTINE MPI_COMM_CREATE_ERRHANDLER
933
934      SUBROUTINE MPI_ERROR_STRING(errorcode,string,resultlen,ierror)
935           INTEGER errorcode
936           CHARACTER (LEN=*) string
937           INTEGER resultlen
938           INTEGER ierror
939      END SUBROUTINE MPI_ERROR_STRING
940
941      SUBROUTINE MPI_TYPE_STRUCT(count,array_of_blocklengths,&
942                  array_of_displacements,array_of_types,newtype,ierror)
943           INTEGER count
944           INTEGER array_of_blocklengths(*)
945           INTEGER array_of_displacements(*)
946           INTEGER array_of_types(*)
947           INTEGER newtype
948           INTEGER ierror
949      END SUBROUTINE MPI_TYPE_STRUCT
950
951      SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK(count,blocklength,&
952                  array_of_displacements,oldtype,newtype,ierror)
953           INTEGER count
954           INTEGER blocklength
955           INTEGER array_of_displacements(*)
956           INTEGER oldtype
957           INTEGER newtype
958           INTEGER ierror
959      END SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK
960
961      SUBROUTINE MPI_TYPE_CREATE_HVECTOR(count,blocklength,stride,oldtype,&
962                  newtype,ierror)
963           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
964           INTEGER count
965           INTEGER blocklength
966           INTEGER(KIND=MPI_ADDRESS_KIND) stride
967           INTEGER oldtype
968           INTEGER newtype
969           INTEGER ierror
970      END SUBROUTINE MPI_TYPE_CREATE_HVECTOR
971
972      SUBROUTINE MPI_ABORT(comm,errorcode,ierror)
973           INTEGER comm
974           INTEGER errorcode
975           INTEGER ierror
976      END SUBROUTINE MPI_ABORT
977
978      SUBROUTINE MPI_TYPE_FREE_KEYVAL(type_keyval,ierror)
979           INTEGER type_keyval
980           INTEGER ierror
981      END SUBROUTINE MPI_TYPE_FREE_KEYVAL
982
983      SUBROUTINE MPI_INTERCOMM_CREATE(local_comm,local_leader,peer_comm,&
984                  remote_leader,tag,newintercomm,ierror)
985           INTEGER local_comm
986           INTEGER local_leader
987           INTEGER peer_comm
988           INTEGER remote_leader
989           INTEGER tag
990           INTEGER newintercomm
991           INTEGER ierror
992      END SUBROUTINE MPI_INTERCOMM_CREATE
993
994      SUBROUTINE MPI_COMM_RANK(comm,rank,ierror)
995           INTEGER comm
996           INTEGER rank
997           INTEGER ierror
998      END SUBROUTINE MPI_COMM_RANK
999
1000      SUBROUTINE MPI_COMM_IDUP(comm,newcomm,request,ierror)
1001           INTEGER comm
1002           INTEGER newcomm
1003           INTEGER request
1004           INTEGER ierror
1005      END SUBROUTINE MPI_COMM_IDUP
1006
1007      SUBROUTINE MPI_STATUS_SET_CANCELLED(status,flag,ierror)
1008           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
1009           INTEGER status(MPI_STATUS_SIZE)
1010           LOGICAL flag
1011           INTEGER ierror
1012      END SUBROUTINE MPI_STATUS_SET_CANCELLED
1013
1014      SUBROUTINE MPI_FILE_SET_ERRHANDLER(file,errhandler,ierror)
1015           INTEGER file
1016           INTEGER errhandler
1017           INTEGER ierror
1018      END SUBROUTINE MPI_FILE_SET_ERRHANDLER
1019
1020      SUBROUTINE MPI_UNPUBLISH_NAME(service_name,info,port_name,ierror)
1021           CHARACTER (LEN=*) service_name
1022           INTEGER info
1023           CHARACTER (LEN=*) port_name
1024           INTEGER ierror
1025      END SUBROUTINE MPI_UNPUBLISH_NAME
1026
1027      SUBROUTINE MPI_INFO_DELETE(info,key,ierror)
1028           INTEGER info
1029           CHARACTER (LEN=*) key
1030           INTEGER ierror
1031      END SUBROUTINE MPI_INFO_DELETE
1032
1033      SUBROUTINE MPI_TYPE_CREATE_RESIZED(oldtype,lb,extent,newtype,ierror)
1034           USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
1035           INTEGER oldtype
1036           INTEGER(KIND=MPI_ADDRESS_KIND) lb
1037           INTEGER(KIND=MPI_ADDRESS_KIND) extent
1038           INTEGER newtype
1039           INTEGER ierror
1040      END SUBROUTINE MPI_TYPE_CREATE_RESIZED
1041
1042      SUBROUTINE MPI_ERRHANDLER_SET(comm,errhandler,ierror)
1043           INTEGER comm
1044           INTEGER errhandler
1045           INTEGER ierror
1046      END SUBROUTINE MPI_ERRHANDLER_SET
1047
1048      SUBROUTINE MPI_TYPE_DUP(oldtype,newtype,ierror)
1049           INTEGER oldtype
1050           INTEGER newtype
1051           INTEGER ierror
1052      END SUBROUTINE MPI_TYPE_DUP
1053
1054      SUBROUTINE MPI_WIN_FLUSH(rank,win,ierror)
1055           INTEGER rank
1056           INTEGER win
1057           INTEGER ierror
1058      END SUBROUTINE MPI_WIN_FLUSH
1059
1060      SUBROUTINE MPI_WAIT(request,status,ierror)
1061           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
1062           INTEGER request
1063           INTEGER status(MPI_STATUS_SIZE)
1064           INTEGER ierror
1065      END SUBROUTINE MPI_WAIT
1066
1067      SUBROUTINE MPI_INFO_SET(info,key,value,ierror)
1068           INTEGER info
1069           CHARACTER (LEN=*) key
1070           CHARACTER (LEN=*) value
1071           INTEGER ierror
1072      END SUBROUTINE MPI_INFO_SET
1073
1074      SUBROUTINE MPI_TEST(request,flag,status,ierror)
1075           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
1076           INTEGER request
1077           LOGICAL flag
1078           INTEGER status(MPI_STATUS_SIZE)
1079           INTEGER ierror
1080      END SUBROUTINE MPI_TEST
1081
1082      SUBROUTINE MPI_COMM_GET_NAME(comm,comm_name,resultlen,ierror)
1083           INTEGER comm
1084           CHARACTER (LEN=*) comm_name
1085           INTEGER resultlen
1086           INTEGER ierror
1087      END SUBROUTINE MPI_COMM_GET_NAME
1088
1089      SUBROUTINE MPI_COMM_FREE(comm,ierror)
1090           INTEGER comm
1091           INTEGER ierror
1092      END SUBROUTINE MPI_COMM_FREE
1093
1094      SUBROUTINE MPI_COMM_GET_INFO(comm,info,ierror)
1095           INTEGER comm
1096           INTEGER info
1097           INTEGER ierror
1098      END SUBROUTINE MPI_COMM_GET_INFO
1099
1100      SUBROUTINE MPI_IPROBE(source,tag,comm,flag,status,ierror)
1101           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
1102           INTEGER source
1103           INTEGER tag
1104           INTEGER comm
1105           LOGICAL flag
1106           INTEGER status(MPI_STATUS_SIZE)
1107           INTEGER ierror
1108      END SUBROUTINE MPI_IPROBE
1109
1110      SUBROUTINE MPI_GET_PROCESSOR_NAME(name,resultlen,ierror)
1111           CHARACTER (LEN=*) name
1112           INTEGER resultlen
1113           INTEGER ierror
1114      END SUBROUTINE MPI_GET_PROCESSOR_NAME
1115
1116      SUBROUTINE MPI_TOPO_TEST(comm,status,ierror)
1117           INTEGER comm
1118           INTEGER status
1119           INTEGER ierror
1120      END SUBROUTINE MPI_TOPO_TEST
1121
1122      SUBROUTINE MPI_OP_FREE(op,ierror)
1123           INTEGER op
1124           INTEGER ierror
1125      END SUBROUTINE MPI_OP_FREE
1126
1127      SUBROUTINE MPI_COMM_SIZE(comm,size,ierror)
1128           INTEGER comm
1129           INTEGER size
1130           INTEGER ierror
1131      END SUBROUTINE MPI_COMM_SIZE
1132
1133      SUBROUTINE MPI_WIN_UNLOCK(rank,win,ierror)
1134           INTEGER rank
1135           INTEGER win
1136           INTEGER ierror
1137      END SUBROUTINE MPI_WIN_UNLOCK
1138
1139      SUBROUTINE MPI_ERRHANDLER_FREE(errhandler,ierror)
1140           INTEGER errhandler
1141           INTEGER ierror
1142      END SUBROUTINE MPI_ERRHANDLER_FREE
1143
1144      SUBROUTINE MPI_WIN_UNLOCK_ALL(win,ierror)
1145           INTEGER win
1146           INTEGER ierror
1147      END SUBROUTINE MPI_WIN_UNLOCK_ALL
1148
1149      SUBROUTINE MPI_TYPE_HINDEXED(count,array_of_blocklengths,&
1150                  array_of_displacements,oldtype,newtype,ierror)
1151           INTEGER count
1152           INTEGER array_of_blocklengths(*)
1153           INTEGER array_of_displacements(*)
1154           INTEGER oldtype
1155           INTEGER newtype
1156           INTEGER ierror
1157      END SUBROUTINE MPI_TYPE_HINDEXED
1158
1159      SUBROUTINE MPI_MPROBE(source,tag,comm,message,status,ierror)
1160           USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
1161           INTEGER source
1162           INTEGER tag
1163           INTEGER comm
1164           INTEGER message
1165           INTEGER status(MPI_STATUS_SIZE)
1166           INTEGER ierror
1167      END SUBROUTINE MPI_MPROBE
1168
1169      SUBROUTINE MPI_WIN_SET_NAME(win,win_name,ierror)
1170           INTEGER win
1171           CHARACTER (LEN=*) win_name
1172           INTEGER ierror
1173      END SUBROUTINE MPI_WIN_SET_NAME
1174
1175      SUBROUTINE MPI_TYPE_SIZE(datatype,size,ierror)
1176           INTEGER datatype
1177           INTEGER size
1178           INTEGER ierror
1179      END SUBROUTINE MPI_TYPE_SIZE
1180
1181      SUBROUTINE MPI_WIN_START(group,assert,win,ierror)
1182           INTEGER group
1183           INTEGER assert
1184           INTEGER win
1185           INTEGER ierror
1186      END SUBROUTINE MPI_WIN_START
1187
1188      SUBROUTINE MPI_WIN_CREATE_ERRHANDLER(win_errhandler_fn,errhandler,ierror)
1189           INTERFACE
1190       SUBROUTINE win_errhandler_fn(vv0,vv1)
1191       INTEGER vv0,vv1
1192       END SUBROUTINE
1193       END INTERFACE
1194           INTEGER errhandler
1195           INTEGER ierror
1196      END SUBROUTINE MPI_WIN_CREATE_ERRHANDLER
1197
1198      SUBROUTINE MPI_WIN_FENCE(assert,win,ierror)
1199           INTEGER assert
1200           INTEGER win
1201           INTEGER ierror
1202      END SUBROUTINE MPI_WIN_FENCE
1203
1204      SUBROUTINE MPI_TYPE_GET_ENVELOPE(datatype,num_integers,num_addresses,&
1205                  num_datatypes,combiner,ierror)
1206           INTEGER datatype
1207           INTEGER num_integers
1208           INTEGER num_addresses
1209           INTEGER num_datatypes
1210           INTEGER combiner
1211           INTEGER ierror
1212      END SUBROUTINE MPI_TYPE_GET_ENVELOPE
1213
1214      SUBROUTINE MPI_GREQUEST_COMPLETE(request,ierror)
1215           INTEGER request
1216           INTEGER ierror
1217      END SUBROUTINE MPI_GREQUEST_COMPLETE
1218
1219      SUBROUTINE MPI_GET_VERSION(version,subversion,ierror)
1220           INTEGER version
1221           INTEGER subversion
1222           INTEGER ierror
1223      END SUBROUTINE MPI_GET_VERSION
1224
1225      SUBROUTINE MPI_TYPE_HVECTOR(count,blocklength,stride,oldtype,newtype,&
1226                  ierror)
1227           INTEGER count
1228           INTEGER blocklength
1229           INTEGER stride
1230           INTEGER oldtype
1231           INTEGER newtype
1232           INTEGER ierror
1233      END SUBROUTINE MPI_TYPE_HVECTOR
1234
1235      SUBROUTINE MPI_WIN_SYNC(win,ierror)
1236           INTEGER win
1237           INTEGER ierror
1238      END SUBROUTINE MPI_WIN_SYNC
1239
1240      SUBROUTINE MPI_GET_ELEMENTS_X(status,datatype,count,ierror)
1241           USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND, MPI_STATUS_SIZE
1242           INTEGER status(MPI_STATUS_SIZE)
1243           INTEGER datatype
1244           INTEGER(KIND=MPI_COUNT_KIND) count
1245           INTEGER ierror
1246      END SUBROUTINE MPI_GET_ELEMENTS_X
1247
1248      SUBROUTINE MPI_COMM_CALL_ERRHANDLER(comm,errorcode,ierror)
1249           INTEGER comm
1250           INTEGER errorcode
1251           INTEGER ierror
1252      END SUBROUTINE MPI_COMM_CALL_ERRHANDLER
1253
1254      SUBROUTINE MPI_COMM_TEST_INTER(comm,flag,ierror)
1255           INTEGER comm
1256           LOGICAL flag
1257           INTEGER ierror
1258      END SUBROUTINE MPI_COMM_TEST_INTER
1259
1260      SUBROUTINE MPI_COMM_JOIN(fd,intercomm,ierror)
1261           INTEGER fd
1262           INTEGER intercomm
1263           INTEGER ierror
1264      END SUBROUTINE MPI_COMM_JOIN
1265
1266      SUBROUTINE MPI_CLOSE_PORT(port_name,ierror)
1267           CHARACTER (LEN=*) port_name
1268           INTEGER ierror
1269      END SUBROUTINE MPI_CLOSE_PORT
1270
1271      SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX(precision,range,newtype,ierror)
1272           INTEGER precision
1273           INTEGER range
1274           INTEGER newtype
1275           INTEGER ierror
1276      END SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX
1277
1278      SUBROUTINE MPI_GROUP_RANK(group,rank,ierror)
1279           INTEGER group
1280           INTEGER rank
1281           INTEGER ierror
1282      END SUBROUTINE MPI_GROUP_RANK
1283
1284
1285        SUBROUTINE MPI_INIT(ierror)
1286        INTEGER ierror
1287        END SUBROUTINE MPI_INIT
1288
1289        SUBROUTINE MPI_INIT_THREAD(v0,v1,ierror)
1290        INTEGER v0, v1, ierror
1291        END SUBROUTINE MPI_INIT_THREAD
1292
1293        FUNCTION MPI_WTIME()
1294            @WTIME_DOUBLE_TYPE@ MPI_WTIME
1295        END FUNCTION MPI_WTIME
1296!
1297        FUNCTION MPI_WTICK()
1298            @WTIME_DOUBLE_TYPE@ MPI_WTICK
1299        END FUNCTION MPI_WTICK
1300
1301        FUNCTION MPI_AINT_ADD(base, disp)
1302            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1303            INTEGER(KIND=MPI_ADDRESS_KIND) MPI_AINT_ADD
1304            INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: base, disp
1305        END FUNCTION MPI_AINT_ADD
1306
1307        FUNCTION MPI_AINT_DIFF(addr1, addr2)
1308            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1309            INTEGER(KIND=MPI_ADDRESS_KIND) MPI_AINT_DIFF
1310            INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: addr1, addr2
1311        END FUNCTION MPI_AINT_DIFF
1312
1313! style:PMPIuse:PMPI_WTIME:3 sig:0
1314        FUNCTION PMPI_WTIME()
1315            @WTIME_DOUBLE_TYPE@ PMPI_WTIME
1316        END FUNCTION PMPI_WTIME
1317!
1318! style:PMPIuse:PMPI_WTICK:3 sig:0
1319        FUNCTION PMPI_WTICK()
1320            @WTIME_DOUBLE_TYPE@ PMPI_WTICK
1321        END FUNCTION PMPI_WTICK
1322
1323        SUBROUTINE MPI_NULL_DELETE_FN(COMM, KEYVAL, ATTRIBUTE_VAL,&
1324          EXTRA_STATE, IERROR)
1325            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1326            INTEGER COMM, KEYVAL, IERROR
1327            INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL, EXTRA_STATE
1328        END SUBROUTINE MPI_NULL_DELETE_FN
1329
1330        SUBROUTINE MPI_DUP_FN(OLDCOMM, KEYVAL, EXTRA_STATE,&
1331          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1332            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1333            INTEGER OLDCOMM, KEYVAL, IERROR
1334            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1335            LOGICAL FLAG
1336        END SUBROUTINE MPI_DUP_FN
1337
1338        SUBROUTINE MPI_NULL_COPY_FN(OLDCOMM, KEYVAL, EXTRA_STATE,&
1339          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1340            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1341            INTEGER OLDCOMM, KEYVAL, IERROR
1342            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1343            LOGICAL FLAG
1344        END SUBROUTINE MPI_NULL_COPY_FN
1345
1346        SUBROUTINE MPI_COMM_NULL_DELETE_FN(COMM, COMM_KEYVAL, ATTRIBUTE_VAL,&
1347          EXTRA_STATE, IERROR)
1348            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1349            INTEGER COMM, COMM_KEYVAL, IERROR
1350            INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL, EXTRA_STATE
1351        END SUBROUTINE MPI_COMM_NULL_DELETE_FN
1352
1353        SUBROUTINE MPI_COMM_DUP_FN(OLDCOMM, COMM_KEYVAL, EXTRA_STATE,&
1354          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1355            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1356            INTEGER OLDCOMM, COMM_KEYVAL, IERROR
1357            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1358            LOGICAL FLAG
1359        END SUBROUTINE MPI_COMM_DUP_FN
1360
1361        SUBROUTINE MPI_COMM_NULL_COPY_FN(OLDCOMM, COMM_KEYVAL, EXTRA_STATE,&
1362          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1363            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1364            INTEGER OLDCOMM, COMM_KEYVAL, IERROR
1365            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1366            LOGICAL FLAG
1367        END SUBROUTINE MPI_COMM_NULL_COPY_FN
1368
1369        SUBROUTINE MPI_TYPE_NULL_DELETE_FN(DATATYPE, TYPE_KEYVAL, ATTRIBUTE_VAL,&
1370          EXTRA_STATE, IERROR)
1371            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1372            INTEGER DATATYPE, TYPE_KEYVAL, IERROR
1373            INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL, EXTRA_STATE
1374        END SUBROUTINE MPI_TYPE_NULL_DELETE_FN
1375
1376        SUBROUTINE MPI_TYPE_DUP_FN(OLDTYPE, TYPE_KEYVAL, EXTRA_STATE,&
1377          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1378            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1379            INTEGER OLDTYPE, TYPE_KEYVAL, IERROR
1380            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1381            LOGICAL FLAG
1382        END SUBROUTINE MPI_TYPE_DUP_FN
1383
1384        SUBROUTINE MPI_TYPE_NULL_COPY_FN(OLDTYPE, TYPE_KEYVAL, EXTRA_STATE,&
1385          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1386            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1387            INTEGER OLDTYPE, TYPE_KEYVAL, IERROR
1388            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1389            LOGICAL FLAG
1390        END SUBROUTINE MPI_TYPE_NULL_COPY_FN
1391
1392        SUBROUTINE MPI_WIN_NULL_DELETE_FN(WIN, WIN_KEYVAL, ATTRIBUTE_VAL,&
1393          EXTRA_STATE, IERROR)
1394            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1395            INTEGER WIN, WIN_KEYVAL, IERROR
1396            INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL, EXTRA_STATE
1397        END SUBROUTINE MPI_WIN_NULL_DELETE_FN
1398
1399        SUBROUTINE MPI_WIN_DUP_FN(OLDWIN, WIN_KEYVAL, EXTRA_STATE,&
1400          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1401            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1402            INTEGER OLDWIN, WIN_KEYVAL, IERROR
1403            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1404            LOGICAL FLAG
1405        END SUBROUTINE MPI_WIN_DUP_FN
1406
1407        SUBROUTINE MPI_WIN_NULL_COPY_FN(OLDWIN, WIN_KEYVAL, EXTRA_STATE,&
1408          ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
1409            USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
1410            INTEGER OLDWIN, WIN_KEYVAL, IERROR
1411            INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT
1412            LOGICAL FLAG
1413        END SUBROUTINE MPI_WIN_NULL_COPY_FN
1414       END INTERFACE
1415       END MODULE MPI_BASE
1416