

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

					GSDANL.FTN.23       



        C

        C

        C	GSDANL  --  GLOBAL SYMBOL DEFINITION 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	T.J. PORTER 	01-AUG-76

        C

        C

        C

        C	THIS SUBROUTINE ANALYSES AND VALIDATES ALL GLOBAL SYMBOL

        C	DEFINITION RECORDS.

        C

        C

        C  MODIFICATIONS:

        C

        C

        C NO.		DATE		PROGRAMMER		PURPOSE

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

        C

        C

        C 01		15-AUG-76	K.D. MORSE		REMOVE PRMODE CHECKS

        C							AND TYPE VS WRITES.

        C 02		25-AUG-76	K.D. MORSE		ACCEPT CONCATENATED GSDS.

        C							OMIT RECORD EQUIVALENCES.

        C 03		07-SEP-76	K.D. MORSE		CHANGE PSECT ALIGNMENT

        C							AND DATA TYPES.

        C 04		10-SEP-76	K.D. MORSE		ANALYZE ENTRY POINT

        C							RECORDS.

        C 05		12-NOV-76	K.D. MORSE		NAME FIELD CHECKS

        C							FOR ILLEGAL CHARACTERS

        C							CORRECTED AND ALSO 

        C							OCTAL VALUE OUTPUT.

        C 06		12-NOV-76	K.D. MORSE		SET ILLEGAL PSECT

        C							LENGTH TO MAXIMUM.

        C 07		18-NOV-76	K.D. MORSE		ACCEPT ANY NUMBER 

        C							OF ENTRY POINT MASKS.



                22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 2   

					GSDANL.FTN.23       



        C 08		14-JUN-77	K.D. MORSE		PRINT IV,DV ON ENTRY

        C							POINT MASK.

        C 09		2-FEB-78	K.D. MORSE		ADD SRM TYPES 22 + 23.

        C 10		08-MAY-78	K.D. MORSE		ADD GSD TYPE 3 ANALYSIS,

        C							PROCEDURE WITH FORMAL

        C							ARGUMENT DEFINITION.

        C 11		09-MAY-78	K.D. MORSE		ADD TIRCNT TO COMMON.

        C

        C

        C

        C

0001    	SUBROUTINE	GSDANL

        C

        C

0002    	LOGICAL*1	DUMPIT

        C

0003    	INTEGER		RECNUM,GSDLNG,PSREL,RECPNT,ONELNG,ARGCNT

0004    	INTEGER*4	ALLOC,VALUE

0005    	INTEGER		GSDEF,PSCNT,PSREFD,PSECT,PSNUM,EPOINT

0006    	INTEGER		PSRTIR,PRMODE,ERRCNT,WRTERR,SUBCNT

0007    	INTEGER		PROCRC,TITLRC,COPYRC,TIRCNT,ENTPRO

        C

0008    	REAL*4	REG0,REG1,REG2,REG3,REG4,REG5,REG6,REG7,REG8,REG9,REG10

0009    	REAL*4	REG11,REG12,REG13,REG14,REG15,REGIV,REGDV

        C

0010    	BYTE	RECORD(512),LSTREC,PSDEF,ENTPNT,GSYM,ZERO,NINE,BLANK

0011    	BYTE	PSALGN,PSFLG1,PSFLG2,HEXARA(8)

0012    	BYTE	DUMARA(4),EOM,GSDATY,FLAGS

0013    	BYTE	GSFLG1,GSFLG2,GSDPSX

0014    	BYTE	REGS(4,18),GSDTYP

        C

0015    	COMMON	RECORD,GSDLNG,RECNUM,LSTREC,DUMPIT,PSCNT,PSREFD

0016    	COMMON	PSRTIR,MXRLNG,PRMODE,ERRCNT,WRTERR,SUBCNT,ISTACK

0017    	COMMON PROCRC,TITLRC,COPYRC,TIRCNT

        C

0018    	EQUIVALENCE (GSDATY,PSALGN),(GSFLG1,PSFLG1),(GSFLG2,PSFLG2)

0019    	EQUIVALENCE (ALLOC,DUMARA(1)),(VALUE,DUMARA(1))

0020    	EQUIVALENCE (REGS(1,1),REG0),(REGS(1,2),REG1)

0021    	EQUIVALENCE (REGS(1,3),REG2),(REGS(1,4),REG3)

0022    	EQUIVALENCE (REGS(1,5),REG4),(REGS(1,6),REG5)

0023    	EQUIVALENCE (REGS(1,7),REG6),(REGS(1,8),REG7)

0024    	EQUIVALENCE (REGS(1,9),REG8),(REGS(1,10),REG9)

0025    	EQUIVALENCE (REGS(1,11),REG10),(REGS(1,12),REG11)

0026    	EQUIVALENCE (REGS(1,13),REG12),(REGS(1,14),REG13)

0027    	EQUIVALENCE (REGS(1,15),REG14),(REGS(1,16),REG15)

0028    	EQUIVALENCE (REGS(1,17),REGIV),(REGS(1,18),REGDV)

        C

0029    	DATA	MINGSD,MAXGSD/12,26/

0030    	DATA	MINENT,MAXENT/14,29/

0031    	DATA	MINGSR,MAXGSR/7,21/

0032    	DATA	MINPRO,MAXPRO/16,512/

0033    	DATA	MINARG,MAXARG/0,255/

0034    	DATA	ZERO,NINE,BLANK/'0','9',' '/

0035    	DATA	PSDEF,GSYM,ENTPNT,ENTPRO/0,1,2,3/,EOM/3/

0036    	DATA	NAMMAX,PSREL,PSNUM/15,3,0/

0037    	DATA	GSDEF/2/,MINPDF,MAXPDF/11,25/



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 3   

					GSDANL.FTN.23       



0038    	DATA	REG1/' R1 '/,REG2/' R2 '/,REG3/' R3 '/,REG4/' R4 '/

0039    	DATA	REG5/' R5 '/,REG6/' R6 '/,REG7/' R7 '/,REG8/' R8 '/

0040    	DATA	REG9/' R9 '/,REG10/' R10'/,REG11/' R11'/,REG12/' AP '/

0041    	DATA	REG13/' FP '/,REG14/' SP '/,REG15/' PC '/,REG0/' R0 '/

0042    	DATA	REGIV/'(IV)'/,REGDV/'(DV)'/

0043    10	FORMAT(/' >>>>>>>>>> RECORD',I5,' IS A GSD ',I4,' BYTES LONG',

        	1' <<<<<<<<<<<<<<<<<<<<<<<')

0044    20	FORMAT(T5,'*****WHICH MAY NOT BEGIN A MODULE OR',

        	1' FOLLOW EOM RECORD')

0045    30	FORMAT(T5,'*****GSD TYPE ',I3,' DOES NOT EXIST ')

