OpenMP-Examples/sources/Example_nowait.2.f90

28 lines
560 B
Fortran

! @@name: nowait.2f
! @@type: F-free
! @@compilable: yes
! @@linkable: no
! @@expect: success
SUBROUTINE NOWAIT_EXAMPLE2(N, A, B, C, Y, Z)
INTEGER N
REAL A(*), B(*), C(*), Y(*), Z(*)
INTEGER I
!$OMP PARALLEL
!$OMP DO SCHEDULE(STATIC)
DO I=1,N
C(I) = (A(I) + B(I)) / 2.0
ENDDO
!$OMP END DO NOWAIT
!$OMP DO SCHEDULE(STATIC)
DO I=1,N
Z(I) = SQRT(C(I))
ENDDO
!$OMP END DO NOWAIT
!$OMP DO SCHEDULE(STATIC)
DO I=2,N+1
Y(I) = Z(I-1) + A(I)
ENDDO
!$OMP END DO NOWAIT
!$OMP END PARALLEL
END SUBROUTINE NOWAIT_EXAMPLE2