program bsort c c -- test sort routine c -- function rand and subroutine sort needed c -- figure 6.2 c integer length, out, max, i, beep real x(500) common /inout/ out, max data beep/7/ c out = 6 max = 500 10 call input(x, length) write(out, 105) (x(i), i = 1, length) write(out, 101) beep c -- random list call sort(x, length) write(out, 101) beep write(out, 105) (x(i), i = 1, length) write(out, 102) beep c -- sorted list call sort(x, length) write(out, 101) beep write(out, 105) (x(i), i = 1, length) write(out, 103) beep do 20 i = 1, length x(i) = length + 1 - i 20 continue write(out, 101) beep c -- reversed list call sort(x, length) write(out, 101) beep write(out, 105) (x(i), i = 1, length) write(out, 104) beep goto 10 101 format(' ', a1) 102 format(' random', a1) 103 format(' sorted', a1) 104 format(' reversed',a1) 105 format(1x, 10f7.2) end subroutine input(x, n) c c -- get n and generate random vector x c integer n, out, i, max real x(1) common /inout/ out, max c 5 write(out, 101) read(*,102) n if (n .gt. max) goto 5 if (n .lt. 0) goto 99 do 10 i = 1, n x(i) = rand(0) * 100.0 10 continue return 99 stop 101 format(' how many points? ' ) 102 format(i3) end