C CKOVL -- BUILDS .CKO TABLE FILE WHICH CONTAINS THE C OVERLAY & MAP FILE DATA C C INPUTS: MAPFL MAP FILE SPEC C C OUTPUTS: .CKO FILE C IERR ERROR FLAG C IOVLAY OVERLAY FLAG C C SUBROUTINE CKOVL(MAPFL,IOVLAY,IERR) BYTE MAPFL(30),REC(132),CKO(30) INTEGER IADD,ILGHT,IERR,ALBP2,EXIT1,EXIT2,IOVLAY,IREC IERR=.TRUE. IOVLAY=.FALSE. 5 ISPOT=LSTRNG(MAPFL,1,30,'.',1,1) CALL STRMOV(MAPFL,1,ISPOT,CKO,1) CALL STRMOV('.CKO',1,4,CKO,ISPOT) CKO(ISPOT+4)="0 OPEN(UNIT=1,NAME=MAPFL,TYPE='OLD',READONLY,ERR=1000, + ACCESS='SEQUENTIAL') OPEN(UNIT=2,NAME=CKO,TYPE='NEW',ACCESS='DIRECT', + ASSOCIATEVARIABLE=IREC,RECORDSIZE=6) ISET=0 25 READ(1,10,END=100)NCH,REC 10 FORMAT(Q,132A) IF(IOVLAY.EQ..TRUE.)GOTO24 I1=LSTRNG(REC,1,10,'$$SGD1',1,6) IF(I1.LE.0)GOTO24 DECODE(6,20,REC(27)),IADD DECODE(6,20,REC(34)),ILGHT 20 FORMAT(O6) IOVLAY=.TRUE. 24 I2=LSTRNG(REC,1,132,'$ALBP2',1,6) I3=LSTRNG(REC,1,132,'$EXIT ',1,6) I4=LSTRNG(REC,1,132,'$EXIT$',1,6) IF(I2.GT.0.OR.I3.GT.0.OR.I4.GT.0)GOTO30 GOTO25 30 IF(I2.GT.0)GOTO45 42 IF(I3.GT.0)GOTO55 43 IF(I4.GT.0)GOTO65 41 IF(ISET.LT.3)GOTO25 GOTO50 45 DECODE(6,20,REC(I2+7)),ALBP2 ISET=ISET+1 GOTO42 55 DECODE(6,20,REC(I3+7),ERR=25),EXIT1 ISET=ISET+1 IF(IOVLAY.EQ..FALSE.)ISET=ISET+1 GOTO43 65 DECODE(6,20,REC(I4+7),ERR=25),EXIT2 ISET=ISET+1 GOTO41 50 IERR=.FALSE. 100 CLOSE(UNIT=1) IREC=1 WRITE(2'IREC)IOVLAY,IADD,ILGHT,ALBP2,EXIT1,EXIT2 CLOSE(UNIT=2) 2000 RETURN C C MAP FILE NOT FOUND C 1000 TYPE 1005,MAPFL 1005 FORMAT('$MAP FILE: ',30A1,' NOT FOUND. ENTER COMPLETE FILE', * ' SPEC>') READ(5,1010,ERR=2000)NCH,MAPFL 1010 FORMAT(Q,30A1) MAPFL(NCH+1)="0 GOTO5 END