Fortran 基本符号

示例

可以使用维度属性或直接指示数组的类型将任何类型声明为dimension数组:

! 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)。

内在函数ubound和可以访问2(或更大)维的上下边界lbound。确实lbound(geese,2)会回来-3,而ubound(geese,1)会回来12。

数组的大小可以通过内部函数访问size。例如,size(geese, dim = 1)返回第一维的大小为6。