Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

2.4 库接口和 system.inc

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 库参考》。)