0

我有一个包含 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”行,因为我不知道我将拥有多少行。我将如何为每个变量定义每一列并将其写入文件或公共块的想法?

4

0 回答 0