/[MITgcm]/MITgcm_contrib/osse/EnKF/sscal.F
ViewVC logotype

Annotation of /MITgcm_contrib/osse/EnKF/sscal.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Wed May 19 15:43:11 2004 UTC (21 years, 2 months ago) by afe
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
o refining osse setup

1 afe 1.1 subroutine sscal(n,sa,sx,incx)
2     c
3     c scales a vector by a constant.
4     c uses unrolled loops for increment equal to 1.
5     c jack dongarra, linpack, 3/11/78.
6     c modified 3/93 to return if incx .le. 0.
7     c
8     real sa,sx(1)
9     integer i,incx,m,mp1,n,nincx
10     c
11     if( n.le.0 .or. incx.le.0 )return
12     if(incx.eq.1)go to 20
13     c
14     c code for increment not equal to 1
15     c
16     nincx = n*incx
17     do 10 i = 1,nincx,incx
18     sx(i) = sa*sx(i)
19     10 continue
20     return
21     c
22     c code for increment equal to 1
23     c
24     c
25     c clean-up loop
26     c
27     20 m = mod(n,5)
28     if( m .eq. 0 ) go to 40
29     do 30 i = 1,m
30     sx(i) = sa*sx(i)
31     30 continue
32     if( n .lt. 5 ) return
33     40 mp1 = m + 1
34     do 50 i = mp1,n,5
35     sx(i) = sa*sx(i)
36     sx(i + 1) = sa*sx(i + 1)
37     sx(i + 2) = sa*sx(i + 2)
38     sx(i + 3) = sa*sx(i + 3)
39     sx(i + 4) = sa*sx(i + 4)
40     50 continue
41     return
42     end

  ViewVC Help
Powered by ViewVC 1.1.22