[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MAKE_ARRAY question
- Subject: Re: MAKE_ARRAY question
- From: Paul van Delst <paul.vandelst(at)noaa.gov>
- Date: Fri, 13 Apr 2001 13:26:00 -0400
- Newsgroups: comp.lang.idl-pvwave
- Organization: CIMSS @ NOAA/NCEP
- References: <3AD72633.79CA361D@noaa.gov>
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:24548
Paul van Delst wrote:
>
> Hi there,
>
> I want to create an array that by default should be FLOAT but can be specified as DOUBLE
> by the user as a keyword input to a function. Instead of the following:
>
> FUNCTION my_func, n_pts, double = double
>
> IF ( KEYWORD_SET( double ) ) THEN $
> x = MAKE_ARRAY( n_pts, /DOUBLE, /NOZERO ) $
> ELSE $
> x = MAKE_ARRAY( n_pts, /FLOAT, /NOZERO )
>
> .....
>
> END
>
> can I rely on the fact that NO type keywords to MAKE_ARRAY means default FLOAT? I.e. :
>
> FUNCTION my_func, n_pts, double = double
>
> x = MAKE_ARRAY( n_pts, DOUBLE = double, /NOZERO )
>
> .....
>
> END
>
> The MAKE_ARRAY documentation does not specifically state that the default array created is
> a FLOAT. Does anyone know if this *is* documented anywhere so I'm not setting my function
> up (which I use *a lot*) to fall in a heap when IDL 5.5+ is released and RSI happened to
> decide a default LONG would be better?
>
> Or is there some other natty way to do this?
One could also do:
x = MAKE_ARRAY( n_pts, VALUE = 0.0, DOUBLE = double )
i.e value = float if double is not set, but I want to avoid the value assignation. The
array can be quite large (many millions of points x 2) hence the /NOZERO. The performance
hit of using the VALUE keyword is noticeable (the /NOZERO has no effect if VALUE is used).
paulv
--
Paul van Delst A little learning is a dangerous thing;
CIMSS @ NOAA/NCEP Drink deep, or taste not the Pierian spring;
Ph: (301)763-8000 x7274 There shallow draughts intoxicate the brain,
Fax:(301)763-8545 And drinking largely sobers us again.
paul.vandelst@noaa.gov Alexander Pope.