cpp: #include <stdio.h>\n#if (_OPENMP<201511)\n#error "An OpenMP 4.5 compiler is needed to compile this test."\n#endif\n#include <stdio.h>\nint a[100][100];\nint main()\n{\n  int i, j;\n#pragma omp parallel\n  {\n#pragma omp single\n    {\n#pragma omp taskloop\n      for (i = 0; i < 100; i++)\n        for (j = 0; j < 100; j++)\n          a[i][j]+=1; \n    }\n  }\n  printf ("a[50][50]=%d\n", a[50][50]);\n  return 0;\n}\n
fortran: program DRB095_doall2_taskloop_orig_yes\n    use omp_lib\n    use DRB095\n    implicit none\n\n    integer :: len, i, j\n    len = 100\n    allocate (a(len,len))\n\n    !$omp parallel\n        !$omp single\n            !$omp taskloop\n            do i = 1, len\n                do j = 1, len\n                    a(i,j) = a(i,j)+1\n                end do\n            end do\n            !$omp end taskloop\n        !$omp end single\n    !$omp end parallel\n\n    print 100, a(50,50)\n    100 format ('a(50,50) =',i3)\n\nend program