• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FORTRANの動的割り当てについて)

FORTRANの動的割り当てについて

このQ&Aのポイント
  • FORTRANでg95でプログラムを作っているが、動的割り当てで理解できない現象が起きた。三次元の動的配列を定義し、外部のファイルから値を読み込ませるが、添字の範囲外の要素に値が表示される。また、doループで特定の値だけを0にしたいが、反映されない。
  • 定義していない範囲の配列要素に値が出力される理由がわからない。doループで特定の値を0にするために条件分岐を使ったが、特定の値だけ反映されない。
  • FORTRANの動的割り当てでの範囲外の要素への値の表示や条件分岐の反映について質問する。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

要するに、範囲を超えて指定するのは自己責任。 想定外なら、単なるプログラミングミスということで。 ちなみにこういうのも: $$ cat -n a.f95 1 program hello_world 2 implicit none 3 integer, dimension(:), allocatable :: a 4 allocate( a(0:10) ) 5 print *, "hello, world.", a( 11 ) 6 end program hello_world $ f95 -fbounds-check a.f95 $ ./a.out At line 5 of file a.f95 Fortran runtime error: Array reference out of bounds for array 'a', upper bound of dimension 1 exceeded (11 > 10) hello, world.$ $

mihyo
質問者

お礼

動的割り当てのことがあまりよく分かっていませんでした。 解決しました。ありがとうございました。