维京人的blog

掠夺知识!给我狠狠地掠夺知识!!

0%

Fortran批量处理

Fortran批量处理

程序中需要读取或处理大量文件的时候,在代码中写入大量的 open 语句就显得很笨重,如果文件很多(比如有 1000 个文件),这种方法根本不可行。针对这种情况,介绍两种解决方法。
##1
考虑如下情形:假设存在 100 个文件,分别存储了 1900-1999 年的降雨量,现在需要计
算着 100 年的总降雨量。文件名为:前缀+年份+后缀,例如:降雨量-1900.dat、降雨量
-1901.dat 。由于文件名是有规律的,仅年份变化,可以用循环来一次读取文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
program test
integer i
real s, a
character(20):: filename='降雨量-1234.dat'
s = 0.0
do i=1900, 1999
!内部文件读写,将 filename 第 8-11 字符换为相应年份
write(filename(8:11),'(i4)') i
open(11,file=filename)
read(11,*) a
close(11)
s = s + a
end do
end program

这种方法优点是可以按顺序读取文件,缺陷也很明显,只能处理有规律的文件名。