Fortran 中的二维数组

2D arrays in Fortran

所以我刚开始使用 Fortran,我不太确定哪里出错了。我只是想从文本文件中读取值,将其放入两个整数中,然后创建一个二维数组。

program matrix
    IMPLICIT none
    integer :: a , b
    open (unit = 100, file = "test.txt")
    read(100, *) a, b
    integer, DIMENSION(a,b) :: c
    close (100)
end program matrix

我一直收到错误代码“符号 'a' 已经有基本类型 Integer。

文本文件只是:

 3     3
 8     5     2
 1     9     3 
 3     4     1

简而言之,我只是想简而言之,我只是想对行中的值进行排序,然后按数字顺序排列它们。

两件事:

Fortran 区分大小写: Aa

相同

声明必须先于执行语句

integer, DIMENSION(a,b) :: c

不能在 openread 语句之后。

您可以做的是使用可分配数组。那些被声明为等级,但没有大小,并且可以稍后分配到所需的大小:

program matrix
    implicit none
    integer :: a, b
    integer, dimension(:,:), allocatable :: c
    open(unit=100, file='test.txt')
    read (100, *) a, b
    allocate(c(a,b))
    read(100, *) c
    close(100)
end program matrix