とりあえず落としてみてみましたが、とりあえず一つ言えるのはコメントを書きましょう。 何がどの処理をしているのか全然分かりません。正しく動作していないので何が正しいのかも分からない状態です。 明らかに間違っていることを 配列CAFLAGは[3]と定義されていますが、367行目でCANUMが増えていくため、230行目のFOR文で3以上の範囲のCAFLAGを確認しに行ってエラーになっています。PUSHで配列の大きさを増やしていますが、CANUMの分HEFLAGを確認しに行ったり(LLはCANUM回ループするがHEFLAGも参照している)配列の数と草食、肉食、草の変数が合っていません。 PUSHではなく一旦表示する上限を10にするなどしてキチンとループが回るようにするべきです、!