*     *******************
      SUBROUTINE TIMES(N)
*     *******************
*
*     This routine prints the cumulating processing time of current job
*     if N = 1. Otherwise the date and time are printed.
*
*     Operating system dependence:  VAX/VMS          !  VAX/VMS
*                                                    !  VAX/VMS
      CHARACTER*23 A                                 !  VAX/VMS
      Logical Initialized/.False./                   !  VAX/VMS
      Integer*4 Handle,Status                        !  VAX/VMS
      IF(N.NE.1) GO TO 10                            !  VAX/VMS
      If(.Not.Initialized) then                      !  VAX/VMS
         Initialized=.True.                          !  VAX/VMS
         If(.Not.Lib$Init_Timer(Handle)) go to 20    !  VAX/VMS
         RETURN                                      !  VAX/VMS
      End If                                         !  VAX/VMS
      If(.Not.Lib$Show_Timer(Handle,2)) go to 20     !  VAX/VMS
      RETURN                                         !  VAX/VMS
   10 Status=Lib$Date_Time(A)                        !  VAX/VMS
      If(.Not.Status) Go to 20                       !  VAX/VMS
      WRITE(6,300) A(1:11),A(12:23)                  !  VAX/VMS
      RETURN                                         !  VAX/VMS
   20 Stop 'VAX timing routine error -- terminated'  !  VAX/VMS
*
  300 FORMAT(//,20X,'**********  DATE:  ',A,'  TIME:  ',A,
     *       '  **********',//)
      END
