我坚持这个小问题。我想知道是否可以将bash-shell脚本的变量传递给f90代码?
答案 0 :(得分:3)
我很确定此前已在此讨论,但我找不到完全相同的内容。
您可以直接将参数作为参数传递给程序
./program arg1 arg2
您可以使用子例程GET_COMMAND ARGUMENT
和COMMAND_ARGUMENT_COUNT
在Fortran 2003中检索程序中的值作为字符串。点击链接以获得有用的示例。
在较旧的Fortran中,您必须使用非标准扩展,例如子例程GETARG
和IARGC
。
您还可以阅读在脚本中设置的环境变量
VAR1 = ...
VAR2 = ...
./program
使用Fortran 2003子例程GET_ENVIRONMENT_VARIABLE
。在较旧的Fortran中,您必须使用一些非标准扩展名,例如子例程GETENV
。
您还可以将文件重定向到程序的标准输入,并使用READ
语句读取数据。
答案 1 :(得分:2)
您可以选择以下可能性:
myvar="example"; export myvar
myFortran "${myvar}"
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