

                22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 1   

					SUBANL.FTN.9        



        C

        C

        C	SUBANL  --  SUB-HEADER RECORD ANALYSER

        C

        C

        C

        C	COPYRIGHT (C) 1976,1977,1978

        C	DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

        C

        C	THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

        C	SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

        C	SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

        C	OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

        C	AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

        C	AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

        C	OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

        C

        C	THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

        C	NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

        C	EQUIPMENT CORPORATION.

        C

        C	DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

        C	SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

        C

        C

        C	K.D. MORSE  07-NOV-76

        C

        C

        C

        C	THIS SUBROUTINE ANALYSES SUB-HEADER RECORD TYPES 1-5.

        C

        C

        C  MODIFICATIONS:

        C

        C

        C NO.		DATE		PROGRAMMER		PURPOSE

        C ---		----		----------		-------

        C

        C 01		12-NOV-76	K.D. MORSE		ADD OCTAL OUTPUT

        C							TO ILLEGAL NAME,

        C							DATE/TIME,

        C							AND VERSION CHAR.

        C 02		08-MAY-78	K.D. MORSE		ADD CHECKS FOR:

        C							1) LANG. PROC. RECORD

        C							    PRECEEDS ALL TIR,

        C							    GSD & TBT RECORDS

        C							2)  AND LENGTH < 36.

        C							ADD COMMON TIRCNT.

        C

        C

        C

        C

0001    	SUBROUTINE	SUBANL

        C

        C

0002    	LOGICAL*1	DUMPIT



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 2   

					SUBANL.FTN.9        



        C

0003    	INTEGER	RECNUM,PSCNT,PSRGSD,PSRTIR,PRMODE,ERRCNT,WRTERR

0004    	INTEGER	FLDLNG,FLDPNT,VERPNT,DATPNT,SPCMAX

0005    	INTEGER	VERLNG,DATLNG,SUBPNT,SUBCNT,UICPNT

0006    	INTEGER PROCRC,TITLRC,COPYRC,TIRCNT,PROCLG

0007    	INTEGER ERRCOD

        C

0008    	BYTE	RECORD(512),LSTREC,STRLEV,STRUCT,EOM,ZERO,NINE

0009    	BYTE	BLANK,SUBTYP,PATLNG,CHRSAV

        C

0010    	COMMON	RECORD,MHDLNG,RECNUM,LSTREC,DUMPIT,PSCNT,PSRGSD,PSRTIR

0011    	COMMON	MXINFL,PRMODE,ERRCNT,WRTERR,SUBCNT,ISTACK

0012    	COMMON	PROCRC,TITLRC,COPYRC,TIRCNT

        C

0013    	EQUIVALENCE (STRLEV,RECORD(2)),(MXRLNG,RECORD(3))

0014    	EQUIVALENCE (NAMPNT,FLDPNT),(NAMLNG,FLDLNG)

0015    	EQUIVALENCE (VERPNT,FLDPNT),(VERLNG,FLDLNG)

0016    	EQUIVALENCE (DATPNT,FLDPNT),(DATLNG,FLDLNG)

0017    	EQUIVALENCE (SUBPNT,FLDPNT),(SUBTYP,RECORD(2))

0018    	EQUIVALENCE (PATLNG,RECORD(3)),(UICPNT,FLDPNT)

        C

0019    	DATA STRUCT/0/,MAXREC,MINREC/512,2/,NAMMAX/15/

0020    	DATA ZERO,NINE/'0','9'/,EOM/3/,BLANK/' '/

0021    	DATA SPCMAX/42/,MINMTN,MAXMTN/31,149/,MHD/0/,PROCLG/35/

        C

0022    10	FORMAT(/' >>>>>>>>>> RECORD ',I5,' IS A MAINTENANCE STATUS '

        	1,I4,' BYTES LONG <<<<<<<')

0023    20	FORMAT (T5,'*****INVALID SEQUENCE - SUBHEADER '

        	1'RECORD SHOULD NOT FOLLOW TYPE',I2,' RECORD')

0024    40	FORMAT(T10,'ASCII DATA IS:')

0025    50	FORMAT(T15,50A1)

0026    70	FORMAT(T5,'*****ILLEGAL INPUT FILE SPECIFICATION LENGTH OF ZERO'

        	1,/,T10,'SHOULD BE 1 TO ',I3,' CHARACTERS')