0046    40	FORMAT(T10,'P-SECTION ALIGNMENT = 2**',I2)

0047    50	FORMAT(/T10,'BYTE'$)

0048    60	FORMAT(/T10,'WORD'$)

0049    70	FORMAT(/T10,'LONGWORD'$)

0050    80	FORMAT(/T10,'QUADWORD'$)

0051    90	FORMAT(/T10,'PAGE'$)

0052    110	FORMAT('+ (2**',I2,' BYTES) ALIGNED P-SECTION')

0053    120	FORMAT(T10,'NO P-SECTION FLAGS SET ')

0054    130	FORMAT(T10,'THE FOLLOWING FLAG BITS ARE SET: ')

0055    140	FORMAT(T15,'0 ',5X,' FL.P.PIC ')

0056    150	FORMAT(T15,'1 ',5X,' FL.P.UNI ')

0057    160	FORMAT(T15,'2 ',5X,' FL.P.OVL ')

0058    170	FORMAT(T15,'3 ',5X,' FL.P.REL ')

0059    180	FORMAT(T15,'4 ',5X,' FL.P.GBL ')

0060    190	FORMAT(T15,'5 ',5X,' FL.P.SHR ')

0061    200	FORMAT(T15,'6 ',5X,' FL.P.XEQ ')

0062    210	FORMAT(T15,'7 ',5X,' FL.P.RD ')

0063    220	FORMAT(T15,'8 ',5X,' FL.P.WRT ')

0064    230	FORMAT(T5,'*****',4X,I2,5X,' ILLEGALLY ')

0065    240	FORMAT(T5,'*****ABSOLUTE PSECT HAS NON ZERO LENGTH ')

0066    260	FORMAT(T10,'PSECT ALLOCATION (BYTES) = ',I11,' (DEC) ',O11,' (',

        	1'OCTAL)'/,T40,8A1,' (HEXADECIMAL)')

0067    270	FORMAT(T5,'*****PSECT NAME LENGTH ILLEGAL ',I5)

0068    280	FORMAT(T5,'*****PSECT NAME CONTAINS ILLEGAL CHARACTER'

        	1,/,T15,'CHARACTER ',I3,' IS ',A1,'   (',I3,' OCTAL)')

0069    290	FORMAT(T10,'PSECT NUMBER',I4,' IS CALLED "',<NAMLNG>A1,'"')

0070    300	FORMAT(/T10,'REFERENCE TO '$)

0071    310	FORMAT(/T10,'DEFINITION OF '$)

0072    320	FORMAT(1H+,'GLOBAL SYMBOL ')

0073    330	FORMAT(T5,'*****RESERVED '$)

0074    340	FORMAT(T10,'UNKNOWN '$)

0075    345	FORMAT(T10,'BIT '$)

0076    350	FORMAT(T10,'BYTE LOGICAL '$)

0077    355	FORMAT(T10,'WORD LOGICAL '$)

0078    360	FORMAT(T10,'LONG WORD LOGICAL '$)

0079    365	FORMAT(T10,'QUAD WORD LOGICAL '$)

0080    370	FORMAT(T10,'BYTE INTEGER '$)

0081    375	FORMAT(T10,'WORD INTEGER '$)

0082    380	FORMAT(T10,'LONG WORD INTEGER '$)

0083    385	FORMAT(T10,'QUAD WORD INTEGER '$)

0084    390	FORMAT(T10,'SINGLE PRECISION FLOATING '$)

0085    395	FORMAT(T10,'DOUBLE PRECISION FLOATING '$)

0086    400	FORMAT(T10,'COMPLEX '$)

0087    405	FORMAT(T10,'DOUBLE PRECISION COMPLEX '$)

0088    410	FORMAT(T10,'ASCII STRING '$)

0089    415	FORMAT(T10,'NUMERIC STRING (UNSIGNED) '$)



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 4   

					GSDANL.FTN.23       



0090    420	FORMAT(T10,'NUMERIC STRING (LEFT SEPARATE SIGN) '$)

0091    422	FORMAT(T10,'NUMERIC STRING (LEFT OVERPUNCHED SIGN) '$)

0092    424	FORMAT(T10,'NUMERIC STRING (RIGHT SEPARATE SIGN) '$)

0093    426	FORMAT(T10,'NUMERIC STRING (RIGHT OVERPUNCHED SIGN) '$)

0094    428	FORMAT(T10,'NUMERIC STRING (ZONED SIGN) '$)

0095    430	FORMAT(T10,'PACKED DECIMAL STRING '$)

0096    432	FORMAT(T10,'SEQUENCE OF INSTRUCTIONS '$)

0097    434	FORMAT(T10,'PROCEDURE ENTRY MASK '$)

0098    440	FORMAT(1H+'DATA TYPE (',I3,')')

0099    450	FORMAT(T5,'*****P-SECT DEFINITION RECORD HAS ILLEGAL LENGTH '/

        	1,T15,'(',I4,' BYTES) - NOT BETWEEN ',I3,' AND ',I3)

0100    460	FORMAT(T10,'NOT ONE GLOBAL SYMBOL FLAG IS SET')

0101    470	FORMAT(T15,'0',5X,' FL.S.WK ')

0102    480	FORMAT(T15,'1',5X,' FL.S.DEF ')

0103    490	FORMAT(T15,'2',5X,' FL.S.UNI ')

0104    500	FORMAT(T15,'3',5X,' FL.S.REL ')

0105    510	FORMAT(T15,'4',5X,' FL.S.VAL ')

0106    520	FORMAT(T5,'*****GLOBAL SYMBOL DEFINITION RECORD HAS ILLEGAL',

        	1' LENGTH'/,T15,'( ',I4,' BYTES) - NOT BETWEEN ',I3,' AND ',I3)

0107    530	FORMAT(T5,'*****GLOBAL SYMBOL REFERENCE RECORD HAS ILLEGAL',

        	1' LENGTH'/,T15,'( ',I4,' BYTES) - NOT BETWEEN ',I3,' AND ',I3)

0108    540	FORMAT(T10,'SYMBOL DEFINED IN P-SECTION ',I4)

0109    550	FORMAT(T10,'GLOBAL SYMBOL VALUE = ',I11,' (DEC) ',O11,' (OCTAL)'

        	1/T40,8A1,' (HEXADECIMAL)')

0110    560	FORMAT(T5,'*****GLOBAL SYMBOL LENGTH (',I4,' BYTES)'/

        	1,T15,'ILLEGAL - NOT 1 TO ',I3,' CHARACTERS ')

0111    570	FORMAT(T5,'*****GLOBAL SYMBOL CONTAINS ILLEGAL CHARACTER'/

        	1,T15'CHARACTER ',I2,' IS ',A1,'   (',I3,' OCTAL)')

