问题描述
我需要在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
祝你好运。 海因。