如何在Compaq Visual Fortran 6.5中导入或调用大数据

时间:2012-05-08 15:26:45

标签: fortran

我有问题如何将非常大的矩阵导入到fortran 6.5。例如,我的.for文件矩阵非常大120 MB,矩阵以

的形式给出
  A(1,1)=691627.009959795*x(1)**2 - 3428.41117804251*x(1)*x(2) -
 # 156.91392014999*x(2)**2 + 428391.21915942*x(1)*x(3) - 953.4687530
 #88931*x(2)*x(3) + 66317.7918091961*x(3)**2 + 159956.172489745*x(1)
 #*x(4) - 427.609460294073*x(2)*x(4) + 49548.6129072796*x(3)*x(4) + 
 #9246.97185672321615*x(4)**2 - 34020.3929685886*x(1)*x(5) + 23.9104
 #515534*x(2)*x(5) - 10515.7437145023*x(3)*x(5) - 3939.86670772623

  A(1,2)=433427.009959795*x(1)**2 - 3444.41117804251*x(1)*x(2) -
 # 144.91392014999*x(2)**2 + 455391.21915942*x(1)*x(3) - 955.4687530
 #58931*x(2)*x(3) + 66317.7918091961*x(3)**2 + 159956.172489745*x(1)
 #*x(4) - 457.609460294073*x(2)*x(4) + 49548.6129072796*x(3)*x(4) + 
 #3246.97182321615*x(4)**2 - 14020.3929685886*x(1)*x(5) + 23.9104019
 #515534*x(2)*x(5) - 14515.7437145023*x(3)*x(5) - 3669.86670772623
 ...  
由于矩阵非常大,我可以复制/粘贴在4mm矩阵的一小部分的fortran表中,所以在这种情况下我必须在120个部分上分配120MB并复制/粘贴在fortran表中所有部分的总和。如何以完整形式从fortran调用或导入矩阵?

1 个答案:

答案 0 :(得分:2)

看起来你正在采取一种选择不当的方法来解决这个问题。正如你在其中一篇评论中所说的那样,你在matlab中生成这些方程式,并从那里将这些方程导出为fortran代码 - 可能是因为matlab中的(可能重复的)评估太慢了。

更好的方法是让matlab生成系数,并以某种可移植的形式将这些保存到磁盘,例如: hdf5(一种快速的可移植二进制格式,matlab和fortran可以读写)。然后编写一些fortran代码将系数导入某些数组,并使用这些数组计算所需的矩阵元素。