File: doconcurrent.f90

package info (click to toggle)
lfortran 0.48.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 20,580 kB
  • sloc: cpp: 276,406; python: 12,336; ansic: 3,769; yacc: 2,311; f90: 649; sh: 37; makefile: 29
file content (27 lines) | stat: -rw-r--r-- 514 bytes parent folder | download | duplicates (2)
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
program doconcurrent
implicit none
real, dimension(10000) :: a, b, c
real :: scalar
integer :: i, nsize
scalar = 10
nsize = size(a)
do concurrent (i = 1:nsize)
    a(i) = 5
    b(i) = 5
end do
call triad(a, b, scalar, c)
print *, "End Stream Triad"

contains

    subroutine triad(a, b, scalar, c)
    real, intent(in) :: a(:), b(:), scalar
    real, intent(out) :: c(:)
    integer :: N, i
    N = size(a)
    do concurrent (i = 1:N)
        c(i) = a(i) + scalar * b(i)
    end do
    end subroutine

end program