fortran+omp:必须在程序的开头声明OMP_GET_NUM_THREADS,OMP_GET_THREAD_NUM

 

 (1)       program test1
c!$          use omp_lib
        INTEGER TID,OMP_GET_THREAD_NUM
!$omp parallel  private(i)
        TID=OMP_GET_THREAD_NUM()
         print *,'threadid:',TID
!$omp end parallel

        end

若是不声明OMP_GET_THREAD_NUM,OMP_GET_NUM_THREADS那么不会得到正确的线程号和总线程数。

原因:??????

(2) 但是如果在开头使用"use omp_lib",则不需要声明。

但是在某些程序中还是得到 线程数 线程号为浮点数的现象

 ??????

原因:子程序里面没有重复声明use omp_lib.

原文地址:https://www.cnblogs.com/catkins/p/5270804.html