*
* $Id: czrtim.F,v 1.1.1.1 1996/03/08 15:44:23 mclareni Exp $
*
* $Log: czrtim.F,v $
* Revision 1.1.1.1  1996/03/08 15:44:23  mclareni
* Cspack
*
*
#include "cspack/pilot.h"
      SUBROUTINE CZRTIM(ELAPSD)
*
********************************************************************************
*
* Routine functionally equivalent to TIMED, but for real time
*
* (copied from KUIP)
*
********************************************************************************
*
      CHARACTER*8 ELAPSD
      INTEGER ND(2),NT(2)
      CHARACTER*8 CD,CT
      CHARACTER*(*) DIGIT
      PARAMETER (DIGIT='0123456789')
      INTEGER MONTH(0:12)
      SAVE IOLDAY,IOLSEC
      DATA IOLDAY,IOLSEC /0,0/
      DATA MONTH /0,31,59,90,120,151,181,212,243,273,304,334,365/
*
      CALL DATIMH(ND,NT)
      CALL UHTOC(ND,4,CD,8)
      CALL UHTOC(NT,4,CT,8)
*
* Convert date into number of days from start of year
*
      NHIGH=INDEX(DIGIT,CD(1:1))-1
      NLOW=INDEX(DIGIT,CD(2:2))-1
      NDAY=NHIGH*10+NLOW
 
      NHIGH=INDEX(DIGIT,CD(4:4))-1
      NLOW=INDEX(DIGIT,CD(5:5))-1
      NMONTH=NHIGH*10+NLOW
 
      NHIGH=INDEX(DIGIT,CD(7:7))-1
      NLOW=INDEX(DIGIT,CD(8:8))-1
      NYEAR=NHIGH*10+NLOW
 
      IDAY=NDAY-1+MONTH(NMONTH-1)
      IF ((NYEAR/4)*4.EQ.NYEAR.AND.NMONTH.GT.2) IDAY=IDAY+1
*
* Convert time into number of seconds from start of day
*
      NHIGH=INDEX(DIGIT,CT(1:1))-1
      NLOW=INDEX(DIGIT,CT(2:2))-1
      NHOUR=NHIGH*10+NLOW
 
      NHIGH=INDEX(DIGIT,CT(4:4))-1
      NLOW=INDEX(DIGIT,CT(5:5))-1
      NMINUT=NHIGH*10+NLOW
 
      NHIGH=INDEX(DIGIT,CT(7:7))-1
      NLOW=INDEX(DIGIT,CT(8:8))-1
      NSECON=NHIGH*10+NLOW
 
      ISEC=NSECON+NMINUT*60+NHOUR*3600
*
* Compute the elapsed time from previous call (in HH:MM:SS format)
*
      IDELAP=IDAY-IOLDAY
      ISELAP=ISEC-IOLSEC
      IOLSEC=ISEC
      IOLDAY=IDAY
      ISEC=MOD(ISELAP,60)
      IMINUT=(MOD(ISELAP,3600)-ISEC)/60
      IHOUR=ISELAP/3600+IDELAP*24
      IF (IHOUR.GT.99) THEN
         WRITE(ELAPSD,1100) IMINUT,ISEC
      ELSE
         WRITE(ELAPSD,1000) IHOUR,IMINUT,ISEC
      ENDIF
 
1000  FORMAT(I2.2,':',I2.2,':',I2.2)
1100  FORMAT('**:',I2.2,':',I2.2)
 
      END