我正在做一个化学研究项目,目前在名为Connectivity-M.txt
的文件中有一个378 x 378的零和一个矩阵。我正在尝试编写一个简单的程序来读取矩阵的每一列,并查找值为1的条目。由于矩阵的格式为A(i,j)
,我想要编写i
,j
位置,以找到每个值为一个新文件Wires.txt
的位置。这是我到目前为止的代码:如何读取矩阵并将某些值写入fortran90中的新文件
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
位置,但否则我得到一个错误,读取:
At line 25 of file conn-read.f90 (unit = 1, file = 'Connectivity-M.txt')
Fortran runtime error: End of file
移动打开文件语句后,我仍然收到相同的错误。错误引用的行包含read语句。对不起,我对Fortran和堆栈溢出都很陌生,我非常感谢帮助。
花几分钟时间熟悉SO,以及如何最好地在这里提出问题。特别是,了解如何将代码段格式化为代码;看到文本编辑框上方的小图标,尤其是看起来像“{}”的图标。我和很多Fortran程序员一样,太老,脾气暴躁,无法帮助那些不尽如人意的人。 –