1! -*- f90 -*- 2! 3! Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved. 4! Copyright (c) 2009-2013 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-2017 Research Organization for Information Science 11! and Technology (RIST). All rights reserved. 12! Copyright (c) 2017 FUJITSU LIMITED. All rights reserved. 13! $COPYRIGHT$ 14! 15! This file provides the interface specifications for the MPI Fortran 16! API bindings. It effectively maps between public names ("MPI_Init") 17! and the name for tools ("MPI_Init_f08") and the back-end implementation 18! name (e.g., "MPI_Init_f08"). 19 20#include "ompi/mpi/fortran/configure-fortran-output.h" 21 22module pmpi_f08_interfaces 23 24interface PMPI_Bsend 25subroutine PMPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror) 26 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 27 implicit none 28 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 29 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 30 !$PRAGMA IGNORE_TKR buf 31 !DIR$ IGNORE_TKR buf 32 !IBM* IGNORE_TKR buf 33 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 34 INTEGER, INTENT(IN) :: count, dest, tag 35 TYPE(MPI_Datatype), INTENT(IN) :: datatype 36 TYPE(MPI_Comm), INTENT(IN) :: comm 37 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 38end subroutine PMPI_Bsend_f08 39end interface PMPI_Bsend 40 41interface PMPI_Bsend_init 42subroutine PMPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) 43 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 44 implicit none 45 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 46 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 47 !$PRAGMA IGNORE_TKR buf 48 !DIR$ IGNORE_TKR buf 49 !IBM* IGNORE_TKR buf 50 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 51 INTEGER, INTENT(IN) :: count, dest, tag 52 TYPE(MPI_Datatype), INTENT(IN) :: datatype 53 TYPE(MPI_Comm), INTENT(IN) :: comm 54 TYPE(MPI_Request), INTENT(OUT) :: request 55 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 56end subroutine PMPI_Bsend_init_f08 57end interface PMPI_Bsend_init 58 59interface PMPI_Buffer_attach 60subroutine PMPI_Buffer_attach_f08(buffer,size,ierror) 61 implicit none 62 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer 63 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer 64 !$PRAGMA IGNORE_TKR buffer 65 !DIR$ IGNORE_TKR buffer 66 !IBM* IGNORE_TKR buffer 67 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer 68 INTEGER, INTENT(IN) :: size 69 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 70end subroutine PMPI_Buffer_attach_f08 71end interface PMPI_Buffer_attach 72 73interface PMPI_Buffer_detach 74subroutine PMPI_Buffer_detach_f08(buffer_addr,size,ierror) 75 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 76 implicit none 77 TYPE(C_PTR), INTENT(OUT) :: buffer_addr 78 INTEGER, INTENT(OUT) :: size 79 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 80end subroutine PMPI_Buffer_detach_f08 81end interface PMPI_Buffer_detach 82 83interface PMPI_Cancel 84subroutine PMPI_Cancel_f08(request,ierror) 85 use :: mpi_f08_types, only : MPI_Request 86 implicit none 87 TYPE(MPI_Request), INTENT(IN) :: request 88 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 89end subroutine PMPI_Cancel_f08 90end interface PMPI_Cancel 91 92interface PMPI_Get_count 93subroutine PMPI_Get_count_f08(status,datatype,count,ierror) 94 use :: mpi_f08_types, only : MPI_Status, MPI_Datatype 95 implicit none 96 TYPE(MPI_Status), INTENT(IN) :: status 97 TYPE(MPI_Datatype), INTENT(IN) :: datatype 98 INTEGER, INTENT(OUT) :: count 99 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 100end subroutine PMPI_Get_count_f08 101end interface PMPI_Get_count 102 103interface PMPI_Ibsend 104subroutine PMPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) 105 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 106 implicit none 107 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 108 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 109 !$PRAGMA IGNORE_TKR buf 110 !DIR$ IGNORE_TKR buf 111 !IBM* IGNORE_TKR buf 112 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 113 INTEGER, INTENT(IN) :: count, dest, tag 114 TYPE(MPI_Datatype), INTENT(IN) :: datatype 115 TYPE(MPI_Comm), INTENT(IN) :: comm 116 TYPE(MPI_Request), INTENT(OUT) :: request 117 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 118end subroutine PMPI_Ibsend_f08 119end interface PMPI_Ibsend 120 121interface PMPI_Iprobe 122subroutine PMPI_Iprobe_f08(source,tag,comm,flag,status,ierror) 123 use :: mpi_f08_types, only : MPI_Comm, MPI_Status 124 implicit none 125 INTEGER, INTENT(IN) :: source, tag 126 TYPE(MPI_Comm), INTENT(IN) :: comm 127 LOGICAL, INTENT(OUT) :: flag 128 TYPE(MPI_Status), INTENT(OUT) :: status 129 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 130end subroutine PMPI_Iprobe_f08 131end interface PMPI_Iprobe 132 133interface PMPI_Irecv 134subroutine PMPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror) 135 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 136 implicit none 137 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 138 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 139 !$PRAGMA IGNORE_TKR buf 140 !DIR$ IGNORE_TKR buf 141 !IBM* IGNORE_TKR buf 142 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 143 INTEGER, INTENT(IN) :: count, source, tag 144 TYPE(MPI_Datatype), INTENT(IN) :: datatype 145 TYPE(MPI_Comm), INTENT(IN) :: comm 146 TYPE(MPI_Request), INTENT(OUT) :: request 147 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 148end subroutine PMPI_Irecv_f08 149end interface PMPI_Irecv 150 151interface PMPI_Irsend 152subroutine PMPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror) 153 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 154 implicit none 155 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 156 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 157 !$PRAGMA IGNORE_TKR buf 158 !DIR$ IGNORE_TKR buf 159 !IBM* IGNORE_TKR buf 160 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 161 INTEGER, INTENT(IN) :: count, dest, tag 162 TYPE(MPI_Datatype), INTENT(IN) :: datatype 163 TYPE(MPI_Comm), INTENT(IN) :: comm 164 TYPE(MPI_Request), INTENT(OUT) :: request 165 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 166end subroutine PMPI_Irsend_f08 167end interface PMPI_Irsend 168 169interface PMPI_Isend 170subroutine PMPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror) 171 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 172 implicit none 173 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 174 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 175 !$PRAGMA IGNORE_TKR buf 176 !DIR$ IGNORE_TKR buf 177 !IBM* IGNORE_TKR buf 178 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 179 INTEGER, INTENT(IN) :: count, dest, tag 180 TYPE(MPI_Datatype), INTENT(IN) :: datatype 181 TYPE(MPI_Comm), INTENT(IN) :: comm 182 TYPE(MPI_Request), INTENT(OUT) :: request 183 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 184end subroutine PMPI_Isend_f08 185end interface PMPI_Isend 186 187interface PMPI_Issend 188subroutine PMPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror) 189 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 190 implicit none 191 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 192 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 193 !$PRAGMA IGNORE_TKR buf 194 !DIR$ IGNORE_TKR buf 195 !IBM* IGNORE_TKR buf 196 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 197 INTEGER, INTENT(IN) :: count, dest, tag 198 TYPE(MPI_Datatype), INTENT(IN) :: datatype 199 TYPE(MPI_Comm), INTENT(IN) :: comm 200 TYPE(MPI_Request), INTENT(OUT) :: request 201 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 202end subroutine PMPI_Issend_f08 203end interface PMPI_Issend 204 205interface PMPI_Probe 206subroutine PMPI_Probe_f08(source,tag,comm,status,ierror) 207 use :: mpi_f08_types, only : MPI_Comm, MPI_Status 208 implicit none 209 INTEGER, INTENT(IN) :: source, tag 210 TYPE(MPI_Comm), INTENT(IN) :: comm 211 TYPE(MPI_Status), INTENT(OUT) :: status 212 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 213end subroutine PMPI_Probe_f08 214end interface PMPI_Probe 215 216interface PMPI_Recv 217subroutine PMPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror) 218 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status 219 implicit none 220 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 221 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 222 !$PRAGMA IGNORE_TKR buf 223 !DIR$ IGNORE_TKR buf 224 !IBM* IGNORE_TKR buf 225 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 226 INTEGER, INTENT(IN) :: count, source, tag 227 TYPE(MPI_Datatype), INTENT(IN) :: datatype 228 TYPE(MPI_Comm), INTENT(IN) :: comm 229 TYPE(MPI_Status) :: status 230 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 231end subroutine PMPI_Recv_f08 232end interface PMPI_Recv 233 234interface PMPI_Recv_init 235subroutine PMPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror) 236 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 237 implicit none 238 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 239 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 240 !$PRAGMA IGNORE_TKR buf 241 !DIR$ IGNORE_TKR buf 242 !IBM* IGNORE_TKR buf 243 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 244 INTEGER, INTENT(IN) :: count, source, tag 245 TYPE(MPI_Datatype), INTENT(IN) :: datatype 246 TYPE(MPI_Comm), INTENT(IN) :: comm 247 TYPE(MPI_Request), INTENT(OUT) :: request 248 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 249end subroutine PMPI_Recv_init_f08 250end interface PMPI_Recv_init 251 252interface PMPI_Request_free 253subroutine PMPI_Request_free_f08(request,ierror) 254 use :: mpi_f08_types, only : MPI_Request 255 implicit none 256 TYPE(MPI_Request), INTENT(INOUT) :: request 257 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 258end subroutine PMPI_Request_free_f08 259end interface PMPI_Request_free 260 261interface PMPI_Request_get_status 262subroutine PMPI_Request_get_status_f08(request,flag,status,ierror) 263 use :: mpi_f08_types, only : MPI_Request, MPI_Status 264 implicit none 265 TYPE(MPI_Request), INTENT(IN) :: request 266 LOGICAL, INTENT(OUT) :: flag 267 TYPE(MPI_Status) :: status 268 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 269end subroutine PMPI_Request_get_status_f08 270end interface PMPI_Request_get_status 271 272interface PMPI_Rsend 273subroutine PMPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror) 274 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 275 implicit none 276 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 277 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 278 !$PRAGMA IGNORE_TKR buf 279 !DIR$ IGNORE_TKR buf 280 !IBM* IGNORE_TKR buf 281 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 282 INTEGER, INTENT(IN) :: count, dest, tag 283 TYPE(MPI_Datatype), INTENT(IN) :: datatype 284 TYPE(MPI_Comm), INTENT(IN) :: comm 285 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 286end subroutine PMPI_Rsend_f08 287end interface PMPI_Rsend 288 289interface PMPI_Rsend_init 290subroutine PMPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) 291 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 292 implicit none 293 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 294 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 295 !$PRAGMA IGNORE_TKR buf 296 !DIR$ IGNORE_TKR buf 297 !IBM* IGNORE_TKR buf 298 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 299 INTEGER, INTENT(IN) :: count, dest, tag 300 TYPE(MPI_Datatype), INTENT(IN) :: datatype 301 TYPE(MPI_Comm), INTENT(IN) :: comm 302 TYPE(MPI_Request), INTENT(OUT) :: request 303 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 304end subroutine PMPI_Rsend_init_f08 305end interface PMPI_Rsend_init 306 307interface PMPI_Send 308subroutine PMPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror) 309 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 310 implicit none 311 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 312 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 313 !$PRAGMA IGNORE_TKR buf 314 !DIR$ IGNORE_TKR buf 315 !IBM* IGNORE_TKR buf 316 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 317 INTEGER, INTENT(IN) :: count, dest, tag 318 TYPE(MPI_Datatype), INTENT(IN) :: datatype 319 TYPE(MPI_Comm), INTENT(IN) :: comm 320 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 321end subroutine PMPI_Send_f08 322end interface PMPI_Send 323 324interface PMPI_Sendrecv 325subroutine PMPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, & 326 recvcount,recvtype,source,recvtag,comm,status,ierror) 327 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status 328 implicit none 329 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 330 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 331 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 332 !DIR$ IGNORE_TKR sendbuf, recvbuf 333 !IBM* IGNORE_TKR sendbuf, recvbuf 334 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 335 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 336 INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag 337 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 338 TYPE(MPI_Comm), INTENT(IN) :: comm 339 TYPE(MPI_Status) :: status 340 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 341end subroutine PMPI_Sendrecv_f08 342end interface PMPI_Sendrecv 343 344interface PMPI_Sendrecv_replace 345subroutine PMPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvtag, & 346 comm,status,ierror) 347 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status 348 implicit none 349 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 350 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 351 !$PRAGMA IGNORE_TKR buf 352 !DIR$ IGNORE_TKR buf 353 !IBM* IGNORE_TKR buf 354 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 355 INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag 356 TYPE(MPI_Datatype), INTENT(IN) :: datatype 357 TYPE(MPI_Comm), INTENT(IN) :: comm 358 TYPE(MPI_Status) :: status 359 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 360end subroutine PMPI_Sendrecv_replace_f08 361end interface PMPI_Sendrecv_replace 362 363interface PMPI_Send_init 364subroutine PMPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) 365 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 366 implicit none 367 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 368 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 369 !$PRAGMA IGNORE_TKR buf 370 !DIR$ IGNORE_TKR buf 371 !IBM* IGNORE_TKR buf 372 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 373 INTEGER, INTENT(IN) :: count, dest, tag 374 TYPE(MPI_Datatype), INTENT(IN) :: datatype 375 TYPE(MPI_Comm), INTENT(IN) :: comm 376 TYPE(MPI_Request), INTENT(OUT) :: request 377 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 378end subroutine PMPI_Send_init_f08 379end interface PMPI_Send_init 380 381interface PMPI_Ssend 382subroutine PMPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror) 383 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 384 implicit none 385 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 386 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 387 !$PRAGMA IGNORE_TKR buf 388 !DIR$ IGNORE_TKR buf 389 !IBM* IGNORE_TKR buf 390 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 391 INTEGER, INTENT(IN) :: count, dest, tag 392 TYPE(MPI_Datatype), INTENT(IN) :: datatype 393 TYPE(MPI_Comm), INTENT(IN) :: comm 394 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 395end subroutine PMPI_Ssend_f08 396end interface PMPI_Ssend 397 398interface PMPI_Ssend_init 399subroutine PMPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror) 400 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 401 implicit none 402 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 403 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 404 !$PRAGMA IGNORE_TKR buf 405 !DIR$ IGNORE_TKR buf 406 !IBM* IGNORE_TKR buf 407 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 408 INTEGER, INTENT(IN) :: count, dest, tag 409 TYPE(MPI_Datatype), INTENT(IN) :: datatype 410 TYPE(MPI_Comm), INTENT(IN) :: comm 411 TYPE(MPI_Request), INTENT(OUT) :: request 412 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 413end subroutine PMPI_Ssend_init_f08 414end interface PMPI_Ssend_init 415 416interface PMPI_Start 417subroutine PMPI_Start_f08(request,ierror) 418 use :: mpi_f08_types, only : MPI_Request 419 implicit none 420 TYPE(MPI_Request), INTENT(INOUT) :: request 421 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 422end subroutine PMPI_Start_f08 423end interface PMPI_Start 424 425interface PMPI_Startall 426subroutine PMPI_Startall_f08(count,array_of_requests,ierror) 427 use :: mpi_f08_types, only : MPI_Request 428 implicit none 429 INTEGER, INTENT(IN) :: count 430 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count) 431 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 432end subroutine PMPI_Startall_f08 433end interface PMPI_Startall 434 435interface PMPI_Test 436subroutine PMPI_Test_f08(request,flag,status,ierror) 437 use :: mpi_f08_types, only : MPI_Request, MPI_Status 438 implicit none 439 TYPE(MPI_Request), INTENT(INOUT) :: request 440 LOGICAL, INTENT(OUT) :: flag 441 TYPE(MPI_Status) :: status 442 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 443end subroutine PMPI_Test_f08 444end interface PMPI_Test 445 446interface PMPI_Testall 447subroutine PMPI_Testall_f08(count,array_of_requests,flag,array_of_statuses,ierror) 448 use :: mpi_f08_types, only : MPI_Request, MPI_Status 449 implicit none 450 INTEGER, INTENT(IN) :: count 451 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count) 452 LOGICAL, INTENT(OUT) :: flag 453 TYPE(MPI_Status) :: array_of_statuses(*) 454 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 455end subroutine PMPI_Testall_f08 456end interface PMPI_Testall 457 458interface PMPI_Testany 459subroutine PMPI_Testany_f08(count,array_of_requests,index,flag,status,ierror) 460 use :: mpi_f08_types, only : MPI_Request, MPI_Status 461 implicit none 462 INTEGER, INTENT(IN) :: count 463 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count) 464 INTEGER, INTENT(OUT) :: index 465 LOGICAL, INTENT(OUT) :: flag 466 TYPE(MPI_Status) :: status 467 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 468end subroutine PMPI_Testany_f08 469end interface PMPI_Testany 470 471interface PMPI_Testsome 472subroutine PMPI_Testsome_f08(incount,array_of_requests,outcount, & 473 array_of_indices,array_of_statuses,ierror) 474 use :: mpi_f08_types, only : MPI_Request, MPI_Status 475 implicit none 476 INTEGER, INTENT(IN) :: incount 477 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(incount) 478 INTEGER, INTENT(OUT) :: outcount, array_of_indices(*) 479 TYPE(MPI_Status) :: array_of_statuses(*) 480 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 481end subroutine PMPI_Testsome_f08 482end interface PMPI_Testsome 483 484interface PMPI_Test_cancelled 485subroutine PMPI_Test_cancelled_f08(status,flag,ierror) 486 use :: mpi_f08_types, only : MPI_Status 487 implicit none 488 TYPE(MPI_Status), INTENT(IN) :: status 489 LOGICAL, INTENT(OUT) :: flag 490 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 491end subroutine PMPI_Test_cancelled_f08 492end interface PMPI_Test_cancelled 493 494interface PMPI_Wait 495subroutine PMPI_Wait_f08(request,status,ierror) 496 use :: mpi_f08_types, only : MPI_Request, MPI_Status 497 implicit none 498 TYPE(MPI_Request), INTENT(INOUT) :: request 499 TYPE(MPI_Status) :: status 500 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 501end subroutine PMPI_Wait_f08 502end interface PMPI_Wait 503 504interface PMPI_Waitall 505subroutine PMPI_Waitall_f08(count,array_of_requests,array_of_statuses,ierror) 506 use :: mpi_f08_types, only : MPI_Request, MPI_Status 507 implicit none 508 INTEGER, INTENT(IN) :: count 509 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count) 510 TYPE(MPI_Status) :: array_of_statuses(*) 511 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 512end subroutine PMPI_Waitall_f08 513end interface PMPI_Waitall 514 515interface PMPI_Waitany 516subroutine PMPI_Waitany_f08(count,array_of_requests,index,status,ierror) 517 use :: mpi_f08_types, only : MPI_Request, MPI_Status 518 implicit none 519 INTEGER, INTENT(IN) :: count 520 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count) 521 INTEGER, INTENT(OUT) :: index 522 TYPE(MPI_Status) :: status 523 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 524end subroutine PMPI_Waitany_f08 525end interface PMPI_Waitany 526 527interface PMPI_Waitsome 528subroutine PMPI_Waitsome_f08(incount,array_of_requests,outcount, & 529 array_of_indices,array_of_statuses,ierror) 530 use :: mpi_f08_types, only : MPI_Request, MPI_Status 531 implicit none 532 INTEGER, INTENT(IN) :: incount 533 TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(incount) 534 INTEGER, INTENT(OUT) :: outcount, array_of_indices(*) 535 TYPE(MPI_Status) :: array_of_statuses(*) 536 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 537end subroutine PMPI_Waitsome_f08 538end interface PMPI_Waitsome 539 540interface PMPI_Get_address 541subroutine PMPI_Get_address_f08(location,address,ierror) 542 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 543 implicit none 544 !DEC$ ATTRIBUTES NO_ARG_CHECK :: location 545 !GCC$ ATTRIBUTES NO_ARG_CHECK :: location 546 !$PRAGMA IGNORE_TKR location 547 !DIR$ IGNORE_TKR location 548 !IBM* IGNORE_TKR location 549 OMPI_FORTRAN_IGNORE_TKR_TYPE :: location 550 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address 551 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 552end subroutine PMPI_Get_address_f08 553end interface PMPI_Get_address 554 555interface PMPI_Get_elements 556subroutine PMPI_Get_elements_f08(status,datatype,count,ierror) 557 use :: mpi_f08_types, only : MPI_Status, MPI_Datatype 558 implicit none 559 TYPE(MPI_Status), INTENT(IN) :: status 560 TYPE(MPI_Datatype), INTENT(IN) :: datatype 561 INTEGER, INTENT(OUT) :: count 562 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 563end subroutine PMPI_Get_elements_f08 564end interface PMPI_Get_elements 565 566interface PMPI_Get_elements_x 567subroutine PMPI_Get_elements_x_f08(status,datatype,count,ierror) 568 use :: mpi_f08_types, only : MPI_Status, MPI_Datatype, MPI_COUNT_KIND 569 implicit none 570 TYPE(MPI_Status), INTENT(IN) :: status 571 TYPE(MPI_Datatype), INTENT(IN) :: datatype 572 INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: count 573 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 574end subroutine PMPI_Get_elements_x_f08 575end interface PMPI_Get_elements_x 576 577interface PMPI_Pack 578subroutine PMPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ierror) 579 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 580 implicit none 581 !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 582 !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 583 !$PRAGMA IGNORE_TKR inbuf, outbuf 584 !DIR$ IGNORE_TKR inbuf, outbuf 585 !IBM* IGNORE_TKR inbuf, outbuf 586 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf 587 OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf 588 INTEGER, INTENT(IN) :: incount, outsize 589 TYPE(MPI_Datatype), INTENT(IN) :: datatype 590 INTEGER, INTENT(INOUT) :: position 591 TYPE(MPI_Comm), INTENT(IN) :: comm 592 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 593end subroutine PMPI_Pack_f08 594end interface PMPI_Pack 595 596interface PMPI_Pack_external 597subroutine PMPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, & 598 position,ierror) 599 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 600 implicit none 601 CHARACTER(LEN=*), INTENT(IN) :: datarep 602 !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 603 !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 604 !$PRAGMA IGNORE_TKR inbuf, outbuf 605 !DIR$ IGNORE_TKR inbuf, outbuf 606 !IBM* IGNORE_TKR inbuf, outbuf 607 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf 608 OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf 609 INTEGER, INTENT(IN) :: incount 610 TYPE(MPI_Datatype), INTENT(IN) :: datatype 611 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize 612 INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position 613 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 614end subroutine PMPI_Pack_external_f08 615end interface PMPI_Pack_external 616 617interface PMPI_Pack_external_size 618subroutine PMPI_Pack_external_size_f08(datarep,incount,datatype,size,ierror & 619 ) 620 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 621 implicit none 622 TYPE(MPI_Datatype), INTENT(IN) :: datatype 623 INTEGER, INTENT(IN) :: incount 624 CHARACTER(LEN=*), INTENT(IN) :: datarep 625 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: size 626 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 627end subroutine PMPI_Pack_external_size_f08 628end interface PMPI_Pack_external_size 629 630interface PMPI_Pack_size 631subroutine PMPI_Pack_size_f08(incount,datatype,comm,size,ierror) 632 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 633 implicit none 634 INTEGER, INTENT(IN) :: incount 635 TYPE(MPI_Datatype), INTENT(IN) :: datatype 636 TYPE(MPI_Comm), INTENT(IN) :: comm 637 INTEGER, INTENT(OUT) :: size 638 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 639end subroutine PMPI_Pack_size_f08 640end interface PMPI_Pack_size 641 642interface PMPI_Type_commit 643subroutine PMPI_Type_commit_f08(datatype,ierror) 644 use :: mpi_f08_types, only : MPI_Datatype 645 implicit none 646 TYPE(MPI_Datatype), INTENT(INOUT) :: datatype 647 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 648end subroutine PMPI_Type_commit_f08 649end interface PMPI_Type_commit 650 651interface PMPI_Type_contiguous 652subroutine PMPI_Type_contiguous_f08(count,oldtype,newtype,ierror) 653 use :: mpi_f08_types, only : MPI_Datatype 654 implicit none 655 INTEGER, INTENT(IN) :: count 656 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 657 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 658 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 659end subroutine PMPI_Type_contiguous_f08 660end interface PMPI_Type_contiguous 661 662interface PMPI_Type_create_darray 663subroutine PMPI_Type_create_darray_f08(size,rank,ndims,array_of_gsizes, & 664 array_of_distribs,array_of_dargs,array_of_psizes,order, & 665 oldtype,newtype,ierror) 666 use :: mpi_f08_types, only : MPI_Datatype 667 implicit none 668 INTEGER, INTENT(IN) :: size, rank, ndims, order 669 INTEGER, INTENT(IN) :: array_of_gsizes(ndims), array_of_distribs(ndims) 670 INTEGER, INTENT(IN) :: array_of_dargs(ndims), array_of_psizes(ndims) 671 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 672 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 673 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 674end subroutine PMPI_Type_create_darray_f08 675end interface PMPI_Type_create_darray 676 677interface PMPI_Type_create_hindexed 678subroutine PMPI_Type_create_hindexed_f08(count,array_of_blocklengths, & 679 array_of_displacements,oldtype,newtype,ierror) 680 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 681 implicit none 682 INTEGER, INTENT(IN) :: count 683 INTEGER, INTENT(IN) :: array_of_blocklengths(count) 684 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count) 685 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 686 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 687 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 688end subroutine PMPI_Type_create_hindexed_f08 689end interface PMPI_Type_create_hindexed 690 691interface PMPI_Type_create_hvector 692subroutine PMPI_Type_create_hvector_f08(count,blocklength,stride,oldtype,newtype,ierror) 693 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 694 implicit none 695 INTEGER, INTENT(IN) :: count, blocklength 696 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: stride 697 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 698 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 699 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 700end subroutine PMPI_Type_create_hvector_f08 701end interface PMPI_Type_create_hvector 702 703interface PMPI_Type_create_indexed_block 704subroutine PMPI_Type_create_indexed_block_f08(count,blocklength, & 705 array_of_displacements,oldtype,newtype,ierror) 706 use :: mpi_f08_types, only : MPI_Datatype 707 implicit none 708 INTEGER, INTENT(IN) :: count, blocklength 709 INTEGER, INTENT(IN) :: array_of_displacements(count) 710 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 711 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 712 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 713end subroutine PMPI_Type_create_indexed_block_f08 714end interface PMPI_Type_create_indexed_block 715 716interface PMPI_Type_create_hindexed_block 717subroutine PMPI_Type_create_hindexed_block_f08(count,blocklength, & 718 array_of_displacements,oldtype,newtype,ierror) 719 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 720 implicit none 721 INTEGER, INTENT(IN) :: count, blocklength 722 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count) 723 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 724 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 725 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 726end subroutine PMPI_Type_create_hindexed_block_f08 727end interface PMPI_Type_create_hindexed_block 728 729interface PMPI_Type_create_resized 730subroutine PMPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror) 731 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 732 implicit none 733 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: lb, extent 734 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 735 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 736 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 737end subroutine PMPI_Type_create_resized_f08 738end interface PMPI_Type_create_resized 739 740interface PMPI_Type_create_struct 741subroutine PMPI_Type_create_struct_f08(count,array_of_blocklengths, & 742 array_of_displacements,array_of_types,newtype,ierror) 743 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 744 implicit none 745 INTEGER, INTENT(IN) :: count 746 INTEGER, INTENT(IN) :: array_of_blocklengths(count) 747 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count) 748 TYPE(MPI_Datatype), INTENT(IN) :: array_of_types(count) 749 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 750 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 751end subroutine PMPI_Type_create_struct_f08 752end interface PMPI_Type_create_struct 753 754interface PMPI_Type_create_subarray 755subroutine PMPI_Type_create_subarray_f08(ndims,array_of_sizes,array_of_subsizes, & 756 array_of_starts,order,oldtype,newtype,ierror) 757 use :: mpi_f08_types, only : MPI_Datatype 758 implicit none 759 INTEGER, INTENT(IN) :: ndims, order 760 INTEGER, INTENT(IN) :: array_of_sizes(ndims), array_of_subsizes(ndims) 761 INTEGER, INTENT(IN) :: array_of_starts(ndims) 762 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 763 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 764 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 765end subroutine PMPI_Type_create_subarray_f08 766end interface PMPI_Type_create_subarray 767 768interface PMPI_Type_dup 769subroutine PMPI_Type_dup_f08(oldtype,newtype,ierror) 770 use :: mpi_f08_types, only : MPI_Datatype 771 implicit none 772 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 773 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 774 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 775end subroutine PMPI_Type_dup_f08 776end interface PMPI_Type_dup 777 778interface PMPI_Type_free 779subroutine PMPI_Type_free_f08(datatype,ierror) 780 use :: mpi_f08_types, only : MPI_Datatype 781 implicit none 782 TYPE(MPI_Datatype), INTENT(INOUT) :: datatype 783 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 784end subroutine PMPI_Type_free_f08 785end interface PMPI_Type_free 786 787interface PMPI_Type_get_contents 788subroutine PMPI_Type_get_contents_f08(datatype,max_integers,max_addresses,max_datatypes, & 789 array_of_integers,array_of_addresses,array_of_datatypes, & 790 ierror) 791 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 792 implicit none 793 TYPE(MPI_Datatype), INTENT(IN) :: datatype 794 INTEGER, INTENT(IN) :: max_integers, max_addresses, max_datatypes 795 INTEGER, INTENT(OUT) :: array_of_integers(max_integers) 796 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: array_of_addresses(max_addresses) 797 TYPE(MPI_Datatype), INTENT(OUT) :: array_of_datatypes(max_datatypes) 798 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 799end subroutine PMPI_Type_get_contents_f08 800end interface PMPI_Type_get_contents 801 802interface PMPI_Type_get_envelope 803subroutine PMPI_Type_get_envelope_f08(datatype,num_integers,num_addresses,num_datatypes, & 804 combiner,ierror) 805 use :: mpi_f08_types, only : MPI_Datatype 806 implicit none 807 TYPE(MPI_Datatype), INTENT(IN) :: datatype 808 INTEGER, INTENT(OUT) :: num_integers, num_addresses, num_datatypes, combiner 809 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 810end subroutine PMPI_Type_get_envelope_f08 811end interface PMPI_Type_get_envelope 812 813interface PMPI_Type_get_extent 814subroutine PMPI_Type_get_extent_f08(datatype,lb,extent,ierror) 815 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 816 implicit none 817 TYPE(MPI_Datatype), INTENT(IN) :: datatype 818 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: lb, extent 819 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 820end subroutine PMPI_Type_get_extent_f08 821end interface PMPI_Type_get_extent 822 823interface PMPI_Type_get_extent_x 824subroutine PMPI_Type_get_extent_x_f08(datatype,lb,extent,ierror) 825 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND, MPI_COUNT_KIND 826 implicit none 827 TYPE(MPI_Datatype), INTENT(IN) :: datatype 828 INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: lb, extent 829 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 830end subroutine PMPI_Type_get_extent_x_f08 831end interface PMPI_Type_get_extent_x 832 833interface PMPI_Type_get_true_extent 834subroutine PMPI_Type_get_true_extent_f08(datatype,true_lb,true_extent,ierror) 835 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 836 implicit none 837 TYPE(MPI_Datatype), INTENT(IN) :: datatype 838 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: true_lb, true_extent 839 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 840end subroutine PMPI_Type_get_true_extent_f08 841end interface PMPI_Type_get_true_extent 842 843interface PMPI_Type_get_true_extent_x 844subroutine PMPI_Type_get_true_extent_x_f08(datatype,true_lb,true_extent,ierror) 845 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND, MPI_COUNT_KIND 846 implicit none 847 TYPE(MPI_Datatype), INTENT(IN) :: datatype 848 INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: true_lb, true_extent 849 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 850end subroutine PMPI_Type_get_true_extent_x_f08 851end interface PMPI_Type_get_true_extent_x 852 853interface PMPI_Type_indexed 854subroutine PMPI_Type_indexed_f08(count,array_of_blocklengths, & 855 array_of_displacements,oldtype,newtype,ierror) 856 use :: mpi_f08_types, only : MPI_Datatype 857 implicit none 858 INTEGER, INTENT(IN) :: count 859 INTEGER, INTENT(IN) :: array_of_blocklengths(count), array_of_displacements(count) 860 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 861 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 862 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 863end subroutine PMPI_Type_indexed_f08 864end interface PMPI_Type_indexed 865 866interface PMPI_Type_size 867subroutine PMPI_Type_size_f08(datatype,size,ierror) 868 use :: mpi_f08_types, only : MPI_Datatype 869 implicit none 870 TYPE(MPI_Datatype), INTENT(IN) :: datatype 871 INTEGER, INTENT(OUT) :: size 872 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 873end subroutine PMPI_Type_size_f08 874end interface PMPI_Type_size 875 876interface PMPI_Type_size_x 877subroutine PMPI_Type_size_x_f08(datatype,size,ierror) 878 use :: mpi_f08_types, only : MPI_Datatype, MPI_COUNT_KIND 879 implicit none 880 TYPE(MPI_Datatype), INTENT(IN) :: datatype 881 INTEGER(MPI_COUNT_KIND), INTENT(OUT) :: size 882 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 883end subroutine PMPI_Type_size_x_f08 884end interface PMPI_Type_size_x 885 886interface PMPI_Type_vector 887subroutine PMPI_Type_vector_f08(count,blocklength,stride,oldtype,newtype,ierror) 888 use :: mpi_f08_types, only : MPI_Datatype 889 implicit none 890 INTEGER, INTENT(IN) :: count, blocklength, stride 891 TYPE(MPI_Datatype), INTENT(IN) :: oldtype 892 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 893 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 894end subroutine PMPI_Type_vector_f08 895end interface PMPI_Type_vector 896 897interface PMPI_Unpack 898subroutine PMPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm, & 899 ierror) 900 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 901 implicit none 902 !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 903 !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 904 !$PRAGMA IGNORE_TKR inbuf, outbuf 905 !DIR$ IGNORE_TKR inbuf, outbuf 906 !IBM* IGNORE_TKR inbuf, outbuf 907 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf 908 OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf 909 INTEGER, INTENT(IN) :: insize, outcount 910 INTEGER, INTENT(INOUT) :: position 911 TYPE(MPI_Datatype), INTENT(IN) :: datatype 912 TYPE(MPI_Comm), INTENT(IN) :: comm 913 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 914end subroutine PMPI_Unpack_f08 915end interface PMPI_Unpack 916 917interface PMPI_Unpack_external 918subroutine PMPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount, & 919 datatype,ierror & 920 ) 921 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 922 implicit none 923 CHARACTER(LEN=*), INTENT(IN) :: datarep 924 !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 925 !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf 926 !$PRAGMA IGNORE_TKR inbuf, outbuf 927 !DIR$ IGNORE_TKR inbuf, outbuf 928 !IBM* IGNORE_TKR inbuf, outbuf 929 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf 930 OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf 931 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize 932 INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position 933 INTEGER, INTENT(IN) :: outcount 934 TYPE(MPI_Datatype), INTENT(IN) :: datatype 935 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 936end subroutine PMPI_Unpack_external_f08 937end interface PMPI_Unpack_external 938 939interface PMPI_Allgather 940subroutine PMPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 941 comm,ierror) 942 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 943 implicit none 944 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 945 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 946 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 947 !DIR$ IGNORE_TKR sendbuf, recvbuf 948 !IBM* IGNORE_TKR sendbuf, recvbuf 949 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 950 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 951 INTEGER, INTENT(IN) :: sendcount, recvcount 952 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 953 TYPE(MPI_Comm), INTENT(IN) :: comm 954 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 955end subroutine PMPI_Allgather_f08 956end interface PMPI_Allgather 957 958interface PMPI_Iallgather 959subroutine PMPI_Iallgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 960 comm,request,ierror) 961 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 962 implicit none 963 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 964 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 965 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 966 !DIR$ IGNORE_TKR sendbuf, recvbuf 967 !IBM* IGNORE_TKR sendbuf, recvbuf 968 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 969 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 970 INTEGER, INTENT(IN) :: sendcount, recvcount 971 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 972 TYPE(MPI_Comm), INTENT(IN) :: comm 973 TYPE(MPI_Request), INTENT(OUT) :: request 974 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 975end subroutine PMPI_Iallgather_f08 976end interface PMPI_Iallgather 977 978interface PMPI_Allgatherv 979subroutine PMPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 980 recvtype,comm,ierror) 981 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 982 implicit none 983 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 984 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 985 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 986 !DIR$ IGNORE_TKR sendbuf, recvbuf 987 !IBM* IGNORE_TKR sendbuf, recvbuf 988 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 989 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 990 INTEGER, INTENT(IN) :: sendcount 991 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 992 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 993 TYPE(MPI_Comm), INTENT(IN) :: comm 994 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 995end subroutine PMPI_Allgatherv_f08 996end interface PMPI_Allgatherv 997 998interface PMPI_Iallgatherv 999subroutine PMPI_Iallgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 1000 recvtype,comm,request,ierror) 1001 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1002 implicit none 1003 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1004 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1005 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1006 !DIR$ IGNORE_TKR sendbuf, recvbuf 1007 !IBM* IGNORE_TKR sendbuf, recvbuf 1008 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1009 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1010 INTEGER, INTENT(IN) :: sendcount 1011 INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*) 1012 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1013 TYPE(MPI_Comm), INTENT(IN) :: comm 1014 TYPE(MPI_Request), INTENT(OUT) :: request 1015 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1016end subroutine PMPI_Iallgatherv_f08 1017end interface PMPI_Iallgatherv 1018 1019interface PMPI_Allreduce 1020subroutine PMPI_Allreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) 1021 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm 1022 implicit none 1023 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1024 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1025 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1026 !DIR$ IGNORE_TKR sendbuf, recvbuf 1027 !IBM* IGNORE_TKR sendbuf, recvbuf 1028 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1029 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1030 INTEGER, INTENT(IN) :: count 1031 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1032 TYPE(MPI_Op), INTENT(IN) :: op 1033 TYPE(MPI_Comm), INTENT(IN) :: comm 1034 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1035end subroutine PMPI_Allreduce_f08 1036end interface PMPI_Allreduce 1037 1038interface PMPI_Iallreduce 1039subroutine PMPI_Iallreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) 1040 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request 1041 implicit none 1042 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1043 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1044 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1045 !DIR$ IGNORE_TKR sendbuf, recvbuf 1046 !IBM* IGNORE_TKR sendbuf, recvbuf 1047 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1048 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1049 INTEGER, INTENT(IN) :: count 1050 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1051 TYPE(MPI_Op), INTENT(IN) :: op 1052 TYPE(MPI_Comm), INTENT(IN) :: comm 1053 TYPE(MPI_Request), INTENT(OUT) :: request 1054 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1055end subroutine PMPI_Iallreduce_f08 1056end interface PMPI_Iallreduce 1057 1058interface PMPI_Alltoall 1059subroutine PMPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 1060 comm,ierror) 1061 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1062 implicit none 1063 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1064 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1065 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1066 !DIR$ IGNORE_TKR sendbuf, recvbuf 1067 !IBM* IGNORE_TKR sendbuf, recvbuf 1068 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1069 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1070 INTEGER, INTENT(IN) :: sendcount, recvcount 1071 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1072 TYPE(MPI_Comm), INTENT(IN) :: comm 1073 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1074end subroutine PMPI_Alltoall_f08 1075end interface PMPI_Alltoall 1076 1077interface PMPI_Ialltoall 1078subroutine PMPI_Ialltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 1079 comm,request,ierror) 1080 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1081 implicit none 1082 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1083 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1084 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1085 !DIR$ IGNORE_TKR sendbuf, recvbuf 1086 !IBM* IGNORE_TKR sendbuf, recvbuf 1087 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1088 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1089 INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcount, recvcount 1090 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1091 TYPE(MPI_Comm), INTENT(IN) :: comm 1092 TYPE(MPI_Request), INTENT(OUT) :: request 1093 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1094end subroutine PMPI_Ialltoall_f08 1095end interface PMPI_Ialltoall 1096 1097interface PMPI_Alltoallv 1098subroutine PMPI_Alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & 1099 rdispls,recvtype,comm,ierror) 1100 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1101 implicit none 1102 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1103 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1104 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1105 !DIR$ IGNORE_TKR sendbuf, recvbuf 1106 !IBM* IGNORE_TKR sendbuf, recvbuf 1107 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1108 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1109 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 1110 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1111 TYPE(MPI_Comm), INTENT(IN) :: comm 1112 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1113end subroutine PMPI_Alltoallv_f08 1114end interface PMPI_Alltoallv 1115 1116interface PMPI_Ialltoallv 1117subroutine PMPI_Ialltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & 1118 rdispls,recvtype,comm,request,ierror) 1119 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1120 implicit none 1121 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1122 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1123 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1124 !DIR$ IGNORE_TKR sendbuf, recvbuf 1125 !IBM* IGNORE_TKR sendbuf, recvbuf 1126 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1127 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1128 INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 1129 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1130 TYPE(MPI_Comm), INTENT(IN) :: comm 1131 TYPE(MPI_Request), INTENT(OUT) :: request 1132 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1133end subroutine PMPI_Ialltoallv_f08 1134end interface PMPI_Ialltoallv 1135 1136interface PMPI_Alltoallw 1137subroutine PMPI_Alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & 1138 rdispls,recvtypes,comm,ierror) 1139 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1140 implicit none 1141 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1142 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1143 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1144 !DIR$ IGNORE_TKR sendbuf, recvbuf 1145 !IBM* IGNORE_TKR sendbuf, recvbuf 1146 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1147 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1148 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 1149 TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) 1150 TYPE(MPI_Comm), INTENT(IN) :: comm 1151 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1152end subroutine PMPI_Alltoallw_f08 1153end interface PMPI_Alltoallw 1154 1155interface PMPI_Ialltoallw 1156subroutine PMPI_Ialltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & 1157 rdispls,recvtypes,comm,request,ierror) 1158 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1159 implicit none 1160 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1161 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1162 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1163 !DIR$ IGNORE_TKR sendbuf, recvbuf 1164 !IBM* IGNORE_TKR sendbuf, recvbuf 1165 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1166 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1167 INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 1168 TYPE(MPI_Datatype), INTENT(IN), ASYNCHRONOUS :: sendtypes(*), recvtypes(*) 1169 TYPE(MPI_Comm), INTENT(IN) :: comm 1170 TYPE(MPI_Request), INTENT(OUT) :: request 1171 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1172end subroutine PMPI_Ialltoallw_f08 1173end interface PMPI_Ialltoallw 1174 1175interface PMPI_Barrier 1176subroutine PMPI_Barrier_f08(comm,ierror) 1177 use :: mpi_f08_types, only : MPI_Comm 1178 implicit none 1179 TYPE(MPI_Comm), INTENT(IN) :: comm 1180 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1181end subroutine PMPI_Barrier_f08 1182end interface PMPI_Barrier 1183 1184interface PMPI_Ibarrier 1185subroutine PMPI_Ibarrier_f08(comm,request,ierror) 1186 use :: mpi_f08_types, only : MPI_Comm, MPI_Request 1187 implicit none 1188 TYPE(MPI_Comm), INTENT(IN) :: comm 1189 TYPE(MPI_Request), INTENT(OUT) :: request 1190 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1191end subroutine PMPI_Ibarrier_f08 1192end interface PMPI_Ibarrier 1193 1194interface PMPI_Bcast 1195subroutine PMPI_Bcast_f08(buffer,count,datatype,root,comm,ierror) 1196 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1197 implicit none 1198 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer 1199 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer 1200 !$PRAGMA IGNORE_TKR buffer 1201 !DIR$ IGNORE_TKR buffer 1202 !IBM* IGNORE_TKR buffer 1203 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer 1204 INTEGER, INTENT(IN) :: count, root 1205 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1206 TYPE(MPI_Comm), INTENT(IN) :: comm 1207 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1208end subroutine PMPI_Bcast_f08 1209end interface PMPI_Bcast 1210 1211interface PMPI_Ibcast 1212subroutine PMPI_Ibcast_f08(buffer,count,datatype,root,comm,request,ierror) 1213 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1214 implicit none 1215 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer 1216 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer 1217 !$PRAGMA IGNORE_TKR buffer 1218 !DIR$ IGNORE_TKR buffer 1219 !IBM* IGNORE_TKR buffer 1220 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: buffer 1221 INTEGER, INTENT(IN) :: count, root 1222 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1223 TYPE(MPI_Comm), INTENT(IN) :: comm 1224 TYPE(MPI_Request), INTENT(OUT) :: request 1225 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1226end subroutine PMPI_Ibcast_f08 1227end interface PMPI_Ibcast 1228 1229interface PMPI_Exscan 1230subroutine PMPI_Exscan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) 1231 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm 1232 implicit none 1233 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1234 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1235 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1236 !DIR$ IGNORE_TKR sendbuf, recvbuf 1237 !IBM* IGNORE_TKR sendbuf, recvbuf 1238 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1239 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1240 INTEGER, INTENT(IN) :: count 1241 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1242 TYPE(MPI_Op), INTENT(IN) :: op 1243 TYPE(MPI_Comm), INTENT(IN) :: comm 1244 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1245end subroutine PMPI_Exscan_f08 1246end interface PMPI_Exscan 1247 1248interface PMPI_Iexscan 1249subroutine PMPI_Iexscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) 1250 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request 1251 implicit none 1252 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1253 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1254 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1255 !DIR$ IGNORE_TKR sendbuf, recvbuf 1256 !IBM* IGNORE_TKR sendbuf, recvbuf 1257 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1258 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1259 INTEGER, INTENT(IN) :: count 1260 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1261 TYPE(MPI_Op), INTENT(IN) :: op 1262 TYPE(MPI_Comm), INTENT(IN) :: comm 1263 TYPE(MPI_Request), INTENT(OUT) :: request 1264 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1265end subroutine PMPI_Iexscan_f08 1266end interface PMPI_Iexscan 1267 1268interface PMPI_Gather 1269subroutine PMPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 1270 root,comm,ierror) 1271 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1272 implicit none 1273 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1274 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1275 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1276 !DIR$ IGNORE_TKR sendbuf, recvbuf 1277 !IBM* IGNORE_TKR sendbuf, recvbuf 1278 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1279 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1280 INTEGER, INTENT(IN) :: sendcount, recvcount, root 1281 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1282 TYPE(MPI_Comm), INTENT(IN) :: comm 1283 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1284end subroutine PMPI_Gather_f08 1285end interface PMPI_Gather 1286 1287interface PMPI_Igather 1288subroutine PMPI_Igather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 1289 root,comm,request,ierror) 1290 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1291 implicit none 1292 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1293 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1294 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1295 !DIR$ IGNORE_TKR sendbuf, recvbuf 1296 !IBM* IGNORE_TKR sendbuf, recvbuf 1297 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1298 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1299 INTEGER, INTENT(IN) :: sendcount, recvcount, root 1300 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1301 TYPE(MPI_Comm), INTENT(IN) :: comm 1302 TYPE(MPI_Request), INTENT(OUT) :: request 1303 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1304end subroutine PMPI_Igather_f08 1305end interface PMPI_Igather 1306 1307interface PMPI_Gatherv 1308subroutine PMPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 1309 recvtype,root,comm,ierror) 1310 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1311 implicit none 1312 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1313 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1314 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1315 !DIR$ IGNORE_TKR sendbuf, recvbuf 1316 !IBM* IGNORE_TKR sendbuf, recvbuf 1317 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1318 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1319 INTEGER, INTENT(IN) :: sendcount, root 1320 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 1321 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1322 TYPE(MPI_Comm), INTENT(IN) :: comm 1323 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1324end subroutine PMPI_Gatherv_f08 1325end interface PMPI_Gatherv 1326 1327interface PMPI_Igatherv 1328subroutine PMPI_Igatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 1329 recvtype,root,comm,request,ierror) 1330 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1331 implicit none 1332 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1333 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1334 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1335 !DIR$ IGNORE_TKR sendbuf, recvbuf 1336 !IBM* IGNORE_TKR sendbuf, recvbuf 1337 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1338 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1339 INTEGER, INTENT(IN) :: sendcount, root 1340 INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*), displs(*) 1341 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1342 TYPE(MPI_Comm), INTENT(IN) :: comm 1343 TYPE(MPI_Request), INTENT(OUT) :: request 1344 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1345end subroutine PMPI_Igatherv_f08 1346end interface PMPI_Igatherv 1347 1348interface PMPI_Op_commutative 1349subroutine PMPI_Op_commutative_f08(op,commute,ierror) 1350 use :: mpi_f08_types, only : MPI_Op 1351 implicit none 1352 TYPE(MPI_Op), INTENT(IN) :: op 1353 LOGICAL, INTENT(OUT) :: commute 1354 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1355end subroutine PMPI_Op_commutative_f08 1356end interface PMPI_Op_commutative 1357 1358interface PMPI_Op_create 1359subroutine PMPI_Op_create_f08(user_fn,commute,op,ierror) 1360 use :: mpi_f08_types, only : MPI_Op 1361 use :: mpi_f08_interfaces_callbacks, only : MPI_User_function 1362 implicit none 1363 PROCEDURE(MPI_User_function) :: user_fn 1364 LOGICAL, INTENT(IN) :: commute 1365 TYPE(MPI_Op), INTENT(OUT) :: op 1366 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1367end subroutine PMPI_Op_create_f08 1368end interface PMPI_Op_create 1369 1370interface PMPI_Op_free 1371subroutine PMPI_Op_free_f08(op,ierror) 1372 use :: mpi_f08_types, only : MPI_Op 1373 implicit none 1374 TYPE(MPI_Op), INTENT(INOUT) :: op 1375 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1376end subroutine PMPI_Op_free_f08 1377end interface PMPI_Op_free 1378 1379interface PMPI_Reduce 1380subroutine PMPI_Reduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,ierror) 1381 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm 1382 implicit none 1383 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1384 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1385 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1386 !DIR$ IGNORE_TKR sendbuf, recvbuf 1387 !IBM* IGNORE_TKR sendbuf, recvbuf 1388 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1389 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1390 INTEGER, INTENT(IN) :: count, root 1391 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1392 TYPE(MPI_Op), INTENT(IN) :: op 1393 TYPE(MPI_Comm), INTENT(IN) :: comm 1394 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1395end subroutine PMPI_Reduce_f08 1396end interface PMPI_Reduce 1397 1398interface PMPI_Ireduce 1399subroutine PMPI_Ireduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,request,ierror) 1400 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request 1401 implicit none 1402 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1403 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1404 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1405 !DIR$ IGNORE_TKR sendbuf, recvbuf 1406 !IBM* IGNORE_TKR sendbuf, recvbuf 1407 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1408 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1409 INTEGER, INTENT(IN) :: count, root 1410 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1411 TYPE(MPI_Op), INTENT(IN) :: op 1412 TYPE(MPI_Comm), INTENT(IN) :: comm 1413 TYPE(MPI_Request), INTENT(OUT) :: request 1414 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1415end subroutine PMPI_Ireduce_f08 1416end interface PMPI_Ireduce 1417 1418interface PMPI_Reduce_local 1419subroutine PMPI_Reduce_local_f08(inbuf,inoutbuf,count,datatype,op,ierror) 1420 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op 1421 implicit none 1422 !DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, inoutbuf 1423 !GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, inoutbuf 1424 !$PRAGMA IGNORE_TKR inbuf, inoutbuf 1425 !DIR$ IGNORE_TKR inbuf, inoutbuf 1426 !IBM* IGNORE_TKR inbuf, inoutbuf 1427 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf 1428 OMPI_FORTRAN_IGNORE_TKR_TYPE :: inoutbuf 1429 INTEGER, INTENT(IN) :: count 1430 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1431 TYPE(MPI_Op), INTENT(IN) :: op 1432 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1433end subroutine PMPI_Reduce_local_f08 1434end interface PMPI_Reduce_local 1435 1436interface PMPI_Reduce_scatter 1437subroutine PMPI_Reduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, & 1438 ierror) 1439 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm 1440 implicit none 1441 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1442 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1443 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1444 !DIR$ IGNORE_TKR sendbuf, recvbuf 1445 !IBM* IGNORE_TKR sendbuf, recvbuf 1446 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1447 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1448 INTEGER, INTENT(IN) :: recvcounts(*) 1449 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1450 TYPE(MPI_Op), INTENT(IN) :: op 1451 TYPE(MPI_Comm), INTENT(IN) :: comm 1452 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1453end subroutine PMPI_Reduce_scatter_f08 1454end interface PMPI_Reduce_scatter 1455 1456interface PMPI_Ireduce_scatter 1457subroutine PMPI_Ireduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, & 1458 request,ierror) 1459 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request 1460 implicit none 1461 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1462 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1463 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1464 !DIR$ IGNORE_TKR sendbuf, recvbuf 1465 !IBM* IGNORE_TKR sendbuf, recvbuf 1466 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1467 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1468 INTEGER, INTENT(IN), ASYNCHRONOUS :: recvcounts(*) 1469 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1470 TYPE(MPI_Op), INTENT(IN) :: op 1471 TYPE(MPI_Comm), INTENT(IN) :: comm 1472 TYPE(MPI_Request), INTENT(OUT) :: request 1473 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1474end subroutine PMPI_Ireduce_scatter_f08 1475end interface PMPI_Ireduce_scatter 1476 1477interface PMPI_Reduce_scatter_block 1478subroutine PMPI_Reduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, & 1479 ierror) 1480 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm 1481 implicit none 1482 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1483 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1484 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1485 !DIR$ IGNORE_TKR sendbuf, recvbuf 1486 !IBM* IGNORE_TKR sendbuf, recvbuf 1487 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1488 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1489 INTEGER, INTENT(IN) :: recvcount 1490 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1491 TYPE(MPI_Op), INTENT(IN) :: op 1492 TYPE(MPI_Comm), INTENT(IN) :: comm 1493 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1494end subroutine PMPI_Reduce_scatter_block_f08 1495end interface PMPI_Reduce_scatter_block 1496 1497interface PMPI_Ireduce_scatter_block 1498subroutine PMPI_Ireduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, & 1499 request,ierror) 1500 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request 1501 implicit none 1502 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1503 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1504 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1505 !DIR$ IGNORE_TKR sendbuf, recvbuf 1506 !IBM* IGNORE_TKR sendbuf, recvbuf 1507 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1508 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1509 INTEGER, INTENT(IN) :: recvcount 1510 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1511 TYPE(MPI_Op), INTENT(IN) :: op 1512 TYPE(MPI_Comm), INTENT(IN) :: comm 1513 TYPE(MPI_Request), INTENT(OUT) :: request 1514 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1515end subroutine PMPI_Ireduce_scatter_block_f08 1516end interface PMPI_Ireduce_scatter_block 1517 1518interface PMPI_Scan 1519subroutine PMPI_Scan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror) 1520 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm 1521 implicit none 1522 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1523 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1524 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1525 !DIR$ IGNORE_TKR sendbuf, recvbuf 1526 !IBM* IGNORE_TKR sendbuf, recvbuf 1527 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1528 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1529 INTEGER, INTENT(IN) :: count 1530 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1531 TYPE(MPI_Op), INTENT(IN) :: op 1532 TYPE(MPI_Comm), INTENT(IN) :: comm 1533 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1534end subroutine PMPI_Scan_f08 1535end interface PMPI_Scan 1536 1537interface PMPI_Iscan 1538subroutine PMPI_Iscan_f08(sendbuf,recvbuf,count,datatype,op,comm,request,ierror) 1539 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm, MPI_Request 1540 implicit none 1541 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1542 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1543 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1544 !DIR$ IGNORE_TKR sendbuf, recvbuf 1545 !IBM* IGNORE_TKR sendbuf, recvbuf 1546 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1547 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1548 INTEGER, INTENT(IN) :: count 1549 TYPE(MPI_Datatype), INTENT(IN) :: datatype 1550 TYPE(MPI_Op), INTENT(IN) :: op 1551 TYPE(MPI_Comm), INTENT(IN) :: comm 1552 TYPE(MPI_Request), INTENT(OUT) :: request 1553 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1554end subroutine PMPI_Iscan_f08 1555end interface PMPI_Iscan 1556 1557interface PMPI_Scatter 1558subroutine PMPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 1559 root,comm,ierror) 1560 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1561 implicit none 1562 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1563 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1564 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1565 !DIR$ IGNORE_TKR sendbuf, recvbuf 1566 !IBM* IGNORE_TKR sendbuf, recvbuf 1567 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1568 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1569 INTEGER, INTENT(IN) :: sendcount, recvcount, root 1570 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1571 TYPE(MPI_Comm), INTENT(IN) :: comm 1572 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1573end subroutine PMPI_Scatter_f08 1574end interface PMPI_Scatter 1575 1576interface PMPI_Iscatter 1577subroutine PMPI_Iscatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 1578 root,comm,request,ierror) 1579 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1580 implicit none 1581 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1582 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1583 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1584 !DIR$ IGNORE_TKR sendbuf, recvbuf 1585 !IBM* IGNORE_TKR sendbuf, recvbuf 1586 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1587 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1588 INTEGER, INTENT(IN) :: sendcount, recvcount, root 1589 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1590 TYPE(MPI_Comm), INTENT(IN) :: comm 1591 TYPE(MPI_Request), INTENT(OUT) :: request 1592 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1593end subroutine PMPI_Iscatter_f08 1594end interface PMPI_Iscatter 1595 1596interface PMPI_Scatterv 1597subroutine PMPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, & 1598 recvtype,root,comm,ierror) 1599 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 1600 implicit none 1601 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1602 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1603 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1604 !DIR$ IGNORE_TKR sendbuf, recvbuf 1605 !IBM* IGNORE_TKR sendbuf, recvbuf 1606 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 1607 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 1608 INTEGER, INTENT(IN) :: recvcount, root 1609 INTEGER, INTENT(IN) :: sendcounts(*), displs(*) 1610 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1611 TYPE(MPI_Comm), INTENT(IN) :: comm 1612 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1613end subroutine PMPI_Scatterv_f08 1614end interface PMPI_Scatterv 1615 1616interface PMPI_Iscatterv 1617subroutine PMPI_Iscatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, & 1618 recvtype,root,comm,request,ierror) 1619 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 1620 implicit none 1621 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1622 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 1623 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 1624 !DIR$ IGNORE_TKR sendbuf, recvbuf 1625 !IBM* IGNORE_TKR sendbuf, recvbuf 1626 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN), ASYNCHRONOUS :: sendbuf 1627 OMPI_FORTRAN_IGNORE_TKR_TYPE, ASYNCHRONOUS :: recvbuf 1628 INTEGER, INTENT(IN) :: recvcount, root 1629 INTEGER, INTENT(IN), ASYNCHRONOUS :: sendcounts(*), displs(*) 1630 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 1631 TYPE(MPI_Comm), INTENT(IN) :: comm 1632 TYPE(MPI_Request), INTENT(OUT) :: request 1633 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1634end subroutine PMPI_Iscatterv_f08 1635end interface PMPI_Iscatterv 1636 1637interface PMPI_Comm_compare 1638subroutine PMPI_Comm_compare_f08(comm1,comm2,result,ierror) 1639 use :: mpi_f08_types, only : MPI_Comm 1640 implicit none 1641 TYPE(MPI_Comm), INTENT(IN) :: comm1 1642 TYPE(MPI_Comm), INTENT(IN) :: comm2 1643 INTEGER, INTENT(OUT) :: result 1644 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1645end subroutine PMPI_Comm_compare_f08 1646end interface PMPI_Comm_compare 1647 1648interface PMPI_Comm_create 1649subroutine PMPI_Comm_create_f08(comm,group,newcomm,ierror) 1650 use :: mpi_f08_types, only : MPI_Comm, MPI_Group 1651 implicit none 1652 TYPE(MPI_Comm), INTENT(IN) :: comm 1653 TYPE(MPI_Group), INTENT(IN) :: group 1654 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 1655 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1656end subroutine PMPI_Comm_create_f08 1657end interface PMPI_Comm_create 1658 1659interface PMPI_Comm_create_group 1660subroutine PMPI_Comm_create_group_f08(comm,group,tag,newcomm,ierror) 1661 use :: mpi_f08_types, only : MPI_Comm, MPI_Group 1662 implicit none 1663 TYPE(MPI_Comm), INTENT(IN) :: comm 1664 TYPE(MPI_Group), INTENT(IN) :: group 1665 INTEGER, INTENT(IN) :: tag 1666 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 1667 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1668end subroutine PMPI_Comm_create_group_f08 1669end interface PMPI_Comm_create_group 1670 1671interface PMPI_Comm_create_keyval 1672subroutine PMPI_Comm_create_keyval_f08(comm_copy_attr_fn,comm_delete_attr_fn,comm_keyval, & 1673 extra_state,ierror) 1674 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 1675 use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_copy_attr_function 1676 use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_delete_attr_function 1677 implicit none 1678 PROCEDURE(MPI_Comm_copy_attr_function) :: comm_copy_attr_fn 1679 PROCEDURE(MPI_Comm_delete_attr_function) :: comm_delete_attr_fn 1680 INTEGER, INTENT(OUT) :: comm_keyval 1681 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 1682 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1683end subroutine PMPI_Comm_create_keyval_f08 1684end interface PMPI_Comm_create_keyval 1685 1686interface PMPI_Comm_delete_attr 1687subroutine PMPI_Comm_delete_attr_f08(comm,comm_keyval,ierror) 1688 use :: mpi_f08_types, only : MPI_Comm 1689 implicit none 1690 TYPE(MPI_Comm), INTENT(IN) :: comm 1691 INTEGER, INTENT(IN) :: comm_keyval 1692 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1693end subroutine PMPI_Comm_delete_attr_f08 1694end interface PMPI_Comm_delete_attr 1695 1696interface PMPI_Comm_dup 1697subroutine PMPI_Comm_dup_f08(comm,newcomm,ierror) 1698 use :: mpi_f08_types, only : MPI_Comm 1699 implicit none 1700 TYPE(MPI_Comm), INTENT(IN) :: comm 1701 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 1702 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1703end subroutine PMPI_Comm_dup_f08 1704end interface PMPI_Comm_dup 1705 1706interface PMPI_Comm_dup_with_info 1707subroutine PMPI_Comm_dup_with_info_f08(comm,info,newcomm,ierror) 1708 use :: mpi_f08_types, only : MPI_Comm, MPI_Info 1709 implicit none 1710 TYPE(MPI_Comm), INTENT(IN) :: comm 1711 TYPE(MPI_Info), INTENT(IN) :: info 1712 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 1713 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1714end subroutine PMPI_Comm_dup_with_info_f08 1715end interface PMPI_Comm_dup_with_info 1716 1717interface PMPI_Comm_idup 1718subroutine PMPI_Comm_idup_f08(comm,newcomm,request,ierror) 1719 use :: mpi_f08_types, only : MPI_Comm, MPI_Request 1720 implicit none 1721 TYPE(MPI_Comm), INTENT(IN) :: comm 1722 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 1723 TYPE(MPI_Request), INTENT(OUT) :: request 1724 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1725end subroutine PMPI_Comm_idup_f08 1726end interface PMPI_Comm_idup 1727 1728interface PMPI_Comm_free 1729subroutine PMPI_Comm_free_f08(comm,ierror) 1730 use :: mpi_f08_types, only : MPI_Comm 1731 implicit none 1732 TYPE(MPI_Comm), INTENT(INOUT) :: comm 1733 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1734end subroutine PMPI_Comm_free_f08 1735end interface PMPI_Comm_free 1736 1737interface PMPI_Comm_free_keyval 1738subroutine PMPI_Comm_free_keyval_f08(comm_keyval,ierror) 1739 implicit none 1740 INTEGER, INTENT(INOUT) :: comm_keyval 1741 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1742end subroutine PMPI_Comm_free_keyval_f08 1743end interface PMPI_Comm_free_keyval 1744 1745interface PMPI_Comm_get_attr 1746subroutine PMPI_Comm_get_attr_f08(comm,comm_keyval,attribute_val,flag,ierror) 1747 use :: mpi_f08_types, only : MPI_Comm, MPI_ADDRESS_KIND 1748 implicit none 1749 TYPE(MPI_Comm), INTENT(IN) :: comm 1750 INTEGER, INTENT(IN) :: comm_keyval 1751 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val 1752 LOGICAL, INTENT(OUT) :: flag 1753 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1754end subroutine PMPI_Comm_get_attr_f08 1755end interface PMPI_Comm_get_attr 1756 1757interface PMPI_Comm_get_info 1758subroutine PMPI_Comm_get_info_f08(comm,info_used,ierror) 1759 use :: mpi_f08_types, only : MPI_Comm, MPI_Info 1760 implicit none 1761 TYPE(MPI_Comm), INTENT(IN) :: comm 1762 TYPE(MPI_Info), INTENT(OUT) :: info_used 1763 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1764end subroutine PMPI_Comm_get_info_f08 1765end interface PMPI_Comm_get_info 1766 1767interface PMPI_Comm_get_name 1768subroutine PMPI_Comm_get_name_f08(comm,comm_name,resultlen,ierror) 1769 use :: mpi_f08_types, only : MPI_Comm, MPI_MAX_OBJECT_NAME 1770 implicit none 1771 TYPE(MPI_Comm), INTENT(IN) :: comm 1772 CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: comm_name 1773 INTEGER, INTENT(OUT) :: resultlen 1774 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1775end subroutine PMPI_Comm_get_name_f08 1776end interface PMPI_Comm_get_name 1777 1778interface PMPI_Comm_group 1779subroutine PMPI_Comm_group_f08(comm,group,ierror) 1780 use :: mpi_f08_types, only : MPI_Comm, MPI_Group 1781 implicit none 1782 TYPE(MPI_Comm), INTENT(IN) :: comm 1783 TYPE(MPI_Group), INTENT(OUT) :: group 1784 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1785end subroutine PMPI_Comm_group_f08 1786end interface PMPI_Comm_group 1787 1788interface PMPI_Comm_rank 1789subroutine PMPI_Comm_rank_f08(comm,rank,ierror) 1790 use :: mpi_f08_types, only : MPI_Comm 1791 implicit none 1792 TYPE(MPI_Comm), INTENT(IN) :: comm 1793 INTEGER, INTENT(OUT) :: rank 1794 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1795end subroutine PMPI_Comm_rank_f08 1796end interface PMPI_Comm_rank 1797 1798interface PMPI_Comm_remote_group 1799subroutine PMPI_Comm_remote_group_f08(comm,group,ierror) 1800 use :: mpi_f08_types, only : MPI_Comm, MPI_Group 1801 implicit none 1802 TYPE(MPI_Comm), INTENT(IN) :: comm 1803 TYPE(MPI_Group), INTENT(OUT) :: group 1804 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1805end subroutine PMPI_Comm_remote_group_f08 1806end interface PMPI_Comm_remote_group 1807 1808interface PMPI_Comm_remote_size 1809subroutine PMPI_Comm_remote_size_f08(comm,size,ierror) 1810 use :: mpi_f08_types, only : MPI_Comm 1811 implicit none 1812 TYPE(MPI_Comm), INTENT(IN) :: comm 1813 INTEGER, INTENT(OUT) :: size 1814 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1815end subroutine PMPI_Comm_remote_size_f08 1816end interface PMPI_Comm_remote_size 1817 1818interface PMPI_Comm_set_attr 1819subroutine PMPI_Comm_set_attr_f08(comm,comm_keyval,attribute_val,ierror) 1820 use :: mpi_f08_types, only : MPI_Comm, MPI_ADDRESS_KIND 1821 implicit none 1822 TYPE(MPI_Comm), INTENT(IN) :: comm 1823 INTEGER, INTENT(IN) :: comm_keyval 1824 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val 1825 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1826end subroutine PMPI_Comm_set_attr_f08 1827end interface PMPI_Comm_set_attr 1828 1829interface PMPI_Comm_set_info 1830subroutine PMPI_Comm_set_info_f08(comm,info,ierror) 1831 use :: mpi_f08_types, only : MPI_Comm, MPI_Info 1832 implicit none 1833 TYPE(MPI_Comm), INTENT(IN) :: comm 1834 TYPE(MPI_Info), INTENT(IN) :: info 1835 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1836end subroutine PMPI_Comm_set_info_f08 1837end interface PMPI_Comm_set_info 1838 1839interface PMPI_Comm_set_name 1840subroutine PMPI_Comm_set_name_f08(comm,comm_name,ierror) 1841 use :: mpi_f08_types, only : MPI_Comm 1842 implicit none 1843 TYPE(MPI_Comm), INTENT(IN) :: comm 1844 CHARACTER(LEN=*), INTENT(IN) :: comm_name 1845 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1846end subroutine PMPI_Comm_set_name_f08 1847end interface PMPI_Comm_set_name 1848 1849interface PMPI_Comm_size 1850subroutine PMPI_Comm_size_f08(comm,size,ierror) 1851 use :: mpi_f08_types, only : MPI_Comm 1852 implicit none 1853 TYPE(MPI_Comm), INTENT(IN) :: comm 1854 INTEGER, INTENT(OUT) :: size 1855 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1856end subroutine PMPI_Comm_size_f08 1857end interface PMPI_Comm_size 1858 1859interface PMPI_Comm_split 1860subroutine PMPI_Comm_split_f08(comm,color,key,newcomm,ierror) 1861 use :: mpi_f08_types, only : MPI_Comm 1862 implicit none 1863 TYPE(MPI_Comm), INTENT(IN) :: comm 1864 INTEGER, INTENT(IN) :: color, key 1865 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 1866 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1867end subroutine PMPI_Comm_split_f08 1868end interface PMPI_Comm_split 1869 1870interface PMPI_Comm_test_inter 1871subroutine PMPI_Comm_test_inter_f08(comm,flag,ierror) 1872 use :: mpi_f08_types, only : MPI_Comm 1873 implicit none 1874 TYPE(MPI_Comm), INTENT(IN) :: comm 1875 LOGICAL, INTENT(OUT) :: flag 1876 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1877end subroutine PMPI_Comm_test_inter_f08 1878end interface PMPI_Comm_test_inter 1879 1880interface PMPI_Group_compare 1881subroutine PMPI_Group_compare_f08(group1,group2,result,ierror) 1882 use :: mpi_f08_types, only : MPI_Group 1883 implicit none 1884 TYPE(MPI_Group), INTENT(IN) :: group1, group2 1885 INTEGER, INTENT(OUT) :: result 1886 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1887end subroutine PMPI_Group_compare_f08 1888end interface PMPI_Group_compare 1889 1890interface PMPI_Group_difference 1891subroutine PMPI_Group_difference_f08(group1,group2,newgroup,ierror) 1892 use :: mpi_f08_types, only : MPI_Group 1893 implicit none 1894 TYPE(MPI_Group), INTENT(IN) :: group1, group2 1895 TYPE(MPI_Group), INTENT(OUT) :: newgroup 1896 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1897end subroutine PMPI_Group_difference_f08 1898end interface PMPI_Group_difference 1899 1900interface PMPI_Group_excl 1901subroutine PMPI_Group_excl_f08(group,n,ranks,newgroup,ierror) 1902 use :: mpi_f08_types, only : MPI_Group 1903 implicit none 1904 TYPE(MPI_Group), INTENT(IN) :: group 1905 INTEGER, INTENT(IN) :: n, ranks(n) 1906 TYPE(MPI_Group), INTENT(OUT) :: newgroup 1907 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1908end subroutine PMPI_Group_excl_f08 1909end interface PMPI_Group_excl 1910 1911interface PMPI_Group_free 1912subroutine PMPI_Group_free_f08(group,ierror) 1913 use :: mpi_f08_types, only : MPI_Group 1914 implicit none 1915 TYPE(MPI_Group), INTENT(INOUT) :: group 1916 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1917end subroutine PMPI_Group_free_f08 1918end interface PMPI_Group_free 1919 1920interface PMPI_Group_incl 1921subroutine PMPI_Group_incl_f08(group,n,ranks,newgroup,ierror) 1922 use :: mpi_f08_types, only : MPI_Group 1923 implicit none 1924 INTEGER, INTENT(IN) :: n, ranks(n) 1925 TYPE(MPI_Group), INTENT(IN) :: group 1926 TYPE(MPI_Group), INTENT(OUT) :: newgroup 1927 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1928end subroutine PMPI_Group_incl_f08 1929end interface PMPI_Group_incl 1930 1931interface PMPI_Group_intersection 1932subroutine PMPI_Group_intersection_f08(group1,group2,newgroup,ierror) 1933 use :: mpi_f08_types, only : MPI_Group 1934 implicit none 1935 TYPE(MPI_Group), INTENT(IN) :: group1, group2 1936 TYPE(MPI_Group), INTENT(OUT) :: newgroup 1937 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1938end subroutine PMPI_Group_intersection_f08 1939end interface PMPI_Group_intersection 1940 1941interface PMPI_Group_range_excl 1942subroutine PMPI_Group_range_excl_f08(group,n,ranges,newgroup,ierror) 1943 use :: mpi_f08_types, only : MPI_Group 1944 implicit none 1945 TYPE(MPI_Group), INTENT(IN) :: group 1946 INTEGER, INTENT(IN) :: n, ranges(3,n) 1947 TYPE(MPI_Group), INTENT(OUT) :: newgroup 1948 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1949end subroutine PMPI_Group_range_excl_f08 1950end interface PMPI_Group_range_excl 1951 1952interface PMPI_Group_range_incl 1953subroutine PMPI_Group_range_incl_f08(group,n,ranges,newgroup,ierror) 1954 use :: mpi_f08_types, only : MPI_Group 1955 implicit none 1956 TYPE(MPI_Group), INTENT(IN) :: group 1957 INTEGER, INTENT(IN) :: n, ranges(3,n) 1958 TYPE(MPI_Group), INTENT(OUT) :: newgroup 1959 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1960end subroutine PMPI_Group_range_incl_f08 1961end interface PMPI_Group_range_incl 1962 1963interface PMPI_Group_rank 1964subroutine PMPI_Group_rank_f08(group,rank,ierror) 1965 use :: mpi_f08_types, only : MPI_Group 1966 implicit none 1967 TYPE(MPI_Group), INTENT(IN) :: group 1968 INTEGER, INTENT(OUT) :: rank 1969 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1970end subroutine PMPI_Group_rank_f08 1971end interface PMPI_Group_rank 1972 1973interface PMPI_Group_size 1974subroutine PMPI_Group_size_f08(group,size,ierror) 1975 use :: mpi_f08_types, only : MPI_Group 1976 implicit none 1977 TYPE(MPI_Group), INTENT(IN) :: group 1978 INTEGER, INTENT(OUT) :: size 1979 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1980end subroutine PMPI_Group_size_f08 1981end interface PMPI_Group_size 1982 1983interface PMPI_Group_translate_ranks 1984subroutine PMPI_Group_translate_ranks_f08(group1,n,ranks1,group2,ranks2,ierror) 1985 use :: mpi_f08_types, only : MPI_Group 1986 implicit none 1987 TYPE(MPI_Group), INTENT(IN) :: group1, group2 1988 INTEGER, INTENT(IN) :: n 1989 INTEGER, INTENT(IN) :: ranks1(n) 1990 INTEGER, INTENT(OUT) :: ranks2(n) 1991 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1992end subroutine PMPI_Group_translate_ranks_f08 1993end interface PMPI_Group_translate_ranks 1994 1995interface PMPI_Group_union 1996subroutine PMPI_Group_union_f08(group1,group2,newgroup,ierror) 1997 use :: mpi_f08_types, only : MPI_Group 1998 implicit none 1999 TYPE(MPI_Group), INTENT(IN) :: group1, group2 2000 TYPE(MPI_Group), INTENT(OUT) :: newgroup 2001 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2002end subroutine PMPI_Group_union_f08 2003end interface PMPI_Group_union 2004 2005interface PMPI_Intercomm_create 2006subroutine PMPI_Intercomm_create_f08(local_comm,local_leader,peer_comm,remote_leader, & 2007 tag,newintercomm,ierror) 2008 use :: mpi_f08_types, only : MPI_Comm 2009 implicit none 2010 TYPE(MPI_Comm), INTENT(IN) :: local_comm, peer_comm 2011 INTEGER, INTENT(IN) :: local_leader, remote_leader, tag 2012 TYPE(MPI_Comm), INTENT(OUT) :: newintercomm 2013 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2014end subroutine PMPI_Intercomm_create_f08 2015end interface PMPI_Intercomm_create 2016 2017interface PMPI_Intercomm_merge 2018subroutine PMPI_Intercomm_merge_f08(intercomm,high,newintracomm,ierror) 2019 use :: mpi_f08_types, only : MPI_Comm 2020 implicit none 2021 TYPE(MPI_Comm), INTENT(IN) :: intercomm 2022 LOGICAL, INTENT(IN) :: high 2023 TYPE(MPI_Comm), INTENT(OUT) :: newintracomm 2024 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2025end subroutine PMPI_Intercomm_merge_f08 2026end interface PMPI_Intercomm_merge 2027 2028interface PMPI_Type_create_keyval 2029subroutine PMPI_Type_create_keyval_f08(type_copy_attr_fn,type_delete_attr_fn,type_keyval, & 2030 extra_state,ierror) 2031 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2032 use :: mpi_f08_interfaces_callbacks, only : MPI_Type_copy_attr_function 2033 use :: mpi_f08_interfaces_callbacks, only : MPI_Type_delete_attr_function 2034 implicit none 2035 PROCEDURE(MPI_Type_copy_attr_function) :: type_copy_attr_fn 2036 PROCEDURE(MPI_Type_delete_attr_function) :: type_delete_attr_fn 2037 INTEGER, INTENT(OUT) :: type_keyval 2038 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 2039 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2040end subroutine PMPI_Type_create_keyval_f08 2041end interface PMPI_Type_create_keyval 2042 2043interface PMPI_Type_delete_attr 2044subroutine PMPI_Type_delete_attr_f08(datatype,type_keyval,ierror) 2045 use :: mpi_f08_types, only : MPI_Datatype 2046 implicit none 2047 TYPE(MPI_Datatype), INTENT(IN) :: datatype 2048 INTEGER, INTENT(IN) :: type_keyval 2049 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2050end subroutine PMPI_Type_delete_attr_f08 2051end interface PMPI_Type_delete_attr 2052 2053interface PMPI_Type_free_keyval 2054subroutine PMPI_Type_free_keyval_f08(type_keyval,ierror) 2055 implicit none 2056 INTEGER, INTENT(INOUT) :: type_keyval 2057 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2058end subroutine PMPI_Type_free_keyval_f08 2059end interface PMPI_Type_free_keyval 2060 2061interface PMPI_Type_get_attr 2062subroutine PMPI_Type_get_attr_f08(datatype,type_keyval,attribute_val,flag,ierror) 2063 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 2064 implicit none 2065 TYPE(MPI_Datatype), INTENT(IN) :: datatype 2066 INTEGER, INTENT(IN) :: type_keyval 2067 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val 2068 LOGICAL, INTENT(OUT) :: flag 2069 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2070end subroutine PMPI_Type_get_attr_f08 2071end interface PMPI_Type_get_attr 2072 2073interface PMPI_Type_get_name 2074subroutine PMPI_Type_get_name_f08(datatype,type_name,resultlen,ierror) 2075 use :: mpi_f08_types, only : MPI_Datatype, MPI_MAX_OBJECT_NAME 2076 implicit none 2077 TYPE(MPI_Datatype), INTENT(IN) :: datatype 2078 CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: type_name 2079 INTEGER, INTENT(OUT) :: resultlen 2080 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2081end subroutine PMPI_Type_get_name_f08 2082end interface PMPI_Type_get_name 2083 2084interface PMPI_Type_set_attr 2085subroutine PMPI_Type_set_attr_f08(datatype,type_keyval,attribute_val,ierror) 2086 use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND 2087 implicit none 2088 TYPE(MPI_Datatype), INTENT(IN) :: datatype 2089 INTEGER, INTENT(IN) :: type_keyval 2090 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val 2091 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2092end subroutine PMPI_Type_set_attr_f08 2093end interface PMPI_Type_set_attr 2094 2095interface PMPI_Type_set_name 2096subroutine PMPI_Type_set_name_f08(datatype,type_name,ierror) 2097 use :: mpi_f08_types, only : MPI_Datatype 2098 implicit none 2099 TYPE(MPI_Datatype), INTENT(IN) :: datatype 2100 CHARACTER(LEN=*), INTENT(IN) :: type_name 2101 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2102end subroutine PMPI_Type_set_name_f08 2103end interface PMPI_Type_set_name 2104 2105interface PMPI_Win_allocate 2106subroutine PMPI_Win_allocate_f08(size, disp_unit, info, comm, & 2107 baseptr, win, ierror) 2108 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 2109 use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND 2110 INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size 2111 INTEGER, INTENT(IN) :: disp_unit 2112 TYPE(MPI_Info), INTENT(IN) :: info 2113 TYPE(MPI_Comm), INTENT(IN) :: comm 2114 TYPE(C_PTR), INTENT(OUT) :: baseptr 2115 TYPE(MPI_Win), INTENT(OUT) :: win 2116 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2117end subroutine PMPI_Win_allocate_f08 2118end interface PMPI_Win_allocate 2119 2120interface PMPI_Win_allocate_shared 2121subroutine PMPI_Win_allocate_shared_f08(size, disp_unit, info, comm, & 2122 baseptr, win, ierror) 2123 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 2124 use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND 2125 INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size 2126 INTEGER, INTENT(IN) :: disp_unit 2127 TYPE(MPI_Info), INTENT(IN) :: info 2128 TYPE(MPI_Comm), INTENT(IN) :: comm 2129 TYPE(C_PTR), INTENT(OUT) :: baseptr 2130 TYPE(MPI_Win), INTENT(OUT) :: win 2131 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2132end subroutine PMPI_Win_allocate_shared_f08 2133end interface PMPI_Win_allocate_shared 2134 2135interface PMPI_Win_create_keyval 2136subroutine PMPI_Win_create_keyval_f08(win_copy_attr_fn,win_delete_attr_fn,win_keyval, & 2137 extra_state,ierror) 2138 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2139 use :: mpi_f08_interfaces_callbacks, only : MPI_Win_copy_attr_function 2140 use :: mpi_f08_interfaces_callbacks, only : MPI_Win_delete_attr_function 2141 implicit none 2142 PROCEDURE(MPI_Win_copy_attr_function) :: win_copy_attr_fn 2143 PROCEDURE(MPI_Win_delete_attr_function) :: win_delete_attr_fn 2144 INTEGER, INTENT(OUT) :: win_keyval 2145 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 2146 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2147end subroutine PMPI_Win_create_keyval_f08 2148end interface PMPI_Win_create_keyval 2149 2150interface PMPI_Win_delete_attr 2151subroutine PMPI_Win_delete_attr_f08(win,win_keyval,ierror) 2152 use :: mpi_f08_types, only : MPI_Win 2153 implicit none 2154 TYPE(MPI_Win), INTENT(IN) :: win 2155 INTEGER, INTENT(IN) :: win_keyval 2156 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2157end subroutine PMPI_Win_delete_attr_f08 2158end interface PMPI_Win_delete_attr 2159 2160interface PMPI_Win_free_keyval 2161subroutine PMPI_Win_free_keyval_f08(win_keyval,ierror) 2162 implicit none 2163 INTEGER, INTENT(INOUT) :: win_keyval 2164 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2165end subroutine PMPI_Win_free_keyval_f08 2166end interface PMPI_Win_free_keyval 2167 2168interface PMPI_Win_get_attr 2169subroutine PMPI_Win_get_attr_f08(win,win_keyval,attribute_val,flag,ierror) 2170 use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND 2171 implicit none 2172 TYPE(MPI_Win), INTENT(IN) :: win 2173 INTEGER, INTENT(IN) :: win_keyval 2174 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val 2175 LOGICAL, INTENT(OUT) :: flag 2176 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2177end subroutine PMPI_Win_get_attr_f08 2178end interface PMPI_Win_get_attr 2179 2180interface PMPI_Win_get_info 2181subroutine PMPI_Win_get_info_f08(win,info,ierror) 2182 use :: mpi_f08_types, only : MPI_Win, MPI_Info 2183 implicit none 2184 TYPE(MPI_Win), INTENT(IN) :: win 2185 TYPE(MPI_Info), INTENT(OUT) :: info 2186 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2187end subroutine PMPI_Win_get_info_f08 2188end interface PMPI_Win_get_info 2189 2190interface PMPI_Win_get_name 2191subroutine PMPI_Win_get_name_f08(win,win_name,resultlen,ierror) 2192 use :: mpi_f08_types, only : MPI_Win, MPI_MAX_OBJECT_NAME 2193 implicit none 2194 TYPE(MPI_Win), INTENT(IN) :: win 2195 CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: win_name 2196 INTEGER, INTENT(OUT) :: resultlen 2197 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2198end subroutine PMPI_Win_get_name_f08 2199end interface PMPI_Win_get_name 2200 2201interface PMPI_Win_set_attr 2202subroutine PMPI_Win_set_attr_f08(win,win_keyval,attribute_val,ierror) 2203 use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND 2204 implicit none 2205 TYPE(MPI_Win), INTENT(IN) :: win 2206 INTEGER, INTENT(IN) :: win_keyval 2207 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val 2208 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2209end subroutine PMPI_Win_set_attr_f08 2210end interface PMPI_Win_set_attr 2211 2212interface PMPI_Win_set_info 2213subroutine PMPI_Win_set_info_f08(win,info,ierror) 2214 use :: mpi_f08_types, only : MPI_Win, MPI_Info 2215 implicit none 2216 TYPE(MPI_Win), INTENT(IN) :: win 2217 TYPE(MPI_Info), INTENT(IN) :: info 2218 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2219end subroutine PMPI_Win_set_info_f08 2220end interface PMPI_Win_set_info 2221 2222interface PMPI_Win_set_name 2223subroutine PMPI_Win_set_name_f08(win,win_name,ierror) 2224 use :: mpi_f08_types, only : MPI_Win 2225 implicit none 2226 TYPE(MPI_Win), INTENT(IN) :: win 2227 CHARACTER(LEN=*), INTENT(IN) :: win_name 2228 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2229end subroutine PMPI_Win_set_name_f08 2230end interface PMPI_Win_set_name 2231 2232interface PMPI_Cartdim_get 2233subroutine PMPI_Cartdim_get_f08(comm,ndims,ierror) 2234 use :: mpi_f08_types, only : MPI_Comm 2235 implicit none 2236 TYPE(MPI_Comm), INTENT(IN) :: comm 2237 INTEGER, INTENT(OUT) :: ndims 2238 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2239end subroutine PMPI_Cartdim_get_f08 2240end interface PMPI_Cartdim_get 2241 2242interface PMPI_Cart_coords 2243subroutine PMPI_Cart_coords_f08(comm,rank,maxdims,coords,ierror) 2244 use :: mpi_f08_types, only : MPI_Comm 2245 implicit none 2246 TYPE(MPI_Comm), INTENT(IN) :: comm 2247 INTEGER, INTENT(IN) :: rank, maxdims 2248 INTEGER, INTENT(OUT) :: coords(maxdims) 2249 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2250end subroutine PMPI_Cart_coords_f08 2251end interface PMPI_Cart_coords 2252 2253interface PMPI_Cart_create 2254subroutine PMPI_Cart_create_f08(comm_old,ndims,dims,periods,reorder,comm_cart,ierror) 2255 use :: mpi_f08_types, only : MPI_Comm 2256 implicit none 2257 TYPE(MPI_Comm), INTENT(IN) :: comm_old 2258 INTEGER, INTENT(IN) :: ndims, dims(ndims) 2259 LOGICAL, INTENT(IN) :: periods(ndims), reorder 2260 TYPE(MPI_Comm), INTENT(OUT) :: comm_cart 2261 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2262end subroutine PMPI_Cart_create_f08 2263end interface PMPI_Cart_create 2264 2265interface PMPI_Cart_get 2266subroutine PMPI_Cart_get_f08(comm,maxdims,dims,periods,coords,ierror) 2267 use :: mpi_f08_types, only : MPI_Comm 2268 implicit none 2269 TYPE(MPI_Comm), INTENT(IN) :: comm 2270 INTEGER, INTENT(IN) :: maxdims 2271 INTEGER, INTENT(OUT) :: dims(maxdims), coords(maxdims) 2272 LOGICAL, INTENT(OUT) :: periods(maxdims) 2273 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2274end subroutine PMPI_Cart_get_f08 2275end interface PMPI_Cart_get 2276 2277interface PMPI_Cart_map 2278subroutine PMPI_Cart_map_f08(comm,ndims,dims,periods,newrank,ierror) 2279 use :: mpi_f08_types, only : MPI_Comm 2280 implicit none 2281 TYPE(MPI_Comm), INTENT(IN) :: comm 2282 INTEGER, INTENT(IN) :: ndims, dims(ndims) 2283 LOGICAL, INTENT(IN) :: periods(ndims) 2284 INTEGER, INTENT(OUT) :: newrank 2285 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2286end subroutine PMPI_Cart_map_f08 2287end interface PMPI_Cart_map 2288 2289interface PMPI_Cart_rank 2290subroutine PMPI_Cart_rank_f08(comm,coords,rank,ierror) 2291 use :: mpi_f08_types, only : MPI_Comm 2292 implicit none 2293 TYPE(MPI_Comm), INTENT(IN) :: comm 2294 INTEGER, INTENT(IN) :: coords(*) 2295 INTEGER, INTENT(OUT) :: rank 2296 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2297end subroutine PMPI_Cart_rank_f08 2298end interface PMPI_Cart_rank 2299 2300interface PMPI_Cart_shift 2301subroutine PMPI_Cart_shift_f08(comm,direction,disp,rank_source,rank_dest,ierror) 2302 use :: mpi_f08_types, only : MPI_Comm 2303 implicit none 2304 TYPE(MPI_Comm), INTENT(IN) :: comm 2305 INTEGER, INTENT(IN) :: direction, disp 2306 INTEGER, INTENT(OUT) :: rank_source, rank_dest 2307 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2308end subroutine PMPI_Cart_shift_f08 2309end interface PMPI_Cart_shift 2310 2311interface PMPI_Cart_sub 2312subroutine PMPI_Cart_sub_f08(comm,remain_dims,newcomm,ierror) 2313 use :: mpi_f08_types, only : MPI_Comm 2314 implicit none 2315 TYPE(MPI_Comm), INTENT(IN) :: comm 2316 LOGICAL, INTENT(IN) :: remain_dims(*) 2317 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 2318 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2319end subroutine PMPI_Cart_sub_f08 2320end interface PMPI_Cart_sub 2321 2322interface PMPI_Dims_create 2323subroutine PMPI_Dims_create_f08(nnodes,ndims,dims,ierror) 2324 implicit none 2325 INTEGER, INTENT(IN) :: nnodes, ndims 2326 INTEGER, INTENT(INOUT) :: dims(ndims) 2327 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2328end subroutine PMPI_Dims_create_f08 2329end interface PMPI_Dims_create 2330 2331interface PMPI_Dist_graph_create 2332subroutine PMPI_Dist_graph_create_f08(comm_old,n,sources,degrees,destinations,weights, & 2333 info,reorder,comm_dist_graph,ierror) 2334 use :: mpi_f08_types, only : MPI_Comm, MPI_Info 2335 implicit none 2336 TYPE(MPI_Comm), INTENT(IN) :: comm_old 2337 INTEGER, INTENT(IN) :: n, sources(n), degrees(n), destinations(*), weights(*) 2338 TYPE(MPI_Info), INTENT(IN) :: info 2339 LOGICAL, INTENT(IN) :: reorder 2340 TYPE(MPI_Comm), INTENT(OUT) :: comm_dist_graph 2341 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2342end subroutine PMPI_Dist_graph_create_f08 2343end interface PMPI_Dist_graph_create 2344 2345interface PMPI_Dist_graph_create_adjacent 2346subroutine PMPI_Dist_graph_create_adjacent_f08(comm_old,indegree,sources,sourceweights, & 2347 outdegree,destinations,destweights,info,reorder, & 2348 comm_dist_graph,ierror) 2349 use :: mpi_f08_types, only : MPI_Comm, MPI_Info 2350 implicit none 2351 TYPE(MPI_Comm), INTENT(IN) :: comm_old 2352 INTEGER, INTENT(IN) :: indegree, sources(indegree), outdegree, destinations(outdegree) 2353 INTEGER, INTENT(IN) :: sourceweights(indegree), destweights(outdegree) 2354 TYPE(MPI_Info), INTENT(IN) :: info 2355 LOGICAL, INTENT(IN) :: reorder 2356 TYPE(MPI_Comm), INTENT(OUT) :: comm_dist_graph 2357 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2358end subroutine PMPI_Dist_graph_create_adjacent_f08 2359end interface PMPI_Dist_graph_create_adjacent 2360 2361interface PMPI_Dist_graph_neighbors 2362subroutine PMPI_Dist_graph_neighbors_f08(comm,maxindegree,sources,sourceweights, & 2363 maxoutdegree,destinations,destweights,ierror) 2364 use :: mpi_f08_types, only : MPI_Comm 2365 implicit none 2366 TYPE(MPI_Comm), INTENT(IN) :: comm 2367 INTEGER, INTENT(IN) :: maxindegree, maxoutdegree 2368 INTEGER, INTENT(OUT) :: sources(maxindegree), destinations(maxoutdegree) 2369 INTEGER, INTENT(OUT) :: sourceweights(maxindegree), destweights(maxoutdegree) 2370 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2371end subroutine PMPI_Dist_graph_neighbors_f08 2372end interface PMPI_Dist_graph_neighbors 2373 2374interface PMPI_Dist_graph_neighbors_count 2375subroutine PMPI_Dist_graph_neighbors_count_f08(comm,indegree,outdegree,weighted,ierror) 2376 use :: mpi_f08_types, only : MPI_Comm 2377 implicit none 2378 TYPE(MPI_Comm), INTENT(IN) :: comm 2379 INTEGER, INTENT(OUT) :: indegree, outdegree 2380 LOGICAL, INTENT(OUT) :: weighted 2381 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2382end subroutine PMPI_Dist_graph_neighbors_count_f08 2383end interface PMPI_Dist_graph_neighbors_count 2384 2385interface PMPI_Graphdims_get 2386subroutine PMPI_Graphdims_get_f08(comm,nnodes,nedges,ierror) 2387 use :: mpi_f08_types, only : MPI_Comm 2388 implicit none 2389 TYPE(MPI_Comm), INTENT(IN) :: comm 2390 INTEGER, INTENT(OUT) :: nnodes, nedges 2391 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2392end subroutine PMPI_Graphdims_get_f08 2393end interface PMPI_Graphdims_get 2394 2395interface PMPI_Graph_create 2396subroutine PMPI_Graph_create_f08(comm_old,nnodes,index,edges,reorder,comm_graph, & 2397 ierror) 2398 use :: mpi_f08_types, only : MPI_Comm 2399 implicit none 2400 TYPE(MPI_Comm), INTENT(IN) :: comm_old 2401 INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*) 2402 LOGICAL, INTENT(IN) :: reorder 2403 TYPE(MPI_Comm), INTENT(OUT) :: comm_graph 2404 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2405end subroutine PMPI_Graph_create_f08 2406end interface PMPI_Graph_create 2407 2408interface PMPI_Graph_get 2409subroutine PMPI_Graph_get_f08(comm,maxindex,maxedges,index,edges,ierror) 2410 use :: mpi_f08_types, only : MPI_Comm 2411 implicit none 2412 TYPE(MPI_Comm), INTENT(IN) :: comm 2413 INTEGER, INTENT(IN) :: maxindex, maxedges 2414 INTEGER, INTENT(OUT) :: index(maxindex), edges(maxedges) 2415 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2416end subroutine PMPI_Graph_get_f08 2417end interface PMPI_Graph_get 2418 2419interface PMPI_Graph_map 2420subroutine PMPI_Graph_map_f08(comm,nnodes,index,edges,newrank,ierror) 2421 use :: mpi_f08_types, only : MPI_Comm 2422 implicit none 2423 TYPE(MPI_Comm), INTENT(IN) :: comm 2424 INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*) 2425 INTEGER, INTENT(OUT) :: newrank 2426 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2427end subroutine PMPI_Graph_map_f08 2428end interface PMPI_Graph_map 2429 2430interface PMPI_Graph_neighbors 2431subroutine PMPI_Graph_neighbors_f08(comm,rank,maxneighbors,neighbors,ierror) 2432 use :: mpi_f08_types, only : MPI_Comm 2433 implicit none 2434 TYPE(MPI_Comm), INTENT(IN) :: comm 2435 INTEGER, INTENT(IN) :: rank, maxneighbors 2436 INTEGER, INTENT(OUT) :: neighbors(maxneighbors) 2437 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2438end subroutine PMPI_Graph_neighbors_f08 2439end interface PMPI_Graph_neighbors 2440 2441interface PMPI_Graph_neighbors_count 2442subroutine PMPI_Graph_neighbors_count_f08(comm,rank,nneighbors,ierror) 2443 use :: mpi_f08_types, only : MPI_Comm 2444 implicit none 2445 TYPE(MPI_Comm), INTENT(IN) :: comm 2446 INTEGER, INTENT(IN) :: rank 2447 INTEGER, INTENT(OUT) :: nneighbors 2448 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2449end subroutine PMPI_Graph_neighbors_count_f08 2450end interface PMPI_Graph_neighbors_count 2451 2452interface PMPI_Topo_test 2453subroutine PMPI_Topo_test_f08(comm,status,ierror) 2454 use :: mpi_f08_types, only : MPI_Comm, MPI_Status 2455 implicit none 2456 TYPE(MPI_Comm), INTENT(IN) :: comm 2457 INTEGER, INTENT(OUT) :: status 2458 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2459end subroutine PMPI_Topo_test_f08 2460end interface PMPI_Topo_test 2461 2462! MPI_Wtick is not a wrapper function 2463! 2464interface PMPI_Wtick 2465function PMPI_Wtick_f08( ) BIND(C,name="PMPI_Wtick") 2466 use, intrinsic :: ISO_C_BINDING 2467 implicit none 2468 DOUBLE PRECISION :: PMPI_Wtick_f08 2469end function PMPI_Wtick_f08 2470end interface PMPI_Wtick 2471 2472! MPI_Wtime is not a wrapper function 2473! 2474interface PMPI_Wtime 2475function PMPI_Wtime_f08( ) BIND(C,name="PMPI_Wtime") 2476 use, intrinsic :: ISO_C_BINDING 2477 implicit none 2478 DOUBLE PRECISION :: PMPI_Wtime_f08 2479end function PMPI_Wtime_f08 2480end interface PMPI_Wtime 2481 2482interface PMPI_Aint_add 2483function PMPI_Aint_add_f08(base,diff) 2484 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2485 implicit none 2486 INTEGER(MPI_ADDRESS_KIND) :: base 2487 INTEGER(MPI_ADDRESS_KIND) :: diff 2488 INTEGER(MPI_ADDRESS_KIND) :: PMPI_Aint_add_f08 2489end function PMPI_Aint_add_f08 2490end interface PMPI_Aint_add 2491 2492interface PMPI_Aint_diff 2493function PMPI_Aint_diff_f08(addr1,addr2) 2494 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 2495 implicit none 2496 INTEGER(MPI_ADDRESS_KIND) :: addr1 2497 INTEGER(MPI_ADDRESS_KIND) :: addr2 2498 INTEGER(MPI_ADDRESS_KIND) :: PMPI_Aint_diff_f08 2499end function PMPI_Aint_diff_f08 2500end interface PMPI_Aint_diff 2501 2502interface PMPI_Abort 2503subroutine PMPI_Abort_f08(comm,errorcode,ierror) 2504 use :: mpi_f08_types, only : MPI_Comm 2505 implicit none 2506 TYPE(MPI_Comm), INTENT(IN) :: comm 2507 INTEGER, INTENT(IN) :: errorcode 2508 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2509end subroutine PMPI_Abort_f08 2510end interface PMPI_Abort 2511 2512interface PMPI_Add_error_class 2513subroutine PMPI_Add_error_class_f08(errorclass,ierror) 2514 implicit none 2515 INTEGER, INTENT(OUT) :: errorclass 2516 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2517end subroutine PMPI_Add_error_class_f08 2518end interface PMPI_Add_error_class 2519 2520interface PMPI_Add_error_code 2521subroutine PMPI_Add_error_code_f08(errorclass,errorcode,ierror) 2522 implicit none 2523 INTEGER, INTENT(IN) :: errorclass 2524 INTEGER, INTENT(OUT) :: errorcode 2525 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2526end subroutine PMPI_Add_error_code_f08 2527end interface PMPI_Add_error_code 2528 2529interface PMPI_Add_error_string 2530subroutine PMPI_Add_error_string_f08(errorcode,string,ierror) 2531 implicit none 2532 integer, intent(in) :: errorcode 2533 character(len=*), intent(in) :: string 2534 integer, optional, intent(out) :: ierror 2535end subroutine PMPI_Add_error_string_f08 2536end interface PMPI_Add_error_string 2537 2538interface PMPI_Alloc_mem 2539subroutine PMPI_Alloc_mem_f08(size,info,baseptr,ierror) 2540 use, intrinsic :: ISO_C_BINDING, only : C_PTR 2541 use :: mpi_f08_types, only : MPI_Info, MPI_ADDRESS_KIND 2542 implicit none 2543 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size 2544 TYPE(MPI_Info), INTENT(IN) :: info 2545 TYPE(C_PTR), INTENT(OUT) :: baseptr 2546 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2547end subroutine PMPI_Alloc_mem_f08 2548end interface PMPI_Alloc_mem 2549 2550interface PMPI_Comm_call_errhandler 2551subroutine PMPI_Comm_call_errhandler_f08(comm,errorcode,ierror) 2552 use :: mpi_f08_types, only : MPI_Comm 2553 implicit none 2554 TYPE(MPI_Comm), INTENT(IN) :: comm 2555 INTEGER, INTENT(IN) :: errorcode 2556 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2557end subroutine PMPI_Comm_call_errhandler_f08 2558end interface PMPI_Comm_call_errhandler 2559 2560interface PMPI_Comm_create_errhandler 2561subroutine PMPI_Comm_create_errhandler_f08(comm_errhandler_fn,errhandler,ierror) 2562 use :: mpi_f08_types, only : MPI_Errhandler 2563 use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_errhandler_function 2564 implicit none 2565 PROCEDURE(MPI_Comm_errhandler_function) :: comm_errhandler_fn 2566 TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler 2567 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2568end subroutine PMPI_Comm_create_errhandler_f08 2569end interface PMPI_Comm_create_errhandler 2570 2571interface PMPI_Comm_get_errhandler 2572subroutine PMPI_Comm_get_errhandler_f08(comm,errhandler,ierror) 2573 use :: mpi_f08_types, only : MPI_Comm, MPI_Errhandler 2574 implicit none 2575 TYPE(MPI_Comm), INTENT(IN) :: comm 2576 TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler 2577 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2578end subroutine PMPI_Comm_get_errhandler_f08 2579end interface PMPI_Comm_get_errhandler 2580 2581interface PMPI_Comm_set_errhandler 2582subroutine PMPI_Comm_set_errhandler_f08(comm,errhandler,ierror) 2583 use :: mpi_f08_types, only : MPI_Comm, MPI_Errhandler 2584 implicit none 2585 TYPE(MPI_Comm), INTENT(IN) :: comm 2586 TYPE(MPI_Errhandler), INTENT(IN) :: errhandler 2587 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2588end subroutine PMPI_Comm_set_errhandler_f08 2589end interface PMPI_Comm_set_errhandler 2590 2591interface PMPI_Errhandler_free 2592subroutine PMPI_Errhandler_free_f08(errhandler,ierror) 2593 use :: mpi_f08_types, only : MPI_Errhandler 2594 implicit none 2595 TYPE(MPI_Errhandler), INTENT(INOUT) :: errhandler 2596 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2597end subroutine PMPI_Errhandler_free_f08 2598end interface PMPI_Errhandler_free 2599 2600interface PMPI_Error_class 2601subroutine PMPI_Error_class_f08(errorcode,errorclass,ierror) 2602 implicit none 2603 INTEGER, INTENT(IN) :: errorcode 2604 INTEGER, INTENT(OUT) :: errorclass 2605 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2606end subroutine PMPI_Error_class_f08 2607end interface PMPI_Error_class 2608 2609interface PMPI_Error_string 2610subroutine PMPI_Error_string_f08(errorcode,string,resultlen,ierror) 2611 use :: mpi_f08_types, only : MPI_MAX_ERROR_STRING 2612 implicit none 2613 integer, intent(in) :: errorcode 2614 character(len=MPI_MAX_ERROR_STRING), intent(out) :: string 2615 integer, intent(out) :: resultlen 2616 integer, optional, intent(out) :: ierror 2617end subroutine PMPI_Error_string_f08 2618end interface PMPI_Error_string 2619 2620interface PMPI_File_call_errhandler 2621subroutine PMPI_File_call_errhandler_f08(fh,errorcode,ierror) 2622 use :: mpi_f08_types, only : MPI_File 2623 implicit none 2624 TYPE(MPI_File), INTENT(IN) :: fh 2625 INTEGER, INTENT(IN) :: errorcode 2626 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2627end subroutine PMPI_File_call_errhandler_f08 2628end interface PMPI_File_call_errhandler 2629 2630interface PMPI_File_create_errhandler 2631subroutine PMPI_File_create_errhandler_f08(file_errhandler_fn,errhandler,ierror) 2632 use :: mpi_f08_types, only : MPI_Errhandler 2633 use :: mpi_f08_interfaces_callbacks, only : MPI_File_errhandler_function 2634 implicit none 2635 PROCEDURE(MPI_File_errhandler_function) :: file_errhandler_fn 2636 TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler 2637 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2638end subroutine PMPI_File_create_errhandler_f08 2639end interface PMPI_File_create_errhandler 2640 2641interface PMPI_File_get_errhandler 2642subroutine PMPI_File_get_errhandler_f08(file,errhandler,ierror) 2643 use :: mpi_f08_types, only : MPI_File, MPI_Errhandler 2644 implicit none 2645 TYPE(MPI_File), INTENT(IN) :: file 2646 TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler 2647 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2648end subroutine PMPI_File_get_errhandler_f08 2649end interface PMPI_File_get_errhandler 2650 2651interface PMPI_File_set_errhandler 2652subroutine PMPI_File_set_errhandler_f08(file,errhandler,ierror) 2653 use :: mpi_f08_types, only : MPI_File, MPI_Errhandler 2654 implicit none 2655 TYPE(MPI_File), INTENT(IN) :: file 2656 TYPE(MPI_Errhandler), INTENT(IN) :: errhandler 2657 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2658end subroutine PMPI_File_set_errhandler_f08 2659end interface PMPI_File_set_errhandler 2660 2661interface PMPI_Finalize 2662subroutine PMPI_Finalize_f08(ierror) 2663 implicit none 2664 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2665end subroutine PMPI_Finalize_f08 2666end interface PMPI_Finalize 2667 2668interface PMPI_Finalized 2669subroutine PMPI_Finalized_f08(flag,ierror) 2670 implicit none 2671 LOGICAL, INTENT(OUT) :: flag 2672 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2673end subroutine PMPI_Finalized_f08 2674end interface PMPI_Finalized 2675 2676! ASYNCHRONOUS had to removed from the base argument because 2677! the dummy argument is not an assumed-shape array. This will 2678! be okay once the Interop TR is implemented. 2679interface PMPI_Free_mem 2680subroutine PMPI_Free_mem_f08(base,ierror) 2681 implicit none 2682 !DEC$ ATTRIBUTES NO_ARG_CHECK :: base 2683 !GCC$ ATTRIBUTES NO_ARG_CHECK :: base 2684 !$PRAGMA IGNORE_TKR base 2685 !DIR$ IGNORE_TKR base 2686 !IBM* IGNORE_TKR base 2687 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: base 2688 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2689end subroutine PMPI_Free_mem_f08 2690end interface PMPI_Free_mem 2691 2692interface PMPI_Get_processor_name 2693subroutine PMPI_Get_processor_name_f08(name,resultlen,ierror) 2694 use :: mpi_f08_types, only : MPI_MAX_PROCESSOR_NAME 2695 implicit none 2696 character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name 2697 integer, intent(out) :: resultlen 2698 integer, optional, intent(out) :: ierror 2699end subroutine PMPI_Get_processor_name_f08 2700end interface PMPI_Get_processor_name 2701 2702interface PMPI_Get_version 2703subroutine PMPI_Get_version_f08(version,subversion,ierror) 2704 implicit none 2705 INTEGER, INTENT(OUT) :: version, subversion 2706 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2707end subroutine PMPI_Get_version_f08 2708end interface PMPI_Get_version 2709 2710interface PMPI_Init 2711subroutine PMPI_Init_f08(ierror) 2712 implicit none 2713 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2714end subroutine PMPI_Init_f08 2715end interface PMPI_Init 2716 2717interface PMPI_Initialized 2718subroutine PMPI_Initialized_f08(flag,ierror) 2719 implicit none 2720 LOGICAL, INTENT(OUT) :: flag 2721 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2722end subroutine PMPI_Initialized_f08 2723end interface PMPI_Initialized 2724 2725interface PMPI_Win_call_errhandler 2726subroutine PMPI_Win_call_errhandler_f08(win,errorcode,ierror) 2727 use :: mpi_f08_types, only : MPI_Win 2728 implicit none 2729 TYPE(MPI_Win), INTENT(IN) :: win 2730 INTEGER, INTENT(IN) :: errorcode 2731 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2732end subroutine PMPI_Win_call_errhandler_f08 2733end interface PMPI_Win_call_errhandler 2734 2735interface PMPI_Win_create_errhandler 2736subroutine PMPI_Win_create_errhandler_f08(win_errhandler_fn,errhandler,ierror) 2737 use :: mpi_f08_types, only : MPI_Errhandler 2738 use :: mpi_f08_interfaces_callbacks, only : MPI_Win_errhandler_function 2739 implicit none 2740 PROCEDURE(MPI_Win_errhandler_function) :: win_errhandler_fn 2741 TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler 2742 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2743end subroutine PMPI_Win_create_errhandler_f08 2744end interface PMPI_Win_create_errhandler 2745 2746interface PMPI_Win_get_errhandler 2747subroutine PMPI_Win_get_errhandler_f08(win,errhandler,ierror) 2748 use :: mpi_f08_types, only : MPI_Win, MPI_Errhandler 2749 implicit none 2750 TYPE(MPI_Win), INTENT(IN) :: win 2751 TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler 2752 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2753end subroutine PMPI_Win_get_errhandler_f08 2754end interface PMPI_Win_get_errhandler 2755 2756interface PMPI_Win_set_errhandler 2757subroutine PMPI_Win_set_errhandler_f08(win,errhandler,ierror) 2758 use :: mpi_f08_types, only : MPI_Win, MPI_Errhandler 2759 implicit none 2760 TYPE(MPI_Win), INTENT(IN) :: win 2761 TYPE(MPI_Errhandler), INTENT(IN) :: errhandler 2762 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2763end subroutine PMPI_Win_set_errhandler_f08 2764end interface PMPI_Win_set_errhandler 2765 2766interface PMPI_Info_create 2767subroutine PMPI_Info_create_f08(info,ierror) 2768 use :: mpi_f08_types, only : MPI_Info 2769 implicit none 2770 TYPE(MPI_Info), INTENT(OUT) :: info 2771 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2772end subroutine PMPI_Info_create_f08 2773end interface PMPI_Info_create 2774 2775interface PMPI_Info_delete 2776subroutine PMPI_Info_delete_f08(info,key,ierror) 2777 use :: mpi_f08_types, only : MPI_Info 2778 implicit none 2779 TYPE(MPI_Info), INTENT(IN) :: info 2780 CHARACTER(LEN=*), INTENT(IN) :: key 2781 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2782end subroutine PMPI_Info_delete_f08 2783end interface PMPI_Info_delete 2784 2785interface PMPI_Info_dup 2786subroutine PMPI_Info_dup_f08(info,newinfo,ierror) 2787 use :: mpi_f08_types, only : MPI_Info 2788 implicit none 2789 TYPE(MPI_Info), INTENT(IN) :: info 2790 TYPE(MPI_Info), INTENT(OUT) :: newinfo 2791 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2792end subroutine PMPI_Info_dup_f08 2793end interface PMPI_Info_dup 2794 2795interface PMPI_Info_free 2796subroutine PMPI_Info_free_f08(info,ierror) 2797 use :: mpi_f08_types, only : MPI_Info 2798 implicit none 2799 TYPE(MPI_Info), INTENT(INOUT) :: info 2800 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2801end subroutine PMPI_Info_free_f08 2802end interface PMPI_Info_free 2803 2804interface PMPI_Info_get 2805subroutine PMPI_Info_get_f08(info,key,valuelen,value,flag,ierror) 2806 use :: mpi_f08_types, only : MPI_Info 2807 implicit none 2808 TYPE(MPI_Info), INTENT(IN) :: info 2809 CHARACTER(LEN=*), INTENT(IN) :: key 2810 INTEGER, INTENT(IN) :: valuelen 2811 CHARACTER(LEN=valuelen), INTENT(OUT) :: value 2812 LOGICAL, INTENT(OUT) :: flag 2813 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2814end subroutine PMPI_Info_get_f08 2815end interface PMPI_Info_get 2816 2817interface PMPI_Info_get_nkeys 2818subroutine PMPI_Info_get_nkeys_f08(info,nkeys,ierror) 2819 use :: mpi_f08_types, only : MPI_Info 2820 implicit none 2821 TYPE(MPI_Info), INTENT(IN) :: info 2822 INTEGER, INTENT(OUT) :: nkeys 2823 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2824end subroutine PMPI_Info_get_nkeys_f08 2825end interface PMPI_Info_get_nkeys 2826 2827interface PMPI_Info_get_nthkey 2828subroutine PMPI_Info_get_nthkey_f08(info,n,key,ierror) 2829 use :: mpi_f08_types, only : MPI_Info 2830 implicit none 2831 TYPE(MPI_Info), INTENT(IN) :: info 2832 INTEGER, INTENT(IN) :: n 2833 CHARACTER(lEN=*), INTENT(OUT) :: key 2834 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2835end subroutine PMPI_Info_get_nthkey_f08 2836end interface PMPI_Info_get_nthkey 2837 2838interface PMPI_Info_get_valuelen 2839subroutine PMPI_Info_get_valuelen_f08(info,key,valuelen,flag,ierror) 2840 use :: mpi_f08_types, only : MPI_Info 2841 implicit none 2842 TYPE(MPI_Info), INTENT(IN) :: info 2843 CHARACTER(LEN=*), INTENT(IN) :: key 2844 INTEGER, INTENT(OUT) :: valuelen 2845 LOGICAL, INTENT(OUT) :: flag 2846 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2847end subroutine PMPI_Info_get_valuelen_f08 2848end interface PMPI_Info_get_valuelen 2849 2850interface PMPI_Info_set 2851subroutine PMPI_Info_set_f08(info,key,value,ierror) 2852 use :: mpi_f08_types, only : MPI_Info 2853 implicit none 2854 TYPE(MPI_Info), INTENT(IN) :: info 2855 CHARACTER(LEN=*), INTENT(IN) :: key, value 2856 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2857end subroutine PMPI_Info_set_f08 2858end interface PMPI_Info_set 2859 2860interface PMPI_Close_port 2861subroutine PMPI_Close_port_f08(port_name,ierror) 2862 implicit none 2863 CHARACTER(LEN=*), INTENT(IN) :: port_name 2864 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2865end subroutine PMPI_Close_port_f08 2866end interface PMPI_Close_port 2867 2868interface PMPI_Comm_accept 2869subroutine PMPI_Comm_accept_f08(port_name,info,root,comm,newcomm,ierror) 2870 use :: mpi_f08_types, only : MPI_Info, MPI_Comm 2871 implicit none 2872 CHARACTER(LEN=*), INTENT(IN) :: port_name 2873 TYPE(MPI_Info), INTENT(IN) :: info 2874 INTEGER, INTENT(IN) :: root 2875 TYPE(MPI_Comm), INTENT(IN) :: comm 2876 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 2877 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2878end subroutine PMPI_Comm_accept_f08 2879end interface PMPI_Comm_accept 2880 2881interface PMPI_Comm_connect 2882subroutine PMPI_Comm_connect_f08(port_name,info,root,comm,newcomm,ierror) 2883 use :: mpi_f08_types, only : MPI_Info, MPI_Comm 2884 implicit none 2885 CHARACTER(LEN=*), INTENT(IN) :: port_name 2886 TYPE(MPI_Info), INTENT(IN) :: info 2887 INTEGER, INTENT(IN) :: root 2888 TYPE(MPI_Comm), INTENT(IN) :: comm 2889 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 2890 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2891end subroutine PMPI_Comm_connect_f08 2892end interface PMPI_Comm_connect 2893 2894interface PMPI_Comm_disconnect 2895subroutine PMPI_Comm_disconnect_f08(comm,ierror) 2896 use :: mpi_f08_types, only : MPI_Comm 2897 implicit none 2898 TYPE(MPI_Comm), INTENT(INOUT) :: comm 2899 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2900end subroutine PMPI_Comm_disconnect_f08 2901end interface PMPI_Comm_disconnect 2902 2903interface PMPI_Comm_get_parent 2904subroutine PMPI_Comm_get_parent_f08(parent,ierror) 2905 use :: mpi_f08_types, only : MPI_Comm 2906 implicit none 2907 TYPE(MPI_Comm), INTENT(OUT) :: parent 2908 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2909end subroutine PMPI_Comm_get_parent_f08 2910end interface PMPI_Comm_get_parent 2911 2912interface PMPI_Comm_join 2913subroutine PMPI_Comm_join_f08(fd,intercomm,ierror) 2914 use :: mpi_f08_types, only : MPI_Comm 2915 implicit none 2916 INTEGER, INTENT(IN) :: fd 2917 TYPE(MPI_Comm), INTENT(OUT) :: intercomm 2918 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2919end subroutine PMPI_Comm_join_f08 2920end interface PMPI_Comm_join 2921 2922interface PMPI_Comm_spawn 2923subroutine PMPI_Comm_spawn_f08(command,argv,maxprocs,info,root,comm,intercomm, & 2924 array_of_errcodes,ierror) 2925 use :: mpi_f08_types, only : MPI_Info, MPI_Comm 2926 implicit none 2927 CHARACTER(LEN=*), INTENT(IN) :: command, argv(*) 2928 INTEGER, INTENT(IN) :: maxprocs, root 2929 TYPE(MPI_Info), INTENT(IN) :: info 2930 TYPE(MPI_Comm), INTENT(IN) :: comm 2931 TYPE(MPI_Comm), INTENT(OUT) :: intercomm 2932 INTEGER :: array_of_errcodes(*) 2933 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2934end subroutine PMPI_Comm_spawn_f08 2935end interface PMPI_Comm_spawn 2936 2937interface PMPI_Comm_spawn_multiple 2938subroutine PMPI_Comm_spawn_multiple_f08(count,array_of_commands,array_of_argv,array_of_maxprocs, & 2939 array_of_info,root,comm,intercomm, & 2940 array_of_errcodes,ierror) 2941 use :: mpi_f08_types, only : MPI_Info, MPI_Comm 2942 implicit none 2943 INTEGER, INTENT(IN) :: count, array_of_maxprocs(*), root 2944 CHARACTER(LEN=*), INTENT(IN) :: array_of_commands(*), array_of_argv(count,*) 2945 TYPE(MPI_Info), INTENT(IN) :: array_of_info(*) 2946 TYPE(MPI_Comm), INTENT(IN) :: comm 2947 TYPE(MPI_Comm), INTENT(OUT) :: intercomm 2948 INTEGER :: array_of_errcodes(*) 2949 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2950end subroutine PMPI_Comm_spawn_multiple_f08 2951end interface PMPI_Comm_spawn_multiple 2952 2953interface PMPI_Lookup_name 2954subroutine PMPI_Lookup_name_f08(service_name,info,port_name,ierror) 2955 use :: mpi_f08_types, only : MPI_Info, MPI_MAX_PORT_NAME 2956 implicit none 2957 CHARACTER(LEN=*), INTENT(IN) :: service_name 2958 TYPE(MPI_Info), INTENT(IN) :: info 2959 CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name 2960 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2961end subroutine PMPI_Lookup_name_f08 2962end interface PMPI_Lookup_name 2963 2964interface PMPI_Open_port 2965subroutine PMPI_Open_port_f08(info,port_name,ierror) 2966 use :: mpi_f08_types, only : MPI_Info, MPI_MAX_PORT_NAME 2967 implicit none 2968 TYPE(MPI_Info), INTENT(IN) :: info 2969 CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name 2970 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2971end subroutine PMPI_Open_port_f08 2972end interface PMPI_Open_port 2973 2974interface PMPI_Publish_name 2975subroutine PMPI_Publish_name_f08(service_name,info,port_name,ierror) 2976 use :: mpi_f08_types, only : MPI_Info 2977 implicit none 2978 TYPE(MPI_Info), INTENT(IN) :: info 2979 CHARACTER(LEN=*), INTENT(IN) :: service_name, port_name 2980 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2981end subroutine PMPI_Publish_name_f08 2982end interface PMPI_Publish_name 2983 2984interface PMPI_Unpublish_name 2985subroutine PMPI_Unpublish_name_f08(service_name,info,port_name,ierror) 2986 use :: mpi_f08_types, only : MPI_Info 2987 implicit none 2988 CHARACTER(LEN=*), INTENT(IN) :: service_name, port_name 2989 TYPE(MPI_Info), INTENT(IN) :: info 2990 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2991end subroutine PMPI_Unpublish_name_f08 2992end interface PMPI_Unpublish_name 2993 2994interface PMPI_Accumulate 2995subroutine PMPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, & 2996 target_disp,target_count,target_datatype,op,win,ierror) 2997 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND 2998 implicit none 2999 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3000 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3001 !$PRAGMA IGNORE_TKR origin_addr 3002 !DIR$ IGNORE_TKR origin_addr 3003 !IBM* IGNORE_TKR origin_addr 3004 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 3005 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 3006 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3007 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3008 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3009 TYPE(MPI_Op), INTENT(IN) :: op 3010 TYPE(MPI_Win), INTENT(IN) :: win 3011 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3012end subroutine PMPI_Accumulate_f08 3013end interface PMPI_Accumulate 3014 3015interface PMPI_Raccumulate 3016subroutine PMPI_Raccumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, & 3017 target_disp,target_count,target_datatype,op,win,request, & 3018 ierror) 3019 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_Request, MPI_ADDRESS_KIND 3020 implicit none 3021 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3022 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3023 !$PRAGMA IGNORE_TKR origin_addr 3024 !DIR$ IGNORE_TKR origin_addr 3025 !IBM* IGNORE_TKR origin_addr 3026 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 3027 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 3028 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3029 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3030 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3031 TYPE(MPI_Op), INTENT(IN) :: op 3032 TYPE(MPI_Win), INTENT(IN) :: win 3033 TYPE(MPI_Request), INTENT(OUT) :: request 3034 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3035end subroutine PMPI_Raccumulate_f08 3036end interface PMPI_Raccumulate 3037 3038interface PMPI_Get 3039subroutine PMPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, & 3040 target_disp,target_count,target_datatype,win,ierror) 3041 use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND 3042 implicit none 3043 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3044 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3045 !$PRAGMA IGNORE_TKR origin_addr 3046 !DIR$ IGNORE_TKR origin_addr 3047 !IBM* IGNORE_TKR origin_addr 3048 OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr 3049 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 3050 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3051 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3052 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3053 TYPE(MPI_Win), INTENT(IN) :: win 3054 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3055end subroutine PMPI_Get_f08 3056end interface PMPI_Get 3057 3058interface PMPI_Rget 3059subroutine PMPI_Rget_f08(origin_addr,origin_count,origin_datatype,target_rank, & 3060 target_disp,target_count,target_datatype,win,request,ierror) 3061 use :: mpi_f08_types, only : MPI_Datatype, MPI_Request, MPI_Win, MPI_ADDRESS_KIND 3062 implicit none 3063 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3064 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3065 !$PRAGMA IGNORE_TKR origin_addr 3066 !DIR$ IGNORE_TKR origin_addr 3067 !IBM* IGNORE_TKR origin_addr 3068 OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr 3069 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 3070 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3071 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3072 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3073 TYPE(MPI_Win), INTENT(IN) :: win 3074 TYPE(MPI_Request), INTENT(OUT) :: request 3075 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3076end subroutine PMPI_Rget_f08 3077end interface PMPI_Rget 3078 3079interface PMPI_Get_accumulate 3080subroutine PMPI_Get_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, & 3081 result_count,result_datatype,target_rank,target_disp, & 3082 target_count,target_datatype,op,win,ierror) 3083 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND 3084 implicit none 3085 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr 3086 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr 3087 !$PRAGMA IGNORE_TKR origin_addr,result_addr 3088 !DIR$ IGNORE_TKR origin_addr,result_addr 3089 !IBM* IGNORE_TKR origin_addr,result_addr 3090 OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr 3091 INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count 3092 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3093 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 3094 TYPE(MPI_Datatype), INTENT(IN) :: result_datatype 3095 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3096 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3097 TYPE(MPI_Op), INTENT(IN) :: op 3098 TYPE(MPI_Win), INTENT(IN) :: win 3099 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3100end subroutine PMPI_Get_accumulate_f08 3101end interface PMPI_Get_accumulate 3102 3103interface PMPI_Rget_accumulate 3104subroutine PMPI_Rget_accumulate_f08(origin_addr,origin_count,origin_datatype,result_addr, & 3105 result_count,result_datatype,target_rank,target_disp, & 3106 target_count,target_datatype,op,win,request,ierror) 3107 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Request, MPI_Win, MPI_ADDRESS_KIND 3108 implicit none 3109 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr 3110 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr 3111 !$PRAGMA IGNORE_TKR origin_addr,result_addr 3112 !DIR$ IGNORE_TKR origin_addr,result_addr 3113 !IBM* IGNORE_TKR origin_addr,result_addr 3114 OMPI_FORTRAN_IGNORE_TKR_TYPE :: origin_addr 3115 INTEGER, INTENT(IN) :: origin_count, result_count, target_rank, target_count 3116 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3117 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 3118 TYPE(MPI_Datatype), INTENT(IN) :: result_datatype 3119 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3120 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3121 TYPE(MPI_Op), INTENT(IN) :: op 3122 TYPE(MPI_Win), INTENT(IN) :: win 3123 TYPE(MPI_Request), INTENT(OUT) :: request 3124 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3125end subroutine PMPI_Rget_accumulate_f08 3126end interface PMPI_Rget_accumulate 3127 3128interface PMPI_Put 3129subroutine PMPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, & 3130 target_disp,target_count,target_datatype,win,ierror) 3131 use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND 3132 implicit none 3133 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3134 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3135 !$PRAGMA IGNORE_TKR origin_addr 3136 !DIR$ IGNORE_TKR origin_addr 3137 !IBM* IGNORE_TKR origin_addr 3138 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 3139 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 3140 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3141 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3142 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3143 TYPE(MPI_Win), INTENT(IN) :: win 3144 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3145end subroutine PMPI_Put_f08 3146end interface PMPI_Put 3147 3148interface PMPI_Rput 3149subroutine PMPI_Rput_f08(origin_addr,origin_count,origin_datatype,target_rank, & 3150 target_disp,target_count,target_datatype,win,request,ierror) 3151 use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_Request, MPI_ADDRESS_KIND 3152 implicit none 3153 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3154 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr 3155 !$PRAGMA IGNORE_TKR origin_addr 3156 !DIR$ IGNORE_TKR origin_addr 3157 !IBM* IGNORE_TKR origin_addr 3158 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 3159 INTEGER, INTENT(IN) :: origin_count, target_rank, target_count 3160 TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype 3161 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3162 TYPE(MPI_Datatype), INTENT(IN) :: target_datatype 3163 TYPE(MPI_Win), INTENT(IN) :: win 3164 TYPE(MPI_Request), INTENT(OUT) :: request 3165 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3166end subroutine PMPI_Rput_f08 3167end interface PMPI_Rput 3168 3169interface PMPI_Fetch_and_op 3170subroutine PMPI_Fetch_and_op_f08(origin_addr,result_addr,datatype,target_rank, & 3171 target_disp,op,win,ierror) 3172 use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND 3173 implicit none 3174 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr 3175 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,result_addr 3176 !$PRAGMA IGNORE_TKR origin_addr,result_addr 3177 !DIR$ IGNORE_TKR origin_addr,result_addr 3178 !IBM* IGNORE_TKR origin_addr,result_addr 3179 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr 3180 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 3181 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3182 INTEGER, INTENT(IN) :: target_rank 3183 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3184 TYPE(MPI_Op), INTENT(IN) :: op 3185 TYPE(MPI_Win), INTENT(IN) :: win 3186 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3187end subroutine PMPI_Fetch_and_op_f08 3188end interface PMPI_Fetch_and_op 3189 3190interface PMPI_Compare_and_swap 3191subroutine PMPI_Compare_and_swap_f08(origin_addr,compare_addr,result_addr,datatype, & 3192 target_rank,target_disp,win,ierror) 3193 use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND 3194 implicit none 3195 !DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr 3196 !GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr,compare_addr,result_addr 3197 !$PRAGMA IGNORE_TKR origin_addr,compare_addr,result_addr 3198 !DIR$ IGNORE_TKR origin_addr,compare_addr,result_addr 3199 !IBM* IGNORE_TKR origin_addr,compare_addr,result_addr 3200 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: origin_addr,compare_addr 3201 OMPI_FORTRAN_IGNORE_TKR_TYPE :: result_addr 3202 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3203 INTEGER, INTENT(IN) :: target_rank 3204 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp 3205 TYPE(MPI_Win), INTENT(IN) :: win 3206 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3207end subroutine PMPI_Compare_and_swap_f08 3208end interface PMPI_Compare_and_swap 3209 3210interface PMPI_Win_complete 3211subroutine PMPI_Win_complete_f08(win,ierror) 3212 use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND 3213 implicit none 3214 TYPE(MPI_Win), INTENT(IN) :: win 3215 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3216end subroutine PMPI_Win_complete_f08 3217end interface PMPI_Win_complete 3218 3219interface PMPI_Win_create 3220subroutine PMPI_Win_create_f08(base,size,disp_unit,info,comm,win,ierror) 3221 use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND 3222 implicit none 3223 !DEC$ ATTRIBUTES NO_ARG_CHECK :: base 3224 !GCC$ ATTRIBUTES NO_ARG_CHECK :: base 3225 !$PRAGMA IGNORE_TKR base 3226 !DIR$ IGNORE_TKR base 3227 !IBM* IGNORE_TKR base 3228 OMPI_FORTRAN_IGNORE_TKR_TYPE :: base 3229 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size 3230 INTEGER, INTENT(IN) :: disp_unit 3231 TYPE(MPI_Info), INTENT(IN) :: info 3232 TYPE(MPI_Comm), INTENT(IN) :: comm 3233 TYPE(MPI_Win), INTENT(OUT) :: win 3234 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3235end subroutine PMPI_Win_create_f08 3236end interface PMPI_Win_create 3237 3238interface PMPI_Win_create_dynamic 3239subroutine PMPI_Win_create_dynamic_f08(info,comm,win,ierror) 3240 use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win 3241 implicit none 3242 TYPE(MPI_Info), INTENT(IN) :: info 3243 TYPE(MPI_Comm), INTENT(IN) :: comm 3244 TYPE(MPI_Win), INTENT(OUT) :: win 3245 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3246end subroutine PMPI_Win_create_dynamic_f08 3247end interface PMPI_Win_create_dynamic 3248 3249interface PMPI_Win_attach 3250subroutine PMPI_Win_attach_f08(win,base,size,ierror) 3251 use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND 3252 implicit none 3253 !DEC$ ATTRIBUTES NO_ARG_CHECK :: base 3254 !GCC$ ATTRIBUTES NO_ARG_CHECK :: base 3255 !$PRAGMA IGNORE_TKR base 3256 !DIR$ IGNORE_TKR base 3257 !IBM* IGNORE_TKR base 3258 OMPI_FORTRAN_IGNORE_TKR_TYPE :: base 3259 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size 3260 TYPE(MPI_Win), INTENT(IN) :: win 3261 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3262end subroutine PMPI_Win_attach_f08 3263end interface PMPI_Win_attach 3264 3265interface PMPI_Win_detach 3266subroutine PMPI_Win_detach_f08(win,base,ierror) 3267 use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND 3268 implicit none 3269 !DEC$ ATTRIBUTES NO_ARG_CHECK :: base 3270 !GCC$ ATTRIBUTES NO_ARG_CHECK :: base 3271 !$PRAGMA IGNORE_TKR base 3272 !DIR$ IGNORE_TKR base 3273 !IBM* IGNORE_TKR base 3274 OMPI_FORTRAN_IGNORE_TKR_TYPE :: base 3275 TYPE(MPI_Win), INTENT(IN) :: win 3276 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3277end subroutine PMPI_Win_detach_f08 3278end interface PMPI_Win_detach 3279 3280interface PMPI_Win_fence 3281subroutine PMPI_Win_fence_f08(assert,win,ierror) 3282 use :: mpi_f08_types, only : MPI_Win 3283 implicit none 3284 INTEGER, INTENT(IN) :: assert 3285 TYPE(MPI_Win), INTENT(IN) :: win 3286 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3287end subroutine PMPI_Win_fence_f08 3288end interface PMPI_Win_fence 3289 3290interface PMPI_Win_free 3291subroutine PMPI_Win_free_f08(win,ierror) 3292 use :: mpi_f08_types, only : MPI_Win 3293 implicit none 3294 TYPE(MPI_Win), INTENT(INOUT) :: win 3295 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3296end subroutine PMPI_Win_free_f08 3297end interface PMPI_Win_free 3298 3299interface PMPI_Win_get_group 3300subroutine PMPI_Win_get_group_f08(win,group,ierror) 3301 use :: mpi_f08_types, only : MPI_Win, MPI_Group 3302 implicit none 3303 TYPE(MPI_Win), INTENT(IN) :: win 3304 TYPE(MPI_Group), INTENT(OUT) :: group 3305 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3306end subroutine PMPI_Win_get_group_f08 3307end interface PMPI_Win_get_group 3308 3309interface PMPI_Win_lock 3310subroutine PMPI_Win_lock_f08(lock_type,rank,assert,win,ierror) 3311 use :: mpi_f08_types, only : MPI_Win 3312 implicit none 3313 INTEGER, INTENT(IN) :: lock_type, rank, assert 3314 TYPE(MPI_Win), INTENT(IN) :: win 3315 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3316end subroutine PMPI_Win_lock_f08 3317end interface PMPI_Win_lock 3318 3319interface PMPI_Win_lock_all 3320subroutine PMPI_Win_lock_all_f08(assert,win,ierror) 3321 use :: mpi_f08_types, only : MPI_Win 3322 implicit none 3323 INTEGER, INTENT(IN) :: assert 3324 TYPE(MPI_Win), INTENT(IN) :: win 3325 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3326end subroutine PMPI_Win_lock_all_f08 3327end interface PMPI_Win_lock_all 3328 3329interface PMPI_Win_post 3330subroutine PMPI_Win_post_f08(group,assert,win,ierror) 3331 use :: mpi_f08_types, only : MPI_Group, MPI_Win 3332 implicit none 3333 TYPE(MPI_Group), INTENT(IN) :: group 3334 INTEGER, INTENT(IN) :: assert 3335 TYPE(MPI_Win), INTENT(IN) :: win 3336 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3337end subroutine PMPI_Win_post_f08 3338end interface PMPI_Win_post 3339 3340interface PMPI_Win_shared_query 3341subroutine PMPI_Win_shared_query_f08(win, rank, size, disp_unit, baseptr,& 3342 ierror) 3343 USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR 3344 use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND 3345 TYPE(MPI_Win), INTENT(IN) :: win 3346 INTEGER, INTENT(IN) :: rank 3347 INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(OUT) :: size 3348 INTEGER, INTENT(OUT) :: disp_unit 3349 TYPE(C_PTR), INTENT(OUT) :: baseptr 3350 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3351end subroutine PMPI_Win_shared_query_f08 3352end interface PMPI_Win_shared_query 3353 3354interface PMPI_Win_start 3355subroutine PMPI_Win_start_f08(group,assert,win,ierror) 3356 use :: mpi_f08_types, only : MPI_Group, MPI_Win 3357 implicit none 3358 TYPE(MPI_Group), INTENT(IN) :: group 3359 INTEGER, INTENT(IN) :: assert 3360 TYPE(MPI_Win), INTENT(IN) :: win 3361 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3362end subroutine PMPI_Win_start_f08 3363end interface PMPI_Win_start 3364 3365interface PMPI_Win_sync 3366subroutine PMPI_Win_sync_f08(win,ierror) 3367 use :: mpi_f08_types, only : MPI_Group, MPI_Win 3368 implicit none 3369 TYPE(MPI_Win), INTENT(IN) :: win 3370 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3371end subroutine PMPI_Win_sync_f08 3372end interface PMPI_Win_sync 3373 3374interface PMPI_Win_test 3375subroutine PMPI_Win_test_f08(win,flag,ierror) 3376 use :: mpi_f08_types, only : MPI_Win 3377 implicit none 3378 LOGICAL, INTENT(OUT) :: flag 3379 TYPE(MPI_Win), INTENT(IN) :: win 3380 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3381end subroutine PMPI_Win_test_f08 3382end interface PMPI_Win_test 3383 3384interface PMPI_Win_unlock 3385subroutine PMPI_Win_unlock_f08(rank,win,ierror) 3386 use :: mpi_f08_types, only : MPI_Win 3387 implicit none 3388 INTEGER, INTENT(IN) :: rank 3389 TYPE(MPI_Win), INTENT(IN) :: win 3390 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3391end subroutine PMPI_Win_unlock_f08 3392end interface PMPI_Win_unlock 3393 3394interface PMPI_Win_unlock_all 3395subroutine PMPI_Win_unlock_all_f08(win,ierror) 3396 use :: mpi_f08_types, only : MPI_Win 3397 implicit none 3398 TYPE(MPI_Win), INTENT(IN) :: win 3399 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3400end subroutine PMPI_Win_unlock_all_f08 3401end interface PMPI_Win_unlock_all 3402 3403interface PMPI_Win_wait 3404subroutine PMPI_Win_wait_f08(win,ierror) 3405 use :: mpi_f08_types, only : MPI_Win 3406 implicit none 3407 TYPE(MPI_Win), INTENT(IN) :: win 3408 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3409end subroutine PMPI_Win_wait_f08 3410end interface PMPI_Win_wait 3411 3412interface PMPI_Win_flush 3413subroutine PMPI_Win_flush_f08(rank,win,ierror) 3414 use :: mpi_f08_types, only : MPI_Win 3415 implicit none 3416 INTEGER, INTENT(IN) :: rank 3417 TYPE(MPI_Win), INTENT(IN) :: win 3418 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3419end subroutine PMPI_Win_flush_f08 3420end interface PMPI_Win_flush 3421 3422interface PMPI_Win_flush_local 3423subroutine PMPI_Win_flush_local_f08(rank,win,ierror) 3424 use :: mpi_f08_types, only : MPI_Win 3425 implicit none 3426 INTEGER, INTENT(IN) :: rank 3427 TYPE(MPI_Win), INTENT(IN) :: win 3428 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3429end subroutine PMPI_Win_flush_local_f08 3430end interface PMPI_Win_flush_local 3431 3432interface PMPI_Win_flush_local_all 3433subroutine PMPI_Win_flush_local_all_f08(win,ierror) 3434 use :: mpi_f08_types, only : MPI_Win 3435 implicit none 3436 TYPE(MPI_Win), INTENT(IN) :: win 3437 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3438end subroutine PMPI_Win_flush_local_all_f08 3439end interface PMPI_Win_flush_local_all 3440 3441interface PMPI_Win_flush_all 3442subroutine PMPI_Win_flush_all_f08(win,ierror) 3443 use :: mpi_f08_types, only : MPI_Win 3444 implicit none 3445 TYPE(MPI_Win), INTENT(IN) :: win 3446 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3447end subroutine PMPI_Win_flush_all_f08 3448end interface PMPI_Win_flush_all 3449 3450interface PMPI_Grequest_complete 3451subroutine PMPI_Grequest_complete_f08(request,ierror) 3452 use :: mpi_f08_types, only : MPI_Request 3453 implicit none 3454 TYPE(MPI_Request), INTENT(IN) :: request 3455 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3456end subroutine PMPI_Grequest_complete_f08 3457end interface PMPI_Grequest_complete 3458 3459interface PMPI_Grequest_start 3460subroutine PMPI_Grequest_start_f08(query_fn,free_fn,cancel_fn,extra_state,request, & 3461 ierror) 3462 use :: mpi_f08_types, only : MPI_Request, MPI_ADDRESS_KIND 3463 use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_query_function 3464 use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_free_function 3465 use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_cancel_function 3466 implicit none 3467 PROCEDURE(MPI_Grequest_query_function) :: query_fn 3468 PROCEDURE(MPI_Grequest_free_function) :: free_fn 3469 PROCEDURE(MPI_Grequest_cancel_function) :: cancel_fn 3470 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 3471 TYPE(MPI_Request), INTENT(OUT) :: request 3472 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3473end subroutine PMPI_Grequest_start_f08 3474end interface PMPI_Grequest_start 3475 3476interface PMPI_Init_thread 3477subroutine PMPI_Init_thread_f08(required,provided,ierror) 3478 implicit none 3479 INTEGER, INTENT(IN) :: required 3480 INTEGER, INTENT(OUT) :: provided 3481 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3482end subroutine PMPI_Init_thread_f08 3483end interface PMPI_Init_thread 3484 3485interface PMPI_Is_thread_main 3486subroutine PMPI_Is_thread_main_f08(flag,ierror) 3487 implicit none 3488 LOGICAL, INTENT(OUT) :: flag 3489 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3490end subroutine PMPI_Is_thread_main_f08 3491end interface PMPI_Is_thread_main 3492 3493interface PMPI_Query_thread 3494subroutine PMPI_Query_thread_f08(provided,ierror) 3495 implicit none 3496 INTEGER, INTENT(OUT) :: provided 3497 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3498end subroutine PMPI_Query_thread_f08 3499end interface PMPI_Query_thread 3500 3501interface PMPI_Status_set_cancelled 3502subroutine PMPI_Status_set_cancelled_f08(status,flag,ierror) 3503 use :: mpi_f08_types, only : MPI_Status 3504 implicit none 3505 TYPE(MPI_Status), INTENT(INOUT) :: status 3506 LOGICAL, INTENT(OUT) :: flag 3507 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3508end subroutine PMPI_Status_set_cancelled_f08 3509end interface PMPI_Status_set_cancelled 3510 3511interface PMPI_Status_set_elements 3512subroutine PMPI_Status_set_elements_f08(status,datatype,count,ierror) 3513 use :: mpi_f08_types, only : MPI_Status, MPI_Datatype 3514 implicit none 3515 TYPE(MPI_Status), INTENT(INOUT) :: status 3516 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3517 INTEGER, INTENT(IN) :: count 3518 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3519end subroutine PMPI_Status_set_elements_f08 3520end interface PMPI_Status_set_elements 3521 3522interface PMPI_Status_set_elements_x 3523subroutine PMPI_Status_set_elements_x_f08(status,datatype,count,ierror) 3524 use :: mpi_f08_types, only : MPI_Status, MPI_Datatype, MPI_COUNT_KIND 3525 implicit none 3526 TYPE(MPI_Status), INTENT(INOUT) :: status 3527 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3528 INTEGER(MPI_COUNT_KIND), INTENT(IN) :: count 3529 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3530end subroutine PMPI_Status_set_elements_x_f08 3531end interface PMPI_Status_set_elements_x 3532 3533interface PMPI_File_close 3534subroutine PMPI_File_close_f08(fh,ierror) 3535 use :: mpi_f08_types, only : MPI_File 3536 implicit none 3537 TYPE(MPI_File), INTENT(INOUT) :: fh 3538 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3539end subroutine PMPI_File_close_f08 3540end interface PMPI_File_close 3541 3542interface PMPI_File_delete 3543subroutine PMPI_File_delete_f08(filename,info,ierror) 3544 use :: mpi_f08_types, only : MPI_Info 3545 implicit none 3546 CHARACTER(LEN=*), INTENT(IN) :: filename 3547 TYPE(MPI_Info), INTENT(IN) :: info 3548 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3549end subroutine PMPI_File_delete_f08 3550end interface PMPI_File_delete 3551 3552interface PMPI_File_get_amode 3553subroutine PMPI_File_get_amode_f08(fh,amode,ierror) 3554 use :: mpi_f08_types, only : MPI_File 3555 implicit none 3556 TYPE(MPI_File), INTENT(IN) :: fh 3557 INTEGER, INTENT(OUT) :: amode 3558 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3559end subroutine PMPI_File_get_amode_f08 3560end interface PMPI_File_get_amode 3561 3562interface PMPI_File_get_atomicity 3563subroutine PMPI_File_get_atomicity_f08(fh,flag,ierror) 3564 use :: mpi_f08_types, only : MPI_File 3565 implicit none 3566 TYPE(MPI_File), INTENT(IN) :: fh 3567 LOGICAL, INTENT(OUT) :: flag 3568 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3569end subroutine PMPI_File_get_atomicity_f08 3570end interface PMPI_File_get_atomicity 3571 3572interface PMPI_File_get_byte_offset 3573subroutine PMPI_File_get_byte_offset_f08(fh,offset,disp,ierror) 3574 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 3575 implicit none 3576 TYPE(MPI_File), INTENT(IN) :: fh 3577 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3578 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp 3579 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3580end subroutine PMPI_File_get_byte_offset_f08 3581end interface PMPI_File_get_byte_offset 3582 3583interface PMPI_File_get_group 3584subroutine PMPI_File_get_group_f08(fh,group,ierror) 3585 use :: mpi_f08_types, only : MPI_File, MPI_Group 3586 implicit none 3587 TYPE(MPI_File), INTENT(IN) :: fh 3588 TYPE(MPI_Group), INTENT(OUT) :: group 3589 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3590end subroutine PMPI_File_get_group_f08 3591end interface PMPI_File_get_group 3592 3593interface PMPI_File_get_info 3594subroutine PMPI_File_get_info_f08(fh,info_used,ierror) 3595 use :: mpi_f08_types, only : MPI_File, MPI_Info 3596 implicit none 3597 TYPE(MPI_File), INTENT(IN) :: fh 3598 TYPE(MPI_Info), INTENT(OUT) :: info_used 3599 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3600end subroutine PMPI_File_get_info_f08 3601end interface PMPI_File_get_info 3602 3603interface PMPI_File_get_position 3604subroutine PMPI_File_get_position_f08(fh,offset,ierror) 3605 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 3606 implicit none 3607 TYPE(MPI_File), INTENT(IN) :: fh 3608 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset 3609 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3610end subroutine PMPI_File_get_position_f08 3611end interface PMPI_File_get_position 3612 3613interface PMPI_File_get_position_shared 3614subroutine PMPI_File_get_position_shared_f08(fh,offset,ierror) 3615 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 3616 implicit none 3617 TYPE(MPI_File), INTENT(IN) :: fh 3618 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset 3619 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3620end subroutine PMPI_File_get_position_shared_f08 3621end interface PMPI_File_get_position_shared 3622 3623interface PMPI_File_get_size 3624subroutine PMPI_File_get_size_f08(fh,size,ierror) 3625 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 3626 implicit none 3627 TYPE(MPI_File), INTENT(IN) :: fh 3628 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: size 3629 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3630end subroutine PMPI_File_get_size_f08 3631end interface PMPI_File_get_size 3632 3633interface PMPI_File_get_type_extent 3634subroutine PMPI_File_get_type_extent_f08(fh,datatype,extent,ierror) 3635 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_ADDRESS_KIND 3636 implicit none 3637 TYPE(MPI_File), INTENT(IN) :: fh 3638 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3639 INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: extent 3640 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3641end subroutine PMPI_File_get_type_extent_f08 3642end interface PMPI_File_get_type_extent 3643 3644interface PMPI_File_get_view 3645subroutine PMPI_File_get_view_f08(fh,disp,etype,filetype,datarep,ierror) 3646 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND 3647 implicit none 3648 TYPE(MPI_File), INTENT(IN) :: fh 3649 INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp 3650 TYPE(MPI_Datatype), INTENT(OUT) :: etype 3651 TYPE(MPI_Datatype), INTENT(OUT) :: filetype 3652 CHARACTER(LEN=*), INTENT(OUT) :: datarep 3653 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3654end subroutine PMPI_File_get_view_f08 3655end interface PMPI_File_get_view 3656 3657interface PMPI_File_iread 3658subroutine PMPI_File_iread_f08(fh,buf,count,datatype,request,ierror) 3659 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request 3660 implicit none 3661 TYPE(MPI_File), INTENT(IN) :: fh 3662 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3663 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3664 !$PRAGMA IGNORE_TKR buf 3665 !DIR$ IGNORE_TKR buf 3666 !IBM* IGNORE_TKR buf 3667 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3668 INTEGER, INTENT(IN) :: count 3669 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3670 TYPE(MPI_Request), INTENT(OUT) :: request 3671 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3672end subroutine PMPI_File_iread_f08 3673end interface PMPI_File_iread 3674 3675interface PMPI_File_iread_at 3676subroutine PMPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror) 3677 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND 3678 implicit none 3679 TYPE(MPI_File), INTENT(IN) :: fh 3680 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3681 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3682 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3683 !$PRAGMA IGNORE_TKR buf 3684 !DIR$ IGNORE_TKR buf 3685 !IBM* IGNORE_TKR buf 3686 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3687 INTEGER, INTENT(IN) :: count 3688 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3689 TYPE(MPI_Request), INTENT(OUT) :: request 3690 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3691end subroutine PMPI_File_iread_at_f08 3692end interface PMPI_File_iread_at 3693 3694interface PMPI_File_iread_all 3695subroutine PMPI_File_iread_all_f08(fh,buf,count,datatype,request,ierror) 3696 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request 3697 implicit none 3698 TYPE(MPI_File), INTENT(IN) :: fh 3699 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3700 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3701 !$PRAGMA IGNORE_TKR buf 3702 !DIR$ IGNORE_TKR buf 3703 !IBM* IGNORE_TKR buf 3704 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3705 INTEGER, INTENT(IN) :: count 3706 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3707 TYPE(MPI_Request), INTENT(OUT) :: request 3708 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3709end subroutine PMPI_File_iread_all_f08 3710end interface PMPI_File_iread_all 3711 3712interface PMPI_File_iread_at_all 3713subroutine PMPI_File_iread_at_all_f08(fh,offset,buf,count,datatype,request,ierror) 3714 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND 3715 implicit none 3716 TYPE(MPI_File), INTENT(IN) :: fh 3717 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3718 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3719 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3720 !$PRAGMA IGNORE_TKR buf 3721 !DIR$ IGNORE_TKR buf 3722 !IBM* IGNORE_TKR buf 3723 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3724 INTEGER, INTENT(IN) :: count 3725 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3726 TYPE(MPI_Request), INTENT(OUT) :: request 3727 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3728end subroutine PMPI_File_iread_at_all_f08 3729end interface PMPI_File_iread_at_all 3730 3731interface PMPI_File_iread_shared 3732subroutine PMPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror) 3733 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request 3734 implicit none 3735 TYPE(MPI_File), INTENT(IN) :: fh 3736 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3737 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3738 !$PRAGMA IGNORE_TKR buf 3739 !DIR$ IGNORE_TKR buf 3740 !IBM* IGNORE_TKR buf 3741 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3742 INTEGER, INTENT(IN) :: count 3743 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3744 TYPE(MPI_Request), INTENT(OUT) :: request 3745 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3746end subroutine PMPI_File_iread_shared_f08 3747end interface PMPI_File_iread_shared 3748 3749interface PMPI_File_iwrite 3750subroutine PMPI_File_iwrite_f08(fh,buf,count,datatype,request,ierror) 3751 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request 3752 implicit none 3753 TYPE(MPI_File), INTENT(IN) :: fh 3754 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3755 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3756 !$PRAGMA IGNORE_TKR buf 3757 !DIR$ IGNORE_TKR buf 3758 !IBM* IGNORE_TKR buf 3759 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 3760 INTEGER, INTENT(IN) :: count 3761 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3762 TYPE(MPI_Request), INTENT(OUT) :: request 3763 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3764end subroutine PMPI_File_iwrite_f08 3765end interface PMPI_File_iwrite 3766 3767interface PMPI_File_iwrite_at 3768subroutine PMPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror) 3769 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND 3770 implicit none 3771 TYPE(MPI_File), INTENT(IN) :: fh 3772 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3773 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3774 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3775 !$PRAGMA IGNORE_TKR buf 3776 !DIR$ IGNORE_TKR buf 3777 !IBM* IGNORE_TKR buf 3778 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 3779 INTEGER, INTENT(IN) :: count 3780 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3781 TYPE(MPI_Request), INTENT(OUT) :: request 3782 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3783end subroutine PMPI_File_iwrite_at_f08 3784end interface PMPI_File_iwrite_at 3785 3786interface PMPI_File_iwrite_all 3787subroutine PMPI_File_iwrite_all_f08(fh,buf,count,datatype,request,ierror) 3788 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request 3789 implicit none 3790 TYPE(MPI_File), INTENT(IN) :: fh 3791 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3792 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3793 !$PRAGMA IGNORE_TKR buf 3794 !DIR$ IGNORE_TKR buf 3795 !IBM* IGNORE_TKR buf 3796 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 3797 INTEGER, INTENT(IN) :: count 3798 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3799 TYPE(MPI_Request), INTENT(OUT) :: request 3800 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3801end subroutine PMPI_File_iwrite_all_f08 3802end interface PMPI_File_iwrite_all 3803 3804interface PMPI_File_iwrite_at_all 3805subroutine PMPI_File_iwrite_at_all_f08(fh,offset,buf,count,datatype,request,ierror) 3806 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND 3807 implicit none 3808 TYPE(MPI_File), INTENT(IN) :: fh 3809 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3810 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3811 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3812 !$PRAGMA IGNORE_TKR buf 3813 !DIR$ IGNORE_TKR buf 3814 !IBM* IGNORE_TKR buf 3815 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 3816 INTEGER, INTENT(IN) :: count 3817 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3818 TYPE(MPI_Request), INTENT(OUT) :: request 3819 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3820end subroutine PMPI_File_iwrite_at_all_f08 3821end interface PMPI_File_iwrite_at_all 3822 3823interface PMPI_File_iwrite_shared 3824subroutine PMPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror) 3825 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request 3826 implicit none 3827 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3828 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3829 !$PRAGMA IGNORE_TKR buf 3830 !DIR$ IGNORE_TKR buf 3831 !IBM* IGNORE_TKR buf 3832 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 3833 TYPE(MPI_File), INTENT(IN) :: fh 3834 INTEGER, INTENT(IN) :: count 3835 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3836 TYPE(MPI_Request), INTENT(OUT) :: request 3837 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3838end subroutine PMPI_File_iwrite_shared_f08 3839end interface PMPI_File_iwrite_shared 3840 3841interface PMPI_File_open 3842subroutine PMPI_File_open_f08(comm,filename,amode,info,fh,ierror) 3843 use :: mpi_f08_types, only : MPI_Comm, MPI_Info, MPI_File 3844 implicit none 3845 TYPE(MPI_Comm), INTENT(IN) :: comm 3846 CHARACTER(LEN=*), INTENT(IN) :: filename 3847 INTEGER, INTENT(IN) :: amode 3848 TYPE(MPI_Info), INTENT(IN) :: info 3849 TYPE(MPI_File), INTENT(OUT) :: fh 3850 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3851end subroutine PMPI_File_open_f08 3852end interface PMPI_File_open 3853 3854interface PMPI_File_preallocate 3855subroutine PMPI_File_preallocate_f08(fh,size,ierror) 3856 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 3857 implicit none 3858 TYPE(MPI_File), INTENT(IN) :: fh 3859 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size 3860 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3861end subroutine PMPI_File_preallocate_f08 3862end interface PMPI_File_preallocate 3863 3864interface PMPI_File_read 3865subroutine PMPI_File_read_f08(fh,buf,count,datatype,status,ierror) 3866 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 3867 implicit none 3868 TYPE(MPI_File), INTENT(IN) :: fh 3869 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3870 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3871 !$PRAGMA IGNORE_TKR buf 3872 !DIR$ IGNORE_TKR buf 3873 !IBM* IGNORE_TKR buf 3874 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3875 INTEGER, INTENT(IN) :: count 3876 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3877 TYPE(MPI_Status) :: status 3878 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3879end subroutine PMPI_File_read_f08 3880end interface PMPI_File_read 3881 3882interface PMPI_File_read_all 3883subroutine PMPI_File_read_all_f08(fh,buf,count,datatype,status,ierror) 3884 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 3885 implicit none 3886 TYPE(MPI_File), INTENT(IN) :: fh 3887 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3888 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3889 !$PRAGMA IGNORE_TKR buf 3890 !DIR$ IGNORE_TKR buf 3891 !IBM* IGNORE_TKR buf 3892 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3893 INTEGER, INTENT(IN) :: count 3894 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3895 TYPE(MPI_Status) :: status 3896 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3897end subroutine PMPI_File_read_all_f08 3898end interface PMPI_File_read_all 3899 3900interface PMPI_File_read_all_begin 3901subroutine PMPI_File_read_all_begin_f08(fh,buf,count,datatype,ierror) 3902 use :: mpi_f08_types, only : MPI_File, MPI_Datatype 3903 implicit none 3904 TYPE(MPI_File), INTENT(IN) :: fh 3905 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3906 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3907 !$PRAGMA IGNORE_TKR buf 3908 !DIR$ IGNORE_TKR buf 3909 !IBM* IGNORE_TKR buf 3910 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3911 INTEGER, INTENT(IN) :: count 3912 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3913 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3914end subroutine PMPI_File_read_all_begin_f08 3915end interface PMPI_File_read_all_begin 3916 3917interface PMPI_File_read_all_end 3918subroutine PMPI_File_read_all_end_f08(fh,buf,status,ierror) 3919 use :: mpi_f08_types, only : MPI_File, MPI_Status 3920 implicit none 3921 TYPE(MPI_File), INTENT(IN) :: fh 3922 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3923 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3924 !$PRAGMA IGNORE_TKR buf 3925 !DIR$ IGNORE_TKR buf 3926 !IBM* IGNORE_TKR buf 3927 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3928 TYPE(MPI_Status) :: status 3929 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3930end subroutine PMPI_File_read_all_end_f08 3931end interface PMPI_File_read_all_end 3932 3933interface PMPI_File_read_at 3934subroutine PMPI_File_read_at_f08(fh,offset,buf,count,datatype,status,ierror) 3935 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND 3936 implicit none 3937 TYPE(MPI_File), INTENT(IN) :: fh 3938 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3939 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3940 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3941 !$PRAGMA IGNORE_TKR buf 3942 !DIR$ IGNORE_TKR buf 3943 !IBM* IGNORE_TKR buf 3944 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3945 INTEGER, INTENT(IN) :: count 3946 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3947 TYPE(MPI_Status) :: status 3948 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3949end subroutine PMPI_File_read_at_f08 3950end interface PMPI_File_read_at 3951 3952interface PMPI_File_read_at_all 3953subroutine PMPI_File_read_at_all_f08(fh,offset,buf,count,datatype,status,ierror) 3954 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND 3955 implicit none 3956 TYPE(MPI_File), INTENT(IN) :: fh 3957 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3958 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3959 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3960 !$PRAGMA IGNORE_TKR buf 3961 !DIR$ IGNORE_TKR buf 3962 !IBM* IGNORE_TKR buf 3963 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3964 INTEGER, INTENT(IN) :: count 3965 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3966 TYPE(MPI_Status) :: status 3967 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3968end subroutine PMPI_File_read_at_all_f08 3969end interface PMPI_File_read_at_all 3970 3971interface PMPI_File_read_at_all_begin 3972subroutine PMPI_File_read_at_all_begin_f08(fh,offset,buf,count,datatype,ierror) 3973 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND 3974 implicit none 3975 TYPE(MPI_File), INTENT(IN) :: fh 3976 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 3977 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3978 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3979 !$PRAGMA IGNORE_TKR buf 3980 !DIR$ IGNORE_TKR buf 3981 !IBM* IGNORE_TKR buf 3982 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 3983 INTEGER, INTENT(IN) :: count 3984 TYPE(MPI_Datatype), INTENT(IN) :: datatype 3985 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3986end subroutine PMPI_File_read_at_all_begin_f08 3987end interface PMPI_File_read_at_all_begin 3988 3989interface PMPI_File_read_at_all_end 3990subroutine PMPI_File_read_at_all_end_f08(fh,buf,status,ierror) 3991 use :: mpi_f08_types, only : MPI_File, MPI_Status 3992 implicit none 3993 TYPE(MPI_File), INTENT(IN) :: fh 3994 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 3995 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 3996 !$PRAGMA IGNORE_TKR buf 3997 !DIR$ IGNORE_TKR buf 3998 !IBM* IGNORE_TKR buf 3999 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4000 TYPE(MPI_Status) :: status 4001 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4002end subroutine PMPI_File_read_at_all_end_f08 4003end interface PMPI_File_read_at_all_end 4004 4005interface PMPI_File_read_ordered 4006subroutine PMPI_File_read_ordered_f08(fh,buf,count,datatype,status,ierror) 4007 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 4008 implicit none 4009 TYPE(MPI_File), INTENT(IN) :: fh 4010 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4011 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4012 !$PRAGMA IGNORE_TKR buf 4013 !DIR$ IGNORE_TKR buf 4014 !IBM* IGNORE_TKR buf 4015 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4016 INTEGER, INTENT(IN) :: count 4017 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4018 TYPE(MPI_Status) :: status 4019 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4020end subroutine PMPI_File_read_ordered_f08 4021end interface PMPI_File_read_ordered 4022 4023interface PMPI_File_read_ordered_begin 4024subroutine PMPI_File_read_ordered_begin_f08(fh,buf,count,datatype,ierror) 4025 use :: mpi_f08_types, only : MPI_File, MPI_Datatype 4026 implicit none 4027 TYPE(MPI_File), INTENT(IN) :: fh 4028 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4029 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4030 !$PRAGMA IGNORE_TKR buf 4031 !DIR$ IGNORE_TKR buf 4032 !IBM* IGNORE_TKR buf 4033 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4034 INTEGER, INTENT(IN) :: count 4035 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4036 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4037end subroutine PMPI_File_read_ordered_begin_f08 4038end interface PMPI_File_read_ordered_begin 4039 4040interface PMPI_File_read_ordered_end 4041subroutine PMPI_File_read_ordered_end_f08(fh,buf,status,ierror) 4042 use :: mpi_f08_types, only : MPI_File, MPI_Status 4043 implicit none 4044 TYPE(MPI_File), INTENT(IN) :: fh 4045 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4046 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4047 !$PRAGMA IGNORE_TKR buf 4048 !DIR$ IGNORE_TKR buf 4049 !IBM* IGNORE_TKR buf 4050 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4051 TYPE(MPI_Status) :: status 4052 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4053end subroutine PMPI_File_read_ordered_end_f08 4054end interface PMPI_File_read_ordered_end 4055 4056interface PMPI_File_read_shared 4057subroutine PMPI_File_read_shared_f08(fh,buf,count,datatype,status,ierror) 4058 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 4059 implicit none 4060 TYPE(MPI_File), INTENT(IN) :: fh 4061 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4062 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4063 !$PRAGMA IGNORE_TKR buf 4064 !DIR$ IGNORE_TKR buf 4065 !IBM* IGNORE_TKR buf 4066 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4067 INTEGER, INTENT(IN) :: count 4068 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4069 TYPE(MPI_Status) :: status 4070 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4071end subroutine PMPI_File_read_shared_f08 4072end interface PMPI_File_read_shared 4073 4074interface PMPI_File_seek 4075subroutine PMPI_File_seek_f08(fh,offset,whence,ierror) 4076 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 4077 implicit none 4078 TYPE(MPI_File), INTENT(IN) :: fh 4079 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 4080 INTEGER, INTENT(IN) :: whence 4081 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4082end subroutine PMPI_File_seek_f08 4083end interface PMPI_File_seek 4084 4085interface PMPI_File_seek_shared 4086subroutine PMPI_File_seek_shared_f08(fh,offset,whence,ierror) 4087 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 4088 implicit none 4089 TYPE(MPI_File), INTENT(IN) :: fh 4090 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 4091 INTEGER, INTENT(IN) :: whence 4092 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4093end subroutine PMPI_File_seek_shared_f08 4094end interface PMPI_File_seek_shared 4095 4096interface PMPI_File_set_atomicity 4097subroutine PMPI_File_set_atomicity_f08(fh,flag,ierror) 4098 use :: mpi_f08_types, only : MPI_File 4099 implicit none 4100 TYPE(MPI_File), INTENT(IN) :: fh 4101 LOGICAL, INTENT(IN) :: flag 4102 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4103end subroutine PMPI_File_set_atomicity_f08 4104end interface PMPI_File_set_atomicity 4105 4106interface PMPI_File_set_info 4107subroutine PMPI_File_set_info_f08(fh,info,ierror) 4108 use :: mpi_f08_types, only : MPI_File, MPI_Info 4109 implicit none 4110 TYPE(MPI_File), INTENT(IN) :: fh 4111 TYPE(MPI_Info), INTENT(IN) :: info 4112 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4113end subroutine PMPI_File_set_info_f08 4114end interface PMPI_File_set_info 4115 4116interface PMPI_File_set_size 4117subroutine PMPI_File_set_size_f08(fh,size,ierror) 4118 use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND 4119 implicit none 4120 TYPE(MPI_File), INTENT(IN) :: fh 4121 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size 4122 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4123end subroutine PMPI_File_set_size_f08 4124end interface PMPI_File_set_size 4125 4126interface PMPI_File_set_view 4127subroutine PMPI_File_set_view_f08(fh,disp,etype,filetype,datarep,info,ierror) 4128 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Info, MPI_OFFSET_KIND 4129 implicit none 4130 TYPE(MPI_File), INTENT(IN) :: fh 4131 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: disp 4132 TYPE(MPI_Datatype), INTENT(IN) :: etype 4133 TYPE(MPI_Datatype), INTENT(IN) :: filetype 4134 CHARACTER(LEN=*), INTENT(IN) :: datarep 4135 TYPE(MPI_Info), INTENT(IN) :: info 4136 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4137end subroutine PMPI_File_set_view_f08 4138end interface PMPI_File_set_view 4139 4140interface PMPI_File_sync 4141subroutine PMPI_File_sync_f08(fh,ierror) 4142 use :: mpi_f08_types, only : MPI_File 4143 implicit none 4144 TYPE(MPI_File), INTENT(IN) :: fh 4145 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4146end subroutine PMPI_File_sync_f08 4147end interface PMPI_File_sync 4148 4149interface PMPI_File_write 4150subroutine PMPI_File_write_f08(fh,buf,count,datatype,status,ierror) 4151 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 4152 implicit none 4153 TYPE(MPI_File), INTENT(IN) :: fh 4154 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4155 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4156 !$PRAGMA IGNORE_TKR buf 4157 !DIR$ IGNORE_TKR buf 4158 !IBM* IGNORE_TKR buf 4159 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4160 INTEGER, INTENT(IN) :: count 4161 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4162 TYPE(MPI_Status) :: status 4163 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4164end subroutine PMPI_File_write_f08 4165end interface PMPI_File_write 4166 4167interface PMPI_File_write_all 4168subroutine PMPI_File_write_all_f08(fh,buf,count,datatype,status,ierror) 4169 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 4170 implicit none 4171 TYPE(MPI_File), INTENT(IN) :: fh 4172 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4173 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4174 !$PRAGMA IGNORE_TKR buf 4175 !DIR$ IGNORE_TKR buf 4176 !IBM* IGNORE_TKR buf 4177 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4178 INTEGER, INTENT(IN) :: count 4179 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4180 TYPE(MPI_Status) :: status 4181 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4182end subroutine PMPI_File_write_all_f08 4183end interface PMPI_File_write_all 4184 4185interface PMPI_File_write_all_begin 4186subroutine PMPI_File_write_all_begin_f08(fh,buf,count,datatype,ierror) 4187 use :: mpi_f08_types, only : MPI_File, MPI_Datatype 4188 implicit none 4189 TYPE(MPI_File), INTENT(IN) :: fh 4190 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4191 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4192 !$PRAGMA IGNORE_TKR buf 4193 !DIR$ IGNORE_TKR buf 4194 !IBM* IGNORE_TKR buf 4195 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4196 INTEGER, INTENT(IN) :: count 4197 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4198 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4199end subroutine PMPI_File_write_all_begin_f08 4200end interface PMPI_File_write_all_begin 4201 4202interface PMPI_File_write_all_end 4203subroutine PMPI_File_write_all_end_f08(fh,buf,status,ierror) 4204 use :: mpi_f08_types, only : MPI_File, MPI_Status 4205 implicit none 4206 TYPE(MPI_File), INTENT(IN) :: fh 4207 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4208 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4209 !$PRAGMA IGNORE_TKR buf 4210 !DIR$ IGNORE_TKR buf 4211 !IBM* IGNORE_TKR buf 4212 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4213 TYPE(MPI_Status) :: status 4214 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4215end subroutine PMPI_File_write_all_end_f08 4216end interface PMPI_File_write_all_end 4217 4218interface PMPI_File_write_at 4219subroutine PMPI_File_write_at_f08(fh,offset,buf,count,datatype,status,ierror) 4220 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND 4221 implicit none 4222 TYPE(MPI_File), INTENT(IN) :: fh 4223 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 4224 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4225 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4226 !$PRAGMA IGNORE_TKR buf 4227 !DIR$ IGNORE_TKR buf 4228 !IBM* IGNORE_TKR buf 4229 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4230 INTEGER, INTENT(IN) :: count 4231 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4232 TYPE(MPI_Status) :: status 4233 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4234end subroutine PMPI_File_write_at_f08 4235end interface PMPI_File_write_at 4236 4237interface PMPI_File_write_at_all 4238subroutine PMPI_File_write_at_all_f08(fh,offset,buf,count,datatype,status,ierror) 4239 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND 4240 implicit none 4241 TYPE(MPI_File), INTENT(IN) :: fh 4242 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 4243 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4244 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4245 !$PRAGMA IGNORE_TKR buf 4246 !DIR$ IGNORE_TKR buf 4247 !IBM* IGNORE_TKR buf 4248 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4249 INTEGER, INTENT(IN) :: count 4250 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4251 TYPE(MPI_Status) :: status 4252 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4253end subroutine PMPI_File_write_at_all_f08 4254end interface PMPI_File_write_at_all 4255 4256interface PMPI_File_write_at_all_begin 4257subroutine PMPI_File_write_at_all_begin_f08(fh,offset,buf,count,datatype,ierror) 4258 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND 4259 implicit none 4260 TYPE(MPI_File), INTENT(IN) :: fh 4261 INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset 4262 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4263 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4264 !$PRAGMA IGNORE_TKR buf 4265 !DIR$ IGNORE_TKR buf 4266 !IBM* IGNORE_TKR buf 4267 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4268 INTEGER, INTENT(IN) :: count 4269 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4270 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4271end subroutine PMPI_File_write_at_all_begin_f08 4272end interface PMPI_File_write_at_all_begin 4273 4274interface PMPI_File_write_at_all_end 4275subroutine PMPI_File_write_at_all_end_f08(fh,buf,status,ierror) 4276 use :: mpi_f08_types, only : MPI_File, MPI_Status 4277 implicit none 4278 TYPE(MPI_File), INTENT(IN) :: fh 4279 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4280 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4281 !$PRAGMA IGNORE_TKR buf 4282 !DIR$ IGNORE_TKR buf 4283 !IBM* IGNORE_TKR buf 4284 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4285 TYPE(MPI_Status) :: status 4286 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4287end subroutine PMPI_File_write_at_all_end_f08 4288end interface PMPI_File_write_at_all_end 4289 4290interface PMPI_File_write_ordered 4291subroutine PMPI_File_write_ordered_f08(fh,buf,count,datatype,status,ierror) 4292 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 4293 implicit none 4294 TYPE(MPI_File), INTENT(IN) :: fh 4295 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4296 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4297 !$PRAGMA IGNORE_TKR buf 4298 !DIR$ IGNORE_TKR buf 4299 !IBM* IGNORE_TKR buf 4300 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4301 INTEGER, INTENT(IN) :: count 4302 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4303 TYPE(MPI_Status) :: status 4304 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4305end subroutine PMPI_File_write_ordered_f08 4306end interface PMPI_File_write_ordered 4307 4308interface PMPI_File_write_ordered_begin 4309subroutine PMPI_File_write_ordered_begin_f08(fh,buf,count,datatype,ierror) 4310 use :: mpi_f08_types, only : MPI_File, MPI_Datatype 4311 implicit none 4312 TYPE(MPI_File), INTENT(IN) :: fh 4313 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4314 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4315 !$PRAGMA IGNORE_TKR buf 4316 !DIR$ IGNORE_TKR buf 4317 !IBM* IGNORE_TKR buf 4318 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4319 INTEGER, INTENT(IN) :: count 4320 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4321 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4322end subroutine PMPI_File_write_ordered_begin_f08 4323end interface PMPI_File_write_ordered_begin 4324 4325interface PMPI_File_write_ordered_end 4326subroutine PMPI_File_write_ordered_end_f08(fh,buf,status,ierror) 4327 use :: mpi_f08_types, only : MPI_File, MPI_Status 4328 implicit none 4329 TYPE(MPI_File), INTENT(IN) :: fh 4330 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4331 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4332 !$PRAGMA IGNORE_TKR buf 4333 !DIR$ IGNORE_TKR buf 4334 !IBM* IGNORE_TKR buf 4335 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4336 TYPE(MPI_Status) :: status 4337 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4338end subroutine PMPI_File_write_ordered_end_f08 4339end interface PMPI_File_write_ordered_end 4340 4341interface PMPI_File_write_shared 4342subroutine PMPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror) 4343 use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status 4344 implicit none 4345 TYPE(MPI_File), INTENT(IN) :: fh 4346 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4347 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4348 !$PRAGMA IGNORE_TKR buf 4349 !DIR$ IGNORE_TKR buf 4350 !IBM* IGNORE_TKR buf 4351 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf 4352 INTEGER, INTENT(IN) :: count 4353 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4354 TYPE(MPI_Status) :: status 4355 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4356end subroutine PMPI_File_write_shared_f08 4357end interface PMPI_File_write_shared 4358 4359interface PMPI_Register_datarep 4360subroutine PMPI_Register_datarep_f08(datarep,read_conversion_fn,write_conversion_fn, & 4361 dtype_file_extent_fn,extra_state,ierror) 4362 use :: mpi_f08_types, only : MPI_ADDRESS_KIND 4363 use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_conversion_function 4364 use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_extent_function 4365 implicit none 4366 CHARACTER(LEN=*), INTENT(IN) :: datarep 4367 PROCEDURE(MPI_Datarep_conversion_function) :: read_conversion_fn 4368 PROCEDURE(MPI_Datarep_conversion_function) :: write_conversion_fn 4369 PROCEDURE(MPI_Datarep_extent_function) :: dtype_file_extent_fn 4370 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state 4371 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4372end subroutine PMPI_Register_datarep_f08 4373end interface PMPI_Register_datarep 4374 4375! 4376! MPI_Sizeof is generic for numeric types. This ignore TKR interface 4377! is replaced by the specific generics. Implemented in mpi_sizeof_mod.F90. 4378! 4379!subroutine PMPI_Sizeof(x,size,ierror) 4380! use :: mpi_f08_types 4381! implicit none 4382! !DEC$ ATTRIBUTES NO_ARG_CHECK :: x 4383! !GCC$ ATTRIBUTES NO_ARG_CHECK :: x 4384! !$PRAGMA IGNORE_TKR x 4385! !DIR$ IGNORE_TKR x 4386! !IBM* IGNORE_TKR x 4387! OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: x 4388! INTEGER, INTENT(OUT) :: size 4389! INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4390!end subroutine PMPI_Sizeof 4391 4392interface PMPI_Type_create_f90_complex 4393subroutine PMPI_Type_create_f90_complex_f08(p,r,newtype,ierror) 4394 use :: mpi_f08_types, only : MPI_Datatype 4395 implicit none 4396 INTEGER, INTENT(IN) :: p, r 4397 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 4398 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4399end subroutine PMPI_Type_create_f90_complex_f08 4400end interface PMPI_Type_create_f90_complex 4401 4402interface PMPI_Type_create_f90_integer 4403subroutine PMPI_Type_create_f90_integer_f08(r,newtype,ierror) 4404 use :: mpi_f08_types, only : MPI_Datatype 4405 implicit none 4406 INTEGER, INTENT(IN) :: r 4407 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 4408 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4409end subroutine PMPI_Type_create_f90_integer_f08 4410end interface PMPI_Type_create_f90_integer 4411 4412interface PMPI_Type_create_f90_real 4413subroutine PMPI_Type_create_f90_real_f08(p,r,newtype,ierror) 4414 use :: mpi_f08_types, only : MPI_Datatype 4415 implicit none 4416 INTEGER, INTENT(IN) :: p, r 4417 TYPE(MPI_Datatype), INTENT(OUT) :: newtype 4418 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4419end subroutine PMPI_Type_create_f90_real_f08 4420end interface PMPI_Type_create_f90_real 4421 4422interface PMPI_Type_match_size 4423subroutine PMPI_Type_match_size_f08(typeclass,size,datatype,ierror) 4424 use :: mpi_f08_types, only : MPI_Datatype 4425 implicit none 4426 INTEGER, INTENT(IN) :: typeclass, size 4427 TYPE(MPI_Datatype), INTENT(OUT) :: datatype 4428 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4429end subroutine PMPI_Type_match_size_f08 4430end interface PMPI_Type_match_size 4431 4432interface PMPI_Pcontrol 4433subroutine PMPI_Pcontrol_f08(level) 4434 implicit none 4435 INTEGER, INTENT(IN) :: level 4436end subroutine PMPI_Pcontrol_f08 4437end interface PMPI_Pcontrol 4438 4439 4440!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 4441! New routines to MPI-3 4442! 4443 4444interface PMPI_Comm_split_type 4445subroutine PMPI_Comm_split_type_f08(comm,split_type,key,info,newcomm,ierror) 4446 use :: mpi_f08_types, only : MPI_Comm, MPI_Info 4447 implicit none 4448 TYPE(MPI_Comm), INTENT(IN) :: comm 4449 INTEGER, INTENT(IN) :: split_type 4450 INTEGER, INTENT(IN) :: key 4451 TYPE(MPI_Info), INTENT(IN) :: info 4452 TYPE(MPI_Comm), INTENT(OUT) :: newcomm 4453 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4454end subroutine PMPI_Comm_split_type_f08 4455end interface PMPI_Comm_split_type 4456 4457interface PMPI_F_sync_reg 4458subroutine PMPI_F_sync_reg_f08(buf) 4459 implicit none 4460 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4461 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4462 !$PRAGMA IGNORE_TKR buf 4463 !DIR$ IGNORE_TKR buf 4464 !IBM* IGNORE_TKR buf 4465 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4466end subroutine PMPI_F_sync_reg_f08 4467end interface PMPI_F_sync_reg 4468 4469interface PMPI_Get_library_version 4470subroutine PMPI_Get_library_version_f08(version,resultlen,ierror) 4471 use :: mpi_f08_types, only : MPI_MAX_LIBRARY_VERSION_STRING 4472 implicit none 4473 character(len=MPI_MAX_LIBRARY_VERSION_STRING), intent(out) :: version 4474 integer, intent(out) :: resultlen 4475 integer, optional, intent(out) :: ierror 4476end subroutine PMPI_Get_library_version_f08 4477end interface PMPI_Get_library_version 4478 4479interface PMPI_Mprobe 4480subroutine PMPI_Mprobe_f08(source,tag,comm,message,status,ierror) 4481 use :: mpi_f08_types, only : MPI_Comm, MPI_Message, MPI_Status 4482 implicit none 4483 INTEGER, INTENT(IN) :: source, tag 4484 TYPE(MPI_Comm), INTENT(IN) :: comm 4485 TYPE(MPI_Message), INTENT(OUT) :: message 4486 TYPE(MPI_Status), INTENT(OUT) :: status 4487 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4488end subroutine PMPI_Mprobe_f08 4489end interface PMPI_Mprobe 4490 4491interface PMPI_Improbe 4492subroutine PMPI_Improbe_f08(source,tag,comm,flag,message,status,ierror) 4493 use :: mpi_f08_types, only : MPI_Comm, MPI_Message, MPI_Status 4494 implicit none 4495 INTEGER, INTENT(IN) :: source, tag 4496 TYPE(MPI_Comm), INTENT(IN) :: comm 4497 LOGICAL, INTENT(OUT) :: flag 4498 TYPE(MPI_Message), INTENT(OUT) :: message 4499 TYPE(MPI_Status), INTENT(OUT) :: status 4500 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4501end subroutine PMPI_Improbe_f08 4502end interface PMPI_Improbe 4503 4504interface PMPI_Imrecv 4505subroutine PMPI_Imrecv_f08(buf,count,datatype,message,request,ierror) 4506 use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request 4507 implicit none 4508 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4509 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4510 !$PRAGMA IGNORE_TKR buf 4511 !DIR$ IGNORE_TKR buf 4512 !IBM* IGNORE_TKR buf 4513 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4514 INTEGER, INTENT(IN) :: count 4515 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4516 TYPE(MPI_Message), INTENT(INOUT) :: message 4517 TYPE(MPI_Request), INTENT(OUT) :: request 4518 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4519end subroutine PMPI_Imrecv_f08 4520end interface PMPI_Imrecv 4521 4522interface PMPI_Mrecv 4523subroutine PMPI_Mrecv_f08(buf,count,datatype,message,status,ierror) 4524 use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status 4525 implicit none 4526 !DEC$ ATTRIBUTES NO_ARG_CHECK :: buf 4527 !GCC$ ATTRIBUTES NO_ARG_CHECK :: buf 4528 !$PRAGMA IGNORE_TKR buf 4529 !DIR$ IGNORE_TKR buf 4530 !IBM* IGNORE_TKR buf 4531 OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf 4532 INTEGER, INTENT(IN) :: count 4533 TYPE(MPI_Datatype), INTENT(IN) :: datatype 4534 TYPE(MPI_Message), INTENT(INOUT) :: message 4535 TYPE(MPI_Status) :: status 4536 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4537end subroutine PMPI_Mrecv_f08 4538end interface PMPI_Mrecv 4539 4540interface PMPI_Neighbor_allgather 4541subroutine PMPI_Neighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 4542 comm,ierror) 4543 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 4544 implicit none 4545 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4546 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4547 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4548 !DIR$ IGNORE_TKR sendbuf, recvbuf 4549 !IBM* IGNORE_TKR sendbuf, recvbuf 4550 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4551 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4552 INTEGER, INTENT(IN) :: sendcount, recvcount 4553 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4554 TYPE(MPI_Comm), INTENT(IN) :: comm 4555 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4556end subroutine PMPI_Neighbor_allgather_f08 4557end interface PMPI_Neighbor_allgather 4558 4559interface PMPI_Ineighbor_allgather 4560subroutine PMPI_Ineighbor_allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 4561 comm,request,ierror) 4562 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 4563 implicit none 4564 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4565 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4566 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4567 !DIR$ IGNORE_TKR sendbuf, recvbuf 4568 !IBM* IGNORE_TKR sendbuf, recvbuf 4569 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4570 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4571 INTEGER, INTENT(IN) :: sendcount, recvcount 4572 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4573 TYPE(MPI_Comm), INTENT(IN) :: comm 4574 TYPE(MPI_Request), INTENT(OUT) :: request 4575 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4576end subroutine PMPI_Ineighbor_allgather_f08 4577end interface PMPI_Ineighbor_allgather 4578 4579interface PMPI_Neighbor_allgatherv 4580subroutine PMPI_Neighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 4581 recvtype,comm,ierror) 4582 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 4583 implicit none 4584 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4585 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4586 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4587 !DIR$ IGNORE_TKR sendbuf, recvbuf 4588 !IBM* IGNORE_TKR sendbuf, recvbuf 4589 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4590 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4591 INTEGER, INTENT(IN) :: sendcount 4592 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 4593 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4594 TYPE(MPI_Comm), INTENT(IN) :: comm 4595 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4596end subroutine PMPI_Neighbor_allgatherv_f08 4597end interface PMPI_Neighbor_allgatherv 4598 4599interface PMPI_Ineighbor_allgatherv 4600subroutine PMPI_Ineighbor_allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, & 4601 recvtype,comm,request,ierror) 4602 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 4603 implicit none 4604 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4605 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4606 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4607 !DIR$ IGNORE_TKR sendbuf, recvbuf 4608 !IBM* IGNORE_TKR sendbuf, recvbuf 4609 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4610 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4611 INTEGER, INTENT(IN) :: sendcount 4612 INTEGER, INTENT(IN) :: recvcounts(*), displs(*) 4613 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4614 TYPE(MPI_Comm), INTENT(IN) :: comm 4615 TYPE(MPI_Request), INTENT(OUT) :: request 4616 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4617end subroutine PMPI_Ineighbor_allgatherv_f08 4618end interface PMPI_Ineighbor_allgatherv 4619 4620interface PMPI_Neighbor_alltoall 4621subroutine PMPI_Neighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 4622 comm,ierror) 4623 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 4624 implicit none 4625 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4626 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4627 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4628 !DIR$ IGNORE_TKR sendbuf, recvbuf 4629 !IBM* IGNORE_TKR sendbuf, recvbuf 4630 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4631 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4632 INTEGER, INTENT(IN) :: sendcount, recvcount 4633 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4634 TYPE(MPI_Comm), INTENT(IN) :: comm 4635 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4636end subroutine PMPI_Neighbor_alltoall_f08 4637end interface PMPI_Neighbor_alltoall 4638 4639interface PMPI_Ineighbor_alltoall 4640subroutine PMPI_Ineighbor_alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & 4641 comm,request,ierror) 4642 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 4643 implicit none 4644 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4645 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4646 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4647 !DIR$ IGNORE_TKR sendbuf, recvbuf 4648 !IBM* IGNORE_TKR sendbuf, recvbuf 4649 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4650 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4651 INTEGER, INTENT(IN) :: sendcount, recvcount 4652 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4653 TYPE(MPI_Comm), INTENT(IN) :: comm 4654 TYPE(MPI_Request), INTENT(OUT) :: request 4655 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4656end subroutine PMPI_Ineighbor_alltoall_f08 4657end interface PMPI_Ineighbor_alltoall 4658 4659interface PMPI_Neighbor_alltoallv 4660subroutine PMPI_Neighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & 4661 rdispls,recvtype,comm,ierror) 4662 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm 4663 implicit none 4664 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4665 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4666 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4667 !DIR$ IGNORE_TKR sendbuf, recvbuf 4668 !IBM* IGNORE_TKR sendbuf, recvbuf 4669 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4670 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4671 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 4672 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4673 TYPE(MPI_Comm), INTENT(IN) :: comm 4674 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4675end subroutine PMPI_Neighbor_alltoallv_f08 4676end interface PMPI_Neighbor_alltoallv 4677 4678interface PMPI_Ineighbor_alltoallv 4679subroutine PMPI_Ineighbor_alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, & 4680 rdispls,recvtype,comm,request,ierror) 4681 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request 4682 implicit none 4683 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4684 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4685 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4686 !DIR$ IGNORE_TKR sendbuf, recvbuf 4687 !IBM* IGNORE_TKR sendbuf, recvbuf 4688 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4689 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4690 INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*) 4691 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype 4692 TYPE(MPI_Comm), INTENT(IN) :: comm 4693 TYPE(MPI_Request), INTENT(OUT) :: request 4694 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4695end subroutine PMPI_Ineighbor_alltoallv_f08 4696end interface PMPI_Ineighbor_alltoallv 4697 4698interface PMPI_Neighbor_alltoallw 4699subroutine PMPI_Neighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & 4700 rdispls,recvtypes,comm,ierror) 4701 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_ADDRESS_KIND 4702 implicit none 4703 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4704 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4705 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4706 !DIR$ IGNORE_TKR sendbuf, recvbuf 4707 !IBM* IGNORE_TKR sendbuf, recvbuf 4708 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4709 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4710 INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) 4711 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) 4712 TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) 4713 TYPE(MPI_Comm), INTENT(IN) :: comm 4714 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4715end subroutine PMPI_Neighbor_alltoallw_f08 4716end interface PMPI_Neighbor_alltoallw 4717 4718interface PMPI_Ineighbor_alltoallw 4719subroutine PMPI_Ineighbor_alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, & 4720 rdispls,recvtypes,comm,request,ierror) 4721 use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request, MPI_ADDRESS_KIND 4722 implicit none 4723 !DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4724 !GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf 4725 !$PRAGMA IGNORE_TKR sendbuf, recvbuf 4726 !DIR$ IGNORE_TKR sendbuf, recvbuf 4727 !IBM* IGNORE_TKR sendbuf, recvbuf 4728 OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf 4729 OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf 4730 INTEGER, INTENT(IN) :: sendcounts(*), recvcounts(*) 4731 INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: sdispls(*), rdispls(*) 4732 TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*) 4733 TYPE(MPI_Comm), INTENT(IN) :: comm 4734 TYPE(MPI_Request), INTENT(OUT) :: request 4735 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 4736end subroutine PMPI_Ineighbor_alltoallw_f08 4737end interface PMPI_Ineighbor_alltoallw 4738 4739end module pmpi_f08_interfaces 4740