【发布时间】:2016-05-29 02:05:55
【问题描述】:
在python中,可以使用负数组索引从末尾开始访问数组。如果您使用例如,这将特别有用。具有圆形边界条件的数组。
我们可以在 Fortran 中模仿这个,而不使用 IF 子句吗?
例如,我想在 Fortran 中获得的是通过发布
myarray(-1)
我得到了数组的最后一个元素(与所有其他元素类似)。
【问题讨论】:
-
可能类似于
myarray( myarray.length -1)或 frontran 中的等价物 -
为什么需要 Python 标签?
-
这看起来很有用,直到您意识到
myarray(-1)是数组中的一个实际元素并且您需要它来处理那些非常边界条件,以便您可以在元素 1 处开始真正的 PDE 域(如果是 0,则你希望如此)而不是元素 3。Fortran 根本不是 Python。不要用 Fortran 写 Python,也不要用 Python 写 Fortran,你会混淆你代码的读者。 -
如果您使用例如具有圆形边界条件的数组。 至于 Python,我没有史酷比,但在 Fortran 中,固有的
cshift对于操作具有圆形边界条件的数组很有用。我更同意@VladimirF 的观点,即你应该用 Fortran 编写 Fortran,用 Python 编写 Python。也许如果我们知道您为什么想要您想要的,我们可以提供更有用和更多的 Fortranny 指导。 -
由于 Fortran 支持任意索引,因此您可以很好地拥有实际使用负索引值的数组——因此负索引的 python 式使用从末尾向后计数将是不兼容的。