Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何在Fortran 90中用数据填充矩阵_File_Matrix_Fortran_Fortran90 - Fatal编程技术网

File 如何在Fortran 90中用数据填充矩阵

File 如何在Fortran 90中用数据填充矩阵,file,matrix,fortran,fortran90,File,Matrix,Fortran,Fortran90,我有一个问题,也许很愚蠢,我写的代码。我生成了包含24行的30个数据集,其中包含表示相同度量值的不同值,但是我无法以数组格式打印它们。让我解释一下,我得到一个包含所有值的单列,我将能够将它们写成24行乘以30列的矩阵。我试图阅读这个网站和其他网站上的各种帖子,但我得到了与我的值交替的零矩阵,我该怎么做?下面是我编写的代码,试图获得由diffu的值构成的矩阵a program deviation implicit none character(len=20) :: filein,fileou

我有一个问题,也许很愚蠢,我写的代码。我生成了包含24行的30个数据集,其中包含表示相同度量值的不同值,但是我无法以数组格式打印它们。让我解释一下,我得到一个包含所有值的单列,我将能够将它们写成24行乘以30列的矩阵。我试图阅读这个网站和其他网站上的各种帖子,但我得到了与我的值交替的零矩阵,我该怎么做?下面是我编写的代码,试图获得由diffu的值构成的矩阵a

program deviation
 implicit none

 character(len=20) :: filein,fileout,fileinp
 integer :: row,i,h,io,n,j,l,m,col
 real :: usv,usf,tsv,tsf,su,st
 real :: diffu, difft
 real, dimension(24,30) :: a
 real, dimension(720) :: u
 n = 39
 row = 24
 col = n-9
 write(*,'(2x,''Input file .......''/)')
 read(*,'(a15)') filein
 write(*,'(2x,''Output file........''/)')
 read(*,'(a15)') fileout

 open(unit = 20,File=fileout)

 a = 0.

  fileLoop : do i = 10,n
  fileinp = 'lin*27-'
  write(fileinp, '("lin*27-",I2,".dat")') i
  open(unit = i+40,File=fileinp)
  open(unit = 30,File=filein)

  do j = 1, row
  read(30,*,IOSTAT = io) h,usv,tsv
  read(i+40,*,IOSTAT = io) h,usf,tsf
   if(io/=0) then
    write(*,*) 'End of file!'
   exit
   else if(io==0) then
    diffu = ((usf - usv)**2)
    difft = ((tsf - tsv)**2)
    write(20,*) diffu,difft 

   endif
   enddo
  enddo
 close(i+40)
 close(30)

 enddo fileLoop
 close(20)

 open(unit=20,STATUS='OLD',FILE=fileout)
  do r = 1, 720
  read(20,*,IOSTAT = io) diffu,difft
  u(r) = diffu
  if(io/=0) then
  write(*,*) "Error!"
  exit
  else if(io==0) then
   do m = 1, 24
    do l = 1, col
     a(m,l) = a(m,l) + u(r)

    enddo
   enddo
 endif
 enddo  
 write(*,*) a
 close(20)


end program deviation

移动打印,一个外部的loopagentp我编辑了我的代码,我试图修改它并关闭然后重新打开输出文件,但我得到了相同的diff值…我怎么办?你必须写到第20单元,它将被归档。弗拉基米尔是什么意思?我必须这样写一行吗?read20,*文件输出