Update fortran90.html.markdown

added DO CONCURRENT
This commit is contained in:
Ily 2022-11-04 01:16:03 +01:00 committed by GitHub
parent 9912e42945
commit 8c78bb13d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -436,6 +436,34 @@ contains
end module fruity
! ISO Standard Fortran 2008 introduced the DO CONCURRENT construct to allow you to express loop-level parallelism
integer :: i
real :: array(100)
DO CONCURRENT (i = 1:size(array))
array(i) = sqrt(i**i)
END DO
! Only calls to pure functions are allowed inside the loop and we can declare multiple indices:
integer :: x, y
real :: array(8, 16)
do concurrent (x = 1:size(array, 1), y = 1:size(array, 2))
array(x, y) = real(x)
end do
! loop indices can also declared inside the contruct:
real :: array(8, 16)
do concurrent (integer :: x = 1:size(array, 1), y = 1:size(array, 2))
array(x, y) = real(x)
end do
```
### More Resources