跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Studio 12.3:Fortran 用户指南 Oracle Solaris Studio 12.3 Information Library (简体中文) |
Fortran 编译器提供一个 include 文件 system.inc,它为大多数非内在库例程定义了接口。请声明此 include 文件以确保所调用函数及其参数的类型得到正确的设置,尤其是在使用 -xtypemap 更改了缺省数据类型时。
例如,以下命令可能会生成一个运算异常,原因是没有显式地设置函数 getpid() 的类型:
integer(4) mypid mypid = getpid() print *, mypid
getpid() 例程返回一个整数值,但如果没有为该函数声明显式类型,则编译器认为它返回一个实数值。此值将进一步转换为整数,这很有可能会导致浮点错误。
要纠正这种错误,您应该显式地设置所调用的 getuid() 及类似函数的类型:
integer(4) mypid, getpid mypid = getpid() print *, mypid
您可以使用 -Xlist(全局程序检查)选项诊断此类问题。Fortran include 文件 'system.inc' 为这些例程提供了显式接口定义。
include ’system.inc’ integer(4) mypid mypid = getpid() print *, mypid
通过在调用 Fortran 库中例程的程序单元中包含 system.inc,可以自动定义接口,并帮助编译器诊断类型不匹配的问题。(有关更多信息,请参见《Fortran 库参考》。)