IDL_PATH problems [message #68647] |
Mon, 09 November 2009 07:51  |
Bernhard Reinhardt
Messages: 26 Registered: October 2008
|
Junior Member |
|
|
Hi everyone,
I just came across a weird problem: I normally use the idlde but now I
want to run a program on the console.
I ran the program but encountered an error when IDL couldn't locate one
of David's routines "undefine" which resides in my library-folder. I
found out that the IDL_PATH was not set.
So I set the IDL_PATH accordingly.
My IDL_PATH now looks like
IDL_PATH=+/athome/rein_be/IDLWorkspace:+/athome/rein_be/CIMa ster
When I run my program now, it doesn't even compile:
IDL> object_based_validation_batch
li=READ_ASCII(li_file, TEMPLATE=templ)
^
% Syntax error.
When running
IDL> templ
idl restores a templ.sav that resides somewhere in the IDL-Path. So I
moved this templ.sav to templ.sav.bak
now
IDL> templ
yields
% Attempt to call undefined procedure/function: 'TEMPL'.
% Execution halted at: $MAIN$
But the same compilation error occurs.
Any ideas where to search? Btw: I'm using idl 7.1 on Linux.
Regards,
Bernhard
|
|
|
Re: IDL_PATH [message #70297 is a reply to message #68647] |
Wed, 31 March 2010 09:03  |
Michael Galloy
Messages: 1114 Registered: April 2006
|
Senior Member |
|
|
On 3/31/10 3:11 AM, bing999 wrote:
> I am having trouble with my IDL_PATH defined in my .bashrc.
>
> Here is how it is defined:
>
> IDL_PATH="+${my_path}/idl/:+/home/jim/lib/IDL/:<IDL_DEFAULT >+/home/bob/
> routines/:"
>
> export IDL_PATH
>
> Then it points to 3 directories ( my IDL, jim's IDL and bob
> routines'). Note that "my path" is correctly defined before because
> wherever i am, i can call routines stored here.
> The thing is that when i add a new routine in ${my_path}/idl/ and i
> want to call it from another directory, i get the message: "Attempt to
> call undefined procedure/function" whereas it is well located in
> {my_path}/idl/....
>
> Does anyone know what goes wrong?
> Thanks.
I see a couple things. First, you are missing a ":" after
"<IDL_DEFAULT>", but that shouldn't affect finding routines in $my_path/idl.
Check out the help for PATH_CACHE. IDL builds a cache of the .pro files
in the directories in the !path. If you slip a new file in later, you
have to manually compile it with something like:
IDL> .compile my_path/idl/my_routine
or rebuild the cache with:
IDL> path_cache, /rebuild
I usually just restart IDL.
Mike
--
www.michaelgalloy.com
Research Mathematician
Tech-X Corporation
|
|
|