mirror of
https://github.com/OpenMP/Examples.git
synced 2025-04-07 23:22:11 +01:00
41 lines
774 B
Fortran
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
|