由于实施限制,我必须使用Fortran77 。
某些背景 - 我正在编写有限元素代码,并且对于每个元素,我都有使用F77编写的材料法。对于我的物质法则,我需要来自外部文本文件的信息 - 因此对于每个元素,我打开一个文本文件,从中读取(2D数组)并关闭它。可以想象,随着元素数量的增加,I / O量变得非常高。 正在读取的文本文件是静态的 - 不会因每个元素或一段时间而改变。
当前读取块如下所示:
open (xx, file='C:\Users\myfile.txt',status='old')
C loop over the data points
do k = 1, k_tot
do j = 1, j_tot
read(xx,*) alpha(j,1), alpha(j,k+1)
end do
C close the file
close (xx)
我的问题是 - 执行此I / O的最有效方法是什么? 一次读取整个数组并没有真正起作用 - 没有编译器错误,但数组元素未分配,即
open (xx, file='C:\Users\myfile.txt',status='old')
read(xx,*) alpha
close (xx)
,也不
open (xx, file='C:\Users\myfile.txt',status='old', format = 'unformatted')
read(xx) alpha
close (xx)
非常感谢任何帮助,谢谢!