2022-11-04 09:35:42 -07:00

31 lines
686 B
Fortran

! @@name: threadprivate.6
! @@type: F-fixed
! @@operation: run
! @@expect: success
! @@version: pre_omp_3.0
MODULE INC_MODULE_GOOD3
REAL, POINTER :: WORK(:)
SAVE WORK
!$OMP THREADPRIVATE(WORK)
END MODULE INC_MODULE_GOOD3
SUBROUTINE SUB1(N)
USE INC_MODULE_GOOD3
!$OMP PARALLEL PRIVATE(THE_SUM)
ALLOCATE(WORK(N))
CALL SUB2(THE_SUM)
WRITE(*,*)THE_SUM
!$OMP END PARALLEL
END SUBROUTINE SUB1
SUBROUTINE SUB2(THE_SUM)
USE INC_MODULE_GOOD3
WORK(:) = 10
THE_SUM=SUM(WORK)
END SUBROUTINE SUB2
PROGRAM INC_GOOD3
N = 10
CALL SUB1(N)
END PROGRAM INC_GOOD3