如何在OpenVMS Fortran中获取命令行参数?

问题描述

我需要在fortran 90标准中实现c代码,并在出现下一个问题时停止。如何获取和使用命令行参数。我发现了

GET_COMMAND_ARGUMENT

getarg

但是在带fortran 90编译器的openvms系统中它不起作用。 还有另一种在Fortran中获取命令行参数的方法吗?

C语言示例

   int main(int argc,char **argv)
{
  if (argc > 1)
....
}

示例(无效“

ILINK-W-NUDFSYMS,2个未定义的符号:
%ILINK-I-UDFSYM,GETARG
%ILINK-I-UDFSYM,IARGC
%ILINK-W-USEUNDEF,未定义符号 IARGC参考 )

PROGRAM bulk1
    INTEGER :: i
    CHaraCTER(len=32) :: arg

    DO i = 1,iargc()
    CALL getarg(i,arg)
    WRITE (*,*) arg
    END DO
END PROGRAM

解决方法

“如何访问程序命令行?”在任何与Fortran相关的常见问题上,它的功能可能都很重要。不幸的是,同样频繁的回答是“取决于”。直到包括Fortran 95在内,还没有标准的命令行访问方法。尽管F2003标准最终满足了这一要求,但是可以合理地假设F2003编译器将在一段时间内不被普遍使用。同时,这将使Fortran社区在未来几年内面临不一致的解决方案。

您可以使用此库 http://www.winteracter.com/f2kcli/index.htm

,

如果您都拥有两个编译器的许可证,则可能需要考虑创建一个C主程序,并调用Fortran服务函数。

获取命令行的相对简单的方法(尽管无需进一步解析为“单词”)将是调用OpenVMS特定的函数LIB $ GET_FOREIGN

签出:http://computer-programming-forum.com/49-fortran/e047637fc421ace6.htm

祝你好运。 海因。