User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:panel.001

Deck PANEL Part 001

20 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
01567  M01S01329.panel   +++|          CALL ERRORN(256,'box;elements')
01568  M01S01330.panel   +++|          RETURN
01569  M01S01331.panel   +++|        ENDIF
01570  M01S01332.panel   +++|        IBOX = IBOX + 1
01571  M01S01333.panel   +++|        BOXN(IBOX) = L
01572  M01S01334.panel   +++|        BOXX(IBOX) = I - 1
01573  M01S01335.panel   +++|        BOXY(IBOX) = J - 1
01574  M01S01336.panel   +++|        BOXC(IBOX) = T
01575  M01S01337.panel   +++|        BOXA(IBOX) = NBOX
01576  M01S01338.panel   +++|        END
01577  M01S01339.panel   +++|C-------------------------------------------------------------------
01578  M01S01340.panel   +++|C*      NEWVAR - INITIALIZE VARIABLE
01579  M01S01341.panel   +++|C
01580  M01S01342.panel   +++|        SUBROUTINE NEWVAR
01581  M01S01343.panel   +++|*CALL   COMFPAN
01582  M01S01344.panel   +++|        IF (NVAR.EQ.MVAR) THEN
01583  M01S01345.panel   +++|          CALL ERRORN(MVAR,'variables')
01584  M01S01346.panel   +++|          RETURN
01585  M01S01347.panel   +++|        ENDIF
01586  M01S01348.panel   +++|        NVAR = NVAR + 1
01587  M01S01349.panel   +++|        VTAB(NVAR) = 0
01588  M01S01350.panel   +++|        VAIO(NVAR) = 0
01589  M01S01351.panel   +++|        VARL(NVAR) = 0
01590  M01S01352.panel   +++|        VARV(NVAR) = 0
01591  M01S01353.panel   +++|        VART(NVAR) = VTC
01592  M01S01354.panel   +++|        VARM(NVAR) = VMK
01593  M01S00006.ns2469  +++|        VARC(NVAR) = 0
01594  M01S01355.panel   +++|        VARP(NVAR) = 0
01595  M01S01356.panel   +++|        VAVT(NVAR) = 0
01596  M01S01357.panel   +++|        VARH(NVAR) = 0
01597  M01S01358.panel   +++|        VARD(NVAR) = 0
01598  M01S01359.panel   +++|        VARA(NVAR) = 1
01599  M01S01360.panel   +++|        VARF(NVAR) = 0
01600  M01S01361.panel   +++|        VARR(NVAR) = 0
01601  M01S01362.panel   +++|        VARNM(NVAR) = '*'
01602  M01S01363.panel   +++|        END
01603  M01S01364.panel   +++|C-------------------------------------------------------------------
01604  M01S01365.panel   +++|C*      NEWVAT - NEW VARIABLE ATTRIBUTE
01605  M01S01366.panel   +++|C
01606  M01S01367.panel   +++|        SUBROUTINE NEWVAT
01607  M01S01368.panel   +++|*CALL   COMFPAN
01608  M01S01369.panel   +++|        IF (VARA(NVAR).EQ.1) THEN
01609  M01S01370.panel   +++|          CALL NEWATR
01610  M01S01371.panel   +++|          IF (FATAL) RETURN
01611  M01S01372.panel   +++|          ATIO(NATR) = 0
01612  M01S01373.panel   +++|          VARA(NVAR) = NATR - 1
01613  M01S01374.panel   +++|        ENDIF
01614  M01S01375.panel   +++|        END
01615  M01S01376.panel   +++|C-------------------------------------------------------------------
01616  M01S01377.panel   +++|C*      NEWVL - NEW VERTICAL LINE
01617  M01S01378.panel   +++|C
01618  M01S01379.panel   +++|C       ENTRY
01619  M01S01380.panel   +++|C               I,J= POS OF START OF LINE
01620  M01S01381.panel   +++|C               L=LENGTH
01621  M01S01382.panel   +++|C
01622  M01S01383.panel   +++|        SUBROUTINE NEWVL(I,J,L)
01623  M01S01384.panel   +++|*CALL   COMFPAN
01624  M01S01385.panel   +++|        INTEGER I,J,L
01625  M01S01386.panel   +++|        CALL NEWLC(I,J,L,1)
01626  M01S01387.panel   +++|        DO 100 K = 1, L
01627  M01S01388.panel   +++|          IMAG(I,J+K-1) = ZSP
01628  M01S01389.panel   +++|100     CONTINUE
01629  M01S01390.panel   +++|        END
01630  M01S01391.panel   +++|C-------------------------------------------------------------------
01631  M01S00095.ns2150  +++|C*      PACKATR - PACK ATTRIBUTES DOWN
01632  M01S00096.ns2150  +++|C
01633  M01S00097.ns2150  +++|C       CHECK THE ATTRIBUTE LIST TO SEE IF NATR IS UNIQUE.
01634  M01S00098.ns2150  +++|C       IF NOT, POP NATR AND RETURN THE ORDINAL OF THE
01635  M01S00099.ns2150  +++|C       IDENTICAL ATTRIBUTE.  IF SO, RETURN NATR.
01636  M01S00100.ns2150  +++|C
01637  M01S00101.ns2150  +++|        INTEGER FUNCTION PACKATR()
01638  M01S00102.ns2150  +++|*CALL   COMFPAN
01639  M01S00103.ns2150  +++|        INTEGER I
01640  M01S00104.ns2150  +++|        DO 100 I = 1, NATR-1
01641  M01S00105.ns2150  +++|          IF (ATRLP(NATR).EQ.ATRLP(I).AND.
01642  M01S00106.ns2150  +++|     A        ATRUL(NATR).EQ.ATRUL(I).AND.
01643  M01S00107.ns2150  +++|     B        ATRAI(NATR).EQ.ATRAI(I).AND.
01644  M01S00108.ns2150  +++|     C        ATRIV(NATR).EQ.ATRIV(I).AND.
01645  M01S00109.ns2150  +++|     D        ATRBL(NATR).EQ.ATRBL(I).AND.
01646  M01S00110.ns2150  +++|     E        ATIO(NATR).EQ.ATIO(I).AND.
01647  M01S00111.ns2150  +++|     F        ATTP(NATR).EQ.ATTP(I).AND.
Line S00112 Modification History
M01 (Added by) ns2150
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
01648  M02S00112.243l647 ---|     G        ATFC(NATR).EQ.ATFC(I).AND.
01649  M01S00113.ns2150  +++|     H        ATCS(NATR).EQ.ATCS(I).AND.
01650  M01S00114.ns2150  +++|     I        ATCE(NATR).EQ.ATCE(I).AND.
01651  M01S00115.ns2150  +++|     J        ATSC(NATR).EQ.ATSC(I).AND.
01652  M01S00116.ns2150  +++|     K        ATBI(NATR).EQ.ATBI(I).AND.
01653  M01S00117.ns2150  +++|     L        ATLW(NATR).EQ.ATLW(I)) GOTO 200
01654  M01S00118.ns2150  +++|100     CONTINUE
01655  M01S00119.ns2150  +++|        PACKATR = NATR
01656  M01S00120.ns2150  +++|        RETURN
01657  M01S00121.ns2150  +++|200     PACKATR = I
01658  M01S00122.ns2150  +++|        NATR = NATR - 1
01659  M01S00123.ns2150  +++|        END
01660  M01S00124.ns2150  +++|C-------------------------------------------------------------------
01661  M01S01392.panel   +++|C*      QUIT - ABNORMALLY TERMINATE THE JOB
01662  M01S01393.panel   +++|C
01663  M01S01394.panel   +++|C       ENTRY   M=MESSAGE TO DISPLAY
01664  M01S01395.panel   +++|C
01665  M01S01396.panel   +++|        SUBROUTINE QUIT(M)
01666  M01S01397.panel   +++|*CALL   COMFPAN
01667  M01S01398.panel   +++|        CHARACTER*(*) M
01668  M01S01399.panel   +++|        CHARACTER*80 MESSAGE
01669  M01S01400.panel   +++|        MESSAGE = ' ERROR IN ' // PNAME(1:CLEN(PNAME)) //
01670  M01S01401.panel   +++|     A            ' ' // M // ':::'
01671  M01S01402.panel   +++|        CALL QUITS(MESSAGE)
Line S01403 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
01672  M02S01403.ns2150  ---|        END
Line S01404 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
01673  M02S01404.ns2150  ---|C-------------------------------------------------------------------
01674  M01S00125.ns2150  +++|        END
01675  M01S00126.ns2150  +++|C-------------------------------------------------------------------
01676  M01S01405.panel   +++|C*      QUITS - ABNORMALLY TERMINATE THE JOB FOR SYSTEM REASONS
01677  M01S01406.panel   +++|C
01678  M01S01407.panel   +++|C       ENTRY   M=MESSAGE TO DISPLAY
01679  M01S01408.panel   +++|C
01680  M01S01409.panel   +++|        SUBROUTINE QUITS(M)
01681  M01S01410.panel   +++|*CALL   COMFPAN
01682  M01S01411.panel   +++|        CHARACTER*(*) M
01683  M01S01412.panel   +++|        CHARACTER*80 MESSAGE
01684  M01S01413.panel   +++|        MESSAGE = ' PANEL - ' // M //    ':::'
01685  M01S01414.panel   +++|        REWIND 1
01686  M01S01415.panel   +++|        REWIND 2
01687  M01S01416.panel   +++|        REWIND 3
01688  M01S01417.panel   +++|        CALL MSG(MESSAGE)
01689  M01S01418.panel   +++|        CALL ABT
01690  M01S01419.panel   +++|        END
01691  M01S01420.panel   +++|C-------------------------------------------------------------------
01692  M01S01421.panel   +++|C*      READL1 - READ A LINE INTO LINE
01693  M01S01422.panel   +++|C
01694  M01S01423.panel   +++|        SUBROUTINE READL1
01695  M01S01424.panel   +++|*CALL   COMFPAN
01696  M01S01425.panel   +++|        READ(1,100,END=999) LINE
01697  M01S01426.panel   +++|100     FORMAT(A)
01698  M01S01427.panel   +++|        WRITE(2,150) LINE
01699  M01S01428.panel   +++|150     FORMAT(' ',A)
01700  M01S01429.panel   +++|        CALL XLINE(1)
01701  M01S01430.panel   +++|        SJ = 1
01702  M01S01431.panel   +++|        RETURN
01703  M01S01432.panel   +++|999     CONTINUE
01704  M01S01433.panel   +++|        IF (INDEF) THEN
01705  M01S01434.panel   +++|          CALL ERROR('Unexpected end of file')
01706  M01S01435.panel   +++|          CALL QUIT ('END OF FILE DURING DEFINITIONS')
01707  M01S01436.panel   +++|        ELSE
01708  M01S01437.panel   +++|          CALL QUIT ('NO DEFINITION OR IMAGE')
01709  M01S01438.panel   +++|        ENDIF
01710  M01S01439.panel   +++|        ENDFILE = .TRUE.
01711  M01S01440.panel   +++|        END
01712  M01S01441.panel   +++|C-------------------------------------------------------------------
01713  M01S01442.panel   +++|C*      RPI - READ PANEL IMAGE
01714  M01S01443.panel   +++|C
01715  M01S01444.panel   +++|        SUBROUTINE RPI
01716  M01S01445.panel   +++|*CALL   COMFPAN
Line S01446 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
01717  M02S01446.v23l617 ---|        DO 200 I = 2,31
01718  M01S00011.v23l617 +++|        DO 200 I = 2,MROW+1
01719  M01S01447.panel   +++|          READ(1,100,END=300) LINE
01720  M01S01448.panel   +++|100       FORMAT(A)
01721  M01S01449.panel   +++|          WRITE(2,150) LINE
01722  M01S01450.panel   +++|150       FORMAT(' ',A)
Line S01451 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
01723  M02S01451.v23l617 ---|          IF (I.LT.31) THEN
01724  M01S00012.v23l617 +++|          IF (I.LE.MROW) THEN
01725  M01S01452.panel   +++|            CALL XLINE(I)
01726  M01S01453.panel   +++|          ENDIF
01727  M01S01454.panel   +++|200     CONTINUE
Line S01455 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
01728  M02S01455.v23l617 ---|        CALL ERROR('PANEL IMAGE EXCEEDS 30 LINES')
Line S01456 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
01729  M02S01456.v23l617 ---|        NROW = 30
01730  M01S00013.v23l617 +++|        CALL ERROR('PANEL IMAGE EXCEEDS 64 LINES')
01731  M01S00014.v23l617 +++|        NROW = MROW
01732  M01S01457.panel   +++|        RETURN
01733  M01S01458.panel   +++|300     CONTINUE
01734  M01S01459.panel   +++|        NROW = I - 1
01735  M01S01460.panel   +++|        END
01736  M01S01461.panel   +++|C-------------------------------------------------------------------
01737  M01S01462.panel   +++|C*      SCANATR - SCAN ATTRIBUTE
01738  M01S01463.panel   +++|C
01739  M01S01464.panel   +++|        SUBROUTINE SCANATR
01740  M01S01465.panel   +++|*CALL   COMFPAN
01741  M01S01466.panel   +++|        LOGICAL HAVDEL
01742  M01S01467.panel   +++|        HAVDEL = .FALSE.
01743  M01S01468.panel   +++|        N = 0
01744  M01S01469.panel   +++|1       CONTINUE
01745  M01S01470.panel   +++|        CALL SCANSYM
01746  M01S01471.panel   +++|        IF (FATAL) RETURN
01747  M01S01472.panel   +++|2       CONTINUE
01748  M01S01473.panel   +++|        IF (ZEQNEXT()) THEN
01749  M01S01474.panel   +++|          IF (UPSYMEQ('DELIMITERS').OR.UPSYMEQ('D')) THEN
01750  M01S01475.panel   +++|            I = 1
01751  M01S01476.panel   +++|          ELSEIF (UPSYMEQ('PHYSICAL').OR.UPSYMEQ('P')) THEN
01752  M01S01477.panel   +++|            I = 2
01753  M01S01478.panel   +++|          ELSEIF (UPSYMEQ('LOGICAL').OR.UPSYMEQ('L')) THEN
01754  M01S01479.panel   +++|            I = 3
01755  M01S01480.panel   +++|          ELSE
01756  M01S01481.panel   +++|            CALL EXPECT('DELIMITERS, LOGICAL, or PHYSICAL',
01757  M01S01482.panel   +++|     A                  'ATTR')
01758  M01S01483.panel   +++|            RETURN
01759  M01S01484.panel   +++|          ENDIF
01760  M01S01485.panel   +++|          CALL SKIPTWO
01761  M01S01486.panel   +++|          IF (FATAL) RETURN
01762  M01S01487.panel   +++|          GOTO (100,200,300), I
01763  M01S01488.panel   +++|        ELSE
01764  M01S01489.panel   +++|          CALL CHEKHED(J)
01765  M01S01490.panel   +++|          IF (J.NE.0) THEN
01766  M01S01491.panel   +++|            IF (.NOT.HAVDEL) THEN
01767  M01S01492.panel   +++|              CALL EXPECT('DELIMITERS','ATTR')
01768  M01S00127.ns2150  +++|              RETURN
01769  M01S01493.panel   +++|            ENDIF
01770  M01S01494.panel   +++|            RETURN
01771  M01S01495.panel   +++|          ENDIF
01772  M01S01496.panel   +++|          N = N + 1
01773  M01S01497.panel   +++|          GOTO (100,200,300), N
01774  M01S01498.panel   +++|          CALL ERROR('Too many ATTR parameters')
01775  M01S01499.panel   +++|          RETURN
01776  M01S01500.panel   +++|        ENDIF
01777  M01S01501.panel   +++|C
01778  M01S01502.panel   +++|C       DELIMITERS
01779  M01S01503.panel   +++|C
01780  M01S01504.panel   +++|100     CONTINUE
01781  M01S01505.panel   +++|        HAVDEL = .TRUE.
01782  M01S01506.panel   +++|        CALL NEWATR
01783  M01S01507.panel   +++|        IF (FATAL) RETURN
01784  M01S01508.panel   +++|        IF (SYMTP.EQ.'S') THEN
01785  M01S01509.panel   +++|          IF (SL.EQ.1) THEN
01786  M01S01510.panel   +++|            ATCS(NATR) = STRG(1)
01787  M01S01511.panel   +++|            ATCE(NATR) = STRG(1)
01788  M01S01512.panel   +++|          ELSEIF (SL.EQ.2) THEN
01789  M01S01513.panel   +++|            ATCS(NATR) = STRG(1)
01790  M01S01514.panel   +++|            ATCE(NATR) = STRG(2)
01791  M01S01515.panel   +++|          ELSE
01792  M01S01516.panel   +++|            CALL ERROR('String length')
01793  M01S01517.panel   +++|            RETURN
01794  M01S01518.panel   +++|          ENDIF
01795  M01S01519.panel   +++|          SPCH(ATCS(NATR)) = NATR
01796  M01S01520.panel   +++|        ELSE
01797  M01S01521.panel   +++|          CALL EXPECT('Quoted delimiters',' ')
01798  M01S01522.panel   +++|          RETURN
01799  M01S01523.panel   +++|        ENDIF
01800  M01S01524.panel   +++|        SPCH(ATCS(NATR)) = NATR
01801  M01S01525.panel   +++|        GOTO 1
01802  M01S01526.panel   +++|C
01803  M01S01527.panel   +++|C       PHYSICAL
01804  M01S01528.panel   +++|C
01805  M01S01529.panel   +++|200     CONTINUE
01806  M01S01530.panel   +++|        CALL SCANLPA(0)
01807  M01S01531.panel   +++|        IF (FATAL) RETURN
01808  M01S01532.panel   +++|        GOTO 1
01809  M01S01533.panel   +++|C
01810  M01S01534.panel   +++|C       LOGICAL
01811  M01S01535.panel   +++|C
01812  M01S01536.panel   +++|300     CONTINUE
01813  M01S01537.panel   +++|        CALL SCANLPA(1)
01814  M01S01538.panel   +++|        IF (FATAL) RETURN
01815  M01S01539.panel   +++|        GOTO 1
01816  M01S01540.panel   +++|        END
01817  M01S01541.panel   +++|C-------------------------------------------------------------------
01818  M01S01542.panel   +++|C*      SCANBOX - SCAN BOX
01819  M01S01543.panel   +++|C
01820  M01S01544.panel   +++|        SUBROUTINE SCANBOX
01821  M01S01545.panel   +++|*CALL   COMFPAN
01822  M01S01546.panel   +++|        INTEGER I, N
01823  M01S01547.panel   +++|        LOGICAL HAVCH
01824  M01S01548.panel   +++|        HAVCH = .FALSE.
01825  M01S01549.panel   +++|        IF (NBOX.GE.MBOX) THEN
01826  M01S01550.panel   +++|          CALL ERRORN(MBOX,'boxes')
01827  M01S01551.panel   +++|          RETURN
01828  M01S01552.panel   +++|        ENDIF
01829  M01S01553.panel   +++|        CALL NEWATR
01830  M01S01554.panel   +++|        IF (FATAL) RETURN
01831  M01S01555.panel   +++|        NBOX = NBOX + 1
01832  M01S01556.panel   +++|        BOXW(NBOX) = NATR
01833  M01S01557.panel   +++|        ATLW(NATR) = 1
01834  M01S00003.ns2315  +++|        ATTP(NATR) = 1
01835  M01S01558.panel   +++|        N = 0
01836  M01S01559.panel   +++|1       CONTINUE
01837  M01S01560.panel   +++|        CALL SCANSYM
01838  M01S01561.panel   +++|        IF (ZEQNEXT()) THEN
01839  M01S01562.panel   +++|          IF (UPSYMEQ('TERMINATOR').OR.UPSYMEQ('T')) THEN
01840  M01S01563.panel   +++|            I = 1
01841  M01S01564.panel   +++|          ELSEIF (UPSYMEQ('WEIGHT').OR.UPSYMEQ('W')) THEN
01842  M01S01565.panel   +++|            I = 2
01843  M01S01566.panel   +++|          ELSEIF (UPSYMEQ('PHYSICAL').OR.UPSYMEQ('P')) THEN
01844  M01S01567.panel   +++|            I = 3
01845  M01S01568.panel   +++|          ELSEIF (UPSYMEQ('LOGICAL').OR.UPSYMEQ('L')) THEN
01846  M01S01569.panel   +++|            I = 4
01847  M01S01570.panel   +++|          ELSE
01848  M01S01571.panel   +++|            CALL EXPECT('TERMINATOR= or WEIGHT=','BOX')
01849  M01S01572.panel   +++|            RETURN
01850  M01S01573.panel   +++|          ENDIF
01851  M01S01574.panel   +++|          CALL SKIPTWO
01852  M01S01575.panel   +++|          IF (FATAL) RETURN
01853  M01S01576.panel   +++|          N = 4
01854  M01S01577.panel   +++|          GOTO (100,200,300,400), I
01855  M01S01578.panel   +++|        ELSE
01856  M01S01579.panel   +++|          CALL CHEKHED(I)
01857  M01S01580.panel   +++|          IF (I.NE.0) THEN
01858  M01S01581.panel   +++|            IF (.NOT.HAVCH) THEN
01859  M01S01582.panel   +++|              CALL ERROR('TERMINATOR char required')
01860  M01S01583.panel   +++|            ENDIF
01861  M01S01584.panel   +++|            RETURN
01862  M01S01585.panel   +++|          ENDIF
01863  M01S01586.panel   +++|          N = N + 1
01864  M01S01587.panel   +++|          GOTO (100,200,300,400), N
01865  M01S01588.panel   +++|          CALL EXPECT('End of BOX declaration',' ')
01866  M01S01589.panel   +++|          RETURN
01867  M01S01590.panel   +++|        ENDIF
01868  M01S01591.panel   +++|C
01869  M01S01592.panel   +++|C       TERMINATOR
01870  M01S01593.panel   +++|C
01871  M01S01594.panel   +++|100     CONTINUE
01872  M01S01595.panel   +++|        HAVCH = .TRUE.
01873  M01S01596.panel   +++|        IF (FATAL) RETURN
01874  M01S01597.panel   +++|        IF (SYMTP.NE.'S'.OR.SL.NE.1) THEN
01875  M01S01598.panel   +++|          CALL EXPECT('TERMINATOR character',' ')
01876  M01S01599.panel   +++|          RETURN
01877  M01S01600.panel   +++|        ENDIF
01878  M01S01601.panel   +++|        IF (SPCH(IMAG(SI,1)).NE.0) THEN
01879  M01S01602.panel   +++|          CALL ERROR('Doubly defined')
01880  M01S01603.panel   +++|          RETURN
01881  M01S01604.panel   +++|        ENDIF
01882  M01S01605.panel   +++|        SPCH(STRG(1)) = -NBOX
01883  M01S01606.panel   +++|        GOTO 1
01884  M01S01607.panel   +++|C
01885  M01S01608.panel   +++|C       WEIGHT
01886  M01S01609.panel   +++|C
01887  M01S01610.panel   +++|200     CONTINUE
01888  M01S01611.panel   +++|        IF (UPSYMEQ('FINE').OR.UPSYMEQ('F')) THEN
01889  M01S01612.panel   +++|          ATLW(NATR) = 1
01890  M01S01613.panel   +++|        ELSEIF (UPSYMEQ('MEDIUM').OR.UPSYMEQ('M')) THEN
01891  M01S01614.panel   +++|          ATLW(NATR) = 2
01892  M01S01615.panel   +++|        ELSEIF (UPSYMEQ('BOLD').OR.UPSYMEQ('B')) THEN
01893  M01S01616.panel   +++|          ATLW(NATR) = 3
01894  M01S01617.panel   +++|        ELSE
01895  M01S01618.panel   +++|          CALL EXPECT('FINE, MEDIUM, or BOLD','WEIGHT=')
01896  M01S01619.panel   +++|          RETURN
01897  M01S01620.panel   +++|        ENDIF
01898  M01S01621.panel   +++|        GOTO 1
01899  M01S01622.panel   +++|C
01900  M01S01623.panel   +++|C       PHYSICAL
01901  M01S01624.panel   +++|C
01902  M01S01625.panel   +++|300     CONTINUE
01903  M01S01626.panel   +++|        CALL SCANLPA(0)
01904  M01S01627.panel   +++|        IF (FATAL) RETURN
01905  M01S01628.panel   +++|        GOTO 1
01906  M01S01629.panel   +++|C
01907  M01S01630.panel   +++|C       LOGICAL
01908  M01S01631.panel   +++|C
01909  M01S01632.panel   +++|400     CONTINUE
01910  M01S01633.panel   +++|        CALL SCANLPA(1)
01911  M01S01634.panel   +++|        IF (FATAL) RETURN
01912  M01S01635.panel   +++|        GOTO 1
01913  M01S01636.panel   +++|        END
01914  M01S01637.panel   +++|C-------------------------------------------------------------------
01915  M01S01638.panel   +++|C*      SCANCAS - SCAN CASE LIST
01916  M01S01639.panel   +++|C
01917  M01S01640.panel   +++|C       CASE CONSTANTS ARE COPIED TO THE VVAL ARRAY.  EACH CONSTANT
01918  M01S01641.panel   +++|C       IS PRECEDED BY ITS LENGTH.  THE LIST IS TERMINATED BY A LENGTH
01919  M01S01642.panel   +++|C       OF -1.
01920  M01S01643.panel   +++|C
01921  M01S01644.panel   +++|        SUBROUTINE SCANCAS
01922  M01S01645.panel   +++|*CALL   COMFPAN
01923  M01S01646.panel   +++|        SAVV = NVAL + 1
01924  M01S01647.panel   +++|        IF (.NOT.SYMEQ('(')) THEN
01925  M01S01648.panel   +++|          CALL EXPECT('list','MATCH')
01926  M01S01649.panel   +++|          RETURN
01927  M01S01650.panel   +++|        ENDIF
01928  M01S01651.panel   +++|        N = 0
01929  M01S01652.panel   +++|1       CONTINUE
01930  M01S01653.panel   +++|        CALL SCANSYM
01931  M01S01654.panel   +++|        IF (FATAL) RETURN
01932  M01S01655.panel   +++|        IF (SYMEQ(')')) THEN
01933  M01S01656.panel   +++|          IF (N.EQ.0) THEN
01934  M01S01657.panel   +++|            CALL ERROR('Empty MATCH list')
01935  M01S01658.panel   +++|            RETURN
01936  M01S01659.panel   +++|          ENDIF
01937  M01S01660.panel   +++|          IF (NVAL.GE.MVAL) THEN
01938  M01S01661.panel   +++|            CALL ERR('VALIDATION TABLE OVERFLOW')
01939  M01S01662.panel   +++|            RETURN
01940  M01S01663.panel   +++|          ENDIF
01941  M01S01664.panel   +++|          NVAL = NVAL + 1
01942  M01S01665.panel   +++|          VVAL(NVAL) = -1
01943  M01S01666.panel   +++|          VARV(NVAR) = SAVV
01944  M01S01667.panel   +++|          VAVT(NVAR) = VTMATCH
01945  M01S01668.panel   +++|          RETURN
01946  M01S01669.panel   +++|        ENDIF
01947  M01S01670.panel   +++|        N = N + 1
01948  M01S01671.panel   +++|        CALL COPYSYM
01949  M01S01672.panel   +++|        IF (FATAL) RETURN
01950  M01S01673.panel   +++|        GOTO 1
01951  M01S01674.panel   +++|        END
01952  M01S01675.panel   +++|C-------------------------------------------------------------------
01953  M01S01676.panel   +++|C*      SCANDEF - SCAN PANEL DEFINITION
01954  M01S01677.panel   +++|C
01955  M01S01678.panel   +++|        SUBROUTINE SCANDEF
01956  M01S01679.panel   +++|*CALL   COMFPAN
01957  M01S01680.panel   +++|        INTEGER I, J, N
01958  M01S01681.panel   +++|        LOGICAL INTABL
01959  M01S01682.panel   +++|        INTABL = .FALSE.
01960  M01S01683.panel   +++|2       CALL SCANSYM
01961  M01S01684.panel   +++|1       CONTINUE
01962  M01S01685.panel   +++|        IF (SYMEQ(';')) GOTO 2
01963  M01S01686.panel   +++|        ABEND = ABEND.OR.FATAL
01964  M01S01687.panel   +++|        IF (.NOT.INDEF) RETURN
01965  M01S01688.panel   +++|        CALL NEEDHED(I)
01966  M01S01689.panel   +++|        ABEND = ABEND.OR.FATAL
01967  M01S01690.panel   +++|        IF (ENDFILE) RETURN
01968  M01S01691.panel   +++|        FATAL = .FALSE.
Line S01692 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
01969  M02S01692.243l647 ---|        GOTO (100,200,300,400,500,600,700,800),I
01970  M01S00070.243l647 +++|        GOTO (100,200,300,400,500,600,700,800,900),I
01971  M01S01693.panel   +++|        RETURN
01972  M01S01694.panel   +++|C
01973  M01S01695.panel   +++|C       VAR
01974  M01S01696.panel   +++|C
01975  M01S01697.panel   +++|100     CONTINUE
01976  M01S00004.ns2315  +++|
01977  M01S00005.ns2315  +++|* INITIALIZE DEFAULT LOGICAL ATTRIBUTES FLAG.
01978  M01S00006.ns2315  +++|
01979  M01S00007.ns2315  +++|        DEFLOGA = .TRUE.
01980  M01S01698.panel   +++|        CALL SCANVAR
01981  M01S00008.ns2315  +++|
01982  M01S00009.ns2315  +++|* TYPE IO=OUT WITH DEFAULT LOGICAL ATTRIBUTES IS SET TO LOGICAL=TEXT.
01983  M01S00010.ns2315  +++|
01984  M01S00011.ns2315  +++|        IF ((DEFLOGA) .AND.(VAIO(NVAR) .EQ. 2)) THEN
01985  M01S00012.ns2315  +++|          ATTP(NATR) = 1
01986  M01S00013.ns2315  +++|        ENDIF
01987  M01S01699.panel   +++|        IF (FATAL) GOTO 1
01988  M01S01700.panel   +++|        IF (INTABL) THEN
01989  M01S01701.panel   +++|          VTAB(NVAR) = NTAB
01990  M01S01702.panel   +++|        ENDIF
Line S00128 Modification History
M01 (Added by) ns2150
M02 (Updated by) panel2
Seq #  *Modification Id* Act 
----------------------------+
01991  M02S00128.panel2  ---|        IF (VARA(NVAR).EQ.NATR) THEN
01992  M01S00001.panel2  +++|        IF (VARA(NVAR).EQ.NATR-1) THEN
Line S00129 Modification History
M01 (Added by) ns2150
M02 (Updated by) panel2
Seq #  *Modification Id* Act 
----------------------------+
01993  M02S00129.panel2  ---|          VARA(NVAR) = PACKATR()
01994  M01S00002.panel2  +++|          VARA(NVAR) = PACKATR() - 1
01995  M01S00130.ns2150  +++|        ENDIF
01996  M01S01703.panel   +++|        GOTO 1
01997  M01S01704.panel   +++|C
01998  M01S01705.panel   +++|C       KEY
01999  M01S01706.panel   +++|C
02000  M01S01707.panel   +++|200     CALL SCANKEY
02001  M01S01708.panel   +++|        GOTO 1
02002  M01S01709.panel   +++|C
02003  M01S01710.panel   +++|C       ATTR
02004  M01S01711.panel   +++|C
02005  M01S01712.panel   +++|300     CALL SCANATR
02006  M01S01713.panel   +++|        GOTO 1
02007  M01S01714.panel   +++|C
02008  M01S01715.panel   +++|C       RIGHT CURLY BRACKET
02009  M01S01716.panel   +++|C
02010  M01S01717.panel   +++|400     CALL READL1
02011  M01S01718.panel   +++|        RETURN
02012  M01S01719.panel   +++|C
02013  M01S01720.panel   +++|C         BOX
02014  M01S01721.panel   +++|C
02015  M01S01722.panel   +++|500     CALL SCANBOX
02016  M01S00001.panel3  +++|        IF (FATAL) GOTO 2
02017  M01S01723.panel   +++|        GOTO 1
02018  M01S01724.panel   +++|C
02019  M01S01725.panel   +++|C       TABLE
02020  M01S01726.panel   +++|C
02021  M01S01727.panel   +++|600     CONTINUE
02022  M01S01728.panel   +++|        IF (INTABL) THEN
02023  M01S01729.panel   +++|          CALL ERROR('Already in table')
02024  M01S00001.panel7  +++|          CALL SCANSYM
02025  M01S01730.panel   +++|          GOTO 1
02026  M01S01731.panel   +++|        ENDIF
02027  M01S01732.panel   +++|        INTABL = .TRUE.
02028  M01S01733.panel   +++|        IF (NTAB.GE.MTAB) THEN
02029  M01S01734.panel   +++|          CALL ERRORN(MTAB,'tables')
02030  M01S01735.panel   +++|          RETURN
02031  M01S01736.panel   +++|        ENDIF
02032  M01S01737.panel   +++|        NTAB = NTAB + 1
02033  M01S01738.panel   +++|        TABNM(NTAB) = '*'
02034  M01S01739.panel   +++|        TABD(NTAB) = 1
02035  M01S01740.panel   +++|        TABF(NTAB) = NVAR + 1
02036  M01S01741.panel   +++|        CALL SCANTAB
02037  M01S01742.panel   +++|        IF (FATAL) RETURN
02038  M01S01743.panel   +++|        GOTO 1
02039  M01S01744.panel   +++|C
02040  M01S01745.panel   +++|C       ENDTABLE
02041  M01S01746.panel   +++|C
02042  M01S01747.panel   +++|700     CONTINUE
02043  M01S01748.panel   +++|        CALL SCANSYM
02044  M01S01749.panel   +++|        IF (FATAL) RETURN
02045  M01S01750.panel   +++|        IF (.NOT.INTABL) THEN
02046  M01S01751.panel   +++|          CALL ERROR('Not in table')
02047  M01S01752.panel   +++|          GOTO 1
02048  M01S01753.panel   +++|        ENDIF
02049  M01S01754.panel   +++|        INTABL = .FALSE.
02050  M01S01755.panel   +++|        IF (TABF(NTAB).GT.NVAR) THEN
02051  M01S01756.panel   +++|          CALL ERROR('Empty table')
02052  M01S01757.panel   +++|          NTAB = NTAB - 1
02053  M01S01758.panel   +++|          GOTO 1
02054  M01S01759.panel   +++|        ENDIF
02055  M01S01760.panel   +++|        TABR(NTAB) = NVAR + 1 - TABF(NTAB)
02056  M01S01761.panel   +++|        N = NVAR
02057  M01S01762.panel   +++|        DO 750 I = 1, TABD(NTAB)-1
02058  M01S01763.panel   +++|          DO 750 J = TABF(NTAB), N
02059  M01S01764.panel   +++|            CALL COPYVAR(J,I)
02060  M01S01765.panel   +++|750     CONTINUE
02061  M01S01766.panel   +++|        TABL(NTAB) = NVAR
02062  M01S01767.panel   +++|        GOTO 1
02063  M01S01768.panel   +++|C
02064  M01S01769.panel   +++|C       PANEL
02065  M01S01770.panel   +++|C
02066  M01S01771.panel   +++|800     CONTINUE
02067  M01S01772.panel   +++|        CALL SCANPAN
02068  M01S01773.panel   +++|        GOTO 1
02069  M01S00071.243l647 +++|C
02070  M01S00072.243l647 +++|C       SFATTR
02071  M01S00073.243l647 +++|C
02072  M01S00074.243l647 +++|900     CONTINUE
02073  M01S00075.243l647 +++|        IF (NATR.GT.3) THEN
02074  M01S00076.243l647 +++|          CALL ERROR('SFATTR AFTER OTHER ATTRIBUTES')
02075  M01S00077.243l647 +++|          ABEND = .TRUE.
02076  M01S00078.243l647 +++|          RETURN
02077  M01S00079.243l647 +++|        ENDIF
02078  M01S00080.243l647 +++|        CALL SCANSYM
02079  M01S00081.243l647 +++|        IF (FATAL) RETURN
02080  M01S00082.243l647 +++|        DO 950 J = 0,2
02081  M01S00083.243l647 +++|          DO 950 I = 0,11
02082  M01S00084.243l647 +++|            NATR = NATR + 1
02083  M01S00085.243l647 +++|            ATRLP(NATR) = '1'
02084  M01S00086.243l647 +++|            ATIO(NATR) = J
02085  M01S00087.243l647 +++|            ATTP(NATR) = I
02086  M01S00088.243l647 +++|950     CONTINUE
02087  M01S00089.243l647 +++|        GOTO 1
02088  M01S01774.panel   +++|        END
02089  M01S01775.panel   +++|C-------------------------------------------------------------------
02090  M01S01776.panel   +++|C*      SCANIMG - SCAN PANEL IMAGE
02091  M01S01777.panel   +++|C
02092  M01S01778.panel   +++|        SUBROUTINE SCANIMG
02093  M01S01779.panel   +++|*CALL   COMFPAN
02094  M01S01780.panel   +++|        CHARACTER*7 VNAME
02095  M01S01781.panel   +++|        INTEGER HIHV
02096  M01S01782.panel   +++|C
02097  M01S01783.panel   +++|C       PREPARE IMAGE
02098  M01S01784.panel   +++|C
02099  M01S01785.panel   +++|        DO 1 J = 1, MROW
Line S01786 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02100  M02S01786.v23l617 ---|          IMAG(133,J) = 1
02101  M01S00015.v23l617 +++|          IMAG(MCOL+1,J) = 1
02102  M01S01787.panel   +++|1       CONTINUE
02103  M01S01788.panel   +++|C
02104  M01S01789.panel   +++|C       START COUNTING VAR DATA AND VARS FOUND
02105  M01S01790.panel   +++|C
02106  M01S01791.panel   +++|        VDCO = 0
02107  M01S01792.panel   +++|        NVAF = 0
02108  M01S01793.panel   +++|        HIHV = NVAR
02109  M01S01794.panel   +++|        LFIE = 0
02110  M01S01795.panel   +++|        NFIE = 0
02111  M01S01796.panel   +++|        SPCH(128) = -128
02112  M01S01797.panel   +++|        SPCH(ZUL) = -128
02113  M01S01798.panel   +++|C
02114  M01S01799.panel   +++|C       SCAN
02115  M01S01800.panel   +++|C
02116  M01S01801.panel   +++|        DO 1000 J = 1, NROW
02117  M01S01802.panel   +++|          I = 1
Line S01803 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02118  M02S01803.ns2150  ---|          IX = 0
02119  M01S01804.panel   +++|C
02120  M01S01805.panel   +++|C         SKIP BLANKS
02121  M01S01806.panel   +++|C
Line S01807 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02122  M02S01807.v23l617 ---|100       IF (I.LE.132) THEN
02123  M01S00016.v23l617 +++|100       IF (I.LE.MCOL) THEN
02124  M01S01808.panel   +++|            IF (IMAG(I,J).EQ.ZSP) THEN
Line S01809 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02125  M02S01809.ns2150  ---|              IX = IX + 1
02126  M01S01810.panel   +++|              I = I + 1
02127  M01S01811.panel   +++|              GOTO 100
02128  M01S01812.panel   +++|            ENDIF
02129  M01S01813.panel   +++|C
02130  M01S01814.panel   +++|C           VARIABLE
02131  M01S01815.panel   +++|C
02132  M01S01816.panel   +++|            K = SPCH(IMAG(I,J))
02133  M01S01817.panel   +++|            IF (IMAG(I,J).EQ.ZUL) THEN
Line S00001 Modification History
M01 (Added by) panel6
M02 (Updated by) panel9
Seq #  *Modification Id* Act 
----------------------------+
02134  M02S00001.panel9  ---|              IF (J.EQ.1) THEN
02135  M01S00001.panel9  +++|              IF ((J.EQ.1) .AND.
02136  M01S00002.panel9  +++|     A          (VAIO(NFIE+1) .NE. 2)) THEN
Line S00002 Modification History
M01 (Added by) panel6
M02 (Updated by) panel9
Seq #  *Modification Id* Act 
----------------------------+
02137  M02S00002.panel9  ---|                CALL ERROR('Variable field on' //
02138  M01S00003.panel9  +++|                CALL ERROR('Input field on' //
02139  M01S00003.panel6  +++|     A                     ' first line of image')
02140  M01S00004.panel6  +++|                RETURN
02141  M01S00005.panel6  +++|              ENDIF
02142  M01S01818.panel   +++|              SI = I
Line S01819 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02143  M02S01819.ns2150  ---|              TMPX = IX
02144  M01S00131.ns2150  +++|              TMPX = I - 1
02145  M01S01820.panel   +++|200           I = I + 1
Line S01821 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02146  M02S01821.ns2150  ---|              IX = IX + 1
02147  M01S01822.panel   +++|              IF (IMAG(I,J).EQ.ZUL) GOTO 200
02148  M01S01823.panel   +++|              NCOL = MAX(NCOL,I-1)
Line S01824 Modification History
M01 (Added by) panel
M02 (Updated by) ns2230
Seq #  *Modification Id* Act 
----------------------------+
02149  M02S01824.ns2230  ---|              IF (NFIE.GE.MFIE) THEN
Line S00002 Modification History
M01 (Added by) ns2230
M02 (Updated by) ns2473
Seq #  *Modification Id* Act 
----------------------------+
02150  M02S00002.ns2473  ---|              IF (NFIE.GT.(MFIE+1)) THEN
Line S01825 Modification History
M01 (Added by) panel
M02 (Updated by) ns2473
Seq #  *Modification Id* Act 
----------------------------+
02151  M02S01825.ns2473  ---|                CALL ERRORN(MFIE,'fields')
Line S01826 Modification History
M01 (Added by) panel
M02 (Updated by) ns2473
Seq #  *Modification Id* Act 
----------------------------+
02152  M02S01826.ns2473  ---|                RETURN
Line S01827 Modification History
M01 (Added by) panel
M02 (Updated by) ns2473
Seq #  *Modification Id* Act 
----------------------------+
02153  M02S01827.ns2473  ---|              ENDIF
02154  M01S01828.panel   +++|              NFIE = NFIE + 1
02155  M01S01829.panel   +++|              NVAF = NVAF + 1
02156  M01S01830.panel   +++|              IF (NVAF.LE.NVAR) THEN
02157  M01S01831.panel   +++|                IF (I-SI.NE.VARL(NVAF).AND.VARL(NVAF).NE.0) THEN
02158  M01S01832.panel   +++|                  CALL ERROR('FIELD DECLARED DIFFERENT SIZE')
02159  M01S01833.panel   +++|                ENDIF
02160  M01S01834.panel   +++|              ELSE
02161  M01S01835.panel   +++|                CALL NEWVAR
02162  M01S01836.panel   +++|                IF (FATAL) RETURN
02163  M01S01837.panel   +++|              ENDIF
02164  M01S01838.panel   +++|              FIEX(NFIE) = TMPX
02165  M01S01839.panel   +++|              FIEY(NFIE) = J - 1
02166  M01S01840.panel   +++|              FIEL(NFIE) = I - SI
02167  M01S01841.panel   +++|              FIET(NFIE) = 1
02168  M01S01842.panel   +++|              FIEV(NFIE) = NVAF
02169  M01S01843.panel   +++|              FIEO(NFIE) = VDCO
02170  M01S01844.panel   +++|              FIEA(NFIE) = VARA(NVAF)
02171  M01S01845.panel   +++|              VARF(NVAF) = NFIE
02172  M01S01846.panel   +++|              VDCO = VDCO + FIEL(NFIE)
02173  M01S01847.panel   +++|              GOTO 100
02174  M01S01848.panel   +++|C
02175  M01S01849.panel   +++|C           ATTRIBUTE
02176  M01S01850.panel   +++|C
02177  M01S01851.panel   +++|            ELSEIF (K.GT.0) THEN
02178  M01S01852.panel   +++|              SI = I + 1
Line S01853 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02179  M02S01853.ns2150  ---|              IX = IX + 1
02180  M01S01854.panel   +++|300           I = I + 1
Line S01855 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02181  M02S01855.v23l617 ---|              IF (I.LE.132.AND.IMAG(I,J).NE.ATCE(K)) GOTO 300
02182  M01S00017.v23l617 +++|              IF (I.LE.MCOL.AND.IMAG(I,J).NE.ATCE(K)) GOTO 300
02183  M01S01856.panel   +++|              NCOL = MAX(NCOL,I-1)
02184  M01S01857.panel   +++|              IF (I-SI.GT.0) THEN
Line S01858 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02185  M02S01858.ns2150  ---|                CALL NEWCON(IX, J-1, SI, I-SI, K-1)
02186  M01S00132.ns2150  +++|                CALL NEWCON(SI-1, J-1, SI, I-SI, K-1)
02187  M01S01859.panel   +++|                IF (FATAL) RETURN
Line S01860 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02188  M02S01860.ns2150  ---|                IX = IX + I - SI + 1
02189  M01S01861.panel   +++|              ENDIF
02190  M01S01862.panel   +++|              I = I + 1
02191  M01S01863.panel   +++|              GOTO 100
02192  M01S01864.panel   +++|C
02193  M01S01865.panel   +++|C           BOX
02194  M01S01866.panel   +++|C
02195  M01S01867.panel   +++|            ELSEIF (K.LT.0) THEN
02196  M01S01868.panel   +++|              CALL DOBOX(I,J,-K)
02197  M01S01869.panel   +++|              I = I + 1
02198  M01S01870.panel   +++|              GOTO 100
02199  M01S01871.panel   +++|C
02200  M01S01872.panel   +++|C           PLAIN OLD CONSTANT
02201  M01S01873.panel   +++|C
02202  M01S01874.panel   +++|            ELSE
02203  M01S01875.panel   +++|              SI = I
02204  M01S01876.panel   +++|400           I = I + 1
Line S01877 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02205  M02S01877.v23l617 ---|              IF (I.LE.132.AND.
02206  M01S00018.v23l617 +++|              IF (I.LE.MCOL.AND.
02207  M01S01878.panel   +++|     A            IMAG(I,J).NE.ZSP.AND.
02208  M01S01879.panel   +++|     B            SPCH(IMAG(I,J)).EQ.0) GOTO 400
Line S01880 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02209  M02S01880.ns2150  ---|              IF (I.LT.132) THEN
Line S01881 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02210  M02S01881.ns2150  ---|                IF (IMAG(I+1,J).NE.ZSP.AND.
Line S01882 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02211  M02S01882.ns2150  ---|     A              SPCH(IMAG(I+1,J)).EQ.0) THEN
Line S01883 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02212  M02S01883.ns2150  ---|                  I = I + 1
Line S01884 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02213  M02S01884.ns2150  ---|                  GOTO 400
Line S01885 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02214  M02S01885.ns2150  ---|                ENDIF
Line S01886 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02215  M02S01886.ns2150  ---|              ENDIF
Line S00133 Modification History
M01 (Added by) ns2150
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02216  M02S00133.v23l617 ---|              IF (I.LT.132.AND.
02217  M01S00019.v23l617 +++|              IF (I.LT.MCOL.AND.
02218  M01S00134.ns2150  +++|     A            IMAG(I,J).EQ.ZSP.AND.
02219  M01S00135.ns2150  +++|     B            IMAG(I+1,J).NE.ZSP) GOTO 400
02220  M01S01887.panel   +++|              NCOL = MAX(NCOL,I-1)
Line S01888 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02221  M02S01888.ns2150  ---|              CALL NEWCON(IX, J-1, SI, I-SI, 2)
02222  M01S00136.ns2150  +++|              CALL NEWCON(SI-1, J-1, SI, I-SI, 2)
02223  M01S01889.panel   +++|              IF (FATAL) RETURN
Line S01890 Modification History
M01 (Added by) panel
M02 (Updated by) ns2150
Seq #  *Modification Id* Act 
----------------------------+
02224  M02S01890.ns2150  ---|              IX = IX + I - SI
02225  M01S01891.panel   +++|              GOTO 100
02226  M01S01892.panel   +++|            ENDIF
02227  M01S01893.panel   +++|          ENDIF
02228  M01S01894.panel   +++|1000    CONTINUE
Line S01895 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02229  M02S01895.v23l617 ---|        IF (HIHV.NE.0.AND.(HIHV.NE.NVAR.OR.NVAF.NE.NVAR)) THEN
02230  M01S00020.v23l617 +++|        IF (HIHV.NE.NVAR.OR.NVAF.NE.NVAR) THEN
02231  M01S01896.panel   +++|          CALL ERROR('Different number of' //
02232  M01S01897.panel   +++|     A               ' fields than declared')
02233  M01S01898.panel   +++|        ENDIF
02234  M01S01899.panel   +++|        END
02235  M01S01900.panel   +++|C-------------------------------------------------------------------
02236  M01S01901.panel   +++|C*      SCANINT - SCAN INTEGER
02237  M01S01902.panel   +++|C
02238  M01S01903.panel   +++|        SUBROUTINE SCANINT
02239  M01S01904.panel   +++|*CALL   COMFPAN
02240  M01S01905.panel   +++|1       IF (ISN(IMAG(SJ,1))) THEN
02241  M01S01906.panel   +++|          SJ = SJ + 1
02242  M01S01907.panel   +++|          GOTO 1
02243  M01S01908.panel   +++|        ENDIF
02244  M01S01909.panel   +++|        END
02245  M01S01910.panel   +++|C-------------------------------------------------------------------
02246  M01S01911.panel   +++|C       SCANKEY - SCAN KEY DECLARATION
02247  M01S01912.panel   +++|C
02248  M01S01913.panel   +++|        SUBROUTINE SCANKEY
02249  M01S01914.panel   +++|*CALL   COMFPAN
02250  M01S01915.panel   +++|        N = 0
02251  M01S01916.panel   +++|        CALL SCANSYM
02252  M01S01917.panel   +++|1       CONTINUE
02253  M01S01918.panel   +++|        IF (FATAL) RETURN
02254  M01S01919.panel   +++|        IF (ZEQNEXT()) THEN
02255  M01S01920.panel   +++|          IF (UPSYMEQ('NORMAL').OR.UPSYMEQ('N')) THEN
02256  M01S01921.panel   +++|            I = 1
02257  M01S01922.panel   +++|          ELSEIF (UPSYMEQ('ABNORMAL').OR.UPSYMEQ('A')) THEN
02258  M01S01923.panel   +++|            I = 2
Line S01924 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02259  M02S01924.v23l617 ---|          ELSE
Line S01925 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02260  M02S01925.v23l617 ---|            CALL EXPECT('NORMAL= or ABNORMAL=','KEY')
02261  M01S00021.v23l617 +++|          ELSEIF (UPSYMEQ('HELP').OR.UPSYMEQ('H')) THEN
02262  M01S00022.v23l617 +++|            I = 3
02263  M01S00023.v23l617 +++|          ELSEIF (UPSYMEQ('MATCH').OR.UPSYMEQ('M')) THEN
02264  M01S00024.v23l617 +++|            I = 4
02265  M01S00025.v23l617 +++|          ELSE
02266  M01S00026.v23l617 +++|            CALL EXPECT('NORMAL=, ABNORMAL=, HELP= or MATCH=','KEY')
02267  M01S01926.panel   +++|            RETURN
02268  M01S01927.panel   +++|          ENDIF
02269  M01S01928.panel   +++|          CALL SKIPTWO
02270  M01S01929.panel   +++|          IF (FATAL) RETURN
Line S01930 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02271  M02S01930.v23l617 ---|          N = 2
Line S01931 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02272  M02S01931.v23l617 ---|          GOTO (100,200), I
Line S01932 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02273  M02S01932.v23l617 ---|        ELSE
Line S01933 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02274  M02S01933.v23l617 ---|          N = N + 1
Line S01934 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02275  M02S01934.v23l617 ---|          GOTO (100,200), N
02276  M01S00027.v23l617 +++|          N = 4
02277  M01S00028.v23l617 +++|          GOTO (100,200,300,400), I
02278  M01S00029.v23l617 +++|        ELSE
02279  M01S00030.v23l617 +++|          N = N + 1
02280  M01S00031.v23l617 +++|          GOTO (100,200,300,400), N
02281  M01S01935.panel   +++|          CALL CHEKHED(I)
02282  M01S01936.panel   +++|          IF (I.EQ.0) THEN
Line S01937 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02283  M02S01937.v23l617 ---|            CALL EXPECT('NORMAL=(keys) or '//
Line S01938 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02284  M02S01938.v23l617 ---|     A                 'ABNORMAL=(keys)','KEY')
02285  M01S00032.v23l617 +++|            CALL EXPECT('NORMAL=, ABNORMAL=, HELP= or '//
02286  M01S00033.v23l617 +++|     A                 'MATCH=(keys)','KEY')
02287  M01S01939.panel   +++|          ENDIF
02288  M01S01940.panel   +++|          RETURN
02289  M01S01941.panel   +++|        ENDIF
02290  M01S01942.panel   +++|C
02291  M01S01943.panel   +++|C       NORMAL
02292  M01S01944.panel   +++|C
02293  M01S01945.panel   +++|100     CONTINUE
02294  M01S01946.panel   +++|        CALL SCANKYS(1)
02295  M01S01947.panel   +++|        IF (FATAL) RETURN
02296  M01S01948.panel   +++|        GOTO 1
02297  M01S01949.panel   +++|C
02298  M01S01950.panel   +++|C       ABNORMAL
02299  M01S01951.panel   +++|C
02300  M01S01952.panel   +++|200     CONTINUE
02301  M01S01953.panel   +++|        CALL SCANKYS(3)
02302  M01S01954.panel   +++|        IF (FATAL) RETURN
02303  M01S01955.panel   +++|        GOTO 1
02304  M01S00034.v23l617 +++|C
02305  M01S00035.v23l617 +++|C       HELP
02306  M01S00036.v23l617 +++|C
02307  M01S00037.v23l617 +++|300     CONTINUE
02308  M01S00038.v23l617 +++|        CALL SCANKYS(9)
02309  M01S00039.v23l617 +++|        IF (FATAL) RETURN
02310  M01S00040.v23l617 +++|        GOTO 1
02311  M01S00041.v23l617 +++|C
02312  M01S00042.v23l617 +++|C       MATCH
02313  M01S00043.v23l617 +++|C
02314  M01S00044.v23l617 +++|400     CONTINUE
02315  M01S00045.v23l617 +++|        CALL SCANKYS(10)
02316  M01S00046.v23l617 +++|        IF (FATAL) RETURN
02317  M01S00047.v23l617 +++|        GOTO 1
02318  M01S01956.panel   +++|        END
02319  M01S01957.panel   +++|C-------------------------------------------------------------------
02320  M01S01958.panel   +++|C*      SCANKYS - SCAN KEY LIST
02321  M01S01959.panel   +++|C
02322  M01S01960.panel   +++|C       ENTRY   K=ACTION
02323  M01S01961.panel   +++|C
02324  M01S01962.panel   +++|        SUBROUTINE SCANKYS(K)
02325  M01S01963.panel   +++|*CALL   COMFPAN
02326  M01S01964.panel   +++|        LOGICAL LOOP
02327  M01S01965.panel   +++|        IF (SYMEQ('(')) THEN
02328  M01S01966.panel   +++|          LOOP = .TRUE.
02329  M01S01967.panel   +++|          GOTO 1
02330  M01S01968.panel   +++|        ELSE
02331  M01S01969.panel   +++|          LOOP = .FALSE.
02332  M01S01970.panel   +++|          GOTO 2
02333  M01S01971.panel   +++|        ENDIF
02334  M01S01972.panel   +++|1       CONTINUE
02335  M01S01973.panel   +++|        CALL SCANSYM
02336  M01S01974.panel   +++|        IF (FATAL) RETURN
02337  M01S01975.panel   +++|2       CONTINUE
02338  M01S01976.panel   +++|        CALL CHEKKEY(I,J)
02339  M01S01977.panel   +++|        IF (FATAL) RETURN
02340  M01S01978.panel   +++|        IF (I.EQ.0) THEN
02341  M01S01979.panel   +++|          IF (LOOP) THEN
02342  M01S01980.panel   +++|            IF (SYMEQ(')')) THEN
02343  M01S01981.panel   +++|              CALL SCANSYM
02344  M01S01982.panel   +++|            ELSE
02345  M01S01983.panel   +++|              CALL EXPECT(')','KEY list')
02346  M01S01984.panel   +++|            ENDIF
02347  M01S01985.panel   +++|          ENDIF
02348  M01S01986.panel   +++|          RETURN
02349  M01S01987.panel   +++|        ENDIF
02350  M01S01988.panel   +++|        IF (NFUN.GE.MFUN) THEN
02351  M01S01989.panel   +++|          CALL ERRORN(MKEY,'keys')
02352  M01S01990.panel   +++|          RETURN
02353  M01S01991.panel   +++|        ENDIF
02354  M01S01992.panel   +++|        NFUN = NFUN + 1
02355  M01S01993.panel   +++|        FUNG(NFUN) = I/2
02356  M01S01994.panel   +++|        FUNK(NFUN) = J
02357  M01S01995.panel   +++|        FUNA(NFUN) = K
02358  M01S01996.panel   +++|        IF (LOOP) GOTO 1
02359  M01S01997.panel   +++|        CALL SCANSYM
02360  M01S01998.panel   +++|        END
02361  M01S01999.panel   +++|C-------------------------------------------------------------------
02362  M01S02000.panel   +++|C       SCANLEN - SCAN VAR LENGTH
02363  M01S02001.panel   +++|C
02364  M01S02002.panel   +++|        SUBROUTINE SCANLEN
02365  M01S02003.panel   +++|*CALL   COMFPAN
02366  M01S02004.panel   +++|        IF (SYMEQ('(')) THEN
02367  M01S02005.panel   +++|          CALL SCANSYM
02368  M01S02006.panel   +++|          IF (FATAL) RETURN
02369  M01S02007.panel   +++|          IF (SYMTP.EQ.'N') THEN
02370  M01S02008.panel   +++|            VARL(NVAR) = SINT
02371  M01S02009.panel   +++|            CALL SCANSYM
02372  M01S02010.panel   +++|            IF (FATAL) RETURN
02373  M01S02011.panel   +++|            IF (SYMEQ(')')) THEN
02374  M01S02012.panel   +++|              CALL SCANSYM
02375  M01S02013.panel   +++|              RETURN
02376  M01S02014.panel   +++|            ELSE
02377  M01S02015.panel   +++|              CALL EXPECT(')','VAR length')
02378  M01S02016.panel   +++|            ENDIF
02379  M01S02017.panel   +++|          ELSE
02380  M01S02018.panel   +++|            CALL EXPECT('VAR length','(')
02381  M01S02019.panel   +++|          ENDIF
02382  M01S02020.panel   +++|        ENDIF
02383  M01S02021.panel   +++|        VARL(NVAR) = 0
02384  M01S02022.panel   +++|        END
02385  M01S02023.panel   +++|C-------------------------------------------------------------------
02386  M01S02024.panel   +++|C*      SCANLPA - SCAN LOGICAL/PHYSICAL ATTRIBUTE
02387  M01S02025.panel   +++|C
02388  M01S02026.panel   +++|C       ENTRY   LOG=1 IF LOGICAL ATTRIBUTES, 0 IF PHYSICAL
02389  M01S02027.panel   +++|C
02390  M01S02028.panel   +++|        SUBROUTINE SCANLPA(LOG)
02391  M01S02029.panel   +++|*CALL   COMFPAN
02392  M01S02030.panel   +++|        INTEGER LOG
02393  M01S02031.panel   +++|        LOGICAL LOOP
02394  M01S02032.panel   +++|        CHARACTER*8 LOGIC(2)
02395  M01S02033.panel   +++|        DATA LOGIC /'PHYSICAL','LOGICAL'/
02396  M01S02034.panel   +++|        IF (SYMEQ('(')) THEN
02397  M01S02035.panel   +++|          LOOP = .TRUE.
02398  M01S02036.panel   +++|          GOTO 1
02399  M01S02037.panel   +++|        ELSE
02400  M01S02038.panel   +++|          LOOP = .FALSE.
02401  M01S02039.panel   +++|          GOTO 2
02402  M01S02040.panel   +++|        ENDIF
02403  M01S02041.panel   +++|1       CONTINUE
02404  M01S02042.panel   +++|        CALL SCANSYM
02405  M01S02043.panel   +++|        IF (FATAL) RETURN
02406  M01S02044.panel   +++|2       CONTINUE
02407  M01S02045.panel   +++|        CALL CHEKATR(LP,I)
02408  M01S02046.panel   +++|        IF (LP.EQ.3) THEN
02409  M01S02047.panel   +++|          IF (SYMEQ(')')) RETURN
02410  M01S02048.panel   +++|          CALL EXPECT(LOGIC(LOG+1)//' attribute',' ')
02411  M01S02049.panel   +++|          RETURN
02412  M01S02050.panel   +++|        ENDIF
02413  M01S02051.panel   +++|        IF (LP.NE.LOG) THEN
02414  M01S02052.panel   +++|          CALL ERROR('attribute not '//LOGIC(LOG+1))
02415  M01S02053.panel   +++|          RETURN
02416  M01S02054.panel   +++|        ENDIF
02417  M01S02055.panel   +++|        CALL SETATR(LP,I)
02418  M01S02056.panel   +++|        IF (LOOP) GOTO 1
02419  M01S02057.panel   +++|        END
02420  M01S02058.panel   +++|C-------------------------------------------------------------------
02421  M01S02059.panel   +++|C*      SCANMUS - SCAN ENTRY
02422  M01S02060.panel   +++|C
02423  M01S02061.panel   +++|        SUBROUTINE SCANMUS
02424  M01S02062.panel   +++|*CALL   COMFPAN
02425  M01S02063.panel   +++|        LOGICAL LOOP
02426  M01S02064.panel   +++|        IF (SYMEQ('(')) THEN
02427  M01S02065.panel   +++|          LOOP = .TRUE.
02428  M01S02066.panel   +++|          GOTO 1
02429  M01S02067.panel   +++|        ELSE
02430  M01S02068.panel   +++|          LOOP = .FALSE.
02431  M01S02069.panel   +++|          GOTO 2
02432  M01S02070.panel   +++|        ENDIF
02433  M01S02071.panel   +++|1       CONTINUE
02434  M01S02072.panel   +++|        CALL SCANSYM
02435  M01S02073.panel   +++|        IF (FATAL) RETURN
02436  M01S02074.panel   +++|2       CONTINUE
02437  M01S02075.panel   +++|        IF (SYMEQ(')')) RETURN
02438  M01S02076.panel   +++|        IF (UPSYMEQ('MUST')) THEN
02439  M01S02077.panel   +++|          CALL SCANSYM
02440  M01S02078.panel   +++|          IF (FATAL) RETURN
02441  M01S02079.panel   +++|        ENDIF
02442  M01S02080.panel   +++|        IF (UPSYMEQ('FILL')) THEN
02443  M01S02081.panel   +++|          VARM(NVAR) = OR(VARM(NVAR),VMF)
02444  M01S02082.panel   +++|        ELSEIF (UPSYMEQ('ENTER').OR.UPSYMEQ('E')) THEN
02445  M01S02083.panel   +++|          VARM(NVAR) = OR(VARM(NVAR),VME)
02446  M01S02084.panel   +++|        ELSEIF (UPSYMEQ('UNKNOWN').OR.UPSYMEQ('U')) THEN
02447  M01S02085.panel   +++|          VARM(NVAR) = AND(VARM(NVAR),COMPL(VMK))
Line S02086 Modification History
M01 (Added by) panel
M02 (Updated by) ns2469
Seq #  *Modification Id* Act 
----------------------------+
02448  M02S02086.ns2469  ---|        ELSE
Line S02087 Modification History
M01 (Added by) panel
M02 (Updated by) ns2469
Seq #  *Modification Id* Act 
----------------------------+
02449  M02S02087.ns2469  ---|          CALL EXPECT('MUST FILL, MUST ENTER, or UNKNOWN','ENTRY')
02450  M01S00007.ns2469  +++|        ELSEIF (UPSYMEQ('CONTAIN').OR.UPSYMEQ('C')) THEN
02451  M01S00008.ns2469  +++|          VARC(NVAR) = 1
02452  M01S00009.ns2469  +++|        ELSE
02453  M01S00010.ns2469  +++|          CALL EXPECT('MUST FILL, ENTER, CONTAIN or UNKNOWN','ENTRY')
02454  M01S02088.panel   +++|          RETURN
02455  M01S02089.panel   +++|        ENDIF
02456  M01S02090.panel   +++|        IF (LOOP) GOTO 1
02457  M01S02091.panel   +++|        END
02458  M01S02092.panel   +++|C-------------------------------------------------------------------
02459  M01S02093.panel   +++|C*      SCANPAN - SCAN PANEL KEYWORDS
02460  M01S02094.panel   +++|C
02461  M01S02095.panel   +++|        SUBROUTINE SCANPAN
02462  M01S02096.panel   +++|*CALL   COMFPAN
02463  M01S02097.panel   +++|        N = 0
02464  M01S02098.panel   +++|1       CONTINUE
02465  M01S02099.panel   +++|        CALL SCANSYM
02466  M01S02100.panel   +++|        IF (FATAL) RETURN
02467  M01S02101.panel   +++|        IF (ZEQNEXT()) THEN
02468  M01S02102.panel   +++|          IF (UPSYMEQ('NAME').OR.UPSYMEQ('N')) THEN
02469  M01S02103.panel   +++|            I = 1
02470  M01S02104.panel   +++|          ELSE IF (UPSYMEQ('TYPE').OR.UPSYMEQ('T')) THEN
02471  M01S02105.panel   +++|            I = 2
02472  M01S02106.panel   +++|          ELSE
02473  M01S02107.panel   +++|            CALL EXPECT('TYPE=','PANEL')
02474  M01S02108.panel   +++|            RETURN
02475  M01S02109.panel   +++|          ENDIF
02476  M01S02110.panel   +++|          CALL SKIPTWO
02477  M01S02111.panel   +++|          IF (FATAL) RETURN
02478  M01S02112.panel   +++|          N = 2
02479  M01S02113.panel   +++|          GOTO (100,200), I
02480  M01S02114.panel   +++|        ELSE
02481  M01S02115.panel   +++|          CALL CHEKHED(I)
02482  M01S02116.panel   +++|          IF (I.NE.0) RETURN
02483  M01S02117.panel   +++|          N = N + 1
02484  M01S02118.panel   +++|          GOTO (100,200), N
02485  M01S02119.panel   +++|          CALL EXPECT('NAME or TYPE','PANEL')
02486  M01S02120.panel   +++|          RETURN
02487  M01S02121.panel   +++|        ENDIF
02488  M01S02122.panel   +++|C
02489  M01S02123.panel   +++|C       NAME
02490  M01S02124.panel   +++|C
02491  M01S02125.panel   +++|100     CONTINUE
02492  M01S02126.panel   +++|        IF (SYMTP.NE.'I') THEN
02493  M01S02127.panel   +++|          CALL EXPECT('PANEL name','PANEL')
02494  M01S02128.panel   +++|          RETURN
02495  M01S02129.panel   +++|        ENDIF
02496  M01S02130.panel   +++|        PNAME = STRGD(1:SL)
02497  M01S02131.panel   +++|        GOTO 1
02498  M01S02132.panel   +++|C
02499  M01S02133.panel   +++|C       TYPE
02500  M01S02134.panel   +++|C
02501  M01S02135.panel   +++|200     CONTINUE
02502  M01S02136.panel   +++|        IF (UPSYMEQ('PRIMARY')) THEN
02503  M01S02137.panel   +++|          ERBW = 1
02504  M01S02138.panel   +++|        ELSEIF (UPSYMEQ('OVERLAY')) THEN
02505  M01S02139.panel   +++|          ERBW = 0
02506  M01S02140.panel   +++|        ELSE
02507  M01S02141.panel   +++|          CALL EXPECT('PRIMARY or OVERLAY',' ')
02508  M01S02142.panel   +++|          RETURN
02509  M01S02143.panel   +++|        ENDIF
02510  M01S02144.panel   +++|        GOTO 1
02511  M01S02145.panel   +++|        END
02512  M01S02146.panel   +++|C-------------------------------------------------------------------
02513  M01S02147.panel   +++|C*      SCANRNG - SCAN RANGE
02514  M01S02148.panel   +++|C
02515  M01S02149.panel   +++|        SUBROUTINE SCANRNG
02516  M01S02150.panel   +++|*CALL   COMFPAN
02517  M01S02151.panel   +++|        IF (.NOT.SYMEQ('(')) THEN
02518  M01S02152.panel   +++|          CALL EXPECT('(','RANGE=')
02519  M01S02153.panel   +++|          RETURN
02520  M01S02154.panel   +++|        ENDIF
02521  M01S02155.panel   +++|        CALL SCANSYM
02522  M01S02156.panel   +++|        IF (FATAL) RETURN
02523  M01S02157.panel   +++|        IF (SYMTP.NE.'N'.AND.SYMTP.NE.'R') THEN
02524  M01S02158.panel   +++|          CALL EXPECT('constant','RANGE')
02525  M01S02159.panel   +++|          RETURN
02526  M01S02160.panel   +++|        ENDIF
02527  M01S02161.panel   +++|C
02528  M01S02162.panel   +++|C       INTEGER RANGE
02529  M01S02163.panel   +++|C
02530  M01S02164.panel   +++|        IF (NVAL.GE.MVAL-1) THEN
02531  M01S02165.panel   +++|          CALL ERR('VALIDATION TABLE OVERFLOW')
02532  M01S02166.panel   +++|          RETURN
02533  M01S02167.panel   +++|        ENDIF
02534  M01S02168.panel   +++|        IF (VART(NVAR).EQ.VTN) THEN
02535  M01S02169.panel   +++|          IF (SYMTP.NE.'N') THEN
02536  M01S02170.panel   +++|            CALL ERROR('Constant wrong type')
02537  M01S02171.panel   +++|            RETURN
02538  M01S02172.panel   +++|          ENDIF
02539  M01S02173.panel   +++|          NVAL = NVAL + 1
02540  M01S02174.panel   +++|          VVAL(NVAL) = SINT
02541  M01S02175.panel   +++|          CALL SCANSYM
02542  M01S02176.panel   +++|          IF (FATAL) RETURN
02543  M01S02177.panel   +++|          IF (SYMTP.NE.'N') THEN
02544  M01S02178.panel   +++|            CALL EXPECT('constants','RANGE')
02545  M01S02179.panel   +++|            RETURN
02546  M01S02180.panel   +++|          ENDIF
02547  M01S02181.panel   +++|          IF (VVAL(NVAL).GT.SINT) THEN
02548  M01S02182.panel   +++|            CALL ERROR('RANGE low gt high')
02549  M01S02183.panel   +++|            RETURN
02550  M01S02184.panel   +++|          ENDIF
02551  M01S02185.panel   +++|          NVAL = NVAL + 1
02552  M01S02186.panel   +++|          VVAL(NVAL) = SINT
02553  M01S02187.panel   +++|          VARV(NVAR) = NVAL - 1
02554  M01S02188.panel   +++|          VAVT(NVAR) = VTRANGE
02555  M01S02189.panel   +++|          CALL SCANSYM
02556  M01S02190.panel   +++|          GOTO 9999
02557  M01S02191.panel   +++|C
02558  M01S02192.panel   +++|C       REAL RANGE
02559  M01S02193.panel   +++|C
02560  M01S02194.panel   +++|        ELSEIF (VART(NVAR).EQ.VTR) THEN
02561  M01S02195.panel   +++|          IF (SYMTP.NE.'R') THEN
02562  M01S02196.panel   +++|            CALL ERROR('Constant wrong type')
02563  M01S02197.panel   +++|            RETURN
02564  M01S02198.panel   +++|          ENDIF
02565  M01S02199.panel   +++|          NVAL = NVAL + 1
02566  M01S02200.panel   +++|          VREALV(NVAL) = SREALV
02567  M01S02201.panel   +++|          CALL SCANSYM
02568  M01S02202.panel   +++|          IF (FATAL) RETURN
02569  M01S02203.panel   +++|          IF (SYMTP.NE.'R') THEN
02570  M01S02204.panel   +++|            CALL EXPECT('constants','RANGE')
02571  M01S02205.panel   +++|            RETURN
02572  M01S02206.panel   +++|          ENDIF
02573  M01S02207.panel   +++|          IF (VREALV(NVAL).GT.SREALV) THEN
02574  M01S02208.panel   +++|            CALL ERROR('RANGE low gt high')
02575  M01S02209.panel   +++|            RETURN
02576  M01S02210.panel   +++|          ENDIF
02577  M01S02211.panel   +++|          NVAL = NVAL + 1
02578  M01S02212.panel   +++|          VREALV(NVAL) = SREALV
02579  M01S02213.panel   +++|          VARV(NVAR) = NVAL - 1
02580  M01S02214.panel   +++|          VAVT(NVAR) = VTRANGE
02581  M01S02215.panel   +++|          CALL SCANSYM
02582  M01S02216.panel   +++|          GOTO 9999
02583  M01S02217.panel   +++|C
02584  M01S02218.panel   +++|C       CHAR RANGE
02585  M01S02219.panel   +++|C
02586  M01S02220.panel   +++|        ELSE
02587  M01S02221.panel   +++|          CALL ERROR('RANGE of CHAR not allowed')
02588  M01S02222.panel   +++|          RETURN
02589  M01S02223.panel   +++|        ENDIF
02590  M01S02224.panel   +++|9999    CONTINUE
02591  M01S02225.panel   +++|        IF (FATAL) RETURN
02592  M01S02226.panel   +++|        IF (.NOT.SYMEQ(')')) THEN
02593  M01S02227.panel   +++|          CALL EXPECT(')','RANGE')
02594  M01S02228.panel   +++|        ENDIF
02595  M01S02229.panel   +++|        END
02596  M01S02230.panel   +++|C-------------------------------------------------------------------
02597  M01S02231.panel   +++|C*      SCANSYM - SCAN SYMBOL FROM CURRENT POSITION
02598  M01S02232.panel   +++|C
02599  M01S02233.panel   +++|C       ENTRY
02600  M01S02234.panel   +++|C               SJ = CURRENT POSITION
02601  M01S02235.panel   +++|C       EXIT
02602  M01S02236.panel   +++|C               SI = SYMBOL POSITION
02603  M01S02237.panel   +++|C               SJ = NEW CURRENT POSITION
02604  M01S02238.panel   +++|C               SYMTP = SYMBOL TYPE
02605  M01S02239.panel   +++|C                       I = IDENTIFIER
02606  M01S02240.panel   +++|C                       N = INTEGER
02607  M01S02241.panel   +++|C                       P = PUNCTUATOR
02608  M01S02242.panel   +++|C                       R = REAL
02609  M01S02243.panel   +++|C                       S = STRING
02610  M01S02244.panel   +++|C
02611  M01S02245.panel   +++|        SUBROUTINE SCANSYM
02612  M01S02246.panel   +++|*CALL   COMFPAN
02613  M01S02247.panel   +++|        CHARACTER*10 FMT
02614  M01S02248.panel   +++|        GOTO 2
02615  M01S02249.panel   +++|1       CALL READL1
02616  M01S02250.panel   +++|        IF (FATAL) RETURN
02617  M01S02251.panel   +++|2       CONTINUE
Line S02252 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02618  M02S02252.v23l617 ---|        IF (SJ.GE.133) GOTO 1
02619  M01S00048.v23l617 +++|        IF (SJ.GT.MCOL) GOTO 1
02620  M01S02253.panel   +++|        IF (IMAG(SJ,1).EQ.ZSP) THEN
02621  M01S02254.panel   +++|          SJ = SJ + 1
02622  M01S02255.panel   +++|          GOTO 2
02623  M01S02256.panel   +++|        ENDIF
02624  M01S02257.panel   +++|        IF (IMAG(SJ,1).EQ.ZQO) THEN
02625  M01S02258.panel   +++|3         CONTINUE
02626  M01S02259.panel   +++|          SJ = SJ + 1
Line S02260 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02627  M02S02260.v23l617 ---|          IF (SJ.GE.133) GOTO 1
02628  M01S00049.v23l617 +++|          IF (SJ.GT.MCOL) GOTO 1
02629  M01S02261.panel   +++|          IF (IMAG(SJ,1).NE.ZQO) GOTO 3
02630  M01S02262.panel   +++|          SJ = SJ + 1
02631  M01S02263.panel   +++|          GOTO 2
02632  M01S02264.panel   +++|        ENDIF
02633  M01S02265.panel   +++|C
02634  M01S02266.panel   +++|        SI = SJ
02635  M01S02267.panel   +++|        SL = 0
02636  M01S02268.panel   +++|        IF (ISA(IMAG(SJ,1))) THEN
02637  M01S02269.panel   +++|          GOTO 100
02638  M01S02270.panel   +++|        ELSEIF (ISN(IMAG(SJ,1))) THEN
02639  M01S02271.panel   +++|          GOTO 200
02640  M01S02272.panel   +++|        ELSEIF (IMAG(SJ,1).EQ.ZPL.OR.
02641  M01S02273.panel   +++|     A          IMAG(SJ,1).EQ.ZMI) THEN
02642  M01S02274.panel   +++|          GOTO 200
02643  M01S02275.panel   +++|        ELSEIF (IMAG(SJ,1).EQ.ZPD) THEN
02644  M01S02276.panel   +++|          IF (IMAG(SJ+1,1).EQ.ZPD) THEN
02645  M01S02277.panel   +++|            SJ = SJ + 2
02646  M01S00001.panel12 +++|            IF (IMAG(SJ,1).EQ.ZPD) SJ = SJ + 1
02647  M01S02278.panel   +++|            GOTO 2
02648  M01S02279.panel   +++|          ENDIF
02649  M01S02280.panel   +++|          GOTO 215
02650  M01S02281.panel   +++|        ELSEIF (IMAG(SJ,1).EQ.ZAP) THEN
02651  M01S02282.panel   +++|          SJ = SJ + 1
02652  M01S02283.panel   +++|          GOTO 300
02653  M01S02284.panel   +++|        ENDIF
02654  M01S02285.panel   +++|        SYMTP = 'P'
02655  M01S02286.panel   +++|        SL = 1
02656  M01S02287.panel   +++|        SJ = SJ + 1
02657  M01S02288.panel   +++|        GOTO 9999
02658  M01S02289.panel   +++|C
02659  M01S02290.panel   +++|C       IDENTIFIER
02660  M01S02291.panel   +++|C
02661  M01S02292.panel   +++|100     IF (ISAN(IMAG(SJ,1))) THEN
02662  M01S02293.panel   +++|          SL = SL + 1
02663  M01S02294.panel   +++|          IF (IMAG(SJ,1).LT.ZAA) THEN
02664  M01S02295.panel   +++|            STRGD(SL:SL) = CHAR(IMAG(SJ,1) - Z0 + ICHAR('0'))
02665  M01S02296.panel   +++|          ELSE IF (IMAG(SJ,1).GT.ZZZ) THEN
02666  M01S02297.panel   +++|            STRGD(SL:SL) = CHAR(IMAG(SJ,1) - ZA + ICHAR('A'))
02667  M01S02298.panel   +++|          ELSE
02668  M01S02299.panel   +++|            STRGD(SL:SL) = CHAR(IMAG(SJ,1) - ZAA + ICHAR('A'))
02669  M01S02300.panel   +++|          ENDIF
02670  M01S02301.panel   +++|          SJ = SJ + 1
02671  M01S02302.panel   +++|          GOTO 100
02672  M01S02303.panel   +++|        ENDIF
02673  M01S02304.panel   +++|        SYMTP = 'I'
02674  M01S02305.panel   +++|        GOTO 9999
02675  M01S02306.panel   +++|C
02676  M01S02307.panel   +++|C       NUMBER
02677  M01S02308.panel   +++|C
02678  M01S02309.panel   +++|C       PLUS OR MINUS
02679  M01S02310.panel   +++|200     CONTINUE
02680  M01S02311.panel   +++|        SIGN = 1
02681  M01S02312.panel   +++|        SINT = 0
02682  M01S02313.panel   +++|        SYMTP = 'N'
02683  M01S02314.panel   +++|        IF(IMAG(SJ,1).EQ.ZPL) THEN
02684  M01S02315.panel   +++|          SL = SL + 1
02685  M01S02316.panel   +++|          STRGD(SL:SL) = '+'
02686  M01S02317.panel   +++|          SJ = SJ + 1
02687  M01S02318.panel   +++|        ELSEIF (IMAG(SJ,1).EQ.ZMI) THEN
02688  M01S02319.panel   +++|          SL = SL + 1
02689  M01S02320.panel   +++|          STRGD(SL:SL) = '-'
02690  M01S02321.panel   +++|          SIGN = -1
02691  M01S02322.panel   +++|          SJ = SJ + 1
02692  M01S02323.panel   +++|        ENDIF
02693  M01S02324.panel   +++|C       DIGITS
02694  M01S02325.panel   +++|210     IF (ISN(IMAG(SJ,1))) THEN
02695  M01S02326.panel   +++|          SL = SL + 1
02696  M01S02327.panel   +++|          STRGD(SL:SL) = CHAR(IMAG(SJ,1) - Z0 + ICHAR('0'))
02697  M01S02328.panel   +++|          SINT = SINT*10 + IMAG(SJ,1) - Z0
02698  M01S02329.panel   +++|          SJ = SJ + 1
02699  M01S02330.panel   +++|          GOTO 210
02700  M01S02331.panel   +++|        ENDIF
02701  M01S02332.panel   +++|        IF (IMAG(SJ,1).NE.ZPD.AND.IMAG(SJ,1).NE.ZE.AND.
02702  M01S02333.panel   +++|     A      IMAG(SJ,1).NE.ZEE) THEN
02703  M01S02334.panel   +++|          SINT = SINT * SIGN
02704  M01S02335.panel   +++|          GOTO 9999
02705  M01S02336.panel   +++|        ENDIF
02706  M01S02337.panel   +++|        SYMTP = 'R'
02707  M01S02338.panel   +++|C       DECIMAL POINT
02708  M01S02339.panel   +++|215     IF (IMAG(SJ,1).EQ.ZPD) THEN
02709  M01S02340.panel   +++|          SL = SL + 1
02710  M01S02341.panel   +++|          STRGD(SL:SL) = '.'
02711  M01S02342.panel   +++|          SJ = SJ + 1
02712  M01S02343.panel   +++|        ENDIF
02713  M01S02344.panel   +++|C       MORE DIGITS
02714  M01S02345.panel   +++|220     IF (ISN(IMAG(SJ,1))) THEN
02715  M01S02346.panel   +++|          SL = SL + 1
02716  M01S02347.panel   +++|          STRGD(SL:SL) = CHAR(IMAG(SJ,1) - Z0 + ICHAR('0'))
02717  M01S02348.panel   +++|          SJ = SJ + 1
02718  M01S02349.panel   +++|          GOTO 220
02719  M01S02350.panel   +++|        ENDIF
02720  M01S02351.panel   +++|C       E
02721  M01S02352.panel   +++|        IF (IMAG(SJ,1).EQ.ZEE.OR.IMAG(SJ,1).EQ.ZE) THEN
02722  M01S02353.panel   +++|          SL = SL + 1
02723  M01S02354.panel   +++|          STRGD(SL:SL) = 'E'
02724  M01S02355.panel   +++|          SJ = SJ + 1
02725  M01S02356.panel   +++|          SYMTP = 'R'
02726  M01S02357.panel   +++|        ENDIF
02727  M01S02358.panel   +++|C       PLUS OR MINUS AGAIN
02728  M01S02359.panel   +++|        IF(IMAG(SJ,1).EQ.ZPL) THEN
02729  M01S02360.panel   +++|          SL = SL + 1
02730  M01S02361.panel   +++|          STRGD(SL:SL) = '+'
02731  M01S02362.panel   +++|          SJ = SJ + 1
02732  M01S02363.panel   +++|        ELSEIF (IMAG(SJ,1).EQ.ZMI) THEN
02733  M01S02364.panel   +++|          SL = SL + 1
02734  M01S02365.panel   +++|          STRGD(SL:SL) = '-'
02735  M01S02366.panel   +++|          SJ = SJ + 1
02736  M01S02367.panel   +++|        ENDIF
02737  M01S02368.panel   +++|C       STILL MORE DIGITS
02738  M01S02369.panel   +++|230     IF (ISN(IMAG(SJ,1))) THEN
02739  M01S02370.panel   +++|          SL = SL + 1
02740  M01S02371.panel   +++|          STRGD(SL:SL) = CHAR(IMAG(SJ,1) - Z0 + ICHAR('0'))
02741  M01S02372.panel   +++|          SJ = SJ + 1
02742  M01S02373.panel   +++|          GOTO 230
02743  M01S02374.panel   +++|        ENDIF
02744  M01S02375.panel   +++|C       GET VALUE
02745  M01S02376.panel   +++|        IF (SYMTP.EQ.'N') THEN
02746  M01S02377.panel   +++|          SINT = SINT * SIGN
02747  M01S02378.panel   +++|        ELSE
02748  M01S02379.panel   +++|          WRITE(FMT,285) SL
02749  M01S02380.panel   +++|285       FORMAT('(F',I2,'.0)')
02750  M01S02381.panel   +++|C         PRINT*,'REAL FORMAT=',FMT,' VALUE=',STRGD(1:SL)
02751  M01S02382.panel   +++|          READ(STRGD(1:SL),FMT,ERR=290) SREALV
02752  M01S02383.panel   +++|C         PRINT 57, SREALV
02753  M01S02384.panel   +++|57        FORMAT(E20.10)
02754  M01S02385.panel   +++|        ENDIF
02755  M01S02386.panel   +++|        GOTO 9999
02756  M01S02387.panel   +++|290     CALL ERROR('Real constant format')
02757  M01S02388.panel   +++|        SREALV = 0.0
02758  M01S02389.panel   +++|        GOTO 9999
02759  M01S02390.panel   +++|C
02760  M01S02391.panel   +++|C       STRING
02761  M01S02392.panel   +++|C
02762  M01S02393.panel   +++|300     CONTINUE
Line S02394 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02763  M02S02394.v23l617 ---|        IF (SJ.GE.133) THEN
02764  M01S00050.v23l617 +++|        IF (SJ.GT.MCOL) THEN
02765  M01S02395.panel   +++|          CALL ERROR('Unterminated string')
02766  M01S02396.panel   +++|          RETURN
02767  M01S02397.panel   +++|        ENDIF
02768  M01S02398.panel   +++|        IF (IMAG(SJ,1).EQ.ZAP) THEN
02769  M01S02399.panel   +++|          SJ = SJ + 1
Line S02400 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
02770  M02S02400.v23l617 ---|          IF (SJ.GE.133) GOTO 300
02771  M01S00051.v23l617 +++|          IF (SJ.GT.MCOL) GOTO 300
02772  M01S02401.panel   +++|          IF (IMAG(SJ,1).EQ.ZAP) THEN
02773  M01S02402.panel   +++|            SL = SL + 1
02774  M01S02403.panel   +++|            STRG(SL) = IMAG(SJ,1)
02775  M01S02404.panel   +++|            SJ = SJ + 1
02776  M01S02405.panel   +++|            GOTO 300
02777  M01S02406.panel   +++|          ENDIF
02778  M01S02407.panel   +++|        ELSE
02779  M01S02408.panel   +++|          SL = SL + 1
02780  M01S02409.panel   +++|          STRG(SL) = IMAG(SJ,1)
02781  M01S02410.panel   +++|          SJ = SJ + 1
02782  M01S02411.panel   +++|          GOTO 300
02783  M01S02412.panel   +++|        ENDIF
02784  M01S02413.panel   +++|        SYMTP = 'S'
02785  M01S02414.panel   +++|9999    CONTINUE
02786  M01S02415.panel   +++|        IF (SYMTP.EQ.'P') THEN
02787  M01S02416.panel   +++|C         PRINT 55, SYMTP, IMAG(SI,1)
02788  M01S02417.panel   +++|55        FORMAT('SCANSYM ',A,' ', O3)
02789  M01S02418.panel   +++|        ELSE
02790  M01S02419.panel   +++|C         PRINT 56, SYMTP, SL, STRGD(1:SL)
02791  M01S02420.panel   +++|56        FORMAT('SCANSYM ',A,' ',I3,' ',A)
02792  M01S02421.panel   +++|        ENDIF
02793  M01S02422.panel   +++|        END
02794  M01S02423.panel   +++|C-------------------------------------------------------------------
02795  M01S02424.panel   +++|C*      SCANTAB - SCAN TABLE DEFINITION
02796  M01S02425.panel   +++|C
02797  M01S02426.panel   +++|        SUBROUTINE SCANTAB
02798  M01S02427.panel   +++|*CALL   COMFPAN
02799  M01S02428.panel   +++|        LOGICAL HAVNAME, HAVDIM
02800  M01S02429.panel   +++|        HAVNAME = .FALSE.
02801  M01S02430.panel   +++|        HAVDIM = .FALSE.
02802  M01S02431.panel   +++|        N = 0
02803  M01S02432.panel   +++|1       CONTINUE
02804  M01S02433.panel   +++|        CALL SCANSYM
02805  M01S02434.panel   +++|        IF (FATAL) RETURN
02806  M01S02435.panel   +++|        IF (ZEQNEXT()) THEN
02807  M01S02436.panel   +++|          IF (UPSYMEQ('NAME').OR.UPSYMEQ('N')) THEN
02808  M01S02437.panel   +++|            I = 1
02809  M01S02438.panel   +++|          ELSE IF (UPSYMEQ('ROWS').OR.UPSYMEQ('R')) THEN
02810  M01S02439.panel   +++|            I = 2
02811  M01S02440.panel   +++|          ELSE
02812  M01S02441.panel   +++|            CALL EXPECT('NAME= or ROWS=','TABLE')
02813  M01S02442.panel   +++|            RETURN
02814  M01S02443.panel   +++|          ENDIF
02815  M01S02444.panel   +++|          CALL SKIPTWO
02816  M01S02445.panel   +++|          IF (FATAL) RETURN
02817  M01S02446.panel   +++|          N = 2
02818  M01S02447.panel   +++|          GOTO (100,200), I
02819  M01S02448.panel   +++|        ELSE
02820  M01S02449.panel   +++|          N = N + 1
02821  M01S02450.panel   +++|          GOTO (100,200), N
02822  M01S02451.panel   +++|          IF (.NOT.HAVNAME) THEN
02823  M01S02452.panel   +++|            CALL ERROR('TABLE name required')
02824  M01S02453.panel   +++|            RETURN
02825  M01S02454.panel   +++|          ENDIF
02826  M01S02455.panel   +++|          IF (.NOT.HAVDIM) THEN
02827  M01S02456.panel   +++|            CALL ERROR('TABLE dimension '//
02828  M01S02457.panel   +++|     A                 'required')
02829  M01S02458.panel   +++|            RETURN
02830  M01S02459.panel   +++|          ENDIF
02831  M01S02460.panel   +++|          CALL CHEKHED(I)
02832  M01S02461.panel   +++|          IF (I.EQ.0) THEN
02833  M01S02462.panel   +++|            CALL ERROR('TABLE parameter')
02834  M01S02463.panel   +++|          ENDIF
02835  M01S02464.panel   +++|          RETURN
02836  M01S02465.panel   +++|        ENDIF
02837  M01S02466.panel   +++|C
02838  M01S02467.panel   +++|C       NAME
02839  M01S02468.panel   +++|C
02840  M01S02469.panel   +++|100     CONTINUE
02841  M01S02470.panel   +++|        IF (SYMTP.NE.'I') THEN
02842  M01S02471.panel   +++|          CALL EXPECT('TABLE name',' ')
02843  M01S02472.panel   +++|          RETURN
02844  M01S02473.panel   +++|        ENDIF
02845  M01S02474.panel   +++|        HAVNAME = .TRUE.
02846  M01S02475.panel   +++|        TABNM(NTAB) = STRGD(1:MIN(7,SL))
02847  M01S02476.panel   +++|        GOTO 1
02848  M01S02477.panel   +++|C
02849  M01S02478.panel   +++|C       ROWS
02850  M01S02479.panel   +++|C
02851  M01S02480.panel   +++|200     CONTINUE
02852  M01S02481.panel   +++|        IF (.NOT.SYMTP.EQ.'N') THEN
02853  M01S02482.panel   +++|          CALL EXPECT('Table dimension',' ')
02854  M01S02483.panel   +++|          RETURN
02855  M01S02484.panel   +++|        ENDIF
02856  M01S02485.panel   +++|        TABD(NTAB) = SINT
02857  M01S02486.panel   +++|        HAVDIM = .TRUE.
02858  M01S02487.panel   +++|        GOTO 1
02859  M01S02488.panel   +++|        END
02860  M01S02489.panel   +++|C-------------------------------------------------------------------
02861  M01S02490.panel   +++|C*      SCANVAR - GET VARIABLE DEFINITION
02862  M01S02491.panel   +++|C
02863  M01S02492.panel   +++|        SUBROUTINE SCANVAR
02864  M01S02493.panel   +++|*CALL   COMFPAN
02865  M01S02494.panel   +++|        LOGICAL HAVENAM
02866  M01S00052.v23l617 +++|        LOGICAL LOOP
02867  M01S02495.panel   +++|        HAVENAM = .FALSE.
02868  M01S02496.panel   +++|        NPARM = 0
02869  M01S02497.panel   +++|1       CONTINUE
02870  M01S02498.panel   +++|        CALL SCANSYM
02871  M01S02499.panel   +++|        IF (FATAL) RETURN
02872  M01S02500.panel   +++|2       CONTINUE
02873  M01S02501.panel   +++|        CALL SCANVKS(I)
02874  M01S02502.panel   +++|        IF (FATAL) RETURN
02875  M01S02503.panel   +++|        IF (I.EQ.0) THEN
02876  M01S02504.panel   +++|          CALL CHEKHED(J)
02877  M01S02505.panel   +++|          IF (FATAL) RETURN
02878  M01S02506.panel   +++|          IF (J.NE.0) THEN
02879  M01S02507.panel   +++|            IF (.NOT.HAVENAM) THEN
02880  M01S02508.panel   +++|              CALL ERROR('VAR name not specified')
02881  M01S02509.panel   +++|              RETURN
02882  M01S02510.panel   +++|            ENDIF
02883  M01S02511.panel   +++|            IF ((VART(NVAR).EQ.VTN.OR.VART(NVAR).EQ.VTR).AND.
02884  M01S02512.panel   +++|     A          (VARP(NVAR).LT.VP9)) THEN
02885  M01S02513.panel   +++|              CALL ERROR('TYPE/FORMAT mismatch in '//
02886  M01S02514.panel   +++|     A                   'preceding VAR')
02887  M01S02515.panel   +++|              RETURN
02888  M01S02516.panel   +++|            ENDIF
02889  M01S02517.panel   +++|            IF (VARP(NVAR).EQ.0) VARP(NVAR) = VPX
02890  M01S02518.panel   +++|            RETURN
02891  M01S02519.panel   +++|          ENDIF
02892  M01S02520.panel   +++|          NPARM = NPARM + 1
02893  M01S02521.panel   +++|          GOTO (100,200,300,400,500,600,
02894  M01S02522.panel   +++|     A          700,800,900,1000,1100), NPARM
02895  M01S02523.panel   +++|          CALL ERROR('Too many VAR parameters')
02896  M01S02524.panel   +++|          RETURN
02897  M01S02525.panel   +++|        ELSE
02898  M01S02526.panel   +++|          NPARM = 11
02899  M01S02527.panel   +++|          GOTO (100,200,300,400,500,600,
02900  M01S02528.panel   +++|     A          700,800,900,1000,1100), I
02901  M01S02529.panel   +++|          CALL ERR('INTERNAL ERROR: VAR KEYWORD')
02902  M01S02530.panel   +++|          RETURN
02903  M01S02531.panel   +++|        ENDIF
02904  M01S02532.panel   +++|C
02905  M01S02533.panel   +++|C       NAME
02906  M01S02534.panel   +++|C
02907  M01S02535.panel   +++|100     CONTINUE
02908  M01S02536.panel   +++|        IF (HAVENAM) THEN
02909  M01S02537.panel   +++|          CALL ERROR('Two VAR names')
02910  M01S02538.panel   +++|          RETURN
02911  M01S02539.panel   +++|        ENDIF
02912  M01S02540.panel   +++|        IF (SYMTP.NE.'I') THEN
02913  M01S02541.panel   +++|          CALL EXPECT('var name','VAR')
02914  M01S02542.panel   +++|          RETURN
02915  M01S02543.panel   +++|        ELSE
02916  M01S02544.panel   +++|          CALL SETVARN
02917  M01S02545.panel   +++|          IF (FATAL) RETURN
02918  M01S02546.panel   +++|        ENDIF
02919  M01S02547.panel   +++|        HAVENAM = .TRUE.
02920  M01S02548.panel   +++|        GOTO 1
02921  M01S02549.panel   +++|C
02922  M01S02550.panel   +++|C       TYPE
02923  M01S02551.panel   +++|C
02924  M01S02552.panel   +++|200     CONTINUE
02925  M01S02553.panel   +++|        IF (UPSYMEQ('CHAR')) THEN
02926  M01S02554.panel   +++|          VART(NVAR) = VTC
02927  M01S02555.panel   +++|          IF (VARP(NVAR).EQ.0) VARP(NVAR) = VPX
02928  M01S02556.panel   +++|        ELSEIF (UPSYMEQ('INT')) THEN
02929  M01S02557.panel   +++|          VART(NVAR) = VTN
02930  M01S02558.panel   +++|          IF (VARP(NVAR).EQ.0) VARP(NVAR) = VPN
02931  M01S02559.panel   +++|        ELSEIF (UPSYMEQ('REAL')) THEN
02932  M01S02560.panel   +++|          VART(NVAR) = VTR
02933  M01S02561.panel   +++|          IF (VARP(NVAR).EQ.0) VARP(NVAR) = VPE
02934  M01S02562.panel   +++|        ELSE
02935  M01S02563.panel   +++|          CALL EXPECT('CHAR, INT, or REAL','TYPE')
02936  M01S02564.panel   +++|          RETURN
02937  M01S02565.panel   +++|        ENDIF
02938  M01S02566.panel   +++|        GOTO 1
02939  M01S02567.panel   +++|C
02940  M01S02568.panel   +++|C       VALUE
02941  M01S02569.panel   +++|C
02942  M01S02570.panel   +++|300     CONTINUE
02943  M01S02571.panel   +++|        CALL SETVARD
02944  M01S02572.panel   +++|        IF (FATAL) RETURN
02945  M01S02573.panel   +++|        GOTO 1
02946  M01S02574.panel   +++|C
02947  M01S02575.panel   +++|C       FORMAT
02948  M01S02576.panel   +++|C
02949  M01S02577.panel   +++|400     CONTINUE
02950  M01S02578.panel   +++|        CALL CHEKPIC(I)
02951  M01S02579.panel   +++|        IF (I.EQ.0) THEN
Line S02580 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
02952  M02S02580.243l647 ---|          CALL EXPECT('X, A, 9, N, E, or $','FORMAT')
02953  M01S00090.243l647 +++|          CALL EXPECT('X, A, 9, N, E, $, YMD, MDY, or DMY','FORMAT')
02954  M01S02581.panel   +++|          RETURN
02955  M01S02582.panel   +++|        ENDIF
02956  M01S02583.panel   +++|        VARP(NVAR) = I
02957  M01S02584.panel   +++|        GOTO 1
02958  M01S02585.panel   +++|C
02959  M01S02586.panel   +++|C       MATCH
02960  M01S02587.panel   +++|C
02961  M01S02588.panel   +++|500     CONTINUE
02962  M01S02589.panel   +++|        CALL SCANCAS
02963  M01S02590.panel   +++|        IF (FATAL) RETURN
02964  M01S02591.panel   +++|        GOTO 1
02965  M01S02592.panel   +++|C
02966  M01S02593.panel   +++|C       LOGICAL
02967  M01S02594.panel   +++|C
02968  M01S02595.panel   +++|800     CONTINUE
02969  M01S00014.ns2315  +++|
02970  M01S00015.ns2315  +++|* RESET DEFAULT LOGICAL ATTRIBUTES FLAG.
02971  M01S00016.ns2315  +++|
02972  M01S00017.ns2315  +++|        DEFLOGA = .FALSE.
02973  M01S02596.panel   +++|        CALL SCANVAT(1)
02974  M01S02597.panel   +++|        IF (FATAL) RETURN
02975  M01S02598.panel   +++|        GOTO 1
02976  M01S02599.panel   +++|C
02977  M01S02600.panel   +++|C       PHYSICAL
02978  M01S02601.panel   +++|C
02979  M01S02602.panel   +++|700     CONTINUE
02980  M01S02603.panel   +++|        CALL SCANVAT(0)
02981  M01S02604.panel   +++|        IF (FATAL) RETURN
02982  M01S02605.panel   +++|        GOTO 1
02983  M01S02606.panel   +++|C
02984  M01S02607.panel   +++|C       RANGE
02985  M01S02608.panel   +++|C
02986  M01S02609.panel   +++|600     CALL SCANRNG
02987  M01S02610.panel   +++|        IF (FATAL) RETURN
02988  M01S02611.panel   +++|        GOTO 1
02989  M01S02612.panel   +++|C
02990  M01S02613.panel   +++|C       ENTRY
02991  M01S02614.panel   +++|C
02992  M01S02615.panel   +++|900     CONTINUE
02993  M01S02616.panel   +++|        CALL SCANMUS
02994  M01S02617.panel   +++|        IF (FATAL) RETURN
02995  M01S02618.panel   +++|        GOTO 1
02996  M01S02619.panel   +++|C
02997  M01S02620.panel   +++|C       IO
02998  M01S02621.panel   +++|C
02999  M01S02622.panel   +++|1000    CONTINUE
Line S02623 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03000  M02S02623.v23l617 ---|        CALL NEWVAT
Line S02624 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03001  M02S02624.v23l617 ---|        IF (FATAL) RETURN
Line S02625 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03002  M02S02625.v23l617 ---|        IF (UPSYMEQ('IN')) THEN
Line S02626 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03003  M02S02626.v23l617 ---|          VAIO(NVAR) = 1
Line S02627 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03004  M02S02627.v23l617 ---|        ELSEIF (UPSYMEQ('OUT')) THEN
Line S02628 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03005  M02S02628.v23l617 ---|          VAIO(NVAR) = 2
Line S02629 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03006  M02S02629.v23l617 ---|        ELSE
Line S02630 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03007  M02S02630.v23l617 ---|          CALL EXPECT('IN or OUT','IO=')
Line S02631 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03008  M02S02631.v23l617 ---|          RETURN
Line S02632 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03009  M02S02632.v23l617 ---|        ENDIF
03010  M01S00053.v23l617 +++|        IO = 0
03011  M01S00054.v23l617 +++|        IF (.NOT.SYMEQ('(')) THEN
03012  M01S00055.v23l617 +++|          LOOP = .FALSE.
03013  M01S00056.v23l617 +++|          GOTO 1002
03014  M01S00057.v23l617 +++|        ELSE
03015  M01S00058.v23l617 +++|          LOOP = .TRUE.
03016  M01S00059.v23l617 +++|        ENDIF
03017  M01S00060.v23l617 +++|1001    CONTINUE
03018  M01S00061.v23l617 +++|        CALL SCANSYM
03019  M01S00062.v23l617 +++|        IF (FATAL) RETURN
03020  M01S00063.v23l617 +++|        IF (SYMEQ(')')) GOTO 1003
03021  M01S00064.v23l617 +++|1002    CONTINUE
03022  M01S00065.v23l617 +++|        IF (UPSYMEQ('IN')) THEN
03023  M01S00066.v23l617 +++|          IO = IO.OR.1
03024  M01S00067.v23l617 +++|        ELSEIF (UPSYMEQ('OUT')) THEN
03025  M01S00068.v23l617 +++|          IO = IO.OR.2
03026  M01S00069.v23l617 +++|        ELSE
03027  M01S00070.v23l617 +++|          CALL EXPECT('IN or OUT','IO=')
03028  M01S00071.v23l617 +++|          RETURN
03029  M01S00072.v23l617 +++|        ENDIF
03030  M01S00073.v23l617 +++|        IF (LOOP) GOTO 1001
03031  M01S00074.v23l617 +++|1003    CONTINUE
03032  M01S00075.v23l617 +++|        IF (IO.EQ.3.OR.IO.EQ.0) GOTO 1
03033  M01S00076.v23l617 +++|        CALL NEWVAT
03034  M01S00077.v23l617 +++|        IF (FATAL) RETURN
03035  M01S00078.v23l617 +++|        VAIO(NVAR) = IO
03036  M01S02633.panel   +++|        ATIO(NATR) = VAIO(NVAR)
03037  M01S02634.panel   +++|        GOTO 1
03038  M01S02635.panel   +++|C
03039  M01S02636.panel   +++|C         HELP
03040  M01S02637.panel   +++|C
03041  M01S02638.panel   +++|1100    CONTINUE
03042  M01S02639.panel   +++|        IF (SYMTP.NE.'S') THEN
03043  M01S02640.panel   +++|          CALL EXPECT('string','HELP')
03044  M01S02641.panel   +++|          RETURN
03045  M01S02642.panel   +++|        ENDIF
03046  M01S02643.panel   +++|        SAVV = NVAL + 1
Line S02644 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03047  M02S02644.v23l617 ---|        SL = MIN(80,SL)
03048  M01S00079.v23l617 +++|        SL = MIN(159,SL)
03049  M01S02645.panel   +++|        CALL COPYSYM
03050  M01S02646.panel   +++|        IF (FATAL) RETURN
03051  M01S02647.panel   +++|        VARH(NVAR) = SAVV
03052  M01S02648.panel   +++|        MSGL = MAX(MSGL,SL)
03053  M01S02649.panel   +++|        MSGX = MIN(39,80-MSGL)
03054  M01S02650.panel   +++|        GOTO 1
03055  M01S02651.panel   +++|        END
03056  M01S02652.panel   +++|C-------------------------------------------------------------------
03057  M01S02653.panel   +++|C*      SCANVAT - SCAN VAR ATTRIBUTE
03058  M01S02654.panel   +++|C
03059  M01S02655.panel   +++|C       ENTRY   LOG=1 IF LOGICAL ATTRIBUTES, 0 IF PHYSICAL
03060  M01S02656.panel   +++|C
03061  M01S02657.panel   +++|        SUBROUTINE SCANVAT(LOG)
03062  M01S02658.panel   +++|*CALL   COMFPAN
03063  M01S02659.panel   +++|        INTEGER LOG
03064  M01S02660.panel   +++|        CALL NEWVAT
03065  M01S02661.panel   +++|        IF (FATAL) RETURN
03066  M01S02662.panel   +++|        CALL SCANLPA(LOG)
03067  M01S02663.panel   +++|        END
03068  M01S02664.panel   +++|C-------------------------------------------------------------------
03069  M01S02665.panel   +++|C*      SCANVIO - SCAN VAR IN OR OUT
03070  M01S02666.panel   +++|C
03071  M01S02667.panel   +++|C       ENTRY   IO = 1=IN ONLY, 2=OUT ONLY
03072  M01S02668.panel   +++|C
03073  M01S02669.panel   +++|        SUBROUTINE SCANVIO(IO)
03074  M01S02670.panel   +++|*CALL   COMFPAN
03075  M01S02671.panel   +++|        INTEGER IO
03076  M01S02672.panel   +++|        CALL SCANSYM
03077  M01S02673.panel   +++|        IF (FATAL) RETURN
03078  M01S02674.panel   +++|        IF (UPSYMEQ('ONLY')) THEN
03079  M01S02675.panel   +++|          CALL SCANSYM
03080  M01S02676.panel   +++|          IF (FATAL) RETURN
03081  M01S02677.panel   +++|        ENDIF
03082  M01S02678.panel   +++|        END
03083  M01S02679.panel   +++|C-------------------------------------------------------------------
03084  M01S02680.panel   +++|C*      SCANVKS - SCAN VAR KEYWORDS
03085  M01S02681.panel   +++|C
03086  M01S02682.panel   +++|C       EXIT    I=KEYWORD ORDINAL OR 0 IF NOT
03087  M01S02683.panel   +++|C               CURRENT SYM ADVANCED PAST KEYWORD= IF I.NE.0
03088  M01S02684.panel   +++|C
03089  M01S02685.panel   +++|        SUBROUTINE SCANVKS(I)
03090  M01S02686.panel   +++|*CALL   COMFPAN
03091  M01S02687.panel   +++|        INTEGER I
03092  M01S02688.panel   +++|        I = 0
03093  M01S02689.panel   +++|        IF (.NOT.ZEQNEXT()) RETURN
03094  M01S02690.panel   +++|        IF (UPSYMEQ('NAME').OR.UPSYMEQ('N')) THEN
03095  M01S02691.panel   +++|          I = 1
03096  M01S02692.panel   +++|        ELSEIF (UPSYMEQ('TYPE').OR.UPSYMEQ('T')) THEN
03097  M01S02693.panel   +++|          I = 2
03098  M01S02694.panel   +++|        ELSEIF (UPSYMEQ('VALUE').OR.UPSYMEQ('V')) THEN
03099  M01S02695.panel   +++|          I = 3
03100  M01S02696.panel   +++|        ELSEIF (UPSYMEQ('FORMAT').OR.UPSYMEQ('F')) THEN
03101  M01S02697.panel   +++|          I = 4
03102  M01S02698.panel   +++|        ELSEIF (UPSYMEQ('MATCH').OR.UPSYMEQ('M')) THEN
03103  M01S02699.panel   +++|          I = 5
03104  M01S02700.panel   +++|        ELSEIF (UPSYMEQ('RANGE').OR.UPSYMEQ('R')) THEN
03105  M01S02701.panel   +++|          I = 6
03106  M01S02702.panel   +++|        ELSEIF (UPSYMEQ('PHYSICAL').OR.UPSYMEQ('P')) THEN
03107  M01S02703.panel   +++|          I = 7
03108  M01S02704.panel   +++|        ELSEIF (UPSYMEQ('LOGICAL').OR.UPSYMEQ('L')) THEN
03109  M01S02705.panel   +++|          I = 8
03110  M01S02706.panel   +++|        ELSEIF (UPSYMEQ('ENTRY').OR.UPSYMEQ('E')) THEN
03111  M01S02707.panel   +++|          I = 9
03112  M01S02708.panel   +++|        ELSEIF (UPSYMEQ('IO').OR.UPSYMEQ('I')) THEN
03113  M01S02709.panel   +++|          I = 10
03114  M01S02710.panel   +++|        ELSEIF (UPSYMEQ('HELP').OR.UPSYMEQ('H')) THEN
03115  M01S02711.panel   +++|          I = 11
03116  M01S02712.panel   +++|        ENDIF
03117  M01S02713.panel   +++|        IF (I.EQ.0) THEN
03118  M01S02714.panel   +++|          CALL ERROR('Unknown keyword')
03119  M01S02715.panel   +++|          RETURN
03120  M01S02716.panel   +++|        ELSE
03121  M01S02717.panel   +++|          CALL SKIPTWO
03122  M01S02718.panel   +++|        ENDIF
03123  M01S02719.panel   +++|        END
03124  M01S02720.panel   +++|C-------------------------------------------------------------------
03125  M01S02721.panel   +++|C       SETATR - SET ATTRIBUTE
03126  M01S02722.panel   +++|C
03127  M01S02723.panel   +++|C       ENTRY   LP = 1=LOGICAL, 0=PHYSICAL
Line S02724 Modification History
M01 (Added by) panel
M02 (Updated by) ns2315
Seq #  *Modification Id* Act 
----------------------------+
03128  M02S02724.ns2315  ---|C               I = 1,2,... PARALLEL USE IN CHEKATR
03129  M01S00018.ns2315  +++|C               I = 0,1,2,... PARALLEL USE IN CHEKATR
03130  M01S02725.panel   +++|C
03131  M01S02726.panel   +++|        SUBROUTINE SETATR(LP,I)
03132  M01S02727.panel   +++|*CALL   COMFPAN
03133  M01S02728.panel   +++|        INTEGER LP, I
03134  M01S02729.panel   +++|C       PRINT 56, LP, I
03135  M01S02730.panel   +++|56      FORMAT('SETATR, LP=',I1,' I=',I2)
03136  M01S02731.panel   +++|        ATRLP(NATR) = CHAR(LP + ICHAR('0'))
03137  M01S00019.ns2315  +++|        IF (I .EQ. 0) THEN
03138  M01S00020.ns2315  +++|          ATTP(NATR) = I
03139  M01S00021.ns2315  +++|          RETURN
03140  M01S00022.ns2315  +++|        ENDIF
03141  M01S02732.panel   +++|        GOTO (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17), I
03142  M01S02733.panel   +++|        RETURN
03143  M01S02734.panel   +++|1       CONTINUE
03144  M01S02735.panel   +++|2       CONTINUE
03145  M01S02736.panel   +++|3       CONTINUE
03146  M01S02737.panel   +++|4       CONTINUE
03147  M01S02738.panel   +++|5       CONTINUE
03148  M01S02739.panel   +++|        ATTP(NATR) = I
03149  M01S02740.panel   +++|        RETURN
Line S02741 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03150  M02S02741.243l647 ---|6       ATRBL(NATR) = '1'
Line S02742 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03151  M02S02742.243l647 ---|        RETURN
Line S02743 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03152  M02S02743.243l647 ---|7       ATRIV(NATR) = '1'
Line S02744 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03153  M02S02744.243l647 ---|        RETURN
Line S02745 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03154  M02S02745.243l647 ---|8       ATRUL(NATR) = '1'
Line S02746 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03155  M02S02746.243l647 ---|        RETURN
Line S02747 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03156  M02S02747.243l647 ---|9       ATRAI(NATR) = '1'
Line S02748 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03157  M02S02748.243l647 ---|        RETURN
Line S02749 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03158  M02S02749.243l647 ---|10      CONTINUE
Line S02750 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03159  M02S02750.243l647 ---|11      CONTINUE
03160  M01S00091.243l647 +++|6       IF (LP.EQ.0) THEN
03161  M01S00092.243l647 +++|          ATRBL(NATR) = '1'
03162  M01S00093.243l647 +++|        ELSE
03163  M01S00094.243l647 +++|          ATTP(NATR) = I
03164  M01S00095.243l647 +++|        ENDIF
03165  M01S00096.243l647 +++|        RETURN
03166  M01S00097.243l647 +++|7       IF (LP.EQ.0) THEN
03167  M01S00098.243l647 +++|          ATRIV(NATR) = '1'
03168  M01S00099.243l647 +++|        ELSE
03169  M01S00100.243l647 +++|          ATTP(NATR) = I
03170  M01S00101.243l647 +++|        ENDIF
03171  M01S00102.243l647 +++|        RETURN
03172  M01S00103.243l647 +++|8       IF (LP.EQ.0) THEN
03173  M01S00104.243l647 +++|          ATRUL(NATR) = '1'
03174  M01S00105.243l647 +++|        ELSE
03175  M01S00106.243l647 +++|          ATTP(NATR) = I
03176  M01S00107.243l647 +++|        ENDIF
03177  M01S00108.243l647 +++|        RETURN
03178  M01S00109.243l647 +++|9       IF (LP.EQ.0) THEN
03179  M01S00110.243l647 +++|          ATRAI(NATR) = '1'
03180  M01S00111.243l647 +++|        ELSE
03181  M01S00112.243l647 +++|          ATTP(NATR) = I
03182  M01S00113.243l647 +++|        ENDIF
03183  M01S00114.243l647 +++|        RETURN
03184  M01S00115.243l647 +++|10      CONTINUE
03185  M01S00116.243l647 +++|11      CONTINUE
03186  M01S00117.243l647 +++|        ATTP(NATR) = I
03187  M01S00118.243l647 +++|        RETURN
03188  M01S02751.panel   +++|12      CONTINUE
03189  M01S02752.panel   +++|13      CONTINUE
03190  M01S02753.panel   +++|14      CONTINUE
03191  M01S02754.panel   +++|15      CONTINUE
03192  M01S02755.panel   +++|16      CONTINUE
03193  M01S02756.panel   +++|17      CONTINUE
Line S02757 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03194  M02S02757.243l647 ---|        ATFC(NATR) = I - 10
03195  M01S02758.panel   +++|        RETURN
03196  M01S02759.panel   +++|        END
03197  M01S02760.panel   +++|C-------------------------------------------------------------------
03198  M01S02761.panel   +++|C*      SETVARD - SET VARIABLE DEFAULT VALUE
03199  M01S02762.panel   +++|C
03200  M01S02763.panel   +++|        SUBROUTINE SETVARD
03201  M01S02764.panel   +++|*CALL   COMFPAN
03202  M01S02765.panel   +++|        INTEGER SAVV
03203  M01S02766.panel   +++|        IF ((SYMTP.EQ.'S'.AND.VART(NVAR).EQ.VTC).OR.
03204  M01S02767.panel   +++|     A      (SYMTP.EQ.'N'.AND.VART(NVAR).EQ.VTN).OR.
03205  M01S02768.panel   +++|     B      (SYMTP.EQ.'R'.AND.VART(NVAR).EQ.VTR)) THEN
03206  M01S02769.panel   +++|          IF (SYMTP.EQ.'I') THEN
03207  M01S02770.panel   +++|            CALL EXPECT('constant','=')
03208  M01S02771.panel   +++|            RETURN
03209  M01S02772.panel   +++|          ENDIF
03210  M01S02773.panel   +++|          SAVV = NVAL + 1
03211  M01S02774.panel   +++|          CALL COPYSYM
03212  M01S02775.panel   +++|          IF (FATAL) RETURN
03213  M01S02776.panel   +++|          VARD(NVAR) = SAVV
03214  M01S02777.panel   +++|        ELSE
03215  M01S02778.panel   +++|          CALL ERROR('Value type mismatch')
03216  M01S02779.panel   +++|        ENDIF
03217  M01S02780.panel   +++|        END
03218  M01S02781.panel   +++|C-------------------------------------------------------------------
03219  M01S02782.panel   +++|C*      SETVARN - SET VAR NAME IN ARRAY
03220  M01S02783.panel   +++|C
03221  M01S02784.panel   +++|        SUBROUTINE SETVARN
03222  M01S02785.panel   +++|*CALL   COMFPAN
03223  M01S02786.panel   +++|        CHARACTER*7 NAME
03224  M01S02787.panel   +++|        CHARACTER*40 ES
03225  M01S02788.panel   +++|        CALL NEWVAR
03226  M01S02789.panel   +++|        IF (FATAL) RETURN
03227  M01S02790.panel   +++|        NAME = STRGD(1:MIN(SL,7))
03228  M01S02791.panel   +++|        VARNM(NVAR) = NAME
03229  M01S02792.panel   +++|        I = 1
03230  M01S02793.panel   +++|1       IF (VARNM(I).NE.NAME) THEN
03231  M01S02794.panel   +++|          I = I + 1
03232  M01S02795.panel   +++|          GOTO 1
03233  M01S02796.panel   +++|        ENDIF
03234  M01S02797.panel   +++|        IF (I.NE.NVAR) THEN
03235  M01S02798.panel   +++|          CALL ERROR('VAR declared twice')
03236  M01S02799.panel   +++|          NVAR = NVAR - 1
03237  M01S02800.panel   +++|        ENDIF
03238  M01S02801.panel   +++|        END
03239  M01S02802.panel   +++|C-------------------------------------------------------------------
03240  M01S02803.panel   +++|C*      SKIPHED - SKIP TO HEAD
03241  M01S02804.panel   +++|C
03242  M01S02805.panel   +++|        SUBROUTINE SKIPHED
03243  M01S02806.panel   +++|*CALL   COMFPAN
03244  M01S02807.panel   +++|1       CONTINUE
03245  M01S02808.panel   +++|        CALL CHEKHED(I)
03246  M01S02809.panel   +++|        IF (I.NE.0) RETURN
03247  M01S02810.panel   +++|        CALL SCANSYM
03248  M01S02811.panel   +++|        GOTO 1
03249  M01S02812.panel   +++|        END
03250  M01S02813.panel   +++|C-------------------------------------------------------------------
03251  M01S02814.panel   +++|C*      SKIPTWO - SKIP TWO SYMBOLS
03252  M01S02815.panel   +++|C
03253  M01S02816.panel   +++|        SUBROUTINE SKIPTWO
03254  M01S02817.panel   +++|*CALL   COMFPAN
03255  M01S02818.panel   +++|        CALL SCANSYM
03256  M01S02819.panel   +++|        IF (FATAL) RETURN
03257  M01S02820.panel   +++|        CALL SCANSYM
03258  M01S02821.panel   +++|        END
03259  M01S02822.panel   +++|C-------------------------------------------------------------------
03260  M01S02823.panel   +++|C*      SLEN - STRING LENGTH (INTEGER)
03261  M01S02824.panel   +++|C
03262  M01S02825.panel   +++|      FUNCTION SLEN(S,L)
03263  M01S02826.panel   +++|*CALL   COMFPAN
03264  M01S02827.panel   +++|      INTEGER L
03265  M01S02828.panel   +++|      CHARACTER*(*) S
03266  M01S02829.panel   +++|      CHARACTER*1 C
03267  M01S02830.panel   +++|      I = 1
03268  M01S02831.panel   +++|      J = 0
03269  M01S02832.panel   +++|1     CONTINUE
03270  M01S02833.panel   +++|      C = S(I:I)
03271  M01S02834.panel   +++|      IF (C.EQ.';.OR.C.EQ.';) THEN
03272  M01S02835.panel   +++|        I = I + 1
03273  M01S02836.panel   +++|      ENDIF
03274  M01S02837.panel   +++|      J = J + 1
03275  M01S02838.panel   +++|      I = I + 1
03276  M01S02839.panel   +++|      IF (I.LE.L) GOTO 1
03277  M01S02840.panel   +++|      SLEN = J
03278  M01S02841.panel   +++|      END
03279  M01S02842.panel   +++|C-------------------------------------------------------------------
03280  M01S02843.panel   +++|C*      SPP - SCAN PROGRAM PARAMETERS
03281  M01S02844.panel   +++|C
03282  M01S02845.panel   +++|        SUBROUTINE SPP
03283  M01S02846.panel   +++|*CALL   COMFPAN
Line S02847 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03284  M02S02847.243l647 ---|        CHARACTER*7 KEYWORD, VALUE
Line S02848 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03285  M02S02848.243l647 ---|        CHARACTER*7 PANEL, LIST, COMPASS
Line S02849 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03286  M02S02849.243l647 ---|        PANEL = 'PANEL'
Line S02850 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03287  M02S02850.243l647 ---|        LIST = 'OUTPUT'
Line S02851 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03288  M02S02851.243l647 ---|        COMPASS = 'COMPILE'
03289  M01S00119.243l647 +++|*                            GETPARM KEYWORD PARAMETER
03290  M01S00120.243l647 +++|        CHARACTER*7 KEYWORD
03291  M01S00121.243l647 +++|*                            GETPARM RETURN VALUE
03292  M01S00122.243l647 +++|        CHARACTER*7 VALUE
03293  M01S00123.243l647 +++|*                            FILE NAME OF PANEL
03294  M01S00124.243l647 +++|        CHARACTER*7 PANEL
03295  M01S00125.243l647 +++|*                            LIST FILE NAME
03296  M01S00126.243l647 +++|        CHARACTER*7 LIST
03297  M01S00127.243l647 +++|*                            CAPSULE SOURCE FILE NAME
03298  M01S00128.243l647 +++|        CHARACTER*7 COMPASS
03299  M01S00129.243l647 +++|*                            NULL FILE FLAG
03300  M01S00130.243l647 +++|        LOGICAL  NULLFIL
03301  M01S00131.243l647 +++|        DATA  PANEL   / 'PANEL' /
03302  M01S00132.243l647 +++|        DATA  LIST    / 'OUTPUT' /
03303  M01S00133.243l647 +++|        DATA  COMPASS / 'COMPASS' /
03304  M01S00134.243l647 +++|        DATA  NULLFIL / .FALSE. /
03305  M01S00135.243l647 +++|
03306  M01S00136.243l647 +++|* GET PARAMETERS FROM EXECUTION STATEMENT.
03307  M01S00137.243l647 +++|
03308  M01S02852.panel   +++|1       CALL GETPARM(KEYWORD,VALUE,I)
03309  M01S02853.panel   +++|        IF (I.EQ.-1) THEN
03310  M01S02854.panel   +++|          OPEN(1,ERR=10,FILE=PANEL,STATUS='OLD',RECL=266)
Line S02855 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03311  M02S02855.243l647 ---|          OPEN(2,ERR=20,FILE=LIST,STATUS='UNKNOWN',RECL=266)
03312  M01S00138.243l647 +++|          IF (.NOT.NULLFIL) THEN
03313  M01S00139.243l647 +++|            OPEN(2,ERR=20,FILE=LIST,STATUS='UNKNOWN',RECL=266)
03314  M01S00140.243l647 +++|          ELSE
03315  M01S00141.243l647 +++|            OPEN(2,ERR=20,STATUS='SCRATCH',RECL=266)
03316  M01S00142.243l647 +++|          ENDIF
03317  M01S02856.panel   +++|          OPEN(3,ERR=30,FILE=COMPASS,STATUS='UNKNOWN',RECL=80)
03318  M01S02857.panel   +++|          REWIND 1
03319  M01S02858.panel   +++|          PNAME = PANEL
03320  M01S02859.panel   +++|          REWIND 2
03321  M01S02860.panel   +++|          REWIND 3
03322  M01S02861.panel   +++|          RETURN
03323  M01S02862.panel   +++|10        CALL QUITS('CAN''T OPEN FILE '//PANEL)
03324  M01S02863.panel   +++|20        CALL QUITS('CAN''T OPEN FILE '//LIST)
03325  M01S02864.panel   +++|30        CALL QUITS('CAN''T OPEN FILE '//COMPASS)
03326  M01S02865.panel   +++|        ENDIF
03327  M01S02866.panel   +++|        IF (KEYWORD.EQ.'I') THEN
03328  M01S02867.panel   +++|          IF (I.EQ.0) PANEL = VALUE
03329  M01S02868.panel   +++|          PNAME = PANEL
03330  M01S02869.panel   +++|          GOTO 1
03331  M01S02870.panel   +++|        ELSE IF (KEYWORD.EQ.'L') THEN
Line S02871 Modification History
M01 (Added by) panel
M02 (Updated by) 243l647
Seq #  *Modification Id* Act 
----------------------------+
03332  M02S02871.243l647 ---|          IF (I.EQ.0) LIST = VALUE
03333  M01S00143.243l647 +++|          IF (I.EQ.0) THEN
03334  M01S00144.243l647 +++|            IF (VALUE .EQ. '0') THEN
03335  M01S00145.243l647 +++|              NULLFIL = .TRUE.
03336  M01S00146.243l647 +++|            ELSE
03337  M01S00147.243l647 +++|              LIST = VALUE
03338  M01S00148.243l647 +++|            ENDIF
03339  M01S00149.243l647 +++|          ENDIF
03340  M01S02872.panel   +++|          GOTO 1
03341  M01S02873.panel   +++|        ELSE IF (KEYWORD.EQ.'C') THEN
03342  M01S02874.panel   +++|          IF (I.EQ.0) COMPASS = VALUE
03343  M01S02875.panel   +++|          GOTO 1
03344  M01S02876.panel   +++|        ELSE
03345  M01S02877.panel   +++|          CALL QUITS('UNRECOGNIZED PARAMETER '//KEYWORD)
03346  M01S02878.panel   +++|        ENDIF
03347  M01S02879.panel   +++|        END
03348  M01S02880.panel   +++|C-------------------------------------------------------------------
03349  M01S02881.panel   +++|C*      SYMEQ - SYMBOL EQUAL TO ARGUMENT
03350  M01S02882.panel   +++|C
03351  M01S02883.panel   +++|C       ENTRY
03352  M01S02884.panel   +++|C               S = SINGLE DISPLAY CODE CHAR TO COMPARE TO SYMBOL
03353  M01S02885.panel   +++|C
03354  M01S02886.panel   +++|        LOGICAL FUNCTION SYMEQ(S)
03355  M01S02887.panel   +++|*CALL   COMFPAN
03356  M01S02888.panel   +++|        CHARACTER*(1) S
03357  M01S02889.panel   +++|        SYMEQ = X612TA(ICHAR(S)).EQ.IMAG(SI,1).AND.SL.EQ.1
03358  M01S02890.panel   +++|        END
03359  M01S02891.panel   +++|C-------------------------------------------------------------------
03360  M01S02892.panel   +++|C*      UPSYMEQ - .TRUE. IFF UPPER CASE OF CURRENT SYM .EQ. S
03361  M01S02893.panel   +++|C
03362  M01S02894.panel   +++|        LOGICAL FUNCTION UPSYMEQ(S)
Line S02895 Modification History
M01 (Added by) panel
M02 (Updated by) ns2473
Seq #  *Modification Id* Act 
----------------------------+
03363  M02S02895.ns2473  ---|*CALL COMFPAN
03364  M01S00012.ns2473  +++|*CALL   COMFPAN
03365  M01S02896.panel   +++|        CHARACTER*(*) S
03366  M01S02897.panel   +++|        J = 0
03367  M01S02898.panel   +++|        UPSYMEQ = .FALSE.
03368  M01S02899.panel   +++|        IF (SYMTP.EQ.'I'.AND.LEN(S).EQ.SL.AND.S.EQ.STRGD(1:SL))
03369  M01S02900.panel   +++|     A      UPSYMEQ = .TRUE.
03370  M01S02901.panel   +++|        END
03371  M01S02902.panel   +++|C-------------------------------------------------------------------
03372  M01S02903.panel   +++|C*      VFDN - VFD NUMBER
03373  M01S02904.panel   +++|C
03374  M01S02905.panel   +++|        SUBROUTINE VFDN(S,N)
03375  M01S02906.panel   +++|*CALL   COMFPAN
03376  M01S02907.panel   +++|        CHARACTER*(*) S
03377  M01S02908.panel   +++|        INTEGER N
03378  M01S02909.panel   +++|        IF (N.LT.0) THEN
03379  M01S02910.panel   +++|          WRITE(3,200) S, -N
03380  M01S02911.panel   +++|200       FORMAT(T10,'VFD',T16,A,'-',I4.4)
03381  M01S02912.panel   +++|        ELSE
03382  M01S02913.panel   +++|          WRITE(3,100) S, N
03383  M01S02914.panel   +++|100       FORMAT(T10,'VFD',T16,A, I4.4)
03384  M01S02915.panel   +++|        ENDIF
03385  M01S02916.panel   +++|        END
03386  M01S02917.panel   +++|C-------------------------------------------------------------------
03387  M01S02918.panel   +++|C*      VFDIF - VFD IF B TRUE
03388  M01S02919.panel   +++|C
03389  M01S02920.panel   +++|      SUBROUTINE VFDIF(S1,B,S2)
03390  M01S02921.panel   +++|*CALL   COMFPAN
03391  M01S02922.panel   +++|      CHARACTER*(*) S1,S2
03392  M01S02923.panel   +++|      CHARACTER*40 S
03393  M01S02924.panel   +++|      IF (B.NE.0) THEN
03394  M01S02925.panel   +++|        S = S1//S2
03395  M01S02926.panel   +++|        CALL VFD(S)
03396  M01S02927.panel   +++|      ELSE
03397  M01S02928.panel   +++|        S = S1//'0'
03398  M01S02929.panel   +++|        CALL VFD(S)
03399  M01S02930.panel   +++|      ENDIF
03400  M01S02931.panel   +++|      END
03401  M01S02932.panel   +++|C-------------------------------------------------------------------
03402  M01S02933.panel   +++|C*      VFD - VFD STRING
03403  M01S02934.panel   +++|C
03404  M01S02935.panel   +++|        SUBROUTINE VFD(S)
03405  M01S02936.panel   +++|*CALL   COMFPAN
03406  M01S02937.panel   +++|        CHARACTER*(*) S
03407  M01S02938.panel   +++|        WRITE(3,100) S
03408  M01S02939.panel   +++|100     FORMAT(T10,'VFD',T16,A)
03409  M01S02940.panel   +++|        END
03410  M01S02941.panel   +++|C-------------------------------------------------------------------
03411  M01S02942.panel   +++|C*      VFDO    - VFD OCTAL WORD
03412  M01S02943.panel   +++|C
03413  M01S02944.panel   +++|        SUBROUTINE VFDO(S,W)
03414  M01S02945.panel   +++|*CALL   COMFPAN
03415  M01S02946.panel   +++|        CHARACTER*(*) S
03416  M01S02947.panel   +++|        INTEGER W
03417  M01S02948.panel   +++|        WRITE(3,100) S, W
03418  M01S02949.panel   +++|100     FORMAT(T10,'VFD',T16,A,O20,'B')
03419  M01S02950.panel   +++|        END
03420  M01S02951.panel   +++|C-------------------------------------------------------------------
03421  M01S02952.panel   +++|C*      VFDO2 - VFD INTEGER AS OCTAL 2
03422  M01S02953.panel   +++|C
03423  M01S02954.panel   +++|        SUBROUTINE VFDO2(S,I)
03424  M01S02955.panel   +++|*CALL   COMFPAN
03425  M01S02956.panel   +++|        CHARACTER*(*) S
03426  M01S02957.panel   +++|        INTEGER I
03427  M01S02958.panel   +++|        WRITE(3,100) S, I
03428  M01S02959.panel   +++|100     FORMAT(T10,'VFD',T16,A,O2)
03429  M01S02960.panel   +++|        END
03430  M01S02961.panel   +++|C-------------------------------------------------------------------
03431  M01S02962.panel   +++|C*      VFDB - VFD LOGICAL (1 0R 0)
03432  M01S02963.panel   +++|C
03433  M01S02964.panel   +++|        SUBROUTINE VFDB(B)
03434  M01S02965.panel   +++|*CALL   COMFPAN
03435  M01S02966.panel   +++|        INTEGER B
03436  M01S02967.panel   +++|        IF (B.NE.0) THEN
03437  M01S02968.panel   +++|          CALL VFD('1/1')
03438  M01S02969.panel   +++|        ELSE
03439  M01S02970.panel   +++|          CALL VFD('1/0')
03440  M01S02971.panel   +++|        ENDIF
03441  M01S02972.panel   +++|        END
03442  M01S02973.panel   +++|C*      XLINE - XLATE LINE FROM 6/12 TO ASCII
03443  M01S02974.panel   +++|C
03444  M01S02975.panel   +++|        SUBROUTINE XLINE(LNO)
03445  M01S02976.panel   +++|*CALL   COMFPAN
03446  M01S02977.panel   +++|        INTEGER LNO
03447  M01S02978.panel   +++|        N = 0
Line S02979 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03448  M02S02979.v23l617 ---|        DO 200 I = 1,132
03449  M01S00080.v23l617 +++|        DO 200 I = 1,MCOL
03450  M01S02980.panel   +++|          N = N + 1
03451  M01S02981.panel   +++|          J = 0
03452  M01S02982.panel   +++|          IF (LINE(N:N).EQ.';) THEN
03453  M01S02983.panel   +++|            J = Z"40"
03454  M01S02984.panel   +++|            N = N + 1
03455  M01S02985.panel   +++|          ELSEIF (LINE(N:N).EQ.';) THEN
03456  M01S02986.panel   +++|            J = Z"80"
03457  M01S02987.panel   +++|            N = N + 1
03458  M01S02988.panel   +++|          ENDIF
03459  M01S02989.panel   +++|          IMAG(I,LNO) = X612TA(J + ICHAR(LINE(N:N)))
03460  M01S02990.panel   +++|200     CONTINUE
Line S02991 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03461  M02S02991.v23l617 ---|        IMAG(133,LNO) = 0
03462  M01S00081.v23l617 +++|        IMAG(MCOL+1,LNO) = 0
03463  M01S02992.panel   +++|        END
03464  M01S02993.panel   +++|C-------------------------------------------------------------------
03465  M01S02994.panel   +++|C*      ZEQNEXT - TRUE IF = NEXT CHARACTER ON SAME LINE
03466  M01S02995.panel   +++|C
03467  M01S02996.panel   +++|        LOGICAL FUNCTION ZEQNEXT()
03468  M01S02997.panel   +++|*CALL   COMFPAN
03469  M01S02998.panel   +++|        J = SJ
03470  M01S02999.panel   +++|1       IF (IMAG(J,1).EQ.ZSP) THEN
Line S03000 Modification History
M01 (Added by) panel
M02 (Updated by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03471  M02S03000.v23l617 ---|          IF (J.LT.133) THEN
03472  M01S00082.v23l617 +++|          IF (J.LE.MCOL) THEN
03473  M01S03001.panel   +++|            J = J + 1
03474  M01S03002.panel   +++|            GOTO 1
03475  M01S03003.panel   +++|          ENDIF
03476  M01S03004.panel   +++|        ENDIF
03477  M01S03005.panel   +++|        ZEQNEXT = IMAG(J,1).EQ.ZEQ
03478  M01S03006.panel   +++|        END
cdc/nos2.source/opl.opl871/deck/panel.001.txt ยท Last modified: by 127.0.0.1