使用do循环输出整数1-10,
use omp_lib 可以使用函数OMP_get_thread_num()查看线程号,从0开始
使用 !$OMP DO 可以将do循环拆分到不同线程
program main
use omp_lib
implicit none
integer :: ii
write(*,*) "parallel"
!$OMP PARALLEL
Do ii=1,10
write(*,*) ii,OMP_get_thread_num()
end do
!$OMP END PARALLEL
write(*,*) " "
write(*,*) "parallel do"
!$OMP PARALLEL
!$OMP DO
Do ii=1,10
write(*,*) ii,OMP_get_thread_num()
end do
!$OMP END DO
!$OMP END PARALLEL
end program main
编译命令:
gfortran -fopenmp 1.f90
输出结果:
parallel
1 3
1 0
1 1
1 2
2 3
2 0
2 1
2 2
3 3
3 0
3 1
3 2
4 3
4 0
4 1
4 2
5 3
5 0
5 1
5 2
6 3
6 0
6 1
6 2
7 3
7 0
7 1
7 2
8 3
8 0
8 1
8 2
9 3
9 0
9 1
9 2
10 3
10 0
10 1
10 2
parallel do
9 3
7 2
1 0
4 1
10 3
8 2
2 0
5 1
3 0
6 1