SUBROUTINE TIMES(A,J,K,I) C C ELAPSED TIME SUBROUTINE WHERE: C INPUT: I=0 => INIT C =1 => READ C =2 => READ AND INIT C C OUTPUT: A => ELAPSED TIME IN REAL SECONDS C J,K => ELAPSED TIME IN INTEGER MINUTES AND SECONDS C BYTE STR(8) COMMON /TIMER/ALLSEC,IMINS,ISECS 201 FORMAT(I2) GO TO (20,10,10),I+1 C C READ ELAPSED TIME C 10 A=SECNDS (ALLSEC) CALL TIME (STR) DECODE (2,201,STR(4)) IDELTM DECODE (2,201,STR(7)) IDELTS ITOTS=(IDELTM*60+IDELTS)-(IMINS*60+ISECS) J=ITOTS/60 K=MOD(ITOTS,60) GO TO (20,999,20), I+1 C C INIT TIMES C 20 ALLSEC=SECNDS(0.0) CALL TIME (STR) DECODE (2,201,STR(4)) IMINS DECODE (2,201,STR(7)) ISECS GO TO (25,999,999),I+1 25 IJ=0 J=0 K=0 C 999 RETURN END SUBROUTINE GETNAM(FILS,OUT,NUM,I) INTEGER FILS(16),OUT(16),BLANK,KB,COLON DATA BLANK,KB,COLON/' ','TI',':'/ IF(FILS(1).EQ.BLANK)GOTO 100 K=0 DO 10 J=1,15 IF(FILS(J).EQ.OUT(J))GOTO 10 OUT(J)=FILS(J) K=1 10 CONTINUE IF(NUM.NE.5.AND.K.NE.0) CLOSE (UNIT=NUM) NUM=I IF(OUT(1).EQ.KB.AND.OUT(2).EQ.COLON) NUM=5 C C CHANGE BLANK PAD TO NULL PAD FOR FILESPEC STRING C CALL NULPAD (OUT) C C OPEN MODEL INPUT FILE IF NOT TERMINAL (TI:) C IF(NUM.NE.5.AND.K.NE.0.AND.I.EQ.3)OPEN (UNIT=NUM,NAME=OUT, . TYPE='OLD') C C OPEN RESULTS OUTPUT FILE IF NOT TERMINAL (TI:) C IF(NUM.NE.5.AND.K.NE.0.AND.I.EQ.1)OPEN (UNIT=NUM,NAME=OUT, . TYPE='NEW') C C OPEN MODEL OUTPUT FILE IF NOT TERMINAL (TI:) C IF(NUM.NE.5.AND.K.NE.0.AND.I.EQ.2)OPEN (UNIT=NUM,NAME=OUT, . TYPE='NEW') 100 RETURN END SUBROUTINE NULPAD (OUT) BYTE OUT(1) DO 10 I=1,30 IF (OUT(I) .EQ. ' ') OUT(I) = 0 10 CONTINUE RETURN END