1! { dg-do run } 2! 3! PR fortran/44646 4! 5! DO CONCURRENT 6! 7implicit none 8integer :: i, j 9integer :: A(5,5) 10 11A = 0.0 12do concurrent (i=1:5, j=1:5, (i/=j)) 13 if (i == 5) cycle 14 A(i,j) = i*j 15end do 16 17if (any (A(:,1) /= [0, 2, 3, 4, 0])) STOP 1 18if (any (A(:,2) /= [2, 0, 6, 8, 0])) STOP 2 19if (any (A(:,3) /= [3, 6, 0, 12, 0])) STOP 3 20if (any (A(:,4) /= [4, 8, 12, 0, 0])) STOP 4 21if (any (A(:,5) /= [5, 10, 15, 20, 0])) STOP 5 22 23A = -99 24 25do concurrent (i = 1 : 5) 26 forall (j=1:4, i/=j) 27 A(i,j) = i*j 28 end forall 29 if (i == 5) then 30 A(i,i) = -i 31 end if 32end do 33 34if (any (A(:,1) /= [-99, 2, 3, 4, 5])) STOP 6 35if (any (A(:,2) /= [ 2, -99, 6, 8, 10])) STOP 7 36if (any (A(:,3) /= [ 3, 6, -99, 12, 15])) STOP 8 37if (any (A(:,4) /= [ 4, 8, 12, -99, 20])) STOP 9 38if (any (A(:,5) /= [-99, -99, -99, -99, -5])) STOP 10 39 40end 41