将变量从Shell脚本传递到Fortran 90程序

时间:2015-04-12 16:42:05

标签: bash fortran command-line-arguments fortran90

我坚持这个小问题。我想知道是否可以将bash-shell脚本的变量传递给f90代码?

3 个答案:

答案 0 :(得分:3)

我很确定此前已在此讨论,但我找不到完全相同的内容。

您可以直接将参数作为参数传递给程序

  ./program arg1 arg2

您可以使用子例程GET_COMMAND ARGUMENTCOMMAND_ARGUMENT_COUNT在Fortran 2003中检索程序中的值作为字符串。点击链接以获得有用的示例。

在较旧的Fortran中,您必须使用非标准扩展,例如子例程GETARGIARGC

您还可以阅读在脚本中设置的环境变量

VAR1 = ...
VAR2 = ...
./program

使用Fortran 2003子例程GET_ENVIRONMENT_VARIABLE。在较旧的Fortran中,您必须使用一些非标准扩展名,例如子例程GETENV

您还可以将文件重定向到程序的标准输入,并使用READ语句读取数据。

答案 1 :(得分:2)

您可以选择以下可能性:

  • 在bash中使用变量
    的输出 myvar="example"; export myvar
  • 将它们作为参数添加到fortran调用中 myFortran "${myvar}"
  • 将它们写入文件并读取文件
    最糟糕的解决方案,仅提及它们
  • 写给fortran程序的stdin echo "${myvar}" | myFortran

答案 2 :(得分:1)

您可以使用以下过程读取环境变量:get_environment_variable

https://gcc.gnu.org/onlinedocs/gfortran/GET_005fENVIRONMENT_005fVARIABLE.html

或者读取命令参数的数量和值:command_argument_count,get_command_argument。参见:

https://gcc.gnu.org/onlinedocs/gfortran/Intrinsic-Procedures.html#Intrinsic-Procedures