C%%A-RCB-0077-SL-12 LST -- 40 TEST FOR END OF F4P MAP C Events: 1 Normal C 2 Last line was the end of the F4P map C C Note that this search assumes that each word has a different initial C letter. C 4000 IEVENT = 1 ISTRT = MOD(NBUF+1,2)*NHALF + 1 DO 4020 I = 3,5,2 IPTR = I IF(BUFFER(ISTRT).EQ.BMASK(IPTR)) GO TO 4040 4020 CONTINUE GO TO 10 C 4040 IF(BUFFER(ISTRT+1).NE.BMASK(IPTR+1)) GO TO 10 IEVENT = 2 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 41 TEST FOR NULL LINE C Events: 1 Normal C 2 Current line is null C 4100 IEVENT = 1 IF(NCHAR.LE.1) IEVENT = 2 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 42 TEST FOR 'NO FPP' C Events: 1 Normal C 2 Line begins with 'NO' C 4200 IEVENT = 1 IF(BUFFER(IFIRST).NE.BMASK(5)) GO TO 10 IF(BUFFER(IFIRST+1).NE.BMASK(6)) GO TO 10 IEVENT = 2 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 43 TEST FOR START OF F4P LONG MAP C Events: 1 Not long map C 2 Start of long map -- line begins with 'NU'(MBER) C 4300 IEVENT = 1 IF(BUFFER(IFIRST).NE.BMASK(7)) GO TO 10 IF(BUFFER(IFIRST+1).NE.BMASK(8)) GO TO 10 IEVENT = 2 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 44 PRINT START OF F4P LONG MAP C Events: 1 C 4400 IEVENT = 1 WRITE(LUW,4410) 4410 FORMAT(9X,'PROGRAM SECTIONS',/) ILINE = ILINE + 2 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 45 LOOK FOR END ON PREVIOUS LINE (RATFOR) C Events: 1 Last line not END C 2 Last line was END C 4500 IEVENT = 1 ISTRT = 1 + NHALF*MOD(1+NBUF,2) ISTOP = ISTRT + NHALF - 1 ISTRT = ISTRT + 25 IPTR = 0 DO 4520 I = ISTRT,ISTOP BCHAR = BUFFER(I) IF(BCHAR.LE.BLANK) GO TO 4520 IF(BCHAR.EQ.'#') GO TO 4540 IPTR = IPTR + 1 IF(IPTR.GT.3) GO TO 10 IF(BCHAR.NE.BEND(IPTR)) GO TO 10 4520 CONTINUE 4540 IF(IPTR.EQ.3) IEVENT = 2 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 46 INITIALIZE HEADER FOR RATFOR C Events: 1 C C Notes on RATFOR listing format C C The compiler shifts the source by 24 columns (3 tabs). In addition, C each line begins with a FORTRAN carriage control character (removed by C function 48 prior to printing). This puts the % in byte 27 of the input C record. We shift the listing by 16 columns. For symmetry, 16 columns C are left at the right as well, leaving 100 columns of print C (columns 17 to 116). C 4600 IEVENT = 1 C CALL DATE(BWORK) BWORK(5) = BWORK(5) + 32 BWORK(6) = BWORK(6) + 32 CALL TIME(BWORK(10)) C IPTR = IFIRST+23 ISTOP = IPTR + 41 ENCODE (HD2LNG,4610,BHEAD2) BVERSN,(BUFFER(I),I=IPTR,ISTOP), 1 (BWORK(I),I=1,17) 4610 FORMAT(X,T17,16A1,T41,42A1,T98,9A1,2X,8A1) C INDENT = 16 IPERPT = 26 GO TO 10 C 4700 GO TO 9400 C%%A-RCB-0077-SL-12 LST -- 48 DETECT RATFOR CARRIAGE CONTROL C Events: 1 Normal C 2 Form feed ('1' in column 1) C 4800 IEVENT = 1 IF(BUFFER(IFIRST).EQ.'1') IEVENT = 2 IF(NCHAR.LE.1) GO TO 10 IFIRST = IFIRST + 1 NCHAR = NCHAR - 1 GO TO 10 C%%A-RCB-0077-SL-12 LST -- 49 INITIALIZE HEADER FOR TXT C Events: 1 C C Notes on TXT format C C The carriage control character is taken from column 1. Output is C shifted 25 columns (1 character and 3 tabs) to maintain alignment. C The added character is required to compensate for the deleted carriage C control character. The % is in byte 2 of the record. Columns 1-25 C of the output are blank, 26-107 (82 columns) contain data and 108-132 C are blank. C 4900 IEVENT = 1 C CALL DATE(BWORK) BWORK(5) = BWORK(5) + 32 BWORK(6) = BWORK(6) + 32 CALL TIME(BWORK(10)) C ENCODE (HD2LNG,4910,BHEAD2) BNAMIN,(BWORK(I), I=1,17) 4910 FORMAT(X,T26,32A1,T89,9A1,2X,8A1) C INDENT = 25 IPERPT = 1 GO TO 10