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