Code: Cray T90 t90start.f program t90sta Change: change program name to less than 6 characters parameter(n=512,nn=6,nnd=5,ntime=20) implicit real*8 (a-h,o-z) Change: implicit statement added. real*8 cog(n),fractn(n),box(n,3),t(n),y(n) real*8 s(n),z(n),a(n),b(n),am(n),vm(n),zm(n) real*8 d1(n,n),d2(n,n),d3(n,n),fv(3,n,n) real*8 t1(0:ntime) real*4 second integer mm(n),kk(n),ll(n) data cutl/6./,cinc/4./,alfa/3.6/,xbar/8./ kt=0 ClockOverHead: first two successive timings are for timer overhead. t1(kt)=second() kt=kt+1 t1(kt)=second() ClockingLoops: by changing the counter, can also time eacht loop. do 5 i=1,n cog(i)=1. fractn(i)=1. t(i)=1. y(i)=1. s(i)=1. z(i)=1. a(i)=1. b(i)=1. mm(i)=1 kk(i)=1 ll(i)=1 do 5 j=1,3 5 box(i,j)=1.5*j*i/(1.+n) do 6 i=1,n do 6 j=1,n d1(i,j)=1.25 d2(i,j)=1.25 6 d3(i,j)=1.45 do 10 i=1,n 10 y(i)=t(i)+s(i) do 20 m=1,n s(m)=a(m)*m 20 t(m)=y(m)+alfa+2.7 do 30 i=1,n cog(i)=fractn(i)/6. 30 mm(i)=kk(i)*ll(i)/4 k=1 do 50 i=1,n k=k+2 cog(i)=cutl+(i-1)*cinc dev=cog(i)+alfa-xbar do 50 j=1,3 box(i,j)=box(i,j)+0.25 50 continue do 60 i=1,n do 60 j=1,n do 60 k=1,n d1(i,j)=d1(i,j)+d2(i,j)+d3(i,j) do 60 l=1,5 60 d3(i,l)=d2(i,l)*d1(i,l) do 70 i=1,n do 70 j=1,3 70 t(i)=t(i)-box(i,j) do 80 i=2,n a(i)=b(i)*box(i,1) z(i)=t(i)*z(i-1)+cog(i) 80 continue do 90 i=4,n-2 b(i)=s(i-3) s(i)=y(i) cog(i)=b(i)*cutl 90 cog(i+2)=y(i)*xbar l=1 100 y(l)=t(l)*s(l) l=l+2 if(l.le.n)go to 100 sm=0 do 110 i=1,n 110 sm=sm+sqrt(1.+exp(-0.24*i)) do 120 i=1,n tm=1+exp(-0.23*i**2)+sin(0.26*i+6) 120 am(i)=0.592*tm/(1+tm**2) do 130 i=1,n 130 vm(i)=fm(am(i)) do 140 i=1,3 do 140 j=1,n do 140 k=1,n fv(i,j,k)=0.03*box(j,i)*box(k,4-i)/(1+0.34*box(j,i)) 140 continue do 150 i=1,n call sub(n,am,vm,zm) 150 continue kt=kt+1 t1(kt)=second() Clock: Total Time less Overhead: tcpu=t1(kt)-t1(1)-(t1(1)-t1(0)) write(6,106) tcpu 106 format(1x,' tcpu=',e12.4,' seconds') Change: Extra output statements: nd=(n-1)/(nn-1) ndd=(n-1)/(nnd-1) n2=(n+1)/2 write(6,107) n,nn,nnd,nd,ndd,n2 107 format(1x,' parameters: n=',i4,'; nn=',i2,'; nnd=',i2,'; nd=',i4, & '; ndd=',i4,'; n2=',i4) write(6,66) ' a(1:nn)',(a(i),i=1,nn) write(6,66) ' am(1:nn)',(am(i),i=1,nn) write(6,66) ' b(1:nn)',(b(i),i=1,nn) write(6,67) ' 1:n:nd',(i,i=1,n,nd) write(6,66) ' b(1:n:nd)',(b(i),i=1,n,nd) write(6,66) ' box(i,2)',(box(i,2),i=1,n,nd) write(6,66) 'cog(1:n:nd)',(cog(i),i=1,n,nd) write(6,66) ' dev',dev write(6,67) ' 1:n:ndd',(i,i=1,n,ndd) write(6,66) ' d1(1,j)',(d1(1,j),j=1,n,ndd) write(6,66) ' d1(n2,j)',(d1(n2,j),j=1,n,ndd) write(6,66) ' d1(n,j)',(d1(n,j),j=1,n,ndd) write(6,66) ' d1(i,1)',(d1(i,1),i=1,n,ndd) write(6,66) ' d1(i,n2)',(d1(i,n2),i=1,n,ndd) write(6,66) ' d1(i,n)',(d1(i,n),i=1,n,ndd) write(6,66) ' d2(n2,j)',(d2(n2,j),j=1,n,ndd) write(6,66) ' d3(i,1)',(d3(i,1),i=1,n,ndd) write(6,66) ' d3(i,n2)',(d3(i,n2),i=1,n,ndd) write(6,66) ' d3(i,n)',(d3(i,n),i=1,n,ndd) write(6,66) ' d3(1,j)',(d3(1,j),j=1,n,ndd) write(6,66) ' d3(n2,j)',(d3(n2,j),j=1,n,ndd) write(6,66) ' d3(n,j)',(d3(n,j),j=1,n,ndd) write(6,67) ' 1:n:nd',(i,i=1,n,nd) write(6,66) ' fractn(i)',(fractn(i),i=1,n,nd) write(6,66) ' fv(1,n2,k)',(fv(1,n2,k),k=1,n,nd) write(6,66) ' fv(3,n2,k)',(fv(3,n2,k),k=1,n,nd) write(6,66) ' fv(1,k,n2)',(fv(1,k,n2),k=1,n,nd) write(6,66) ' fv(3,k,n2)',(fv(3,k,n2),k=1,n,nd) write(6,67) ' k',k write(6,67) ' kk(1:nn)',(kk(i),i=1,nn) write(6,67) ' ll(1:nn)',(ll(i),i=1,nn) write(6,67) ' mm(1:nn)',(mm(i),i=1,nn) write(6,66) ' s(1:nn)',(s(i),i=1,nn) write(6,66) ' s(2:n:d)',(s(i),i=2,n,nd) write(6,66) ' sm',sm write(6,66) ' t(1:n:d)',(t(i),i=1,n,nd) write(6,66) ' tm',tm write(6,66) ' vm(1:nn)',(vm(i),i=1,nn) write(6,66) ' y(1:n:d)',(y(i),i=1,n,nd) write(6,66) ' z(1:n:d)',(z(i),i=1,n,nd) write(6,66) ' zm(1:nn)',(zm(i),i=1,nn) 66 format(1x,a,':',10e11.3) 67 format(1x,a,':',10i11) stop end function fm(x) implicit real*8 (a-h,o-z) fm=0.592*x*(17.27-x)+48.67 return end subroutine sub(n,a,v,z) real*8 a(n),v(n),z(n) do 1 i=1,n if(a(i).gt.v(i)) then z(i)=a(i) else z(i)=a(i)+2.56*v(i) endif 1 continue return end