ランタイムエラーの場所を特定する方法

このセクションでは、例外とランタイムエラーの場所を特定するためのいくつかのガイドラインを示します。インテル(R) Fortran のランタイム・エラー・メッセージは、通常、エラーを引き起こしているソース内の正確な位置を示しません。エラーと例外の処理に関するコンパイラー・オプションは次のとおりです。

例 1: 割り付けられていない割付変数

        real, allocatable:: a(:)

!       allocate(a(4)) !if a is unallocated, the next statement gets an error with "check pointers"

        a=17

        print *,a

        end

Output 1:

forrtl: 致命的なエラー (408): fort: (8): 割り当て変数 A から変数が割り当てられていないときにフェッチしようとしました。

 

例 2: 関連付けられていないポインター

        real, pointer:: a(:)

        allocate(a(5))

        a=17

        print *,a

        deallocate(a)   !once a is deallocated, the next statement gets an error with "check pointers"

        a=20

        print *,a

        end

 

Output 2:

   17.00000       17.00000       17.00000       17.00000       17.00000

forrtl: 致命的なエラー (408): fort: (7): ポインター A をポインターがターゲットと関連していないときに使用しようとしました。

 

例 3: ゼロ値の Cray* ポインター

        pointer(p,a)

        real, target:: b

!      p=loc(b)        !if integer pointer p has no address assigned to it,

!                       !the next statement gets an error with "check pointers"

        b=17.

        print *,a

        end

 

Output 3:

forrtl: 致命的なエラー (408): fort: (9): ポインター A を対応する整数ポインター P の値がゼロのときに使用しようとしました。

「ランタイムエラーについて」も参照してください。