1

我试图理解别人编写的 Fortran 代码。代码正在做它应该做的事情,所以我假设它工作正常。一个名为“fft”的子程序被另一个名为“convol”的子程序调用。在“convol”中,数组声明如下:

real, dimension fri(n+1,n,nh,2,0:1)
call fft(fri)

在“fft”内部,声明是这样的:

subroutine wrft3b(fri) 
real, dimension fri(2,n+1,n,nh,0:1) 

我不明白为什么数组长度不一致并且代码仍然有效。有什么线索可能会在这里发生吗?

4

1 回答 1

1

重要的是长度是一样的。如果接口不是显式的,则不会为连续的显式形状数组抛出错误。只有数组的元素在调用程序中会有不同的索引(由列主顺序决定)。

于 2013-03-01T08:45:50.310 回答