1 ! -*- f90 -*- 2 ! 3 ! Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. 4 ! Copyright (c) 2009-2012 Los Alamos National Security, LLC. 5 ! All rights reserved. 6 ! Copyright (c) 2012 The University of Tennessee and The University 7 ! of Tennessee Research Foundation. All rights 8 ! reserved. 9 ! Copyright (c) 2012 Inria. All rights reserved. 10 ! Copyright (c) 2015-2018 Research Organization for Information Science 11 ! and Technology (RIST). All rights reserved. 12 ! $COPYRIGHT$ 13 ! 14 ! This file provides the interface specifications for the MPI Fortran 15 ! API bindings. It effectively maps between public names ("MPI_Init") 16 ! and the back-end implementation subroutine name (e.g., "pompi_init_f"). 17 18 #include "ompi/mpi/fortran/configure-fortran-output.h" 19 20 ! 21 ! Note that interfaces for the following subroutines are not included 22 ! in this file because they contain LOGICAL dummy parameters, and 23 ! therefore cannot be BIND(C). Instead, the individual wrapper 24 ! implementation files (e.g., iprobe_f08.F90) use the "mpi" module to 25 ! get a interface for the subroutine and call the PMPI_* name of the 26 ! function, which then invokes the corresponding function in the 27 ! ompi/mpi/fortran/mpif-h directory. 28 ! 29 ! MPI_Cart_create 30 ! MPI_Cart_get 31 ! MPI_Cart_map 32 ! MPI_Cart_sub 33 ! MPI_Comm_get_attr 34 ! MPI_Comm_test_inter 35 ! MPI_Dist_graph_create 36 ! MPI_Dist_graph_create_adjacent 37 ! MPI_Dist_graph_neighbors_count 38 ! MPI_File_get_atomicity 39 ! MPI_File_set_atomicity 40 ! MPI_Finalized 41 ! MPI_Graph_create 42 ! MPI_Improbe 43 ! MPI_Info_get 44 ! MPI_Info_get_valuelen 45 ! MPI_Initialized 46 ! MPI_Intercomm_merge 47 ! MPI_Iprobe 48 ! MPI_Is_thread_main 49 ! MPI_Op_commutative 50 ! MPI_Op_create 51 ! MPI_Request_get_status 52 ! MPI_Status_set_cancelled 53 ! MPI_Test 54 ! MPI_Testall 55 ! MPI_Testany 56 ! MPI_Testsome 57 ! MPI_Test_cancelled 58 ! MPI_Type_get_attr 59 ! MPI_Win_get_attr 60 ! MPI_Win_test 61 ! 62 63 interface 64 65 subroutine pompi_bsend_f(buf,count,datatype,dest,tag,comm,ierror) & 66 BIND(C, name="pompi_bsend_f") 67 implicit none 68 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf 69 INTEGER, INTENT(IN) :: count, dest, tag 70 INTEGER, INTENT(IN) :: datatype 71 INTEGER, INTENT(IN) :: comm 72 INTEGER, INTENT(OUT) :: ierror 73 end subroutine pompi_bsend_f 74 75 subroutine pompi_bsend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & 76 BIND(C, name="pompi_bsend_init_f") 77 implicit none 78 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 79 INTEGER, INTENT(IN) :: count, dest, tag 80 INTEGER, INTENT(IN) :: datatype 81 INTEGER, INTENT(IN) :: comm 82 INTEGER, INTENT(OUT) :: request 83 INTEGER, INTENT(OUT) :: ierror 84 end subroutine pompi_bsend_init_f 85 86 subroutine pompi_buffer_attach_f(buffer,size,ierror) & 87 BIND(C, name="pompi_buffer_attach_f") 88 implicit none 89 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buffer 90 INTEGER, INTENT(IN) :: size 91 INTEGER, INTENT(OUT) :: ierror 92 end subroutine pompi_buffer_attach_f 93 94 ! Note that we have an F08-specific C implementation function for 95 ! PMPI_BUFFER_DETACH (i.e., it is different than the mpif.h / mpi 96 ! module C implementation function). 97 ! 98 ! Note, too, the "p" version of the C implementation 99 ! function is a 1-line routine. It calls 100 ! ompi_buffer_detach_f08 C function. 101 subroutine pompi_buffer_detach_f(buffer_addr,size,ierror) & 102 BIND(C, name="pompi_buffer_detach_f08") 103 implicit none 104 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buffer_addr 105 INTEGER, INTENT(OUT) :: size 106 INTEGER, INTENT(OUT) :: ierror 107 end subroutine pompi_buffer_detach_f 108 109 subroutine pompi_cancel_f(request,ierror) & 110 BIND(C, name="pompi_cancel_f") 111 implicit none 112 INTEGER, INTENT(IN) :: request 113 INTEGER, INTENT(OUT) :: ierror 114 end subroutine pompi_cancel_f 115 116 subroutine pompi_get_count_f(status,datatype,count,ierror) & 117 BIND(C, name="pompi_get_count_f") 118 use :: mpi_f08_types, only : MPI_Status 119 implicit none 120 TYPE(MPI_Status), INTENT(IN) :: status 121 INTEGER, INTENT(IN) :: datatype 122 INTEGER, INTENT(OUT) :: count 123 INTEGER, INTENT(OUT) :: ierror 124 end subroutine pompi_get_count_f 125 126 subroutine pompi_ibsend_f(buf,count,datatype,dest,tag,comm,request,ierror) & 127 BIND(C, name="pompi_ibsend_f") 128 implicit none 129 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 130 INTEGER, INTENT(IN) :: count, dest, tag 131 INTEGER, INTENT(IN) :: datatype 132 INTEGER, INTENT(IN) :: comm 133 INTEGER, INTENT(OUT) :: request 134 INTEGER, INTENT(OUT) :: ierror 135 end subroutine pompi_ibsend_f 136 137 subroutine pompi_irecv_f(buf,count,datatype,source,tag,comm,request,ierror) & 138 BIND(C, name="pompi_irecv_f") 139 implicit none 140 OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf 141 INTEGER, INTENT(IN) :: count, source, tag 142 INTEGER, INTENT(IN) :: datatype 143 INTEGER, INTENT(IN) :: comm 144 INTEGER, INTENT(OUT) :: request 145 INTEGER, INTENT(OUT) :: ierror 146 end subroutine pompi_irecv_f 147 148 subroutine pompi_irsend_f(buf,count,datatype,dest,tag,comm,request,ierror) & 149 BIND(C, name="pompi_irsend_f") 150 implicit none 151 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 152 INTEGER, INTENT(IN) :: count, dest, tag 153 INTEGER, INTENT(IN) :: datatype 154 INTEGER, INTENT(IN) :: comm 155 INTEGER, INTENT(OUT) :: request 156 INTEGER, INTENT(OUT) :: ierror 157 end subroutine pompi_irsend_f 158 159 subroutine pompi_isend_f(buf,count,datatype,dest,tag,comm,request,ierror) & 160 BIND(C, name="pompi_isend_f") 161 implicit none 162 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 163 INTEGER, INTENT(IN) :: count, dest, tag 164 INTEGER, INTENT(IN) :: datatype 165 INTEGER, INTENT(IN) :: comm 166 INTEGER, INTENT(OUT) :: request 167 INTEGER, INTENT(OUT) :: ierror 168 end subroutine pompi_isend_f 169 170 subroutine pompi_issend_f(buf,count,datatype,dest,tag,comm,request,ierror) & 171 BIND(C, name="pompi_issend_f") 172 implicit none 173 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 174 INTEGER, INTENT(IN) :: count, dest, tag 175 INTEGER, INTENT(IN) :: datatype 176 INTEGER, INTENT(IN) :: comm 177 INTEGER, INTENT(OUT) :: request 178 INTEGER, INTENT(OUT) :: ierror 179 end subroutine pompi_issend_f 180 181 subroutine pompi_probe_f(source,tag,comm,status,ierror) & 182 BIND(C, name="pompi_probe_f") 183 use :: mpi_f08_types, only : MPI_Status 184 implicit none 185 INTEGER, INTENT(IN) :: source, tag 186 INTEGER, INTENT(IN) :: comm 187 TYPE(MPI_Status), INTENT(OUT) :: status 188 INTEGER, INTENT(OUT) :: ierror 189 end subroutine pompi_probe_f 190 191 subroutine pompi_recv_f(buf,count,datatype,source,tag,comm,status,ierror) & 192 BIND(C, name="pompi_recv_f") 193 use :: mpi_f08_types, only : MPI_Status 194 implicit none 195 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 196 INTEGER, INTENT(IN) :: count, source, tag 197 INTEGER, INTENT(IN) :: datatype 198 INTEGER, INTENT(IN) :: comm 199 TYPE(MPI_Status), INTENT(OUT) :: status 200 INTEGER, INTENT(OUT) :: ierror 201 end subroutine pompi_recv_f 202 203 subroutine pompi_recv_init_f(buf,count,datatype,source,tag,comm,request,ierror) & 204 BIND(C, name="pompi_recv_init_f") 205 implicit none 206 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 207 INTEGER, INTENT(IN) :: count, source, tag 208 INTEGER, INTENT(IN) :: datatype 209 INTEGER, INTENT(IN) :: comm 210 INTEGER, INTENT(OUT) :: request 211 INTEGER, INTENT(OUT) :: ierror 212 end subroutine pompi_recv_init_f 213 214 subroutine pompi_request_free_f(request,ierror) & 215 BIND(C, name="pompi_request_free_f") 216 implicit none 217 INTEGER, INTENT(INOUT) :: request 218 INTEGER, INTENT(OUT) :: ierror 219 end subroutine pompi_request_free_f 220 221 subroutine pompi_rsend_f(buf,count,datatype,dest,tag,comm,ierror) & 222 BIND(C, name="pompi_rsend_f") 223 implicit none 224 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 225 INTEGER, INTENT(IN) :: count, dest, tag 226 INTEGER, INTENT(IN) :: datatype 227 INTEGER, INTENT(IN) :: comm 228 INTEGER, INTENT(OUT) :: ierror 229 end subroutine pompi_rsend_f 230 231 subroutine pompi_rsend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & 232 BIND(C, name="pompi_rsend_init_f") 233 implicit none 234 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 235 INTEGER, INTENT(IN) :: count, dest, tag 236 INTEGER, INTENT(IN) :: datatype 237 INTEGER, INTENT(IN) :: comm 238 INTEGER, INTENT(OUT) :: request 239 INTEGER, INTENT(OUT) :: ierror 240 end subroutine pompi_rsend_init_f 241 242 subroutine pompi_send_f(buf,count,datatype,dest,tag,comm,ierror) & 243 BIND(C, name="pompi_send_f") 244 implicit none 245 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 246 INTEGER, INTENT(IN) :: count, dest, tag 247 INTEGER, INTENT(IN) :: datatype 248 INTEGER, INTENT(IN) :: comm 249 INTEGER, INTENT(OUT) :: ierror 250 end subroutine pompi_send_f 251 252 subroutine pompi_sendrecv_f(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & 253 recvcount,recvtype,source,recvtag,comm,status,ierror) & 254 BIND(C, name="pompi_sendrecv_f") 255 use :: mpi_f08_types, only : MPI_Status 256 implicit none 257 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 258 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 259 INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag 260 INTEGER, INTENT(IN) :: sendtype 261 INTEGER, INTENT(IN) :: recvtype 262 INTEGER, INTENT(IN) :: comm 263 TYPE(MPI_Status), INTENT(OUT) :: status 264 INTEGER, INTENT(OUT) :: ierror 265 end subroutine pompi_sendrecv_f 266 267 subroutine pompi_sendrecv_replace_f(buf,count,datatype,dest,sendtag,source, & 268 recvtag,comm,status,ierror) & 269 BIND(C, name="pompi_sendrecv_replace_f") 270 use :: mpi_f08_types, only : MPI_Status 271 implicit none 272 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 273 INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag 274 INTEGER, INTENT(IN) :: datatype 275 INTEGER, INTENT(IN) :: comm 276 TYPE(MPI_Status), INTENT(OUT) :: status 277 INTEGER, INTENT(OUT) :: ierror 278 end subroutine pompi_sendrecv_replace_f 279 280 subroutine pompi_send_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & 281 BIND(C, name="pompi_send_init_f") 282 implicit none 283 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 284 INTEGER, INTENT(IN) :: count, dest, tag 285 INTEGER, INTENT(IN) :: datatype 286 INTEGER, INTENT(IN) :: comm 287 INTEGER, INTENT(OUT) :: request 288 INTEGER, INTENT(OUT) :: ierror 289 end subroutine pompi_send_init_f 290 291 subroutine pompi_ssend_f(buf,count,datatype,dest,tag,comm,ierror) & 292 BIND(C, name="pompi_ssend_f") 293 implicit none 294 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 295 INTEGER, INTENT(IN) :: count, dest, tag 296 INTEGER, INTENT(IN) :: datatype 297 INTEGER, INTENT(IN) :: comm 298 INTEGER, INTENT(OUT) :: ierror 299 end subroutine pompi_ssend_f 300 301 subroutine pompi_ssend_init_f(buf,count,datatype,dest,tag,comm,request,ierror) & 302 BIND(C, name="pompi_ssend_init_f") 303 implicit none 304 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 305 INTEGER, INTENT(IN) :: count, dest, tag 306 INTEGER, INTENT(IN) :: datatype 307 INTEGER, INTENT(IN) :: comm 308 INTEGER, INTENT(OUT) :: request 309 INTEGER, INTENT(OUT) :: ierror 310 end subroutine pompi_ssend_init_f 311 312 subroutine pompi_start_f(request,ierror) & 313 BIND(C, name="pompi_start_f") 314 implicit none 315 INTEGER, INTENT(INOUT) :: request 316 INTEGER, INTENT(OUT) :: ierror 317 end subroutine pompi_start_f 318 319 subroutine pompi_startall_f(count,array_of_requests,ierror) & 320 BIND(C, name="pompi_startall_f") 321 implicit none 322 INTEGER, INTENT(IN) :: count 323 INTEGER, INTENT(INOUT) :: array_of_requests(count) 324 INTEGER, INTENT(OUT) :: ierror 325 end subroutine pompi_startall_f 326 327 subroutine pompi_testsome_f(incount,array_of_requests,outcount, & 328 array_of_indices,array_of_statuses,ierror) & 329 BIND(C, name="pompi_testsome_f") 330 use :: mpi_f08_types, only : MPI_Status 331 implicit none 332 INTEGER, INTENT(IN) :: incount 333 INTEGER, INTENT(INOUT) :: array_of_requests(incount) 334 INTEGER, INTENT(OUT) :: outcount 335 INTEGER, INTENT(OUT) :: array_of_indices(*) 336 TYPE(MPI_Status), INTENT(OUT) :: array_of_statuses(*) 337 INTEGER, INTENT(OUT) :: ierror 338 end subroutine pompi_testsome_f 339 340 subroutine pompi_wait_f(request,status,ierror) & 341 BIND(C, name="pompi_wait_f") 342 use :: mpi_f08_types, only : MPI_Status 343 implicit none 344 INTEGER, INTENT(INOUT) :: request 345 TYPE(MPI_Status), INTENT(OUT) :: status 346 INTEGER, INTENT(OUT) :: ierror 347 end subroutine pompi_wait_f 348 349 subroutine pompi_waitall_f(count,array_of_requests,array_of_statuses,ierror) & 350 BIND(C, name="pompi_waitall_f") 351 use :: mpi_f08_types, only : MPI_Status 352 implicit none 353 INTEGER, INTENT(IN) :: count 354 INTEGER, INTENT(INOUT) :: array_of_requests(count) 355 TYPE(MPI_Status), INTENT(OUT) :: array_of_statuses(count) 356 INTEGER, INTENT(OUT) :: ierror 357 end subroutine pompi_waitall_f 358 359 subroutine pompi_waitany_f(count,array_of_requests,index,status,ierror) & 360 BIND(C, name="pompi_waitany_f") 361 use :: mpi_f08_types, only : MPI_Status 362 implicit none 363 INTEGER, INTENT(IN) :: count 364 INTEGER, INTENT(INOUT) :: array_of_requests(count) 365 INTEGER, INTENT(OUT) :: index 366 TYPE(MPI_Status), INTENT(OUT) :: status 367 INTEGER, INTENT(OUT) :: ierror 368 end subroutine pompi_waitany_f 369 370 subroutine pompi_waitsome_f(incount,array_of_requests,outcount, & 371 array_of_indices,array_of_statuses,ierror) & 372 BIND(C, name="pompi_waitsome_f") 373 use :: mpi_f08_types, only : MPI_Status 374 implicit none 375 INTEGER, INTENT(IN) :: incount 376 INTEGER, INTENT(INOUT) :: array_of_requests(incount) 377 INTEGER, INTENT(OUT) :: outcount 378 INTEGER, INTENT(OUT) :: array_of_indices(*) 379 TYPE(MPI_Status), INTENT(OUT) :: array_of_statuses(*) 380 INTEGER, INTENT(OUT) :: ierror 381 end subroutine pompi_waitsome_f 382 383 subroutine pompi_get_address_f(location,address,ierror) & 384 BIND(C, name="pompi_get_address_f") 385 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 386 implicit none 387 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: location 388 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address 389 INTEGER, INTENT(OUT) :: ierror 390 end subroutine pompi_get_address_f 391 392 subroutine pompi_get_elements_f(status,datatype,count,ierror) & 393 BIND(C, name="pompi_get_elements_f") 394 use :: mpi_f08_types, only : MPI_Status 395 implicit none 396 TYPE(MPI_Status), INTENT(IN) :: status 397 INTEGER, INTENT(IN) :: datatype 398 INTEGER, INTENT(OUT) :: count 399 INTEGER, INTENT(OUT) :: ierror 400 end subroutine pompi_get_elements_f 401 402 subroutine pompi_pack_f(inbuf,incount,datatype,outbuf,outsize, & 403 position,comm,ierror) & 404 BIND(C, name="pompi_pack_f") 405 implicit none 406 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf, outbuf 407 INTEGER, INTENT(IN) :: incount, outsize 408 INTEGER, INTENT(IN) :: datatype 409 INTEGER, INTENT(INOUT) :: position 410 INTEGER, INTENT(IN) :: comm 411 INTEGER, INTENT(OUT) :: ierror 412 end subroutine pompi_pack_f 413 414 subroutine pompi_pack_external_f(datarep,inbuf,incount,datatype, & 415 outbuf,outsize,position,ierror,datarep_len) & 416 BIND(C, name="pompi_pack_external_f") 417 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 418 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 419 implicit none 420 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep 421 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf, outbuf 422 INTEGER, INTENT(IN) :: incount 423 INTEGER, INTENT(IN) :: datatype 424 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize 425 INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position 426 INTEGER, INTENT(OUT) :: ierror 427 INTEGER, VALUE, INTENT(IN) :: datarep_len 428 end subroutine pompi_pack_external_f 429 430 subroutine pompi_pack_external_size_f(datarep,incount,datatype,size,ierror,datarep_len) & 431 BIND(C, name="pompi_pack_external_size_f") 432 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 433 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 434 implicit none 435 INTEGER, INTENT(IN) :: datatype 436 INTEGER, INTENT(IN) :: incount 437 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep 438 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: size 439 INTEGER, INTENT(OUT) :: ierror 440 INTEGER, VALUE, INTENT(IN) :: datarep_len 441 end subroutine pompi_pack_external_size_f 442 443 subroutine pompi_pack_size_f(incount,datatype,comm,size,ierror) & 444 BIND(C, name="pompi_pack_size_f") 445 implicit none 446 INTEGER, INTENT(IN) :: incount 447 INTEGER, INTENT(IN) :: datatype 448 INTEGER, INTENT(IN) :: comm 449 INTEGER, INTENT(OUT) :: size 450 INTEGER, INTENT(OUT) :: ierror 451 end subroutine pompi_pack_size_f 452 453 subroutine pompi_type_commit_f(datatype,ierror) & 454 BIND(C, name="pompi_type_commit_f") 455 implicit none 456 INTEGER, INTENT(INOUT) :: datatype 457 INTEGER, INTENT(OUT) :: ierror 458 end subroutine pompi_type_commit_f 459 460 subroutine pompi_type_contiguous_f(count,oldtype,newtype,ierror) & 461 BIND(C, name="pompi_type_contiguous_f") 462 implicit none 463 INTEGER, INTENT(IN) :: count 464 INTEGER, INTENT(IN) :: oldtype 465 INTEGER, INTENT(OUT) :: newtype 466 INTEGER, INTENT(OUT) :: ierror 467 end subroutine pompi_type_contiguous_f 468 469 subroutine pompi_type_create_darray_f(size,rank,ndims,& 470 array_of_gsizes,array_of_distribs,array_of_dargs,array_of_psizes,& 471 order,oldtype,newtype,ierror) & 472 BIND(C, name="pompi_type_create_darray_f") 473 implicit none 474 INTEGER, INTENT(IN) :: size, rank, ndims, order 475 INTEGER, INTENT(IN) :: array_of_gsizes(ndims), array_of_distribs(ndims) 476 INTEGER, INTENT(IN) :: array_of_dargs(ndims), array_of_psizes(ndims) 477 INTEGER, INTENT(IN) :: oldtype 478 INTEGER, INTENT(OUT) :: newtype 479 INTEGER, INTENT(OUT) :: ierror 480 end subroutine pompi_type_create_darray_f 481 482 subroutine pompi_type_create_hindexed_f(count,array_of_blocklengths, & 483 array_of_displacements,oldtype,newtype,ierror) & 484 BIND(C, name="pompi_type_create_hindexed_f") 485 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 486 implicit none 487 INTEGER, INTENT(IN) :: count 488 INTEGER, INTENT(IN) :: array_of_blocklengths(count) 489 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count) 490 INTEGER, INTENT(IN) :: oldtype 491 INTEGER, INTENT(OUT) :: newtype 492 INTEGER, INTENT(OUT) :: ierror 493 end subroutine pompi_type_create_hindexed_f 494 495 subroutine pompi_type_create_hvector_f(count,blocklength,stride,oldtype,newtype,ierror) & 496 BIND(C, name="pompi_type_create_hvector_f") 497 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 498 implicit none 499 INTEGER, INTENT(IN) :: count, blocklength 500 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: stride 501 INTEGER, INTENT(IN) :: oldtype 502 INTEGER, INTENT(OUT) :: newtype 503 INTEGER, INTENT(OUT) :: ierror 504 end subroutine pompi_type_create_hvector_f 505 506 subroutine pompi_type_create_indexed_block_f(count,blocklength, & 507 array_of_displacements,oldtype,newtype,ierror) & 508 BIND(C, name="pompi_type_create_indexed_block_f") 509 implicit none 510 INTEGER, INTENT(IN) :: count, blocklength 511 INTEGER, INTENT(IN) :: array_of_displacements(count) 512 INTEGER, INTENT(IN) :: oldtype 513 INTEGER, INTENT(OUT) :: newtype 514 INTEGER, INTENT(OUT) :: ierror 515 end subroutine pompi_type_create_indexed_block_f 516 517 subroutine pompi_type_create_hindexed_block_f(count,blocklength, & 518 array_of_displacements,oldtype,newtype,ierror) & 519 BIND(C, name="pompi_type_create_hindexed_block_f") 520 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 521 implicit none 522 INTEGER, INTENT(IN) :: count, blocklength 523 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count) 524 INTEGER, INTENT(IN) :: oldtype 525 INTEGER, INTENT(OUT) :: newtype 526 INTEGER, INTENT(OUT) :: ierror 527 end subroutine pompi_type_create_hindexed_block_f 528 529 subroutine pompi_type_create_resized_f(oldtype,lb,extent,newtype,ierror) & 530 BIND(C, name="pompi_type_create_resized_f") 531 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 532 implicit none 533 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: lb, extent 534 INTEGER, INTENT(IN) :: oldtype 535 INTEGER, INTENT(OUT) :: newtype 536 INTEGER, INTENT(OUT) :: ierror 537 end subroutine pompi_type_create_resized_f 538 539 subroutine pompi_type_create_struct_f(count,array_of_blocklengths, & 540 array_of_displacements,array_of_types,newtype,ierror) & 541 BIND(C, name="pompi_type_create_struct_f") 542 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 543 implicit none 544 INTEGER, INTENT(IN) :: count 545 INTEGER, INTENT(IN) :: array_of_blocklengths(count) 546 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count) 547 INTEGER, INTENT(IN) :: array_of_types(count) 548 INTEGER, INTENT(OUT) :: newtype 549 INTEGER, INTENT(OUT) :: ierror 550 end subroutine pompi_type_create_struct_f 551 552 subroutine pompi_type_create_subarray_f(ndims,array_of_sizes, & 553 array_of_subsizes,array_of_starts,order,oldtype,newtype,ierror) & 554 BIND(C, name="pompi_type_create_subarray_f") 555 implicit none 556 INTEGER, INTENT(IN) :: ndims, order 557 INTEGER, INTENT(IN) :: array_of_sizes(*), array_of_subsizes(*), array_of_starts(*) 558 INTEGER, INTENT(IN) :: oldtype 559 INTEGER, INTENT(OUT) :: newtype 560 INTEGER, INTENT(OUT) :: ierror 561 end subroutine pompi_type_create_subarray_f 562 563 subroutine pompi_type_dup_f(oldtype,newtype,ierror) & 564 BIND(C, name="pompi_type_dup_f") 565 implicit none 566 INTEGER, INTENT(IN) :: oldtype 567 INTEGER, INTENT(OUT) :: newtype 568 INTEGER, INTENT(OUT) :: ierror 569 end subroutine pompi_type_dup_f 570 571 subroutine pompi_type_free_f(datatype,ierror) & 572 BIND(C, name="pompi_type_free_f") 573 implicit none 574 INTEGER, INTENT(INOUT) :: datatype 575 INTEGER, INTENT(OUT) :: ierror 576 end subroutine pompi_type_free_f 577 578 subroutine pompi_type_get_contents_f(datatype,max_integers,max_addresses, & 579 max_datatypes,array_of_integers,array_of_addresses, & 580 array_of_datatypes,ierror) & 581 BIND(C, name="pompi_type_get_contents_f") 582 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 583 implicit none 584 INTEGER, INTENT(IN) :: datatype 585 INTEGER, INTENT(IN) :: max_integers, max_addresses, max_datatypes 586 INTEGER, INTENT(OUT) :: array_of_integers(max_integers) 587 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: array_of_addresses(max_addresses) 588 INTEGER, INTENT(OUT) :: array_of_datatypes(max_datatypes) 589 INTEGER, INTENT(OUT) :: ierror 590 end subroutine pompi_type_get_contents_f 591 592 subroutine pompi_type_get_envelope_f(datatype,num_integers, & 593 num_addresses,num_datatypes,combiner,ierror) & 594 BIND(C, name="pompi_type_get_envelope_f") 595 implicit none 596 INTEGER, INTENT(IN) :: datatype 597 INTEGER, INTENT(OUT) :: num_integers, num_addresses, num_datatypes, combiner 598 INTEGER, INTENT(OUT) :: ierror 599 end subroutine pompi_type_get_envelope_f 600 601 subroutine pompi_type_get_extent_f(datatype,lb,extent,ierror) & 602 BIND(C, name="pompi_type_get_extent_f") 603 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 604 implicit none 605 INTEGER, INTENT(IN) :: datatype 606 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: lb, extent 607 INTEGER, INTENT(OUT) :: ierror 608 end subroutine pompi_type_get_extent_f 609 610 subroutine pompi_type_get_true_extent_f(datatype,true_lb,true_extent,ierror) & 611 BIND(C, name="pompi_type_get_true_extent_f") 612 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 613 implicit none 614 INTEGER, INTENT(IN) :: datatype 615 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: true_lb, true_extent 616 INTEGER, INTENT(OUT) :: ierror 617 end subroutine pompi_type_get_true_extent_f 618 619 subroutine pompi_type_indexed_f(count,array_of_blocklengths, & 620 array_of_displacements,oldtype,newtype,ierror) & 621 BIND(C, name="pompi_type_indexed_f") 622 implicit none 623 INTEGER, INTENT(IN) :: count 624 INTEGER, INTENT(IN) :: array_of_blocklengths(count), array_of_displacements(count) 625 INTEGER, INTENT(IN) :: oldtype 626 INTEGER, INTENT(OUT) :: newtype 627 INTEGER, INTENT(OUT) :: ierror 628 end subroutine pompi_type_indexed_f 629 630 subroutine pompi_type_size_f(datatype,size,ierror) & 631 BIND(C, name="pompi_type_size_f") 632 implicit none 633 INTEGER, INTENT(IN) :: datatype 634 INTEGER, INTENT(OUT) :: size 635 INTEGER, INTENT(OUT) :: ierror 636 end subroutine pompi_type_size_f 637 638 subroutine pompi_type_vector_f(count,blocklength,stride,oldtype,newtype,ierror) & 639 BIND(C, name="pompi_type_vector_f") 640 implicit none 641 INTEGER, INTENT(IN) :: count, blocklength, stride 642 INTEGER, INTENT(IN) :: oldtype 643 INTEGER, INTENT(OUT) :: newtype 644 INTEGER, INTENT(OUT) :: ierror 645 end subroutine pompi_type_vector_f 646 647 subroutine pompi_unpack_f(inbuf,insize,position,outbuf,outcount, & 648 datatype,comm,ierror) & 649 BIND(C, name="pompi_unpack_f") 650 implicit none 651 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf, outbuf 652 INTEGER, INTENT(IN) :: insize, outcount 653 INTEGER, INTENT(INOUT) :: position 654 INTEGER, INTENT(IN) :: datatype 655 INTEGER, INTENT(IN) :: comm 656 INTEGER, INTENT(OUT) :: ierror 657 end subroutine pompi_unpack_f 658 659 subroutine pompi_unpack_external_f(datarep,inbuf,insize,position, & 660 outbuf,outcount,datatype,ierror,datarep_len) & 661 BIND(C, name="pompi_unpack_external_f") 662 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 663 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 664 implicit none 665 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep 666 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf, outbuf 667 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize 668 INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position 669 INTEGER, INTENT(IN) :: outcount 670 INTEGER, INTENT(IN) :: datatype 671 INTEGER, INTENT(OUT) :: ierror 672 INTEGER, VALUE, INTENT(IN) :: datarep_len 673 end subroutine pompi_unpack_external_f 674 675 subroutine pompi_allgather_f(sendbuf,sendcount,sendtype,recvbuf, & 676 recvcount,recvtype,comm,ierror) & 677 BIND(C, name="pompi_allgather_f") 678 implicit none 679 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 680 INTEGER, INTENT(IN) :: sendcount, recvcount 681 INTEGER, INTENT(IN) :: sendtype 682 INTEGER, INTENT(IN) :: recvtype 683 INTEGER, INTENT(IN) :: comm 684 INTEGER, INTENT(OUT) :: ierror 685 end subroutine pompi_allgather_f 686 687 subroutine pompi_iallgather_f(sendbuf,sendcount,sendtype,recvbuf, & 688 recvcount,recvtype,comm,request,ierror) & 689 BIND(C, name="pompi_iallgather_f") 690 implicit none 691 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 692 INTEGER, INTENT(IN) :: sendcount, recvcount 693 INTEGER, INTENT(IN) :: sendtype 694 INTEGER, INTENT(IN) :: recvtype 695 INTEGER, INTENT(IN) :: comm 696 INTEGER, INTENT(OUT) :: request 697 INTEGER, INTENT(OUT) :: ierror 698 end subroutine pompi_iallgather_f 699 700 subroutine pompi_allgatherv_f(sendbuf,sendcount,sendtype,recvbuf, & 701 recvcounts,displs,recvtype,comm,ierror) & 702 BIND(C, name="pompi_allgatherv_f") 703 implicit none 704 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 705 INTEGER, INTENT(IN) :: sendcount 706 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 707 INTEGER, INTENT(IN) :: sendtype 708 INTEGER, INTENT(IN) :: recvtype 709 INTEGER, INTENT(IN) :: comm 710 INTEGER, INTENT(OUT) :: ierror 711 end subroutine pompi_allgatherv_f 712 713 subroutine pompi_iallgatherv_f(sendbuf,sendcount,sendtype,recvbuf, & 714 recvcounts,displs,recvtype,comm,request,ierror) & 715 BIND(C, name="pompi_iallgatherv_f") 716 implicit none 717 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 718 INTEGER, INTENT(IN) :: sendcount 719 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 720 INTEGER, INTENT(IN) :: sendtype 721 INTEGER, INTENT(IN) :: recvtype 722 INTEGER, INTENT(IN) :: comm 723 INTEGER, INTENT(OUT) :: request 724 INTEGER, INTENT(OUT) :: ierror 725 end subroutine pompi_iallgatherv_f 726 727 subroutine pompi_allreduce_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & 728 BIND(C, name="pompi_allreduce_f") 729 implicit none 730 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 731 INTEGER, INTENT(IN) :: count 732 INTEGER, INTENT(IN) :: datatype 733 INTEGER, INTENT(IN) :: op 734 INTEGER, INTENT(IN) :: comm 735 INTEGER, INTENT(OUT) :: ierror 736 end subroutine pompi_allreduce_f 737 738 subroutine pompi_iallreduce_f(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) & 739 BIND(C, name="pompi_iallreduce_f") 740 implicit none 741 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 742 INTEGER, INTENT(IN) :: count 743 INTEGER, INTENT(IN) :: datatype 744 INTEGER, INTENT(IN) :: op 745 INTEGER, INTENT(IN) :: comm 746 INTEGER, INTENT(OUT) :: request 747 INTEGER, INTENT(OUT) :: ierror 748 end subroutine pompi_iallreduce_f 749 750 subroutine pompi_alltoall_f(sendbuf,sendcount,sendtype,recvbuf, & 751 recvcount,recvtype,comm,ierror) & 752 BIND(C, name="pompi_alltoall_f") 753 implicit none 754 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 755 INTEGER, INTENT(IN) :: sendcount, recvcount 756 INTEGER, INTENT(IN) :: sendtype 757 INTEGER, INTENT(IN) :: recvtype 758 INTEGER, INTENT(IN) :: comm 759 INTEGER, INTENT(OUT) :: ierror 760 end subroutine pompi_alltoall_f 761 762 subroutine pompi_ialltoall_f(sendbuf,sendcount,sendtype,recvbuf, & 763 recvcount,recvtype,comm,request,ierror) & 764 BIND(C, name="pompi_ialltoall_f") 765 implicit none 766 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 767 INTEGER, INTENT(IN) :: sendcount, recvcount 768 INTEGER, INTENT(IN) :: sendtype 769 INTEGER, INTENT(IN) :: recvtype 770 INTEGER, INTENT(IN) :: comm 771 INTEGER, INTENT(OUT) :: request 772 INTEGER, INTENT(OUT) :: ierror 773 end subroutine pompi_ialltoall_f 774 775 subroutine pompi_alltoallv_f(sendbuf,sendcounts,sdispls,sendtype, & 776 recvbuf,recvcounts,rdispls,recvtype,comm,ierror) & 777 BIND(C, name="pompi_alltoallv_f") 778 implicit none 779 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 780 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 781 INTEGER, INTENT(IN) :: sendtype 782 INTEGER, INTENT(IN) :: recvtype 783 INTEGER, INTENT(IN) :: comm 784 INTEGER, INTENT(OUT) :: ierror 785 end subroutine pompi_alltoallv_f 786 787 subroutine pompi_ialltoallv_f(sendbuf,sendcounts,sdispls,sendtype, & 788 recvbuf,recvcounts,rdispls,recvtype,comm,request,ierror) & 789 BIND(C, name="pompi_ialltoallv_f") 790 implicit none 791 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 792 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 793 INTEGER, INTENT(IN) :: sendtype 794 INTEGER, INTENT(IN) :: recvtype 795 INTEGER, INTENT(IN) :: comm 796 INTEGER, INTENT(OUT) :: request 797 INTEGER, INTENT(OUT) :: ierror 798 end subroutine pompi_ialltoallv_f 799 800 subroutine pompi_alltoallw_f(sendbuf,sendcounts,sdispls,sendtypes, & 801 recvbuf,recvcounts,rdispls,recvtypes,comm,ierror) & 802 BIND(C, name="pompi_alltoallw_f") 803 implicit none 804 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 805 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 806 INTEGER, INTENT(IN) :: sendtypes 807 INTEGER, INTENT(IN) :: recvtypes 808 INTEGER, INTENT(IN) :: comm 809 INTEGER, INTENT(OUT) :: ierror 810 end subroutine pompi_alltoallw_f 811 812 subroutine pompi_ialltoallw_f(sendbuf,sendcounts,sdispls,sendtypes, & 813 recvbuf,recvcounts,rdispls,recvtypes,comm,request,ierror) & 814 BIND(C, name="pompi_ialltoallw_f") 815 implicit none 816 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 817 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 818 INTEGER, INTENT(IN) :: sendtypes 819 INTEGER, INTENT(IN) :: recvtypes 820 INTEGER, INTENT(IN) :: comm 821 INTEGER, INTENT(OUT) :: request 822 INTEGER, INTENT(OUT) :: ierror 823 end subroutine pompi_ialltoallw_f 824 825 subroutine pompi_barrier_f(comm,ierror) & 826 BIND(C, name="pompi_barrier_f") 827 implicit none 828 INTEGER, INTENT(IN) :: comm 829 INTEGER, INTENT(OUT) :: ierror 830 end subroutine pompi_barrier_f 831 832 subroutine pompi_ibarrier_f(comm,request,ierror) & 833 BIND(C, name="pompi_ibarrier_f") 834 implicit none 835 INTEGER, INTENT(IN) :: comm 836 INTEGER, INTENT(OUT) :: request 837 INTEGER, INTENT(OUT) :: ierror 838 end subroutine pompi_ibarrier_f 839 840 subroutine pompi_bcast_f(buffer,count,datatype,root,comm,ierror) & 841 BIND(C, name="pompi_bcast_f") 842 implicit none 843 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buffer 844 INTEGER, INTENT(IN) :: count, root 845 INTEGER, INTENT(IN) :: datatype 846 INTEGER, INTENT(IN) :: comm 847 INTEGER, INTENT(OUT) :: ierror 848 end subroutine pompi_bcast_f 849 850 subroutine pompi_ibcast_f(buffer,count,datatype,root,comm,request,ierror) & 851 BIND(C, name="pompi_ibcast_f") 852 implicit none 853 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buffer 854 INTEGER, INTENT(IN) :: count, root 855 INTEGER, INTENT(IN) :: datatype 856 INTEGER, INTENT(IN) :: comm 857 INTEGER, INTENT(OUT) :: request 858 INTEGER, INTENT(OUT) :: ierror 859 end subroutine pompi_ibcast_f 860 861 subroutine pompi_exscan_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & 862 BIND(C, name="pompi_exscan_f") 863 implicit none 864 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 865 INTEGER, INTENT(IN) :: count 866 INTEGER, INTENT(IN) :: datatype 867 INTEGER, INTENT(IN) :: op 868 INTEGER, INTENT(IN) :: comm 869 INTEGER, INTENT(OUT) :: ierror 870 end subroutine pompi_exscan_f 871 872 subroutine pompi_iexscan_f(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) & 873 BIND(C, name="pompi_iexscan_f") 874 implicit none 875 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 876 INTEGER, INTENT(IN) :: count 877 INTEGER, INTENT(IN) :: datatype 878 INTEGER, INTENT(IN) :: op 879 INTEGER, INTENT(IN) :: comm 880 INTEGER, INTENT(OUT) :: request 881 INTEGER, INTENT(OUT) :: ierror 882 end subroutine pompi_iexscan_f 883 884 subroutine pompi_gather_f(sendbuf,sendcount,sendtype,recvbuf, & 885 recvcount,recvtype,root,comm,ierror) & 886 BIND(C, name="pompi_gather_f") 887 implicit none 888 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 889 INTEGER, INTENT(IN) :: sendcount, recvcount, root 890 INTEGER, INTENT(IN) :: sendtype 891 INTEGER, INTENT(IN) :: recvtype 892 INTEGER, INTENT(IN) :: comm 893 INTEGER, INTENT(OUT) :: ierror 894 end subroutine pompi_gather_f 895 896 subroutine pompi_igather_f(sendbuf,sendcount,sendtype,recvbuf, & 897 recvcount,recvtype,root,comm,request,ierror) & 898 BIND(C, name="pompi_igather_f") 899 implicit none 900 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 901 INTEGER, INTENT(IN) :: sendcount, recvcount, root 902 INTEGER, INTENT(IN) :: sendtype 903 INTEGER, INTENT(IN) :: recvtype 904 INTEGER, INTENT(IN) :: comm 905 INTEGER, INTENT(OUT) :: request 906 INTEGER, INTENT(OUT) :: ierror 907 end subroutine pompi_igather_f 908 909 subroutine pompi_gatherv_f(sendbuf,sendcount,sendtype,recvbuf, & 910 recvcounts,displs,recvtype,root,comm,ierror) & 911 BIND(C, name="pompi_gatherv_f") 912 implicit none 913 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 914 INTEGER, INTENT(IN) :: sendcount, root 915 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 916 INTEGER, INTENT(IN) :: sendtype 917 INTEGER, INTENT(IN) :: recvtype 918 INTEGER, INTENT(IN) :: comm 919 INTEGER, INTENT(OUT) :: ierror 920 end subroutine pompi_gatherv_f 921 922 subroutine pompi_igatherv_f(sendbuf,sendcount,sendtype,recvbuf, & 923 recvcounts,displs,recvtype,root,comm,request,ierror) & 924 BIND(C, name="pompi_igatherv_f") 925 implicit none 926 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 927 INTEGER, INTENT(IN) :: sendcount, root 928 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 929 INTEGER, INTENT(IN) :: sendtype 930 INTEGER, INTENT(IN) :: recvtype 931 INTEGER, INTENT(IN) :: comm 932 INTEGER, INTENT(OUT) :: request 933 INTEGER, INTENT(OUT) :: ierror 934 end subroutine pompi_igatherv_f 935 936 subroutine pompi_op_free_f(op,ierror) & 937 BIND(C, name="pompi_op_free_f") 938 implicit none 939 INTEGER, INTENT(INOUT) :: op 940 INTEGER, INTENT(OUT) :: ierror 941 end subroutine pompi_op_free_f 942 943 subroutine pompi_reduce_f(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) & 944 BIND(C, name="pompi_reduce_f") 945 implicit none 946 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 947 INTEGER, INTENT(IN) :: count, root 948 INTEGER, INTENT(IN) :: datatype 949 INTEGER, INTENT(IN) :: op 950 INTEGER, INTENT(IN) :: comm 951 INTEGER, INTENT(OUT) :: ierror 952 end subroutine pompi_reduce_f 953 954 subroutine pompi_ireduce_f(sendbuf,recvbuf,count,datatype,op,root,comm,request,ierror) & 955 BIND(C, name="pompi_ireduce_f") 956 implicit none 957 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 958 INTEGER, INTENT(IN) :: count, root 959 INTEGER, INTENT(IN) :: datatype 960 INTEGER, INTENT(IN) :: op 961 INTEGER, INTENT(IN) :: comm 962 INTEGER, INTENT(OUT) :: request 963 INTEGER, INTENT(OUT) :: ierror 964 end subroutine pompi_ireduce_f 965 966 subroutine pompi_reduce_local_f(inbuf,inoutbuf,count,datatype,op,ierror) & 967 BIND(C, name="pompi_reduce_local_f") 968 implicit none 969 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf, inoutbuf 970 INTEGER, INTENT(IN) :: count 971 INTEGER, INTENT(IN) :: datatype 972 INTEGER, INTENT(IN) :: op 973 INTEGER, INTENT(OUT) :: ierror 974 end subroutine pompi_reduce_local_f 975 976 subroutine pompi_reduce_scatter_f(sendbuf,recvbuf,recvcounts, & 977 datatype,op,comm,ierror) & 978 BIND(C, name="pompi_reduce_scatter_f") 979 implicit none 980 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 981 INTEGER, INTENT(IN) :: recvcounts(*) 982 INTEGER, INTENT(IN) :: datatype 983 INTEGER, INTENT(IN) :: op 984 INTEGER, INTENT(IN) :: comm 985 INTEGER, INTENT(OUT) :: ierror 986 end subroutine pompi_reduce_scatter_f 987 988 subroutine pompi_ireduce_scatter_f(sendbuf,recvbuf,recvcounts, & 989 datatype,op,comm,request,ierror) & 990 BIND(C, name="pompi_ireduce_scatter_f") 991 implicit none 992 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 993 INTEGER, INTENT(IN) :: recvcounts(*) 994 INTEGER, INTENT(IN) :: datatype 995 INTEGER, INTENT(IN) :: op 996 INTEGER, INTENT(IN) :: comm 997 INTEGER, INTENT(OUT) :: request 998 INTEGER, INTENT(OUT) :: ierror 999 end subroutine pompi_ireduce_scatter_f 1000 1001 subroutine pompi_reduce_scatter_block_f(sendbuf,recvbuf,recvcount, & 1002 datatype,op,comm,ierror) & 1003 BIND(C, name="pompi_reduce_scatter_block_f") 1004 implicit none 1005 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1006 INTEGER, INTENT(IN) :: recvcount 1007 INTEGER, INTENT(IN) :: datatype 1008 INTEGER, INTENT(IN) :: op 1009 INTEGER, INTENT(IN) :: comm 1010 INTEGER, INTENT(OUT) :: ierror 1011 end subroutine pompi_reduce_scatter_block_f 1012 1013 subroutine pompi_ireduce_scatter_block_f(sendbuf,recvbuf,recvcount, & 1014 datatype,op,comm,request,ierror) & 1015 BIND(C, name="pompi_ireduce_scatter_block_f") 1016 implicit none 1017 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1018 INTEGER, INTENT(IN) :: recvcount 1019 INTEGER, INTENT(IN) :: datatype 1020 INTEGER, INTENT(IN) :: op 1021 INTEGER, INTENT(IN) :: comm 1022 INTEGER, INTENT(OUT) :: request 1023 INTEGER, INTENT(OUT) :: ierror 1024 end subroutine pompi_ireduce_scatter_block_f 1025 1026 subroutine pompi_scan_f(sendbuf,recvbuf,count,datatype,op,comm,ierror) & 1027 BIND(C, name="pompi_scan_f") 1028 implicit none 1029 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1030 INTEGER, INTENT(IN) :: count 1031 INTEGER, INTENT(IN) :: datatype 1032 INTEGER, INTENT(IN) :: op 1033 INTEGER, INTENT(IN) :: comm 1034 INTEGER, INTENT(OUT) :: ierror 1035 end subroutine pompi_scan_f 1036 1037 subroutine pompi_iscan_f(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) & 1038 BIND(C, name="pompi_iscan_f") 1039 implicit none 1040 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1041 INTEGER, INTENT(IN) :: count 1042 INTEGER, INTENT(IN) :: datatype 1043 INTEGER, INTENT(IN) :: op 1044 INTEGER, INTENT(IN) :: comm 1045 INTEGER, INTENT(OUT) :: request 1046 INTEGER, INTENT(OUT) :: ierror 1047 end subroutine pompi_iscan_f 1048 1049 subroutine pompi_scatter_f(sendbuf,sendcount,sendtype,recvbuf, & 1050 recvcount,recvtype,root,comm,ierror) & 1051 BIND(C, name="pompi_scatter_f") 1052 implicit none 1053 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1054 INTEGER, INTENT(IN) :: sendcount, recvcount, root 1055 INTEGER, INTENT(IN) :: sendtype 1056 INTEGER, INTENT(IN) :: recvtype 1057 INTEGER, INTENT(IN) :: comm 1058 INTEGER, INTENT(OUT) :: ierror 1059 end subroutine pompi_scatter_f 1060 1061 subroutine pompi_iscatter_f(sendbuf,sendcount,sendtype,recvbuf, & 1062 recvcount,recvtype,root,comm,request,ierror) & 1063 BIND(C, name="pompi_iscatter_f") 1064 implicit none 1065 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1066 INTEGER, INTENT(IN) :: sendcount, recvcount, root 1067 INTEGER, INTENT(IN) :: sendtype 1068 INTEGER, INTENT(IN) :: recvtype 1069 INTEGER, INTENT(IN) :: comm 1070 INTEGER, INTENT(OUT) :: request 1071 INTEGER, INTENT(OUT) :: ierror 1072 end subroutine pompi_iscatter_f 1073 1074 subroutine pompi_scatterv_f(sendbuf,sendcounts,displs,sendtype, & 1075 recvbuf,recvcount,recvtype,root,comm,ierror) & 1076 BIND(C, name="pompi_scatterv_f") 1077 implicit none 1078 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1079 INTEGER, INTENT(IN) :: recvcount, root 1080 INTEGER, INTENT(IN) :: sendcounts(*), displs(*) 1081 INTEGER, INTENT(IN) :: sendtype 1082 INTEGER, INTENT(IN) :: recvtype 1083 INTEGER, INTENT(IN) :: comm 1084 INTEGER, INTENT(OUT) :: ierror 1085 end subroutine pompi_scatterv_f 1086 1087 subroutine pompi_iscatterv_f(sendbuf,sendcounts,displs,sendtype, & 1088 recvbuf,recvcount,recvtype,root,comm,request,ierror) & 1089 BIND(C, name="pompi_iscatterv_f") 1090 implicit none 1091 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf, recvbuf 1092 INTEGER, INTENT(IN) :: recvcount, root 1093 INTEGER, INTENT(IN) :: sendcounts(*), displs(*) 1094 INTEGER, INTENT(IN) :: sendtype 1095 INTEGER, INTENT(IN) :: recvtype 1096 INTEGER, INTENT(IN) :: comm 1097 INTEGER, INTENT(OUT) :: request 1098 INTEGER, INTENT(OUT) :: ierror 1099 end subroutine pompi_iscatterv_f 1100 1101 subroutine pompi_comm_compare_f(comm1,comm2,result,ierror) & 1102 BIND(C, name="pompi_comm_compare_f") 1103 implicit none 1104 INTEGER, INTENT(IN) :: comm1 1105 INTEGER, INTENT(IN) :: comm2 1106 INTEGER, INTENT(OUT) :: result 1107 INTEGER, INTENT(OUT) :: ierror 1108 end subroutine pompi_comm_compare_f 1109 1110 subroutine pompi_comm_create_f(comm,group,newcomm,ierror) & 1111 BIND(C, name="pompi_comm_create_f") 1112 implicit none 1113 INTEGER, INTENT(IN) :: comm 1114 INTEGER, INTENT(IN) :: group 1115 INTEGER, INTENT(OUT) :: newcomm 1116 INTEGER, INTENT(OUT) :: ierror 1117 end subroutine pompi_comm_create_f 1118 1119 subroutine pompi_comm_create_keyval_f(comm_copy_attr_fn,comm_delete_attr_fn, & 1120 comm_keyval,extra_state,ierror) & 1121 BIND(C, name="pompi_comm_create_keyval_f") 1122 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1123 use, intrinsic :: iso_c_binding, only: c_funptr 1124 implicit none 1125 type(c_funptr), value :: comm_copy_attr_fn 1126 type(c_funptr), value :: comm_delete_attr_fn 1127 INTEGER, INTENT(OUT) :: comm_keyval 1128 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 1129 INTEGER, INTENT(OUT) :: ierror 1130 end subroutine pompi_comm_create_keyval_f 1131 1132 subroutine pompi_comm_delete_attr_f(comm,comm_keyval,ierror) & 1133 BIND(C, name="pompi_comm_delete_attr_f") 1134 implicit none 1135 INTEGER, INTENT(IN) :: comm 1136 INTEGER, INTENT(IN) :: comm_keyval 1137 INTEGER, INTENT(OUT) :: ierror 1138 end subroutine pompi_comm_delete_attr_f 1139 1140 subroutine pompi_comm_dup_f(comm,newcomm,ierror) & 1141 BIND(C, name="pompi_comm_dup_f") 1142 implicit none 1143 INTEGER, INTENT(IN) :: comm 1144 INTEGER, INTENT(OUT) :: newcomm 1145 INTEGER, INTENT(OUT) :: ierror 1146 end subroutine pompi_comm_dup_f 1147 1148 subroutine pompi_comm_free_f(comm,ierror) & 1149 BIND(C, name="pompi_comm_free_f") 1150 implicit none 1151 INTEGER, INTENT(INOUT) :: comm 1152 INTEGER, INTENT(OUT) :: ierror 1153 end subroutine pompi_comm_free_f 1154 1155 subroutine pompi_comm_free_keyval_f(comm_keyval,ierror) & 1156 BIND(C, name="pompi_comm_free_keyval_f") 1157 implicit none 1158 INTEGER, INTENT(INOUT) :: comm_keyval 1159 INTEGER, INTENT(OUT) :: ierror 1160 end subroutine pompi_comm_free_keyval_f 1161 1162 subroutine pompi_comm_get_name_f(comm,comm_name,resultlen,ierror,comm_name_len) & 1163 BIND(C, name="pompi_comm_get_name_f") 1164 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1165 implicit none 1166 INTEGER, INTENT(IN) :: comm 1167 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: comm_name 1168 INTEGER, INTENT(OUT) :: resultlen 1169 INTEGER, INTENT(OUT) :: ierror 1170 INTEGER, VALUE, INTENT(IN) :: comm_name_len 1171 end subroutine pompi_comm_get_name_f 1172 1173 subroutine pompi_comm_group_f(comm,group,ierror) & 1174 BIND(C, name="pompi_comm_group_f") 1175 implicit none 1176 INTEGER, INTENT(IN) :: comm 1177 INTEGER, INTENT(OUT) :: group 1178 INTEGER, INTENT(OUT) :: ierror 1179 end subroutine pompi_comm_group_f 1180 1181 subroutine pompi_comm_rank_f(comm,rank,ierror) & 1182 BIND(C, name="pompi_comm_rank_f") 1183 implicit none 1184 INTEGER, INTENT(IN) :: comm 1185 INTEGER, INTENT(OUT) :: rank 1186 INTEGER, INTENT(OUT) :: ierror 1187 end subroutine pompi_comm_rank_f 1188 1189 subroutine pompi_comm_remote_group_f(comm,group,ierror) & 1190 BIND(C, name="pompi_comm_remote_group_f") 1191 implicit none 1192 INTEGER, INTENT(IN) :: comm 1193 INTEGER, INTENT(OUT) :: group 1194 INTEGER, INTENT(OUT) :: ierror 1195 end subroutine pompi_comm_remote_group_f 1196 1197 subroutine pompi_comm_remote_size_f(comm,size,ierror) & 1198 BIND(C, name="pompi_comm_remote_size_f") 1199 implicit none 1200 INTEGER, INTENT(IN) :: comm 1201 INTEGER, INTENT(OUT) :: size 1202 INTEGER, INTENT(OUT) :: ierror 1203 end subroutine pompi_comm_remote_size_f 1204 1205 subroutine pompi_comm_set_attr_f(comm,comm_keyval,attribute_val,ierror) & 1206 BIND(C, name="pompi_comm_set_attr_f") 1207 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1208 implicit none 1209 INTEGER, INTENT(IN) :: comm 1210 INTEGER, INTENT(IN) :: comm_keyval 1211 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val 1212 INTEGER, INTENT(OUT) :: ierror 1213 end subroutine pompi_comm_set_attr_f 1214 1215 subroutine pompi_comm_set_name_f(comm,comm_name,ierror,comm_name_len) & 1216 BIND(C, name="pompi_comm_set_name_f") 1217 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1218 implicit none 1219 INTEGER, INTENT(IN) :: comm 1220 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: comm_name 1221 INTEGER, INTENT(OUT) :: ierror 1222 INTEGER, VALUE, INTENT(IN) :: comm_name_len 1223 end subroutine pompi_comm_set_name_f 1224 1225 subroutine pompi_comm_size_f(comm,size,ierror) & 1226 BIND(C, name="pompi_comm_size_f") 1227 implicit none 1228 INTEGER, INTENT(IN) :: comm 1229 INTEGER, INTENT(OUT) :: size 1230 INTEGER, INTENT(OUT) :: ierror 1231 end subroutine pompi_comm_size_f 1232 1233 subroutine pompi_comm_split_f(comm,color,key,newcomm,ierror) & 1234 BIND(C, name="pompi_comm_split_f") 1235 implicit none 1236 INTEGER, INTENT(IN) :: comm 1237 INTEGER, INTENT(IN) :: color, key 1238 INTEGER, INTENT(OUT) :: newcomm 1239 INTEGER, INTENT(OUT) :: ierror 1240 end subroutine pompi_comm_split_f 1241 1242 subroutine pompi_group_compare_f(group1,group2,result,ierror) & 1243 BIND(C, name="pompi_group_compare_f") 1244 implicit none 1245 INTEGER, INTENT(IN) :: group1 1246 INTEGER, INTENT(IN) :: group2 1247 INTEGER, INTENT(OUT) :: result 1248 INTEGER, INTENT(OUT) :: ierror 1249 end subroutine pompi_group_compare_f 1250 1251 subroutine pompi_group_difference_f(group1,group2,newgroup,ierror) & 1252 BIND(C, name="pompi_group_difference_f") 1253 implicit none 1254 INTEGER, INTENT(IN) :: group1 1255 INTEGER, INTENT(IN) :: group2 1256 INTEGER, INTENT(OUT) :: newgroup 1257 INTEGER, INTENT(OUT) :: ierror 1258 end subroutine pompi_group_difference_f 1259 1260 subroutine pompi_group_excl_f(group,n,ranks,newgroup,ierror) & 1261 BIND(C, name="pompi_group_excl_f") 1262 implicit none 1263 INTEGER, INTENT(IN) :: group 1264 INTEGER, INTENT(IN) :: n 1265 INTEGER, INTENT(IN) :: ranks(*) 1266 INTEGER, INTENT(OUT) :: newgroup 1267 INTEGER, INTENT(OUT) :: ierror 1268 end subroutine pompi_group_excl_f 1269 1270 subroutine pompi_group_free_f(group,ierror) & 1271 BIND(C, name="pompi_group_free_f") 1272 implicit none 1273 INTEGER, INTENT(INOUT) :: group 1274 INTEGER, INTENT(OUT) :: ierror 1275 end subroutine pompi_group_free_f 1276 1277 subroutine pompi_group_incl_f(group,n,ranks,newgroup,ierror) & 1278 BIND(C, name="pompi_group_incl_f") 1279 implicit none 1280 INTEGER, INTENT(IN) :: n 1281 INTEGER, INTENT(IN) :: ranks(*) 1282 INTEGER, INTENT(IN) :: group 1283 INTEGER, INTENT(OUT) :: newgroup 1284 INTEGER, INTENT(OUT) :: ierror 1285 end subroutine pompi_group_incl_f 1286 1287 subroutine pompi_group_intersection_f(group1,group2,newgroup,ierror) & 1288 BIND(C, name="pompi_group_intersection_f") 1289 implicit none 1290 INTEGER, INTENT(IN) :: group1 1291 INTEGER, INTENT(IN) :: group2 1292 INTEGER, INTENT(OUT) :: newgroup 1293 INTEGER, INTENT(OUT) :: ierror 1294 end subroutine pompi_group_intersection_f 1295 1296 subroutine pompi_group_range_excl_f(group,n,ranges,newgroup,ierror) & 1297 BIND(C, name="pompi_group_range_excl_f") 1298 implicit none 1299 INTEGER, INTENT(IN) :: group 1300 INTEGER, INTENT(IN) :: n 1301 INTEGER, INTENT(IN) :: ranges(*) 1302 INTEGER, INTENT(OUT) :: newgroup 1303 INTEGER, INTENT(OUT) :: ierror 1304 end subroutine pompi_group_range_excl_f 1305 1306 subroutine pompi_group_range_incl_f(group,n,ranges,newgroup,ierror) & 1307 BIND(C, name="pompi_group_range_incl_f") 1308 implicit none 1309 INTEGER, INTENT(IN) :: group 1310 INTEGER, INTENT(IN) :: n 1311 INTEGER, INTENT(IN) :: ranges(*) 1312 INTEGER, INTENT(OUT) :: newgroup 1313 INTEGER, INTENT(OUT) :: ierror 1314 end subroutine pompi_group_range_incl_f 1315 1316 subroutine pompi_group_rank_f(group,rank,ierror) & 1317 BIND(C, name="pompi_group_rank_f") 1318 implicit none 1319 INTEGER, INTENT(IN) :: group 1320 INTEGER, INTENT(OUT) :: rank 1321 INTEGER, INTENT(OUT) :: ierror 1322 end subroutine pompi_group_rank_f 1323 1324 subroutine pompi_group_size_f(group,size,ierror) & 1325 BIND(C, name="pompi_group_size_f") 1326 implicit none 1327 INTEGER, INTENT(IN) :: group 1328 INTEGER, INTENT(OUT) :: size 1329 INTEGER, INTENT(OUT) :: ierror 1330 end subroutine pompi_group_size_f 1331 1332 subroutine pompi_group_translate_ranks_f(group1,n,ranks1,group2,ranks2,ierror) & 1333 BIND(C, name="pompi_group_translate_ranks_f") 1334 implicit none 1335 INTEGER, INTENT(IN) :: group1, group2 1336 INTEGER, INTENT(IN) :: n 1337 INTEGER, INTENT(IN) :: ranks1(*) 1338 INTEGER, INTENT(OUT) :: ranks2(*) 1339 INTEGER, INTENT(OUT) :: ierror 1340 end subroutine pompi_group_translate_ranks_f 1341 1342 subroutine pompi_group_union_f(group1,group2,newgroup,ierror) & 1343 BIND(C, name="pompi_group_union_f") 1344 implicit none 1345 INTEGER, INTENT(IN) :: group1, group2 1346 INTEGER, INTENT(OUT) :: newgroup 1347 INTEGER, INTENT(OUT) :: ierror 1348 end subroutine pompi_group_union_f 1349 1350 subroutine pompi_intercomm_create_f(local_comm,local_leader,peer_comm, & 1351 remote_leader,tag,newintercomm,ierror) & 1352 BIND(C, name="pompi_intercomm_create_f") 1353 implicit none 1354 INTEGER, INTENT(IN) :: local_comm, peer_comm 1355 INTEGER, INTENT(IN) :: local_leader, remote_leader, tag 1356 INTEGER, INTENT(OUT) :: newintercomm 1357 INTEGER, INTENT(OUT) :: ierror 1358 end subroutine pompi_intercomm_create_f 1359 1360 subroutine pompi_type_create_keyval_f(type_copy_attr_fn,type_delete_attr_fn, & 1361 type_keyval,extra_state,ierror) & 1362 BIND(C, name="pompi_type_create_keyval_f") 1363 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1364 use, intrinsic :: iso_c_binding, only: c_funptr 1365 implicit none 1366 type(c_funptr), value :: type_copy_attr_fn 1367 type(c_funptr), value :: type_delete_attr_fn 1368 INTEGER, INTENT(OUT) :: type_keyval 1369 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 1370 INTEGER, INTENT(OUT) :: ierror 1371 end subroutine pompi_type_create_keyval_f 1372 1373 subroutine pompi_type_delete_attr_f(datatype,type_keyval,ierror) & 1374 BIND(C, name="pompi_type_delete_attr_f") 1375 implicit none 1376 INTEGER, INTENT(IN) :: datatype 1377 INTEGER, INTENT(IN) :: type_keyval 1378 INTEGER, INTENT(OUT) :: ierror 1379 end subroutine pompi_type_delete_attr_f 1380 1381 subroutine pompi_type_free_keyval_f(type_keyval,ierror) & 1382 BIND(C, name="pompi_type_free_keyval_f") 1383 implicit none 1384 INTEGER, INTENT(INOUT) :: type_keyval 1385 INTEGER, INTENT(OUT) :: ierror 1386 end subroutine pompi_type_free_keyval_f 1387 1388 subroutine pompi_type_get_name_f(datatype,type_name,resultlen,ierror,type_name_len) & 1389 BIND(C, name="pompi_type_get_name_f") 1390 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1391 implicit none 1392 INTEGER, INTENT(IN) :: datatype 1393 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: type_name 1394 INTEGER, INTENT(OUT) :: resultlen 1395 INTEGER, INTENT(OUT) :: ierror 1396 INTEGER, VALUE, INTENT(IN) :: type_name_len 1397 end subroutine pompi_type_get_name_f 1398 1399 subroutine pompi_type_set_attr_f(datatype,type_keyval,attribute_val,ierror) & 1400 BIND(C, name="pompi_type_set_attr_f") 1401 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1402 implicit none 1403 INTEGER, INTENT(IN) :: datatype 1404 INTEGER, INTENT(IN) :: type_keyval 1405 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val 1406 INTEGER, INTENT(OUT) :: ierror 1407 end subroutine pompi_type_set_attr_f 1408 1409 subroutine pompi_type_set_name_f(datatype,type_name,ierror,type_name_len) & 1410 BIND(C, name="pompi_type_set_name_f") 1411 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1412 implicit none 1413 INTEGER, INTENT(IN) :: datatype 1414 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: type_name 1415 INTEGER, INTENT(OUT) :: ierror 1416 INTEGER, VALUE, INTENT(IN) :: type_name_len 1417 end subroutine pompi_type_set_name_f 1418 1419 subroutine pompi_win_allocate_f(size, disp_unit, info, comm, & 1420 baseptr, win, ierror) BIND(C, name="pompi_win_allocate_f") 1421 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 1422 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1423 INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size 1424 INTEGER, INTENT(IN) :: disp_unit 1425 INTEGER, INTENT(IN) :: info 1426 INTEGER, INTENT(IN) :: comm 1427 TYPE(C_PTR), INTENT(OUT) :: baseptr 1428 INTEGER, INTENT(OUT) :: win 1429 INTEGER, INTENT(OUT) :: ierror 1430 end subroutine pompi_win_allocate_f 1431 1432 subroutine pompi_win_allocate_shared_f(size, disp_unit, info, comm, & 1433 baseptr, win, ierror) BIND(C, name="pompi_win_allocate_shared_f") 1434 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 1435 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1436 INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size 1437 INTEGER, INTENT(IN) :: disp_unit 1438 INTEGER, INTENT(IN) :: info 1439 INTEGER, INTENT(IN) :: comm 1440 TYPE(C_PTR), INTENT(OUT) :: baseptr 1441 INTEGER, INTENT(OUT) :: win 1442 INTEGER, INTENT(OUT) :: ierror 1443 end subroutine pompi_win_allocate_shared_f 1444 1445 subroutine pompi_win_create_keyval_f(win_copy_attr_fn,win_delete_attr_fn, & 1446 win_keyval,extra_state,ierror) & 1447 BIND(C, name="pompi_win_create_keyval_f") 1448 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1449 use, intrinsic :: iso_c_binding, only: c_funptr 1450 implicit none 1451 type(c_funptr), value :: win_copy_attr_fn 1452 type(c_funptr), value :: win_delete_attr_fn 1453 INTEGER, INTENT(OUT) :: win_keyval 1454 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 1455 INTEGER, INTENT(OUT) :: ierror 1456 end subroutine pompi_win_create_keyval_f 1457 1458 subroutine pompi_win_delete_attr_f(win,win_keyval,ierror) & 1459 BIND(C, name="pompi_win_delete_attr_f") 1460 implicit none 1461 INTEGER, INTENT(IN) :: win 1462 INTEGER, INTENT(IN) :: win_keyval 1463 INTEGER, INTENT(OUT) :: ierror 1464 end subroutine pompi_win_delete_attr_f 1465 1466 subroutine pompi_win_free_keyval_f(win_keyval,ierror) & 1467 BIND(C, name="pompi_win_free_keyval_f") 1468 implicit none 1469 INTEGER, INTENT(INOUT) :: win_keyval 1470 INTEGER, INTENT(OUT) :: ierror 1471 end subroutine pompi_win_free_keyval_f 1472 1473 subroutine pompi_win_get_name_f(win,win_name,resultlen,ierror,win_name_len) & 1474 BIND(C, name="pompi_win_get_name_f") 1475 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1476 implicit none 1477 INTEGER, INTENT(IN) :: win 1478 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: win_name 1479 INTEGER, INTENT(OUT) :: resultlen 1480 INTEGER, INTENT(OUT) :: ierror 1481 INTEGER, VALUE, INTENT(IN) :: win_name_len 1482 end subroutine pompi_win_get_name_f 1483 1484 subroutine pompi_win_set_attr_f(win,win_keyval,attribute_val,ierror) & 1485 BIND(C, name="pompi_win_set_attr_f") 1486 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1487 implicit none 1488 INTEGER, INTENT(IN) :: win 1489 INTEGER, INTENT(IN) :: win_keyval 1490 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val 1491 INTEGER, INTENT(OUT) :: ierror 1492 end subroutine pompi_win_set_attr_f 1493 1494 subroutine pompi_win_set_name_f(win,win_name,ierror,win_name_len) & 1495 BIND(C, name="pompi_win_set_name_f") 1496 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1497 implicit none 1498 INTEGER, INTENT(IN) :: win 1499 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: win_name 1500 INTEGER, INTENT(OUT) :: ierror 1501 INTEGER, VALUE, INTENT(IN) :: win_name_len 1502 end subroutine pompi_win_set_name_f 1503 1504 subroutine pompi_cartdim_get_f(comm,ndims,ierror) & 1505 BIND(C, name="pompi_cartdim_get_f") 1506 implicit none 1507 INTEGER, INTENT(IN) :: comm 1508 INTEGER, INTENT(OUT) :: ndims 1509 INTEGER, INTENT(OUT) :: ierror 1510 end subroutine pompi_cartdim_get_f 1511 1512 subroutine pompi_cart_coords_f(comm,rank,maxdims,coords,ierror) & 1513 BIND(C, name="pompi_cart_coords_f") 1514 implicit none 1515 INTEGER, INTENT(IN) :: comm 1516 INTEGER, INTENT(IN) :: rank, maxdims 1517 INTEGER, INTENT(OUT) :: coords(maxdims) 1518 INTEGER, INTENT(OUT) :: ierror 1519 end subroutine pompi_cart_coords_f 1520 1521 subroutine pompi_cart_rank_f(comm,coords,rank,ierror) & 1522 BIND(C, name="pompi_cart_rank_f") 1523 implicit none 1524 INTEGER, INTENT(IN) :: comm 1525 INTEGER, INTENT(IN) :: coords(*) 1526 INTEGER, INTENT(OUT) :: rank 1527 INTEGER, INTENT(OUT) :: ierror 1528 end subroutine pompi_cart_rank_f 1529 1530 subroutine pompi_cart_shift_f(comm,direction,disp,rank_source,rank_dest,ierror) & 1531 BIND(C, name="pompi_cart_shift_f") 1532 implicit none 1533 INTEGER, INTENT(IN) :: comm 1534 INTEGER, INTENT(IN) :: direction, disp 1535 INTEGER, INTENT(OUT) :: rank_source, rank_dest 1536 INTEGER, INTENT(OUT) :: ierror 1537 end subroutine pompi_cart_shift_f 1538 1539 subroutine pompi_dims_create_f(nnodes,ndims,dims,ierror) & 1540 BIND(C, name="pompi_dims_create_f") 1541 implicit none 1542 INTEGER, INTENT(IN) :: nnodes, ndims 1543 INTEGER, INTENT(INOUT) :: dims(*) 1544 INTEGER, INTENT(OUT) :: ierror 1545 end subroutine pompi_dims_create_f 1546 1547 subroutine pompi_dist_graph_neighbors_f(comm,maxindegree,sources,sourceweights, & 1548 maxoutdegree,destinations,destweights,ierror) & 1549 BIND(C, name="pompi_dist_graph_neighbors_f") 1550 implicit none 1551 INTEGER, INTENT(IN) :: comm 1552 INTEGER, INTENT(IN) :: maxindegree, maxoutdegree 1553 INTEGER, INTENT(OUT) :: sources(maxindegree), destinations(maxoutdegree) 1554 INTEGER, INTENT(OUT) :: sourceweights(maxindegree), destweights(maxoutdegree) 1555 INTEGER, INTENT(OUT) :: ierror 1556 end subroutine pompi_dist_graph_neighbors_f 1557 1558 subroutine pompi_graphdims_get_f(comm,nnodes,nedges,ierror) & 1559 BIND(C, name="pompi_graphdims_get_f") 1560 implicit none 1561 INTEGER, INTENT(IN) :: comm 1562 INTEGER, INTENT(OUT) :: nnodes, nedges 1563 INTEGER, INTENT(OUT) :: ierror 1564 end subroutine pompi_graphdims_get_f 1565 1566 subroutine pompi_graph_get_f(comm,maxindex,maxedges,index,edges,ierror) & 1567 BIND(C, name="pompi_graph_get_f") 1568 implicit none 1569 INTEGER, INTENT(IN) :: comm 1570 INTEGER, INTENT(IN) :: maxindex, maxedges 1571 INTEGER, INTENT(OUT) :: index(*), edges(*) 1572 INTEGER, INTENT(OUT) :: ierror 1573 end subroutine pompi_graph_get_f 1574 1575 subroutine pompi_graph_map_f(comm,nnodes,index,edges,newrank,ierror) & 1576 BIND(C, name="pompi_graph_map_f") 1577 implicit none 1578 INTEGER, INTENT(IN) :: comm 1579 INTEGER, INTENT(IN) :: nnodes 1580 INTEGER, INTENT(IN) :: index(*), edges(*) 1581 INTEGER, INTENT(OUT) :: newrank 1582 INTEGER, INTENT(OUT) :: ierror 1583 end subroutine pompi_graph_map_f 1584 1585 subroutine pompi_graph_neighbors_f(comm,rank,maxneighbors,neighbors,ierror) & 1586 BIND(C, name="pompi_graph_neighbors_f") 1587 implicit none 1588 INTEGER, INTENT(IN) :: comm 1589 INTEGER, INTENT(IN) :: rank, maxneighbors 1590 INTEGER, INTENT(OUT) :: neighbors(*) 1591 INTEGER, INTENT(OUT) :: ierror 1592 end subroutine pompi_graph_neighbors_f 1593 1594 subroutine pompi_graph_neighbors_count_f(comm,rank,nneighbors,ierror) & 1595 BIND(C, name="pompi_graph_neighbors_count_f") 1596 implicit none 1597 INTEGER, INTENT(IN) :: comm 1598 INTEGER, INTENT(IN) :: rank 1599 INTEGER, INTENT(OUT) :: nneighbors 1600 INTEGER, INTENT(OUT) :: ierror 1601 end subroutine pompi_graph_neighbors_count_f 1602 1603 subroutine pompi_topo_test_f(comm,status,ierror) & 1604 BIND(C, name="pompi_topo_test_f") 1605 use :: mpi_f08_types, only : MPI_Status 1606 implicit none 1607 INTEGER, INTENT(IN) :: comm 1608 INTEGER, INTENT(OUT) :: status 1609 INTEGER, INTENT(OUT) :: ierror 1610 end subroutine pompi_topo_test_f 1611 1612 ! 1613 ! These functions are declared in mpi-f08-interface.h as BIND(C) 1614 ! 1615 !function MPI_Wtick_f() & 1616 ! BIND(C, name="pompi_wtick_f") 1617 ! implicit none 1618 ! DOUBLE PRECISION :: MPI_Wtick_f 1619 !end function MPI_Wtick_f 1620 ! 1621 !function MPI_Wtime_f() & 1622 ! BIND(C, name="pompi_wtime_f") 1623 ! implicit none 1624 ! DOUBLE PRECISION :: MPI_Wtime_f 1625 !end function MPI_Wtime_f 1626 1627 function pompi_aint_add_f(base,diff) & 1628 BIND(C, name="pompi_aint_add_f") 1629 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1630 implicit none 1631 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: base 1632 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: diff 1633 INTEGER(MPI_ADDRESS_KIND) :: pompi_aint_add_f 1634 end function pompi_aint_add_f 1635 1636 function pompi_aint_diff_f(addr1,addr2) & 1637 BIND(C, name="pompi_aint_diff_f") 1638 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1639 implicit none 1640 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr1 1641 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: addr2 1642 INTEGER(MPI_ADDRESS_KIND) :: pompi_aint_diff_f 1643 end function pompi_aint_diff_f 1644 1645 subroutine pompi_abort_f(comm,errorcode,ierror) & 1646 BIND(C, name="pompi_abort_f") 1647 implicit none 1648 INTEGER, INTENT(IN) :: comm 1649 INTEGER, INTENT(IN) :: errorcode 1650 INTEGER, INTENT(OUT) :: ierror 1651 end subroutine pompi_abort_f 1652 1653 subroutine pompi_add_error_class_f(errorclass,ierror) & 1654 BIND(C, name="pompi_add_error_class_f") 1655 implicit none 1656 INTEGER, INTENT(OUT) :: errorclass 1657 INTEGER, INTENT(OUT) :: ierror 1658 end subroutine pompi_add_error_class_f 1659 1660 subroutine pompi_add_error_code_f(errorclass,errorcode,ierror) & 1661 BIND(C, name="pompi_add_error_code_f") 1662 implicit none 1663 INTEGER, INTENT(IN) :: errorclass 1664 INTEGER, INTENT(OUT) :: errorcode 1665 INTEGER, INTENT(OUT) :: ierror 1666 end subroutine pompi_add_error_code_f 1667 1668 subroutine pompi_add_error_string_f(errorcode,string,ierror,str_len) & 1669 BIND(C, name="pompi_add_error_string_f") 1670 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1671 implicit none 1672 INTEGER, INTENT(IN) :: errorcode 1673 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: string 1674 INTEGER, INTENT(OUT) :: ierror 1675 INTEGER, VALUE, INTENT(IN) :: str_len 1676 end subroutine pompi_add_error_string_f 1677 1678 subroutine pompi_alloc_mem_f(size,info,baseptr,ierror) & 1679 BIND(C, name="pompi_alloc_mem_f") 1680 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1681 use, intrinsic :: ISO_C_BINDING, only : C_PTR 1682 implicit none 1683 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size 1684 INTEGER, INTENT(IN) :: info 1685 TYPE(C_PTR), INTENT(OUT) :: baseptr 1686 INTEGER, INTENT(OUT) :: ierror 1687 end subroutine pompi_alloc_mem_f 1688 1689 subroutine pompi_comm_call_errhandler_f(comm,errorcode,ierror) & 1690 BIND(C, name="pompi_comm_call_errhandler_f") 1691 implicit none 1692 INTEGER, INTENT(IN) :: comm 1693 INTEGER, INTENT(IN) :: errorcode 1694 INTEGER, INTENT(OUT) :: ierror 1695 end subroutine pompi_comm_call_errhandler_f 1696 1697 subroutine pompi_comm_create_errhandler_f(comm_errhandler_fn,errhandler,ierror) & 1698 BIND(C, name="pompi_comm_create_errhandler_f") 1699 use, intrinsic :: iso_c_binding, only: c_funptr 1700 implicit none 1701 type(c_funptr), value :: comm_errhandler_fn 1702 INTEGER, INTENT(OUT) :: errhandler 1703 INTEGER, INTENT(OUT) :: ierror 1704 end subroutine pompi_comm_create_errhandler_f 1705 1706 subroutine pompi_comm_get_errhandler_f(comm,errhandler,ierror) & 1707 BIND(C, name="pompi_comm_get_errhandler_f") 1708 implicit none 1709 INTEGER, INTENT(IN) :: comm 1710 INTEGER, INTENT(OUT) :: errhandler 1711 INTEGER, INTENT(OUT) :: ierror 1712 end subroutine pompi_comm_get_errhandler_f 1713 1714 subroutine pompi_comm_set_errhandler_f(comm,errhandler,ierror) & 1715 BIND(C, name="pompi_comm_set_errhandler_f") 1716 implicit none 1717 INTEGER, INTENT(IN) :: comm 1718 INTEGER, INTENT(IN) :: errhandler 1719 INTEGER, INTENT(OUT) :: ierror 1720 end subroutine pompi_comm_set_errhandler_f 1721 1722 subroutine pompi_errhandler_free_f(errhandler,ierror) & 1723 BIND(C, name="pompi_errhandler_free_f") 1724 implicit none 1725 INTEGER, INTENT(INOUT) :: errhandler 1726 INTEGER, INTENT(OUT) :: ierror 1727 end subroutine pompi_errhandler_free_f 1728 1729 subroutine pompi_error_class_f(errorcode,errorclass,ierror) & 1730 BIND(C, name="pompi_error_class_f") 1731 implicit none 1732 INTEGER, INTENT(IN) :: errorcode 1733 INTEGER, INTENT(OUT) :: errorclass 1734 INTEGER, INTENT(OUT) :: ierror 1735 end subroutine pompi_error_class_f 1736 1737 subroutine pompi_error_string_f(errorcode,string,resultlen,ierror,str_len) & 1738 BIND(C, name="pompi_error_string_f") 1739 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1740 implicit none 1741 INTEGER, INTENT(IN) :: errorcode 1742 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: string 1743 INTEGER, INTENT(OUT) :: resultlen 1744 INTEGER, INTENT(OUT) :: ierror 1745 INTEGER, VALUE, INTENT(IN) :: str_len 1746 end subroutine pompi_error_string_f 1747 1748 subroutine pompi_file_call_errhandler_f(fh,errorcode,ierror) & 1749 BIND(C, name="pompi_file_call_errhandler_f") 1750 implicit none 1751 INTEGER, INTENT(IN) :: fh 1752 INTEGER, INTENT(IN) :: errorcode 1753 INTEGER, INTENT(OUT) :: ierror 1754 end subroutine pompi_file_call_errhandler_f 1755 1756 subroutine pompi_file_create_errhandler_f(file_errhandler_fn,errhandler,ierror) & 1757 BIND(C, name="pompi_file_create_errhandler_f") 1758 use, intrinsic :: iso_c_binding, only: c_funptr 1759 implicit none 1760 type(c_funptr), value :: file_errhandler_fn 1761 INTEGER, INTENT(OUT) :: errhandler 1762 INTEGER, INTENT(OUT) :: ierror 1763 end subroutine pompi_file_create_errhandler_f 1764 1765 subroutine pompi_file_get_errhandler_f(file,errhandler,ierror) & 1766 BIND(C, name="pompi_file_get_errhandler_f") 1767 implicit none 1768 INTEGER, INTENT(IN) :: file 1769 INTEGER, INTENT(OUT) :: errhandler 1770 INTEGER, INTENT(OUT) :: ierror 1771 end subroutine pompi_file_get_errhandler_f 1772 1773 subroutine pompi_file_set_errhandler_f(file,errhandler,ierror) & 1774 BIND(C, name="pompi_file_set_errhandler_f") 1775 implicit none 1776 INTEGER, INTENT(IN) :: file 1777 INTEGER, INTENT(IN) :: errhandler 1778 INTEGER, INTENT(OUT) :: ierror 1779 end subroutine pompi_file_set_errhandler_f 1780 1781 subroutine pompi_finalize_f(ierror) & 1782 BIND(C, name="pompi_finalize_f") 1783 implicit none 1784 INTEGER, INTENT(OUT) :: ierror 1785 end subroutine pompi_finalize_f 1786 1787 subroutine pompi_free_mem_f(base,ierror) & 1788 BIND(C, name="pompi_free_mem_f") 1789 implicit none 1790 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base 1791 INTEGER, INTENT(OUT) :: ierror 1792 end subroutine pompi_free_mem_f 1793 1794 subroutine pompi_get_processor_name_f(name,resultlen,ierror,name_len) & 1795 BIND(C, name="pompi_get_processor_name_f") 1796 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1797 implicit none 1798 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name 1799 INTEGER, INTENT(OUT) :: resultlen 1800 INTEGER, INTENT(OUT) :: ierror 1801 INTEGER, VALUE, INTENT(IN) :: name_len 1802 end subroutine pompi_get_processor_name_f 1803 1804 subroutine pompi_get_version_f(version,subversion,ierror) & 1805 BIND(C, name="pompi_get_version_f") 1806 implicit none 1807 INTEGER, INTENT(OUT) :: version, subversion 1808 INTEGER, INTENT(OUT) :: ierror 1809 end subroutine pompi_get_version_f 1810 1811 subroutine pompi_init_f(ierror) & 1812 BIND(C, name="pompi_init_f") 1813 implicit none 1814 INTEGER, INTENT(OUT) :: ierror 1815 end subroutine pompi_init_f 1816 1817 subroutine pompi_win_call_errhandler_f(win,errorcode,ierror) & 1818 BIND(C, name="pompi_win_call_errhandler_f") 1819 implicit none 1820 INTEGER, INTENT(IN) :: win 1821 INTEGER, INTENT(IN) :: errorcode 1822 INTEGER, INTENT(OUT) :: ierror 1823 end subroutine pompi_win_call_errhandler_f 1824 1825 subroutine pompi_win_create_errhandler_f(win_errhandler_fn,errhandler,ierror) & 1826 BIND(C, name="pompi_win_create_errhandler_f") 1827 use, intrinsic :: iso_c_binding, only: c_funptr 1828 implicit none 1829 type(c_funptr), value :: win_errhandler_fn 1830 INTEGER, INTENT(OUT) :: errhandler 1831 INTEGER, INTENT(OUT) :: ierror 1832 end subroutine pompi_win_create_errhandler_f 1833 1834 subroutine pompi_win_get_errhandler_f(win,errhandler,ierror) & 1835 BIND(C, name="pompi_win_get_errhandler_f") 1836 implicit none 1837 INTEGER, INTENT(IN) :: win 1838 INTEGER, INTENT(OUT) :: errhandler 1839 INTEGER, INTENT(OUT) :: ierror 1840 end subroutine pompi_win_get_errhandler_f 1841 1842 subroutine pompi_win_set_errhandler_f(win,errhandler,ierror) & 1843 BIND(C, name="pompi_win_set_errhandler_f") 1844 implicit none 1845 INTEGER, INTENT(IN) :: win 1846 INTEGER, INTENT(IN) :: errhandler 1847 INTEGER, INTENT(OUT) :: ierror 1848 end subroutine pompi_win_set_errhandler_f 1849 1850 subroutine pompi_info_create_f(info,ierror) & 1851 BIND(C, name="pompi_info_create_f") 1852 implicit none 1853 INTEGER, INTENT(OUT) :: info 1854 INTEGER, INTENT(OUT) :: ierror 1855 end subroutine pompi_info_create_f 1856 1857 subroutine pompi_info_delete_f(info,key,ierror,key_len) & 1858 BIND(C, name="pompi_info_delete_f") 1859 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1860 implicit none 1861 INTEGER, INTENT(IN) :: info 1862 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: key 1863 INTEGER, INTENT(OUT) :: ierror 1864 INTEGER, VALUE, INTENT(IN) :: key_len 1865 end subroutine pompi_info_delete_f 1866 1867 subroutine pompi_info_dup_f(info,newinfo,ierror) & 1868 BIND(C, name="pompi_info_dup_f") 1869 implicit none 1870 INTEGER, INTENT(IN) :: info 1871 INTEGER, INTENT(OUT) :: newinfo 1872 INTEGER, INTENT(OUT) :: ierror 1873 end subroutine pompi_info_dup_f 1874 1875 subroutine pompi_info_free_f(info,ierror) & 1876 BIND(C, name="pompi_info_free_f") 1877 implicit none 1878 INTEGER, INTENT(INOUT) :: info 1879 INTEGER, INTENT(OUT) :: ierror 1880 end subroutine pompi_info_free_f 1881 1882 subroutine pompi_info_get_nkeys_f(info,nkeys,ierror) & 1883 BIND(C, name="pompi_info_get_nkeys_f") 1884 implicit none 1885 INTEGER, INTENT(IN) :: info 1886 INTEGER, INTENT(OUT) :: nkeys 1887 INTEGER, INTENT(OUT) :: ierror 1888 end subroutine pompi_info_get_nkeys_f 1889 1890 subroutine pompi_info_get_nthkey_f(info,n,key,ierror,key_len) & 1891 BIND(C, name="pompi_info_get_nthkey_f") 1892 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1893 implicit none 1894 INTEGER, INTENT(IN) :: info 1895 INTEGER, INTENT(IN) :: n 1896 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: key 1897 INTEGER, INTENT(OUT) :: ierror 1898 INTEGER, VALUE, INTENT(IN) :: key_len 1899 end subroutine pompi_info_get_nthkey_f 1900 1901 subroutine pompi_info_set_f(info,key,value,ierror,key_len,value_len) & 1902 BIND(C, name="pompi_info_set_f") 1903 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1904 implicit none 1905 INTEGER, INTENT(IN) :: info 1906 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: key, value 1907 INTEGER, INTENT(OUT) :: ierror 1908 INTEGER, VALUE, INTENT(IN) :: key_len, value_len 1909 end subroutine pompi_info_set_f 1910 1911 subroutine pompi_close_port_f(port_name,ierror,port_name_len) & 1912 BIND(C, name="pompi_close_port_f") 1913 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1914 implicit none 1915 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: port_name 1916 INTEGER, INTENT(OUT) :: ierror 1917 INTEGER, VALUE, INTENT(IN) :: port_name_len 1918 end subroutine pompi_close_port_f 1919 1920 subroutine pompi_comm_accept_f(port_name,info,root,comm,newcomm,ierror,port_name_len) & 1921 BIND(C, name="pompi_comm_accept_f") 1922 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1923 implicit none 1924 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: port_name 1925 INTEGER, INTENT(IN) :: info 1926 INTEGER, INTENT(IN) :: root 1927 INTEGER, INTENT(IN) :: comm 1928 INTEGER, INTENT(OUT) :: newcomm 1929 INTEGER, INTENT(OUT) :: ierror 1930 INTEGER, VALUE, INTENT(IN) :: port_name_len 1931 end subroutine pompi_comm_accept_f 1932 1933 subroutine pompi_comm_connect_f(port_name,info,root,comm,newcomm,ierror,port_name_len) & 1934 BIND(C, name="pompi_comm_connect_f") 1935 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1936 implicit none 1937 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: port_name 1938 INTEGER, INTENT(IN) :: info 1939 INTEGER, INTENT(IN) :: root 1940 INTEGER, INTENT(IN) :: comm 1941 INTEGER, INTENT(OUT) :: newcomm 1942 INTEGER, INTENT(OUT) :: ierror 1943 INTEGER, VALUE, INTENT(IN) :: port_name_len 1944 end subroutine pompi_comm_connect_f 1945 1946 subroutine pompi_comm_disconnect_f(comm,ierror) & 1947 BIND(C, name="pompi_comm_disconnect_f") 1948 implicit none 1949 INTEGER, INTENT(INOUT) :: comm 1950 INTEGER, INTENT(OUT) :: ierror 1951 end subroutine pompi_comm_disconnect_f 1952 1953 subroutine pompi_comm_get_parent_f(parent,ierror) & 1954 BIND(C, name="pompi_comm_get_parent_f") 1955 implicit none 1956 INTEGER, INTENT(OUT) :: parent 1957 INTEGER, INTENT(OUT) :: ierror 1958 end subroutine pompi_comm_get_parent_f 1959 1960 subroutine pompi_comm_join_f(fd,intercomm,ierror) & 1961 BIND(C, name="pompi_comm_join_f") 1962 implicit none 1963 INTEGER, INTENT(IN) :: fd 1964 INTEGER, INTENT(OUT) :: intercomm 1965 INTEGER, INTENT(OUT) :: ierror 1966 end subroutine pompi_comm_join_f 1967 1968 subroutine pompi_comm_spawn_f(command,argv,maxprocs,info,root,comm, & 1969 intercomm, array_of_errcodes,ierror,cmd_len,argv_len) & 1970 BIND(C, name="pompi_comm_spawn_f") 1971 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1972 implicit none 1973 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: command, argv 1974 INTEGER, INTENT(IN) :: maxprocs, root 1975 INTEGER, INTENT(IN) :: info 1976 INTEGER, INTENT(IN) :: comm 1977 INTEGER, INTENT(OUT) :: intercomm 1978 INTEGER, INTENT(OUT) :: array_of_errcodes(*) 1979 INTEGER, INTENT(OUT) :: ierror 1980 INTEGER, VALUE, INTENT(IN) :: cmd_len, argv_len 1981 end subroutine pompi_comm_spawn_f 1982 1983 1984 ! TODO - FIXME to use arrays of strings and pass strlen 1985 subroutine pompi_comm_spawn_multiple_f(count,array_of_commands, & 1986 array_of_argv, array_of_maxprocs,array_of_info,root, & 1987 comm,intercomm,array_of_errcodes,ierror, & 1988 cmd_len, argv_len) & 1989 BIND(C, name="pompi_comm_spawn_multiple_f") 1990 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 1991 implicit none 1992 INTEGER, INTENT(IN) :: count, root 1993 INTEGER, INTENT(IN) :: array_of_maxprocs(count) 1994 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: array_of_commands(*), array_of_argv(*) 1995 INTEGER, INTENT(IN) :: array_of_info(count) 1996 INTEGER, INTENT(IN) :: comm 1997 INTEGER, INTENT(OUT) :: intercomm 1998 INTEGER, INTENT(OUT) :: array_of_errcodes(*) 1999 INTEGER, INTENT(OUT) :: ierror 2000 INTEGER, INTENT(IN) :: cmd_len, argv_len 2001 end subroutine pompi_comm_spawn_multiple_f 2002 2003 subroutine pompi_lookup_name_f(service_name,info,port_name,ierror, & 2004 service_name_len,port_name_len) & 2005 BIND(C, name="pompi_lookup_name_f") 2006 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2007 implicit none 2008 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: service_name 2009 INTEGER, INTENT(IN) :: info 2010 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: port_name 2011 INTEGER, INTENT(OUT) :: ierror 2012 INTEGER, VALUE, INTENT(IN) :: service_name_len, port_name_len 2013 end subroutine pompi_lookup_name_f 2014 2015 subroutine pompi_open_port_f(info,port_name,ierror,port_name_len) & 2016 BIND(C, name="pompi_open_port_f") 2017 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2018 implicit none 2019 INTEGER, INTENT(IN) :: info 2020 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: port_name 2021 INTEGER, INTENT(OUT) :: ierror 2022 INTEGER, VALUE, INTENT(IN) :: port_name_len 2023 end subroutine pompi_open_port_f 2024 2025 subroutine pompi_publish_name_f(service_name,info,port_name,ierror, & 2026 service_name_len,port_name_len) & 2027 BIND(C, name="pompi_publish_name_f") 2028 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2029 implicit none 2030 INTEGER, INTENT(IN) :: info 2031 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: service_name, port_name 2032 INTEGER, INTENT(OUT) :: ierror 2033 INTEGER, VALUE, INTENT(IN) :: service_name_len, port_name_len 2034 end subroutine pompi_publish_name_f 2035 2036 subroutine pompi_unpublish_name_f(service_name,info,port_name, & 2037 ierror,service_name_len,port_name_len) & 2038 BIND(C, name="pompi_unpublish_name_f") 2039 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2040 implicit none 2041 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: service_name, port_name 2042 INTEGER, INTENT(IN) :: info 2043 INTEGER, INTENT(OUT) :: ierror 2044 INTEGER, VALUE, INTENT(IN) :: service_name_len, port_name_len 2045 end subroutine pompi_unpublish_name_f 2046 2047 subroutine pompi_accumulate_f(origin_addr,origin_count,origin_datatype, & 2048 target_rank,target_disp, & 2049 target_count,target_datatype,op,win,ierror) & 2050 BIND(C, name="pompi_accumulate_f") 2051 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2052 implicit none 2053 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2054 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 2055 INTEGER, INTENT(IN) :: origin_datatype 2056 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2057 INTEGER, INTENT(IN) :: target_datatype 2058 INTEGER, INTENT(IN) :: op 2059 INTEGER, INTENT(IN) :: win 2060 INTEGER, INTENT(OUT) :: ierror 2061 end subroutine pompi_accumulate_f 2062 2063 subroutine pompi_raccumulate_f(origin_addr,origin_count,origin_datatype, & 2064 target_rank,target_disp, & 2065 target_count,target_datatype,op,win, & 2066 request,ierror) & 2067 BIND(C, name="pompi_raccumulate_f") 2068 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2069 implicit none 2070 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2071 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 2072 INTEGER, INTENT(IN) :: origin_datatype 2073 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2074 INTEGER, INTENT(IN) :: target_datatype 2075 INTEGER, INTENT(IN) :: op 2076 INTEGER, INTENT(IN) :: win 2077 INTEGER, INTENT(OUT) :: request 2078 INTEGER, INTENT(OUT) :: ierror 2079 end subroutine pompi_raccumulate_f 2080 2081 subroutine pompi_get_f(origin_addr,origin_count,origin_datatype,target_rank, & 2082 target_disp,target_count,target_datatype,win,ierror) & 2083 BIND(C, name="pompi_get_f") 2084 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2085 implicit none 2086 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2087 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 2088 INTEGER, INTENT(IN) :: origin_datatype 2089 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2090 INTEGER, INTENT(IN) :: target_datatype 2091 INTEGER, INTENT(IN) :: win 2092 INTEGER, INTENT(OUT) :: ierror 2093 end subroutine pompi_get_f 2094 2095 subroutine pompi_rget_f(origin_addr,origin_count,origin_datatype,target_rank, & 2096 target_disp,target_count,target_datatype,win,request, & 2097 ierror) & 2098 BIND(C, name="pompi_rget_f") 2099 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2100 implicit none 2101 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2102 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 2103 INTEGER, INTENT(IN) :: origin_datatype 2104 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2105 INTEGER, INTENT(IN) :: target_datatype 2106 INTEGER, INTENT(IN) :: win 2107 INTEGER, INTENT(OUT) :: request 2108 INTEGER, INTENT(OUT) :: ierror 2109 end subroutine pompi_rget_f 2110 2111 subroutine pompi_get_accumulate_f(origin_addr,origin_count,origin_datatype, & 2112 result_addr,result_count,result_datatype, & 2113 target_rank,target_disp, & 2114 target_count,target_datatype,op,win, & 2115 ierror) & 2116 BIND(C, name="pompi_get_accumulate_f") 2117 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2118 implicit none 2119 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2120 INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count 2121 INTEGER, INTENT(IN) :: origin_datatype 2122 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 2123 INTEGER, INTENT(IN) :: result_datatype 2124 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2125 INTEGER, INTENT(IN) :: target_datatype 2126 INTEGER, INTENT(IN) :: op 2127 INTEGER, INTENT(IN) :: win 2128 INTEGER, INTENT(OUT) :: ierror 2129 end subroutine pompi_get_accumulate_f 2130 2131 subroutine pompi_rget_accumulate_f(origin_addr,origin_count,origin_datatype, & 2132 result_addr,result_count,result_datatype, & 2133 target_rank,target_disp, & 2134 target_count,target_datatype,op,win, & 2135 request,ierror) & 2136 BIND(C, name="pompi_rget_accumulate_f") 2137 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2138 implicit none 2139 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2140 INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count 2141 INTEGER, INTENT(IN) :: origin_datatype 2142 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 2143 INTEGER, INTENT(IN) :: result_datatype 2144 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2145 INTEGER, INTENT(IN) :: target_datatype 2146 INTEGER, INTENT(IN) :: op 2147 INTEGER, INTENT(IN) :: win 2148 INTEGER, INTENT(OUT) :: request 2149 INTEGER, INTENT(OUT) :: ierror 2150 end subroutine pompi_rget_accumulate_f 2151 2152 subroutine pompi_put_f(origin_addr,origin_count,origin_datatype,target_rank, & 2153 target_disp,target_count,target_datatype,win,ierror) & 2154 BIND(C, name="pompi_put_f") 2155 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2156 implicit none 2157 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2158 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 2159 INTEGER, INTENT(IN) :: origin_datatype 2160 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2161 INTEGER, INTENT(IN) :: target_datatype 2162 INTEGER, INTENT(IN) :: win 2163 INTEGER, INTENT(OUT) :: ierror 2164 end subroutine pompi_put_f 2165 2166 subroutine pompi_rput_f(origin_addr,origin_count,origin_datatype,target_rank, & 2167 target_disp,target_count,target_datatype,win,request, & 2168 ierror) & 2169 BIND(C, name="pompi_rput_f") 2170 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2171 implicit none 2172 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2173 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 2174 INTEGER, INTENT(IN) :: origin_datatype 2175 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2176 INTEGER, INTENT(IN) :: target_datatype 2177 INTEGER, INTENT(IN) :: win 2178 INTEGER, INTENT(OUT) :: request 2179 INTEGER, INTENT(OUT) :: ierror 2180 end subroutine pompi_rput_f 2181 2182 subroutine pompi_win_complete_f(win,ierror) & 2183 BIND(C, name="pompi_win_complete_f") 2184 implicit none 2185 INTEGER, INTENT(IN) :: win 2186 INTEGER, INTENT(OUT) :: ierror 2187 end subroutine pompi_win_complete_f 2188 2189 subroutine pompi_compare_and_swap_f(origin_addr,compare_addr,result_addr, & 2190 datatype,target_rank,target_disp, win, & 2191 ierror) & 2192 BIND(C, name="pompi_compare_and_swap_f") 2193 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2194 implicit none 2195 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr, compare_addr 2196 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 2197 INTEGER, INTENT(IN) :: datatype 2198 INTEGER, INTENT(IN) :: target_rank 2199 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2200 INTEGER, INTENT(IN) :: win 2201 INTEGER, INTENT(OUT) :: ierror 2202 end subroutine pompi_compare_and_swap_f 2203 2204 subroutine pompi_fetch_and_op_f(origin_addr,result_addr,datatype,target_rank, & 2205 target_disp,op,win,ierror) & 2206 BIND(C, name="pompi_fetch_and_op_f") 2207 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2208 implicit none 2209 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 2210 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 2211 INTEGER, INTENT(IN) :: datatype 2212 INTEGER, INTENT(IN) :: target_rank 2213 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 2214 INTEGER, INTENT(IN) :: op 2215 INTEGER, INTENT(IN) :: win 2216 INTEGER, INTENT(OUT) :: ierror 2217 end subroutine pompi_fetch_and_op_f 2218 2219 subroutine pompi_win_create_f(base,size,disp_unit,info,comm,win,ierror) & 2220 BIND(C, name="pompi_win_create_f") 2221 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2222 implicit none 2223 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base 2224 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size 2225 INTEGER, INTENT(IN) :: disp_unit 2226 INTEGER, INTENT(IN) :: info 2227 INTEGER, INTENT(IN) :: comm 2228 INTEGER, INTENT(OUT) :: win 2229 INTEGER, INTENT(OUT) :: ierror 2230 end subroutine pompi_win_create_f 2231 2232 subroutine pompi_win_flush_f(rank,win,ierror) & 2233 BIND(C, name="pompi_win_flush_f") 2234 implicit none 2235 INTEGER, INTENT(IN) :: rank 2236 INTEGER, INTENT(IN) :: win 2237 INTEGER, INTENT(OUT) :: ierror 2238 end subroutine pompi_win_flush_f 2239 2240 subroutine pompi_win_flush_all_f(win,ierror) & 2241 BIND(C, name="pompi_win_flush_all_f") 2242 implicit none 2243 INTEGER, INTENT(IN) :: win 2244 INTEGER, INTENT(OUT) :: ierror 2245 end subroutine pompi_win_flush_all_f 2246 2247 subroutine pompi_win_flush_local_f(rank,win,ierror) & 2248 BIND(C, name="pompi_win_flush_local_f") 2249 implicit none 2250 INTEGER, INTENT(IN) :: rank 2251 INTEGER, INTENT(IN) :: win 2252 INTEGER, INTENT(OUT) :: ierror 2253 end subroutine pompi_win_flush_local_f 2254 2255 subroutine pompi_win_flush_local_all_f(win,ierror) & 2256 BIND(C, name="pompi_win_flush_local_all_f") 2257 implicit none 2258 INTEGER, INTENT(IN) :: win 2259 INTEGER, INTENT(OUT) :: ierror 2260 end subroutine pompi_win_flush_local_all_f 2261 2262 subroutine pompi_win_fence_f(assert,win,ierror) & 2263 BIND(C, name="pompi_win_fence_f") 2264 implicit none 2265 INTEGER, INTENT(IN) :: assert 2266 INTEGER, INTENT(IN) :: win 2267 INTEGER, INTENT(OUT) :: ierror 2268 end subroutine pompi_win_fence_f 2269 2270 subroutine pompi_win_free_f(win,ierror) & 2271 BIND(C, name="pompi_win_free_f") 2272 implicit none 2273 INTEGER, INTENT(INOUT) :: win 2274 INTEGER, INTENT(OUT) :: ierror 2275 end subroutine pompi_win_free_f 2276 2277 subroutine pompi_win_get_group_f(win,group,ierror) & 2278 BIND(C, name="pompi_win_get_group_f") 2279 implicit none 2280 INTEGER, INTENT(IN) :: win 2281 INTEGER, INTENT(OUT) :: group 2282 INTEGER, INTENT(OUT) :: ierror 2283 end subroutine pompi_win_get_group_f 2284 2285 subroutine pompi_win_lock_f(lock_type,rank,assert,win,ierror) & 2286 BIND(C, name="pompi_win_lock_f") 2287 implicit none 2288 INTEGER, INTENT(IN) :: lock_type, rank, assert 2289 INTEGER, INTENT(IN) :: win 2290 INTEGER, INTENT(OUT) :: ierror 2291 end subroutine pompi_win_lock_f 2292 2293 subroutine pompi_win_lock_all_f(assert,win,ierror) & 2294 BIND(C, name="pompi_win_lock_all_f") 2295 implicit none 2296 INTEGER, INTENT(IN) :: assert 2297 INTEGER, INTENT(IN) :: win 2298 INTEGER, INTENT(OUT) :: ierror 2299 end subroutine pompi_win_lock_all_f 2300 2301 subroutine pompi_win_post_f(group,assert,win,ierror) & 2302 BIND(C, name="pompi_win_post_f") 2303 implicit none 2304 INTEGER, INTENT(IN) :: group 2305 INTEGER, INTENT(IN) :: assert 2306 INTEGER, INTENT(IN) :: win 2307 INTEGER, INTENT(OUT) :: ierror 2308 end subroutine pompi_win_post_f 2309 2310 subroutine pompi_win_shared_query_f(win, rank, size, disp_unit, baseptr,& 2311 ierror) BIND(C, name="pompi_win_shared_query_f") 2312 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 2313 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2314 INTEGER, INTENT(IN) :: win 2315 INTEGER, INTENT(IN) :: rank 2316 INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(OUT) :: size 2317 INTEGER, INTENT(OUT) :: disp_unit 2318 TYPE(C_PTR), INTENT(OUT) :: baseptr 2319 INTEGER, INTENT(OUT) :: ierror 2320 end subroutine pompi_win_shared_query_f 2321 2322 subroutine pompi_win_start_f(group,assert,win,ierror) & 2323 BIND(C, name="pompi_win_start_f") 2324 implicit none 2325 INTEGER, INTENT(IN) :: group 2326 INTEGER, INTENT(IN) :: assert 2327 INTEGER, INTENT(IN) :: win 2328 INTEGER, INTENT(OUT) :: ierror 2329 end subroutine pompi_win_start_f 2330 2331 subroutine pompi_win_sync_f(win,ierror) & 2332 BIND(C, name="pompi_win_sync_f") 2333 implicit none 2334 INTEGER, INTENT(IN) :: win 2335 INTEGER, INTENT(OUT) :: ierror 2336 end subroutine pompi_win_sync_f 2337 2338 subroutine pompi_win_unlock_f(rank,win,ierror) & 2339 BIND(C, name="pompi_win_unlock_f") 2340 implicit none 2341 INTEGER, INTENT(IN) :: rank 2342 INTEGER, INTENT(IN) :: win 2343 INTEGER, INTENT(OUT) :: ierror 2344 end subroutine pompi_win_unlock_f 2345 2346 subroutine pompi_win_unlock_all_f(win,ierror) & 2347 BIND(C, name="pompi_win_unlock_all_f") 2348 implicit none 2349 INTEGER, INTENT(IN) :: win 2350 INTEGER, INTENT(OUT) :: ierror 2351 end subroutine pompi_win_unlock_all_f 2352 2353 subroutine pompi_win_wait_f(win,ierror) & 2354 BIND(C, name="pompi_win_wait_f") 2355 implicit none 2356 INTEGER, INTENT(IN) :: win 2357 INTEGER, INTENT(OUT) :: ierror 2358 end subroutine pompi_win_wait_f 2359 2360 subroutine pompi_grequest_complete_f(request,ierror) & 2361 BIND(C, name="pompi_grequest_complete_f") 2362 implicit none 2363 INTEGER, INTENT(IN) :: request 2364 INTEGER, INTENT(OUT) :: ierror 2365 end subroutine pompi_grequest_complete_f 2366 2367 subroutine pompi_grequest_start_f(query_fn,free_fn,cancel_fn, & 2368 extra_state,request,ierror) & 2369 BIND(C, name="pompi_grequest_start_f") 2370 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2371 use, intrinsic :: iso_c_binding, only: c_funptr 2372 implicit none 2373 type(c_funptr), value :: query_fn 2374 type(c_funptr), value :: free_fn 2375 type(c_funptr), value :: cancel_fn 2376 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 2377 INTEGER, INTENT(OUT) :: request 2378 INTEGER, INTENT(OUT) :: ierror 2379 end subroutine pompi_grequest_start_f 2380 2381 subroutine pompi_init_thread_f(required,provided,ierror) & 2382 BIND(C, name="pompi_init_thread_f") 2383 implicit none 2384 INTEGER, INTENT(IN) :: required 2385 INTEGER, INTENT(OUT) :: provided 2386 INTEGER, INTENT(OUT) :: ierror 2387 end subroutine pompi_init_thread_f 2388 2389 subroutine pompi_query_thread_f(provided,ierror) & 2390 BIND(C, name="pompi_query_thread_f") 2391 implicit none 2392 INTEGER, INTENT(OUT) :: provided 2393 INTEGER, INTENT(OUT) :: ierror 2394 end subroutine pompi_query_thread_f 2395 2396 subroutine pompi_status_set_elements_f(status,datatype,count,ierror) & 2397 BIND(C, name="pompi_status_set_elements_f") 2398 use :: mpi_f08_types, only : MPI_Status 2399 implicit none 2400 TYPE(MPI_Status), INTENT(INOUT) :: status 2401 INTEGER, INTENT(IN) :: datatype 2402 INTEGER, INTENT(IN) :: count 2403 INTEGER, INTENT(OUT) :: ierror 2404 end subroutine pompi_status_set_elements_f 2405 2406 subroutine pompi_file_close_f(fh,ierror) & 2407 BIND(C, name="pompi_file_close_f") 2408 implicit none 2409 INTEGER, INTENT(INOUT) :: fh 2410 INTEGER, INTENT(OUT) :: ierror 2411 end subroutine pompi_file_close_f 2412 2413 subroutine pompi_file_delete_f(filename,info,ierror,filename_len) & 2414 BIND(C, name="pompi_file_delete_f") 2415 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2416 implicit none 2417 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: filename 2418 INTEGER, INTENT(IN) :: info 2419 INTEGER, INTENT(OUT) :: ierror 2420 INTEGER, VALUE, INTENT(IN) :: filename_len 2421 end subroutine pompi_file_delete_f 2422 2423 subroutine pompi_file_get_amode_f(fh,amode,ierror) & 2424 BIND(C, name="pompi_file_get_amode_f") 2425 implicit none 2426 INTEGER, INTENT(IN) :: fh 2427 INTEGER, INTENT(OUT) :: amode 2428 INTEGER, INTENT(OUT) :: ierror 2429 end subroutine pompi_file_get_amode_f 2430 2431 subroutine pompi_file_get_byte_offset_f(fh,offset,disp,ierror) & 2432 BIND(C, name="pompi_file_get_byte_offset_f") 2433 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2434 implicit none 2435 INTEGER, INTENT(IN) :: fh 2436 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2437 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp 2438 INTEGER, INTENT(OUT) :: ierror 2439 end subroutine pompi_file_get_byte_offset_f 2440 2441 subroutine pompi_file_get_group_f(fh,group,ierror) & 2442 BIND(C, name="pompi_file_get_group_f") 2443 implicit none 2444 INTEGER, INTENT(IN) :: fh 2445 INTEGER, INTENT(OUT) :: group 2446 INTEGER, INTENT(OUT) :: ierror 2447 end subroutine pompi_file_get_group_f 2448 2449 subroutine pompi_file_get_info_f(fh,info_used,ierror) & 2450 BIND(C, name="pompi_file_get_info_f") 2451 implicit none 2452 INTEGER, INTENT(IN) :: fh 2453 INTEGER, INTENT(OUT) :: info_used 2454 INTEGER, INTENT(OUT) :: ierror 2455 end subroutine pompi_file_get_info_f 2456 2457 subroutine pompi_file_get_position_f(fh,offset,ierror) & 2458 BIND(C, name="pompi_file_get_position_f") 2459 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2460 implicit none 2461 INTEGER, INTENT(IN) :: fh 2462 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset 2463 INTEGER, INTENT(OUT) :: ierror 2464 end subroutine pompi_file_get_position_f 2465 2466 subroutine pompi_file_get_position_shared_f(fh,offset,ierror) & 2467 BIND(C, name="pompi_file_get_position_shared_f") 2468 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2469 implicit none 2470 INTEGER, INTENT(IN) :: fh 2471 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset 2472 INTEGER, INTENT(OUT) :: ierror 2473 end subroutine pompi_file_get_position_shared_f 2474 2475 subroutine pompi_file_get_size_f(fh,size,ierror) & 2476 BIND(C, name="pompi_file_get_size_f") 2477 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2478 implicit none 2479 INTEGER, INTENT(IN) :: fh 2480 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: size 2481 INTEGER, INTENT(OUT) :: ierror 2482 end subroutine pompi_file_get_size_f 2483 2484 subroutine pompi_file_get_type_extent_f(fh,datatype,extent,ierror) & 2485 BIND(C, name="pompi_file_get_type_extent_f") 2486 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2487 implicit none 2488 INTEGER, INTENT(IN) :: fh 2489 INTEGER, INTENT(IN) :: datatype 2490 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: extent 2491 INTEGER, INTENT(OUT) :: ierror 2492 end subroutine pompi_file_get_type_extent_f 2493 2494 subroutine pompi_file_get_view_f(fh,disp,etype,filetype,datarep,ierror,datarep_len) & 2495 BIND(C, name="pompi_file_get_view_f") 2496 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2497 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2498 implicit none 2499 INTEGER, INTENT(IN) :: fh 2500 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp 2501 INTEGER, INTENT(OUT) :: etype 2502 INTEGER, INTENT(OUT) :: filetype 2503 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: datarep 2504 INTEGER, INTENT(OUT) :: ierror 2505 INTEGER, VALUE, INTENT(IN) :: datarep_len 2506 end subroutine pompi_file_get_view_f 2507 2508 subroutine pompi_file_iread_f(fh,buf,count,datatype,request,ierror) & 2509 BIND(C, name="pompi_file_iread_f") 2510 implicit none 2511 INTEGER, INTENT(IN) :: fh 2512 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2513 INTEGER, INTENT(IN) :: count 2514 INTEGER, INTENT(IN) :: datatype 2515 INTEGER, INTENT(OUT) :: request 2516 INTEGER, INTENT(OUT) :: ierror 2517 end subroutine pompi_file_iread_f 2518 2519 subroutine pompi_file_iread_at_f(fh,offset,buf,count,datatype,request,ierror) & 2520 BIND(C, name="pompi_file_iread_at_f") 2521 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2522 implicit none 2523 INTEGER, INTENT(IN) :: fh 2524 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2525 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2526 INTEGER, INTENT(IN) :: count 2527 INTEGER, INTENT(IN) :: datatype 2528 INTEGER, INTENT(OUT) :: request 2529 INTEGER, INTENT(OUT) :: ierror 2530 end subroutine pompi_file_iread_at_f 2531 2532 subroutine pompi_file_iread_all_f(fh,buf,count,datatype,request,ierror) & 2533 BIND(C, name="pompi_file_iread_all_f") 2534 implicit none 2535 INTEGER, INTENT(IN) :: fh 2536 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2537 INTEGER, INTENT(IN) :: count 2538 INTEGER, INTENT(IN) :: datatype 2539 INTEGER, INTENT(OUT) :: request 2540 INTEGER, INTENT(OUT) :: ierror 2541 end subroutine pompi_file_iread_all_f 2542 2543 subroutine pompi_file_iread_at_all_f(fh,offset,buf,count,datatype,request,ierror) & 2544 BIND(C, name="pompi_file_iread_at_all_f") 2545 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2546 implicit none 2547 INTEGER, INTENT(IN) :: fh 2548 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2549 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2550 INTEGER, INTENT(IN) :: count 2551 INTEGER, INTENT(IN) :: datatype 2552 INTEGER, INTENT(OUT) :: request 2553 INTEGER, INTENT(OUT) :: ierror 2554 end subroutine pompi_file_iread_at_all_f 2555 2556 subroutine pompi_file_iread_shared_f(fh,buf,count,datatype,request,ierror) & 2557 BIND(C, name="pompi_file_iread_shared_f") 2558 implicit none 2559 INTEGER, INTENT(IN) :: fh 2560 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2561 INTEGER, INTENT(IN) :: count 2562 INTEGER, INTENT(IN) :: datatype 2563 INTEGER, INTENT(OUT) :: request 2564 INTEGER, INTENT(OUT) :: ierror 2565 end subroutine pompi_file_iread_shared_f 2566 2567 subroutine pompi_file_iwrite_f(fh,buf,count,datatype,request,ierror) & 2568 BIND(C, name="pompi_file_iwrite_f") 2569 implicit none 2570 INTEGER, INTENT(IN) :: fh 2571 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2572 INTEGER, INTENT(IN) :: count 2573 INTEGER, INTENT(IN) :: datatype 2574 INTEGER, INTENT(OUT) :: request 2575 INTEGER, INTENT(OUT) :: ierror 2576 end subroutine pompi_file_iwrite_f 2577 2578 subroutine pompi_file_iwrite_at_f(fh,offset,buf,count,datatype,request,ierror) & 2579 BIND(C, name="pompi_file_iwrite_at_f") 2580 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2581 implicit none 2582 INTEGER, INTENT(IN) :: fh 2583 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2584 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2585 INTEGER, INTENT(IN) :: count 2586 INTEGER, INTENT(IN) :: datatype 2587 INTEGER, INTENT(OUT) :: request 2588 INTEGER, INTENT(OUT) :: ierror 2589 end subroutine pompi_file_iwrite_at_f 2590 2591 subroutine pompi_file_iwrite_all_f(fh,buf,count,datatype,request,ierror) & 2592 BIND(C, name="pompi_file_iwrite_all_f") 2593 implicit none 2594 INTEGER, INTENT(IN) :: fh 2595 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2596 INTEGER, INTENT(IN) :: count 2597 INTEGER, INTENT(IN) :: datatype 2598 INTEGER, INTENT(OUT) :: request 2599 INTEGER, INTENT(OUT) :: ierror 2600 end subroutine pompi_file_iwrite_all_f 2601 2602 subroutine pompi_file_iwrite_at_all_f(fh,offset,buf,count,datatype,request,ierror) & 2603 BIND(C, name="pompi_file_iwrite_at_all_f") 2604 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2605 implicit none 2606 INTEGER, INTENT(IN) :: fh 2607 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2608 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2609 INTEGER, INTENT(IN) :: count 2610 INTEGER, INTENT(IN) :: datatype 2611 INTEGER, INTENT(OUT) :: request 2612 INTEGER, INTENT(OUT) :: ierror 2613 end subroutine pompi_file_iwrite_at_all_f 2614 2615 subroutine pompi_file_iwrite_shared_f(fh,buf,count,datatype,request,ierror) & 2616 BIND(C, name="pompi_file_iwrite_shared_f") 2617 implicit none 2618 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2619 INTEGER, INTENT(IN) :: fh 2620 INTEGER, INTENT(IN) :: count 2621 INTEGER, INTENT(IN) :: datatype 2622 INTEGER, INTENT(OUT) :: request 2623 INTEGER, INTENT(OUT) :: ierror 2624 end subroutine pompi_file_iwrite_shared_f 2625 2626 subroutine pompi_file_open_f(comm,filename,amode,info,fh,ierror,filename_len) & 2627 BIND(C, name="pompi_file_open_f") 2628 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2629 implicit none 2630 INTEGER, INTENT(IN) :: comm 2631 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: filename 2632 INTEGER, INTENT(IN) :: amode 2633 INTEGER, INTENT(IN) :: info 2634 INTEGER, INTENT(OUT) :: fh 2635 INTEGER, INTENT(OUT) :: ierror 2636 INTEGER, VALUE, INTENT(IN) :: filename_len 2637 end subroutine pompi_file_open_f 2638 2639 subroutine pompi_file_preallocate_f(fh,size,ierror) & 2640 BIND(C, name="pompi_file_preallocate_f") 2641 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2642 implicit none 2643 INTEGER, INTENT(IN) :: fh 2644 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size 2645 INTEGER, INTENT(OUT) :: ierror 2646 end subroutine pompi_file_preallocate_f 2647 2648 subroutine pompi_file_read_f(fh,buf,count,datatype,status,ierror) & 2649 BIND(C, name="pompi_file_read_f") 2650 use :: mpi_f08_types, only : MPI_Status 2651 implicit none 2652 INTEGER, INTENT(IN) :: fh 2653 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2654 INTEGER, INTENT(IN) :: count 2655 INTEGER, INTENT(IN) :: datatype 2656 TYPE(MPI_Status), INTENT(OUT) :: status 2657 INTEGER, INTENT(OUT) :: ierror 2658 end subroutine pompi_file_read_f 2659 2660 subroutine pompi_file_read_all_f(fh,buf,count,datatype,status,ierror) & 2661 BIND(C, name="pompi_file_read_all_f") 2662 use :: mpi_f08_types, only : MPI_Status 2663 implicit none 2664 INTEGER, INTENT(IN) :: fh 2665 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2666 INTEGER, INTENT(IN) :: count 2667 INTEGER, INTENT(IN) :: datatype 2668 TYPE(MPI_Status), INTENT(OUT) :: status 2669 INTEGER, INTENT(OUT) :: ierror 2670 end subroutine pompi_file_read_all_f 2671 2672 subroutine pompi_file_read_all_begin_f(fh,buf,count,datatype,ierror) & 2673 BIND(C, name="pompi_file_read_all_begin_f") 2674 implicit none 2675 INTEGER, INTENT(IN) :: fh 2676 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2677 INTEGER, INTENT(IN) :: count 2678 INTEGER, INTENT(IN) :: datatype 2679 INTEGER, INTENT(OUT) :: ierror 2680 end subroutine pompi_file_read_all_begin_f 2681 2682 subroutine pompi_file_read_all_end_f(fh,buf,status,ierror) & 2683 BIND(C, name="pompi_file_read_all_end_f") 2684 use :: mpi_f08_types, only : MPI_Status 2685 implicit none 2686 INTEGER, INTENT(IN) :: fh 2687 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2688 TYPE(MPI_Status), INTENT(OUT) :: status 2689 INTEGER, INTENT(OUT) :: ierror 2690 end subroutine pompi_file_read_all_end_f 2691 2692 subroutine pompi_file_read_at_f(fh,offset,buf,count,datatype,status,ierror) & 2693 BIND(C, name="pompi_file_read_at_f") 2694 use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND 2695 implicit none 2696 INTEGER, INTENT(IN) :: fh 2697 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2698 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2699 INTEGER, INTENT(IN) :: count 2700 INTEGER, INTENT(IN) :: datatype 2701 TYPE(MPI_Status), INTENT(OUT) :: status 2702 INTEGER, INTENT(OUT) :: ierror 2703 end subroutine pompi_file_read_at_f 2704 2705 subroutine pompi_file_read_at_all_f(fh,offset,buf,count,datatype,status,ierror) & 2706 BIND(C, name="pompi_file_read_at_all_f") 2707 use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND 2708 implicit none 2709 INTEGER, INTENT(IN) :: fh 2710 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2711 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2712 INTEGER, INTENT(IN) :: count 2713 INTEGER, INTENT(IN) :: datatype 2714 TYPE(MPI_Status), INTENT(OUT) :: status 2715 INTEGER, INTENT(OUT) :: ierror 2716 end subroutine pompi_file_read_at_all_f 2717 2718 subroutine pompi_file_read_at_all_begin_f(fh,offset,buf,count,datatype,ierror) & 2719 BIND(C, name="pompi_file_read_at_all_begin_f") 2720 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2721 implicit none 2722 INTEGER, INTENT(IN) :: fh 2723 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2724 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2725 INTEGER, INTENT(IN) :: count 2726 INTEGER, INTENT(IN) :: datatype 2727 INTEGER, INTENT(OUT) :: ierror 2728 end subroutine pompi_file_read_at_all_begin_f 2729 2730 subroutine pompi_file_read_at_all_end_f(fh,buf,status,ierror) & 2731 BIND(C, name="pompi_file_read_at_all_end_f") 2732 use :: mpi_f08_types, only : MPI_Status 2733 implicit none 2734 INTEGER, INTENT(IN) :: fh 2735 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2736 TYPE(MPI_Status), INTENT(OUT) :: status 2737 INTEGER, INTENT(OUT) :: ierror 2738 end subroutine pompi_file_read_at_all_end_f 2739 2740 subroutine pompi_file_read_ordered_f(fh,buf,count,datatype,status,ierror) & 2741 BIND(C, name="pompi_file_read_ordered_f") 2742 use :: mpi_f08_types, only : MPI_Status 2743 implicit none 2744 INTEGER, INTENT(IN) :: fh 2745 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2746 INTEGER, INTENT(IN) :: count 2747 INTEGER, INTENT(IN) :: datatype 2748 TYPE(MPI_Status), INTENT(OUT) :: status 2749 INTEGER, INTENT(OUT) :: ierror 2750 end subroutine pompi_file_read_ordered_f 2751 2752 subroutine pompi_file_read_ordered_begin_f(fh,buf,count,datatype,ierror) & 2753 BIND(C, name="pompi_file_read_ordered_begin_f") 2754 implicit none 2755 INTEGER, INTENT(IN) :: fh 2756 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2757 INTEGER, INTENT(IN) :: count 2758 INTEGER, INTENT(IN) :: datatype 2759 INTEGER, INTENT(OUT) :: ierror 2760 end subroutine pompi_file_read_ordered_begin_f 2761 2762 subroutine pompi_file_read_ordered_end_f(fh,buf,status,ierror) & 2763 BIND(C, name="pompi_file_read_ordered_end_f") 2764 use :: mpi_f08_types, only : MPI_Status 2765 implicit none 2766 INTEGER, INTENT(IN) :: fh 2767 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2768 TYPE(MPI_Status), INTENT(OUT) :: status 2769 INTEGER, INTENT(OUT) :: ierror 2770 end subroutine pompi_file_read_ordered_end_f 2771 2772 subroutine pompi_file_read_shared_f(fh,buf,count,datatype,status,ierror) & 2773 BIND(C, name="pompi_file_read_shared_f") 2774 use :: mpi_f08_types, only : MPI_Status 2775 implicit none 2776 INTEGER, INTENT(IN) :: fh 2777 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2778 INTEGER, INTENT(IN) :: count 2779 INTEGER, INTENT(IN) :: datatype 2780 TYPE(MPI_Status), INTENT(OUT) :: status 2781 INTEGER, INTENT(OUT) :: ierror 2782 end subroutine pompi_file_read_shared_f 2783 2784 subroutine pompi_file_seek_f(fh,offset,whence,ierror) & 2785 BIND(C, name="pompi_file_seek_f") 2786 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2787 implicit none 2788 INTEGER, INTENT(IN) :: fh 2789 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2790 INTEGER, INTENT(IN) :: whence 2791 INTEGER, INTENT(OUT) :: ierror 2792 end subroutine pompi_file_seek_f 2793 2794 subroutine pompi_file_seek_shared_f(fh,offset,whence,ierror) & 2795 BIND(C, name="pompi_file_seek_shared_f") 2796 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2797 implicit none 2798 INTEGER, INTENT(IN) :: fh 2799 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2800 INTEGER, INTENT(IN) :: whence 2801 INTEGER, INTENT(OUT) :: ierror 2802 end subroutine pompi_file_seek_shared_f 2803 2804 subroutine pompi_file_set_info_f(fh,info,ierror) & 2805 BIND(C, name="pompi_file_set_info_f") 2806 implicit none 2807 INTEGER, INTENT(IN) :: fh 2808 INTEGER, INTENT(IN) :: info 2809 INTEGER, INTENT(OUT) :: ierror 2810 end subroutine pompi_file_set_info_f 2811 2812 subroutine pompi_file_set_size_f(fh,size,ierror) & 2813 BIND(C, name="pompi_file_set_size_f") 2814 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2815 implicit none 2816 INTEGER, INTENT(IN) :: fh 2817 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size 2818 INTEGER, INTENT(OUT) :: ierror 2819 end subroutine pompi_file_set_size_f 2820 2821 subroutine pompi_file_set_view_f(fh,disp,etype,filetype,datarep,info,ierror,datarep_len) & 2822 BIND(C, name="pompi_file_set_view_f") 2823 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2824 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2825 implicit none 2826 INTEGER, INTENT(IN) :: fh 2827 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: disp 2828 INTEGER, INTENT(IN) :: etype 2829 INTEGER, INTENT(IN) :: filetype 2830 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep 2831 INTEGER, INTENT(IN) :: info 2832 INTEGER, INTENT(OUT) :: ierror 2833 INTEGER, VALUE, INTENT(IN) :: datarep_len 2834 end subroutine pompi_file_set_view_f 2835 2836 subroutine pompi_file_sync_f(fh,ierror) & 2837 BIND(C, name="pompi_file_sync_f") 2838 implicit none 2839 INTEGER, INTENT(IN) :: fh 2840 INTEGER, INTENT(OUT) :: ierror 2841 end subroutine pompi_file_sync_f 2842 2843 subroutine pompi_file_write_f(fh,buf,count,datatype,status,ierror) & 2844 BIND(C, name="pompi_file_write_f") 2845 use :: mpi_f08_types, only : MPI_Status 2846 implicit none 2847 INTEGER, INTENT(IN) :: fh 2848 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2849 INTEGER, INTENT(IN) :: count 2850 INTEGER, INTENT(IN) :: datatype 2851 TYPE(MPI_Status), INTENT(OUT) :: status 2852 INTEGER, INTENT(OUT) :: ierror 2853 end subroutine pompi_file_write_f 2854 2855 subroutine pompi_file_write_all_f(fh,buf,count,datatype,status,ierror) & 2856 BIND(C, name="pompi_file_write_all_f") 2857 use :: mpi_f08_types, only : MPI_Status 2858 implicit none 2859 INTEGER, INTENT(IN) :: fh 2860 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2861 INTEGER, INTENT(IN) :: count 2862 INTEGER, INTENT(IN) :: datatype 2863 TYPE(MPI_Status), INTENT(OUT) :: status 2864 INTEGER, INTENT(OUT) :: ierror 2865 end subroutine pompi_file_write_all_f 2866 2867 subroutine pompi_file_write_all_begin_f(fh,buf,count,datatype,ierror) & 2868 BIND(C, name="pompi_file_write_all_begin_f") 2869 implicit none 2870 INTEGER, INTENT(IN) :: fh 2871 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2872 INTEGER, INTENT(IN) :: count 2873 INTEGER, INTENT(IN) :: datatype 2874 INTEGER, INTENT(OUT) :: ierror 2875 end subroutine pompi_file_write_all_begin_f 2876 2877 subroutine pompi_file_write_all_end_f(fh,buf,status,ierror) & 2878 BIND(C, name="pompi_file_write_all_end_f") 2879 use :: mpi_f08_types, only : MPI_Status 2880 implicit none 2881 INTEGER, INTENT(IN) :: fh 2882 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2883 TYPE(MPI_Status), INTENT(OUT) :: status 2884 INTEGER, INTENT(OUT) :: ierror 2885 end subroutine pompi_file_write_all_end_f 2886 2887 subroutine pompi_file_write_at_f(fh,offset,buf,count,datatype,status,ierror) & 2888 BIND(C, name="pompi_file_write_at_f") 2889 use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND 2890 implicit none 2891 INTEGER, INTENT(IN) :: fh 2892 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2893 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2894 INTEGER, INTENT(IN) :: count 2895 INTEGER, INTENT(IN) :: datatype 2896 TYPE(MPI_Status), INTENT(OUT) :: status 2897 INTEGER, INTENT(OUT) :: ierror 2898 end subroutine pompi_file_write_at_f 2899 2900 subroutine pompi_file_write_at_all_f(fh,offset,buf,count,datatype,status,ierror) & 2901 BIND(C, name="pompi_file_write_at_all_f") 2902 use :: mpi_f08_types, only : MPI_Status, MPI_OFFSET_KIND 2903 implicit none 2904 INTEGER, INTENT(IN) :: fh 2905 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2906 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2907 INTEGER, INTENT(IN) :: count 2908 INTEGER, INTENT(IN) :: datatype 2909 TYPE(MPI_Status), INTENT(OUT) :: status 2910 INTEGER, INTENT(OUT) :: ierror 2911 end subroutine pompi_file_write_at_all_f 2912 2913 subroutine pompi_file_write_at_all_begin_f(fh,offset,buf,count,datatype,ierror) & 2914 BIND(C, name="pompi_file_write_at_all_begin_f") 2915 use :: mpi_f08_types, only : MPI_OFFSET_KIND 2916 implicit none 2917 INTEGER, INTENT(IN) :: fh 2918 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 2919 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2920 INTEGER, INTENT(IN) :: count 2921 INTEGER, INTENT(IN) :: datatype 2922 INTEGER, INTENT(OUT) :: ierror 2923 end subroutine pompi_file_write_at_all_begin_f 2924 2925 subroutine pompi_file_write_at_all_end_f(fh,buf,status,ierror) & 2926 BIND(C, name="pompi_file_write_at_all_end_f") 2927 use :: mpi_f08_types, only : MPI_Status 2928 implicit none 2929 INTEGER, INTENT(IN) :: fh 2930 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2931 TYPE(MPI_Status), INTENT(OUT) :: status 2932 INTEGER, INTENT(OUT) :: ierror 2933 end subroutine pompi_file_write_at_all_end_f 2934 2935 subroutine pompi_file_write_ordered_f(fh,buf,count,datatype,status,ierror) & 2936 BIND(C, name="pompi_file_write_ordered_f") 2937 use :: mpi_f08_types, only : MPI_Status 2938 implicit none 2939 INTEGER, INTENT(IN) :: fh 2940 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2941 INTEGER, INTENT(IN) :: count 2942 INTEGER, INTENT(IN) :: datatype 2943 TYPE(MPI_Status), INTENT(OUT) :: status 2944 INTEGER, INTENT(OUT) :: ierror 2945 end subroutine pompi_file_write_ordered_f 2946 2947 subroutine pompi_file_write_ordered_begin_f(fh,buf,count,datatype,ierror) & 2948 BIND(C, name="pompi_file_write_ordered_begin_f") 2949 implicit none 2950 INTEGER, INTENT(IN) :: fh 2951 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2952 INTEGER, INTENT(IN) :: count 2953 INTEGER, INTENT(IN) :: datatype 2954 INTEGER, INTENT(OUT) :: ierror 2955 end subroutine pompi_file_write_ordered_begin_f 2956 2957 subroutine pompi_file_write_ordered_end_f(fh,buf,status,ierror) & 2958 BIND(C, name="pompi_file_write_ordered_end_f") 2959 use :: mpi_f08_types, only : MPI_Status 2960 implicit none 2961 INTEGER, INTENT(IN) :: fh 2962 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2963 TYPE(MPI_Status), INTENT(OUT) :: status 2964 INTEGER, INTENT(OUT) :: ierror 2965 end subroutine pompi_file_write_ordered_end_f 2966 2967 subroutine pompi_file_write_shared_f(fh,buf,count,datatype,status,ierror) & 2968 BIND(C, name="pompi_file_write_shared_f") 2969 use :: mpi_f08_types, only : MPI_Status 2970 implicit none 2971 INTEGER, INTENT(IN) :: fh 2972 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 2973 INTEGER, INTENT(IN) :: count 2974 INTEGER, INTENT(IN) :: datatype 2975 TYPE(MPI_Status), INTENT(OUT) :: status 2976 INTEGER, INTENT(OUT) :: ierror 2977 end subroutine pompi_file_write_shared_f 2978 2979 subroutine pompi_register_datarep_f(datarep,read_conversion_fn, & 2980 write_conversion_fn,dtype_file_extent_fn, & 2981 extra_state,ierror,datarep_len) & 2982 BIND(C, name="pompi_register_datarep_f") 2983 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 2984 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2985 use, intrinsic :: iso_c_binding, only: c_funptr 2986 implicit none 2987 type(c_funptr), value :: read_conversion_fn 2988 type(c_funptr), value :: write_conversion_fn 2989 type(c_funptr), value :: dtype_file_extent_fn 2990 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: datarep 2991 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 2992 INTEGER, INTENT(OUT) :: ierror 2993 INTEGER, VALUE, INTENT(IN) :: datarep_len 2994 end subroutine pompi_register_datarep_f 2995 2996 ! 2997 ! MPI_Sizeof is generic for numeric types. This ignore TKR interface 2998 ! is replaced by the specific generics. 2999 ! 3000 !subroutine pompi_sizeof(x,size,ierror) & 3001 ! BIND(C, name="pompi_sizeof_f") 3002 ! implicit none 3003 ! OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: x 3004 ! INTEGER, INTENT(OUT) :: size 3005 ! INTEGER, INTENT(OUT) :: ierror 3006 !end subroutine pompi_sizeof 3007 3008 subroutine pompi_type_create_f90_complex_f(p,r,newtype,ierror) & 3009 BIND(C, name="pompi_type_create_f90_complex_f") 3010 implicit none 3011 INTEGER, INTENT(IN) :: p, r 3012 INTEGER, INTENT(OUT) :: newtype 3013 INTEGER, INTENT(OUT) :: ierror 3014 end subroutine pompi_type_create_f90_complex_f 3015 3016 subroutine pompi_type_create_f90_integer_f(r,newtype,ierror) & 3017 BIND(C, name="pompi_type_create_f90_integer_f") 3018 implicit none 3019 INTEGER, INTENT(IN) :: r 3020 INTEGER, INTENT(OUT) :: newtype 3021 INTEGER, INTENT(OUT) :: ierror 3022 end subroutine pompi_type_create_f90_integer_f 3023 3024 subroutine pompi_type_create_f90_real_f(p,r,newtype,ierror) & 3025 BIND(C, name="pompi_type_create_f90_real_f") 3026 implicit none 3027 INTEGER, INTENT(IN) :: p, r 3028 INTEGER, INTENT(OUT) :: newtype 3029 INTEGER, INTENT(OUT) :: ierror 3030 end subroutine pompi_type_create_f90_real_f 3031 3032 subroutine pompi_type_match_size_f(typeclass,size,datatype,ierror) & 3033 BIND(C, name="pompi_type_match_size_f") 3034 implicit none 3035 INTEGER, INTENT(IN) :: typeclass, size 3036 INTEGER, INTENT(OUT) :: datatype 3037 INTEGER, INTENT(OUT) :: ierror 3038 end subroutine pompi_type_match_size_f 3039 3040 subroutine pompi_pcontrol_f(level) & 3041 BIND(C, name="pompi_pcontrol_f") 3042 implicit none 3043 INTEGER, INTENT(IN) :: level 3044 end subroutine pompi_pcontrol_f 3045 3046 3047 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3048 ! New routines to MPI-3 3049 ! 3050 3051 subroutine pompi_comm_split_type_f(comm,split_type,key,info,newcomm,ierror) & 3052 BIND(C, name="pompi_comm_split_type_f") 3053 implicit none 3054 INTEGER, INTENT(IN) :: comm 3055 INTEGER, INTENT(IN) :: split_type 3056 INTEGER, INTENT(IN) :: key 3057 INTEGER, INTENT(IN) :: info 3058 INTEGER, INTENT(OUT) :: newcomm 3059 INTEGER, INTENT(OUT) :: ierror 3060 end subroutine pompi_comm_split_type_f 3061 3062 subroutine pompi_f_sync_reg_f(buf) & 3063 BIND(C, name="pompi_f_sync_reg_f") 3064 implicit none 3065 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3066 end subroutine pompi_f_sync_reg_f 3067 3068 subroutine pompi_get_library_version_f(name,resultlen,ierror,name_len) & 3069 BIND(C, name="pompi_get_library_version_f") 3070 use, intrinsic :: ISO_C_BINDING, only : C_CHAR 3071 implicit none 3072 CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name 3073 INTEGER, INTENT(OUT) :: resultlen 3074 INTEGER, INTENT(OUT) :: ierror 3075 INTEGER, VALUE, INTENT(IN) :: name_len 3076 end subroutine pompi_get_library_version_f 3077 3078 subroutine pompi_mprobe_f(source,tag,comm,message,status,ierror) & 3079 BIND(C, name="pompi_mprobe_f") 3080 use :: mpi_f08_types, only : MPI_Status 3081 implicit none 3082 INTEGER, INTENT(IN) :: source, tag 3083 INTEGER, INTENT(IN) :: comm 3084 INTEGER, INTENT(OUT) :: message 3085 TYPE(MPI_Status), INTENT(OUT) :: status 3086 INTEGER, INTENT(OUT) :: ierror 3087 end subroutine pompi_mprobe_f 3088 3089 subroutine pompi_imrecv_f(buf,count,datatype,message,request,ierror) & 3090 BIND(C, name="pompi_imrecv_f") 3091 implicit none 3092 OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf 3093 INTEGER, INTENT(IN) :: count 3094 INTEGER, INTENT(IN) :: datatype 3095 INTEGER, INTENT(INOUT) :: message 3096 INTEGER, INTENT(OUT) :: request 3097 INTEGER, INTENT(OUT) :: ierror 3098 end subroutine pompi_imrecv_f 3099 3100 subroutine pompi_mrecv_f(buf,count,datatype,message,status,ierror) & 3101 BIND(C, name="pompi_mrecv_f") 3102 use :: mpi_f08_types, only : MPI_Status 3103 implicit none 3104 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3105 INTEGER, INTENT(IN) :: count 3106 INTEGER, INTENT(IN) :: datatype 3107 INTEGER, INTENT(INOUT) :: message 3108 TYPE(MPI_Status) :: status 3109 INTEGER, INTENT(OUT) :: ierror 3110 end subroutine pompi_mrecv_f 3111 3112 subroutine pompi_neighbor_allgather_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 3113 comm,ierror) & 3114 BIND(C, name="pompi_neighbor_allgather_f") 3115 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 3116 implicit none 3117 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3118 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3119 INTEGER, INTENT(IN) :: sendcount, recvcount 3120 INTEGER, INTENT(IN) :: sendtype, recvtype 3121 INTEGER, INTENT(IN) :: comm 3122 INTEGER, INTENT(OUT) :: ierror 3123 end subroutine pompi_neighbor_allgather_f 3124 3125 subroutine pompi_ineighbor_allgather_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 3126 comm,request,ierror) & 3127 BIND(C, name="pompi_ineighbor_allgather_f") 3128 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 3129 implicit none 3130 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3131 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3132 INTEGER, INTENT(IN) :: sendcount, recvcount 3133 INTEGER, INTENT(IN) :: sendtype, recvtype 3134 INTEGER, INTENT(IN) :: comm 3135 INTEGER, INTENT(OUT) :: request 3136 INTEGER, INTENT(OUT) :: ierror 3137 end subroutine pompi_ineighbor_allgather_f 3138 3139 subroutine pompi_neighbor_allgatherv_f(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 3140 recvtype,comm,ierror) & 3141 BIND(C, name="pompi_neighbor_allgatherv_f") 3142 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 3143 implicit none 3144 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3145 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3146 INTEGER, INTENT(IN) :: sendcount 3147 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 3148 INTEGER, INTENT(IN) :: sendtype, recvtype 3149 INTEGER, INTENT(IN) :: comm 3150 INTEGER, INTENT(OUT) :: ierror 3151 end subroutine pompi_neighbor_allgatherv_f 3152 3153 subroutine pompi_ineighbor_allgatherv_f(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 3154 recvtype,comm,request,ierror) & 3155 BIND(C, name="pompi_ineighbor_allgatherv_f") 3156 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 3157 implicit none 3158 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3159 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3160 INTEGER, INTENT(IN) :: sendcount 3161 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 3162 INTEGER, INTENT(IN) :: sendtype, recvtype 3163 INTEGER, INTENT(IN) :: comm 3164 INTEGER, INTENT(OUT) :: request 3165 INTEGER, INTENT(OUT) :: ierror 3166 end subroutine pompi_ineighbor_allgatherv_f 3167 3168 subroutine pompi_neighbor_alltoall_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 3169 comm,ierror) & 3170 BIND(C, name="pompi_neighbor_alltoall_f") 3171 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 3172 implicit none 3173 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3174 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3175 INTEGER, INTENT(IN) :: sendcount, recvcount 3176 INTEGER, INTENT(IN) :: sendtype, recvtype 3177 INTEGER, INTENT(IN) :: comm 3178 INTEGER, INTENT(OUT) :: ierror 3179 end subroutine pompi_neighbor_alltoall_f 3180 3181 subroutine pompi_ineighbor_alltoall_f(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 3182 comm,request,ierror) & 3183 BIND(C, name="pompi_ineighbor_alltoall_f") 3184 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 3185 implicit none 3186 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3187 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3188 INTEGER, INTENT(IN) :: sendcount, recvcount 3189 INTEGER, INTENT(IN) :: sendtype, recvtype 3190 INTEGER, INTENT(IN) :: comm 3191 INTEGER, INTENT(OUT) :: request 3192 INTEGER, INTENT(OUT) :: ierror 3193 end subroutine pompi_ineighbor_alltoall_f 3194 3195 subroutine pompi_neighbor_alltoallv_f(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & 3196 rdispls,recvtype,comm,ierror) & 3197 BIND(C, name="pompi_neighbor_alltoallv_f") 3198 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 3199 implicit none 3200 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3201 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3202 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 3203 INTEGER, INTENT(IN) :: sendtype, recvtype 3204 INTEGER, INTENT(IN) :: comm 3205 INTEGER, INTENT(OUT) :: ierror 3206 end subroutine pompi_neighbor_alltoallv_f 3207 3208 subroutine pompi_ineighbor_alltoallv_f(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & 3209 rdispls,recvtype,comm,request,ierror) & 3210 BIND(C, name="pompi_ineighbor_alltoallv_f") 3211 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 3212 implicit none 3213 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3214 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3215 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 3216 INTEGER, INTENT(IN) :: sendtype, recvtype 3217 INTEGER, INTENT(IN) :: comm 3218 INTEGER, INTENT(OUT) :: request 3219 INTEGER, INTENT(OUT) :: ierror 3220 end subroutine pompi_ineighbor_alltoallv_f 3221 3222 subroutine pompi_neighbor_alltoallw_f(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & 3223 rdispls,recvtypes,comm,ierror) & 3224 BIND(C, name="pompi_neighbor_alltoallw_f") 3225 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_ADDRESS_KIND 3226 implicit none 3227 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3228 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3229 INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) 3230 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) 3231 INTEGER, INTENT(IN) :: sendtypes, recvtypes 3232 INTEGER, INTENT(IN) :: comm 3233 INTEGER, INTENT(OUT) :: ierror 3234 end subroutine pompi_neighbor_alltoallw_f 3235 3236 subroutine pompi_ineighbor_alltoallw_f(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & 3237 rdispls,recvtypes,comm,request,ierror) & 3238 BIND(C, name="pompi_ineighbor_alltoallw_f") 3239 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND 3240 implicit none 3241 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 3242 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 3243 INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) 3244 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) 3245 INTEGER, INTENT(IN) :: sendtypes, recvtypes 3246 INTEGER, INTENT(IN) :: comm 3247 INTEGER, INTENT(OUT) :: request 3248 INTEGER, INTENT(OUT) :: ierror 3249 end subroutine pompi_ineighbor_alltoallw_f 3250 3251 end interface 3252