C* CHECK UNDEFINED VARIABLES - UNDCHK C SUBROUTINE CHECK(KL) BYTE STRING,ISTR,VAR,IB,VARS(8) COMMON STRING(660),ISTR(660),VAR(6),NV COMMON/EQUIV/ IEQG, IEQDEF, IEQARR(30) ! 24-JUN-79 COMMON/ISUBC/ ISUBC DATA NOUT/6/,NVAR/3/ DATA IB/1H / 1000 FORMAT(1X,6A1) 1020 FORMAT(1X, 'NV = ', I4) C WRITE(NOUT,1022) ISUBC D1022 FORMAT('0', 'SUBROUTINE CHECK (ISUBC): ', I2) L=KL+1 IF (L.GT.6) GO TO 20 DO 10 K=L,6 VAR(K)=IB 10 CONTINUE 20 CONTINUE C WRITE (6,1000) VAR C WRITE(NOUT,1020) NV C IF (NV .EQ. 0) STOP 'NV = 0' DO 40 N=1,NV READ (NVAR'N) VARS, ISUB, IEQ DO 30 K=1,6 IF (VAR(K).NE.VARS(K)) GO TO 40 30 CONTINUE C C TEST IF VARIABLE APPEARED IN CALL OR ENTRY STATEMENT IF (ISUBC .NE. 1) GOTO 31 ! ADDED 27-JUN-79 C YES, REWRITE RECORD WITH ISUBC=1, EXIT FROM ROUTINE WRITE(NVAR'N) VARS, ISUBC, IEQ GOTO 80 31 CONTINUE C WRITE(NOUT,1030) VAR, ISUB, IEQ D1030 FORMAT(' ', 5X, 'SUBROUTINE CHECK (VAR,ISUB,IEQ): ', 6A1,2I3) IF (IEQ .EQ. 0) GO TO 50 ! 24-JUN-79 C C VARIABLE DEFINED BELONGS TO EQUIVALENCE GROUP "IEQ" C IF A VARIABLE IN THIS GROUP HAS NOT BEEN PREVIOUSLY C DEFINED, ADD "IEQ" TO IEQARR IF (IEQDEF .EQ. 0) GOTO 35 DO 32 II = 1,IEQDEF IF (IEQARR(II) .EQ. IEQ) GOTO 50 32 CONTINUE 35 IEQDEF = IEQDEF + 1 ! NOT PREVIOUSLY DEFINED IEQARR(IEQDEF) = IEQ GO TO 50 40 CONTINUE GO TO 80 50 NS=N+1 IF (NS.GT.NV) GO TO 70 DO 60 NN=NS,NV READ (NVAR'NN) VARS, ISUB, IEQ WRITE (NVAR'N) VARS, ISUB, IEQ N=N+1 60 CONTINUE 70 NV=NV-1 80 KL=0 IF (NV.EQ.0) KL=-1 ISUBC = 0 RETURN END