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 区分大小写: A
与 a
相同
声明必须先于执行语句
行
integer, DIMENSION(a,b) :: c
不能在 open
或 read
语句之后。
您可以做的是使用可分配数组。那些被声明为等级,但没有大小,并且可以稍后分配到所需的大小:
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
所以我刚开始使用 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 区分大小写: A
与 a
声明必须先于执行语句
行
integer, DIMENSION(a,b) :: c
不能在 open
或 read
语句之后。
您可以做的是使用可分配数组。那些被声明为等级,但没有大小,并且可以稍后分配到所需的大小:
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