我有一个包含 4 列和许多行的数据文件,我想将第一列分配给 t,第二列分配给 x,第三列分配给 y,第四列分配给 z。并按行读取数据。所以想象一下:
**T X Y Z**
10, 1.0, 2.0, 3.0
20, 1.0, 2.0, 4.0
我将如何将每个变量分配给列?我的程序目前看起来像:program arraycall
implicit none
integer, dimension(:,:), allocatable :: array
integer :: row
integer :: stat !Checking return values
!Define max. values of code, no.of rows
integer, parameter :: max_rows=1000
integer, parameter :: max_cols=4 !Maximum columns in array
! Total number of rows in file
integer :: tot_rows
allocate( array(max_cols,max_rows), stat=stat)
!Check return value
if (stat /=0) stop 'Cant allocate memory!'
open(10, file='C:\Users\matth\OneDrive\Desktop\Testfiles\vol.txt', &
access='sequential', status='old', FORM='FORMATTED')
DO row=1, max_rows
!Directly read in arrays!
Read (10,*,iostat=stat) array(:,row)
if (stat>0) then
stop 'An error occured while reading file'
elseif (stat<0) then
tot_rows = row-1
print*, 'EOF reached. Found a total of',tot_rows, 'rows'
exit
endif
END DO
close (10)
end program arraycall
这样它就可以读取“x”行,因为我不知道我将拥有多少行。我将如何为每个变量定义每一列并将其写入文件或公共块的想法?