      SUBROUTINE SCLOCK
C-------------------------------------------------------------
C  Start a clock - CONTAINS MACHINE-DEPENDENT CALL
C-------------------------------------------------------------
      COMMON /CLOCKC/ STIME, SWALL
      DOUBLE PRECISION CPUTIM
      EXTERNAL CPUTIM
C--------------
c  Any
      STIME = REAL(CPUTIM())
C  Cray
c      STIME = SECOND(XXX)
C  Vax
C      STIME = SECNDS(0.0)
C  FPS464
C     CALL SYS$GETTIME(STIME,SWALL)
C  RS6000
C      I1 = MCLOCK() * 0.01
C      STIME = I1
C--------------
      WRITE(*,1000)
1000  FORMAT (//'****** Clock started'//)
      RETURN
      END
C 
      SUBROUTINE PCLOCK(LABEL)
C-----------------------------------------------------------------------
C  Read the clock and print the result - CONTAINS MACHINE-DEPENDENT CALL
C-----------------------------------------------------------------------
      COMMON /CLOCKC/ STIME, SWALL
      DOUBLE PRECISION CPUTIM
      EXTERNAL CPUTIM
C---------------
c     Any
      WRITE (*,1000) LABEL, REAL(CPUTIM())-STIME
C  Cray
c      WRITE (*,1000) LABEL, SECOND(XXX)-STIME
C  Vax
C      WRITE (*,1000) LABEL, SECNDS(STIME)
C  FPS464
C     CALL SYS$GETTIME(TIME,WALL)
C     WRITE (*,1000) TIME-STIME, WALL-SWALL
C  RS6000
C      WRITE (*,1000) LABEL, MCLOCK() * 0.01 - STIME
C---------------
1000  FORMAT (' AT clock No.',I4,'  CPU time since clock started =',
     *         F14.6,' seconds ')
      RETURN
      END
C
      FUNCTION MINFO(I)
C-----------------------------------------------------------------------
C  Provide machine-dependent information
C  I=1: Machine type: 3 for Cray
C  I=2: Length of a real in record-length units: 8 for Cray
C-----------------------------------------------------------------------
      IF (I.EQ.1) MINFO = 3
      IF (I.EQ.2) MINFO = 8
      RETURN
      END
