C* SFSOT - PRINT VARIABLES AND STATEMENTS C SUBROUTINE SFSOT C INCLUDE 'SFSCM.FTN/NOLIST' DIMENSION INAME(3,100), JBUF(40), INMPR(3,100), ILAVS(2), IOUT(9) EQUIVALENCE (ILAVS(1), J), (ILAVS(2), NREC) DATA NOUT/6/ 505 FORMAT (/' ', I5,' RECORDS PROCESSED') 510 FORMAT (/ ' ',I5, ' WORDS USED OF ', I5, ' AVAILABLE FOR VARIABLE' $ , ' NAME LIST, (NCHR/2 + 4) WORDS PER VARIABLE' $ / ' ',I5,' RECORDS USED OF ',I5, ' AVAILABLE', $ ' FOR VARIABLE REFERENCE FILE') 520 FORMAT (10X, 9A2, I5, 10X, 40A2) 530 FORMAT (/ 1X, 3A2, 3X, 9A2, I5, 10X, 40A2) 540 FORMAT (// ' ', I5, ' VARIABLES') 550 FORMAT (' ',9A2, 3A2, 9(6X,3A2)) 555 FORMAT (' ',18X, 3A2, 9(6X,3A2)) 560 FORMAT (1H , 'VARIABLE',10X, 'FILES USING THAT VARIABLE' / ) 570 FORMAT(1H ,'FILE', 5X, 'VARIABLE', 9X, 'LINE NO.', 24X, $ 'STATEMENT' ) 580 FORMAT (/' NUMBER OF VARIABLES EXCEEDS CAPACITY OF ARRAY ''IVARI'' $ ') 590 FORMAT (/ ' NUMBER OF REFERENCES EXCEEDS CAPACITY OF WS FILE') NVAR = 0 NR = 1 NW = 3*NFILE + MOD(NFILE,2) CALL SFS1DR (FIDWS, NR, NW, INAME) IF (NERC) 220, 5, 220 5 CONTINUE WRITE (NOUT, 505) NRTOT WRITE (NOUT, 510) NAVSV, MXVAR, NAVS, MXNAV DO 200 NP = 1 , 2 IF (IPRNT(NP)) 200, 200, 10 10 CALL SFSPI GO TO (12, 14), NP 12 CALL SFSPP (2) WRITE (NOUT, 560) GO TO 15 14 CALL SFSPP (1) WRITE (NOUT, 570) 15 CONTINUE C GET VARIABLE NAME AND ATTACHED RECORD NUMBERS AND MAP FOR FILES IPS = IPVEC(1) NXLET = 1 20 CALL SFSGV (IPS, NXLET, IOUT, I) IF (I) 20, 198, 30 30 NRTOT = 0 INDX = 0 NRSUM = 0 LINDX = 0 IPRNM = 0 NVAR = NVAR + 1 40 CALL SFS1DR(FIDWS, I, 2, ILAVS) 53 IF (NREC - NRTOT) 60, 60, 55 55 INDX = INDX + 1 NRSUM = NRTOT NRTOT = NRTOT + NRFIL(INDX) IPNAM = 1 GO TO 53 60 NREC = NREC - NRSUM + NROFS(INDX) GO TO (70, 160), NP C PRINT OUT VARIABLE NAMES AND FILE NAMES WHERE USED 70 IF (IPNAM) 95, 95, 75 75 IF (INDX - LINDX) 80, 95, 80 80 LINDX = INDX IPRNM = IPRNM + 1 DO 90 K = 1,3 90 INMPR(K,IPRNM) = INAME(K,INDX) 95 I = J IF (J) 100, 100, 40 100 NPROG = MIN0 (IPRNM, 10) CALL SFSPP(1) WRITE(NOUT, 550) IOUT, ((INMPR(K,L),K=1,3),L=1,NPROG) IF (IPRNM.LE.10) GO TO 20 IS = 11 110 NPROG = MIN0 (IPRNM, IS+9) CALL SFSPP(1) WRITE (NOUT, 555) ((INMPR(K,L),K=1,3),L=IS,NPROG) IS = IS + 10 IF (IPRNM-IS) 20, 110, 110 C PRINT OUT LISTING OF VARIABLES AND STATEMENTS WHERE USED 160 CONTINUE NRPR = NREC- NROFS(INDX) CALL SFS1DR (FID(1,1), NREC, 40, JBUF) IF (IPNAM) 180, 180, 175 175 CALL SFSPP(2) WRITE (NOUT, 530) (INAME(K,INDX),K=1,3),IOUT, NRPR, JBUF IPNAM = 0 GO TO 185 180 CALL SFSPP(1) WRITE (NOUT, 520) IOUT, NRPR, JBUF 185 I = J IF (J) 195, 195, 40 195 CONTINUE GO TO 20 198 IF (NP .EQ. 1) WRITE (NOUT, 540) NVAR 200 CONTINUE GO TO 300 220 CONTINUE GO TO (230, 240), NERC 230 WRITE (NOUT, 580) GO TO 290 240 WRITE (NOUT, 590) 290 WRITE (NOUT, 510) NAVSV, MXVAR, NAVS, MXNAV 300 CONTINUE RETURN END