回 帖 发 新 帖 刷新版面

主题:openmp并行跟踪调试,说“没有可用于当前位置的源代码”,怎么回事啊?

SUBROUTINE SUB_add(ARRAY1)
    INCLUDE "omp_lib.h" ! or USE OMP_LIB
REAL ARRAY1(10)
!$OMP PARALLEL do
  do i=1,10
     ARRAY1(i)= ARRAY1(i)+i
  end do
!$OMP END PARALLEL do  
END SUBROUTINE SUB_add

    SUBROUTINE SUB_min(ARRAY1)
    INCLUDE "omp_lib.h" ! or USE OMP_LIB
REAL ARRAY1(10)
!$OMP PARALLEL do
  do i=1,10
     ARRAY1(i)= ARRAY1(i)+10
  end do
!$OMP END PARALLEL do  
END SUBROUTINE SUB_min

PROGRAM A5
REAL ARRAY1(10)
ARRAY1=1.0
CALL SUB_add(ARRAY1)
CALL SUB_min(ARRAY1)
print*,ARRAY1
END PROGRAM A5
就这么简单的程序,在“CALL SUB_add(ARRAY1),CALL SUB_min(ARRAY1)”两句前设置断点时,调试的时候就会出现“没有可用于当前位置的源代码”,请指教,怎么回事?因为我想逐行调试。

回复列表 (共9个回复)

沙发

可能是有并行前处理的事儿吧。
把断点设置到do i=1,10那儿试试?

板凳

OpenMP是多线程并行,当出现找不到适合当前位置的源代码时,切换线程,总有线程有合适的源代码的。因为遇到end parallel后派生进程已经终止了。

3 楼

你也在Fortran Space群里啊:)我是好小爱新:)那天回完你后掉线了:)

4 楼

cgl_lgs兄, 你进了雪球大的群啊?

5 楼

嗯那,看你们进了才想想是不是也进去玩儿玩儿混个脸熟神马的~~~结果进去时发现你们全跑了~~~~

6 楼

勋哥好像被不知道的某人踢了, 我是原本是想退出一个CUDA群错手点了退出fotran群, 最后觉得退出就算了.

7 楼

董兄据他本人说是不做Fortran开发了,所以退出了所有跟Fortran有关的群。

8 楼

额躺着也中枪

9 楼


呵呵,谢谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册