1
1
openmpi/ompi/mpi/fortran/base/mpi-f08-interfaces.F90
Jeff Squyres 253444c6d0 == Highlights ==
1. New mpifort wrapper compiler: you can utilize mpif.h, use mpi, and use mpi_f08 through this one wrapper compiler
 1. mpif77 and mpif90 still exist, but are sym links to mpifort and may be removed in a future release
 1. The mpi module has been re-implemented and is significantly "mo' bettah"
 1. The mpi_f08 module offers many, many improvements over mpif.h and the mpi module

This stuff is coming from a VERY long-lived mercurial branch (3 years!); it'll almost certainly take a few SVN commits and a bunch of testing before I get it correctly committed to the SVN trunk.

== More details ==

Craig Rasmussen and I have been working with the MPI-3 Fortran WG and Fortran J3 committees for a long, long time to make a prototype MPI-3 Fortran bindings implementation.  We think we're at a stable enough state to bring this stuff back to the trunk, with the goal of including it in OMPI v1.7.  

Special thanks go out to everyone who has been incredibly patient and helpful to us in this journey:

 * Rolf Rabenseifner/HLRS (mastermind/genius behind the entire MPI-3 Fortran effort)
 * The Fortran J3 committee
 * Tobias Burnus/gfortran
 * Tony !Goetz/Absoft
 * Terry !Donte/Oracle
 * ...and probably others whom I'm forgetting :-(

There's still opportunities for optimization in the mpi_f08 implementation, but by and large, it is as far along as it can be until Fortran compilers start implementing the new F08 dimension(..) syntax.

Note that gfortran is currently unsupported for the mpi_f08 module and the new mpi module.  gfortran users will a) fall back to the same mpi module implementation that is in OMPI v1.5.x, and b) not get the new mpi_f08 module.  The gfortran maintainers are actively working hard to add the necessary features to support both the new mpi_f08 module and the new mpi module implementations.  This will take some time.

As mentioned above, ompi/mpi/f77 and ompi/mpi/f90 no longer exist.  All the fortran bindings implementations have been collated under ompi/mpi/fortran; each implementation has its own subdirectory:

{{{
ompi/mpi/fortran/
  base/               - glue code
  mpif-h/             - what used to be ompi/mpi/f77
  use-mpi-tkr/        - what used to be ompi/mpi/f90
  use-mpi-ignore-tkr/ - new mpi module implementation
  use-mpi-f08/        - new mpi_f08 module implementation
}}}

There's also a prototype 6-function-MPI implementation under use-mpi-f08-desc that emulates the new F08 dimension(..) syntax that isn't fully available in Fortran compilers yet.  We did that to prove it to ourselves that it could be done once the compilers fully support it.  This directory/implementation will likely eventually replace the use-mpi-f08 version.

Other things that were done:

 * ompi_info grew a few new output fields to describe what level of Fortran support is included
 * Existing Fortran examples in examples/ were renamed; new mpi_f08 examples were added
 * The old Fortran MPI libraries were renamed:
   * libmpi_f77 -> libmpi_mpifh
   * libmpi_f90 -> libmpi_usempi
 * The configury for Fortran was consolidated and significantly slimmed down.  Note that the F77 env variable is now IGNORED for configure; you should only use FC. Example:
{{{
shell$ ./configure CC=icc CXX=icpc FC=ifort ...
}}}

All of this work was done in a Mercurial branch off the SVN trunk, and hosted at Bitbucket.  This branch has got to be one of OMPI's longest-running branches.  Its first commit was Tue Apr 07 23:01:46 2009 -0400 -- it's over 3 years old!  :-)  We think we've pulled in all relevant changes from the OMPI trunk (e.g., Fortran implementations of the new MPI-3 MPROBE stuff for mpif.h, use mpi, and use mpi_f08, and the recent Fujitsu Fortran patches).

I anticipate some instability when we bring this stuff into the trunk, simply because it touches a LOT of code in the MPI layer in the OMPI code base.  We'll try our best to make it as pain-free as possible, but please bear with us when it is committed.

This commit was SVN r26283.
2012-04-18 15:57:29 +00:00

3835 строки
146 KiB
Fortran

