! See also "../../c-c++-common/goacc/loop-2-parallel.c". program test implicit none integer :: i, j !$acc parallel !$acc loop auto DO i = 1,10 ENDDO !$acc loop gang DO i = 1,10 ENDDO !$acc loop gang(static:5) DO i = 1,10 ENDDO !$acc loop gang(static:*) DO i = 1,10 ENDDO !$acc loop gang DO i = 1,10 !$acc loop vector DO j = 1,10 ENDDO !$acc loop worker DO j = 1,10 ENDDO !$acc loop gang ! { dg-error "inner loop uses same OpenACC parallelism as containing loop" } DO j = 1,10 ENDDO ENDDO !$acc loop seq gang ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc loop worker DO i = 1,10 ENDDO !$acc loop worker DO i = 1,10 !$acc loop vector DO j = 1,10 ENDDO !$acc loop worker ! { dg-error "inner loop uses same OpenACC parallelism as containing loop" } DO j = 1,10 ENDDO !$acc loop gang ! { dg-error "incorrectly nested OpenACC loop parallelism" } DO j = 1,10 ENDDO ENDDO !$acc loop seq worker ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc loop gang worker DO i = 1,10 ENDDO !$acc loop vector DO i = 1,10 ENDDO !$acc loop vector DO i = 1,10 !$acc loop vector ! { dg-error "inner loop uses same OpenACC parallelism as containing loop" } DO j = 1,10 ENDDO !$acc loop worker ! { dg-error "incorrectly nested OpenACC loop parallelism" } DO j = 1,10 ENDDO !$acc loop gang ! { dg-error "incorrectly nested OpenACC loop parallelism" } DO j = 1,10 ENDDO ENDDO !$acc loop seq vector ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc loop gang vector DO i = 1,10 ENDDO !$acc loop worker vector DO i = 1,10 ENDDO !$acc loop auto DO i = 1,10 ENDDO !$acc loop seq auto ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc loop gang auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc loop worker auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc loop vector auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc end parallel !$acc parallel loop auto DO i = 1,10 ENDDO !$acc parallel loop gang DO i = 1,10 ENDDO !$acc parallel loop gang(static:5) DO i = 1,10 ENDDO !$acc parallel loop gang(static:*) DO i = 1,10 ENDDO !$acc parallel loop seq gang ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc parallel loop worker DO i = 1,10 ENDDO !$acc parallel loop seq worker ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc parallel loop gang worker DO i = 1,10 ENDDO !$acc parallel loop vector DO i = 1,10 ENDDO !$acc parallel loop seq vector ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc parallel loop gang vector DO i = 1,10 ENDDO !$acc parallel loop worker vector DO i = 1,10 ENDDO !$acc parallel loop auto DO i = 1,10 ENDDO !$acc parallel loop seq auto ! { dg-error "'seq' overrides other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc parallel loop gang auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc parallel loop worker auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" } DO i = 1,10 ENDDO !$acc parallel loop vector auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" } DO i = 1,10 ENDDO end