我有一个矩阵存储在一个文件(number.txt(中,如下所示:
12323456
54254311
76534522
如何在Fortran中读取这样的矩阵,因此结果将是:
1 2 3 2 3 4 5 6
5 4 2 5 4 3 1 1
7 6 5 3 4 5 2 2
使用 awk 分隔这些列并在 Fortran 中读取它非常容易。但是,我想知道我是否可以仅使用 Fortran 来完成所有这些操作。完成后,我需要通过其转置来倍增该矩阵。
Fortran格式的输入和输出基于字段。 字段不需要用空格分隔。 在这里,您可以将数据12323456
视为宽度为 8 的单个字段或宽度为 1 的 8 字段(或其他组合(。
如果要从宽度为 1 的整数字段中读取值,则格式项I1
将允许读取该值。 如果您有八个宽度为 1 的整数字段彼此相邻8I1
将允许读取这些字段。
implicit none
character(8) :: input(3)=['12323456','54254311','76534522']
integer i, values(8)
do i=1,3
read(input(i),'(8I1)') values
print '(8(I1,:,1X))', values
end do
end