0112    580	FORMAT(T5,'*****FIRST CHARACTER OF GLOBAL SYMBOL IS'

        	1/,T15,'NUMERIC OR BLANK')

0113    590	FORMAT(T10,'GLOBAL SYMBOL IS "',<NAMLNG>A1,'" ')

0114    610	FORMAT(T5,'*****FIRST CHARACTER OF P-SECT NAME IS'

        	1/T15,'NUMERIC OR BLANK')

0115    620	FORMAT(T5,'*****ILLEGAL ALIGNMENT - GREATER THAN 2**9')

0116    630	FORMAT(T10,'REGISTERS SAVED:'/T15,$)

0117    640	FORMAT('+',4A1,$)

0118    650	FORMAT()

0119    670	FORMAT(T5,'*****ENTRY POINT GSD RECORD HAS ILLEGAL',

        	1' LENGTH'/,T15,'( ',I4,' BYTES) - NOT BETWEEN ',I3,' AND ',I3)

0120    680	FORMAT(1H+,' ENTRY POINT SYMBOL ')

0121    690	FORMAT(T5,'*****PROCEDURE WITH FORMAL ARGUMENT DEFINITION HAS',

        	1' ILLEGAL LENGTH'/,T15,'(',I4,' BYTES) - NOT BETWEEN ',I3,' AND ',I3)

0122    700	FORMAT(1H+,' PROCEDURE WITH FORMAL ARGUMENT DEFINITION')

0123    710	FORMAT(T10,'MINIMUM NUMBER OF ACTUAL ARGUMENTS IS ',I3)

0124    720	FORMAT(T10,'MAXIMUM NUMBER OF ACTUAL ARGUMENTS IS ',I3)

0125    730	FORMAT(T5,'*****PROCEDURE WITH FORMAL ARGUMENT DEFINITIONS IS',

        	1' MISSING MINIMUM ACTUAL ARGUMENT COUNT')

0126    740	FORMAT(T5,'*****PROCEDURE WITH FORMAL ARGUMENT DEFINITIONS IS',

        	1' MISSING MAXIMUM ACTUAL ARGUMENT COUNT')

0127    750	FORMAT(T5,'*****INVALID MINIMUM ACTUAL ARGUMENT COUNT OF',I4,

        	1' NOT BETWEEN ',I4,' AND ',I4)

0128    760	FORMAT(T5,'*****INVALID MAXIMUM ACTUAL ARGUMENT COUNT OF',I4,

        	1' NOT BETWEEN ',I4,' AND ',I4)

0129    770	FORMAT(T10,'ARGUMENT #',I4,' VALIDATION CONTROL BYTE PASSING',

        	1' MECHANISM:')

0130    780	FORMAT(T15,'ARG$K_UNKNOWN  -  UNSPECIFIED')



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 5   

					GSDANL.FTN.23       



0131    790	FORMAT(T15,'ARG$K_VALUE    -  BY VALUE')

0132    800	FORMAT(T15,'ARG$K_REF      -  BY REFERENCE')

0133    810	FORMAT(T15,'ARG$K_DESC     - BY DESCRIPTOR')

0134    820	FORMAT(T10,'ARGUMENT DESCRIPTION BYTE COUNT OF ',I4,' FOLLOWS:')

0135    830	FORMAT(T5,'*****ARGUMENT DESCRIPTOR MISSING FOR FORMAL ARGUMENT #',

        	1I5)

0136    840	FORMAT(T5,'*****RESERVED BIT #',I2,' SET IN ARGUMENT VALIDATION'

        	1,' CONTROL BYTE')

0137    850	FORMAT(T5,'*****FORMAL ARGUMENT DESCRIPTOR IS MISSING REMAINING'

        	1,' BYTE COUNT')

0138    860	FORMAT (T5,'*****BYTE COUNT GOES BEYOND END OF RECORD BY',

        	1I4,' BYTES')

0139    870	FORMAT(T5,'*****MINIMUM IS GREATER THAN MAXIMUM')

        C

        C---->	ANNOUNCE GSD RECORD AND VALIDATE SEQUENCE

        C

0140    	RECPNT=2

0141    	WRITE(2,10,ERR=9000) RECNUM,GSDLNG

0142    930	IF(LSTREC .NE. EOM)GO TO 1000

0143    	ERRCNT = ERRCNT + 1

0144    	WRITE(2,20,ERR=9000)

        C

        C---->	DETERMINE WHAT TYPE OF GSD RECORD

        C

0145    1000	GSDTYP=RECORD(RECPNT)

0146    	IF (GSDTYP.EQ.PSDEF) GOTO 1030

0147    	IF ((GSDTYP .EQ. GSYM) .OR. (GSDTYP .EQ. ENTPNT) .OR.

        	1    (GSDTYP .EQ. ENTPRO)) GOTO 3000

        C

        C---->		ILLEGAL GSD TYPE

        C

0148    		ERRCNT = ERRCNT + 1

0149    		WRITE(2,30,ERR=9000) GSDTYP

0150    1025		DUMPIT = .TRUE.

0151    		RETURN

        C

        C---->	HERE FOR P-SECTION DEFINITION.  CHECK LENGTH OF RECORD.

        C

0152    1030	ONELNG=10+RECORD(RECPNT+8)		!++06 CORRECT ONELNG (10 NOT 11)

0153    	IF ((ONELNG .GE. MINPDF) .AND. (ONELNG .LE. MAXPDF)) GOTO 1050

0154    		ERRCNT = ERRCNT + 1

0155    		WRITE(2,450,ERR=9000) ONELNG,MINPDF,MAXPDF

0156    		ONELNG=MAXPDF			!++06 CHANGE LENGTH TO MAXIMUM

0157    1050	PSCNT = PSCNT+1

        C

        C---->	FIRST ANALYSE ALIGNMENT.

        C

0158    	RECPNT=RECPNT + 1

0159    	PSALGN=RECORD(RECPNT)

0160    	GO TO (1100,1110,1120,1130)PSALGN + 1

0161    		IF(PSALGN .EQ. 9)GO TO 1140

0162    		IF(PSALGN .LT. 9) GO TO 1090

0163    		ERRCNT = ERRCNT + 1

0164    		WRITE(2,620,ERR=9000)

0165    1090		WRITE(2,40,ERR=9000) PSALGN

0166    		GO TO 1170



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 6   

					GSDANL.FTN.23       



0167    1100			WRITE(2,50,ERR=9000)

0168    			GO TO 1160

0169    1110			WRITE(2,60,ERR=9000)

0170    			GO TO 1160

0171    1120			WRITE(2,70,ERR=9000)

0172    			GO TO 1160

0173    1130			WRITE(2,80,ERR=9000)

0174    			GO TO 1160

0175    1140			WRITE(2,90,ERR=9000)

0176    			GO TO 1160

