Sun Studio 12:Fortran 用户指南

2.4 库接口和 system.inc

Fortran 95 编译器提供一个 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 95 include 文件 'system.inc' 为这些例程提供了显式接口定义。


        include ’system.inc’
        integer(4) mypid
        mypid = getpid()
        print *, mypid

通过在调用 Fortran 库中例程的程序单元中包含 system.inc,可以自动定义接口,并帮助编译器诊断类型不匹配的问题。(有关更多信息,请参见《Fortran 库参考》。)