C INFOPN SOURCE CHAT 05/01/13 00:36:39 5004 SUBROUTINE INFOPN(IAREA,IRET) IMPLICIT INTEGER(I-N) SAVE LINDEX,SINDEX,NINDEX,ISTAT,IULENO,IUTINO CHARACTER*4 IRET CHARACTER*(*) IAREA SEGMENT SINDEX CHARACTER*8 CINDEX((IND2-IND1+1)*5) INTEGER INDEX((IND2-IND1+1)*5) ENDSEGMENT ISTAT=1 READ(33,REC=1,FMT=100,IOSTAT=IOSTAT)IND1,IND2 if (iostat.ne.0) goto 1000 ISTAT=0 SEGINI SINDEX J=1 DO 1 I=IND1,IND2 READ(33,REC=I,FMT=101,IOSTAT=IOSTAT) * (CINDEX(J+K-1),INDEX(J+K-1),K=1,5) if (iostat.ne.0) goto 1000 J=J+5 1 CONTINUE NINDEX=J-1 IUTINO=NINDEX IRET='9999' READ(37,REC=1,FMT=100,IOSTAT=IOSTAT)IND11,IND21 if (iostat.ne.0) goto 1000 IND2=IND2 + IND21+1 IND1 = IND1 + IND11 SEGADJ SINDEX DO 18 I=IND11,IND21 READ(37,REC=I,FMT=101,IOSTAT=IOSTAT) * (CINDEX(J+K-1),INDEX(J+K-1),K=1,5) if (iostat.ne.0) goto 1000 J=J+5 18 CONTINUE NINDEX=J-1 1000 RETURN ENTRY INFOPO(IAREA,IRET) IRET='0' IF (ISTAT.NE.0)RETURN IF (IAREA(1:8).EQ.' ') GOTO 11 DO 10 I=NINDEX,1,-1 IF(CINDEX(I).EQ.IAREA(1:8))GO TO 15 10 CONTINUE 11 CONTINUE IRET='9999' RETURN 15 CONTINUE IF(I.LE.IUTINO) THEN IULENO=33 ELSE IULENO=37 ENDIF LINDEX=INDEX(I)+1 RETURN ENTRY INFOLI(IAREA,IRET) IRET='9999' IF (ISTAT.NE.0) RETURN IRET='0' READ(IULENO,REC=LINDEX,FMT=102,IOSTAT=IOSTAT) IAREA if (iostat.ne.0) goto 1000 IF(IAREA(1:4).EQ.'$$$$') IRET='9999' LINDEX=LINDEX+1 RETURN 100 FORMAT (2I6) 101 FORMAT(5(A8,I6)) 102 FORMAT(A72) END