0177    1160		WRITE(2,110,ERR=9000) PSALGN

        C

        C---->	NOW ANALYSE FLAGS.

        C

0178    1170	RECPNT=RECPNT + 1

0179    	PSFLG1=RECORD(RECPNT)

0180    	PSFLG2=RECORD(RECPNT+1)

0181    	IF((PSFLG1 .OR. PSFLG2) .NE. 0)GO TO 1200

0182    		WRITE(2,120,ERR=9000)

0183    		GO TO 1450

0184    1200	WRITE(2,130,ERR=9000)

0185    1210	K = 0

0186    	FLAGS = PSFLG1 

0187    1220	DO 1400 I = 0,7

0188    	IF (ISTATE(FLAGS,I)) GO TO 1250

0189    	GO TO 1400

0190    1250		JK = I+(8*K)

0191    		GO TO(1260,1270,1280,1290,1300,1310,1320,1330,1340)JK+1

0192    		GO TO 1350

0193    1260		WRITE(2,140,ERR=9000)

0194    		GO TO 1400

0195    1270		WRITE(2,150,ERR=9000)

0196    		GO TO 1400

0197    1280		WRITE(2,160,ERR=9000)

0198    		GO TO 1400

0199    1290		WRITE(2,170,ERR=9000)

0200    		GO TO 1400

0201    1300		WRITE(2,180,ERR=9000)

0202    		GO TO 1400

0203    1310		WRITE(2,190,ERR=9000)

0204    		GO TO 1400

0205    1320		WRITE(2,200,ERR=9000)

0206    		GO TO 1400

0207    1330		WRITE(2,210,ERR=9000)

0208    		GO TO 1400

0209    1340		WRITE(2,220,ERR=9000)

0210    		GO TO 1400

0211    1350		WRITE(2,230,ERR=9000) JK

0212    1360		ERRCNT = ERRCNT + 1

0213    1400	CONTINUE

0214    	IF(K .NE. 0) GO TO 1450

0215    		K = K+1

0216    		FLAGS = PSFLG2 

0217    		GO TO 1220

        C

        C---->	ALL FLAGS ARE INTERPRETED - NOW THE



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 7   

					GSDANL.FTN.23       



        C		ALLOCATION FIELD

        C

0218    1450	RECPNT=RECPNT + 2

0219    	DO 1460 I = 1,4

0220    	DUMARA(I) = RECORD(RECPNT+I-1)

0221    1460	CONTINUE

        C

        C---->	CHECK THAT IF ABSOLUTE IT HAS ZERO ALLOCATION

        C

        C

0222    	IF (ISTATE(PSFLG1,PSREL)) GO TO 1520

0223    		IF(ALLOC .EQ. 0)GO TO 1520

0224    		ERRCNT = ERRCNT + 1

0225    		WRITE(2,240,ERR=9000)

0226    		GO TO 1520

        C

        C---->	WRITE ALLOCATION FIELD

        C

0227    1520	CALL CVTOHX(ALLOC,HEXARA)

0228    	WRITE(2,260,ERR=9000) ALLOC,ALLOC,HEXARA

0229    1559	CONTINUE

        C

        C---->		NOW VALIDATE PSECT NAME FIELD

        C

0230    	RECPNT=RECPNT + 4

0231    	NAMLNG = RECORD(RECPNT)

0232    	RECPNT=RECPNT + 1

0233    1560	J = NAMLNG

0234    	K = RECPNT

0235    1570	CALL	FLDCHK(J,K,RECORD,I)

0236    	IF (I)1600,1670,1650

        C

        C---->		P-SECTION NAME IS INVALID LENGTH

        C

0237    1600 		WRITE(2,270,ERR=9000) NAMLNG

0238    1630		NAMLNG = NAMMAX

0239    		DUMPIT = .TRUE.

0240    		ERRCNT = ERRCNT + 1

0241    		GO TO 1560

        C

        C---->		P-SECTION NAME CONTAINS AN ILLEGAL CHARACTER

        C

0242    1650		WRITE(2,280,ERR=9000)I-RECPNT+1,RECORD(I),RECORD(I) !++05 OCTAL TOO

0243    1665		K = I + 1

0244    		ERRCNT = ERRCNT + 1

0245    		J = NAMLNG - K + RECPNT		!++05 SET NEW LENGTH

0246    		IF(K .LE. (ONELNG - MINPDF + RECPNT)) GO TO 1570 !++05 CHECK TO CONT.

        C

        C---->		NOW CHECK FIRST CHARACTER IS NOT NUMERIC OR BLANK

        C

0247    1670	IF(RECORD(RECPNT) .EQ. BLANK) GO TO 1680

0248    	IF (RECORD(RECPNT) .LT. ZERO .OR. (RECORD(RECPNT) .GT. NINE))

        	1GOTO 1700

        C

0249    1680		ERRCNT = ERRCNT + 1

0250    		WRITE(2,610,ERR=9000)



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 8   

					GSDANL.FTN.23       



        C

        C---->	NOW, FINALLY WRITE PSECT NAME

        C		THEN RETURN, INCREMENTING

        C		PSECTION NUMBER.

        C

0251    1700	WRITE(2,290,ERR=9000)PSCNT,(RECORD(I),I=RECPNT,RECPNT+NAMLNG-1)

0252    1730	RECPNT=RECPNT + NAMLNG

0253    	IF (RECPNT.LE.GSDLNG) GOTO 1000

0254    	RETURN

        C

        C---->		HERE FOR GLOBAL SYMBOL SPECIFICATION

        C		CHECK FOR REFERENCE, DEFINITION

        C

0255    3000	GSDATY=RECORD(RECPNT+1)

0256    	GSFLG1=RECORD(RECPNT+2)

0257    	GSFLG2=RECORD(RECPNT+3)

0258    	RECPNT=RECPNT + 4

        C

        C---->		CHECK LENGTH OF THIS PART OF RECORD.

        C

0259    	IF (GSDTYP .EQ. ENTPNT) GOTO 3030

0260    	IF (GSDTYP .EQ. ENTPRO) GOTO 3045

0261    	IF ((GSFLG1 .AND. GSDEF) .NE. GSDEF) GOTO 3050

        C

        C---->		COMPUTE LENGTH OF GLOBAL SYMBOL DEFINITION

        C

0262    	ONELNG=11+RECORD(RECPNT+5)

0263    	IF ((ONELNG .GE. MINGSD) .AND. (ONELNG .LE. MAXGSD)) GOTO 3020

0264    		ERRCNT=ERRCNT+1

0265    		WRITE(2,520,ERR=9000)ONELNG,MINGSD,MAXGSD

0266    3020	WRITE(2,310,ERR=9000)

0267    	GOTO 3090

        C

        C---->		COMPUTE ENTRY POINT DEFINITION LENGTH.

        C

