anchor.diff:      ! If we have a remainder, do a clean-up loop...
       if ( m /= 0 ) then
         do i = 1, m
  -        stemp = stemp + ( sx( i ) + sy( i ) )
  +        dtemp = dtemp + ( sx( i ) + sy( i ) )
         end do
       end if
       if ( N < M ) then
  -      ddot = stemp
  +      ddot = dtemp
         return
       end if
       mp1 = m + 1
       do i = mp1, N, 5
  -      stemp = stemp + &
  +      dtemp = dtemp + &
           ( sx( i ) * sy( i ) ) + &
           ( sx( i+1 ) * sy( i+1 ) ) + &
           ( sx( i+2 ) * sy( i+2 ) ) + &
  
positive.code:       iy = 0
      endif
      do i = 1, N
        stemp = stemp + ( sx( ix ) * sy( iy ) )
        ix = ix + strideX
        iy = iy + strideY
      end do
    endif
    ddot = stemp
    return
  end function ddot
negative.code:   double precision, intent(in) :: sx(*), sy(*)
    ! ..
    ! Local scalars:
    double precision :: dtemp
    integer :: mp1, ix, iy, i, m
    ! ..
    ! Intrinsic functions:
    intrinsic mod
    ! ..
    dtemp = 0.0e0
    ddot = 0.0e0
    ! ..
    if ( N <= 0 ) then
  