6.3. 配列の動的割付け [90]
ここまでの例では,配列の大きさは予め定まっているか,そうでない場合には十分
大きくとっておくようになっていた。後者では,実際には使われない分までメモリを
占有することになり,無駄である。逆に予定より大きくなることがあると危険を伴う。
これを回避するために,[90]では動的割付けの方法が加えられた。
動的割付け: 配列にALLOCATABLE属性を宣言しておき,あとで実行時に変数を用いて
ALLOCATE文 で大きさを決める。不要になった配列は DEALLOCATE文に
より割付けを解除して,メモリを節約する。
例 INTEGER, DIMENSION(:), ALLOCATABLE :: freq
..........
READ*, limit
ALLOCATE( freq(1:limit) )
..........
DEALLOCATE( freq ) ← 不要になれば解除しておく。
例 REAL, ALLOCATABLE :: x(:), y(:) ← 配列であることを示すため
(:) がいる。