[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ROUTINE_NAMES and other magic
- Subject: Re: ROUTINE_NAMES and other magic
- From: "R.Bauer" <R.Bauer(at)fz-juelich.de>
- Date: Tue, 18 Apr 2000 18:17:18 +0200
- Newsgroups: comp.lang.idl-pvwave
- Organization: Forschungszentrum Juelich GmbH
- References: <on3dokl8a2.fsf@cow.physics.wisc.edu>
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:19338
Craig Markwardt wrote:
> One thing that ROUTINE_NAMES() (**note) cannot do is *add* variables
> to another level. If the variable exists, then you can muck as much
> as you want with it, but if it doesn't exist, sorry.
>
> Oh, another funny thing. Try this recursive procedure:
>
> PRO DEEPSTOP, level
> if level EQ 2 then stop
> deepstop, level + 1
> END
>
> and then run it with
>
> deepstop, 1
>
> % Stop encountered: DEEPSTOP 2 /dev/tty
> IDL> help
> % At DEEPSTOP 2 /dev/tty
> % DEEPSTOP 3 /dev/tty
> % $MAIN$
> LEVEL INT = 2
> Compiled Procedures:
> $MAIN$ DEEPSTOP
> Compiled Functions:
>
> Okay, this is fine. We've stopped two recursive levels down. But
> then if we try to set a variable like this:
>
> IDL> a = 1
>
> a = 1
> ^
> % Unable to add local variable to recursively active program unit: DEEPSTOP
>
>
Dear Craig,
I have no problems.
help,!version,/str
** Structure !VERSION, 5 tags, length=40:
ARCH STRING 'x86'
OS STRING 'Win32'
OS_FAMILY STRING 'Windows'
RELEASE STRING '5.3.1'
BUILD_DATE STRING 'Feb 23 2000'
deepstop,1
IDL> help
% At DEEPSTOP 2 C:\home\icg105\idl\20000418\deepstop.pro
% DEEPSTOP 3 C:\home\icg105\idl\20000418\deepstop.pro
% $MAIN$
A INT = 1
LEVEL INT = 2
Compiled Procedures:
$MAIN$ DEEPSTOP
Compiled Functions:
IDL> help,a
A INT = 1
R.Bauer