我为我的全局变量声明定义了一个模块“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 进行编译