我想在Fortran中創建一個數組數組。Fortran中可以使用匿名數組嗎?
像下面
TYPE :: array_of_arrays
REAL, DIMENSION(:), POINTER :: p => NULL()
END TYPE
TYPE(array_of_arrays), DIMENSION(2) :: some_array
所以,我可以做的:
REAL, DIMENSION(3), TARGET :: some_vector1 = (/1.0, 2.1, 4.3/)
REAL, DIMENSION(3), TARGET :: some_vector2 = (/3.0, 1.2, 9.6/)
some_array(1)%p => some_vector1
some_array(2)%p => some_vector2
WRITE(*,*) some_array(1)%p ! I see some_vector1
WRITE(*,*) some_array(2)%p ! I see some_vector2
現在對我來說,實際上宣告這些some_vector
陣列是笨重對應於每個元素在我的陣列陣列。
我想要做的是在一個單獨的子例程中,臨時向量被設置爲目標,並且該子例程將我的數組數組設置爲指向該臨時向量。我可以有匿名數組。
但是,這似乎並沒有工作,我想知道如果我正在做一些Fortran不支持的東西。
因此,Fortran是否支持匿名數組,即(如果我有條件錯誤),只能通過引用訪問的數組?
我不明白。瘋狂地猜測,你的單獨的子程序可能分配指針組件,使它們指向「臨時」存儲。您需要考慮臨時存儲的使用期限。也許顯示「似乎沒有工作」的代碼。 – IanH 2012-08-17 02:12:31