確か配列変数を使うには、プログラムの流れに関係なく、宣言の方が行番号の少ない方に書かないといけないんじゃなかったですかね? 不具合なのか仕様なのかはわかりませんが。