C* SFSFV - SEARCH FORTRAN SOURCE , FIND VARIABLE NAME C SUBROUTINE SFSFV C INCLUDE 'SFSCM.FTN/NOLIST' DIMENSION IGS(2), IGE(2), IG(2) DATA I00C1,I00E9/65,90/,IPERI/46/,ILETE/69/ DATA ISLSH / 47/,IDOLR/36/ , IBLNK/32/ DATA ILV/0/ INDX = 1 ITYPE = 0 WRITE (5, 505) 505 FORMAT (' ') 8 IGS(1) = 0 + NROFS(INDX) WRITE (5, 510) INDX 510 FORMAT ('+FILE', I4) GO TO 1001 1101 CONTINUE CALL SFSST (ITYPE, IGS, IG, IGE) C 11 CONTINUE IF (IGE(2)) 113, 113, 111 111 IGS(1) = IGE(1) IGS(2) = IGE(2) GO TO 119 113 IGS(1) = IG(1) GO TO 1001 10 CONTINUE IF (ISTMT) 1001, 1001, 1101 1001 CONTINUE IGS(1) = IGS(1) + 1 IGS(2) = 1 119 JTYPE = ITYPE IDATA = 0 CALL SFSCL (FID(1,1), ITYPE, IGS, IGE) IF (IGS(1)) 19, 12, 12 12 GO TO (10, 15, 30, 30, 10, 30, 30, 30, 30, 30, 10, 30, 10, 10, 10, $ 30, 30, 30, 30, 30, 10, 27, 27, 27, 27, 27, 30, 30, 25, 30, $ 27, 30, 30, 30, 20, 23, 30, 10, 10, 30, 30, 30, 30, 30, 30, $ 30, 30, 30, 30, 30, 30, 30, 30 ), ITYPE 15 ITYPE = JTYPE GO TO 12 19 NR = - IGS(1) GO TO 21 20 IF (NOEND) 201, 201, 10 201 NR = IGS(1) 21 CONTINUE NRFIL(INDX) = NR - NROFS(INDX) C WRITE (5, 901) NR, NROFS(INDX), NRFIL(INDX), NRTOT, INDX C901 FORMAT (' ', 5I6) NRTOT = NRTOT + NR - NROFS(INDX) IF (INDX - NFILE) 22, 200, 200 22 INDX = INDX + 1 GO TO 8 23 IF (NOFOR) 10, 10, 30 C BEGIN LOOP TO SEARCH FORTRAN STATEMENT FOR VARIABLE NAMES 25 IF (INCMN) 10, 10, 30 27 IDATA = 1 30 ICHR = IBLNK IF (ISTMT) 35, 35, 1101 35 CONTINUE CALL SFSGS (FID(1,1), IGS, IG, IGE, 1) 40 ILNBC = ICHR IF (IDATA) 50, 50, 45 45 IF (ILNBC - ISLSH) 50, 47, 50 47 CALL SFSSD (FID(1,1), IGS, IG, IGE) 50 CALL GNXCF (ICHR) IF (ICHR) 11, 11, 51 51 IF (ICHR - IDOLR) 52, 54, 52 52 IF (ISPC (ICHR)) 53, 53, 40 53 IF (ISPC (ICHR)) 40, 54, 40 54 CALL ICHPS (IBUF, 2, IP) IFRST = ICHR NR = IG(1) 55 IF (IP-17) 551, 551, 552 551 CALL PNXCH (ICHR) 552 CALL GNXCF (ILCHR) IF (ILCHR) 64, 64, 56 56 ICHR = ILCHR IF (ISPC (ICHR)) 55, 55, 57 57 IF (ICHR - IDOLR) 64, 55, 64 C CHECK LOGICAL OPERATORS 64 IF (ILNBC - IPERI) 65, 67, 65 65 IF (ISPC (ILNBC)) 69, 75, 75 67 IF (ICHR - IPERI) 69, 68, 69 C C RESET ILNBC TO BLANK IF LOGICAL OPERATOR C 68 CALL SMCHR (IBUF, 3, ILV, 1, 1) IF (ISPC (ILV)) 80, 681, 681 681 ICHR = IBLNK GO TO 80 C CHECK FOR SCIENTIFIC NOTATION 'E' OR 'D' 69 IF (IFRST - ILETE) 70, 80, 70 70 IF (IFRST - ILETE + 1) 75, 80, 75 75 CONTINUE IF (ITYPE - 4) 78, 76, 78 76 DO 77 I = 2,10 77 IBUF(I-1) = IBUF(I) IP = IP-2 78 CALL SFSIV (IP, IFRST) IF (NERC) 200, 80, 200 80 IF (ILCHR) 11, 11, 40 200 CONTINUE RETURN END