在fortran子程序中传递多维数组

时间:2013-03-01 08:33:20

标签: multidimensional-array fortran subroutine

我试图了解其他人编写的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) 

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

1 个答案:

答案 0 :(得分:1)

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