c c c vectorizer test program c c provided by kuck and associates inc. c c s001: induction variable with multiple increments c s002: induction variable in two loops; collapsing possible c s003: induction variable in two loops; recurrence in inner loop c s004: induction variable in two loops; recurrence in inner loop c s005: induction variable under an if; can't be vectorized c s006: induction variable under both sides of if (same value) c s007: if to elemental min c s008: if to max reduction c s009: if to max with index reduction, 1 dimension c s010: if to max with index reduction, 2 dimensions c s011: if to max-abs c s012: if/goto to block if-then-else c s013: if to last-1 c s014: if loop to do loop, zero trip c s015: if loop to do loop, one trip c s016: if loop to do loop, code on both sides of increment, exit in c s017: if loop to do loop, code on both sides of increment, exit at c s018: if loop to do loop, code on both sides of increment, exit at c s019: if loop to do loop, scalar expansion needed c s020: if loop to do loop, multiple increments under an if c s021: if loop to do loop, .eq. test (instead of .lt.,.le.,.gt.,.ge c s022: if loop to do loop, interchanging with do necessary c s023: if loop to do loop, interchanging with if loop necessary c s024: partial loop vectorization, recurrence in middle c s025: partial loop vectorization, vector in middle c s026: partial loop vectorization, vector in middle, reordering pos c s027: statement reordering allows vectorization c s028: preloading necessary to allow vectorization c s029: interchanging of triangular loops c s030: transpose vectorization c s031: interchanging of triangular loops c s032: lower triangular system c s033: lower triangular system modified, interchanging necessary c s034: forward substitution c s035: forward substitution c s036: expression in loop bounds and subscripts c s037: expression in loop bounds and subscripts c s038: expression in loop bounds and subscripts c s039: carry around variable c s040: carry around variables, 2 levels c s041: wrap around variable, 1 level c s042: wrap around variable, 2 levels c s043: loop rerolling c s044: loop rerolling c s045: loop rerolling c s046: loop invariant if c s047: loop invariant if around inner loop, interchanging needed c s048: if around inner loop, interchanged needed c s049: zero trip if around inner loop, interchanging needed c s050: search loop c s051: search loop saving index c s052: other loop exit with code before exit c s053: other loop exit with code before and after exit c s054: other loop exit with assignment to temporary before exit c s055: indirect addressing on rhs c s056: indirect addressing on lhs c s057: indirect addressing on rhs and lhs c s058: indirect addressing on rhs and lhs, possible dependence cycl c s059: small inner loop, unknown outer loop bounds c s060: small inner loop, large outer loop bounds c s061: a(i)=a(1) but no actual dependence cycle c s062: a(i)=a(1) with actual dependence cycle c s063: false dependence cycle breaking c s064: false dependence cycle breaking c s065: semantic if removal c s066: ifs which trim the index set c s067: collapsing with constant loop bounds c s068: collapsing with constant loop bounds, interchanging needed c s069: collapsing with variable loop bounds c s070: collapsing with loop bounds close c s071: collapsing with loop bounds close, 4 point difference operat c s072: collapsing with linearized array c s073: universal compilation - passing parameter information into s c s074: universal compilation - passing info into subroutine, more t c s075: universal compilation - collecting info from subroutine c s076: scalar expansion, assigned under if c s077: scalar expansion, assigned under both sides of if c s078: nested vector ifs c s079: scalar and vector ifs c s080: scalar and vector ifs c s081: vector if/gotos c s082: interchanging with distribution needed c s083: interchanging with two inner loops c s084: interchanging with one of two inner loops c s085: sum reduction c s086: product reduction c s087: first order linear recurrence c s088: second order linear recurrence c s089: third order linear recurrence c s090: packing c s091: unpacking c s092: complex arithmetic c s093: intrinsics c s094: collapsing with index on right hand side c s095: if loop with variable increment c s096: while loop c s097: fft subscripting c s098: fft subscripting c s099: index set splitting c s100: array expansion c s101: array expansion c s102: symbolic dependence tests c s103: symbolic dependence tests c s104: coupled recurrence c s105: coupled sum reduction c s106: coupled max reduction c s107: coupled min with index reduction c stop end subroutine s001(a,b,c,n) integer n real a(*),b(*),c(*) j = 0 do 10 i = 1,n j = j + 1 a(j) = b(i) j = j + 1 a(j) = c(i) 10 continue return end c subroutine s002(a,bb,cc,n) integer n real a(*),bb(n,*),cc(n,*) k = 0 do 20 i = 1,n do 20 j = 1,n k = k + 1 a(k) = bb(i,j) + cc(i,j) 20 continue return end c subroutine s003(a,bb,n) integer n real a(*),bb(n,*) k = 2 do 30 i = 1,n do 31 j = 1,n-1 a(k) = a(k-1) + bb(i,j) k = k + 1 31 continue k = k + 1 30 continue return end c subroutine s004(a,bb,n) integer n real a(*),bb(n,*) k = 1 do 40 i = 1,n do 41 j = 2,n bb(i,j) = bb(i,j-1) + a(k) k = k + 1 41 continue k = k + 1 40 continue return end c subroutine s005(a,b,c,n) integer n real a(*),b(*),c(*) j = 0 do 50 i = 1,n j = j + 1 a(j) = b(i) if(c(i).gt.0) then j = j + 1 a(j) = c(i) endif 50 continue return end c subroutine s006(a,b,c,n) integer n real a(*),b(*),c(*) j = 0 do 60 i = 1,n if(b(i).gt.0) then j = j + 1 a(j) = b(i) else j = j + 1 a(j) = c(i) endif 60 continue return end c subroutine s007(a,b,n) integer n real a(*),b(*) do 70 i = 1,n if(a(i).gt.b(i)) a(i) = b(i) 70 continue return end c subroutine s008(x,b,n) integer n real x,b(*) do 80 i = 1,n if(b(i).gt.x) x = b(i) 80 continue return end c subroutine s009(x,j,b,n) integer n,j real x,b(*) do 90 i = 1,n if(b(i).gt.x)then x = b(i) j = i endif 90 continue return end c subroutine s010(x,j1,j2,bb,n) integer n,j1,j2 real x,bb(n,n) do 100 i = 1,n do 100 j = 1,n if(bb(i,j).ge.x)then x = bb(i,j) j1 = i j2 = j endif 100 continue return end c subroutine s011(x,b,n) integer n real x,b(*) do 110 i = 1,n if(abs(x).lt.abs(b(i)))then x = b(i) endif 110 continue return end c subroutine s012(a,b,c,n) integer n real a(*),b(*),c(*) do 120 i = 1,n if(a(i).gt.0)goto 121 b(i) = -b(i) goto 122 121 continue c(i) = -c(i) 122 continue a(i) = b(i) + c(i) 120 continue return end c subroutine s013(a,j,n) integer j,n real a(*) do 130 i = 1,n if(a(i).eq.0) j = i 130 continue return end c subroutine s014(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 140 continue i = i + 1 if(i.gt.n)goto 141 a(i) = b(i) + c(i) goto 140 141 continue return end c subroutine s015(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 150 continue i = i + 1 a(i) = b(i) + c(i) if(i.lt.n)goto 150 151 continue return end c subroutine s016(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 160 continue b(i) = abs(b(i)) i = i + 1 if(i.gt.n)goto 161 a(i) = c(i) goto 160 161 continue return end c subroutine s017(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 170 continue b(i) = abs(b(i)) i = i + 1 a(i) = c(i) if(i.gt.n)goto 171 goto 170 171 continue return end c subroutine s018(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 180 continue if(i.gt.n)goto 181 b(i) = abs(b(i)) i = i + 1 a(i) = c(i) goto 180 181 continue return end c subroutine s019(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 190 continue if(i.gt.n)goto 191 x = abs(b(i)) a(i) = x + c(i) b(i) = x i = i + 1 goto 190 191 continue return end c subroutine s020(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 200 continue if(i.gt.n)goto 201 if(a(i).gt.0)then x = b(i) i = i + 1 y = a(i) else x = b(i) i = i + 1 y = a(i) endif c(i) = x-y goto 200 201 continue return end c subroutine s021(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 210 continue i = i + 1 if(i.eq.n)goto 211 a(i) = b(i) + c(i) goto 210 211 continue return end c subroutine s022(aa,bb,cc,n) integer n real aa(n,*),bb(n,*),cc(n,*) i = 1 222 if(i.gt.n) goto 221 do 220 j = 3,n aa(i,j) = aa(i,j-1)*bb(i,j-1) bb(i,j) = aa(i,j-1)+bb(i,j-2) 220 cc(i,j) = cc(i,j-1)*cc(i,j-2) i = i + 1 goto 222 221 continue return end c subroutine s023(aa,bb,cc,n) integer n real aa(n,*),bb(n,*),cc(n,*) i = 1 232 if(i.gt.n) goto 231 j = 3 233 if(j.gt.n) goto 230 aa(i,j) = aa(i,j-1)*bb(i,j-1) bb(i,j) = aa(i,j-1)+bb(i,j-2) cc(i,j) = cc(i,j-1)*cc(i,j-2) j = j + 1 goto 233 230 i = i + 1 goto 232 231 continue return end c subroutine s024(a,b,c,n) integer n real a(*),b(*),c(*) do 240 i = 2,n a(i) = a(i) + b(i) b(i) = b(i-1)*b(i-1)*a(i) a(i) = a(i) - b(i) 240 continue return end c subroutine s025(a,b,c,n) integer n real a(*),b(*),c(*) do 250 i = 3,n a(i) = a(i) + b(i) b(i) = b(i-1)*b(i-1)*a(i) a(i) = a(i) - b(i) c(i) = c(i-1)*c(i-2)+a(i) a(i) = a(i) + c(i) 250 continue return end c subroutine s026(a,b,c,n) integer n real a(*),b(*),c(*) do 260 i = 3,n a(i) = a(i) + b(i) b(i) = b(i-1)*b(i-1)*a(i) a(i) = a(i) - b(i) c(i) = c(i-1)*c(i-2)+a(i) a(i) = a(i) + c(i) 260 continue return end c subroutine s027(a,b,c,n) integer n real a(*),b(*),c(*) do 270 i = 2,n-1 a(i) = b(i-1) + c(i) b(i) = b(i+1) - 2. 270 continue return end c subroutine s028(a,b,c,n) integer n real a(*),b(*),c(*) do 280 i = 2,n-1 a(i) = b(i) + c(i) b(i) = a(i) + a(i+1) 280 continue return end c subroutine s029(aa,bb,n) integer n real aa(n,*),bb(n,*) do 290 j = 2,n do 290 i = 2,j aa(i,j) = aa(i-1,j)*aa(i-1,j)+bb(i,j) 290 continue return end c subroutine s030(aa,bb,n) integer n real aa(n,*),bb(n,*) do 300 j = 1,n do 300 i = 1,j-1 aa(i,j) = aa(j,i) + bb(i,j) 300 continue return end c subroutine s031(aa,bb,n) integer n real aa(n,*),bb(n,*) do 310 j = 1,n do 310 i = 1,j-1 aa(i,j) = aa(j,i) + aa(i-1,j)*aa(i-1,j) 310 continue return end c subroutine s032(aa,n) integer n real aa(n,*) do 320 j = 1,n do 320 k = 1,j-1 do 320 i = k+1,n 320 aa(i,j) = aa(i,j) + aa(i,k) * aa(k,j) return end c subroutine s033(aa,n) integer n real aa(n,*) do 330 j = 2,n do 330 k = 2,j-1 do 330 i = k+1,n 330 aa(i,j) = aa(i,j) + aa(i,k) / aa(i-1,j) * (aa(k,j)/aa(kk-1,j)) return end c subroutine s034(a,b,n) integer n real a(*),b(*) m = 1 if(a(1).gt.0)then a(1) = b(1) endif do 340 i = 2,n-1 a(i) = a(i+m) + b(i) 340 continue return end c subroutine s035(a,b,n) integer n real a(*),b(*) m = 1 if(a(1).gt.0)then do 350 i = 2,n-1 a(i) = (a(i+m) + b(i)) / a(1) 350 continue endif return end c subroutine s036(a,b,n) integer n real a(*),b(*) do 360 i = 1,n/2 a(i) = a(i+n/2) + b(i) 360 continue return end c subroutine s037(a,b,n) integer n real a(*),b(*) do 370 i = 1,n/2 a(i+n/2) = a(i) + b(i) 370 continue return end c subroutine s038(a,b,n) integer n real a(*),b(*) do 380 i = n/2,1,-1 a(i+n/2) = a(i) + b(i) 380 continue return end c subroutine s039(a,b,n) integer n real a(*),b(*) x = a(n) do 390 i = 1,n b(i) = (a(i) + x) / 2. x = a(i) 390 continue return end c subroutine s040(a,b,n) integer n real a(*),b(*) x = a(n) y = a(n-1) do 400 i = 1,n b(i) = (a(i) + x + y) / 3. y = x x = a(i) 400 continue return end c subroutine s041(a,b,n) integer n real a(*),b(*) im1 = n do 410 i = 1,n b(i) = (a(i) + a(im1)) / 2. im1 = i 410 continue return end c subroutine s042(a,b,n) integer n real a(*),b(*) im1 = n im2 = n-1 do 420 i = 1,n b(i) = (a(i) + a(im1) + a(im2)) / 3. im2 = im1 im1 = i 420 continue return end c subroutine s043(a,b,x,n) integer n real a(*),b(*),x do 430 i = 1,n,5 x = x + a(i)*b(i) + a(i+1)*b(i+1) + a(i+2)*b(i+2) $ + a(i+3)*b(i+3) + a(i+4)*b(i+4) 430 continue return end c subroutine s044(a,b,x,n) integer n real a(*),b(*),x do 440 i = 1,n,5 x = x + a(i)*b(i) x = x + a(i+1)*b(i+1) x = x + a(i+2)*b(i+2) x = x + a(i+3)*b(i+3) x = x + a(i+4)*b(i+4) 440 continue return end c subroutine s045(a,b,n) integer n real a(*),b(*) do 450 i = 1,n,5 a(i) = a(i+1) + a(i)*b(i) a(i+1) = a(i+2) + a(i+1)*b(i+1) a(i+2) = a(i+3) + a(i+2)*b(i+2) a(i+3) = a(i+4) + a(i+3)*b(i+3) a(i+4) = a(i+5) + a(i+4)*b(i+4) 450 continue return end c subroutine s046(a,b,n) integer n real a(*),b(*) do 460 i = 2,n if(b(1).gt.0)then b(i) = a(i) + b(i-1) endif 460 continue return end c subroutine s047(aa,bb,n) integer n real aa(n,*),bb(n,*) do 470 i = 2,n if(bb(1,1).gt.0)then do 471 j = 2,n 471 bb(i,j) = bb(i,j)/bb(i,j-1) endif 470 continue return end c subroutine s048(aa,bb,n) integer n real aa(n,*),bb(n,*) do 480 i = 2,n if(bb(i,1).gt.0)then do 481 j = 2,n 481 bb(i,j) = bb(i,j)/bb(i,j-1) endif 480 continue return end c subroutine s049(aa,bb,n) integer n real aa(n,*),bb(n,*) do 490 i = 2,n if(n.ge.2)then do 491 j = 2,n 491 bb(i,j) = bb(i,j)/bb(i,j-1) endif 490 continue return end c subroutine s050(a,b,x,n) integer n real a(*),b(*),x do 500 i = 1,n if(a(i).gt.b(i))goto 501 500 continue x = 0 return 501 continue x = 1 return end c subroutine s051(a,b,j,n) integer n,j real a(*),b(*) do 510 i = 1,n if(a(i).gt.b(i))then j = i goto 511 endif 510 continue j = 0 return 511 continue return end c subroutine s052(a,b,c,n) integer n real a(*),b(*),c(*) do 520 i = 1,n c(i) = a(i) if(a(i).gt.b(i))goto 521 520 continue return 521 continue return end c subroutine s053(a,b,c,n) integer n real a(*),b(*),c(*) do 530 i = 1,n c(i) = a(i) if(a(i).gt.b(i))goto 531 b(i) = a(i) 530 continue return 531 continue return end c subroutine s054(a,b,c,n) integer n real a(*),b(*),c(*) do 540 i = 1,n t = a(i) + b(i) if(t.gt.c(i))goto 541 b(i) = t 540 continue return 541 continue return end c subroutine s055(a,b,ip,n) integer n,ip(*) real a(*),b(*) do 550 i = 1,n a(i) = b(ip(i)) 550 continue return end c subroutine s056(a,b,ip,n) integer n,ip(*) real a(*),b(*) do 560 i = 1,n a(ip(i)) = b(i) 560 continue return end c subroutine s057(a,b,ip,n) integer n,ip(*) real a(*),b(*) do 570 i = 1,n a(ip(i)) = b(ip(i)) 570 continue return end c subroutine s058(a,b,ip,n) integer n,ip(*) real a(*),b(*) do 580 i = 1,n a(ip(i)) = a(ip(i)) + b(i) 580 continue return end c subroutine s059(aa,bb,n) integer n real aa(n,*),bb(n,*) do 590 i = 1,n do 590 j = 1,3 aa(i,j) = bb(i,j) + aa(i,j) 590 continue return end c subroutine s060(aa,bb,n) integer n real aa(n,*),bb(n,*) do 600 i = 1,1000 do 600 j = 1,3 aa(i,j) = bb(i,j) + aa(i,j) 600 continue return end c subroutine s061(a,n) integer n real a(*) do 610 i = 2,n a(i) = a(1) 610 continue return end c subroutine s062(a,n) integer n real a(*) do 620 i = 1,n a(i) = a(1) 620 continue return end c subroutine s063(a,b,c,n) integer n real a(*),b(*),c(*) do 630 i = 2,n-1 a(i) = b(i) + c(i) b(i) = a(i) - 2. a(i) = b(i) + a(i+1) 630 continue return end c subroutine s064(a,b,c,n) integer n real a(*),b(*),c(*) do 640 i = 2,n-1 a(i) = b(i) + c(i) b(i) = c(i) - 2. a(i+1) = b(i) + a(i+1) 640 continue return end c subroutine s065(a,b,c,n) integer n real a(*),b(*),c(*) do 650 i = 1,n if(a(i).ne.0) b(i) = b(i) + a(i) * c(i) 650 continue return end c subroutine s066(a,b,c,n) integer n real a(*),b(*),c(*) do 660 i = 1,n a(i) = b(i) + c(i) if(i.gt.5) b(i) = abs(b(i)) if(i.lt.99) a(i) = -a(i) 660 continue return end c subroutine s067(aa,bb,n) integer n real aa(100,*),bb(100,*) do 670 j = 1,100 do 670 i = 1,100 aa(i,j) = bb(i,j) + aa(i,j) 670 continue return end c subroutine s068(aa,bb,n) integer n real aa(100,*),bb(100,*) do 680 i = 1,100 do 680 j = 1,100 aa(i,j) = bb(i,j) + aa(i,j) 680 continue return end c subroutine s069(aa,bb,n) integer n real aa(n,*),bb(n,*) do 690 i = 1,n do 690 j = 1,n aa(i,j) = bb(i,j) + aa(i,j) 690 continue return end c subroutine s070(aa,bb,n) integer n real aa(n,*),bb(n,*) do 700 i = 2,n-1 do 700 j = 2,n-1 aa(i,j) = bb(i,j) + aa(i,j) 700 continue return end c subroutine s071(aa,bb,n) integer n real aa(n,*),bb(n,*) do 710 i = 2,n-1 do 710 j = 2,n-1 aa(i,j) = (bb(i,j)+bb(i-1,j)+bb(i,j-1)+bb(i+1,j)+bb(i,j+1))/ $ 5. 710 continue return end c subroutine s072(aa,b,n) integer n real aa(n,*),b(*) do 720 i = 1,n do 720 j = 1,n b(i+j*n-n) = aa(i,j) 720 continue return end c subroutine s073(a,b,n) integer n real a(*),b(*) call s073s(a,b,n-1,1) return end subroutine s073s(a,b,n,m) integer n,m real a(*),b(*) do 730 i = 1,n a(i) = a(i+m) + b(i) 730 continue return end c subroutine s074(a,b,n) integer n real a(*),b(*) call s074s(a,b,n-1,1) call s074s(a,b,n-2,2) return end subroutine s074s(a,b,n,m) integer n,m real a(*),b(*) do 740 i = 1,n a(i) = a(i+m) + b(i) 740 continue return end c subroutine s075(a,b,n) integer n real a(*),b(*) do 750 i = 1,n b(i) = b(i) + 2 call s075s(a,b,i) 750 continue return end subroutine s075s(a,b,i) integer i real a(*),b(*) a(i) = a(i) + b(i) return end c subroutine s076(a,b,c,n) integer n real a(*),b(*),c(*) do 760 i = 1,n if(a(i).gt.b(i))then t = a(i) - b(i) c(i) = c(i) + t a(i) = t endif 760 continue return end c subroutine s077(a,b,c,n) integer n real a(*),b(*),c(*) do 770 i = 1,n if(a(i).gt.b(i))then t = a(i) - b(i) else t = a(i) endif c(i) = c(i) + t a(i) = t 770 continue return end c subroutine s078(a,b,c,n) integer n real a(*),b(*),c(*) do 780 i = 1,n if(a(i).gt.b(i))then a(i) = a(i) - b(i) if(a(i).gt.c(i))then c(i) = abs(c(i)) else c(i) = 0. endif else b(i) = a(i) if(a(i).gt.c(i))then c(i) = a(i) else c(i) = -c(i) endif endif 780 continue return end c subroutine s079(a,b,c,x,n) integer n real a(*),b(*),c(*),x do 790 i = 1,n if(a(i).gt.b(i))then a(i) = a(i) - b(i) if(n.gt.10)then c(i) = abs(c(i)) else c(i) = 0. endif else b(i) = a(i) if(x.gt.0)then c(i) = a(i) else c(i) = -c(i) endif endif 790 continue return end c subroutine s080(a,b,c,x,n) integer n real a(*),b(*),c(*),x do 800 i = 1,n if(x.gt.0)then a(i) = a(i) - b(i) if(a(i).gt.c(i))then c(i) = abs(c(i)) else c(i) = 0. endif else b(i) = a(i) if(a(i).gt.c(i))then c(i) = a(i) else c(i) = -c(i) endif endif 800 continue return end c subroutine s081(a,b,c,n) integer n real a(*),b(*),c(*) do 810 i = 1,n if(a(i).gt.0)goto 811 b(i) = -b(i) if(abs(b(i)).le.a(i))goto 812 c(i) = abs(c(i)) goto 812 811 continue c(i) = -c(i) 812 continue a(i) = b(i) + c(i) 810 continue return end c subroutine s082(aa,bb,cc,a,b,c,n) integer n real aa(n,*),bb(n,*),cc(n,*),a(*),b(*),c(*) do 820 i = 1,n a(i) = a(i) + 5. do 821 j = 2,n aa(i,j) = aa(i,j-1)*a(i) + bb(i,j) + cc(i,j)/aa(i,j-1) 821 continue b(i) = c(i) + aa(i,1) 820 continue return end c subroutine s083(aa,bb,cc,n) integer n real aa(n,*),bb(n,*),cc(n,*) do 830 i = 1,n do 831 j = 2,n aa(i,j) = aa(i,j-1) + cc(i,j)/aa(i,j-1) 831 continue do 832 j = 2,n bb(i,j) = bb(i,j-1) + cc(i,j)/bb(i,j-1) 832 continue 830 continue return end c subroutine s084(aa,bb,cc,n) integer n real aa(n,*),bb(n,*),cc(n,*) do 840 i = 2,n do 841 j = 2,n aa(i,j) = aa(i,j-1) + cc(i,j)/aa(i,j-1) 841 continue do 842 j = 2,n bb(i,j) = bb(i-1,j) + cc(i,j)/bb(i-1,j) 842 continue 840 continue return end c subroutine s085(a,b,x,n) integer n real a(*),b(*),x do 850 i = 1,n x = x + a(i) b(i) = a(i) + 2. 850 continue return end c subroutine s086(a,b,x,n) integer n real a(*),b(*),x do 860 i = 1,n x = x * a(i) b(i) = a(i) + 2. 860 continue return end c subroutine s087(a,b,n) integer n real a(*),b(*) do 870 i = 2,n a(i) = a(i) + a(i-1)*b(i) 870 continue return end c subroutine s088(a,b,c,n) integer n real a(*),b(*),c(*) do 880 i = 3,n a(i) = a(i) + a(i-1)*b(i) + a(i-2)*c(i) 880 continue return end c subroutine s089(a,b,c,d,n) integer n real a(*),b(*),c(*),d(*) do 890 i = 4,n a(i) = a(i) + a(i-1)*b(i) + a(i-2)*c(i) + a(i-3)*d(i) 890 continue return end c subroutine s090(a,b,j,n) integer n,j real a(*),b(*) j = 0 do 900 i = 1,n if(a(i).gt.0)then j = j + 1 b(j) = a(i) endif 900 continue return end c subroutine s091(a,b,j,n) integer n,j real a(*),b(*) j = 0 do 910 i = 1,n if(a(i).gt.0)then j = j + 1 a(i) = b(j) endif 910 continue return end c subroutine s092(a,b,c,n) integer n complex a(*),b(*),c(*) do 920 i = 1,n c(i) = a(i) + b(i) 920 continue return end c subroutine s093(a,b,c,n) integer n real a(*),b(*),c(*) do 930 i = 1,n a(i) = sin(b(i)) + cos(c(i)) 930 continue return end c subroutine s094(aa,bb,n) integer n real aa(100,*),bb(100,*) do 940 j = 1,100 do 940 i = 1,100 bb(i,j) = 0. aa(i,j) = i + j*100 940 continue return end c subroutine s095(a,b,c,n,inc) integer n,inc real a(*),b(*),c(*) i = 0 950 continue i = i + inc if(i.gt.n)goto 951 a(i) = b(i) + c(i) goto 950 951 continue return end c subroutine s096(a,b,c,n) integer n real a(*),b(*),c(*) i = 0 960 continue i = i + 1 if(a(i).gt.b(i))goto 961 a(i) = b(i) goto 960 961 continue return end c subroutine s097(a,logn,n) integer n,logn real a(*) j = 1 do 970 i = 1,logn do 971 k = 1,n,j do 971 l = 1,j t = a(k+l-1) + a(k+l+j-1) u = a(k+l-1) - a(k+l+j-1) a(k+l-1) = t a(k+l+j-1) = u 971 continue j = j * 2 970 continue return end c subroutine s098(a,logn,n) integer n,logn real a(*) j = 1 do 980 i = 1,logn j = 2**i do 980 k = 1,n,j do 980 l = 1,j t = a(k+l-1) + a(k+l+j-1) u = a(k+l-1) - a(k+l+j-1) a(k+l-1) = t a(k+l+j-1) = u 980 continue return end c subroutine s099(a,b,n) integer n real a(*),b(*) do 990 i = 1,n x = a(n-i+1) + b(i) a(i) = x + 3. b(i) = x 990 continue return end c subroutine s100(a,bb,cc,n) integer n real a(*),bb(n,*),cc(n,*) do 1000 i = 2,n do 1000 j = 1,n a(i) = bb(i,j)/a(i-1) bb(i,j) = a(i) + c(i,j) 1000 continue return end c subroutine s101(a,bb,cc,n) integer n real a(*),bb(n,*),cc(n,*) do 1010 i = 1,n do 1010 j = 2,n a(j) = bb(i,j)/a(j-1) bb(i,j) = a(j) + c(i,j) 1010 continue return end c subroutine s102(a,b,n,inc) integer n,inc real a(*),b(*) do 1020 i = 1,n,inc a(i) = a(i+inc) + b(i) 1020 continue return end c subroutine s103(a,b,n) integer n real a(*),b(*) do 1030 i = 1,n a(i*n) = a(i*n) + b(i) 1030 continue return end c subroutine s104(a,b,c,d,n) integer n real a(*),b(*),c(*),d(*) do 1040 i = 1,n a(i) = b(i-1) + c(i) b(i) = a(i) + d(i) 1040 continue return end c subroutine s105(a,b,x,n) integer n real a(*),b(*),x do 1050 i = 1,n x = x + a(i) x = x + b(i) 1050 continue return end c subroutine s106(a,b,x,n) integer n real a(*),b(*),x do 1060 i = 1,n x = max(x,a(i)) b(i) = abs(b(i)) x = max(x,b(i)) 1060 continue return end c subroutine s107(a,b,x,j,n) integer n,j real a(*),b(*),x j = 0 do 1070 i = 1,n if(x.gt.a(i))then x = a(i) j = i endif if(x.gt.b(i))then x = b(i) j = i endif 1070 continue return end .