| Re: subsripting array problem [message #16445] |
Tue, 27 July 1999 00:00  |
Liam Gumley
Messages: 473 Registered: November 1994
|
Senior Member |
|
|
Med Bennett wrote:
> I am just wondering why the following does not work correctly:
>
> timeidx = round(traveltime/100.)-1 ;get index of array
> timeidx = timeidx[0]
> if timeidx ge 0 and timeidx le 199 then $
> gwfluxpa[timeidx:*] = gwfluxpa[timeidx:*] + ic*2500.
>
> If I rewrite this code to the following, it works OK:
>
> timeidx = round(traveltime/100.)-1 ;get index of array
> timeidx = timeidx[0]
> if timeidx ge 0 and timeidx le 199 then begin
> junk = fltarr(200)
> junk[timeidx:*] = ic*2500.
> gwfluxpa = gwfluxpa + junk
> endif
I'm guessing the type and/or value of one of your variables is not what
you expect. The HELP procedure can be useful in solving this type of
problem. For example:
help, traveltime & print, traveltime
timeidx = round(traveltime/100.)-1
help, timeidx & print, timeidx
timeidx = timeidx[0]
help, gwfluxpa & print, gwfluxpa
help, ic & print, ic
if timeidx ge 0 and timeidx le 199 then $
gwfluxpa[timeidx:*] = gwfluxpa[timeidx:*] + ic*2500.
Careful examination of the HELP and PRINT output should identify the
problem. I don't recommend coding workarounds *unless* you understand
the problem first.
Cheers,
Liam.
--
Liam E. Gumley
Space Science and Engineering Center, UW-Madison
http://cimss.ssec.wisc.edu/~gumley
|
|
|
|