小编Pet*_*vin的帖子

Linux Fortran OpenMP - 从 OpenMP 任务调用的子例程访问全局变量

从 OpenMP 任务调用的内部子例程访问程序全局变量是否合法/有效?

ifort 2021.7.0 20220726 不会报告错误,但似乎会根据编译器选项产生随机结果。例子:

program test1
  implicit none
  integer :: i, j, g
  g = 42
  !$OMP PARALLEL DEFAULT(SHARED)
     !$OMP SINGLE
        i = 0
        j = 1
        do while (j < 60)
           i = i + 1
           !$OMP TASK DEFAULT(SHARED) FIRSTPRIVATE(i,j)
              call sub(i,j)
           !$OMP END TASK
           j = j + j
        end do
     !$OMP END SINGLE
  !$OMP END PARALLEL
  stop

contains

  subroutine sub(i,j)
    implicit none
    integer i,j
    !$OMP CRITICAL(unit6)
       write(6,*) i,j,g
    !$OMP END CRITICAL(unit6)
  end subroutine sub …
Run Code Online (Sandbox Code Playgroud)

linux fortran openmp intel-fortran

6
推荐指数
1
解决办法
307
查看次数

标签 统计

fortran ×1

intel-fortran ×1

linux ×1

openmp ×1