Statistics
| Branch: | Revision:

root / synthbench / euroben-dm / mod2b / .svn / text-base / scal.f.svn-base @ 0:839f52ef7657

History | View | Annotate | Download (846 Bytes)

1
      Subroutine scal( n, a, x, incx )
2
      Use         numerics
3
      Implicit    None
4

    
5
      Real(l_) :: a, x(*)
6
      Integer  :: i, incx, m, mp1, n, nincx
7
! ----------------------------------------------------------------------
8
      If ( n <= 0 ) Return
9
      If ( incx /= 1 ) Then
10
         nincx = n*incx
11
         Do i = 1, nincx, incx
12
            x(i) = a*x(i)
13
         End Do
14
         Return
15
      End If
16
      m = Mod( n, 5 )
17
      If ( m /= 0 ) Then
18
         Do i = 1, m
19
           x(i) = a*x(i)
20
         End Do
21
         If ( n < 5 ) Return
22
      End If
23
      mp1 = m + 1
24
      Do i = mp1, n, 5
25
        x(i)   = a*x(i)
26
        x(i+1) = a*x(i+1)
27
        x(i+2) = a*x(i+2)
28
        x(i+3) = a*x(i+3)
29
        x(i+4) = a*x(i+4)
30
      End Do
31
! ----------------------------------------------------------------------
32
      End Subroutine scal