[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to call fortran subroution?
"web" <jiali3@21cn.com> writes:
> Thank you very much. I use IDL under windows.
>
> I have generated vecadd.dll from visual fortran. Then I use
>
> result = call_external('f:\fortran\vecadd.dll','f:\fortran\vecadd ', a,
> n_elements(a), x, n_elements(x), b)
>
> to call the dll. The error message is as following:
>
> % CALL_EXTERNAL: Error loading sharable executable.
> Symbol: f:\fortran\vecadd, File = f:\fortran\vecadd.dll
> ERROR_PROC_NOT_FOUND
> But I have dll file under f:\fortran. How to do then? May be I have set
> wrong parameter.
> This is explanation of call_external:
>
> Result = CALL_EXTERNAL(Image, Entry [, P0, ..., PN-1])
>
> Entry:A string containing the name of the symbol in the library which is the
> entry point of the routine to be called.
>
> I donot know how to set entry.
Here ENTRY may be 'vecadd' or 'VECADD' or 'vecadd_' or 'VECADD_'. The
naming convention depends on your fortran compiler. The important
thing is tha the entry does *not* include the path, only the name of
the function. However, I have to admit it's still not clear to me
that you understand the the calling convention of using CALL_EXTERNAL.
You really need to check the EDG.
Craig
--
--------------------------------------------------------------------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
--------------------------------------------------------------------------