Es können nur Subroutines, also keine Function-Unterprogramme,
in S aufgerufen werden.
Es können beliebig viele Subroutines in einer Datei, z.B.
mysub.f gehalten werden.
Diese Unterprogramme werden (unter Unix) mit der -c-Option
kompiliert, so dass man eine Datei, z.B. mysub.o erhält.
R unter Unix
Erforderliche Schritte und Parameter-Übergabe:
R CMD SHLIB ...o , woraus eine "shared object"-Library
(...so) resultiert (z.B. aus R CMD SHLIB mysub.o
resultiert mysub.so
dyn.load("Pfad/...so") nach dem Aufruf von R .
Alle übergebenen Parameter müssen als Argument der
entsprechenden Typ-Funktion übergeben werden: as.integer(...) für
ganzzahlige Variablen (Fortran: INTEGER) as.single(...) für einfach
lange reelle Variablen (Fortran: REAL) as.double(...) für doppelt lange
reelle Variablen (Fortran: DOUBLE PRECISION) as.complex(...) für
complexwertige Variablen (Fortran: COMPLEX) as.character(...) für
Zeichenvariablen (Fortran: CHARACTER)
par1, par2,...,... sind die Parameternamen, wie sie
in der Fortran-Subroutine definiert worden sind.
par1, par2,... müssen zugleich als S-Objekte
par1, par2 bereits vor dem Aufruf definiert sein.
par1, par2,... bleiben durch den Unterprogramm-Aufruf
unverändert.
Ist dem Ergebnis des Unterprogramm-Aufrufs das Objekt O
zugewiesen worden, so ist im Fall der Parameterspezifikation p=par das
Ergebnis in S als O$p erreichbar, im Fall der
Parameterspezifikation par das Ergebnis in S als
O$[[n]] erreichbar