OpenMP-Examples/sources/Example_barrier_regions.1.f

41 lines
774 B
Fortran

! @@name: barrier_regions.1f
! @@type: F-fixed
! @@compilable: yes
! @@linkable: yes
! @@expect: success
SUBROUTINE WORK(N)
INTEGER N
END SUBROUTINE WORK
SUBROUTINE SUB3(N)
INTEGER N
CALL WORK(N)
!$OMP BARRIER
CALL WORK(N)
END SUBROUTINE SUB3
SUBROUTINE SUB2(K)
INTEGER K
!$OMP PARALLEL SHARED(K)
CALL SUB3(K)
!$OMP END PARALLEL
END SUBROUTINE SUB2
SUBROUTINE SUB1(N)
INTEGER N
INTEGER I
!$OMP PARALLEL PRIVATE(I) SHARED(N)
!$OMP DO
DO I = 1, N
CALL SUB2(I)
END DO
!$OMP END PARALLEL
END SUBROUTINE SUB1
PROGRAM EXAMPLE
CALL SUB1(2)
CALL SUB2(2)
CALL SUB3(2)
END PROGRAM EXAMPLE