Sun Studio 12: Fortran プログラミングガイド

11.1.7 配列の添字付けと順番

配列の添字付けと順番については Fortran と C とでは異なります。

11.1.7.1 配列の添字付け

C の配列は常にゼロから始まりますが、Fortran の配列はデフォルトでは 1 から始まります。この問題には、次のような 2 つの解決策があります。


      INTEGER B(0:2)

このときは、Fortran の要素 B(1) が C の b[1] 要素と同義になります。

11.1.7.2 配列の順番

Fortran の配列は列主導の順番で、A(3,2) のように格納されます。


A(1,1)  A(2,1)  A(3,1)  A(1,2)  A(2,2)  A(3,2)

C の配列は行主導の順番で、A[3][2] のように格納されます。


A[0][0] A[0][1] A[1][0] A[1][1] A[2][0] A[2][1]

1 次元の配列では、これによって問題は生じません。しかし、多次元の配列では、すべての参照と宣言における添字の順番と使用法に気をつけてください。 なんらかの調整が必要になります。

たとえば、行列操作の一部を C で行い、残りを Fortran で行うのは混乱が生じる可能性があります。一方の言語で全体の配列をルーチンに渡し、そのルーチン内ですべての行列操作を実行すれば、混乱を避けることができます。