0027    80	FORMAT(T5,'*****INVALID SYNTAX OF INPUT FILE SPECIFICATION IN:  '

        	1,<J>A1)

0028    90	FORMAT (T5,'*****FIRST CHARACTER OF INPUT FILE SPECIFICATION IS'

        	1/,T15,'NUMERIC OR BLANK')

0029    100	FORMAT (T10,'INPUT FILE SPECIFICATION WAS "',<NAMLNG>A1,'"')

0030    110	FORMAT (T5,'*****PATCH UTILITY VERSION LENGTH (',I5,' ) ILLEGAL'

        	1/,T15,'SHOULD BE 1 TO ',I3,' CHARACTERS')

0031    120	FORMAT (T5,'*****PATCH UTILITY VERSION CONTAINS ILLEGAL CHARACTER'

        	1/,T15,'CHARACTER',I3,' IS ',1A1,'  (',O3,' OCTAL)') !++01 OCTAL TOO

0032    130	FORMAT (T10,'PATCH UTILITY VERSION WAS "',<VERLNG>A1,'"')

0033    140	FORMAT (T5,'*****DATE/TIME FIELD CONTAINS ILLEGAL CHARACTER'

        	1/,T15,'CHARACTER',I3,'IS '1A1,'  (',O3,' OCTAL)') !++01 OCTAL TOO

0034    150	FORMAT (T5,'****ILLEGAL SYNTAX FOR DATE/TIME '

        	1,'FIELD'/,T15,<I+1-K>A1)

0035    160	FORMAT(T10,'DATE/TIME OF PATCH WAS ',18A1)

0036    180	FORMAT (T5,'*****ILLEGAL RECORD LENGTH ',I4,' - NOT BETWEEN'

        	1,I4,' AND ',I4)

0037    190	FORMAT (T5,'*****INCOMPLETE RECORD - NEXT FIELD ('

        	1,'AT BYTE ',I4,') BEYOND RECORD')

0038    210	FORMAT(T5,'***** PATCH UTILITY NAME LENGTH ILLEGAL ',I5,

        	1/T10,'SHOULD BE 1 TO ',I3,' CHARACTERS')

0039    220	FORMAT(T5,'*****PATCH UTILITY NAME CONTAINS ILLEGAL CHARACTER '

        	1,/T15,' CHARACTER ',I3, ' IS ',1A1,' (',O3,' OCTAL)') !++01 OCTAL TOO



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 3   

					SUBANL.FTN.9        



0040    230	FORMAT (T5,'*****FIRST CHARACTER OF PATCH UTILITY NAME IS'

        	1/,T15,'NUMERIC OR BLANK')

0041    240	FORMAT(T10,'PATCH UTILITY NAME WAS "',<PATLNG>A1,'"')

0042    250	FORMAT(T5,'*****INPUT FILE SPECIFICATION WAS NOT IN'

        	1,' COMPRESSED FORM')

0043    260	FORMAT(T10,'U.I.C. WAS [',O3,',',O3,']')

0044    270	FORMAT (T5,'*****ILLEGAL CORRECTION FILE SPECIFICATION LENGTH',

        	1'OF ZERO,'/T10,'SHOULD BE 1 TO 'I3,' CHARACTERS')

0045    280	FORMAT (T5,'*****INVALID SYNTAX OF CORRECTION FILE SPECIFICATION',

        	1' IN:  ',<J>A1)

0046    290	FORMAT (T5,'*****FIRST CHARACTER OF CORRECTION FILE SPECI'

        	1,'FICATION IS'/,T15,'NUMERIC OR BLANK')

0047    294	FORMAT(T5,'*****CORRECTION FILE SPECIFICATION WAS NOT IN'

        	1,' COMPRESSED FORM')

0048    295	FORMAT (T10,'CORRECTION FILE SPECIFICATION WAS "',<NAMLNG>A1,'"')

0049    297	FORMAT(T10,'SEQUENTIAL PATCH NUMBER IS ',I2)

0050    299	FORMAT(T10,'*****ILLEGAL SUBHEADER TYPE OF ',A1)

0051    300	FORMAT(/' >>>>>>>>>> RECORD ',I5,' IS A LANGUAGE PROCESSOR SUB-HDR '

        	1,I4,' BYTES LONG ')

0052    310	FORMAT(T5,'*****MORE THAN ONE SUBHEADER RECORD'

        	1,' OF TYPE ',I4,' WAS SPECIFIED')

