I could convince our SX Fortran guys to implement a VOID attribute
which disables the
type checking for the argument; cf.
Subroutine MPI_Sendrecv( &
sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, &
comm, status, ierror)
use MPI_Constants,only: MPI_STATUS_SIZE
!
VOID :: recvbuf, sendbuf
Intent (In) :: sendbuf
Intent (InOut) :: recvbuf
Integer, Intent (In) :: sendcount, sendtype, sendtag
Integer, Intent (In) :: recvcount, recvtype, recvtag
Integer, Intent (In) :: dest, source, comm
Integer, Intent (Out) :: status (MPI_STATUS_SIZE)
Integer, Intent (Out) :: ierror
End Subroutine MPI_Sendrecv
Possibly, other vendors can convince their compiler guys so that
this may become
a common Fortran 90 extension. This would help also other Fortran
communication libraries even if they don't use a C interface.
Hubert
Cownie, James H wrote:
It may not help since there are few (no ?) compilers available for
it,
but a Fortran 2003 binding might make these issues easier. You really
need a Fortran guru...
-- Jim
James Cownie <james.h.cownie@xxxxxxxxx>
SSG/DPD/PAT
Tel: +44 117 9071438
-----Original Message-----
From: owner-mpi-21@xxxxxxxxxxxxx [mailto:owner-mpi-21@xxxxxxxxxxxxx]
On
Behalf Of Jeff Squyres
Sent: 07 December 2007 13:24
To: mpi-21@xxxxxxxxxxxxx
Subject: [mpi-21] F90 bindings
The F90 bindings specified in MPI-2 currently require nearly 7
million
interface functions in the Fortran 90 module (!). This large number
of interfaces is required because F90 is a strongly-typed language
and
has no analogue of (void*). MPI_SEND, for example, has to be
overloaded with function signatures for every possible type of
choice
buffer. Worse, many collectives have *2* choice buffers... the end
result is that nearly 7M interfaces are needed. As result, many MPI
implementations implement only a fraction of the MPI F90 module
interface functions.
Additionally, user-defined F90 types cannot be supported.
This is clearly a [big] bug in the F90 bindings. What does the
Forum
want to do about this for MPI-2.1? Perhaps add some clarification
language? Or ...?
Can this issue be added to the discussion list for the bindings
subcommittee?
--
Jeff Squyres
Cisco Systems
---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.