基本表示法

可以使用 dimension 屬性或直接指示陣列的 dimension(s)將任何型別宣告為陣列:

! One dimensional array with 4 elements
integer, dimension(4) :: foo

! Two dimensional array with 4 rows and 2 columns
real, dimension(4, 2) :: bar

! Three dimensional array
type(mytype), dimension(6, 7, 8) :: myarray

! Same as above without using the dimension keyword
integer::foo2(4)
real::bar2(4, 2)
type(mytype) :: myarray2(6, 7, 8)

後一種宣告多維陣列的方法允許在一行中宣告相同型別的不同級別/維度陣列,如下所示

real::pencil(5), plate(3,-2:4), cuboid(0:3,-10:5,6)

Fortran 2008 標準允許的最大等級(維度數)為 15,之前為 7。

Fortran 按列主要順序儲存陣列。也就是說,bar 的元素儲存在記憶體中,如下所示:

bar(1, 1), bar(2, 1), bar(3, 1), bar(4, 1), bar(1, 2), bar(2, 2), ...

在 Fortran 中,預設情況下,陣列編號從 1 開始,而 C 從 0 開始。事實上,在 Fortran 中,你可以明確指定每個維度的上限和下限:

integer, dimension(7:12, -3:-1) :: geese

這宣告瞭一個形狀 (6, 3) 的陣列,其第一個元素是 geese(7, -3)

內部函式 uboundlbound 可以訪問 2(或更多)維度的下限和上限。事實上,lbound(geese,2) 將返回 -3,而 ubound(geese,1) 將返回 12

內部函式 size 可以訪問陣列的大小。例如,size(geese, dim = 1) 返回第一個維度的大小,即 6。