0053    320	FORMAT(/' >>>>>>>>>> RECORD ',I5,' IS A SUB-HDR OF SOURCE FILES '

        	1,I4,' BYTES LONG <<<')

0054    330	FORMAT(/' >>>>>>>>>> RECORD ',I5,' IS A TITLE-TEXT SUB-HDR '

        	1,I4,' BYTES LONG <<<<<<<<')

0055    340	FORMAT(/' >>>>>>>>>> RECORD ',I5,' IS A COPYRIGHT SUB-HDR '

        	1,I4,' BYTES LONG <<<<<<<')

0056    350	FORMAT(/' >>>>>>>>>> RECORD ',I5,' IS A GENERAL TEXT SUB-HDR '

        	1,I4,' BYTES LONG <<<<')

0057    360	FORMAT(T5,'*****LANGUAGE PROCESSOR RECORD LARGER THAN',I3,

        	1' CHARACTERS.')

0058    370	FORMAT(T5,'*****LANGUAGE PROCESSOR RECORD FOLLOWS ',I4,

        	1' TIR, GSD, OR TBT RECORDS.')

        C

        C---->		BRANCH ON TYPE OF SUBHEADER RECORD

        C

0059    	GOTO (500,600,700,800,2200,900),SUBTYP

        C

        C---->		INVALID SUBHEADER TYPE

        C

0060    	WRITE(2,299,ERR=9000)SUBTYP

0061    	GOTO 6800

        C

        C---->	LANGUAGE PROCESSOR NAME AND VERSION SUB-HEADER RECORD.

        C

0062    500	PROCRC=PROCRC+1

0063    	WRITE(2,300,ERR=9000)RECNUM,MHDLNG

0064    	IF (MHDLNG .LE. PROCLG) GOTO 510

0065    	WRITE(2,360)PROCLG

0066    	ERRCNT = ERRCNT + 1

0067    510	IF (TIRCNT .EQ. 0) GOTO 520

0068    	WRITE(2,370)TIRCNT

0069    	ERRCNT = ERRCNT + 1

0070    520	IF (PROCRC.GT.1) GOTO 1900

0071    	GOTO 2000

        C



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 4   

					SUBANL.FTN.9        



        C---->	SUBHEADER CONTAINING SOURCE FILES FOR THIS OBJECT MODULE.

        C

0072    600	WRITE(2,320,ERR=9000)RECNUM,MHDLNG

0073    	GOTO 2000

        C

        C---->	TITLE TEXT, I.E. BRIEF MODULE DESCRIPTION.

        C

0074    700	TITLRC=TITLRC+1

0075    	WRITE(2,330,ERR=9000)RECNUM,MHDLNG

0076    	IF (TITLRC.GT.1) GOTO 1900

0077    	GOTO 2000

        C

        C---->	COPYRIGHT SUB-HEADER RECORD.

        C

0078    800	COPYRC=COPYRC+1

0079    	WRITE(2,340,ERR=9000)RECNUM,MHDLNG

0080    	IF (COPYRC.GT.1) GOTO 1900

0081    	GOTO 2000

        C

        C---->	GENERAL TEXT SUBHEADER RECORD.

        C

0082    900	WRITE(2,350,ERR=9000)RECNUM,MHDLNG

0083    	GOTO 2000

        C

        C---->	TOO MANY SUB-HEADER RECORDS OF THIS TYPE.

        C

0084    1900	WRITE(2,310,ERR=9000)SUBTYP

0085    	ERRCNT=ERRCNT+1

0086    	SUBCNT=SUBCNT+1

        C

        C---->		SUB-HEADER RECORD TYPES 1-4 ARE ASCII CHARACTERS

        C

0087    2000	WRITE(2,40,ERR=9000)

0088    	WRITE(2,50,ERR=9000)(RECORD(I),I=3,MHDLNG)

0089    	GOTO 6800

        C

        C---->		MAINTENANCE STATUS RECORD

        C

        C

        C---->		CHECK THAT RECORD IS BETWEEN CORRECT LENGTH LIMITS

        C

0090    2200	WRITE(2,10,ERR=9000),RECNUM,MHDLNG

0091    	IF (LSTREC.EQ.MHD) GOTO 2275

0092    	WRITE(2,20,ERR=9000)LSTREC

0093    2275	IF (MHDLNG.GE.MINMTN .AND. MHDLNG.LE.MAXMTN) GOTO 2350

        C

