Re: System Variables & .sav files [message #40300 is a reply to message #40201] |
Tue, 27 July 2004 21:13  |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
David Fanning writes:
>> - When I try to run the macro- it works fine
>> - When I run all these in the command prompt, it works fine
>> - To do a standalone application, I executed all these commands in the
>> command prompt as follows
>>
>> on_error,1
>> .run setup
>> setup
>> .run xmanager
>> .run main
>> resolve_all
>> save,/routines, filename = "filename.sav"
>>
>> When I run the .sav file, I get an error - '!MY_dir is not a legal
>> system variable'
>
> Oh, dear. :-(
>
> I have to admit there are days when after 16+ years
> of working with IDL I think I have seen it all. But
> this setup completely and utterly baffles me. I've never
> seen the like. :-)
>
> As far as I can see the issue is not why this DOESN'T
> run as a stand-alone application, but why it DOES
> run in any other configuration!
After taking a shower and thinking about it a bit
more, I have a theory. :-)
I think what is happening is that only the MAIN
procedure is getting saved, with NO system variables
set. That's where the error comes from.
Try this. Put the SETUP call in the MAIN routine
on the first line after the procedure definition
statement. Something like this"
PRO Main
SETUP
...
END
Then do this in a new IDL session:
IDL> .compile main
IDL> resolve_all
IDL> Save, /Routines, Filename='main.sav'
Exit IDL, and double click "main.sav". Does *that*
work?
Cheers,
David
P.S. Let's just say seeing that ol' XManager call
out there all by his lonesome just gives me the
shivers!!
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
|
|
|