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