我想在Fortran90中写一个function
/ subroutine
,它与MATLAB的diff
函数一样,也就是说,它接收一个多维数组A
和一个整数dim
,并计算A
指定的数组维度dim
的相邻元素之间的差异。
首先,它应该是function
还是subroutine
?为什么?
如何处理A
的尺寸?例如,如果A
的大小为(a,b,c)
,则如果(a,b-1,c)
为dim
,则输出的大小应为2
;和
我认为每个尺寸的长度都不是问题。但我不知道要处理多少维度。
修改
我得到了关于内在函数eoshift
的观点,也就是说,我可以eoshift
沿着维A
的{{1}}矩阵,然后从原始函数中减去它。不幸的是,这样做会使输出矩阵的大小等于dim
,而它应该使维度A
的范围减小1.在这个意义上,我不知道如何声明基于给定形状的数组(dim
不起作用)。实际上,我现在不知道如何在REAL, DIMENSION(shape(A)) :: B
/ function
中声明一个未知等级的变量。
答案 0 :(得分:0)
最后我选择遵循@Vladimir F提出的路径(我是对的吗?)
_TIFFmalloc@LIBTIFF_4.0' usr/lib/libpq.so.5: undefined reference to