      subroutine table_top( Title,npes,
     .     n_starts,n_mess,n_repetitions,t_call)
      integer       M
      parameter     (M = 1 000 000)
      character*40  Title
      integer       npes,n_starts,n_mess,n_repetitions
      real*8        t_call

      write(6,9010) Title,npes,n_starts,n_mess,n_repetitions,t_call*M

      return
9010  format(//a40,
     .  // ' Number of PEs:  ',i8
     .  // ' Starts:         ',i8,
     .   / ' Messages:       ',i8,
     .   / ' Samples:        ',i8,
     .   / ' Timer overhead: ',f8.3,' microsecond',
     .  //'             Length       Time         Rate  ',
     .   /' Slave      [Bytes]  [Microsec.]    [Mbyte/s]',
     .   /' -----   ----------  -----------   ----------')
      end
      subroutine table_body(islave,
     .                      n_byte,n_starts,n_mess,n_repetitions,
     .                      tf,t_call)
      integer       M
      parameter     (M = 1 000 000)
      integer   n_byte,islave,n_starts,n_mess,n_repetitions,i
      real*8    tf(0:n_repetitions)
      real*8    t_call
      real*8    t_last

      t_last  = (tf(n_repetitions)-tf(n_repetitions-1))-t_call
      write(6,9020) islave,n_byte,t_last *M,n_mess*n_byte/(t_last *M)


      write(7,9030) islave,n_byte,n_repetitions,n_starts,n_mess
      write(7,9040) (i,(tf(i)-tf(i-1))-t_call,i=1,n_repetitions)

      return
9020  format(1x,i5,1x,i12,1x,f15.5,1x,f15.5)
9030  format(/5(1x,i10))
9040  format(i10,g20.6)
      end
