PROGRAM GETAB BYTE TIMBUF(8) EQUIVALENCE (TIMBUF,JJJJJ) ! FORCE WORD ALIGNMENT INTEGER*4 J1,J2,JSECND C INCLUDE 'ACNDF.FTN/-LI' C I=IGETAB(BBUFFR,128) IF (I .NE. 1) GO TO 100 C CALL GTIM(TIMBUF) J1=JSECND(TIMBUF) J2=JSECND(BBEG) CALL JTIME (J1-J2,IH,IM,IS) WRITE (5,1000)BTID,BNAMF,(BNAM(J),J=1,14),BCPU,BDIR,BQIO, 1 BTAS,IH,IM,IS 1000 FORMAT(//' *** SESSION SUMMARY ***'/ 1 ' Terminal usage for: ', A1, 'T', O2, ':'/ 1 ' Name: ', A1,'. ',14A1 / 2 ' Cpu ticks: ', I9 / 3 ' Directives: ', I9 / 4 ' QIO''s: ', I9 / 5 ' Total tasks: ', I9 / 6 ' Connect time: ', I2,':',I2,':',I2 // 7) CC STOP 100 CALL EXST (1) END C** JSECND - CONVERT TIME VECTOR TO SECONDS ABSOLUTE C INTEGER*4 FUNCTION JSECND(BUF) C+ C FUNCTION: C THIS ROUTINE CALCULATES THE TOTAL ELAPSED SECONDS FROM C 00:00:00 1 JAN '80 AND RETURNS IT AS AN INTEGER*4 VALUE C THE INPUT IS A 6 BYTE ARRAY OF BINARY VALUES, STORED AS C YEAR,MONTH,DAY,HOUR,MINUTE, AND SECOND C- BYTE BUF(6) INTEGER BASE(12) INTEGER*4 SIXTY,J24 C C.. INDEX INTO ARRAY FOR THIS FIELD PARAMETER YEAR=1,MONTH=2,DAY=3,HOUR=4,MINUTE=5,SECOND=6 C C.. DAYS TO START OF MONTH DATA BASE/0,31,59,90,120,151,181,212,243,273,304,334/ DATA SIXTY/60/,J24/24/ C C.. ENTRY POINT JSECND=BUF(SECOND)+SIXTY*(BUF(MINUTE)+SIXTY*(BUF(HOUR)+24* 1 (BUF(DAY)-1+BASE(BUF(MONTH))+365*(BUF(YEAR)-80)))) C RETURN END C** JTIME - CALC HOURS, MINUTES, SECONDS FROM I*4 SECONDS C SUBROUTINE JTIME(J,IH,IM,IS) C INTEGER*4 J,JM,JS C IH=J/3600 ! HOURS JM=IH*60 ! MINUTES IN THESE HOURS IM=J/60-JM ! REMAINDER MINUTES JS=(IM+JM)*60 ! SECONDS IM THESE MIN/HOUR IS=J-JS ! NET SECONDS RETURN END