0268    3030	ONELNG=13+RECORD(RECPNT+7)

0269    	IF ((ONELNG .GE. MINENT) .AND. (ONELNG .LE. MAXENT)) GOTO 3040

0270    		ERRCNT=ERRCNT+1

0271    		WRITE(2,670,ERR=9000)ONELNG,MINENT,MAXENT

0272    3040	WRITE(2,310,ERR=9000)

0273    	WRITE(2,680,ERR=9000)

0274    	GOTO 3100

        C

        C---->		COMPUTE LENGTH OF ENTRY POINT DEFINITION WITH FORMAL

        C		ARGRMENT DEFINITIONS.

        C

0275    3045	ONELNG = 15 + RECORD(RECPNT+7)

0276    	IF ((ONELNG .GE. MINPRO) .AND. (ONELNG .LE. MAXPRO)) GOTO 3046

0277    		ERRCNT = ERRCNT + 1

0278    		WRITE(2,690,ERR=9000)ONELNG,MINPRO,MAXPRO

0279    3046	WRITE(2,310,ERR=9000)

0280    	WRITE(2,700,ERR=9000)

0281    	GOTO 3100

        C

        C---->		COMPUTE LENGTH OF REFERENCE TO GLOBAL SYMBOL.

        C



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 9   

					GSDANL.FTN.23       



0282    3050	ONELNG=6+RECORD(RECPNT)

0283    	IF ((ONELNG .GE. MINGSR) .AND. (ONELNG .LE. MAXGSR)) GOTO 3060

0284    		ERRCNT=ERRCNT+1

0285    		WRITE(2,530,ERR=9000)ONELNG,MINGSR,MAXGSR

0286    3060	WRITE(2,300,ERR=9000)

0287    3090	WRITE(2,320,ERR=9000)

0288    3100	GO TO(3110,3120,3130,3140,3150,3160,3170,3180,3190,3200)GSDATY+1

0289    	GOTO (3205,3210,3215,3220,3225,3230,3235,3240,3245,3250,3255,3257,

        	13258,3259) GSDATY-9

0290    		ERRCNT = ERRCNT + 1

0291    		WRITE(2,330,ERR=9000)

0292    		GO TO 3260

0293    3110		WRITE(2,340,ERR=9000)

0294    		GO TO 3260

0295    3120		WRITE(2,345,ERR=9000)

0296    		GO TO 3260

0297    3130		WRITE(2,350,ERR=9000)

0298    		GO TO 3260

0299    3140		WRITE(2,355,ERR=9000)

0300    		GO TO 3260

0301    3150		WRITE(2,360,ERR=9000)

0302    		GO TO 3260

0303    3160		WRITE(2,365,ERR=9000)

0304    		GO TO 3260

0305    3170		WRITE(2,370,ERR=9000)

0306    		GO TO 3260

0307    3180		WRITE(2,375,ERR=9000)

0308    		GO TO 3260

0309    3190		WRITE(2,380,ERR=9000)

0310    		GO TO 3260

0311    3200		WRITE(2,385,ERR=9000)

0312    		GO TO 3260

0313    3205		WRITE(2,390,ERR=9000)

0314    		GOTO 3260

0315    3210		WRITE(2,395,ERR=9000)

0316    		GOTO 3260

0317    3215		WRITE(2,400,ERR=9000)

0318    		GOTO 3260

0319    3220		WRITE(2,405,ERR=9000)

0320    		GOTO 3260

0321    3225		WRITE(2,410,ERR=9000)

0322    		GOTO 3260

0323    3230		WRITE(2,415,ERR=9000)

0324    		GOTO 3260

0325    3235		WRITE(2,420,ERR=9000)

0326    		GOTO 3260

0327    3240		WRITE(2,422,ERR=9000)

0328    		GOTO 3260

0329    3245		WRITE(2,424,ERR=9000)

0330    		GOTO 3260

0331    3250		WRITE(2,426,ERR=9000)

0332    		GOTO 3260

0333    3255		WRITE(2,428,ERR=9000)

0334    		GOTO 3260

0335    3257		WRITE(2,430,ERR=9000)

0336    		GOTO 3260



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 10  

					GSDANL.FTN.23       



0337    3258		WRITE(2,432,ERR=9000)

0338    		GOTO 3260

0339    3259		WRITE(2,434,ERR=9000)

0340    		GOTO 3260

0341    3260	WRITE(2,440,ERR=9000) GSDATY

        C

        C---->	NOW ANALYSE WHAT FLAGS ARE SET

        C

        C

0342    3270	IF((GSFLG1 .OR. GSFLG2) .NE. 0)GO TO 3300

0343    		WRITE(2,460,ERR=9000)

0344    		GO TO 3550

0345    3300	WRITE(2,130,ERR=9000)

0346    3330	K = 0

0347    	FLAGS = GSFLG1

0348    3350	DO 3500 I = 0,7

0349    	IF (ISTATE(FLAGS,I)) GO TO 3400

0350    	GO TO 3500

0351    3400		JK = I+(8*K)

0352    3405		GO TO(3410,3420,3430,3440,3450)JK+1

0353    		ERRCNT = ERRCNT + 1

0354    		WRITE(2,230,ERR=9000) JK

0355    		GO TO 3500

0356    3410		WRITE(2,470,ERR=9000)

0357    		GO TO 3500

0358    3420		WRITE(2,480,ERR=9000)

0359    		GO TO 3500

0360    3430		WRITE(2,490,ERR=9000)

0361    		GO TO 3500

0362    3440		WRITE(2,500,ERR=9000)

0363    		GO TO 3500

0364    3450		WRITE(2,510,ERR=9000)

0365    3500	CONTINUE

0366    	IF (K .NE. 0) GO TO 3550

0367    		K = K + 1

0368    		FLAGS = GSFLG2

0369    		GO TO 3350

        C

        C---->		FLAGS ARE DONE.  IF THIS IS

        C			DEFINITION - ANALYSE VALUE

        C			ELSE SKIP TO SYMBOL NAME

        C

0370    3550	IF((GSFLG1 .AND. GSDEF) .EQ. 0)GO TO 3720

0371    3570	GSDPSX=RECORD(RECPNT)

0372    	RECPNT=RECPNT + 1

0373    	PSECT = GSDPSX .AND. 255

0374    	IF(PSECT .LE. PSREFD)GO TO 3600

0375    	PSREFD = PSECT

0376    3600	WRITE(2,540,ERR=9000) PSECT

0377    3609	DO 3610 I = 1,4

0378    	DUMARA(I) = RECORD(RECPNT+I-1)

0379    3610	CONTINUE

0380    	CALL CVTOHX(VALUE,HEXARA)

0381    	WRITE(2,550,ERR=9000) VALUE,VALUE,HEXARA

0382    3640	RECPNT=RECPNT + 5

