你能从一个fortran程序传递一个值到另一个fortran程序吗?

时间:2013-11-27 16:27:35

标签: fortran fortran90 fortran77

我有一个在变量中有值的程序。一旦建立了值,我想调用另一个程序并使用变量的值来确定新程序的去向。有谁知道怎么做?

2 个答案:

答案 0 :(得分:4)

如果您有Fortran 2008编译器,那么您将拥有标准子例程execute_command_line。这需要 ,表示要执行的命令的字符串参数(以及命令的任何参数),因此您可以非常轻松地执行另一个读取命令行参数的Fortran程序。那个叫做程序的程序可以使用Fortran 2003子程序get_command_argument来处理命令行

即使您的编译器不符合(完全)Fortran 2008,您也可能会发现它实现了这个内部例程,或提供了(非标准)替代方案。您的编译器文档将启发您。

答案 1 :(得分:1)

我不知道fortran。但我会通过命令行参数来做到这一点。想不到一种不接受它们的语言。只要它是所有输入而没有输出它就足够了。另外,您可以在接受输入的程序上进行简单的测试运行,因为您只需使用命令shell中的测试输入启动它。

缺点是,您必须将数据转换为字符串并在其他程序中解析它。对于简单类型而言,这不是一个问题,但对于复杂的数据来说,它可能是令人讨厌的。

对于复杂数据,您可以写入文件,通过命令行参数提供文件路径,并在其他程序中读取文件。基于文件的方法还使其他程序能够在同一文件中返回反馈。

这是fortran中命令行的SO线程: Fortran: `READ(*,*)` != Command-line arguments. How to use command line arguments?

修改 我将输出部分从“将数据打印为字符串”重新编写为“将数据转换为字符串”。该部分与链接一起暗示了将数据打印到屏幕并在其他程序中从那里读取数据的提议。虽然这也可能是一种解决方案,但并不是故意的。