      SUBROUTINE CPUTIM (TIMER)

      IMPLICIT COMPLEX (A - Z)
C*****PRECISION > DOUBLE
      DOUBLE PRECISION
C*****END PRECISION > DOUBLE
C*****PRECISION > SINGLE
C      REAL
C*****END PRECISION > SINGLE
     +   TIMER


C*****COMPUTING TIME > CRI (CRAY) UNICOS
C      REAL SECOND, TEMP
C      TEMP = SECOND ()
C*****END COMPUTING TIME > CRI (CRAY) UNICOS

C     THIS IS A SYSTEM SERVICE CALL FROM FORTRAN.
C*****COMPUTING TIME > DEC (VAX) VMS
C      INTEGER*2 LIST
C      INTEGER*4 ADDRESS, TICS
C      REAL*4 TEMP
C
C      DIMENSION LIST(6)
C
C      EQUIVALENCE (LIST(3), ADDRESS)
C
C      DATA LIST(1), LIST(2), LIST(5), LIST(6) / 4, '0407'X, 0, 0 /
C
C      ADDRESS = %LOC (TICS)
C      CALL SYS$GETJPIW (, , , LIST, , , )
C      TEMP = REAL (TICS) / 1.0E2
C*****END COMPUTING TIME > DEC (VAX) VMS

C*****COMPUTING TIME > generic unix etime
      EXTERNAL ETIME
      REAL ETIME, LIST
      DIMENSION LIST(2)

      TEMP = ETIME (LIST)
C*****END COMPUTING TIME > generic unix etime

C*****COMPUTING TIME > IBM (RISC System/6000) AIX
C      INTEGER MCLOCK
C
C      TEMP = REAL (MCLOCK()) * 0.01
C*****END COMPUTING TIME > IBM (RISC System/6000) AIX

C*****COMPUTING TIME > none
C      TEMP = 0.0
C*****END COMPUTING TIME > none

      TIMER = TEMP

      RETURN
      END
