グローバル変数宣言用に定義されたモジュール 'gvars' があります。integer :: nthreads, max_threads, tid, omp_get_max_threads, omp_get_num_threads, omp_get_thread_num
gvars モジュール内で定義する
とmaxthreads = omp_get_max_threads()
、メイン ルーチンの呼び出しでコンパイル時に次のエラーが発生します。
maxthreads = omp_get_max_threads()
1
Error: Unclassifiable statement at (1)
integer ::
しかし、メインルーチン内に上記の定義を含めると、問題なくコンパイルされ、目的の結果が得られます。nthreads = -1
gvarsモジュール内で定義するところまで行っても、メインルーチンで正しい値を出力できるので、それが含まれて正しく定義されていることがわかります。何らかの理由でそれをopenmp 関数からの戻り値。
これはなぜでしょう?
これらの値をグローバル変数として保持し、モジュールではなくメインルーチンで定義する他の方法はありますか?
問題があれば、gfortran を使用してコンパイルしています