SUBROUTINE FLXLST (LTYPE) C INCLUDE "FLX:FLXINC.FLX" $NOLIST INCLUDE "FLX:FLXINC.FLX" $LIST IF (LTYPE .EQ. 0) GOTO 1 !kld 31-Mar-83 Avoid new Fortran error C message on default of GOTO GOTO (1,2,3,4,5,6) LTYPE C SELECT below is never executed. It is used for listing. SELECT (LTYPE) (LBLANK) 1 LIST-BLANK-LINE FIN (LCOMNT) 2 LIST-COMMENT-LINE IF (LSTCMT) LIST-COMMENT-TO-FORTRAN-SOURCE FIN (LDASHS) 3 LIST-DASHES FIN (LFLEX) 4 LIST-FLEX FIN (LINFLX) 5 LIST-INDENTED-FLEX FIN (LINSRC) 6 LIST-INDENTED-SOURCE FIN FIN RETURN TO GET-CHARACTER CURSOR=CURSOR+1 CPOS=CPOS+1 IF (CPOS.GT.NCHPWD) CWD=CWD+1 CPOS=1 FIN WHEN(CURSOR.GT.SFLX(1)) CH = -1 CHTYPE=TEOL FIN ELSE CALL GETCH(SFLX(CWD),CPOS,CH) CHTYPE=CHTYP(CH) FIN FIN TO LIST-BLANK-LINE LSTLEV=LEVEL WHEN (LSTLEV.EQ.0) CALL PUT(BLN,SB,LISTCL) ELSE CALL CPYSTR(SLIST,SB6) DO (I=1,LSTLEV) CALL CATSTR(SLIST,SSPACR) WHEN (SLIST(1).GT.WWIDTH) CALL PUT(BLN,SB,LISTCL) ELSE CALL PUT(BLN,SLIST,LISTCL) FIN UNLESS (BLN.EQ.0) IF (LSTFIN) CALL PUT(BLN,SB,FINCL) BLN=0 FIN FIN TO LIST-COMMENT-LINE CURSOR=1 RESET-GET-CHARACTER INDENT=.TRUE. I=2 REPEAT WHILE (I.LE.6.AND.INDENT) GET-CHARACTER IF (CHTYPE.NE.TBLANK.AND.CHTYPE.NE.TEOL) INDENT=.FALSE. I=I+1 FIN WHEN (INDENT) LSTLEV=LEVEL CLASS=0 LIST-FLEX FIN ELSE CALL PUT(LINENO,SFLX,LISTCL) LIST-INDENTED-SOURCE FIN FIN TO LIST-COMMENT-TO-FORTRAN-SOURCE CALL PUT (LINENO,SFLX,FORTCL) FIN TO LIST-DASHES CALL PUT(0,SB,LISTCL) CALL PUT(0,SDASH,LISTCL) CALL PUT(0,SB,LISTCL) FIN TO LIST-FLEX IF (CLASS.EQ.TTO .OR. ACTION.EQ.ATSEQ) LIST-DASHES IF (PARMS.AND.SAVED) LINENO=HOLDNO CALL CPYSTR(SFLX,SHOLD) FIN IF (SFLX(1).LT.7) CALL CATSTR(SFLX,SB7) CALL CPYSUB(SLIST,SFLX,1,6) UNLESS(LSTLEV.EQ.0) DO (I=1,LSTLEV) CALL CATSTR(SLIST,SSPACR) CONDITIONAL (CLASS.EQ.TFIN) SLIST(1)=SLIST(1)-SSPACR(1) CALL CATSTR(SLIST,SFSPCR) FIN (CLASS.EQ.TBREAK .OR. CLASS.EQ.TNEXT) SLIST(1)=SLIST(1) - 3*NFIN WHEN (CLASS.EQ.TBREAK) CALL CATSTR(SLIST,SBSPCR) ELSE CALL CATSTR(SLIST,SNSPCR) I=2 WHILE (I.LE.NFIN) CALL CATSTR(SLIST,SDSPCR) I = I + 1 FIN FIN FIN FIN CALL CATSUB(SLIST,SFLX,7,SFLX(1)-6) IF (SLIST(1).GT.WWIDTH) CALL CPYSTR(SLIST,SFLX) WHEN (ERLST) CALL PUT(LINENO,SLIST,ERRCL) ERLST=.FALSE. FIN ELSE CALL PUT(LINENO,SLIST,LISTCL) LIST-INDENTED-FLEX FIN TO LIST-INDENTED-FLEX IF (LSTFIN) CALL CPYSUB(SLIST,SFLX,1,6) UNLESS(LSTLEV.EQ.0) DO (I=1,LSTLEV) CALL CATSTR(SLIST,STSPCR) FIN CALL CATSUB(SLIST,SFLX,7,SFLX(1)-6) CALL PUT(LINENO,SLIST,FINCL) FIN FIN TO LIST-INDENTED-SOURCE IF (LSTFIN) CALL PUT(LINENO,SFLX,FINCL) FIN TO RESET-GET-CHARACTER CURSOR=CURSOR-1 CWD=(CURSOR-1)/NCHPWD+2 CPOS=CURSOR-(CWD-2)*NCHPWD GET-CHARACTER FIN END