comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Fortran/VMS included into IDL/Call_external...
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Fortran/VMS included into IDL/Call_external... [message #7014] Fri, 13 September 1996 00:00
alpha is currently offline  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 ((..-' (< _ ;_..__ ; `'
[Message index]
 
Read Message
Previous Topic: Re: Wanted: spherical harmonics to gridpoint
Next Topic: DFPMIN problem

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Oct 09 07:22:32 PDT 2025

Total time taken to generate the page: 0.88317 seconds