Fortran 2003 入門

ナビゲーション:前へ   上へ   次へ

3.7 自動再割付け

Fortran 2003では割付け配列全体への代入で、 代入される式が異なる大きさもしくは形状の配列であった場合に、 割付け配列が再割付けされ正しい形状になります(Fortran95ではこのような代入はエラーとなります)。
例:
  ALLOCATE(a(10))
  ...
  a = (/ (i,i=1,100) /)
  ! A is now size 100

同様に、割付け変数が無指定型パラメタ(後のセクションで説明されます) を持つ場合でかつ割付けが行われていないかもしくは式と異なる値を持つ場合には、 割付け変数が再割付けされてその型パラメタと同じ値を持つようになります。 これにより真の可変長文字変数が可能となります。

  CHARACTER(:),ALLOCATABLE :: name
  ...
  name = 'John Smith'
  ! LEN(name) is now 10, whatever it was before.
  name = '?'
  ! LEN(name) is now 1.
割付けオブジェクトの副オブジェクトはそれ自体割付けではないため、この自動再割付け を文字部分列(文字の場合)、あるいは部分配列(配列の場合)を用いて抑止することが できる点に注意ください。
例:
  name(:) = '?'             ! Normal assignment with truncation/padding.
  a(:) = (/ (i,i=1,100) /)  ! Asserts that A is already of size 100.



ナビゲーション:前へ   上へ   次へ
関連情報
ご案内
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks