配列の正しい順序

2次元配列以上を考える場合において、Doループを入れ子状に組む必要がでてくる。
例えば、temp(LON,LAT,HIGH,TIME)を読む場合には

DO time=1,30
  DO height=1,10
    DO klat=1,100
      DO jlon=1,100
        READ(20,*) temp(jlon,klat,height,time)
      ENDDO
    ENDDO
  ENDDO
ENDDO

のように書く。順番を違えると非効率的で時間の非常にかかるプログラムになる。 また、以下のような書き方もできる。この場合1行で書ける。

READ(20,*) ((((temp(jlon,klat,height,time),jlon=1,100)klat=1,100),height=1,10),time=1,30)

これらの例からわかるように、Fortranでは配列が 左側の要素ほど速く変化する 書き方をする。
一方でC言語では右側の要素ほど速く変化するように書く。

最終更新:2010年07月23日 15:49