XL Fortran for AIX V8.1.1

ユーザーズ・ガイド


実行時の問題の修正

以下のいずれかの場合に、XL Fortran はプログラムの実行中にエラー・メッセージを出します。

プログラムの実行中に起きるエラーは、dbx などのシンボリック・デバッガーを使用して調べることができます。

他のシステムからの拡張機能の再現

移植されたプログラムが他のシステムにある拡張機能に依存している場合、それらのプログラムの中にはコンパイルで問題が起きるものもあります。 XL Fortran はそのような拡張機能を多数サポートしていますが、それらのいくつかを使用するにはコンパイラー・オプションをオンにしなければなりません。これらのオプションのリストに関しては 互換性を維持するためのオプションを参照し、移植に関する概要は 第 14 章, XL Fortran へのプログラムの移植を参照してください。

引き数のサイズまたはタイプの不一致

サイズまたはタイプが異なる引き数 (これは、誤った実行および結果を発生させる場合があります) を検出するために、-qextchk オプションを指定してコンパイルすることができます。このオプションによって、リンク時に問題があった場合に警告が出されます。

コンパイルの初期段階でタイプのチェックを行うには、プログラム内で呼び出されるプロシージャーに対してインターフェース・ブロックを指定してください。

最適化するときの問題の回避策

最適化すると、プログラムが誤った結果を発生させることがわかっていて、問題を特定の変数に限定できる場合は、その変数を VOLATILE と宣言することによって、問題を一時的に回避することができ、したがって、変数に影響を与える最適化を防止できる場合もあります。 (「XL Fortran for AIX ランゲージ・リファレンス 」の『VOLATILE』を参照。) これは一時的な解決策に過ぎないので、問題を解決するまでコードのデバッグを続行して、その後に VOLATILE キーワードを 除去してください。ソース・コードとプログラム設計が正しいと確信していて、問題が続行する場合は、問題を解決するためにユーザーのサポート部門に連絡を取ってください。

I/O エラー

検出されたエラーが I/O エラーで、ユーザーがエラーの I/O ステートメントに IOSTAT を指定していた場合は、 IOSTAT 変数に「XL Fortran for AIX ランゲージ・リファレンス 」の 『条件および IOSTAT 値』に従って値が割り当てられます。

プログラムが実行されているシステム上に XL Fortran 実行時メッセージ・カタログをインストールした場合は、ある一定の I/O エラーに対して、メッセージ番号とメッセージ・テキストが端末 (標準エラー) に送出されます。このカタログがシステムにインストールされていないと、メッセージ番号だけが表示されます。 実行時オプションの設定の記載されているいくつかの設定を使用すれば、これらのエラー・メッセージをオンまたはオフにすることができます。

大きなデータ・ファイルの書き込み中にプログラムで障害が発生する場合は、ユーザー ID の最大ファイル・サイズ限界を大きくする必要がある場合もあります。これは、kshulimit などのシェル・コマンド、または smit コマンドを使用して行うことができます。

トレースバックとメモリー・ダンプ

実行時例外の発生前に適切な例外ハンドラーをインストールしている場合、発生時にメッセージとトレースバック・リストが表示されます。ハンドラーによっては、コア・ファイルが作成されることがあります。その後、デバッガーを使用して例外の位置を調べることができます。

プログラムを終了させずにトレースバック・リストを作成する場合は、 xl__trbk プロシージャーを呼び出してください。

IF (X .GT. Y) THEN    ! X > Y indicates that something is wrong.
  PRINT *, 'Error - X should not be greater than Y'
  CALL XL__TRBK       ! Generate a traceback listing.
  X = 0               ! The program continues.
END IF

例外ハンドラーに関する指示については、 例外ハンドラーのインストールを、実行時例外の原因の詳細については、 XL Fortran 実行時例外を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]