1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
subroutine dc1(a, b)
real, intent(inout) :: a(:,:)
integer :: N, i, j
N = size(a)
do concurrent (i=1:N, j=1:N, i<j)
a(i,j) = a(j,i)
end do
end subroutine
subroutine dc2(a, b)
real, intent(inout) :: a(:), b(:)
integer :: i
real :: x
x = 1.0
do concurrent (i=1:10) local(x)
if (a(i) > 0) then
x = sqrt(a(i))
a(i) = a(i) - x**2
end if
b(i) = b(i) - a(i)
end do
print *, x
end subroutine
subroutine dc3(a, b)
real, intent(inout) :: a(:), b(:)
integer :: i
real :: x
x = 1.0
do concurrent (i=1:10) shared(i) local(x) default(none)
if (a(i) > 0) then
x = sqrt(a(i))
a(i) = a(i) - x**2
end if
b(i) = b(i) - a(i)
end do
print *, x
end subroutine
subroutine dc4(a, b)
real, intent(inout) :: a(:), b(:)
integer :: i
real :: x
x = 1.0
do concurrent (i=1:10) default(none) local(x) shared(i)
if (a(i) > 0) then
x = sqrt(a(i))
a(i) = a(i) - x**2
end if
b(i) = b(i) - a(i)
end do
print *, x
end subroutine
|