0094    	ERRCNT = ERRCNT + 1

        C

0095    	WRITE(2,180,ERR=9000)MHDLNG,MINMTN,MAXMTN

        C

        C---->		WRITE PATCH UTILITY NAME AND VERIFY IT

        C

0096    2350	NAMPNT=4

0097    	IF (FLDPNT.GT.MHDLNG) GOTO 6750

        C

0098    	J=PATLNG



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 5   

					SUBANL.FTN.9        



0099    	K=NAMPNT

0100    2370	CALL FLDCHK(J,K,RECORD,I)

0101    	IF (I) 2400,2700,2550

        C

        C---->		PATCH UTILITY NAME FIELD HAS INVALID LENGTH.

        C		SET LENGTH TO MAXIMUM.  REPORT ERROR.

        C

0102    2400	ERRCNT = ERRCNT + 1

0103    	WRITE(2,210,ERR=9000)PATLNG,NAMMAX

0104    	NAMLNG=NAMMAX

0105    	J=NAMMAX

0106    	DUMPIT = .TRUE.

0107    	GOTO 2370

        C

        C---->		PATCH UTILITY NAME FIELD HAS ILLEGAL CHARACTER.

        C		PRINT IT AND CONTINUE PROCESSING RECORD.

        C

0108    2550	ERRCNT= ERRCNT + 1

0109    	WRITE(2,220,ERR=9000)I-NAMPNT+1,RECORD(I),RECORD(I) !++01 OCTAL TOO

0110    	K=I+1

0111    	J=PATLNG+NAMPNT-K

0112    	IF (K.LT.NAMPNT+PATLNG) GOTO 2370

        C

        C---->		ALL CHARACTERS OF FIELD ARE CHECKED.  NOW SEE IF FIRST

        C		CHARACTER IS NUMERIC OR BLANK.

        C

0113    2700	IF (RECORD(NAMPNT).LT.ZERO .OR. RECORD(NAMPNT).GT.NINE) GOTO 2750

0114    	GOTO 2760

0115    2750	IF (RECORD(NAMPNT).NE.BLANK) GOTO 2780

0116    2760	ERRCNT=ERRCNT + 1

0117    	WRITE(2,230,ERR=9000)

        C

        C---->		NOW PRINT PATCH UTILITY NAME.

        C

0118    2780	WRITE(2,240,ERR=9000)(RECORD(I),I=NAMPNT,NAMPNT+PATLNG-1)

        C

        C---->		IF INVALID LENGTH, RETURN

        C

0119    	IF (DUMPIT) RETURN

        C

        C---->		NOW CHECK UTILITY VERSION.

        C

0120    	VERPNT=PATLNG+NAMPNT+1

0121    	VERLNG=RECORD(VERPNT-1)

0122    	IF (FLDPNT.GT.MHDLNG) GOTO 6750

0123    	J=VERLNG

0124    	K=VERPNT

0125    2796	CALL FLDCHK(J,K,RECORD,I)

0126    	IF (I) 2797,3050,2900

        C

        C---->		VERSION NUMBER FIELD HAS ILLEGAL LENGTH

        C

0127    2797	ERRCNT=ERRCNT + 1

0128    	WRITE(2,110,ERR=9000)VERLNG,NAMMAX

0129    	VERLNG=NAMMAX

0130    	J=NAMMAX



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 6   

					SUBANL.FTN.9        



0131    	DUMPIT = .TRUE.

0132    	GOTO 2796

        C

        C---->		VERSION FIELD HAS INVALID CHARACTER

        C

0133    2900	ERRCNT=ERRCNT + 1

0134    	WRITE(2,120,ERR=9000)I-VERPNT+1,RECORD(I),RECORD(I) !++01 OCTAL TOO

0135    	K=I+1

0136    	J=VERLNG+VERPNT-K

0137    	IF (K.LT.VERPNT+VERLNG) GOTO 2796

        C

        C---->		ALL CHARACTERS OF VERSION ARE CHECKED.  PRINT IT.

        C

0138    3050	WRITE(2,130,ERR=9000)(RECORD(I),I=VERPNT,VERPNT+VERLNG-1)

        C

        C---->		IF LENGTH OF VERSION INVALID, EXIT NOW.

        C

0139    3150	IF (DUMPIT) RETURN

        C

        C---->		NOW PRINT U.I.C.

        C

