mirror of
https://github.com/OpenMP/Examples.git
synced 2025-04-10 08:22:11 +01:00
22 lines
433 B
Fortran
22 lines
433 B
Fortran
! @@name: doacross.1
|
|
! @@type: F-free
|
|
! @@operation: compile
|
|
! @@expect: success
|
|
! @@version: omp_5.2
|
|
subroutine work( N, A, B, C )
|
|
integer :: N, i
|
|
real, dimension(N) :: A, B, C
|
|
real, external :: foo, bar, baz
|
|
|
|
!$omp do ordered(1)
|
|
do i=2, N
|
|
A(i) = foo(i)
|
|
|
|
!$omp ordered doacross(sink: i-1)
|
|
B(i) = bar(A(i), B(i-1))
|
|
!$omp ordered doacross(source: omp_cur_iteration)
|
|
|
|
C(i) = baz(B(i))
|
|
end do
|
|
end subroutine
|