0383    	NAMLNG = RECORD(RECPNT-1)



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 11  

					GSDANL.FTN.23       



0384    	NAMPNT = RECPNT

0385    	IF (GSDTYP.EQ.GSYM) GOTO 3750

        C

        C---->	VALIDATE ENTRY POINT MASK

        C

0386    	NUMREG=0

0387    	FLAGS=RECORD(RECPNT-1)

0388    	DO 3670 I=0,7

0389    	IF (ISTATE(FLAGS,I)) GOTO 3660

0390    	GOTO 3670

0391    3660	IF (NUMREG.EQ.0) WRITE(2,630,ERR=9000)

0392    	WRITE(2,640,ERR=9000)(REGS(J,I+1),J=1,4)

0393    	NUMREG=1

0394    3670	CONTINUE

0395    	FLAGS=RECORD(RECPNT)

0396    	DO 3690 I=0,7

0397    	IF (ISTATE(FLAGS,I)) GOTO 3680

0398    	GOTO 3690

0399    3680	IF (NUMREG.EQ.0) WRITE(2,630,ERR=9000)

0400    	WRITE(2,640,ERR=9000)(REGS(J,I+9),J=1,4)

0401    	IF (I .EQ. 6)WRITE(2,640,ERR=9000)(REGS(J,17),J=1,4)

0402    	IF (I .EQ. 7)WRITE(2,640,ERR=9000)(REGS(J,18),J=1,4)

0403    	NUMREG=1

0404    3690	CONTINUE

0405    	WRITE(2,650,ERR=9000)

0406    	RECPNT=RECPNT+2

0407    	NAMLNG=RECORD(RECPNT-1)

0408    	NAMPNT=RECPNT

0409    	GOTO 3750

0410    3720	NAMLNG = RECORD(RECPNT)

0411    	RECPNT=RECPNT + 1

0412    	NAMPNT = RECPNT

        C

        C---->		NOW VALIDATE AND WRITE SYMBOL

        C

0413    3750	J = NAMLNG

0414    	K = NAMPNT

0415    3760	CONTINUE

0416    	CALL	FLDCHK(J,K,RECORD,I)

0417    3790	IF(I)3800,3900,3850

        C

        C---->		ILLEGAL SYMBOL LENGTH

        C

0418    3800	WRITE(2,560,ERR=9000) NAMLNG,NAMMAX

0419    3830	NAMLNG = NAMMAX

0420    	DUMPIT = .TRUE.

0421    	ERRCNT = ERRCNT + 1

0422    	GO TO 3750

        C

        C---->		SYMBOL CONTAINS ILLEGAL CHARACTER

        C

0423    3850	WRITE(2,570,ERR=9000) I-RECPNT+1,RECORD(I),RECORD(I) !++05 OCTAL OUTPUT TOO

0424    3890	K = I + 1

0425    	ERRCNT = ERRCNT + 1

0426    	J = NAMLNG - K + NAMPNT			!++05 SET NEW LENGTH

0427    	IF ((GSDTYP .EQ. ENTPNT) .AND.



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 12  

					GSDANL.FTN.23       



        	1 (K .LE. (ONELNG-MINENT+RECPNT))) GOTO 3760 !++05 CONTINUE?

0428    	IF ((GSDTYP .EQ. ENTPRO) .AND.

        	1 (K .LE. (ONELNG-MINPRO+RECPNT))) GOTO 3760 !++05 CONTINUE?

0429    	IF ((GSDTYP .EQ. GSYM) .AND. 

        	1 ((GSFLG1 .AND. GSDEF) .EQ. GSDEF) .AND.

        	2 (K .LE. (ONELNG-MINGSD+RECPNT)))  GOTO 3760 !++05 CONTINUE?

0430    	IF ((GSDTYP .EQ. GSYM) .AND. 

        	1 ((GSFLG1 .AND. GSDEF) .NE. GSDEF) .AND.

        	2 (K .LE. (ONELNG-MINGSR+RECPNT)))  GOTO 3760 !++05 CONTINUE?

0431    	DUMPIT = .TRUE.

        C

        C---->		CHECK SYMBOL CHARACTER ONE

        C		NOT NUMERIC OR BLANK THEN PRINT

        C

0432    3900	IF((GSFLG1 .AND. GSDEF) .EQ. 0)GO TO 3950

0433    	IF(RECORD(RECPNT) .EQ. BLANK)GO TO 3910

0434    	IF(RECORD(RECPNT) .LT. ZERO .OR. (RECORD(RECPNT) .GT. NINE))

        	1GOTO 3920

0435    3910	ERRCNT = ERRCNT + 1

0436    	WRITE(2,580,ERR=9000)

0437    3920	WRITE(2,590,ERR=9000) (RECORD(I) , I = RECPNT,RECPNT+NAMLNG-1)

0438    	GO TO 4000

0439    3950	IF(RECORD(RECPNT) .EQ. BLANK)GO TO 3960

0440    	IF(RECORD(RECPNT) .LT. ZERO .OR. (RECORD(RECPNT) .GT. NINE))

        	1GOTO 3970

0441    3960	ERRCNT = ERRCNT + 1

0442    	WRITE(2,580,ERR=9000)

0443    3970	WRITE(2,590,ERR=9000) (RECORD(I), I = RECPNT,RECPNT+NAMLNG-1)

        C

        C---->		SYMBOL PRINTED

        C

0444    4000	RECPNT=RECPNT + NAMLNG

0445    	IF (GSDTYP .NE. ENTPRO) GOTO 5000

        C

        C---->		NOW PRINT OUT THE MIN AND MAX FORMAL ARGUMENT COUNTS

        C

0446    	IF (RECPNT .LE. GSDLNG) GOTO 4010

0447    		ERRCNT = ERRCNT + 1

0448    		WRITE(2,730,ERR=9000)

0449    		GOTO 4040

0450    4010	IF ((RECORD(RECPNT) .GE. MINARG) .AND.

        	1   (RECORD(RECPNT) .LE. MAXARG)) GOTO 4020

0451    		ERRCNT = ERRCNT + 1

0452    		WRITE(2,750,ERR=9000)RECORD(RECPNT),MINARG,MAXARG

0453    		GOTO 4030

0454    4020	WRITE(2,710,ERR=9000)RECORD(RECPNT)

0455    4030	RECPNT = RECPNT + 1

0456    4040	ARGCNT = 0

0457    	IF (RECPNT .LE. GSDLNG) GOTO 4050

0458    		ERRCNT = ERRCNT + 1

0459    		WRITE(2,740,ERR=9000)

0460    		GOTO 4080

0461    4050	IF (RECORD(RECPNT-1) .LE. RECORD(RECPNT)) GOTO 4060

0462    		WRITE(2,870,ERR=9000)

0463    		ERRCNT = ERRCNT + 1

