如何在文件夹中的所有文件上运行FORTRAN程序?

时间:2012-08-09 17:51:38

标签: fortran fortran77

截至目前,我正在打开一个扩展名为.txt的文件,并在其上运行fortran代码。但是,如果我希望程序在具有各种扩展名的文件夹中的所有文件上运行。我该怎么做?

2 个答案:

答案 0 :(得分:4)

如果您遇到FORTRAN77,一种可能的解决方案是从标准输入读取输入文件名并相应地打开该文件:

character(len=9999) inputFile

read(unit=5,fmt=*)inputFile
open(unit=21,file=trim(inputFile))

然后,通过shell脚本循环对所有文件执行程序:

for file in *;do
    echo $file | myFortranProgram
done

如果您有更现代的编译器,则可以使用Fortran 2003功能GET_COMMAND_ARGUMENT

character(len=9999) :: inputFile 

call GET_COMMAND_ARGUMENT(1,VALUE=inputFile)
open(unit=21,file=trim(inputFile))

然后通过如上所述的循环执行程序:

for file in *;do
    ./myFortranProgram $file
done   

请记住,在循环文件时,您有责任确保您的Fortran程序能够使用这些文件并且能够处理异常,例如:目录或一些其他文件扩展名,或相应地从shell循环特定文件。

答案 1 :(得分:2)

我通常创建一个文件,其中包含我要处理的文件列表,例如,在Unix OS上使用 ls find 命令。这也允许用编辑器修改列表。然后我设计了Fortran程序来读取该文件中的文件名,然后连续打开,处理和关闭这些文件。

如果您可以根据模式预测可能的文件名,则可以使用INQUIRE语句测试特定名称的文件是否存在。这可以用于遍历所有可能的文件名。根据有多少可能的文件,这可能也可能不实用。