2016-02-17 62 views
2

在python中,可以使用負數組索引來從結尾開始訪問數組。如果你使用例如具有圓形邊界條件的陣列。如何在Fortran中模仿python的數組負向索引?

我們可以在不使用IF子句的情況下在Fortran中模擬它嗎?

我想獲得的Fortran什麼,例如,是因發行

myarray(-1) 

我得到的數組的最後一個元素(和所有其他元素類似)。

+0

也許像'myarray(myarray.length -1)'或其等價物在frontran – Copperfield

+1

爲什麼需要Python標籤? – SiHa

+1

這看起來很有用,直到你意識到'myarray(-1)'是你的數組中的一個實際元素,並且你需要它來處理這些邊界條件,這樣你就可以在元素1處啓動真實的PDE域(如果你願意的話, )而不是元素3.Fortran根本不是Python。不要在Fortran中編寫Python,也不要在Python中編寫Fortran,您會混淆代碼的讀者。 –

回答

0

可以使用獲得的最後一個元素:

myarray(size(myarray)) 

或之前的最後一個元素:

myarray(size(myarray) - 1) 

請注意,這隻會用1索引數組工作。如果您不確定,可以使用ubound

+0

您需要添加一個使'-1'引用最後一個元素,但爲了與1-索引一致,也許我們希望零指向結尾。 – agentp

+0

我不確定這是否會回答這個問題,因爲AF7詢問fortran是否可以對數組做負向索引,而不是如何訪問第n個和第n-1個元素 – Fraser