SUBROUTINE LIST(IDATA,ICOUNT) C C THIS SUBROUTINE PUTS ENTRIES INTO THE COMMAND LIST C IDATA(ICOUNT) IS APPENDED TO THE CURRENT LIST. C INTEGER IDATA(100) COMMON /CLIST/IADD,ICMAX,IC(500) IF(ICOUNT + IADD .GT. ICMAX) GO TO 1000 DO 10 I = 1,ICOUNT IADD = IADD + 1 IC(IADD) = IDATA(I) D WRITE(6,9000) IADD,IC(IADD),IC(IADD) D9000 FORMAT(30X,2I10,O10) 10 CONTINUE RETURN 1000 CONTINUE STOP '*** LIST OVERFLOW' END SUBROUTINE GETFLG(ITEST,JFLG) C C THIS SUBROUTINE SETS BITS IN JFLG ACCORDING TO THE QUALIFIERS FOUND. C ITEST IS A MASK WORD OF PERMISSIBLE BITS. IMPERMISSIBLE BITS C SET THE ERROR WORD. C BYTE IFLAG(16) COMMON /FLAG/IFLAG COMMON /ERRORS/IERR,LERR,JERR D WRITE(6,1000) ITEST,JFLG D1000 FORMAT(' GETFLG' 10O8) D1001 FORMAT(10X,'FLGS' 16I4) D WRITE(6,1001) IFLAG IBIT = "040000 DO 100 I = 1,16,2 !SCAN THE FLAGS IF(IFLAG(I) .NE. IFLAG(I+1)) GO TO 10 !CONSISTENT FLAGS IF(IFLAG(I) .EQ. 0) GO TO 100 WRITE(6,9000) 9000 FORMAT(' *** WARNING *** INCONSISTENT QUALIFIERS') 10 CONTINUE IF(IAND(IBIT,ITEST) .NE. 0) GO TO 20 !FLAG IS OK IF(IFLAG(I) .EQ. 1 .OR. IFLAG(I+1) .EQ. 1) GO TO 200 !NOT OK 20 IF(IFLAG(I+1) .EQ. 1) GO TO 100 !DEFINITELY NOT ! IF(IFLAG(I) .NE. 0) JFLG = IOR(JFLG,IBIT) !FLAG REQUESTED 100 IBIT = IBIT / 2 !NEXT BIT POSITION RETURN 200 IERR = 2000 LERR = IERR END