OpenMP-Examples/program_control/sources/pause_resource.2b.f90
2022-11-04 09:35:42 -07:00

35 lines
730 B
Fortran

! @@name: pause_resource.2b
! @@type: F-free
! @@operation: link
! @@expect: success
! @@version: pre_omp_3.0
! This program compiles to an executable "subprogram"
subroutine compute(i, j, k, r)
implicit none
integer :: i, j, k
real(8) :: r
r = i + j + k
end subroutine compute
program subprogram
implicit none
integer :: i, j, k
real(8) :: s, r
integer, parameter :: n = 500
write (*,*) 'In subprogram'
s = 0.d0
!$omp parallel do private(r) reduction(+:s)
do i = 1, n
do j = 1, n
do k = 1, n
call compute(i, j, k, r)
s = s + r
end do
end do
end do
!$omp end parallel do
write (*,*) 'Sum = ',s
end program subprogram