0140    	UICPNT=VERPNT+VERLNG

0141    	WRITE(2,260,ERR=9000)RECORD(UICPNT+1),RECORD(UICPNT)

        C

        C---->		VALIDATE AND PRINT INPUT FILE SPECIFICATION

        C

0142    3250	NAMPNT=UICPNT+3

0143    	NAMLNG=RECORD(NAMPNT-1)

0144    	IF (FLDPNT.GT.MHDLNG) GOTO 6750

0145    	J=NAMLNG

0146    	K=NAMPNT

0147    	CHRSAV=RECORD(J+K)

0148    3300	CALL SYNTX(RECORD(K),J,ERRCOD)

0149    	RECORD(NAMPNT+NAMLNG)=CHRSAV

0150    	IF (J) 3500,3350,3700

        C

        C---->		INPUT FILE SPECIFICATION HAS INVALID LENGTH.

        C		SET LENGTH TO MAXIMUM.  PRINT ERROR.

        C

0151    3350	ERRCNT=ERRCNT + 1

0152    	WRITE(2,70,ERR=9000)SPCMAX

0153    	NAMLNG=SPCMAX

0154    	J=SPCMAX

0155    	DUMPIT = .TRUE.

0156    	GOTO 3300

        C

        C---->		INPUT FILE SPECIFICATION CONTAINS INVALID SYNTAX.

        C		PRINT PART IN ERROR AND CONTINUE PROCESSING RECORD.

        C

0157    3500	ERRCNT= ERRCNT + 1

0158    	J=-J

0159    	WRITE(2,80,ERR=9000)(RECORD(I),I=1,J)

0160    	GOTO 4000

        C

        C---->		ALL CHARACTERS CHECKED.  SEE IF FIRST IS BLANK OR NUMERIC.

        C



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 7   

					SUBANL.FTN.9        



0161    3700	IF (RECORD(NAMPNT).LT.ZERO .OR. RECORD(NAMPNT).GT.NINE) GOTO 3750

0162    	GOTO 3800

0163    3750	IF (RECORD(NAMPNT).NE.BLANK) GOTO 3900

0164    3800	ERRCNT=ERRCNT + 1

0165    	WRITE(2,90,ERR=9000)

        C

        C---->		PRINT THE INPUT FILE SPECIFICATION.

        C

0166    3900	IF (J.EQ.NAMLNG) GOTO 3930

0167    	ERRCNT=ERRCNT + 1

0168    	WRITE(2,250,ERR=9000)

0169    3930	WRITE(2,100,ERR=9000)(RECORD(I),I=NAMPNT,NAMPNT+NAMLNG-1)

        C

        C---->		IF INPUT SPECIFICATION FIELD HAS INVALID LENGTH, RETURN.

        C

0170    4000	IF (DUMPIT) RETURN

        C

        C---->		VALIDATE AND WRITE CORRECTION FILE SPECIFICATION.

        C

0171    	NAMPNT=NAMPNT+NAMLNG+1

0172    	NAMLNG=RECORD(NAMPNT-1)

0173    	IF (FLDPNT.GT.MHDLNG) GOTO 6750

0174    	J=NAMLNG

0175    	K=NAMPNT

0176    	CHRSAV=RECORD(J+K)

0177    4050	CALL SYNTX(RECORD(K),J,ERRCOD)

0178    	RECORD(NAMPNT+NAMLNG)=CHRSAV

0179    	IF (J) 4250,4100,4450

        C

        C---->		CORRECTION FILE SPECIFICATION HAS ZERO LENGTH.

        C		SET LENGTH TO MAXIMUM.  PRINT ERROR.

        C

0180    4100	ERRCNT=ERRCNT + 1

0181    	WRITE(2,270,ERR=9000)SPCMAX

0182    4200	NAMLNG=SPCMAX

0183    	J=SPCMAX

0184    	DUMPIT = .TRUE.

0185    	GOTO 4050

        C

        C---->		CORRECTION FILE SPECIFICATION HAS INVALID SYNTAX.

        C		PRINT PART IN ERROR AND CONTINUE WITH RECORD.

        C

0186    4250	ERRCNT=ERRCNT + 1

0187    	J=-J

0188    	WRITE(2,280,ERR=9000)(RECORD(I),I=1,J)

