On Feb 16, 4:46 pm, polystethylene <polystethyl...@hotmail.com> wrote:
> I've run into a strange problem with this:
>
> FOR i=0,nfiles-1 do begin
> infile = string(filefolder)+string(i+1,format='("/",i3.3,".dump")')
> OPENR,lun,infile,/GET_LUN
> rows = FILE_LINES(infile)
> data = fltarr(10,nstar,nfiles)
> framearray = fltarr(10,rows)
> READF,lun,format ='(I2,1x,I2,1x,I2,2x,F0,2x,I0,5F0.3)',framearray
> close,lun
> free_lun,lun
> data[0,0,i] = framearray
> print,i
> print,data[*,*,i]
> ENDFOR
> print,data
> RETURN
> END
>
> I've stuck a print statement within the loop to check that each 2-d
> array is being written to the 3-d array with each pass of the loop,
> and it seemed to be working fine.
> However, when I came to pass the variable 'data' out to another
> procedure, I noticed it was (mainly) full of zeros. A quick print
> statement outside the loop within the above procedure revealed that I
> had zeros throughout the entireity of 'data', except for the final
> value of i.
>
> I.e. there were only values for data[*,*,124], where 124 is the last
> value of the loop index.
>
> Has anyone come across such behaviour before?
Hi Stefan,
you need to stick this line:
data = fltarr(10,nstar,nfiles)
outside your FOR loop, so you don't keep re-defining it (full of
zeroes) at every iteration.
Regards,
Chris
|