【发布时间】:2012-10-13 14:28:57
【问题描述】:
我正在做一个化学研究项目,目前在一个名为 Connectivity-M.txt 的文件中有一个 378 x 378 的零和一矩阵。我正在尝试编写一个简单的程序来读取矩阵的每一列并查找值为 1 的条目。由于矩阵的格式为A(i,j),我想编写程序以将它找到的每个值的i、j 位置写入一个新文件Wires.txt。到目前为止,这是我的代码:
program connectivity_matrixread
IMPLICIT none
integer :: i , j
INTEGER, DIMENSION(378,378) :: A
open(unit = 1 , file = "Connectivity-M.txt")
open(unit = 2 , file = "Wires.txt")
! Read values
do i = 1 , 378
do j = 1 , 378
Read(1,*) A(i,j)
if (A(i,j) .eq. 1) then
write(2,*) i , j
endif
enddo
enddo
end program connectivity_matrixread
程序设法读取第一列,其中只有一个值为 1 的条目。它写入此条目的 i,j 位置,否则我收到一条错误消息:
在文件 conn-read.f90 的第 25 行(单位 = 1,文件 = 'Connectivity-M.txt')
Fortran 运行时错误:文件结束
移动打开文件语句后,我仍然遇到同样的错误。错误所指的行包含读取语句。
【问题讨论】:
-
花几分钟时间来熟悉一下 SO 以及如何最好地在这里提出问题。特别是,弄清楚如何将您的代码格式化为代码 sn-ps;查看文本编辑框上方的小图标,尤其是看起来像
{}的那个。我和许多 Fortran 程序员一样,年纪太大,脾气暴躁,无法帮助那些没有尽可能简单的人。