0464    4060	IF ((RECORD(RECPNT) .GE. MINARG) .AND.



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 13  

					GSDANL.FTN.23       



        	1   (RECORD(RECPNT) .LE. MAXARG)) GOTO 4070

0465    		ERRCNT = ERRCNT + 1

0466    		WRITE(2,760,ERR=9000)RECORD(RECPNT),MINARG,MAXARG

0467    4070	ARGCNT = RECORD(RECPNT)

0468    	WRITE(2,720,ERR=9000)RECORD(RECPNT)

0469    	RECPNT = RECPNT + 1

        C

        C---->		NOW WRITE OUT THE FORMAL ARGUMENT DESCRIPTORS (IF ANY)

        C

0470    4080	IF (ARGCNT .EQ. 0) GOTO 5000

0471    	DO 4180 I=1,ARGCNT

0472    	WRITE(2,770,ERR=9000)I

0473    	IF (RECPNT .LE. GSDLNG) GOTO 4090

0474    		WRITE(2,830,ERR=9000)I

0475    		ERRCNT = ERRCNT + 1

0476    		GOTO 4180

0477    4090	IF (ISTATE(RECORD(RECPNT),0)) GOTO 4110

0478    	IF (ISTATE(RECORD(RECPNT),1)) GOTO 4100

0479    		WRITE(2,780,ERR=9000)

0480    		GOTO 4130

0481    4100	WRITE(2,800,ERR=9000)

0482    	GOTO 4130

0483    4110	IF (ISTATE(RECORD(RECPNT),1)) GOTO 4120

0484    		WRITE(2,790,ERR=9000)

0485    		GOTO 4130

0486    4120	WRITE(2,810,ERR=9000)

0487    4130	DO 4140 J=2,7

0488    	IF (ISTATE(RECORD(RECPNT),J)) GOTO 4135

0489    	GOTO 4140

0490    4135	ERRCNT = ERRCNT + 1

0491    	WRITE(2,840,ERR=9000)J

0492    4140	CONTINUE

0493    	RECPNT = RECPNT + 1

0494    	IF (RECPNT .LE. GSDLNG) GOTO 4150

0495    		ERRCNT = ERRCNT + 1

0496    		WRITE(2,850,ERR=9000)

0497    		GOTO 4180

0498    4150	WRITE(2,820,ERR=9000)RECORD(RECPNT)

0499    	IF (RECPNT+RECORD(RECPNT) .LE. GSDLNG) GOTO 4160

0500    		ERRCNT = ERRCNT + 1

0501    		LENGTH = GSDLNG - RECPNT

0502    		WRITE(2,860,ERR=9000)RECORD(RECPNT)-LENGTH

0503    		GOTO 4170

0504    4160	LENGTH = RECORD(RECPNT)

0505    4170	IF (LENGTH .EQ. 0) GOTO 4175

0506    	CALL HEXDMP(RECORD,RECPNT+1,LENGTH,PRMODE)

0507    4175	RECPNT = RECPNT + LENGTH + 1

0508    4180	CONTINUE

        C

        C---->		ALL DONE WITH THIS GSD - RETURN

        C

0509    5000	IF (RECPNT.LE.GSDLNG) GOTO 1000

0510    	RETURN

        C

        C---->		HERE FOR OUTPUT FILE WRITE ERROR

        C



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 14  

					GSDANL.FTN.23       



0511    9000	WRTERR = 1

0512    	RETURN

        C

        C

0513    	END



GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 15  

					GSDANL.FTN.23       



PROGRAM SECTIONS



    Name                 Bytes   Attributes



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

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

  2 $LOCAL                 302   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      GSDANL         





VARIABLES



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



  2-00000048  I*4 ALLOC            2-00000068  I*2 ARGCNT           2-0000005C  L*1 BLANK            3-0000021C  I*2 COPYRC         

  3-00000205  L*1 DUMPIT           2-00000058  L*1 ENTPNT           2-00000072  I*2 ENTPRO           2-0000005D  L*1 EOM            

  2-00000070  I*2 EPOINT           3-00000210  I*2 ERRCNT           2-0000005E  L*1 FLAGS            2-0000004E  L*1 GSDATY         

  2-0000006A  I*2 GSDEF            3-00000200  I*2 GSDLNG           2-0000005F  L*1 GSDPSX           2-00000060  L*1 GSDTYP         

  2-0000004D  L*1 GSFLG1           2-0000004C  L*1 GSFLG2           2-00000059  L*1 GSYM             2-00000092  I*2 I              

  3-00000216  I*2 ISTACK           2-00000096  I*2 J                2-00000094  I*2 JK               2-00000090  I*2 K              

  2-0000009C  I*2 LENGTH           3-00000204  L*1 LSTREC           2-00000086  I*2 MAXARG           2-0000007A  I*2 MAXENT         

  2-00000076  I*2 MAXGSD           2-0000007E  I*2 MAXGSR           2-0000008C  I*2 MAXPDF           2-00000082  I*2 MAXPRO         

  2-00000084  I*2 MINARG           2-00000078  I*2 MINENT           2-00000074  I*2 MINGSD           2-0000007C  I*2 MINGSR         

  2-0000008A  I*2 MINPDF           2-00000080  I*2 MINPRO           3-0000020C  I*2 MXRLNG           2-0000008E  I*2 NAMLNG         

  2-00000088  I*2 NAMMAX           2-00000098  I*2 NAMPNT           2-0000005B  L*1 NINE             2-0000009A  I*2 NUMREG         

  2-00000066  I*2 ONELNG           3-0000020E  I*2 PRMODE           3-00000218  I*2 PROCRC           2-0000004E  L*1 PSALGN         

  3-00000206  I*2 PSCNT            2-00000057  L*1 PSDEF            2-0000006C  I*2 PSECT            2-0000004D  L*1 PSFLG1         

  2-0000004C  L*1 PSFLG2           2-0000006E  I*2 PSNUM            3-00000208  I*2 PSREFD           2-00000062  I*2 PSREL          

  3-0000020A  I*2 PSRTIR           3-00000202  I*2 RECNUM           2-00000064  I*2 RECPNT           2-00000000  R*4 REG0           

  2-00000004  R*4 REG1             2-00000028  R*4 REG10            2-0000002C  R*4 REG11            2-00000030  R*4 REG12          

  2-00000034  R*4 REG13            2-00000038  R*4 REG14            2-0000003C  R*4 REG15            2-00000008  R*4 REG2           

  2-0000000C  R*4 REG3             2-00000010  R*4 REG4             2-00000014  R*4 REG5             2-00000018  R*4 REG6           

  2-0000001C  R*4 REG7             2-00000020  R*4 REG8             2-00000024  R*4 REG9             2-00000044  R*4 REGDV          

  2-00000040  R*4 REGIV            3-00000214  I*2 SUBCNT           3-0000021E  I*2 TIRCNT           3-0000021A  I*2 TITLRC         

  2-00000048  I*4 VALUE            3-00000212  I*2 WRTERR           2-0000005A  L*1 ZERO           





