1

宣言で「kind」を使用する多くの関数を含むプログラムがあります。

real(kind=db) function vnorme(v)

この種の各宣言は、pgf90でのコンパイル中にエラーを引き起こします(ただし、ifortは正常に機能します)。

PGF90-S-0087-定数式が必要な非定数式(general.f:3161)PGF90-S-0081-無効なセレクター-KINDパラメーターのデータ型の値が不明です(general.f:3161)0通知、0警告、2つの重大度、0はvnormeで致命的

dbは、別のソースコードファイルに含まれているモジュールで定義されています。

integer, parameter:: db = selected_real_kind(15)

'db'を'8'に置き換えると、コードは正しくコンパイルされます。関数vnormeがdbが宣言されているモジュールを使用している場合でも、コンパイラはdbが宣言されているとは見なさないようです。これを修正する方法はありますか?

4

1 に答える 1

2

関数定義の1行目を解析するとき、dbはまだ表示されていません。

試す


function vnorme(v)
  use module_with_db
  implicit none
  real(db) :: vnorme
  ...
end function vnorme

于 2011-06-17T19:01:04.007 に答える