0189    	GOTO 4750

        C

        C---->		ALL CHARACTERS CHECKED.  SEE IF FIRST CHARACTER IS

        C		NUMERIC OR BLANK.

        C

0190    4450	IF (RECORD(NAMPNT).LT.ZERO .OR. RECORD(NAMPNT).GT.NINE) GOTO 4500

0191    	GOTO 4550

0192    4500	IF (RECORD(NAMPNT).NE.BLANK) GOTO 4650

0193    4550	ERRCNT=ERRCNT + 1

0194    	WRITE(2,290,ERR=9000)

        C



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 8   

					SUBANL.FTN.9        



        C----->		PRINT THE CORRECTION FILE SPECIFICATION.

        C

0195    4650	IF (J.EQ.NAMLNG) GOTO 4680

0196    	WRITE(2,294,ERR=9000)

0197    4680	WRITE(2,295,ERR=9000) (RECORD(I),I=NAMPNT,NAMPNT+NAMLNG-1)

        C

        C---->		WRITE TIME AND DATE.

        C

0198    4750	DATPNT=NAMPNT+NAMLNG

0199    	DATLNG=18

0200    	IF (FLDPNT.GT.MHDLNG) GOTO 6750

0201    	J=DATLNG

0202    	K=DATPNT

0203    4800	CALL DATTIM(J,K,RECORD,I)

0204    	IF (I) 4900,5000,4830

        C

        C---->		DATE AND TIME FIELD HAS ILLEGAL CHARACTER.

        C

0205    4830	WRITE(2,140,ERR=9000)I-DATPNT+1,RECORD(I),RECORD(I) !++01 OCTAL TOO

0206    4860	K=I+1

0207    	J=DATLNG+DAPNNT-K

0208    	ERRCNT=ERRCNT + 1

0209    	IF (K.LT.DATPNT+DATLNG) GOTO 4800

0210    	GOTO 5000

        C

        C---->		DATE AND TIME FIELD HAS ILLEGAL SYNTAX.

        C

0211    4900	I=-I

0212    	WRITE(2,150,ERR=9000)(RECORD(K),K=DATPNT,I)

0213    	GOTO 4860

        C

        C---->		PRINT DATE AND TIME FIELDS.

        C

0214    5000	WRITE(2,160,ERR=9000) (RECORD(I),I=DATPNT,DATPNT+17)

        C

        C---->		WRITE SEQUENTIAL PATCH NUMBER.

        C

0215    5050	FLDPNT=DATPNT+18

0216    	IF (FLDPNT.GT.MHDLNG) GOTO 6750

0217    	WRITE(2,297,ERR=9000)RECORD(FLDPNT)

0218    	GOTO 6800

        C

        C---->		HERE WHEN NEXT FIELD IS BEYOND END OF RECORD

        C

0219    6750	ERRCNT=ERRCNT + 1

0220    	WRITE(2,190,ERR=9000) FLDPNT

0221    6800	RETURN

        C

        C---->		HERE IF AN ERROR WRITING OUTPUT FILE

        C

0222    9000	WRTERR = 1

0223    	RETURN

0224    	END



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 9   

					SUBANL.FTN.9        



PROGRAM SECTIONS



    Name                 Bytes   Attributes



  0 $CODE                 2887   PIC CON REL LCL   SHR   EXE   RD NOWRT LONG

  1 $PDATA                2405   PIC CON REL LCL   SHR NOEXE   RD NOWRT LONG

  2 $LOCAL                  76   PIC CON REL LCL NOSHR NOEXE   RD   WRT LONG

  3 $BLANK                 544   PIC OVR REL GBL   SHR NOEXE   RD   WRT LONG





ENTRY POINTS



    Address  Type Name           



  0-00000000      SUBANL         





