File1: #include <stdio.h>\nint n=100, m=100;\ndouble b[100][100];\n\nvoid foo()\n{\n  int i,j;\n#pragma omp parallel for private(j)\n  for (i=0;i<n;i++)\n    for (j=0;j<m-1;j++) // Be careful about bounds of j\n      b[i][j]=b[i][j+1];\n}\n\nint main()\n{\n  foo();\n  return 0;\n}\n
File2: program DRB063_outeronly1_orig_no\n    use omp_lib\n    implicit none\n\n    call foo()\ncontains\n    subroutine foo()\n        integer :: i, j, n, m, len\n        real, dimension(:,:), allocatable :: b\n\n        len = 100\n        allocate (b(len,len))\n        n = len\n        m = len\n        !$omp parallel do private(j)\n        do i = 1, n\n            do j = 1, m-1\n                b(i,j) = b(i,j+1)\n            end do\n        end do\n        !$omp end parallel do\n\n    end subroutine foo\nend program