Sun Studio 12: Fortran ユーザーズガイド

2.4 ライブラリインタフェースと system.inc

Fortran 95 コンパイラは、 ほとんどの非組み込みライブラリルーチンのインタフェースを定義するインクルードファイル system.inc を提供します。特にデフォルトのデータ型が -xtypemap で変更される場合は、呼び出す関数とその引数が正しく入力されていることを確実にするため、このインクルードファイルを宣言します。

たとえば、次のプログラムでは、関数 getpid() が明示的に入力されていないため、算術的な例外が発生します。


        integer(4) mypid
        mypid = getpid()
        print *, mypid

getpid() ルーチンは整数値を返しますが、関数の明示的な型が宣言されていない場合、コンパイラは実数値が返されたものとみなします。この数値が整数に変換されると、浮動小数点エラーが生じる可能性が高まります。

このような場合、getuid() と自分が呼び出す関数を明示的に入力します。


        integer(4) mypid, getpid
        mypid = getpid()
        print *, mypid

このような問題は、-Xlist (大域的なプログラム検査) オプションで診断できます。Fortran 95 インクルードファイル system.inc は、これらのルーチンの明示的なインタフェース定義を提供します。


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

Fortran ライブラリのルーチンを呼び出すプログラムに system.inc を含めると、インタフェースが自動的に定義され、コンパイラによる型の不一致の診断がサポートされます (詳細は、『Fortran ライブラリ・リファレンス』を参照)。