1! -*- f90 -*- 2! 3! Copyright (c) 2009-2018 Cisco Systems, Inc. All rights reserved 4! Copyright (c) 2009-2015 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-2018 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 mpi_f08_interfaces 23 24interface MPI_Bsend 25subroutine MPI_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 MPI_Bsend_f08 39end interface MPI_Bsend 40 41interface MPI_Bsend_init 42subroutine MPI_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 MPI_Bsend_init_f08 57end interface MPI_Bsend_init 58 59interface MPI_Buffer_attach 60subroutine MPI_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 MPI_Buffer_attach_f08 71end interface MPI_Buffer_attach 72 73interface MPI_Buffer_detach 74subroutine MPI_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 MPI_Buffer_detach_f08 81end interface MPI_Buffer_detach 82 83interface MPI_Cancel 84subroutine MPI_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 MPI_Cancel_f08 90end interface MPI_Cancel 91 92interface MPI_Get_count 93subroutine MPI_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 MPI_Get_count_f08 101end interface MPI_Get_count 102 103interface MPI_Ibsend 104subroutine MPI_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 MPI_Ibsend_f08 119end interface MPI_Ibsend 120 121interface MPI_Iprobe 122subroutine MPI_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 MPI_Iprobe_f08 131end interface MPI_Iprobe 132 133interface MPI_Irecv 134subroutine MPI_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 MPI_Irecv_f08 149end interface MPI_Irecv 150 151interface MPI_Irsend 152subroutine MPI_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 MPI_Irsend_f08 167end interface MPI_Irsend 168 169interface MPI_Isend 170subroutine MPI_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 MPI_Isend_f08 185end interface MPI_Isend 186 187interface MPI_Issend 188subroutine MPI_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 MPI_Issend_f08 203end interface MPI_Issend 204 205interface MPI_Probe 206subroutine MPI_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 MPI_Probe_f08 214end interface MPI_Probe 215 216interface MPI_Recv 217subroutine MPI_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 MPI_Recv_f08 232end interface MPI_Recv 233 234interface MPI_Recv_init 235subroutine MPI_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 MPI_Recv_init_f08 250end interface MPI_Recv_init 251 252interface MPI_Request_free 253subroutine MPI_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 MPI_Request_free_f08 259end interface MPI_Request_free 260 261interface MPI_Request_get_status 262subroutine MPI_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 MPI_Request_get_status_f08 270end interface MPI_Request_get_status 271 272interface MPI_Rsend 273subroutine MPI_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 MPI_Rsend_f08 287end interface MPI_Rsend 288 289interface MPI_Rsend_init 290subroutine MPI_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 MPI_Rsend_init_f08 305end interface MPI_Rsend_init 306 307interface MPI_Send 308subroutine MPI_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 MPI_Send_f08 322end interface MPI_Send 323 324interface MPI_Sendrecv 325subroutine MPI_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 MPI_Sendrecv_f08 342end interface MPI_Sendrecv 343 344interface MPI_Sendrecv_replace 345subroutine MPI_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 MPI_Sendrecv_replace_f08 361end interface MPI_Sendrecv_replace 362 363interface MPI_Send_init 364subroutine MPI_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 MPI_Send_init_f08 379end interface MPI_Send_init 380 381interface MPI_Ssend 382subroutine MPI_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 MPI_Ssend_f08 396end interface MPI_Ssend 397 398interface MPI_Ssend_init 399subroutine MPI_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 MPI_Ssend_init_f08 414end interface MPI_Ssend_init 415 416interface MPI_Start 417subroutine MPI_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 MPI_Start_f08 423end interface MPI_Start 424 425interface MPI_Startall 426subroutine MPI_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 MPI_Startall_f08 433end interface MPI_Startall 434 435interface MPI_Test 436subroutine MPI_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 MPI_Test_f08 444end interface MPI_Test 445 446interface MPI_Testall 447subroutine MPI_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 MPI_Testall_f08 456end interface MPI_Testall 457 458interface MPI_Testany 459subroutine MPI_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 MPI_Testany_f08 469end interface MPI_Testany 470 471interface MPI_Testsome 472subroutine MPI_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 MPI_Testsome_f08 482end interface MPI_Testsome 483 484interface MPI_Test_cancelled 485subroutine MPI_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 MPI_Test_cancelled_f08 492end interface MPI_Test_cancelled 493 494interface MPI_Wait 495subroutine MPI_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 MPI_Wait_f08 502end interface MPI_Wait 503 504interface MPI_Waitall 505subroutine MPI_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 MPI_Waitall_f08 513end interface MPI_Waitall 514 515interface MPI_Waitany 516subroutine MPI_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 MPI_Waitany_f08 525end interface MPI_Waitany 526 527interface MPI_Waitsome 528subroutine MPI_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 MPI_Waitsome_f08 538end interface MPI_Waitsome 539 540interface MPI_Get_address 541subroutine MPI_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 MPI_Get_address_f08 553end interface MPI_Get_address 554 555interface MPI_Get_elements 556subroutine MPI_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 MPI_Get_elements_f08 564end interface MPI_Get_elements 565 566interface MPI_Get_elements_x 567subroutine MPI_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 MPI_Get_elements_x_f08 575end interface MPI_Get_elements_x 576 577interface MPI_Pack 578subroutine MPI_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 MPI_Pack_f08 594end interface MPI_Pack 595 596interface MPI_Pack_external 597subroutine MPI_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 MPI_Pack_external_f08 615end interface MPI_Pack_external 616 617interface MPI_Pack_external_size 618subroutine MPI_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 MPI_Pack_external_size_f08 628end interface MPI_Pack_external_size 629 630interface MPI_Pack_size 631subroutine MPI_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 MPI_Pack_size_f08 640end interface MPI_Pack_size 641 642interface MPI_Type_commit 643subroutine MPI_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 MPI_Type_commit_f08 649end interface MPI_Type_commit 650 651interface MPI_Type_contiguous 652subroutine MPI_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 MPI_Type_contiguous_f08 660end interface MPI_Type_contiguous 661 662interface MPI_Type_create_darray 663subroutine MPI_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 MPI_Type_create_darray_f08 675end interface MPI_Type_create_darray 676 677interface MPI_Type_create_hindexed 678subroutine MPI_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 MPI_Type_create_hindexed_f08 689end interface MPI_Type_create_hindexed 690 691interface MPI_Type_create_hvector 692subroutine MPI_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 MPI_Type_create_hvector_f08 701end interface MPI_Type_create_hvector 702 703interface MPI_Type_create_indexed_block 704subroutine MPI_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 MPI_Type_create_indexed_block_f08 714end interface MPI_Type_create_indexed_block 715 716interface MPI_Type_create_hindexed_block 717subroutine MPI_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 MPI_Type_create_hindexed_block_f08 727end interface MPI_Type_create_hindexed_block 728 729interface MPI_Type_create_resized 730subroutine MPI_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 MPI_Type_create_resized_f08 738end interface MPI_Type_create_resized 739 740interface MPI_Type_create_struct 741subroutine MPI_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 MPI_Type_create_struct_f08 752end interface MPI_Type_create_struct 753 754interface MPI_Type_create_subarray 755subroutine MPI_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 MPI_Type_create_subarray_f08 766end interface MPI_Type_create_subarray 767 768interface MPI_Type_dup 769subroutine MPI_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 MPI_Type_dup_f08 776end interface MPI_Type_dup 777 778interface MPI_Type_free 779subroutine MPI_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 MPI_Type_free_f08 785end interface MPI_Type_free 786 787interface MPI_Type_get_contents 788subroutine MPI_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 MPI_Type_get_contents_f08 800end interface MPI_Type_get_contents 801 802interface MPI_Type_get_envelope 803subroutine MPI_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 MPI_Type_get_envelope_f08 811end interface MPI_Type_get_envelope 812 813interface MPI_Type_get_extent 814subroutine MPI_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 MPI_Type_get_extent_f08 821end interface MPI_Type_get_extent 822 823interface MPI_Type_get_extent_x 824subroutine MPI_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 MPI_Type_get_extent_x_f08 831end interface MPI_Type_get_extent_x 832 833interface MPI_Type_get_true_extent 834subroutine MPI_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 MPI_Type_get_true_extent_f08 841end interface MPI_Type_get_true_extent 842 843interface MPI_Type_get_true_extent_x 844subroutine MPI_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 MPI_Type_get_true_extent_x_f08 851end interface MPI_Type_get_true_extent_x 852 853interface MPI_Type_indexed 854subroutine MPI_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 MPI_Type_indexed_f08 864end interface MPI_Type_indexed 865 866interface MPI_Type_size 867subroutine MPI_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 MPI_Type_size_f08 874end interface MPI_Type_size 875 876interface MPI_Type_size_x 877subroutine MPI_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 MPI_Type_size_x_f08 884end interface MPI_Type_size_x 885 886interface MPI_Type_vector 887subroutine MPI_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 MPI_Type_vector_f08 895end interface MPI_Type_vector 896 897interface MPI_Unpack 898subroutine MPI_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 MPI_Unpack_f08 915end interface MPI_Unpack 916 917interface MPI_Unpack_external 918subroutine MPI_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 MPI_Unpack_external_f08 937end interface MPI_Unpack_external 938 939interface MPI_Allgather 940subroutine MPI_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 MPI_Allgather_f08 956end interface MPI_Allgather 957 958interface MPI_Iallgather 959subroutine MPI_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 MPI_Iallgather_f08 976end interface MPI_Iallgather 977 978interface MPI_Allgatherv 979subroutine MPI_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 MPI_Allgatherv_f08 996end interface MPI_Allgatherv 997 998interface MPI_Iallgatherv 999subroutine MPI_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 MPI_Iallgatherv_f08 1017end interface MPI_Iallgatherv 1018 1019interface MPI_Allreduce 1020subroutine MPI_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 MPI_Allreduce_f08 1036end interface MPI_Allreduce 1037 1038interface MPI_Iallreduce 1039subroutine MPI_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 MPI_Iallreduce_f08 1056end interface MPI_Iallreduce 1057 1058interface MPI_Alltoall 1059subroutine MPI_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 MPI_Alltoall_f08 1075end interface MPI_Alltoall 1076 1077interface MPI_Ialltoall 1078subroutine MPI_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 MPI_Ialltoall_f08 1095end interface MPI_Ialltoall 1096 1097interface MPI_Alltoallv 1098subroutine MPI_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 MPI_Alltoallv_f08 1114end interface MPI_Alltoallv 1115 1116interface MPI_Ialltoallv 1117subroutine MPI_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 MPI_Ialltoallv_f08 1134end interface MPI_Ialltoallv 1135 1136interface MPI_Alltoallw 1137subroutine MPI_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 MPI_Alltoallw_f08 1153end interface MPI_Alltoallw 1154 1155interface MPI_Ialltoallw 1156subroutine MPI_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 MPI_Ialltoallw_f08 1173end interface MPI_Ialltoallw 1174 1175interface MPI_Barrier 1176subroutine MPI_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 MPI_Barrier_f08 1182end interface MPI_Barrier 1183 1184interface MPI_Ibarrier 1185subroutine MPI_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 MPI_Ibarrier_f08 1192end interface MPI_Ibarrier 1193 1194interface MPI_Bcast 1195subroutine MPI_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 MPI_Bcast_f08 1209end interface MPI_Bcast 1210 1211interface MPI_Ibcast 1212subroutine MPI_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 MPI_Ibcast_f08 1227end interface MPI_Ibcast 1228 1229interface MPI_Exscan 1230subroutine MPI_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 MPI_Exscan_f08 1246end interface MPI_Exscan 1247 1248interface MPI_Iexscan 1249subroutine MPI_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 MPI_Iexscan_f08 1266end interface MPI_Iexscan 1267 1268interface MPI_Gather 1269subroutine MPI_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 MPI_Gather_f08 1285end interface MPI_Gather 1286 1287interface MPI_Igather 1288subroutine MPI_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 MPI_Igather_f08 1305end interface MPI_Igather 1306 1307interface MPI_Gatherv 1308subroutine MPI_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 MPI_Gatherv_f08 1325end interface MPI_Gatherv 1326 1327interface MPI_Igatherv 1328subroutine MPI_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 MPI_Igatherv_f08 1346end interface MPI_Igatherv 1347 1348interface MPI_Op_commutative 1349subroutine MPI_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 MPI_Op_commutative_f08 1356end interface MPI_Op_commutative 1357 1358interface MPI_Op_create 1359subroutine MPI_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 MPI_Op_create_f08 1368end interface MPI_Op_create 1369 1370interface MPI_Op_free 1371subroutine MPI_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 MPI_Op_free_f08 1377end interface MPI_Op_free 1378 1379interface MPI_Reduce 1380subroutine MPI_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 MPI_Reduce_f08 1396end interface MPI_Reduce 1397 1398interface MPI_Ireduce 1399subroutine MPI_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 MPI_Ireduce_f08 1416end interface MPI_Ireduce 1417 1418interface MPI_Reduce_local 1419subroutine MPI_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 MPI_Reduce_local_f08 1434end interface MPI_Reduce_local 1435 1436interface MPI_Reduce_scatter 1437subroutine MPI_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 MPI_Reduce_scatter_f08 1454end interface MPI_Reduce_scatter 1455 1456interface MPI_Ireduce_scatter 1457subroutine MPI_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 MPI_Ireduce_scatter_f08 1475end interface MPI_Ireduce_scatter 1476 1477interface MPI_Reduce_scatter_block 1478subroutine MPI_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 MPI_Reduce_scatter_block_f08 1495end interface MPI_Reduce_scatter_block 1496 1497interface MPI_Ireduce_scatter_block 1498subroutine MPI_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 MPI_Ireduce_scatter_block_f08 1516end interface MPI_Ireduce_scatter_block 1517 1518interface MPI_Scan 1519subroutine MPI_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 MPI_Scan_f08 1535end interface MPI_Scan 1536 1537interface MPI_Iscan 1538subroutine MPI_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 MPI_Iscan_f08 1555end interface MPI_Iscan 1556 1557interface MPI_Scatter 1558subroutine MPI_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 MPI_Scatter_f08 1574end interface MPI_Scatter 1575 1576interface MPI_Iscatter 1577subroutine MPI_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 MPI_Iscatter_f08 1594end interface MPI_Iscatter 1595 1596interface MPI_Scatterv 1597subroutine MPI_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 MPI_Scatterv_f08 1614end interface MPI_Scatterv 1615 1616interface MPI_Iscatterv 1617subroutine MPI_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 MPI_Iscatterv_f08 1635end interface MPI_Iscatterv 1636 1637interface MPI_Comm_compare 1638subroutine MPI_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 MPI_Comm_compare_f08 1646end interface MPI_Comm_compare 1647 1648interface MPI_Comm_create 1649subroutine MPI_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 MPI_Comm_create_f08 1657end interface MPI_Comm_create 1658 1659interface MPI_Comm_create_group 1660subroutine MPI_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 MPI_Comm_create_group_f08 1669end interface MPI_Comm_create_group 1670 1671interface MPI_Comm_create_keyval 1672subroutine MPI_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 MPI_Comm_create_keyval_f08 1684end interface MPI_Comm_create_keyval 1685 1686interface MPI_Comm_delete_attr 1687subroutine MPI_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 MPI_Comm_delete_attr_f08 1694end interface MPI_Comm_delete_attr 1695 1696interface MPI_Comm_dup 1697subroutine MPI_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 MPI_Comm_dup_f08 1704end interface MPI_Comm_dup 1705 1706interface MPI_Comm_dup_with_info 1707subroutine MPI_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 MPI_Comm_dup_with_info_f08 1715end interface MPI_Comm_dup_with_info 1716 1717interface MPI_Comm_idup 1718subroutine MPI_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 MPI_Comm_idup_f08 1726end interface MPI_Comm_idup 1727 1728interface MPI_Comm_free 1729subroutine MPI_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 MPI_Comm_free_f08 1735end interface MPI_Comm_free 1736 1737interface MPI_Comm_free_keyval 1738subroutine MPI_Comm_free_keyval_f08(comm_keyval,ierror) 1739 implicit none 1740 INTEGER, INTENT(INOUT) :: comm_keyval 1741 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 1742end subroutine MPI_Comm_free_keyval_f08 1743end interface MPI_Comm_free_keyval 1744 1745interface MPI_Comm_get_attr 1746subroutine MPI_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 MPI_Comm_get_attr_f08 1755end interface MPI_Comm_get_attr 1756 1757interface MPI_Comm_get_info 1758subroutine MPI_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 MPI_Comm_get_info_f08 1765end interface MPI_Comm_get_info 1766 1767interface MPI_Comm_get_name 1768subroutine MPI_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 MPI_Comm_get_name_f08 1776end interface MPI_Comm_get_name 1777 1778interface MPI_Comm_group 1779subroutine MPI_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 MPI_Comm_group_f08 1786end interface MPI_Comm_group 1787 1788interface MPI_Comm_rank 1789subroutine MPI_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 MPI_Comm_rank_f08 1796end interface MPI_Comm_rank 1797 1798interface MPI_Comm_remote_group 1799subroutine MPI_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 MPI_Comm_remote_group_f08 1806end interface MPI_Comm_remote_group 1807 1808interface MPI_Comm_remote_size 1809subroutine MPI_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 MPI_Comm_remote_size_f08 1816end interface MPI_Comm_remote_size 1817 1818interface MPI_Comm_set_attr 1819subroutine MPI_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 MPI_Comm_set_attr_f08 1827end interface MPI_Comm_set_attr 1828 1829interface MPI_Comm_set_info 1830subroutine MPI_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 MPI_Comm_set_info_f08 1837end interface MPI_Comm_set_info 1838 1839interface MPI_Comm_set_name 1840subroutine MPI_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 MPI_Comm_set_name_f08 1847end interface MPI_Comm_set_name 1848 1849interface MPI_Comm_size 1850subroutine MPI_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 MPI_Comm_size_f08 1857end interface MPI_Comm_size 1858 1859interface MPI_Comm_split 1860subroutine MPI_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 MPI_Comm_split_f08 1868end interface MPI_Comm_split 1869 1870interface MPI_Comm_test_inter 1871subroutine MPI_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 MPI_Comm_test_inter_f08 1878end interface MPI_Comm_test_inter 1879 1880interface MPI_Group_compare 1881subroutine MPI_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 MPI_Group_compare_f08 1888end interface MPI_Group_compare 1889 1890interface MPI_Group_difference 1891subroutine MPI_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 MPI_Group_difference_f08 1898end interface MPI_Group_difference 1899 1900interface MPI_Group_excl 1901subroutine MPI_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 MPI_Group_excl_f08 1909end interface MPI_Group_excl 1910 1911interface MPI_Group_free 1912subroutine MPI_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 MPI_Group_free_f08 1918end interface MPI_Group_free 1919 1920interface MPI_Group_incl 1921subroutine MPI_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 MPI_Group_incl_f08 1929end interface MPI_Group_incl 1930 1931interface MPI_Group_intersection 1932subroutine MPI_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 MPI_Group_intersection_f08 1939end interface MPI_Group_intersection 1940 1941interface MPI_Group_range_excl 1942subroutine MPI_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 MPI_Group_range_excl_f08 1950end interface MPI_Group_range_excl 1951 1952interface MPI_Group_range_incl 1953subroutine MPI_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 MPI_Group_range_incl_f08 1961end interface MPI_Group_range_incl 1962 1963interface MPI_Group_rank 1964subroutine MPI_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 MPI_Group_rank_f08 1971end interface MPI_Group_rank 1972 1973interface MPI_Group_size 1974subroutine MPI_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 MPI_Group_size_f08 1981end interface MPI_Group_size 1982 1983interface MPI_Group_translate_ranks 1984subroutine MPI_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 MPI_Group_translate_ranks_f08 1993end interface MPI_Group_translate_ranks 1994 1995interface MPI_Group_union 1996subroutine MPI_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 MPI_Group_union_f08 2003end interface MPI_Group_union 2004 2005interface MPI_Intercomm_create 2006subroutine MPI_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 MPI_Intercomm_create_f08 2015end interface MPI_Intercomm_create 2016 2017interface MPI_Intercomm_merge 2018subroutine MPI_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 MPI_Intercomm_merge_f08 2026end interface MPI_Intercomm_merge 2027 2028interface MPI_Type_create_keyval 2029subroutine MPI_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 MPI_Type_create_keyval_f08 2041end interface MPI_Type_create_keyval 2042 2043interface MPI_Type_delete_attr 2044subroutine MPI_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 MPI_Type_delete_attr_f08 2051end interface MPI_Type_delete_attr 2052 2053interface MPI_Type_free_keyval 2054subroutine MPI_Type_free_keyval_f08(type_keyval,ierror) 2055 implicit none 2056 INTEGER, INTENT(INOUT) :: type_keyval 2057 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2058end subroutine MPI_Type_free_keyval_f08 2059end interface MPI_Type_free_keyval 2060 2061interface MPI_Type_get_attr 2062subroutine MPI_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 MPI_Type_get_attr_f08 2071end interface MPI_Type_get_attr 2072 2073interface MPI_Type_get_name 2074subroutine MPI_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 MPI_Type_get_name_f08 2082end interface MPI_Type_get_name 2083 2084interface MPI_Type_set_attr 2085subroutine MPI_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 MPI_Type_set_attr_f08 2093end interface MPI_Type_set_attr 2094 2095interface MPI_Type_set_name 2096subroutine MPI_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 MPI_Type_set_name_f08 2103end interface MPI_Type_set_name 2104 2105interface MPI_Win_allocate 2106subroutine MPI_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 MPI_Win_allocate_f08 2118end interface MPI_Win_allocate 2119 2120interface MPI_Win_allocate_shared 2121subroutine MPI_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 MPI_Win_allocate_shared_f08 2133end interface MPI_Win_allocate_shared 2134 2135interface MPI_Win_create_keyval 2136subroutine MPI_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 MPI_Win_create_keyval_f08 2148end interface MPI_Win_create_keyval 2149 2150interface MPI_Win_delete_attr 2151subroutine MPI_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 MPI_Win_delete_attr_f08 2158end interface MPI_Win_delete_attr 2159 2160interface MPI_Win_free_keyval 2161subroutine MPI_Win_free_keyval_f08(win_keyval,ierror) 2162 implicit none 2163 INTEGER, INTENT(INOUT) :: win_keyval 2164 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2165end subroutine MPI_Win_free_keyval_f08 2166end interface MPI_Win_free_keyval 2167 2168interface MPI_Win_get_attr 2169subroutine MPI_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 MPI_Win_get_attr_f08 2178end interface MPI_Win_get_attr 2179 2180interface MPI_Win_get_info 2181subroutine MPI_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 MPI_Win_get_info_f08 2188end interface MPI_Win_get_info 2189 2190interface MPI_Win_get_name 2191subroutine MPI_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 MPI_Win_get_name_f08 2199end interface MPI_Win_get_name 2200 2201interface MPI_Win_set_attr 2202subroutine MPI_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 MPI_Win_set_attr_f08 2210end interface MPI_Win_set_attr 2211 2212interface MPI_Win_set_info 2213subroutine MPI_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 MPI_Win_set_info_f08 2220end interface MPI_Win_set_info 2221 2222interface MPI_Win_set_name 2223subroutine MPI_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 MPI_Win_set_name_f08 2230end interface MPI_Win_set_name 2231 2232interface MPI_Cartdim_get 2233subroutine MPI_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 MPI_Cartdim_get_f08 2240end interface MPI_Cartdim_get 2241 2242interface MPI_Cart_coords 2243subroutine MPI_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 MPI_Cart_coords_f08 2251end interface MPI_Cart_coords 2252 2253interface MPI_Cart_create 2254subroutine MPI_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 MPI_Cart_create_f08 2263end interface MPI_Cart_create 2264 2265interface MPI_Cart_get 2266subroutine MPI_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 MPI_Cart_get_f08 2275end interface MPI_Cart_get 2276 2277interface MPI_Cart_map 2278subroutine MPI_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 MPI_Cart_map_f08 2287end interface MPI_Cart_map 2288 2289interface MPI_Cart_rank 2290subroutine MPI_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 MPI_Cart_rank_f08 2298end interface MPI_Cart_rank 2299 2300interface MPI_Cart_shift 2301subroutine MPI_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 MPI_Cart_shift_f08 2309end interface MPI_Cart_shift 2310 2311interface MPI_Cart_sub 2312subroutine MPI_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 MPI_Cart_sub_f08 2320end interface MPI_Cart_sub 2321 2322interface MPI_Dims_create 2323subroutine MPI_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 MPI_Dims_create_f08 2329end interface MPI_Dims_create 2330 2331interface MPI_Dist_graph_create 2332subroutine MPI_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 MPI_Dist_graph_create_f08 2343end interface MPI_Dist_graph_create 2344 2345interface MPI_Dist_graph_create_adjacent 2346subroutine MPI_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 MPI_Dist_graph_create_adjacent_f08 2359end interface MPI_Dist_graph_create_adjacent 2360 2361interface MPI_Dist_graph_neighbors 2362subroutine MPI_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 MPI_Dist_graph_neighbors_f08 2372end interface MPI_Dist_graph_neighbors 2373 2374interface MPI_Dist_graph_neighbors_count 2375subroutine MPI_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 MPI_Dist_graph_neighbors_count_f08 2383end interface MPI_Dist_graph_neighbors_count 2384 2385interface MPI_Graphdims_get 2386subroutine MPI_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 MPI_Graphdims_get_f08 2393end interface MPI_Graphdims_get 2394 2395interface MPI_Graph_create 2396subroutine MPI_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 MPI_Graph_create_f08 2406end interface MPI_Graph_create 2407 2408interface MPI_Graph_get 2409subroutine MPI_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 MPI_Graph_get_f08 2417end interface MPI_Graph_get 2418 2419interface MPI_Graph_map 2420subroutine MPI_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 MPI_Graph_map_f08 2428end interface MPI_Graph_map 2429 2430interface MPI_Graph_neighbors 2431subroutine MPI_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 MPI_Graph_neighbors_f08 2439end interface MPI_Graph_neighbors 2440 2441interface MPI_Graph_neighbors_count 2442subroutine MPI_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 MPI_Graph_neighbors_count_f08 2450end interface MPI_Graph_neighbors_count 2451 2452interface MPI_Topo_test 2453subroutine MPI_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 MPI_Topo_test_f08 2460end interface MPI_Topo_test 2461 2462! MPI_Wtick is not a wrapper function 2463! 2464interface MPI_Wtick 2465function MPI_Wtick_f08( ) BIND(C,name="MPI_Wtick") 2466 use, intrinsic :: ISO_C_BINDING 2467 implicit none 2468 DOUBLE PRECISION :: MPI_Wtick_f08 2469end function MPI_Wtick_f08 2470end interface MPI_Wtick 2471 2472! MPI_Wtime is not a wrapper function 2473! 2474interface MPI_Wtime 2475function MPI_Wtime_f08( ) BIND(C,name="MPI_Wtime") 2476 use, intrinsic :: ISO_C_BINDING 2477 implicit none 2478 DOUBLE PRECISION :: MPI_Wtime_f08 2479end function MPI_Wtime_f08 2480end interface MPI_Wtime 2481 2482interface MPI_Aint_add 2483function MPI_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) :: MPI_Aint_add_f08 2489end function MPI_Aint_add_f08 2490end interface MPI_Aint_add 2491 2492interface MPI_Aint_diff 2493function MPI_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) :: MPI_Aint_diff_f08 2499end function MPI_Aint_diff_f08 2500end interface MPI_Aint_diff 2501 2502interface MPI_Abort 2503subroutine MPI_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 MPI_Abort_f08 2510end interface MPI_Abort 2511 2512interface MPI_Add_error_class 2513subroutine MPI_Add_error_class_f08(errorclass,ierror) 2514 implicit none 2515 INTEGER, INTENT(OUT) :: errorclass 2516 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2517end subroutine MPI_Add_error_class_f08 2518end interface MPI_Add_error_class 2519 2520interface MPI_Add_error_code 2521subroutine MPI_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 MPI_Add_error_code_f08 2527end interface MPI_Add_error_code 2528 2529interface MPI_Add_error_string 2530subroutine MPI_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 MPI_Add_error_string_f08 2536end interface MPI_Add_error_string 2537 2538interface MPI_Alloc_mem 2539subroutine MPI_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 MPI_Alloc_mem_f08 2548end interface MPI_Alloc_mem 2549 2550interface MPI_Comm_call_errhandler 2551subroutine MPI_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 MPI_Comm_call_errhandler_f08 2558end interface MPI_Comm_call_errhandler 2559 2560interface MPI_Comm_create_errhandler 2561subroutine MPI_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 MPI_Comm_create_errhandler_f08 2569end interface MPI_Comm_create_errhandler 2570 2571interface MPI_Comm_get_errhandler 2572subroutine MPI_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 MPI_Comm_get_errhandler_f08 2579end interface MPI_Comm_get_errhandler 2580 2581interface MPI_Comm_set_errhandler 2582subroutine MPI_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 MPI_Comm_set_errhandler_f08 2589end interface MPI_Comm_set_errhandler 2590 2591interface MPI_Errhandler_free 2592subroutine MPI_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 MPI_Errhandler_free_f08 2598end interface MPI_Errhandler_free 2599 2600interface MPI_Error_class 2601subroutine MPI_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 MPI_Error_class_f08 2607end interface MPI_Error_class 2608 2609interface MPI_Error_string 2610subroutine MPI_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 MPI_Error_string_f08 2618end interface MPI_Error_string 2619 2620interface MPI_File_call_errhandler 2621subroutine MPI_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 MPI_File_call_errhandler_f08 2628end interface MPI_File_call_errhandler 2629 2630interface MPI_File_create_errhandler 2631subroutine MPI_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 MPI_File_create_errhandler_f08 2639end interface MPI_File_create_errhandler 2640 2641interface MPI_File_get_errhandler 2642subroutine MPI_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 MPI_File_get_errhandler_f08 2649end interface MPI_File_get_errhandler 2650 2651interface MPI_File_set_errhandler 2652subroutine MPI_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 MPI_File_set_errhandler_f08 2659end interface MPI_File_set_errhandler 2660 2661interface MPI_Finalize 2662subroutine MPI_Finalize_f08(ierror) 2663 implicit none 2664 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2665end subroutine MPI_Finalize_f08 2666end interface MPI_Finalize 2667 2668interface MPI_Finalized 2669subroutine MPI_Finalized_f08(flag,ierror) 2670 implicit none 2671 LOGICAL, INTENT(OUT) :: flag 2672 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2673end subroutine MPI_Finalized_f08 2674end interface MPI_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 MPI_Free_mem 2680subroutine MPI_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 MPI_Free_mem_f08 2690end interface MPI_Free_mem 2691 2692interface MPI_Get_processor_name 2693subroutine MPI_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 MPI_Get_processor_name_f08 2700end interface MPI_Get_processor_name 2701 2702interface MPI_Get_version 2703subroutine MPI_Get_version_f08(version,subversion,ierror) 2704 implicit none 2705 INTEGER, INTENT(OUT) :: version, subversion 2706 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2707end subroutine MPI_Get_version_f08 2708end interface MPI_Get_version 2709 2710interface MPI_Init 2711subroutine MPI_Init_f08(ierror) 2712 implicit none 2713 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2714end subroutine MPI_Init_f08 2715end interface MPI_Init 2716 2717interface MPI_Initialized 2718subroutine MPI_Initialized_f08(flag,ierror) 2719 implicit none 2720 LOGICAL, INTENT(OUT) :: flag 2721 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2722end subroutine MPI_Initialized_f08 2723end interface MPI_Initialized 2724 2725interface MPI_Win_call_errhandler 2726subroutine MPI_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 MPI_Win_call_errhandler_f08 2733end interface MPI_Win_call_errhandler 2734 2735interface MPI_Win_create_errhandler 2736subroutine MPI_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 MPI_Win_create_errhandler_f08 2744end interface MPI_Win_create_errhandler 2745 2746interface MPI_Win_get_errhandler 2747subroutine MPI_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 MPI_Win_get_errhandler_f08 2754end interface MPI_Win_get_errhandler 2755 2756interface MPI_Win_set_errhandler 2757subroutine MPI_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 MPI_Win_set_errhandler_f08 2764end interface MPI_Win_set_errhandler 2765 2766interface MPI_Info_create 2767subroutine MPI_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 MPI_Info_create_f08 2773end interface MPI_Info_create 2774 2775interface MPI_Info_delete 2776subroutine MPI_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 MPI_Info_delete_f08 2783end interface MPI_Info_delete 2784 2785interface MPI_Info_dup 2786subroutine MPI_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 MPI_Info_dup_f08 2793end interface MPI_Info_dup 2794 2795interface MPI_Info_free 2796subroutine MPI_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 MPI_Info_free_f08 2802end interface MPI_Info_free 2803 2804interface MPI_Info_get 2805subroutine MPI_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 MPI_Info_get_f08 2815end interface MPI_Info_get 2816 2817interface MPI_Info_get_nkeys 2818subroutine MPI_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 MPI_Info_get_nkeys_f08 2825end interface MPI_Info_get_nkeys 2826 2827interface MPI_Info_get_nthkey 2828subroutine MPI_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 MPI_Info_get_nthkey_f08 2836end interface MPI_Info_get_nthkey 2837 2838interface MPI_Info_get_valuelen 2839subroutine MPI_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 MPI_Info_get_valuelen_f08 2848end interface MPI_Info_get_valuelen 2849 2850interface MPI_Info_set 2851subroutine MPI_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 MPI_Info_set_f08 2858end interface MPI_Info_set 2859 2860interface MPI_Close_port 2861subroutine MPI_Close_port_f08(port_name,ierror) 2862 implicit none 2863 CHARACTER(LEN=*), INTENT(IN) :: port_name 2864 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 2865end subroutine MPI_Close_port_f08 2866end interface MPI_Close_port 2867 2868interface MPI_Comm_accept 2869subroutine MPI_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 MPI_Comm_accept_f08 2879end interface MPI_Comm_accept 2880 2881interface MPI_Comm_connect 2882subroutine MPI_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 MPI_Comm_connect_f08 2892end interface MPI_Comm_connect 2893 2894interface MPI_Comm_disconnect 2895subroutine MPI_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 MPI_Comm_disconnect_f08 2901end interface MPI_Comm_disconnect 2902 2903interface MPI_Comm_get_parent 2904subroutine MPI_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 MPI_Comm_get_parent_f08 2910end interface MPI_Comm_get_parent 2911 2912interface MPI_Comm_join 2913subroutine MPI_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 MPI_Comm_join_f08 2920end interface MPI_Comm_join 2921 2922interface MPI_Comm_spawn 2923subroutine MPI_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 MPI_Comm_spawn_f08 2935end interface MPI_Comm_spawn 2936 2937interface MPI_Comm_spawn_multiple 2938subroutine MPI_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 MPI_Comm_spawn_multiple_f08 2951end interface MPI_Comm_spawn_multiple 2952 2953interface MPI_Lookup_name 2954subroutine MPI_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 MPI_Lookup_name_f08 2962end interface MPI_Lookup_name 2963 2964interface MPI_Open_port 2965subroutine MPI_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 MPI_Open_port_f08 2972end interface MPI_Open_port 2973 2974interface MPI_Publish_name 2975subroutine MPI_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 MPI_Publish_name_f08 2982end interface MPI_Publish_name 2983 2984interface MPI_Unpublish_name 2985subroutine MPI_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 MPI_Unpublish_name_f08 2992end interface MPI_Unpublish_name 2993 2994interface MPI_Accumulate 2995subroutine MPI_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 MPI_Accumulate_f08 3013end interface MPI_Accumulate 3014 3015interface MPI_Raccumulate 3016subroutine MPI_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 MPI_Raccumulate_f08 3036end interface MPI_Raccumulate 3037 3038interface MPI_Get 3039subroutine MPI_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 MPI_Get_f08 3056end interface MPI_Get 3057 3058interface MPI_Rget 3059subroutine MPI_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 MPI_Rget_f08 3077end interface MPI_Rget 3078 3079interface MPI_Get_accumulate 3080subroutine MPI_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 MPI_Get_accumulate_f08 3101end interface MPI_Get_accumulate 3102 3103interface MPI_Rget_accumulate 3104subroutine MPI_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 MPI_Rget_accumulate_f08 3126end interface MPI_Rget_accumulate 3127 3128interface MPI_Put 3129subroutine MPI_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 MPI_Put_f08 3146end interface MPI_Put 3147 3148interface MPI_Rput 3149subroutine MPI_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 MPI_Rput_f08 3167end interface MPI_Rput 3168 3169interface MPI_Fetch_and_op 3170subroutine MPI_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 MPI_Fetch_and_op_f08 3188end interface MPI_Fetch_and_op 3189 3190interface MPI_Compare_and_swap 3191subroutine MPI_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 MPI_Compare_and_swap_f08 3208end interface MPI_Compare_and_swap 3209 3210interface MPI_Win_complete 3211subroutine MPI_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 MPI_Win_complete_f08 3217end interface MPI_Win_complete 3218 3219interface MPI_Win_create 3220subroutine MPI_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 MPI_Win_create_f08 3236end interface MPI_Win_create 3237 3238interface MPI_Win_create_dynamic 3239subroutine MPI_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 MPI_Win_create_dynamic_f08 3247end interface MPI_Win_create_dynamic 3248 3249interface MPI_Win_attach 3250subroutine MPI_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 MPI_Win_attach_f08 3263end interface MPI_Win_attach 3264 3265interface MPI_Win_detach 3266subroutine MPI_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 MPI_Win_detach_f08 3278end interface MPI_Win_detach 3279 3280interface MPI_Win_fence 3281subroutine MPI_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 MPI_Win_fence_f08 3288end interface MPI_Win_fence 3289 3290interface MPI_Win_free 3291subroutine MPI_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 MPI_Win_free_f08 3297end interface MPI_Win_free 3298 3299interface MPI_Win_get_group 3300subroutine MPI_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 MPI_Win_get_group_f08 3307end interface MPI_Win_get_group 3308 3309interface MPI_Win_lock 3310subroutine MPI_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 MPI_Win_lock_f08 3317end interface MPI_Win_lock 3318 3319interface MPI_Win_lock_all 3320subroutine MPI_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 MPI_Win_lock_all_f08 3327end interface MPI_Win_lock_all 3328 3329interface MPI_Win_post 3330subroutine MPI_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 MPI_Win_post_f08 3338end interface MPI_Win_post 3339 3340interface MPI_Win_shared_query 3341subroutine MPI_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 MPI_Win_shared_query_f08 3352end interface MPI_Win_shared_query 3353 3354interface MPI_Win_start 3355subroutine MPI_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 MPI_Win_start_f08 3363end interface MPI_Win_start 3364 3365interface MPI_Win_sync 3366subroutine MPI_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 MPI_Win_sync_f08 3372end interface MPI_Win_sync 3373 3374interface MPI_Win_test 3375subroutine MPI_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 MPI_Win_test_f08 3382end interface MPI_Win_test 3383 3384interface MPI_Win_unlock 3385subroutine MPI_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 MPI_Win_unlock_f08 3392end interface MPI_Win_unlock 3393 3394interface MPI_Win_unlock_all 3395subroutine MPI_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 MPI_Win_unlock_all_f08 3401end interface MPI_Win_unlock_all 3402 3403interface MPI_Win_wait 3404subroutine MPI_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 MPI_Win_wait_f08 3410end interface MPI_Win_wait 3411 3412interface MPI_Win_flush 3413subroutine MPI_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 MPI_Win_flush_f08 3420end interface MPI_Win_flush 3421 3422interface MPI_Win_flush_local 3423subroutine MPI_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 MPI_Win_flush_local_f08 3430end interface MPI_Win_flush_local 3431 3432interface MPI_Win_flush_local_all 3433subroutine MPI_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 MPI_Win_flush_local_all_f08 3439end interface MPI_Win_flush_local_all 3440 3441interface MPI_Win_flush_all 3442subroutine MPI_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 MPI_Win_flush_all_f08 3448end interface MPI_Win_flush_all 3449 3450interface MPI_Grequest_complete 3451subroutine MPI_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 MPI_Grequest_complete_f08 3457end interface MPI_Grequest_complete 3458 3459interface MPI_Grequest_start 3460subroutine MPI_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 MPI_Grequest_start_f08 3474end interface MPI_Grequest_start 3475 3476interface MPI_Init_thread 3477subroutine MPI_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 MPI_Init_thread_f08 3483end interface MPI_Init_thread 3484 3485interface MPI_Is_thread_main 3486subroutine MPI_Is_thread_main_f08(flag,ierror) 3487 implicit none 3488 LOGICAL, INTENT(OUT) :: flag 3489 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3490end subroutine MPI_Is_thread_main_f08 3491end interface MPI_Is_thread_main 3492 3493interface MPI_Query_thread 3494subroutine MPI_Query_thread_f08(provided,ierror) 3495 implicit none 3496 INTEGER, INTENT(OUT) :: provided 3497 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3498end subroutine MPI_Query_thread_f08 3499end interface MPI_Query_thread 3500 3501interface MPI_Status_set_cancelled 3502subroutine MPI_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(IN) :: flag 3507 INTEGER, OPTIONAL, INTENT(OUT) :: ierror 3508end subroutine MPI_Status_set_cancelled_f08 3509end interface MPI_Status_set_cancelled 3510 3511interface MPI_Status_set_elements 3512subroutine MPI_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 MPI_Status_set_elements_f08 3520end interface MPI_Status_set_elements 3521 3522interface MPI_Status_set_elements_x 3523subroutine MPI_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 MPI_Status_set_elements_x_f08 3531end interface MPI_Status_set_elements_x 3532 3533interface MPI_File_close 3534subroutine MPI_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 MPI_File_close_f08 3540end interface MPI_File_close 3541 3542interface MPI_File_delete 3543subroutine MPI_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 MPI_File_delete_f08 3550end interface MPI_File_delete 3551 3552interface MPI_File_get_amode 3553subroutine MPI_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 MPI_File_get_amode_f08 3560end interface MPI_File_get_amode 3561 3562interface MPI_File_get_atomicity 3563subroutine MPI_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 MPI_File_get_atomicity_f08 3570end interface MPI_File_get_atomicity 3571 3572interface MPI_File_get_byte_offset 3573subroutine MPI_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 MPI_File_get_byte_offset_f08 3581end interface MPI_File_get_byte_offset 3582 3583interface MPI_File_get_group 3584subroutine MPI_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 MPI_File_get_group_f08 3591end interface MPI_File_get_group 3592 3593interface MPI_File_get_info 3594subroutine MPI_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 MPI_File_get_info_f08 3601end interface MPI_File_get_info 3602 3603interface MPI_File_get_position 3604subroutine MPI_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 MPI_File_get_position_f08 3611end interface MPI_File_get_position 3612 3613interface MPI_File_get_position_shared 3614subroutine MPI_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 MPI_File_get_position_shared_f08 3621end interface MPI_File_get_position_shared 3622 3623interface MPI_File_get_size 3624subroutine MPI_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 MPI_File_get_size_f08 3631end interface MPI_File_get_size 3632 3633interface MPI_File_get_type_extent 3634subroutine MPI_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 MPI_File_get_type_extent_f08 3642end interface MPI_File_get_type_extent 3643 3644interface MPI_File_get_view 3645subroutine MPI_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 MPI_File_get_view_f08 3655end interface MPI_File_get_view 3656 3657interface MPI_File_iread 3658subroutine MPI_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 MPI_File_iread_f08 3673end interface MPI_File_iread 3674 3675interface MPI_File_iread_at 3676subroutine MPI_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 MPI_File_iread_at_f08 3692end interface MPI_File_iread_at 3693 3694interface MPI_File_iread_all 3695subroutine MPI_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 MPI_File_iread_all_f08 3710end interface MPI_File_iread_all 3711 3712interface MPI_File_iread_at_all 3713subroutine MPI_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 MPI_File_iread_at_all_f08 3729end interface MPI_File_iread_at_all 3730 3731interface MPI_File_iread_shared 3732subroutine MPI_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 MPI_File_iread_shared_f08 3747end interface MPI_File_iread_shared 3748 3749interface MPI_File_iwrite 3750subroutine MPI_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 MPI_File_iwrite_f08 3765end interface MPI_File_iwrite 3766 3767interface MPI_File_iwrite_at 3768subroutine MPI_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 MPI_File_iwrite_at_f08 3784end interface MPI_File_iwrite_at 3785 3786interface MPI_File_iwrite_all 3787subroutine MPI_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 MPI_File_iwrite_all_f08 3802end interface MPI_File_iwrite_all 3803 3804interface MPI_File_iwrite_at_all 3805subroutine MPI_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 MPI_File_iwrite_at_all_f08 3821end interface MPI_File_iwrite_at_all 3822 3823interface MPI_File_iwrite_shared 3824subroutine MPI_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 MPI_File_iwrite_shared_f08 3839end interface MPI_File_iwrite_shared 3840 3841interface MPI_File_open 3842subroutine MPI_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 MPI_File_open_f08 3852end interface MPI_File_open 3853 3854interface MPI_File_preallocate 3855subroutine MPI_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 MPI_File_preallocate_f08 3862end interface MPI_File_preallocate 3863 3864interface MPI_File_read 3865subroutine MPI_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 MPI_File_read_f08 3880end interface MPI_File_read 3881 3882interface MPI_File_read_all 3883subroutine MPI_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 MPI_File_read_all_f08 3898end interface MPI_File_read_all 3899 3900interface MPI_File_read_all_begin 3901subroutine MPI_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 MPI_File_read_all_begin_f08 3915end interface MPI_File_read_all_begin 3916 3917interface MPI_File_read_all_end 3918subroutine MPI_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 MPI_File_read_all_end_f08 3931end interface MPI_File_read_all_end 3932 3933interface MPI_File_read_at 3934subroutine MPI_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 MPI_File_read_at_f08 3950end interface MPI_File_read_at 3951 3952interface MPI_File_read_at_all 3953subroutine MPI_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 MPI_File_read_at_all_f08 3969end interface MPI_File_read_at_all 3970 3971interface MPI_File_read_at_all_begin 3972subroutine MPI_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 MPI_File_read_at_all_begin_f08 3987end interface MPI_File_read_at_all_begin 3988 3989interface MPI_File_read_at_all_end 3990subroutine MPI_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 MPI_File_read_at_all_end_f08 4003end interface MPI_File_read_at_all_end 4004 4005interface MPI_File_read_ordered 4006subroutine MPI_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 MPI_File_read_ordered_f08 4021end interface MPI_File_read_ordered 4022 4023interface MPI_File_read_ordered_begin 4024subroutine MPI_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 MPI_File_read_ordered_begin_f08 4038end interface MPI_File_read_ordered_begin 4039 4040interface MPI_File_read_ordered_end 4041subroutine MPI_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 MPI_File_read_ordered_end_f08 4054end interface MPI_File_read_ordered_end 4055 4056interface MPI_File_read_shared 4057subroutine MPI_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 MPI_File_read_shared_f08 4072end interface MPI_File_read_shared 4073 4074interface MPI_File_seek 4075subroutine MPI_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 MPI_File_seek_f08 4083end interface MPI_File_seek 4084 4085interface MPI_File_seek_shared 4086subroutine MPI_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 MPI_File_seek_shared_f08 4094end interface MPI_File_seek_shared 4095 4096interface MPI_File_set_atomicity 4097subroutine MPI_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 MPI_File_set_atomicity_f08 4104end interface MPI_File_set_atomicity 4105 4106interface MPI_File_set_info 4107subroutine MPI_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 MPI_File_set_info_f08 4114end interface MPI_File_set_info 4115 4116interface MPI_File_set_size 4117subroutine MPI_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 MPI_File_set_size_f08 4124end interface MPI_File_set_size 4125 4126interface MPI_File_set_view 4127subroutine MPI_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 MPI_File_set_view_f08 4138end interface MPI_File_set_view 4139 4140interface MPI_File_sync 4141subroutine MPI_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 MPI_File_sync_f08 4147end interface MPI_File_sync 4148 4149interface MPI_File_write 4150subroutine MPI_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 MPI_File_write_f08 4165end interface MPI_File_write 4166 4167interface MPI_File_write_all 4168subroutine MPI_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 MPI_File_write_all_f08 4183end interface MPI_File_write_all 4184 4185interface MPI_File_write_all_begin 4186subroutine MPI_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 MPI_File_write_all_begin_f08 4200end interface MPI_File_write_all_begin 4201 4202interface MPI_File_write_all_end 4203subroutine MPI_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 MPI_File_write_all_end_f08 4216end interface MPI_File_write_all_end 4217 4218interface MPI_File_write_at 4219subroutine MPI_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 MPI_File_write_at_f08 4235end interface MPI_File_write_at 4236 4237interface MPI_File_write_at_all 4238subroutine MPI_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 MPI_File_write_at_all_f08 4254end interface MPI_File_write_at_all 4255 4256interface MPI_File_write_at_all_begin 4257subroutine MPI_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 MPI_File_write_at_all_begin_f08 4272end interface MPI_File_write_at_all_begin 4273 4274interface MPI_File_write_at_all_end 4275subroutine MPI_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 MPI_File_write_at_all_end_f08 4288end interface MPI_File_write_at_all_end 4289 4290interface MPI_File_write_ordered 4291subroutine MPI_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 MPI_File_write_ordered_f08 4306end interface MPI_File_write_ordered 4307 4308interface MPI_File_write_ordered_begin 4309subroutine MPI_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 MPI_File_write_ordered_begin_f08 4323end interface MPI_File_write_ordered_begin 4324 4325interface MPI_File_write_ordered_end 4326subroutine MPI_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 MPI_File_write_ordered_end_f08 4339end interface MPI_File_write_ordered_end 4340 4341interface MPI_File_write_shared 4342subroutine MPI_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 MPI_File_write_shared_f08 4357end interface MPI_File_write_shared 4358 4359interface MPI_Register_datarep 4360subroutine MPI_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 MPI_Register_datarep_f08 4373end interface MPI_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 MPI_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 MPI_Sizeof 4391 4392interface MPI_Type_create_f90_complex 4393subroutine MPI_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 MPI_Type_create_f90_complex_f08 4400end interface MPI_Type_create_f90_complex 4401 4402interface MPI_Type_create_f90_integer 4403subroutine MPI_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 MPI_Type_create_f90_integer_f08 4410end interface MPI_Type_create_f90_integer 4411 4412interface MPI_Type_create_f90_real 4413subroutine MPI_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 MPI_Type_create_f90_real_f08 4420end interface MPI_Type_create_f90_real 4421 4422interface MPI_Type_match_size 4423subroutine MPI_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 MPI_Type_match_size_f08 4430end interface MPI_Type_match_size 4431 4432interface MPI_Pcontrol 4433subroutine MPI_Pcontrol_f08(level) 4434 implicit none 4435 INTEGER, INTENT(IN) :: level 4436end subroutine MPI_Pcontrol_f08 4437end interface MPI_Pcontrol 4438 4439 4440!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 4441! New routines to MPI-3 4442! 4443 4444interface MPI_Comm_split_type 4445subroutine MPI_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 MPI_Comm_split_type_f08 4455end interface MPI_Comm_split_type 4456 4457interface MPI_F_sync_reg 4458subroutine MPI_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 MPI_F_sync_reg_f08 4467end interface MPI_F_sync_reg 4468 4469interface MPI_Get_library_version 4470subroutine MPI_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 MPI_Get_library_version_f08 4477end interface MPI_Get_library_version 4478 4479interface MPI_Mprobe 4480subroutine MPI_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 MPI_Mprobe_f08 4489end interface MPI_Mprobe 4490 4491interface MPI_Improbe 4492subroutine MPI_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 MPI_Improbe_f08 4502end interface MPI_Improbe 4503 4504interface MPI_Imrecv 4505subroutine MPI_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 MPI_Imrecv_f08 4520end interface MPI_Imrecv 4521 4522interface MPI_Mrecv 4523subroutine MPI_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 MPI_Mrecv_f08 4538end interface MPI_Mrecv 4539 4540interface MPI_Neighbor_allgather 4541subroutine MPI_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 MPI_Neighbor_allgather_f08 4557end interface MPI_Neighbor_allgather 4558 4559interface MPI_Ineighbor_allgather 4560subroutine MPI_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 MPI_Ineighbor_allgather_f08 4577end interface MPI_Ineighbor_allgather 4578 4579interface MPI_Neighbor_allgatherv 4580subroutine MPI_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 MPI_Neighbor_allgatherv_f08 4597end interface MPI_Neighbor_allgatherv 4598 4599interface MPI_Ineighbor_allgatherv 4600subroutine MPI_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 MPI_Ineighbor_allgatherv_f08 4618end interface MPI_Ineighbor_allgatherv 4619 4620interface MPI_Neighbor_alltoall 4621subroutine MPI_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 MPI_Neighbor_alltoall_f08 4637end interface MPI_Neighbor_alltoall 4638 4639interface MPI_Ineighbor_alltoall 4640subroutine MPI_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 MPI_Ineighbor_alltoall_f08 4657end interface MPI_Ineighbor_alltoall 4658 4659interface MPI_Neighbor_alltoallv 4660subroutine MPI_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 MPI_Neighbor_alltoallv_f08 4676end interface MPI_Neighbor_alltoallv 4677 4678interface MPI_Ineighbor_alltoallv 4679subroutine MPI_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 MPI_Ineighbor_alltoallv_f08 4696end interface MPI_Ineighbor_alltoallv 4697 4698interface MPI_Neighbor_alltoallw 4699subroutine MPI_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 MPI_Neighbor_alltoallw_f08 4716end interface MPI_Neighbor_alltoallw 4717 4718interface MPI_Ineighbor_alltoallw 4719subroutine MPI_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 MPI_Ineighbor_alltoallw_f08 4737end interface MPI_Ineighbor_alltoallw 4738 4739end module mpi_f08_interfaces 4740