Fortran90
Problems with Fortran90:
strong typing without an equivalent of
(void *)
, e.g.:
mpi_send(x, 1, MPI_REAL, ...)
mpi_send(i, 1, MPI_INTEGER, ...)
access to sections as array arguments
mpi_irecv(a(1:100:2), MPI_REAL, 50, ...)
Fortran:
may create a copy of the section
contains 50 contiguous elements
deallocated immediately after the call
MPI:
stores address of the section
tries later to copy 50 contiguous elements
Supplements:
standard defines "basic" and "extended" Fortran support
basic: mpif.h has to work with fixed and free source form
extended:
modul mpi with constants and function declarations,
optional: interfaces for all routines, possibly with INTENT
support for types with KIND parameter
MPI_Type_create_f90_real(p, r, newtype)
creates MPI datatype for
selected_real_kind(p, r)
newtype
is neither submitted nor freed
similar functions for complex, integer
Peter Junglas 16.2.1999