我正试图理解别人写的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)
我不明白为什么数组长度不一致,代码仍然在工作。有什么线索吗?
重要的是长度是相同的。如果接口不是显式的,则不会为连续的显式形状数组抛出错误。只有数组元素的索引(由列主序决定)与调用程序中的不同。