将2d数组从C传递给fortran77

时间:2012-06-24 05:35:06

标签: c fortran77

我在fortran77 dec(3,25000)中有以下数组,即使只使用了第二维中25000个位置中的8898个。

我将此数组作为参数与其他数组一起传递给C函数。即使其他参数的值似乎正确,但dec()值也是错误的。

我试过只传递dec()数组,结果是一样的。 dec(1,1)(fortran77)中的值等于dec [0] [0](C)中的值,但对于数组中的随机位置,在调用C之前,我在fortran77中没有得到相同的值功能和C功能。

知道为什么会这样吗?

数组在fortran中声明为真正的* 8 dec(3,25000),在C中声明为int dec [3] [25000]。

提前致谢

1 个答案:

答案 0 :(得分:5)

请记住,二维数组的主要顺序是在两种语言之间交换的。因此,在另一种语言中,dec[i][j]在另一种语言中为dec[j][i],加上您已经找到的索引库调整。