Fortran/VMS included into IDL/Call_external... [message #7014] |
Fri, 13 September 1996 00:00 |
alpha
Messages: 49 Registered: September 1996
|
Member |
|
|
Hallo,
wir sind in der Arbeitsgruppe dabei, median filter zu programmieren,
die leider unter IDL unertraeglich langsam sind. Unter Fortran
haben wir eine schelle Routine...
- Einbinden von Fortran in IDL (via Call_external):
1. Call_external bindet FUNCTIONs ein, die Uebergabe des Ergebnisses
funktioniert aber nicht richtig. Loesung: Fuer das normale Ergebnis
der FUNCTION wird ein Dummy verwendet, das eigentliche Ergebnis
wird in der Eingabe-Parameterliste uebergeben. Dies ist besonders
einfach, wenn eigentlich keine FUNCTION, sondern eine SUBROUTINE
aufgerufen werden soll. Der Aufruf wird von SUBROUTINE auf FUNCTION
geandert, das Dummy-Ergebnis wird gesetzt, die Routine bleibt
ansonsten unveraendert.
2. Kompilieren, am VMS-Prompt: FOR filename
3. Linken, am VMS-Prompt:
a) Es muss eine LINK-Option uebergeben werden,
z.B. in einem .opt-file:
.opt-filename: z.B. opt.opt
.opt-fileinhalt: symbol_vector=(functionname=procedure)
b) LINK-Aufruf, am VMS-Prompt:
LINK /share filename, opt.opt/opt /exe=.exe-filename
4. Logical anlegen, am VMS-Prompt: DEFINE logicalname pfad/.exe-filename
Der Pfad muss vollstaendig, mit Plattenname angegeben werden, der
.exe-filename muss ebenfalls vollstaendig mit Extension angegeben
werden (alternativ sollte besser die DEFAULT-Option beim Call_external
Aufruf eingesetzt werden.).
5. Routine in IDL aufrufen: IDL starten, alle Eingabeparameter
definieren, auch die Ergebnisvariabele muss definiert werden, sie
befindet sich ja in der Eingabeparameterliste. Aufruf, am IDL-Prompt:
dummy=call_external('logicalname','functionname',$
eingabeparameterliste)
oder ohne Logical:
dummy=call_external(' ','functionname',$
eingabeparameterliste,default='pfad/.exe-filename')
Der leere String ' ' muss uebergeben werden, damit die Anzahl der
Parameter stimmt. Hinter DEFAULT muss der vollstaendige Pfad, mit
Plattenname und der Name des .exe-files mit Extension angegeben
werden.
Irgendwelche Tips oder Verbesserungen hierzu?
Panther
--
Panther in the Jungle __..--''``\--....___ _..,_
-BELIEVE AND DECEIVE- _.-' .-/"; ` ``<._ ``-+'~=.
http://www.ang-physik _.-' _..--.'_ \ `(^) )
.uni-kiel.de/~hendrik ((..-' (< _ ;_..__ ; `'
|
|
|