VARIABLES



    Address  Type Name               Address  Type Name               Address  Type Name               Address  Type Name           



  2-00000008  L*1 BLANK            2-00000009  L*1 CHRSAV           3-0000021C  I*2 COPYRC           2-00000024  R*4 DAPNNT         

  2-00000002  I*2 DATLNG           2-00000000  I*2 DATPNT           3-00000205  L*1 DUMPIT           2-00000005  L*1 EOM            

  3-00000210  I*2 ERRCNT           2-0000000E  I*2 ERRCOD           2-00000002  I*2 FLDLNG           2-00000000  I*2 FLDPNT         

  2-0000001E  I*2 I                3-00000216  I*2 ISTACK           2-0000001C  I*2 J                2-00000020  I*2 K              

  3-00000204  L*1 LSTREC           2-00000018  I*2 MAXMTN           2-00000010  I*2 MAXREC           2-0000001A  I*2 MHD            

  3-00000200  I*2 MHDLNG           2-00000016  I*2 MINMTN           2-00000012  I*2 MINREC           3-0000020C  I*2 MXINFL         

  3-00000002  I*2 MXRLNG           2-00000002  I*2 NAMLNG           2-00000014  I*2 NAMMAX           2-00000000  I*2 NAMPNT         

  2-00000007  L*1 NINE             3-00000002  L*1 PATLNG           3-0000020E  I*2 PRMODE           2-0000000C  I*2 PROCLG         

  3-00000218  I*2 PROCRC           3-00000206  I*2 PSCNT            3-00000208  I*2 PSRGSD           3-0000020A  I*2 PSRTIR         

  3-00000202  I*2 RECNUM           2-0000000A  I*2 SPCMAX           3-00000001  L*1 STRLEV           2-00000004  L*1 STRUCT         

  3-00000214  I*2 SUBCNT           2-00000000  I*2 SUBPNT           3-00000001  L*1 SUBTYP           3-0000021E  I*2 TIRCNT         

  3-0000021A  I*2 TITLRC           2-00000000  I*2 UICPNT           2-00000002  I*2 VERLNG           2-00000000  I*2 VERPNT         

  3-00000212  I*2 WRTERR           2-00000006  L*1 ZERO           





ARRAYS



    Address  Type Name		       Bytes  Dimensions



  3-00000000  L*1 RECORD                 512  (512)





LABELS



    Address   Label       Address   Label       Address   Label       Address   Label       Address   Label       Address   Label   



  1-00000000  10'       1-0000004B  20'       1-0000009B  40'       1-000000AE  50'       1-000000B5  70'       1-00000111  80'     

  1-00000152  90'       1-0000019F  100'      1-000001CC  110'      1-00000225  120'      1-00000287  130'      1-000002B1  140'    

  1-0000030C  150'      1-00000343  160'      1-00000363  180'      1-000003A0  190'      1-000003E7  210'      1-00000439  220'    

  1-0000049A  230'      1-000004E1  240'      1-00000508  250'      1-00000547  260'      1-00000562  270'      1-000005C5  280'    

  1-0000060D  290'      1-00000661  294'      1-000006A5  295'      1-000006D7  297'      1-000006F9  299'      1-0000071F  300'    

  1-0000076B  310'      1-000007B0  320'      1-000007FC  330'      1-00000848  340'      1-00000892  350'      1-000008DC  360'    

  1-0000091B  370'      0-00000047  500       0-000000AE  510       0-000000D9  520       0-000000E6  600       0-0000011D  700     

  0-00000166  800       0-000001AB  900       0-000001E1  1900      0-00000214  2000      0-0000026C  2200      0-000002D3  2275    

  0-00000320  2350      0-00000339  2370          **      2400      0-00000395  2550      0-00000403  2700      0-0000041F  2750    



SUBANL          22-Aug-1978 02:33:57	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 10  

					SUBANL.FTN.9        



  0-0000042A  2760      0-0000044A  2780      0-000004C5  2796          **      2797      0-00000521  2900      0-0000058B  3050    

      **      3150          **      3250      0-0000064A  3300          **      3350      0-000006B8  3500      0-000006FE  3700    

  0-0000071A  3750      0-00000725  3800      0-00000745  3900      0-0000076C  3930      0-000007AE  4000      0-000007F8  4050    

      **      4100          **      4200      0-00000866  4250      0-000008AC  4450      0-000008C8  4500      0-000008D3  4550    

  0-000008F3  4650      0-00000914  4680      0-00000956  4750      0-00000978  4800          **      4830      0-000009D9  4860    

  0-00000A08  4900      0-00000A48  5000          **      5050      0-00000AC3  6750      0-00000AED  6800      0-00000AEE  9000    





FUNCTIONS AND SUBROUTINES REFERENCED



DATTIM            FLDCHK            SYNTX          





Total Space Allocated = 5912 Bytes





COMPILER OPTIONS



/CHECK=(NOBOUNDS,OVERFLOW)

/DEBUG=(NOSYMBOLS,TRACEBACK)

/OPTIMIZE  /WARNINGS  /NOI4  /NOD_LINES  

