C C C C LOCODE- PROGRAM TO FIND A LINE OF FORTRAN CODE C FROM SDT TABLES. USING TARGET LINE NO, C SEGMENT, AND MODULE. C C C C INPUTS: TLINE TARGET LINE NO. C TMOD TARGET MODULE C TSEG TARGET SEGMENT C IOVLAY OVER LAY FLAG C C OUTPUTS:ADDRES ABSOLUTE ADDDRES OF CODE. C IERR ERROR FLAG C ADDRES ABSOLUTE ADDRESS OF LINE OF CODE C SUBROUTINE LOCODE(TLINE,TMOD,TSEG,ADDRES,IERR,IOVLAY) INTEGER IERR,CODE(40),ICNT,IOVLAY INTEGER TLINE,ILINE,IADD,ADDRES,MODULE(3),TMOD(3),TSEG(3) INTEGER SEGMNT(3),T1SEG(3),T1MOD(3),SEGTAB(5,200),SGTLNT INTEGER*4 IREC1,IREC2,IREC3,SAVREC BYTE MESAGE(216) COMMON /MESBUF/MESAGE COMMON /SEGS/SEGTAB,SGTLNT COMMON /RECS/IREC1,IREC2,IREC3 SAVREC=IREC3 IREC3=1 IERR=.FALSE. C SEARCH FOR TARGETS(LINE,MODULE,SEGMENT) 90 READ(3'IREC3,ERR=200)SEGMNT,MODULE,ILINE,IADD,CODE,ICNT IF(LTEQGT(SEGMNT,TSEG,0).EQ.0.AND. + LTEQGT(MODULE,TMOD,0).EQ.0.AND. + ILINE.EQ.TLINE)GOTO100 GOTO90 C C TARGET ENCOUNTERED-- VERIFY IF VALID(CHECK IN-MEMORY STATUS). C 100 DO 428 ICK=1,SGTLNT IF(LTEQGT(SEGMNT,SEGTAB(1,ICK),0).EQ.0 + .AND.SEGTAB(4,ICK).EQ.1 + .AND.SEGTAB(5,ICK).EQ.1)GOTO420 428 CONTINUE GOTO90 420 CALL PUTBLK(MESAGE,216,1,216) ADDRES=IADD IREC3=SAVREC RETURN C C LINE FOUND BUT IS NOT ION CORE C 200 IERR=.TRUE. CALL PUTBLK(MESAGE,216,1,216) ENCODE(57,220,MESAGE) 220 FORMAT(' * PC NOT CHANGED RE:SELECTED LOCATION IS NOT IN CORE + OR') ENCODE(41,230,MESAGE(74)) 230 FORMAT(' DOES NOT EXIST. CHECK TABLES.*') IREC3=SAVREC RETURN END