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.

 

posted @ 2012-03-12 15:36  唐僧吃肉  阅读(1617)  评论(0编辑  收藏  举报