现在的位置: 首页 > 综合 > 正文

OpenmMP 并行区域嵌套

2013年08月01日 ⁄ 综合 ⁄ 共 681字 ⁄ 字号 评论关闭

OpenmMP 并行区域嵌套

Fortran OpenMP设计过程中,我们可能经常遇到这类需求:在并行区域内的不同地方需要调用一个函数,该函数定义在当前模块或者其它模块中,并且函数中包含并行块。Fortran OpenMP 是支持这种并行区域嵌套的,示例代码如下。

PROGRAM Main_Calibration

  use omp_lib ! zhankunlin openmp parallel 2012-6-6

  integer I_LOOP
  integer i
  CHARACTER(LEN=50) :: FMTT
  CHARACTER(LEN=50) :: CHAR_NC_DYRSIM
  character(len=3), PARAMETER :: FILE_END='EOF'

  open(88,file='./run_log.txt', POSITION='APPEND', ACTION='WRITE')

  !$omp parallel do 
  do I_LOOP = 1, 100

     call parameter_input

  end do
  !$omp end parallel do


end program Main_Calibration

subroutine parameter_input

   !$omp critical (calibration_phy_biochm_readfile_1)

   write(88,'(a,2x,i3,a)') "[ LOOP ", I_LOOP, " skip]"

    *************   

   !$omp end critical (calibration_phy_biochm_readfile_1)

 end subroutine parameter_input

抱歉!评论已关闭.