87      real(
dp) function 
ddot(n,dx,incx,dy,incy)
 
   90      integer(ip), 
intent(in) :: n,incx,incy
 
   91      real(
dp),    
intent(in) :: dx(*),dy(*)
 
   94      integer(ip) :: i,ix,iy,m
 
  105      if ( incx /= 1 .or. incy /= 1 ) 
then 
  107         if ( 0 <= incx ) 
then 
  110            ix = ( - n + 1 ) * incx + 1
 
  113         if ( 0 <= incy ) 
then 
  116            iy = ( - n + 1 ) * incy + 1
 
  120            dtemp = dtemp + dx(ix) * dy(iy)
 
  132              dtemp = dtemp + dx(i) * dy(i)
 
  136              dtemp = dtemp + dx(i)*dy(i) + dx(i+1)*dy(i+1) + dx(i+2)*dy(i+2) &
 
  137                                          + dx(i+3)*dy(i+3) + dx(i+4)*dy(i+4)
 
  184      real(dp) function 
dnrm2 ( n, x, incx )
 
  187      integer(ip), 
intent(in) :: n,incx
 
  188      real(dp),    
intent(in) :: x(*)
 
  191      real(dp)    :: ssq,absxi,norm,scale
 
  193      if ( n < 1 .or. incx < 1 ) 
then 
  195      else if ( n == 1 ) 
then 
  201         do ix = 1, 1 + ( n - 1 )*incx, incx
 
  202            if ( x(ix) /= zero ) 
then 
  204               if ( scale < absxi ) 
then 
  205                  ssq = 1_dp + ssq * ( scale / absxi )**2
 
  208                  ssq = ssq + ( absxi / scale )**2
 
  212         norm  = scale * sqrt( ssq )
 
real(dp) function, public ddot(n, dx, incx, dy, incy)
DDOT forms the dot product of two vectors.
 
real(dp) function, public dnrm2(n, x, incx)
DNRM2 returns the euclidean norm of a vector.
 
Defines precision and range in real(kind=dp) and integer(kind=ip) for portability and a few constants...
 
real(dp), parameter, public one
 
real(dp), parameter, public zero
 
integer, parameter, public ip
 
integer, parameter, public dp