cpp: #include <string.h>\nint main(int argc,char *argv[])\n{\n  int i;\n  int j;\n  double a[20][20];\n  memset(a,0,(sizeof(a)));\n\n  for (i = 0; i < 20 -1; i += 1) {\n#pragma omp parallel for\n    for (j = 0; j < 20; j += 1) {\n      a[i][j] += a[i + 1][j];\n    }\n  }\n  return 0;\n}\n
fortran: program DRB053_inneronly1_orig_no\n    use omp_lib\n    implicit none\n\n    integer :: i, j\n\n    real, dimension(:,:), allocatable :: a\n    allocate (a(20,20))\n\n    do i = 1, 20\n        do j = 1, 20\n            a(i,j) = 0.0\n        end do\n    end do\n\n    do i = 1, 19\n    !$omp parallel do\n        do j = 1, 20\n            a(i,j) = a(i,j)+a(i+1,j)\n        end do\n    !$omp end parallel do\n    end do\n\n    deallocate(a)\nend program