ARRAYS



    Address  Type Name		       Bytes  Dimensions



  2-00000048  L*1 DUMARA                   4  (4)

  2-0000004F  L*1 HEXARA                   8  (8)

  3-00000000  L*1 RECORD                 512  (512)

  2-00000000  L*1 REGS                    72  (4,18)





LABELS





GSDANL          22-Aug-1978 02:32:46	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 16  

					GSDANL.FTN.23       



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



  1-00000008  10'       1-00000055  20'       1-00000092  30'       1-000000B9  40'       1-000000D9  50'       1-000000E4  60'     

  1-000000EF  70'       1-000000FE  80'       1-0000010D  90'       1-00000118  110'      1-0000013E  120'      1-0000015A  130'    

  1-00000180  140'      1-00000195  150'      1-000001AA  160'      1-000001BF  170'      1-000001D4  180'      1-000001E9  190'    

  1-000001FE  200'      1-00000213  210'      1-00000227  220'      1-0000023C  230'      1-00000259  240'      1-00000286  260'    

  1-000002D6  270'      1-000002FC  280'      1-00000355  290'      1-00000380  300'      1-00000394  310'      1-000003A9  320'    

  1-000003BD  330'      1-000003D1  340'      1-000003DF  345'      1-000003E9  350'      1-000003FC  355'      1-0000040F  360'    

  1-00000427  365'      1-0000043F  370'      1-00000452  375'      1-00000465  380'      1-0000047D  385'      1-00000495  390'    

  1-000004B5  395'      1-000004D5  400'      1-000004E3  405'      1-00000502  410'      1-00000515  415'      1-00000535  420'    

  1-0000055F  422'      1-0000058C  424'      1-000005B7  426'      1-000005E5  428'      1-00000607  430'      1-00000623  432'    

  1-00000642  434'      1-0000065D  440'      1-00000673  450'      1-000006D4  460'      1-000006FA  470'      1-0000070D  480'    

  1-00000721  490'      1-00000735  500'      1-00000749  510'      1-0000075D  520'      1-000007C7  530'      1-00000830  540'    

  1-00000853  550'      1-0000089C  560'      1-000008EF  570'      1-0000094B  580'      1-0000098D  590'      1-000009AF  610'    

  1-000009EF  620'      1-00000A1E  630'      1-00000A37  640'      1-00000A40  650'      1-00000A41  670'      1-00000AA2  680'    

  1-00000ABC  690'      1-00000B2F  700'      1-00000B5F  710'      1-00000B8C  720'      1-00000BB9  730'      1-00000C18  740'    

  1-00000C77  750'      1-00000CC5  760'      1-00000D13  770'      1-00000D53  780'      1-00000D75  790'      1-00000D94  800'    

  1-00000DB7  810'      1-00000DDA  820'      1-00000E0F  830'      1-00000E4C  840'      1-00000E92  850'      1-00000ED8  860'    

  1-00000F13  870'          **      930       0-0000006B  1000          **      1025      0-000000D2  1030      0-0000012B  1050    

  0-00000176  1090      0-0000019D  1100      0-000001B9  1110      0-000001D5  1120      0-000001F1  1130      0-0000020D  1140    

  0-00000229  1160      0-0000024D  1170      0-0000028B  1200          **      1210      0-000002AD  1220      0-000002BE  1250    

  0-000002E7  1260      0-00000304  1270      0-00000321  1280      0-0000033E  1290      0-0000035B  1300      0-00000378  1310    

  0-00000394  1320      0-000003B0  1330      0-000003CC  1340      0-000003E8  1350          **      1360      0-00000412  1400    

  0-00000429  1450          **      1460      0-00000481  1520          **      1559      0-000004D7  1560      0-000004E1  1570    

      **      1600          **      1630      0-0000052F  1650          **      1665      0-0000059C  1670      0-000005C1  1680    

  0-000005E1  1700          **      1730      0-00000644  3000      0-000006E7  3020      0-00000704  3030      0-0000075C  3040    

  0-00000793  3045      0-000007F0  3046      0-00000827  3050      0-00000884  3060      0-0000089E  3090      0-000008B8  3100    

  0-0000091D  3110      0-0000093A  3120      0-00000957  3130      0-00000974  3140      0-00000991  3150      0-000009AE  3160    

  0-000009CB  3170      0-000009E8  3180      0-00000A05  3190      0-00000A22  3200      0-00000A3F  3205      0-00000A5C  3210    

  0-00000A79  3215      0-00000A96  3220      0-00000AB3  3225      0-00000AD0  3230      0-00000AED  3235      0-00000B0A  3240    

  0-00000B27  3245      0-00000B44  3250      0-00000B60  3255      0-00000B7C  3257      0-00000B98  3258      0-00000BB4  3259    

  0-00000BD0  3260          **      3270      0-00000C19  3300          **      3330      0-00000C3B  3350      0-00000C4C  3400    

      **      3405      0-00000C97  3410      0-00000CB3  3420      0-00000CCF  3430      0-00000CEB  3440      0-00000D07  3450    

  0-00000D21  3500      0-00000D38  3550          **      3570      0-00000D72  3600          **      3609          **      3610    

      **      3640      0-00000E2C  3660      0-00000E8F  3670      0-00000EAD  3680      0-00000F84  3690      0-00000FB9  3720    

  0-00000FCB  3750      0-00000FD5  3760          **      3790          **      3800          **      3830      0-0000102F  3850    

      **      3890      0-00001119  3900      0-0000114B  3910      0-0000116B  3920      0-000011B1  3950      0-000011D6  3960    

  0-000011F6  3970      0-00001239  4000      0-0000127A  4010      0-000012CE  4020      0-000012F3  4030      0-000012F6  4040    

  0-00001322  4050      0-0000134D  4060      0-0000139B  4070      0-000013C9  4080      0-00001439  4090      0-0000147B  4100    

  0-00001497  4110      0-000014C4  4120      0-000014DE  4130      0-00001500  4135      0-00001528  4140      0-0000155B  4150    

  0-000015C9  4160      0-000015CF  4170      0-000015E8  4175      0-000015F1  4180      0-000015FA  5000      0-00001608  9000    





FUNCTIONS AND SUBROUTINES REFERENCED



CVTOHX            FLDCHK            HEXDMP            ISTATE         





Total Space Allocated = 10414 Bytes





COMPILER OPTIONS



/CHECK=(NOBOUNDS,OVERFLOW)

/DEBUG=(NOSYMBOLS,TRACEBACK)

/OPTIMIZE  /WARNINGS  /NOI4  /NOD_LINES  

