我试图了解其他人编写的Fortran代码。代码正在做它应该做的事情所以我假设它工作正常。从另一个名为“convol”的子程序调用一个名为“fft”的子程序。在“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)
我不明白为什么数组长度不一致且代码仍在工作。有什么线索可能会发生在这里吗?
答案 0 :(得分:1)
重要的是长度是一样的。如果接口不是显式的,则不会为连续的显式形状数组引发错误。只有数组的元素将具有不同的索引(由列主要顺序确定),即调用程序中的索引。