File1: #include <stdlib.h>\nint main(int argc, char* argv[])\n{\n  int i;\n  int len=100;\n\n  if (argc>1)\n    len = atoi(argv[1]);\n\n  int a[len], b[len];\n  for (i=0;i<len;i++)\n  {\n    a[i]=i;\n    b[i]=i+1;\n  }\n#pragma omp simd\n  for (i=0;i<len-1;i++)\n    a[i+1]=a[i]*b[i];\n  return 0;\n}\n
File2: program DRB025_simdtruedep_var_yes\n    use omp_lib\n    implicit none\n\n    integer :: i, len, argCount, allocStatus, rdErr, ix\n    character(len=80), dimension(:), allocatable :: args\n    integer, dimension(:), allocatable :: a\n    integer, dimension(:), allocatable :: b\n\n    len = 100\n\n    argCount = command_argument_count()\n    if (argCount == 0) then\n        write (*,'(a)') "No command line arguments provided."\n    end if\n\n    allocate(args(argCount), stat=allocStatus)\n    if (allocStatus > 0) then\n        write (*,'(a)') "Allocation error, program terminated."\n        stop\n    end if\n\n    do ix = 1, argCount\n        call get_command_argument(ix,args(ix))\n    end do\n\n    if (argCount >= 1) then\n        read (args(1), '(i10)', iostat=rdErr) len\n        if (rdErr /= 0 ) then\n            write (*,'(a)') "Error, invalid integer value."\n        end if\n    end if\n\n    allocate (a(len))\n    allocate (b(len))\n\n    do i = 1, len\n        a(i) = i\n        b(i) = i+1\n    end do\n\n    !$omp simd\n    do i = 1, len-1\n        a(i+1) = a(i) + b(i)\n    end do\n\n    do i = 1, len\n        write(6,*) 'Values for i and a(i) are:', i, a(i)\n    end do\n\n    deallocate(args,a,b)\n\nend program