小编som*_*one的帖子

如何逐行写一个巨大的矩阵(fortran 90)

我想逐行将一个包含大量数据的矩阵写入文件.例如,我有一个矩阵100*100,我想在文件中以100*100的形式.但是,它不起作用.以下是我的代码和一些描述.N和M是几百个左右的整数.RECL是预期的长度我设置文件,但在这里似乎这个命令不起作用.当N设置为99且M设置为200时,输出为198行.Vec是双精度复数矩阵.我怎么能输出Vec的值保持其原始格式N*M?我的编译命令是"ifort -o out test.f90".

open(unit=2, file='graph1.txt', ACTION="write", STATUS="replace",RECL=40*M+10)
do i=1,N
 do j=1,M
  write(2, '(F)', advance='no') real(Vec(i,j)) 
 end do
  write(2, *) '' 
end do
Run Code Online (Sandbox Code Playgroud)

按照@george的建议,我编写了一个这样的程序:

program test
implicit none

integer i,j

open(unit=2, file='graph1.txt', ACTION="write", STATUS="replace")
do i=1,500
 write(2, '(1600F14.7)')( 0.00001 ,j=1,499)
end do

close(2)

end
Run Code Online (Sandbox Code Playgroud)

有了这段代码,问题就解决了!也许我上次没有正确编译.

fortran matrix intel-fortran

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

fortran ×1

intel-fortran ×1

matrix ×1