1subroutine shell(n,a) 2 integer n 3 real a(n) 4 integer i,j,inc 5 real v 6 7 inc=1 81 inc=3*inc+1 9 if(inc.le.n) go to 1 102 inc=inc/3 11 12 do i=inc+1,n 13 v=a(i) 14 j=i 153 if(a(j-inc).gt.v) then 16 a(j)=a(j-inc) 17 j=j-inc 18 if(j.le.inc) go to 4 19 go to 3 20 endif 214 a(j)=v 22 enddo 23 24 if(inc.gt.1) go to 2 25 26 return 27end subroutine shell 28