Fortran90
Probleme mit Fortran90:
strenge Typprüfung und kein Äquivalent zum
(void *)
, z.B.:
mpi_send(x, 1, MPI_REAL, ...)
mpi_send(i, 1, MPI_INTEGER, ...)
Zugriff auf Array-Argumente bei Sections
mpi_irecv(a(1:100:2), MPI_REAL, 50, ...)
Fortran:
übergibt (möglicherweise) eine Kopie der Section
enthält 50 aufeinanderfolgende Elemente
nach dem Aufruf nicht mehr vorhanden!
MPI:
merkt sich den Ort der Section
kopiert später 50 aufeinanderfolgende Elemente
Ergänzungen:
Standard unterscheidet zwischen "basic" und "extended" Fortran Support
Basic: mpif.h muß für feste und freie Sourceform funktionieren
Extended:
Modul mpi mit Konstanten und Funktionsdeklarationen,
optional: Interfaces für alle Routinen, ggf. mit INTENT
Unterstützung für Typen mit KIND-Parameter
MPI_Type_create_f90_real(p, r, newtype)
erzeugt MPI-Datentyp zu
selected_real_kind(p, r)
newtype
wird nicht submitted und nicht free'd
analog complex, integer
Peter Junglas 16.2.1999