fortran数组的初始化有些地方和C类似,有些地方由于Fortran有所谓隐含式循环数组初始化更加灵活。
初始化为相同的值

C:

1
int c[10] = {0}; /*这种方法只能全部初始化为0, 其他数字不行*/

Fortran:

1
2
3
4
integer :: f(10) = 0
!DATA
INTEGER :: F(10)
DATA F /10*0/

全部初始化

C:

1
int c[5] = {1, 2, 3, 4, 5};

Fortran:

1
2
3
4
integer :: f(5) = (/ 1, 2, 3, 4, 5 /)
!DATA
INTEGER :: F(5)
DATA F /1, 2, 3, 4, 5/

下面是fortran的特色了,
隐含式循环初始化

1
2
3
4
integer :: f(5) = (/ 1, (i, i=2, 4), 5 /)
!初始化二维数组
integer :: f(2, 2)
data ((f(i, j), i=1,2), j=1,2) /1, 2, 3, 4/

Comments