fortran - 如何对文件夹中的所有文件运行 FORTRAN 程序?

标签 fortran fortran77

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

最佳答案

如果您无法使用 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 循环特定文件。

关于fortran - 如何对文件夹中的所有文件运行 FORTRAN 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889155/

相关文章:

fortran - 通过子程序将一组变量值传递给没有公共(public) block 的函数有哪些方法?

fortran - 计算的 GOTO 无法执行

c - C 和 Fortran 中指针在确定程序速度方面的作用

c - 在 Fortran 中访问从 C 作为指针传递的二维数组

random - 为什么我的随机数总是相同?

c++ - 模板 extern "C"函数以从 C++ 调用具有不同类型的 Fortran 函数

fortran - 结合两个 Fortran 子例程与 ABAQUS 一起使用

fortran - 派生类型中的可变长度数组

linux - Mac 上的 Fortran 总线错误

fortran90 - 语言 : how can double precision variable read and hold string content from an input file