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