ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris Studio 12.3: Fortran ユーザーズガイド Oracle Solaris Studio 12.3 Information Library (日本語) |
Fortran コンパイラは、 ほとんどの非組み込みライブラリルーチンのインタフェースを定義するインクルードファイル system.inc を提供します。特にデフォルトのデータ型が -xtypemap で変更される場合は、呼び出す関数とその引数が正しく入力されていることを確実にするため、このインクルードファイルを宣言します。
たとえば、次のプログラムでは、関数 getpid() が明示的に入力されていないため、算術的な例外が発生します。
integer(4) mypid mypid = getpid() print *, mypid
getpid() ルーチンは整数値を返しますが、関数の明示的な型が宣言されていない場合、コンパイラは実数値が返されたものとみなします。この数値が整数に変換されると、浮動小数点エラーが生じる可能性が高まります。
このような場合、getuid() と自分が呼び出す関数を明示的に入力します。
integer(4) mypid, getpid mypid = getpid() print *, mypid
このような問題は、-Xlist (大域的なプログラム検査) オプションで診断できます。Fortran インクルードファイル ”system.inc’ は、これらのルーチンの明示的なインタフェース定義を提供します。
include ’system.inc’ integer(4) mypid mypid = getpid() print *, mypid
Fortran ライブラリのルーチンを呼び出すプログラムに system.inc を含めると、インタフェースが自動的に定義され、コンパイラによる型の不一致の診断がサポートされます (詳細は、『Fortran ライブラリリファレンス』を参照)。