【发布时间】:2017-09-24 00:59:05
【问题描述】:
我正在尝试用 fortran 将一堆大型矩阵写入磁盘。
矩阵是V、C 和d。都有大小(2 , n1, n2, n3, n4, n5).
这些是大型矩阵。 Fortran 大约需要 3 个小时来编写它们。
do ind1=1,n1
do ind2=1,n2
do ind3=1,n3
do ind4=1,n4
write(filename,'(a,i0,a,i0,a,i0,a,i0,a,i0,a)')'PF',t,'_',ind1,'_',ind2,'_',ind3,'_',ind4,'.txt'
OPEN(UNIT=25,FILE=filename,STATUS='replace',ACTION='write')
do ind5=1,n5
WRITE(25,*) c(2,ind1,ind2,ind3, ind4,ind5)
end do
do ind5=1,n5
WRITE(25,*) v(2,ind1,ind2,ind3, ind4,ind5)
end do
do ind5=1,n5
WRITE(25,*) d(1,ind1,ind2,ind3, ind4,ind5)
end do
CLOSE(UNIT=25)
end do
end do
end do
end do
有什么聪明的方法可以更快地做到这一点?
【问题讨论】:
-
n[1-5] 有多大?您需要所有单独的文件吗?
-
您真的需要文本形式的结果吗?文本文件总是很慢。
-
如果您计划在 6 个月内仍然使用这些文件,那么现在开始学习 HDF5 的陡峭(最初)曲线可能是值得的。
-
等一下,LMGTFY ... :-)
-
您对目前的答案不满意吗?如果您想要更多,您应该告诉我们您的期望。什么样的细节?具体是什么?