0

2次元の25000の位置のうち8898だけが使用されている場合でも、fortran77 dec(3、25000)に次の配列があります。

この配列を他の配列と一緒にパラメーターとしてC関数に渡します。他のパラメーターの値は正しいように見えますが、dec()の値は間違っています。

dec()配列のみを渡してみましたが、結果は同じです。dec(1,1)(fortran77)の値は、dec [0] [0](C)の値と同じですが、配列内のランダムな位置の場合、Cを呼び出す直前にfortran77で同じ値を取得しません。関数とC関数で。

なぜこれが起こるのか考えていますか?

配列は、Fortranではreal * 8 dec(3,25000)として宣言され、Cではint dec[3][25000]として宣言されます。

前もって感謝します

4

1 に答える 1

5

2次元配列の主な順序は、2つの言語間で入れ替わっていることを覚えておいてください。したがってdec[i][j]、一方の言語ではもう一方の言語dec[j][i]に加えて、すでに知っているようにインデックスベースの調整が行われます。

于 2012-06-24T05:54:47.497 に答える