! -*- f90 -*-
!
! Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
! All rights reserved.
! $COPYRIGHT$
!
! This file provides the interface specifications for the MPI Fortran
! API bindings. It effectively maps between public names ("MPI_Init")
! and the name for tools ("MPI_Init_f08") and the back-end implementation
! name (e.g., "MPI_Init_f08").
#include "ompi/mpi/fortran/configure-fortran-output.h"
module mpi_f08_interfaces
interface MPI_Bsend
subroutine MPI_Bsend_f08(buf,count,datatype,dest,tag,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Bsend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Bsend_f08
end interface MPI_Bsend
interface MPI_Bsend_init
subroutine MPI_Bsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Bsend_init_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Bsend_init_f08
end interface MPI_Bsend_init
interface MPI_Buffer_attach
subroutine MPI_Buffer_attach_f08(buffer,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Buffer_attach_f08")
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer
!$PRAGMA IGNORE_TKR buffer
!DIR$ IGNORE_TKR buffer
!IBM* IGNORE_TKR buffer
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer
INTEGER, INTENT(IN) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Buffer_attach_f08
end interface MPI_Buffer_attach
interface MPI_Buffer_detach
subroutine MPI_Buffer_detach_f08(buffer_addr,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Buffer_detach_f08")
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer_addr
!$PRAGMA IGNORE_TKR buffer_addr
!DIR$ IGNORE_TKR buffer_addr
!IBM* IGNORE_TKR buffer_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buffer_addr
INTEGER, INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Buffer_detach_f08
end interface MPI_Buffer_detach
interface MPI_Cancel
subroutine MPI_Cancel_f08(request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cancel_f08")
use :: mpi_f08_types, only : MPI_Request
implicit none
TYPE(MPI_Request), INTENT(IN) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cancel_f08
end interface MPI_Cancel
interface MPI_Get_count
subroutine MPI_Get_count_f08(status,datatype,count,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Get_count_f08")
use :: mpi_f08_types, only : MPI_Status, MPI_Datatype
implicit none
TYPE(MPI_Status), INTENT(IN) :: status
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(OUT) :: count
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Get_count_f08
end interface MPI_Get_count
interface MPI_Ibsend
subroutine MPI_Ibsend_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Ibsend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Ibsend_f08
end interface MPI_Ibsend
interface MPI_Iprobe
subroutine MPI_Iprobe_f08(source,tag,comm,flag,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Iprobe_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Status
implicit none
INTEGER, INTENT(IN) :: source, tag
TYPE(MPI_Comm), INTENT(IN) :: comm
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Status), INTENT(OUT) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Iprobe_f08
end interface MPI_Iprobe
interface MPI_Irecv
subroutine MPI_Irecv_f08(buf,count,datatype,source,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Irecv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, source, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Irecv_f08
end interface MPI_Irecv
interface MPI_Irsend
subroutine MPI_Irsend_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Irsend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Irsend_f08
end interface MPI_Irsend
interface MPI_Isend
subroutine MPI_Isend_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Isend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Isend_f08
end interface MPI_Isend
interface MPI_Issend
subroutine MPI_Issend_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Issend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Issend_f08
end interface MPI_Issend
interface MPI_Probe
subroutine MPI_Probe_f08(source,tag,comm,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Probe_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Status
implicit none
INTEGER, INTENT(IN) :: source, tag
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Status), INTENT(OUT) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Probe_f08
end interface MPI_Probe
interface MPI_Recv
subroutine MPI_Recv_f08(buf,count,datatype,source,tag,comm,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Recv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count, source, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Recv_f08
end interface MPI_Recv
interface MPI_Recv_init
subroutine MPI_Recv_init_f08(buf,count,datatype,source,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Recv_init_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, source, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Recv_init_f08
end interface MPI_Recv_init
interface MPI_Request_free
subroutine MPI_Request_free_f08(request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Request_free_f08")
use :: mpi_f08_types, only : MPI_Request
implicit none
TYPE(MPI_Request), INTENT(INOUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Request_free_f08
end interface MPI_Request_free
interface MPI_Request_get_status
subroutine MPI_Request_get_status_f08(request,flag,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Request_get_status_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
TYPE(MPI_Request), INTENT(IN) :: request
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Request_get_status_f08
end interface MPI_Request_get_status
interface MPI_Rsend
subroutine MPI_Rsend_f08(buf,count,datatype,dest,tag,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Rsend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Rsend_f08
end interface MPI_Rsend
interface MPI_Rsend_init
subroutine MPI_Rsend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Rsend_init_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Rsend_init_f08
end interface MPI_Rsend_init
interface MPI_Send
subroutine MPI_Send_f08(buf,count,datatype,dest,tag,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Send_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Send_f08
end interface MPI_Send
interface MPI_Sendrecv
subroutine MPI_Sendrecv_f08(sendbuf,sendcount,sendtype,dest,sendtag,recvbuf, &
recvcount,recvtype,source,recvtag,comm,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Sendrecv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount, dest, sendtag, recvcount, source, recvtag
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Sendrecv_f08
end interface MPI_Sendrecv
interface MPI_Sendrecv_replace
subroutine MPI_Sendrecv_replace_f08(buf,count,datatype,dest,sendtag,source,recvtag, &
comm,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Sendrecv_replace_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Status
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count, dest, sendtag, source, recvtag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Sendrecv_replace_f08
end interface MPI_Sendrecv_replace
interface MPI_Send_init
subroutine MPI_Send_init_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Send_init_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Send_init_f08
end interface MPI_Send_init
interface MPI_Ssend
subroutine MPI_Ssend_f08(buf,count,datatype,dest,tag,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Ssend_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Ssend_f08
end interface MPI_Ssend
interface MPI_Ssend_init
subroutine MPI_Ssend_init_f08(buf,count,datatype,dest,tag,comm,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Ssend_init_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count, dest, tag
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Ssend_init_f08
end interface MPI_Ssend_init
interface MPI_Start
subroutine MPI_Start_f08(request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Start_f08")
use :: mpi_f08_types, only : MPI_Request
implicit none
TYPE(MPI_Request), INTENT(INOUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Start_f08
end interface MPI_Start
interface MPI_Startall
subroutine MPI_Startall_f08(count,array_of_requests,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Startall_f08")
use :: mpi_f08_types, only : MPI_Request
implicit none
INTEGER, INTENT(IN) :: count
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Startall_f08
end interface MPI_Startall
interface MPI_Test
subroutine MPI_Test_f08(request,flag,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Test_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
TYPE(MPI_Request), INTENT(INOUT) :: request
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Test_f08
end interface MPI_Test
interface MPI_Testall
subroutine MPI_Testall_f08(count,array_of_requests,flag,array_of_statuses,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Testall_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
INTEGER, INTENT(IN) :: count
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Status) :: array_of_statuses(count)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Testall_f08
end interface MPI_Testall
interface MPI_Testany
subroutine MPI_Testany_f08(count,array_of_requests,index,flag,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Testany_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
INTEGER, INTENT(IN) :: count
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
INTEGER, INTENT(OUT) :: index
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Testany_f08
end interface MPI_Testany
interface MPI_Testsome
subroutine MPI_Testsome_f08(incount,array_of_requests,outcount, &
array_of_indices,array_of_statuses,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Testsome_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
INTEGER, INTENT(IN) :: incount
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(incount)
INTEGER, INTENT(OUT) :: outcount, array_of_indices(*)
TYPE(MPI_Status) :: array_of_statuses(*)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Testsome_f08
end interface MPI_Testsome
interface MPI_Test_cancelled
subroutine MPI_Test_cancelled_f08(status,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Test_cancelled_f08")
use :: mpi_f08_types, only : MPI_Status
implicit none
TYPE(MPI_Status), INTENT(IN) :: status
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Test_cancelled_f08
end interface MPI_Test_cancelled
interface MPI_Wait
subroutine MPI_Wait_f08(request,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Wait_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
TYPE(MPI_Request), INTENT(INOUT) :: request
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Wait_f08
end interface MPI_Wait
interface MPI_Waitall
subroutine MPI_Waitall_f08(count,array_of_requests,array_of_statuses,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Waitall_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
INTEGER, INTENT(IN) :: count
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
TYPE(MPI_Status) :: array_of_statuses(count)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Waitall_f08
end interface MPI_Waitall
interface MPI_Waitany
subroutine MPI_Waitany_f08(count,array_of_requests,index,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Waitany_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
INTEGER, INTENT(IN) :: count
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(count)
INTEGER, INTENT(OUT) :: index
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Waitany_f08
end interface MPI_Waitany
interface MPI_Waitsome
subroutine MPI_Waitsome_f08(incount,array_of_requests,outcount, &
array_of_indices,array_of_statuses,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Waitsome_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_Status
implicit none
INTEGER, INTENT(IN) :: incount
TYPE(MPI_Request), INTENT(INOUT) :: array_of_requests(incount)
INTEGER, INTENT(OUT) :: outcount, array_of_indices(*)
TYPE(MPI_Status) :: array_of_statuses(*)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Waitsome_f08
end interface MPI_Waitsome
interface MPI_Get_address
subroutine MPI_Get_address_f08(location,address,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Get_address_f08")
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: location
!$PRAGMA IGNORE_TKR location
!DIR$ IGNORE_TKR location
!IBM* IGNORE_TKR location
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: location
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: address
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Get_address_f08
end interface MPI_Get_address
interface MPI_Get_elements
subroutine MPI_Get_elements_f08(status,datatype,count,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Get_elements_f08")
use :: mpi_f08_types, only : MPI_Status, MPI_Datatype
implicit none
TYPE(MPI_Status), INTENT(IN) :: status
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(OUT) :: count
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Get_elements_f08
end interface MPI_Get_elements
interface MPI_Pack
subroutine MPI_Pack_f08(inbuf,incount,datatype,outbuf,outsize,position,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Pack_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
!$PRAGMA IGNORE_TKR inbuf, outbuf
!DIR$ IGNORE_TKR inbuf, outbuf
!IBM* IGNORE_TKR inbuf, outbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
INTEGER, INTENT(IN) :: incount, outsize
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(INOUT) :: position
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Pack_f08
end interface MPI_Pack
interface MPI_Pack_external
subroutine MPI_Pack_external_f08(datarep,inbuf,incount,datatype,outbuf,outsize, &
position,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
CHARACTER(LEN=*), INTENT(IN) :: datarep
!DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
!$PRAGMA IGNORE_TKR inbuf, outbuf
!DIR$ IGNORE_TKR inbuf, outbuf
!IBM* IGNORE_TKR inbuf, outbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
INTEGER, INTENT(IN) :: incount
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: outsize
INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Pack_external_f08
end interface MPI_Pack_external
interface MPI_Pack_external_size
subroutine MPI_Pack_external_size_f08(datarep,incount,datatype,size,ierror &
)
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: incount
CHARACTER(LEN=*), INTENT(IN) :: datarep
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Pack_external_size_f08
end interface MPI_Pack_external_size
interface MPI_Pack_size
subroutine MPI_Pack_size_f08(incount,datatype,comm,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Pack_size_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
INTEGER, INTENT(IN) :: incount
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Pack_size_f08
end interface MPI_Pack_size
interface MPI_Type_commit
subroutine MPI_Type_commit_f08(datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_commit_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(INOUT) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_commit_f08
end interface MPI_Type_commit
interface MPI_Type_contiguous
subroutine MPI_Type_contiguous_f08(count,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_contiguous_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_contiguous_f08
end interface MPI_Type_contiguous
interface MPI_Type_create_darray
subroutine MPI_Type_create_darray_f08(size,rank,ndims,array_of_gsizes, &
array_of_distribs,array_of_dargs,array_of_psizes,order, &
oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_darray_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: size, rank, ndims, order
INTEGER, INTENT(IN) :: array_of_gsizes(ndims), array_of_distribs(ndims)
INTEGER, INTENT(IN) :: array_of_dargs(ndims), array_of_psizes(ndims)
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_darray_f08
end interface MPI_Type_create_darray
interface MPI_Type_create_hindexed
subroutine MPI_Type_create_hindexed_f08(count,array_of_blocklengths, &
array_of_displacements,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_hindexed_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
INTEGER, INTENT(IN) :: count
INTEGER, INTENT(IN) :: array_of_blocklengths(count)
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_hindexed_f08
end interface MPI_Type_create_hindexed
interface MPI_Type_create_hvector
subroutine MPI_Type_create_hvector_f08(count,blocklength,stride,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_hvector_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
INTEGER, INTENT(IN) :: count, blocklength
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: stride
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_hvector_f08
end interface MPI_Type_create_hvector
interface MPI_Type_create_indexed_block
subroutine MPI_Type_create_indexed_block_f08(count,blocklength, &
array_of_displacements,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_indexed_block_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: count, blocklength
INTEGER, INTENT(IN) :: array_of_displacements(count)
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_indexed_block_f08
end interface MPI_Type_create_indexed_block
interface MPI_Type_create_resized
subroutine MPI_Type_create_resized_f08(oldtype,lb,extent,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_resized_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: lb, extent
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_resized_f08
end interface MPI_Type_create_resized
interface MPI_Type_create_struct
subroutine MPI_Type_create_struct_f08(count,array_of_blocklengths, &
array_of_displacements,array_of_types,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_struct_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
INTEGER, INTENT(IN) :: count
INTEGER, INTENT(IN) :: array_of_blocklengths(count)
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: array_of_displacements(count)
TYPE(MPI_Datatype), INTENT(IN) :: array_of_types(count)
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_struct_f08
end interface MPI_Type_create_struct
interface MPI_Type_create_subarray
subroutine MPI_Type_create_subarray_f08(ndims,array_of_sizes,array_of_subsizes, &
array_of_starts,order,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_subarray_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: ndims, order
INTEGER, INTENT(IN) :: array_of_sizes(ndims), array_of_subsizes(ndims)
INTEGER, INTENT(IN) :: array_of_starts(ndims)
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_subarray_f08
end interface MPI_Type_create_subarray
interface MPI_Type_dup
subroutine MPI_Type_dup_f08(oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_dup_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_dup_f08
end interface MPI_Type_dup
interface MPI_Type_free
subroutine MPI_Type_free_f08(datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_free_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(INOUT) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_free_f08
end interface MPI_Type_free
interface MPI_Type_get_contents
subroutine MPI_Type_get_contents_f08(datatype,max_integers,max_addresses,max_datatypes, &
array_of_integers,array_of_addresses,array_of_datatypes, &
ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_get_contents_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: max_integers, max_addresses, max_datatypes
INTEGER, INTENT(OUT) :: array_of_integers(max_integers)
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: array_of_addresses(max_addresses)
TYPE(MPI_Datatype), INTENT(OUT) :: array_of_datatypes(max_datatypes)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_get_contents_f08
end interface MPI_Type_get_contents
interface MPI_Type_get_envelope
subroutine MPI_Type_get_envelope_f08(datatype,num_integers,num_addresses,num_datatypes, &
combiner,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_get_envelope_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(OUT) :: num_integers, num_addresses, num_datatypes, combiner
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_get_envelope_f08
end interface MPI_Type_get_envelope
interface MPI_Type_get_extent
subroutine MPI_Type_get_extent_f08(datatype,lb,extent,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_get_extent_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: lb, extent
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_get_extent_f08
end interface MPI_Type_get_extent
interface MPI_Type_get_true_extent
subroutine MPI_Type_get_true_extent_f08(datatype,true_lb,true_extent,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_get_true_extent_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: true_lb, true_extent
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_get_true_extent_f08
end interface MPI_Type_get_true_extent
interface MPI_Type_indexed
subroutine MPI_Type_indexed_f08(count,array_of_blocklengths, &
array_of_displacements,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_indexed_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: count
INTEGER, INTENT(IN) :: array_of_blocklengths(count), array_of_displacements(count)
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_indexed_f08
end interface MPI_Type_indexed
interface MPI_Type_size
subroutine MPI_Type_size_f08(datatype,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_size_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_size_f08
end interface MPI_Type_size
interface MPI_Type_vector
subroutine MPI_Type_vector_f08(count,blocklength,stride,oldtype,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_vector_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: count, blocklength, stride
TYPE(MPI_Datatype), INTENT(IN) :: oldtype
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_vector_f08
end interface MPI_Type_vector
interface MPI_Unpack
subroutine MPI_Unpack_f08(inbuf,insize,position,outbuf,outcount,datatype,comm, &
ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Unpack_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
!$PRAGMA IGNORE_TKR inbuf, outbuf
!DIR$ IGNORE_TKR inbuf, outbuf
!IBM* IGNORE_TKR inbuf, outbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
INTEGER, INTENT(IN) :: insize, outcount
INTEGER, INTENT(INOUT) :: position
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Unpack_f08
end interface MPI_Unpack
interface MPI_Unpack_external
subroutine MPI_Unpack_external_f08(datarep,inbuf,insize,position,outbuf,outcount, &
datatype,ierror &
)
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
CHARACTER(LEN=*), INTENT(IN) :: datarep
!DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, outbuf
!$PRAGMA IGNORE_TKR inbuf, outbuf
!DIR$ IGNORE_TKR inbuf, outbuf
!IBM* IGNORE_TKR inbuf, outbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: outbuf
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: insize
INTEGER(MPI_ADDRESS_KIND), INTENT(INOUT) :: position
INTEGER, INTENT(IN) :: outcount
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Unpack_external_f08
end interface MPI_Unpack_external
interface MPI_Allgather
subroutine MPI_Allgather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Allgather_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount, recvcount
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Allgather_f08
end interface MPI_Allgather
interface MPI_Allgatherv
subroutine MPI_Allgatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
recvtype,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Allgatherv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount
INTEGER, INTENT(IN) :: recvcounts(*), displs(*)
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Allgatherv_f08
end interface MPI_Allgatherv
interface MPI_Allreduce
subroutine MPI_Allreduce_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Allreduce_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Allreduce_f08
end interface MPI_Allreduce
interface MPI_Alltoall
subroutine MPI_Alltoall_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Alltoall_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount, recvcount
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Alltoall_f08
end interface MPI_Alltoall
interface MPI_Alltoallv
subroutine MPI_Alltoallv_f08(sendbuf,sendcounts,sdispls,sendtype,recvbuf,recvcounts, &
rdispls,recvtype,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Alltoallv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Alltoallv_f08
end interface MPI_Alltoallv
interface MPI_Alltoallw
subroutine MPI_Alltoallw_f08(sendbuf,sendcounts,sdispls,sendtypes,recvbuf,recvcounts, &
rdispls,recvtypes,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Alltoallw_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcounts(*), sdispls(*), recvcounts(*), rdispls(*)
TYPE(MPI_Datatype), INTENT(IN) :: sendtypes(*), recvtypes(*)
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Alltoallw_f08
end interface MPI_Alltoallw
interface MPI_Barrier
subroutine MPI_Barrier_f08(comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Barrier_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Barrier_f08
end interface MPI_Barrier
interface MPI_Bcast
subroutine MPI_Bcast_f08(buffer,count,datatype,root,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Bcast_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buffer
!$PRAGMA IGNORE_TKR buffer
!DIR$ IGNORE_TKR buffer
!IBM* IGNORE_TKR buffer
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buffer
INTEGER, INTENT(IN) :: count, root
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Bcast_f08
end interface MPI_Bcast
interface MPI_Exscan
subroutine MPI_Exscan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Exscan_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Exscan_f08
end interface MPI_Exscan
interface MPI_Gather
subroutine MPI_Gather_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
root,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Gather_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount, recvcount, root
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Gather_f08
end interface MPI_Gather
interface MPI_Gatherv
subroutine MPI_Gatherv_f08(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs, &
recvtype,root,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Gatherv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount, root
INTEGER, INTENT(IN) :: recvcounts(*), displs(*)
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Gatherv_f08
end interface MPI_Gatherv
interface MPI_Op_commutative
subroutine MPI_Op_commutative_f08(op,commute,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Op_commutative_f08")
use :: mpi_f08_types, only : MPI_Op
implicit none
TYPE(MPI_Op), INTENT(IN) :: op
LOGICAL, INTENT(OUT) :: commute
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Op_commutative_f08
end interface MPI_Op_commutative
interface MPI_Op_create
subroutine MPI_Op_create_f08(user_fn,commute,op,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Op_create_f08")
use :: mpi_f08_types, only : MPI_Op
use :: mpi_f08_interfaces_callbacks, only : MPI_User_function
implicit none
OMPI_PROCEDURE(MPI_User_function) :: user_fn
LOGICAL, INTENT(IN) :: commute
TYPE(MPI_Op), INTENT(OUT) :: op
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Op_create_f08
end interface MPI_Op_create
interface MPI_Op_free
subroutine MPI_Op_free_f08(op,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Op_free_f08")
use :: mpi_f08_types, only : MPI_Op
implicit none
TYPE(MPI_Op), INTENT(INOUT) :: op
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Op_free_f08
end interface MPI_Op_free
interface MPI_Reduce
subroutine MPI_Reduce_f08(sendbuf,recvbuf,count,datatype,op,root,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Reduce_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: count, root
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Reduce_f08
end interface MPI_Reduce
interface MPI_Reduce_local
subroutine MPI_Reduce_local_f08(inbuf,inoutbuf,count,datatype,op,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Reduce_local_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: inbuf, inoutbuf
!$PRAGMA IGNORE_TKR inbuf, inoutbuf
!DIR$ IGNORE_TKR inbuf, inoutbuf
!IBM* IGNORE_TKR inbuf, inoutbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: inbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: inoutbuf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Reduce_local_f08
end interface MPI_Reduce_local
interface MPI_Reduce_scatter
subroutine MPI_Reduce_scatter_f08(sendbuf,recvbuf,recvcounts,datatype,op,comm, &
ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Reduce_scatter_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: recvcounts(*)
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Reduce_scatter_f08
end interface MPI_Reduce_scatter
interface MPI_Reduce_scatter_block
subroutine MPI_Reduce_scatter_block_f08(sendbuf,recvbuf,recvcount,datatype,op,comm, &
ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Reduce_scatter_block_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: recvcount
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Reduce_scatter_block_f08
end interface MPI_Reduce_scatter_block
interface MPI_Scan
subroutine MPI_Scan_f08(sendbuf,recvbuf,count,datatype,op,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Scan_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Scan_f08
end interface MPI_Scan
interface MPI_Scatter
subroutine MPI_Scatter_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, &
root,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Scatter_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: sendcount, recvcount, root
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Scatter_f08
end interface MPI_Scatter
interface MPI_Scatterv
subroutine MPI_Scatterv_f08(sendbuf,sendcounts,displs,sendtype,recvbuf,recvcount, &
recvtype,root,comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Scatterv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Comm
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf, recvbuf
!$PRAGMA IGNORE_TKR sendbuf, recvbuf
!DIR$ IGNORE_TKR sendbuf, recvbuf
!IBM* IGNORE_TKR sendbuf, recvbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: sendbuf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: recvbuf
INTEGER, INTENT(IN) :: recvcount, root
INTEGER, INTENT(IN) :: sendcounts(*), displs(*)
TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Scatterv_f08
end interface MPI_Scatterv
interface MPI_Comm_compare
subroutine MPI_Comm_compare_f08(comm1,comm2,result,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_compare_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm1
TYPE(MPI_Comm), INTENT(IN) :: comm2
INTEGER, INTENT(OUT) :: result
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_compare_f08
end interface MPI_Comm_compare
interface MPI_Comm_create
subroutine MPI_Comm_create_f08(comm,group,newcomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_create_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Group
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Group), INTENT(IN) :: group
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_create_f08
end interface MPI_Comm_create
interface MPI_Comm_create_keyval
subroutine MPI_Comm_create_keyval_f08(comm_copy_attr_fn,comm_delete_attr_fn,comm_keyval, &
extra_state,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_create_keyval_f08")
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_copy_attr_function
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_delete_attr_function
implicit none
OMPI_PROCEDURE(MPI_Comm_copy_attr_function) :: comm_copy_attr_fn
OMPI_PROCEDURE(MPI_Comm_delete_attr_function) :: comm_delete_attr_fn
INTEGER, INTENT(OUT) :: comm_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_create_keyval_f08
end interface MPI_Comm_create_keyval
interface MPI_Comm_delete_attr
subroutine MPI_Comm_delete_attr_f08(comm,comm_keyval,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_delete_attr_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: comm_keyval
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_delete_attr_f08
end interface MPI_Comm_delete_attr
interface MPI_Comm_dup
subroutine MPI_Comm_dup_f08(comm,newcomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_dup_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_dup_f08
end interface MPI_Comm_dup
interface MPI_Comm_free
subroutine MPI_Comm_free_f08(comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_free_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(INOUT) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_free_f08
end interface MPI_Comm_free
interface MPI_Comm_free_keyval
subroutine MPI_Comm_free_keyval_f08(comm_keyval,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_free_keyval_f08")
implicit none
INTEGER, INTENT(INOUT) :: comm_keyval
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_free_keyval_f08
end interface MPI_Comm_free_keyval
interface MPI_Comm_get_attr
subroutine MPI_Comm_get_attr_f08(comm,comm_keyval,attribute_val,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_get_attr_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: comm_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_get_attr_f08
end interface MPI_Comm_get_attr
interface MPI_Comm_get_name
subroutine MPI_Comm_get_name_f08(comm,comm_name,resultlen,ierror)
use :: mpi_f08_types, only : MPI_Comm, MPI_MAX_OBJECT_NAME
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: comm_name
INTEGER, INTENT(OUT) :: resultlen
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_get_name_f08
end interface MPI_Comm_get_name
interface MPI_Comm_group
subroutine MPI_Comm_group_f08(comm,group,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_group_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Group
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Group), INTENT(OUT) :: group
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_group_f08
end interface MPI_Comm_group
interface MPI_Comm_rank
subroutine MPI_Comm_rank_f08(comm,rank,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_rank_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: rank
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_rank_f08
end interface MPI_Comm_rank
interface MPI_Comm_remote_group
subroutine MPI_Comm_remote_group_f08(comm,group,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_remote_group_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Group
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Group), INTENT(OUT) :: group
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_remote_group_f08
end interface MPI_Comm_remote_group
interface MPI_Comm_remote_size
subroutine MPI_Comm_remote_size_f08(comm,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_remote_size_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_remote_size_f08
end interface MPI_Comm_remote_size
interface MPI_Comm_set_attr
subroutine MPI_Comm_set_attr_f08(comm,comm_keyval,attribute_val,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_set_attr_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: comm_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_set_attr_f08
end interface MPI_Comm_set_attr
interface MPI_Comm_set_name
subroutine MPI_Comm_set_name_f08(comm,comm_name,ierror)
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
CHARACTER(LEN=*), INTENT(IN) :: comm_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_set_name_f08
end interface MPI_Comm_set_name
interface MPI_Comm_size
subroutine MPI_Comm_size_f08(comm,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_size_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_size_f08
end interface MPI_Comm_size
interface MPI_Comm_split
subroutine MPI_Comm_split_f08(comm,color,key,newcomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_split_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: color, key
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_split_f08
end interface MPI_Comm_split
interface MPI_Comm_test_inter
subroutine MPI_Comm_test_inter_f08(comm,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_test_inter_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_test_inter_f08
end interface MPI_Comm_test_inter
interface MPI_Group_compare
subroutine MPI_Group_compare_f08(group1,group2,result,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_compare_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group1, group2
INTEGER, INTENT(OUT) :: result
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_compare_f08
end interface MPI_Group_compare
interface MPI_Group_difference
subroutine MPI_Group_difference_f08(group1,group2,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_difference_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group1, group2
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_difference_f08
end interface MPI_Group_difference
interface MPI_Group_excl
subroutine MPI_Group_excl_f08(group,n,ranks,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_excl_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(IN) :: n, ranks(n)
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_excl_f08
end interface MPI_Group_excl
interface MPI_Group_free
subroutine MPI_Group_free_f08(group,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_free_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(INOUT) :: group
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_free_f08
end interface MPI_Group_free
interface MPI_Group_incl
subroutine MPI_Group_incl_f08(group,n,ranks,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_incl_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
INTEGER, INTENT(IN) :: n, ranks(n)
TYPE(MPI_Group), INTENT(IN) :: group
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_incl_f08
end interface MPI_Group_incl
interface MPI_Group_intersection
subroutine MPI_Group_intersection_f08(group1,group2,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_intersection_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group1, group2
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_intersection_f08
end interface MPI_Group_intersection
interface MPI_Group_range_excl
subroutine MPI_Group_range_excl_f08(group,n,ranges,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_range_excl_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(IN) :: n, ranges(3,n)
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_range_excl_f08
end interface MPI_Group_range_excl
interface MPI_Group_range_incl
subroutine MPI_Group_range_incl_f08(group,n,ranges,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_range_incl_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(IN) :: n, ranges(3,n)
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_range_incl_f08
end interface MPI_Group_range_incl
interface MPI_Group_rank
subroutine MPI_Group_rank_f08(group,rank,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_rank_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(OUT) :: rank
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_rank_f08
end interface MPI_Group_rank
interface MPI_Group_size
subroutine MPI_Group_size_f08(group,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_size_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_size_f08
end interface MPI_Group_size
interface MPI_Group_translate_ranks
subroutine MPI_Group_translate_ranks_f08(group1,n,ranks1,group2,ranks2,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_translate_ranks_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group1, group2
INTEGER, INTENT(IN) :: n
INTEGER, INTENT(IN) :: ranks1(n)
INTEGER, INTENT(OUT) :: ranks2(n)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_translate_ranks_f08
end interface MPI_Group_translate_ranks
interface MPI_Group_union
subroutine MPI_Group_union_f08(group1,group2,newgroup,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Group_union_f08")
use :: mpi_f08_types, only : MPI_Group
implicit none
TYPE(MPI_Group), INTENT(IN) :: group1, group2
TYPE(MPI_Group), INTENT(OUT) :: newgroup
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Group_union_f08
end interface MPI_Group_union
interface MPI_Intercomm_create
subroutine MPI_Intercomm_create_f08(local_comm,local_leader,peer_comm,remote_leader, &
tag,newintercomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Intercomm_create_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: local_comm, peer_comm
INTEGER, INTENT(IN) :: local_leader, remote_leader, tag
TYPE(MPI_Comm), INTENT(OUT) :: newintercomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Intercomm_create_f08
end interface MPI_Intercomm_create
interface MPI_Intercomm_merge
subroutine MPI_Intercomm_merge_f08(intercomm,high,newintracomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Intercomm_merge_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: intercomm
LOGICAL, INTENT(IN) :: high
TYPE(MPI_Comm), INTENT(OUT) :: newintracomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Intercomm_merge_f08
end interface MPI_Intercomm_merge
interface MPI_Type_create_keyval
subroutine MPI_Type_create_keyval_f08(type_copy_attr_fn,type_delete_attr_fn,type_keyval, &
extra_state,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_keyval_f08")
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
use :: mpi_f08_interfaces_callbacks, only : MPI_Type_copy_attr_function
use :: mpi_f08_interfaces_callbacks, only : MPI_Type_delete_attr_function
implicit none
OMPI_PROCEDURE(MPI_Type_copy_attr_function) :: type_copy_attr_fn
OMPI_PROCEDURE(MPI_Type_delete_attr_function) :: type_delete_attr_fn
INTEGER, INTENT(OUT) :: type_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_keyval_f08
end interface MPI_Type_create_keyval
interface MPI_Type_delete_attr
subroutine MPI_Type_delete_attr_f08(datatype,type_keyval,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_delete_attr_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: type_keyval
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_delete_attr_f08
end interface MPI_Type_delete_attr
interface MPI_Type_free_keyval
subroutine MPI_Type_free_keyval_f08(type_keyval,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_free_keyval_f08")
implicit none
INTEGER, INTENT(INOUT) :: type_keyval
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_free_keyval_f08
end interface MPI_Type_free_keyval
interface MPI_Type_get_attr
subroutine MPI_Type_get_attr_f08(datatype,type_keyval,attribute_val,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_get_attr_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: type_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_get_attr_f08
end interface MPI_Type_get_attr
interface MPI_Type_get_name
subroutine MPI_Type_get_name_f08(datatype,type_name,resultlen,ierror)
use :: mpi_f08_types, only : MPI_Datatype, MPI_MAX_OBJECT_NAME
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: type_name
INTEGER, INTENT(OUT) :: resultlen
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_get_name_f08
end interface MPI_Type_get_name
interface MPI_Type_set_attr
subroutine MPI_Type_set_attr_f08(datatype,type_keyval,attribute_val,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_set_attr_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: type_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_set_attr_f08
end interface MPI_Type_set_attr
interface MPI_Type_set_name
subroutine MPI_Type_set_name_f08(datatype,type_name,ierror)
use :: mpi_f08_types, only : MPI_Datatype
implicit none
TYPE(MPI_Datatype), INTENT(IN) :: datatype
CHARACTER(LEN=*), INTENT(IN) :: type_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_set_name_f08
end interface MPI_Type_set_name
interface MPI_Win_create_keyval
subroutine MPI_Win_create_keyval_f08(win_copy_attr_fn,win_delete_attr_fn,win_keyval, &
extra_state,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_create_keyval_f08")
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_copy_attr_function
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_delete_attr_function
implicit none
OMPI_PROCEDURE(MPI_Win_copy_attr_function) :: win_copy_attr_fn
OMPI_PROCEDURE(MPI_Win_delete_attr_function) :: win_delete_attr_fn
INTEGER, INTENT(OUT) :: win_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_create_keyval_f08
end interface MPI_Win_create_keyval
interface MPI_Win_delete_attr
subroutine MPI_Win_delete_attr_f08(win,win_keyval,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_delete_attr_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, INTENT(IN) :: win_keyval
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_delete_attr_f08
end interface MPI_Win_delete_attr
interface MPI_Win_free_keyval
subroutine MPI_Win_free_keyval_f08(win_keyval,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_free_keyval_f08")
implicit none
INTEGER, INTENT(INOUT) :: win_keyval
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_free_keyval_f08
end interface MPI_Win_free_keyval
interface MPI_Win_get_attr
subroutine MPI_Win_get_attr_f08(win,win_keyval,attribute_val,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_get_attr_f08")
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, INTENT(IN) :: win_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: attribute_val
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_get_attr_f08
end interface MPI_Win_get_attr
interface MPI_Win_get_name
subroutine MPI_Win_get_name_f08(win,win_name,resultlen,ierror)
use :: mpi_f08_types, only : MPI_Win, MPI_MAX_OBJECT_NAME
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
CHARACTER(LEN=MPI_MAX_OBJECT_NAME), INTENT(OUT) :: win_name
INTEGER, INTENT(OUT) :: resultlen
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_get_name_f08
end interface MPI_Win_get_name
interface MPI_Win_set_attr
subroutine MPI_Win_set_attr_f08(win,win_keyval,attribute_val,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_set_attr_f08")
use :: mpi_f08_types, only : MPI_Win, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, INTENT(IN) :: win_keyval
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_set_attr_f08
end interface MPI_Win_set_attr
interface MPI_Win_set_name
subroutine MPI_Win_set_name_f08(win,win_name,ierror)
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
CHARACTER(LEN=*), INTENT(IN) :: win_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_set_name_f08
end interface MPI_Win_set_name
interface MPI_Cartdim_get
subroutine MPI_Cartdim_get_f08(comm,ndims,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cartdim_get_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: ndims
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cartdim_get_f08
end interface MPI_Cartdim_get
interface MPI_Cart_coords
subroutine MPI_Cart_coords_f08(comm,rank,maxdims,coords,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_coords_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: rank, maxdims
INTEGER, INTENT(OUT) :: coords(maxdims)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_coords_f08
end interface MPI_Cart_coords
interface MPI_Cart_create
subroutine MPI_Cart_create_f08(comm_old,ndims,dims,periods,reorder,comm_cart,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_create_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm_old
INTEGER, INTENT(IN) :: ndims, dims(ndims)
LOGICAL, INTENT(IN) :: periods(ndims), reorder
TYPE(MPI_Comm), INTENT(OUT) :: comm_cart
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_create_f08
end interface MPI_Cart_create
interface MPI_Cart_get
subroutine MPI_Cart_get_f08(comm,maxdims,dims,periods,coords,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_get_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: maxdims
INTEGER, INTENT(OUT) :: dims(maxdims), coords(maxdims)
LOGICAL, INTENT(OUT) :: periods(maxdims)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_get_f08
end interface MPI_Cart_get
interface MPI_Cart_map
subroutine MPI_Cart_map_f08(comm,ndims,dims,periods,newrank,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_map_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: ndims, dims(ndims)
LOGICAL, INTENT(IN) :: periods(ndims)
INTEGER, INTENT(OUT) :: newrank
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_map_f08
end interface MPI_Cart_map
interface MPI_Cart_rank
subroutine MPI_Cart_rank_f08(comm,coords,rank,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_rank_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: coords(*)
INTEGER, INTENT(OUT) :: rank
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_rank_f08
end interface MPI_Cart_rank
interface MPI_Cart_shift
subroutine MPI_Cart_shift_f08(comm,direction,disp,rank_source,rank_dest,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_shift_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: direction, disp
INTEGER, INTENT(OUT) :: rank_source, rank_dest
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_shift_f08
end interface MPI_Cart_shift
interface MPI_Cart_sub
subroutine MPI_Cart_sub_f08(comm,remain_dims,newcomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Cart_sub_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
LOGICAL, INTENT(IN) :: remain_dims(*)
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Cart_sub_f08
end interface MPI_Cart_sub
interface MPI_Dims_create
subroutine MPI_Dims_create_f08(nnodes,ndims,dims,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Dims_create_f08")
implicit none
INTEGER, INTENT(IN) :: nnodes, ndims
INTEGER, INTENT(INOUT) :: dims(ndims)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Dims_create_f08
end interface MPI_Dims_create
interface MPI_Dist_graph_create
subroutine MPI_Dist_graph_create_f08(comm_old,n,sources,degrees,destinations,weights, &
info,reorder,comm_dist_graph,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Dist_graph_create_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Info
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm_old
INTEGER, INTENT(IN) :: n, sources(n), degrees(n), destinations(*), weights(*)
TYPE(MPI_Info), INTENT(IN) :: info
LOGICAL, INTENT(IN) :: reorder
TYPE(MPI_Comm), INTENT(OUT) :: comm_dist_graph
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Dist_graph_create_f08
end interface MPI_Dist_graph_create
interface MPI_Dist_graph_create_adjacent
subroutine MPI_Dist_graph_create_adjacent_f08(comm_old,indegree,sources,sourceweights, &
outdegree,destinations,destweights,info,reorder, &
comm_dist_graph,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Dist_graph_create_adjacent_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Info
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm_old
INTEGER, INTENT(IN) :: indegree, sources(indegree), outdegree, destinations(outdegree)
INTEGER, INTENT(IN) :: sourceweights(indegree), destweights(outdegree)
TYPE(MPI_Info), INTENT(IN) :: info
LOGICAL, INTENT(IN) :: reorder
TYPE(MPI_Comm), INTENT(OUT) :: comm_dist_graph
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Dist_graph_create_adjacent_f08
end interface MPI_Dist_graph_create_adjacent
interface MPI_Dist_graph_neighbors
subroutine MPI_Dist_graph_neighbors_f08(comm,maxindegree,sources,sourceweights, &
maxoutdegree,destinations,destweights,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Dist_graph_neighbors_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: maxindegree, maxoutdegree
INTEGER, INTENT(OUT) :: sources(maxindegree), destinations(maxoutdegree)
INTEGER, INTENT(OUT) :: sourceweights(maxindegree), destweights(maxoutdegree)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Dist_graph_neighbors_f08
end interface MPI_Dist_graph_neighbors
interface MPI_Dist_graph_neighbors_count
subroutine MPI_Dist_graph_neighbors_count_f08(comm,indegree,outdegree,weighted,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Dist_graph_neighbors_count_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: indegree, outdegree
LOGICAL, INTENT(OUT) :: weighted
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Dist_graph_neighbors_count_f08
end interface MPI_Dist_graph_neighbors_count
interface MPI_Graphdims_get
subroutine MPI_Graphdims_get_f08(comm,nnodes,nedges,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Graphdims_get_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(OUT) :: nnodes, nedges
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Graphdims_get_f08
end interface MPI_Graphdims_get
interface MPI_Graph_create
subroutine MPI_Graph_create_f08(comm_old,nnodes,index,edges,reorder,comm_graph, &
ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Graph_create_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm_old
INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*)
LOGICAL, INTENT(IN) :: reorder
TYPE(MPI_Comm), INTENT(OUT) :: comm_graph
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Graph_create_f08
end interface MPI_Graph_create
interface MPI_Graph_get
subroutine MPI_Graph_get_f08(comm,maxindex,maxedges,index,edges,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Graph_get_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: maxindex, maxedges
INTEGER, INTENT(OUT) :: index(maxindex), edges(maxedges)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Graph_get_f08
end interface MPI_Graph_get
interface MPI_Graph_map
subroutine MPI_Graph_map_f08(comm,nnodes,index,edges,newrank,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Graph_map_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: nnodes, index(nnodes), edges(*)
INTEGER, INTENT(OUT) :: newrank
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Graph_map_f08
end interface MPI_Graph_map
interface MPI_Graph_neighbors
subroutine MPI_Graph_neighbors_f08(comm,rank,maxneighbors,neighbors,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Graph_neighbors_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: rank, maxneighbors
INTEGER, INTENT(OUT) :: neighbors(maxneighbors)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Graph_neighbors_f08
end interface MPI_Graph_neighbors
interface MPI_Graph_neighbors_count
subroutine MPI_Graph_neighbors_count_f08(comm,rank,nneighbors,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Graph_neighbors_count_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: rank
INTEGER, INTENT(OUT) :: nneighbors
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Graph_neighbors_count_f08
end interface MPI_Graph_neighbors_count
interface MPI_Topo_test
subroutine MPI_Topo_test_f08(comm,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Topo_test_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Status
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Topo_test_f08
end interface MPI_Topo_test
! MPI_Wtick is not a wrapper function
!
interface MPI_Wtick
function MPI_Wtick_f08( ) BIND(C,name="MPI_Wtick")
use, intrinsic :: ISO_C_BINDING
implicit none
DOUBLE PRECISION :: MPI_Wtick_f08
end function MPI_Wtick_f08
end interface MPI_Wtick
! MPI_Wtime is not a wrapper function
!
interface MPI_Wtime
function MPI_Wtime_f08( ) BIND(C,name="MPI_Wtime")
use, intrinsic :: ISO_C_BINDING
implicit none
DOUBLE PRECISION :: MPI_Wtime_f08
end function MPI_Wtime_f08
end interface MPI_Wtime
interface MPI_Abort
subroutine MPI_Abort_f08(comm,errorcode,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Abort_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: errorcode
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Abort_f08
end interface MPI_Abort
interface MPI_Add_error_class
subroutine MPI_Add_error_class_f08(errorclass,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Add_error_class_f08")
implicit none
INTEGER, INTENT(OUT) :: errorclass
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Add_error_class_f08
end interface MPI_Add_error_class
interface MPI_Add_error_code
subroutine MPI_Add_error_code_f08(errorclass,errorcode,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Add_error_code_f08")
implicit none
INTEGER, INTENT(IN) :: errorclass
INTEGER, INTENT(OUT) :: errorcode
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Add_error_code_f08
end interface MPI_Add_error_code
interface MPI_Add_error_string
subroutine MPI_Add_error_string_f08(errorcode,string,ierror)
implicit none
integer, intent(in) :: errorcode
character(len=*), intent(in) :: string
integer, optional, intent(out) :: ierror
end subroutine MPI_Add_error_string_f08
end interface MPI_Add_error_string
interface MPI_Alloc_mem
subroutine MPI_Alloc_mem_f08(size,info,baseptr,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Alloc_mem_f08")
use, intrinsic :: ISO_C_BINDING, only : C_PTR
use :: mpi_f08_types, only : MPI_Info, MPI_ADDRESS_KIND
implicit none
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(C_PTR), INTENT(OUT) :: baseptr
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Alloc_mem_f08
end interface MPI_Alloc_mem
interface MPI_Comm_call_errhandler
subroutine MPI_Comm_call_errhandler_f08(comm,errorcode,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_call_errhandler_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: errorcode
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_call_errhandler_f08
end interface MPI_Comm_call_errhandler
interface MPI_Comm_create_errhandler
subroutine MPI_Comm_create_errhandler_f08(comm_errhandler_fn,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_create_errhandler_f08")
use :: mpi_f08_types, only : MPI_Errhandler
use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_errhandler_function
implicit none
OMPI_PROCEDURE(MPI_Comm_errhandler_function) :: comm_errhandler_fn
TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_create_errhandler_f08
end interface MPI_Comm_create_errhandler
interface MPI_Comm_get_errhandler
subroutine MPI_Comm_get_errhandler_f08(comm,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_get_errhandler_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Errhandler
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_get_errhandler_f08
end interface MPI_Comm_get_errhandler
interface MPI_Comm_set_errhandler
subroutine MPI_Comm_set_errhandler_f08(comm,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_set_errhandler_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Errhandler
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Errhandler), INTENT(IN) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_set_errhandler_f08
end interface MPI_Comm_set_errhandler
interface MPI_Errhandler_free
subroutine MPI_Errhandler_free_f08(errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Errhandler_free_f08")
use :: mpi_f08_types, only : MPI_Errhandler
implicit none
TYPE(MPI_Errhandler), INTENT(INOUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Errhandler_free_f08
end interface MPI_Errhandler_free
interface MPI_Error_class
subroutine MPI_Error_class_f08(errorcode,errorclass,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Error_class_f08")
implicit none
INTEGER, INTENT(IN) :: errorcode
INTEGER, INTENT(OUT) :: errorclass
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Error_class_f08
end interface MPI_Error_class
interface MPI_Error_string
subroutine MPI_Error_string_f08(errorcode,string,resultlen,ierror)
use :: mpi_f08_types, only : MPI_MAX_ERROR_STRING
implicit none
integer, intent(in) :: errorcode
character(len=MPI_MAX_ERROR_STRING), intent(out) :: string
integer, intent(out) :: resultlen
integer, optional, intent(out) :: ierror
end subroutine MPI_Error_string_f08
end interface MPI_Error_string
#if OMPI_PROFILE_FILE_INTERFACE
interface MPI_File_call_errhandler
subroutine MPI_File_call_errhandler_f08(fh,errorcode,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_call_errhandler_f08")
use :: mpi_f08_types, only : MPI_File
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER, INTENT(IN) :: errorcode
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_call_errhandler_f08
end interface MPI_File_call_errhandler
interface MPI_File_create_errhandler
subroutine MPI_File_create_errhandler_f08(file_errhandler_fn,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_create_errhandler_f08")
use :: mpi_f08_types, only : MPI_Errhandler
use :: mpi_f08_interfaces_callbacks, only : MPI_File_errhandler_function
implicit none
OMPI_PROCEDURE(MPI_File_errhandler_function) :: file_errhandler_fn
TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_create_errhandler_f08
end interface MPI_File_create_errhandler
interface MPI_File_get_errhandler
subroutine MPI_File_get_errhandler_f08(file,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_errhandler_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Errhandler
implicit none
TYPE(MPI_File), INTENT(IN) :: file
TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_errhandler_f08
end interface MPI_File_get_errhandler
interface MPI_File_set_errhandler
subroutine MPI_File_set_errhandler_f08(file,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_set_errhandler_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Errhandler
implicit none
TYPE(MPI_File), INTENT(IN) :: file
TYPE(MPI_Errhandler), INTENT(IN) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_set_errhandler_f08
end interface MPI_File_set_errhandler
#endif ! OMPI_PROFILE_FILE_INTERFACE
interface MPI_Finalize
subroutine MPI_Finalize_f08(ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Finalize_f08")
implicit none
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Finalize_f08
end interface MPI_Finalize
interface MPI_Finalized
subroutine MPI_Finalized_f08(flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Finalized_f08")
implicit none
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Finalized_f08
end interface MPI_Finalized
! ASYNCHRONOUS had to removed from the base argument because
! the dummy argument is not an assumed-shape array. This will
! be okay once the Interop TR is implemented.
!
interface MPI_Free_mem
subroutine MPI_Free_mem_f08(base,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Free_mem_f08")
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: base
!$PRAGMA IGNORE_TKR base
!DIR$ IGNORE_TKR base
!IBM* IGNORE_TKR base
! INTEGER(MPI_ADDRESS_KIND), DIMENSION(*) OMPI_ASYNCHRONOUS :: base
INTEGER(MPI_ADDRESS_KIND), DIMENSION(*) :: base
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Free_mem_f08
end interface MPI_Free_mem
interface MPI_Get_processor_name
subroutine MPI_Get_processor_name_f08(name,resultlen,ierror)
use :: mpi_f08_types, only : MPI_MAX_PROCESSOR_NAME
implicit none
character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name
integer, intent(out) :: resultlen
integer, optional, intent(out) :: ierror
end subroutine MPI_Get_processor_name_f08
end interface MPI_Get_processor_name
interface MPI_Get_version
subroutine MPI_Get_version_f08(version,subversion,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Get_version_f08")
implicit none
INTEGER, INTENT(OUT) :: version, subversion
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Get_version_f08
end interface MPI_Get_version
interface MPI_Init
subroutine MPI_Init_f08(ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Init_f08")
implicit none
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Init_f08
end interface MPI_Init
interface MPI_Initialized
subroutine MPI_Initialized_f08(flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Initialized_f08")
implicit none
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Initialized_f08
end interface MPI_Initialized
interface MPI_Win_call_errhandler
subroutine MPI_Win_call_errhandler_f08(win,errorcode,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_call_errhandler_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, INTENT(IN) :: errorcode
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_call_errhandler_f08
end interface MPI_Win_call_errhandler
interface MPI_Win_create_errhandler
subroutine MPI_Win_create_errhandler_f08(win_errhandler_fn,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_create_errhandler_f08")
use :: mpi_f08_types, only : MPI_Errhandler
use :: mpi_f08_interfaces_callbacks, only : MPI_Win_errhandler_function
implicit none
OMPI_PROCEDURE(MPI_Win_errhandler_function) :: win_errhandler_fn
TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_create_errhandler_f08
end interface MPI_Win_create_errhandler
interface MPI_Win_get_errhandler
subroutine MPI_Win_get_errhandler_f08(win,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_get_errhandler_f08")
use :: mpi_f08_types, only : MPI_Win, MPI_Errhandler
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Errhandler), INTENT(OUT) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_get_errhandler_f08
end interface MPI_Win_get_errhandler
interface MPI_Win_set_errhandler
subroutine MPI_Win_set_errhandler_f08(win,errhandler,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_set_errhandler_f08")
use :: mpi_f08_types, only : MPI_Win, MPI_Errhandler
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Errhandler), INTENT(IN) :: errhandler
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_set_errhandler_f08
end interface MPI_Win_set_errhandler
interface MPI_Info_create
subroutine MPI_Info_create_f08(info,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Info_create_f08")
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(OUT) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_create_f08
end interface MPI_Info_create
interface MPI_Info_delete
subroutine MPI_Info_delete_f08(info,key,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=*), INTENT(IN) :: key
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_delete_f08
end interface MPI_Info_delete
interface MPI_Info_dup
subroutine MPI_Info_dup_f08(info,newinfo,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Info_dup_f08")
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Info), INTENT(OUT) :: newinfo
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_dup_f08
end interface MPI_Info_dup
interface MPI_Info_free
subroutine MPI_Info_free_f08(info,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Info_free_f08")
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(INOUT) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_free_f08
end interface MPI_Info_free
interface MPI_Info_get
subroutine MPI_Info_get_f08(info,key,valuelen,value,flag,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=*), INTENT(IN) :: key
INTEGER, INTENT(IN) :: valuelen
CHARACTER(LEN=valuelen), INTENT(OUT) :: value
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_get_f08
end interface MPI_Info_get
interface MPI_Info_get_nkeys
subroutine MPI_Info_get_nkeys_f08(info,nkeys,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Info_get_nkeys_f08")
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, INTENT(OUT) :: nkeys
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_get_nkeys_f08
end interface MPI_Info_get_nkeys
interface MPI_Info_get_nthkey
subroutine MPI_Info_get_nthkey_f08(info,n,key,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, INTENT(IN) :: n
CHARACTER(lEN=*), INTENT(OUT) :: key
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_get_nthkey_f08
end interface MPI_Info_get_nthkey
interface MPI_Info_get_valuelen
subroutine MPI_Info_get_valuelen_f08(info,key,valuelen,flag,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=*), INTENT(IN) :: key
INTEGER, INTENT(OUT) :: valuelen
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_get_valuelen_f08
end interface MPI_Info_get_valuelen
interface MPI_Info_set
subroutine MPI_Info_set_f08(info,key,value,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=*), INTENT(IN) :: key, value
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Info_set_f08
end interface MPI_Info_set
interface MPI_Close_port
subroutine MPI_Close_port_f08(port_name,ierror)
implicit none
CHARACTER(LEN=*), INTENT(IN) :: port_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Close_port_f08
end interface MPI_Close_port
interface MPI_Comm_accept
subroutine MPI_Comm_accept_f08(port_name,info,root,comm,newcomm,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm
implicit none
CHARACTER(LEN=*), INTENT(IN) :: port_name
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, INTENT(IN) :: root
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_accept_f08
end interface MPI_Comm_accept
interface MPI_Comm_connect
subroutine MPI_Comm_connect_f08(port_name,info,root,comm,newcomm,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm
implicit none
CHARACTER(LEN=*), INTENT(IN) :: port_name
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, INTENT(IN) :: root
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_connect_f08
end interface MPI_Comm_connect
interface MPI_Comm_disconnect
subroutine MPI_Comm_disconnect_f08(comm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_disconnect_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(INOUT) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_disconnect_f08
end interface MPI_Comm_disconnect
interface MPI_Comm_get_parent
subroutine MPI_Comm_get_parent_f08(parent,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_get_parent_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
TYPE(MPI_Comm), INTENT(OUT) :: parent
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_get_parent_f08
end interface MPI_Comm_get_parent
interface MPI_Comm_join
subroutine MPI_Comm_join_f08(fd,intercomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_join_f08")
use :: mpi_f08_types, only : MPI_Comm
implicit none
INTEGER, INTENT(IN) :: fd
TYPE(MPI_Comm), INTENT(OUT) :: intercomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_join_f08
end interface MPI_Comm_join
interface MPI_Comm_spawn
subroutine MPI_Comm_spawn_f08(command,argv,maxprocs,info,root,comm,intercomm, &
array_of_errcodes,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm
implicit none
CHARACTER(LEN=*), INTENT(IN) :: command, argv(*)
INTEGER, INTENT(IN) :: maxprocs, root
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Comm), INTENT(OUT) :: intercomm
INTEGER, INTENT(OUT) :: array_of_errcodes(*)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_spawn_f08
end interface MPI_Comm_spawn
interface MPI_Comm_spawn_multiple
subroutine MPI_Comm_spawn_multiple_f08(count,array_of_commands,array_of_argv,array_of_maxprocs, &
array_of_info,root,comm,intercomm, &
array_of_errcodes,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_Comm
implicit none
INTEGER, INTENT(IN) :: count, array_of_maxprocs(*), root
CHARACTER(LEN=*), INTENT(IN) :: array_of_commands(*), array_of_argv(count,*)
TYPE(MPI_Info), INTENT(IN) :: array_of_info(*)
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Comm), INTENT(OUT) :: intercomm
INTEGER, INTENT(OUT) :: array_of_errcodes(*)
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_spawn_multiple_f08
end interface MPI_Comm_spawn_multiple
interface MPI_Lookup_name
subroutine MPI_Lookup_name_f08(service_name,info,port_name,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_MAX_PORT_NAME
implicit none
CHARACTER(LEN=*), INTENT(IN) :: service_name
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Lookup_name_f08
end interface MPI_Lookup_name
interface MPI_Open_port
subroutine MPI_Open_port_f08(info,port_name,ierror)
use :: mpi_f08_types, only : MPI_Info, MPI_MAX_PORT_NAME
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=MPI_MAX_PORT_NAME), INTENT(OUT) :: port_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Open_port_f08
end interface MPI_Open_port
interface MPI_Publish_name
subroutine MPI_Publish_name_f08(service_name,info,port_name,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
TYPE(MPI_Info), INTENT(IN) :: info
CHARACTER(LEN=*), INTENT(IN) :: service_name, port_name
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Publish_name_f08
end interface MPI_Publish_name
interface MPI_Unpublish_name
subroutine MPI_Unpublish_name_f08(service_name,info,port_name,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
CHARACTER(LEN=*), INTENT(IN) :: service_name, port_name
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Unpublish_name_f08
end interface MPI_Unpublish_name
interface MPI_Accumulate
subroutine MPI_Accumulate_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,op,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Accumulate_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Op, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr
INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
TYPE(MPI_Op), INTENT(IN) :: op
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Accumulate_f08
end interface MPI_Accumulate
interface MPI_Get
subroutine MPI_Get_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Get_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: origin_addr
INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Get_f08
end interface MPI_Get
interface MPI_Put
subroutine MPI_Put_f08(origin_addr,origin_count,origin_datatype,target_rank, &
target_disp,target_count,target_datatype,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Put_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
!$PRAGMA IGNORE_TKR origin_addr
!DIR$ IGNORE_TKR origin_addr
!IBM* IGNORE_TKR origin_addr
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: origin_addr
INTEGER, INTENT(IN) :: origin_count, target_rank, target_count
TYPE(MPI_Datatype), INTENT(IN) :: origin_datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: target_disp
TYPE(MPI_Datatype), INTENT(IN) :: target_datatype
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Put_f08
end interface MPI_Put
interface MPI_Win_complete
subroutine MPI_Win_complete_f08(win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_complete_f08")
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_complete_f08
end interface MPI_Win_complete
interface MPI_Win_create
subroutine MPI_Win_create_f08(base,size,disp_unit,info,comm,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_create_f08")
use :: mpi_f08_types, only : MPI_Info, MPI_Comm, MPI_Win, MPI_ADDRESS_KIND
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: base
!$PRAGMA IGNORE_TKR base
!DIR$ IGNORE_TKR base
!IBM* IGNORE_TKR base
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: base
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: size
INTEGER, INTENT(IN) :: disp_unit
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Win), INTENT(OUT) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_create_f08
end interface MPI_Win_create
interface MPI_Win_fence
subroutine MPI_Win_fence_f08(assert,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_fence_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: assert
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_fence_f08
end interface MPI_Win_fence
interface MPI_Win_free
subroutine MPI_Win_free_f08(win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_free_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(INOUT) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_free_f08
end interface MPI_Win_free
interface MPI_Win_get_group
subroutine MPI_Win_get_group_f08(win,group,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_get_group_f08")
use :: mpi_f08_types, only : MPI_Win, MPI_Group
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Group), INTENT(OUT) :: group
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_get_group_f08
end interface MPI_Win_get_group
interface MPI_Win_lock
subroutine MPI_Win_lock_f08(lock_type,rank,assert,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_lock_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: lock_type, rank, assert
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_lock_f08
end interface MPI_Win_lock
interface MPI_Win_post
subroutine MPI_Win_post_f08(group,assert,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_post_f08")
use :: mpi_f08_types, only : MPI_Group, MPI_Win
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(IN) :: assert
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_post_f08
end interface MPI_Win_post
interface MPI_Win_start
subroutine MPI_Win_start_f08(group,assert,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_start_f08")
use :: mpi_f08_types, only : MPI_Group, MPI_Win
implicit none
TYPE(MPI_Group), INTENT(IN) :: group
INTEGER, INTENT(IN) :: assert
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_start_f08
end interface MPI_Win_start
interface MPI_Win_test
subroutine MPI_Win_test_f08(win,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_test_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_test_f08
end interface MPI_Win_test
interface MPI_Win_unlock
subroutine MPI_Win_unlock_f08(rank,win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_unlock_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
INTEGER, INTENT(IN) :: rank
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_unlock_f08
end interface MPI_Win_unlock
interface MPI_Win_wait
subroutine MPI_Win_wait_f08(win,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Win_wait_f08")
use :: mpi_f08_types, only : MPI_Win
implicit none
TYPE(MPI_Win), INTENT(IN) :: win
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Win_wait_f08
end interface MPI_Win_wait
interface MPI_Grequest_complete
subroutine MPI_Grequest_complete_f08(request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Grequest_complete_f08")
use :: mpi_f08_types, only : MPI_Request
implicit none
TYPE(MPI_Request), INTENT(IN) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Grequest_complete_f08
end interface MPI_Grequest_complete
interface MPI_Grequest_start
subroutine MPI_Grequest_start_f08(query_fn,free_fn,cancel_fn,extra_state,request, &
ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Grequest_start_f08")
use :: mpi_f08_types, only : MPI_Request, MPI_ADDRESS_KIND
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_query_function
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_free_function
use :: mpi_f08_interfaces_callbacks, only : MPI_Grequest_cancel_function
implicit none
OMPI_PROCEDURE(MPI_Grequest_query_function) :: query_fn
OMPI_PROCEDURE(MPI_Grequest_free_function) :: free_fn
OMPI_PROCEDURE(MPI_Grequest_cancel_function) :: cancel_fn
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Grequest_start_f08
end interface MPI_Grequest_start
interface MPI_Init_thread
subroutine MPI_Init_thread_f08(required,provided,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Init_thread_f08")
implicit none
INTEGER, INTENT(IN) :: required
INTEGER, INTENT(OUT) :: provided
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Init_thread_f08
end interface MPI_Init_thread
interface MPI_Is_thread_main
subroutine MPI_Is_thread_main_f08(flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Is_thread_main_f08")
implicit none
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Is_thread_main_f08
end interface MPI_Is_thread_main
interface MPI_Query_thread
subroutine MPI_Query_thread_f08(provided,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Query_thread_f08")
implicit none
INTEGER, INTENT(OUT) :: provided
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Query_thread_f08
end interface MPI_Query_thread
interface MPI_Status_set_cancelled
subroutine MPI_Status_set_cancelled_f08(status,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Status_set_cancelled_f08")
use :: mpi_f08_types, only : MPI_Status
implicit none
TYPE(MPI_Status), INTENT(INOUT) :: status
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Status_set_cancelled_f08
end interface MPI_Status_set_cancelled
interface MPI_Status_set_elements
subroutine MPI_Status_set_elements_f08(status,datatype,count,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Status_set_elements_f08")
use :: mpi_f08_types, only : MPI_Status, MPI_Datatype
implicit none
TYPE(MPI_Status), INTENT(INOUT) :: status
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, INTENT(IN) :: count
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Status_set_elements_f08
end interface MPI_Status_set_elements
#if OMPI_PROFILE_FILE_INTERFACE
interface MPI_File_close
subroutine MPI_File_close_f08(fh,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_close_f08")
use :: mpi_f08_types, only : MPI_File
implicit none
TYPE(MPI_File), INTENT(INOUT) :: fh
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_close_f08
end interface MPI_File_close
interface MPI_File_delete
subroutine MPI_File_delete_f08(filename,info,ierror)
use :: mpi_f08_types, only : MPI_Info
implicit none
CHARACTER(LEN=*), INTENT(IN) :: filename
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_delete_f08
end interface MPI_File_delete
interface MPI_File_get_amode
subroutine MPI_File_get_amode_f08(fh,amode,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_amode_f08")
use :: mpi_f08_types, only : MPI_File
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER, INTENT(OUT) :: amode
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_amode_f08
end interface MPI_File_get_amode
interface MPI_File_get_atomicity
subroutine MPI_File_get_atomicity_f08(fh,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_atomicity_f08")
use :: mpi_f08_types, only : MPI_File
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
LOGICAL, INTENT(OUT) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_atomicity_f08
end interface MPI_File_get_atomicity
interface MPI_File_get_byte_offset
subroutine MPI_File_get_byte_offset_f08(fh,offset,disp,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_byte_offset_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_byte_offset_f08
end interface MPI_File_get_byte_offset
interface MPI_File_get_group
subroutine MPI_File_get_group_f08(fh,group,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_group_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Group
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
TYPE(MPI_Group), INTENT(OUT) :: group
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_group_f08
end interface MPI_File_get_group
interface MPI_File_get_info
subroutine MPI_File_get_info_f08(fh,info_used,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_info_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Info
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
TYPE(MPI_Info), INTENT(OUT) :: info_used
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_info_f08
end interface MPI_File_get_info
interface MPI_File_get_position
subroutine MPI_File_get_position_f08(fh,offset,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_position_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_position_f08
end interface MPI_File_get_position
interface MPI_File_get_position_shared
subroutine MPI_File_get_position_shared_f08(fh,offset,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_position_shared_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: offset
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_position_shared_f08
end interface MPI_File_get_position_shared
interface MPI_File_get_size
subroutine MPI_File_get_size_f08(fh,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_size_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_size_f08
end interface MPI_File_get_size
interface MPI_File_get_type_extent
subroutine MPI_File_get_type_extent_f08(fh,datatype,extent,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_get_type_extent_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_ADDRESS_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER(MPI_ADDRESS_KIND), INTENT(OUT) :: extent
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_type_extent_f08
end interface MPI_File_get_type_extent
interface MPI_File_get_view
subroutine MPI_File_get_view_f08(fh,disp,etype,filetype,datarep,ierror)
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(OUT) :: disp
TYPE(MPI_Datatype), INTENT(OUT) :: etype
TYPE(MPI_Datatype), INTENT(OUT) :: filetype
CHARACTER(LEN=*), INTENT(OUT) :: datarep
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_get_view_f08
end interface MPI_File_get_view
interface MPI_File_iread
subroutine MPI_File_iread_f08(fh,buf,count,datatype,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_iread_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_iread_f08
end interface MPI_File_iread
interface MPI_File_iread_at
subroutine MPI_File_iread_at_f08(fh,offset,buf,count,datatype,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_iread_at_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_iread_at_f08
end interface MPI_File_iread_at
interface MPI_File_iread_shared
subroutine MPI_File_iread_shared_f08(fh,buf,count,datatype,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_iread_shared_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_iread_shared_f08
end interface MPI_File_iread_shared
interface MPI_File_iwrite
subroutine MPI_File_iwrite_f08(fh,buf,count,datatype,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_iwrite_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_iwrite_f08
end interface MPI_File_iwrite
interface MPI_File_iwrite_at
subroutine MPI_File_iwrite_at_f08(fh,offset,buf,count,datatype,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_iwrite_at_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_iwrite_at_f08
end interface MPI_File_iwrite_at
interface MPI_File_iwrite_shared
subroutine MPI_File_iwrite_shared_f08(fh,buf,count,datatype,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_iwrite_shared_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_iwrite_shared_f08
end interface MPI_File_iwrite_shared
interface MPI_File_open
subroutine MPI_File_open_f08(comm,filename,amode,info,fh,ierror)
use :: mpi_f08_types, only : MPI_Comm, MPI_Info, MPI_File
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: amode
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_File), INTENT(OUT) :: fh
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_open_f08
end interface MPI_File_open
interface MPI_File_preallocate
subroutine MPI_File_preallocate_f08(fh,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_preallocate_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_preallocate_f08
end interface MPI_File_preallocate
interface MPI_File_read
subroutine MPI_File_read_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_f08
end interface MPI_File_read
interface MPI_File_read_all
subroutine MPI_File_read_all_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_all_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_all_f08
end interface MPI_File_read_all
interface MPI_File_read_all_begin
subroutine MPI_File_read_all_begin_f08(fh,buf,count,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_all_begin_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_all_begin_f08
end interface MPI_File_read_all_begin
interface MPI_File_read_all_end
subroutine MPI_File_read_all_end_f08(fh,buf,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_all_end_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_all_end_f08
end interface MPI_File_read_all_end
interface MPI_File_read_at
subroutine MPI_File_read_at_f08(fh,offset,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_at_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_at_f08
end interface MPI_File_read_at
interface MPI_File_read_at_all
subroutine MPI_File_read_at_all_f08(fh,offset,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_at_all_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_at_all_f08
end interface MPI_File_read_at_all
interface MPI_File_read_at_all_begin
subroutine MPI_File_read_at_all_begin_f08(fh,offset,buf,count,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_at_all_begin_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_at_all_begin_f08
end interface MPI_File_read_at_all_begin
interface MPI_File_read_at_all_end
subroutine MPI_File_read_at_all_end_f08(fh,buf,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_at_all_end_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_at_all_end_f08
end interface MPI_File_read_at_all_end
interface MPI_File_read_ordered
subroutine MPI_File_read_ordered_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_ordered_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_ordered_f08
end interface MPI_File_read_ordered
interface MPI_File_read_ordered_begin
subroutine MPI_File_read_ordered_begin_f08(fh,buf,count,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_ordered_begin_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_ordered_begin_f08
end interface MPI_File_read_ordered_begin
interface MPI_File_read_ordered_end
subroutine MPI_File_read_ordered_end_f08(fh,buf,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_ordered_end_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_ordered_end_f08
end interface MPI_File_read_ordered_end
interface MPI_File_read_shared
subroutine MPI_File_read_shared_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_read_shared_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_read_shared_f08
end interface MPI_File_read_shared
interface MPI_File_seek
subroutine MPI_File_seek_f08(fh,offset,whence,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_seek_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
INTEGER, INTENT(IN) :: whence
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_seek_f08
end interface MPI_File_seek
interface MPI_File_seek_shared
subroutine MPI_File_seek_shared_f08(fh,offset,whence,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_seek_shared_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
INTEGER, INTENT(IN) :: whence
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_seek_shared_f08
end interface MPI_File_seek_shared
interface MPI_File_set_atomicity
subroutine MPI_File_set_atomicity_f08(fh,flag,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_set_atomicity_f08")
use :: mpi_f08_types, only : MPI_File
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
LOGICAL, INTENT(IN) :: flag
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_set_atomicity_f08
end interface MPI_File_set_atomicity
interface MPI_File_set_info
subroutine MPI_File_set_info_f08(fh,info,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_set_info_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Info
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_set_info_f08
end interface MPI_File_set_info
interface MPI_File_set_size
subroutine MPI_File_set_size_f08(fh,size,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_set_size_f08")
use :: mpi_f08_types, only : MPI_File, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: size
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_set_size_f08
end interface MPI_File_set_size
interface MPI_File_set_view
subroutine MPI_File_set_view_f08(fh,disp,etype,filetype,datarep,info,ierror)
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Info, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: disp
TYPE(MPI_Datatype), INTENT(IN) :: etype
TYPE(MPI_Datatype), INTENT(IN) :: filetype
CHARACTER(LEN=*), INTENT(IN) :: datarep
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_set_view_f08
end interface MPI_File_set_view
interface MPI_File_sync
subroutine MPI_File_sync_f08(fh,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_sync_f08")
use :: mpi_f08_types, only : MPI_File
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_sync_f08
end interface MPI_File_sync
interface MPI_File_write
subroutine MPI_File_write_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_f08
end interface MPI_File_write
interface MPI_File_write_all
subroutine MPI_File_write_all_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_all_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_all_f08
end interface MPI_File_write_all
interface MPI_File_write_all_begin
subroutine MPI_File_write_all_begin_f08(fh,buf,count,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_all_begin_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_all_begin_f08
end interface MPI_File_write_all_begin
interface MPI_File_write_all_end
subroutine MPI_File_write_all_end_f08(fh,buf,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_all_end_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_all_end_f08
end interface MPI_File_write_all_end
interface MPI_File_write_at
subroutine MPI_File_write_at_f08(fh,offset,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_at_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_at_f08
end interface MPI_File_write_at
interface MPI_File_write_at_all
subroutine MPI_File_write_at_all_f08(fh,offset,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_at_all_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_at_all_f08
end interface MPI_File_write_at_all
interface MPI_File_write_at_all_begin
subroutine MPI_File_write_at_all_begin_f08(fh,offset,buf,count,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_at_all_begin_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_OFFSET_KIND
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
INTEGER(MPI_OFFSET_KIND), INTENT(IN) :: offset
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_at_all_begin_f08
end interface MPI_File_write_at_all_begin
interface MPI_File_write_at_all_end
subroutine MPI_File_write_at_all_end_f08(fh,buf,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_at_all_end_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_at_all_end_f08
end interface MPI_File_write_at_all_end
interface MPI_File_write_ordered
subroutine MPI_File_write_ordered_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_ordered_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_ordered_f08
end interface MPI_File_write_ordered
interface MPI_File_write_ordered_begin
subroutine MPI_File_write_ordered_begin_f08(fh,buf,count,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_ordered_begin_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_ordered_begin_f08
end interface MPI_File_write_ordered_begin
interface MPI_File_write_ordered_end
subroutine MPI_File_write_ordered_end_f08(fh,buf,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_ordered_end_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) OMPI_ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_ordered_end_f08
end interface MPI_File_write_ordered_end
interface MPI_File_write_shared
subroutine MPI_File_write_shared_f08(fh,buf,count,datatype,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_File_write_shared_f08")
use :: mpi_f08_types, only : MPI_File, MPI_Datatype, MPI_Status
implicit none
TYPE(MPI_File), INTENT(IN) :: fh
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_File_write_shared_f08
end interface MPI_File_write_shared
#endif ! OMPI_PROFILE_FILE_INTERFACE
interface MPI_Register_datarep
subroutine MPI_Register_datarep_f08(datarep,read_conversion_fn,write_conversion_fn, &
dtype_file_extent_fn,extra_state,ierror)
use :: mpi_f08_types, only : MPI_ADDRESS_KIND
use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_conversion_function
use :: mpi_f08_interfaces_callbacks, only : MPI_Datarep_extent_function
implicit none
CHARACTER(LEN=*), INTENT(IN) :: datarep
OMPI_PROCEDURE(MPI_Datarep_conversion_function) :: read_conversion_fn
OMPI_PROCEDURE(MPI_Datarep_conversion_function) :: write_conversion_fn
OMPI_PROCEDURE(MPI_Datarep_extent_function) :: dtype_file_extent_fn
INTEGER(MPI_ADDRESS_KIND), INTENT(IN) :: extra_state
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Register_datarep_f08
end interface MPI_Register_datarep
!
! MPI_Sizeof is generic for numeric types. This ignore TKR interface
! is replaced by the specific generics. Implemented in mpi_sizeof_mod.F90.
!
!subroutine MPI_Sizeof(x,size,ierror &
! ) OMPI_F08_INTERFACE_BIND_C("MPI_Sizeof_f08")
! use :: mpi_f08_types
! implicit none
! !DEC$ ATTRIBUTES NO_ARG_CHECK :: x
! !$PRAGMA IGNORE_TKR x
! !DIR$ IGNORE_TKR x
! !IBM* IGNORE_TKR x
! OMPI_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: x
! INTEGER, INTENT(OUT) :: size
! INTEGER, OPTIONAL, INTENT(OUT) :: ierror
!end subroutine MPI_Sizeof
interface MPI_Type_create_f90_complex
subroutine MPI_Type_create_f90_complex_f08(p,r,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_f90_complex_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: p, r
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_f90_complex_f08
end interface MPI_Type_create_f90_complex
interface MPI_Type_create_f90_integer
subroutine MPI_Type_create_f90_integer_f08(r,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_f90_integer_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: r
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_f90_integer_f08
end interface MPI_Type_create_f90_integer
interface MPI_Type_create_f90_real
subroutine MPI_Type_create_f90_real_f08(p,r,newtype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_create_f90_real_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: p, r
TYPE(MPI_Datatype), INTENT(OUT) :: newtype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_create_f90_real_f08
end interface MPI_Type_create_f90_real
interface MPI_Type_match_size
subroutine MPI_Type_match_size_f08(typeclass,size,datatype,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Type_match_size_f08")
use :: mpi_f08_types, only : MPI_Datatype
implicit none
INTEGER, INTENT(IN) :: typeclass, size
TYPE(MPI_Datatype), INTENT(OUT) :: datatype
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Type_match_size_f08
end interface MPI_Type_match_size
interface MPI_Pcontrol
subroutine MPI_Pcontrol_f08(level &
) OMPI_F08_INTERFACE_BIND_C("MPI_Pcontrol_f08")
implicit none
INTEGER, INTENT(IN) :: level
end subroutine MPI_Pcontrol_f08
end interface MPI_Pcontrol
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! New routines to MPI-3
!
interface MPI_Comm_split_type
subroutine MPI_Comm_split_type_f08(comm,split_type,key,info,newcomm,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Comm_split_type_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Info
implicit none
TYPE(MPI_Comm), INTENT(IN) :: comm
INTEGER, INTENT(IN) :: split_type
INTEGER, INTENT(IN) :: key
TYPE(MPI_Info), INTENT(IN) :: info
TYPE(MPI_Comm), INTENT(OUT) :: newcomm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Comm_split_type_f08
end interface MPI_Comm_split_type
interface MPI_Get_library_version
subroutine MPI_Get_library_version_f08(name,resultlen,ierror)
use :: mpi_f08_types, only : MPI_MAX_PROCESSOR_NAME
implicit none
character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name
integer, intent(out) :: resultlen
integer, optional, intent(out) :: ierror
end subroutine MPI_Get_library_version_f08
end interface MPI_Get_library_version
interface MPI_Mprobe
subroutine MPI_Mprobe_f08(source,tag,comm,message,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Mprobe_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Message, MPI_Status
implicit none
INTEGER, INTENT(IN) :: source, tag
TYPE(MPI_Comm), INTENT(IN) :: comm
TYPE(MPI_Message), INTENT(OUT) :: message
TYPE(MPI_Status), INTENT(OUT) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Mprobe_f08
end interface MPI_Mprobe
interface MPI_Improbe
subroutine MPI_Improbe_f08(source,tag,comm,flag,message,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Improbe_f08")
use :: mpi_f08_types, only : MPI_Comm, MPI_Message, MPI_Status
implicit none
INTEGER, INTENT(IN) :: source, tag
TYPE(MPI_Comm), INTENT(IN) :: comm
LOGICAL, INTENT(OUT) :: flag
TYPE(MPI_Message), INTENT(OUT) :: message
TYPE(MPI_Status), INTENT(OUT) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Improbe_f08
end interface MPI_Improbe
interface MPI_Imrecv
subroutine MPI_Imrecv_f08(buf,count,datatype,message,request,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Imrecv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Request
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE OMPI_ASYNCHRONOUS :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Message), INTENT(INOUT) :: message
TYPE(MPI_Request), INTENT(OUT) :: request
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Imrecv_f08
end interface MPI_Imrecv
interface MPI_Mrecv
subroutine MPI_Mrecv_f08(buf,count,datatype,message,status,ierror &
) OMPI_F08_INTERFACE_BIND_C("MPI_Mrecv_f08")
use :: mpi_f08_types, only : MPI_Datatype, MPI_Message, MPI_Status
implicit none
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf
!IBM* IGNORE_TKR buf
OMPI_FORTRAN_IGNORE_TKR_TYPE :: buf
INTEGER, INTENT(IN) :: count
TYPE(MPI_Datatype), INTENT(IN) :: datatype
TYPE(MPI_Message), INTENT(INOUT) :: message
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
end subroutine MPI_Mrecv_f08
end interface MPI_Mrecv
end module mpi_f08_interfaces