Re: Loop breaks IDL [message #62100 is a reply to message #62099] |
Fri, 22 August 2008 20:42  |
Jeremy Bailin
Messages: 618 Registered: April 2008
|
Senior Member |
|
|
On Aug 22, 11:23 pm, mbwel...@gmail.com wrote:
> I beginning to feel like I'm inundating this board :)
>
> Is this the best way to do this, I 'm beginning to think not since IDL
> (in windows) starts to use up all my cpu cycles for more than 10
> minutes.
>
> ------------------------------------------------------------ -----------------------------
> ind_e= where (array[1,*] eq 2,count)
> if count eq 0 then tl_small=0 else ext=array[*,ind_e]
> while count gt 0 do begin
> ext_ = where(ext[2,*] lt 2*x1) ; select faults such that L < 2x
> ext_small = ext[*,ext_] ; place in matrice with identifer
> lc_small= ext_small[2,*] ; select only lengths to sum for
> small faults
> tl_small = total(lc_small^3) ; sum lengths according to
> kostrov summation, small faults
> endwhile
> ------------------------------------------------------------ ------------------------------------------------------------ -------------------
>
> Essentially there are 2 divisions, column 2 (with values of 1 or 2)
> and fault size (large or small) of the data.
> In case it's not obvious, the first two lines are saying that if there
> is no data then tl_small = 0. If however, there is data do everything
> below it to get some non 0 value of tl_small.
> It seems like IDL just hangs up on the loop. Maybe this has something
> to do with the embedded where statements?
>
> As always thanks in advance and any help would be appreciated
>
> ~Matt.
The probelm is that it keeps going through the loop over and over
again waiting for count to no longer be greater than zero... but count
never changes within the loop, so "count gt 0" is always true.
-Jeremy.
|
|
|