Annotation of researchv10dc/cmd/matlab/src/matlab.f, revision 1.1.1.1

1.1       root        1:       SUBROUTINE MATLAB(INIT)
                      2: C     INIT = 0 FOR ORDINARY FIRST ENTRY 
                      3: C          = POSITIVE FOR SUBSEQUENT ENTRIES
                      4: C          = NEGATIVE FOR SILENT INITIALIZATION (SEE MATZ)
                      5: C
                      6:       DOUBLE PRECISION STKR(50005),STKI(50005)
                      7:       INTEGER IDSTK(4,48),LSTK(48),MSTK(48),NSTK(48),VSIZE,LSIZE,BOT,TOP
                      8:       INTEGER ALFA(52),ALFB(52),ALFL,CASE
                      9:       INTEGER IDS(4,32),PSTK(32),RSTK(32),PSIZE,PT,PTZ
                     10:       INTEGER DDT,ERR,FMT,LCT(4),LIN(1024),LPT(6),RIO,WIO,RTE,WTE,HIO
                     11:       INTEGER SYM,SYN(4),BUF(256),CHAR,FLP(2),FIN,FUN,LHS,RHS,RAN(2)
                     12:       COMMON /VSTK/ STKR,STKI,IDSTK,LSTK,MSTK,NSTK,VSIZE,LSIZE,BOT,TOP
                     13:       COMMON /ALFS/ ALFA,ALFB,ALFL,CASE
                     14:       COMMON /RECU/ IDS,PSTK,RSTK,PSIZE,PT,PTZ
                     15:       COMMON /IOP/ DDT,ERR,FMT,LCT,LIN,LPT,RIO,WIO,RTE,WTE,HIO
                     16:       COMMON /COM/ SYM,SYN,BUF,CHAR,FLP,FIN,FUN,LHS,RHS,RAN
                     17: C
                     18:       DOUBLE PRECISION S,T
                     19:       INTEGER EPS(4),FLOPS(4),EYE(4),RAND(4)
                     20: C
                     21: C     CHARACTER SET
                     22: C            0       10       20       30       40       50
                     23: C
                     24: C     0      0        A        K        U   COLON  :  LESS   <
                     25: C     1      1        B        L        V   PLUS   +  GREAT  >
                     26: C     2      2        C        M        W   MINUS  -
                     27: C     3      3        D        N        X   STAR   *
                     28: C     4      4        E        O        Y   SLASH  /
                     29: C     5      5        F        P        Z   BSLASH \\
                     30: C     6      6        G        Q  BLANK     EQUAL  =
                     31: C     7      7        H        R  LPAREN (  DOT    .
                     32: C     8      8        I        S  RPAREN )  COMMA  ,
                     33: C     9      9        J        T  SEMI   ;  QUOTE  '
                     34: C
                     35:       INTEGER ALPHA(52),ALPHB(52)
                     36:       DATA ALPHA /1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,
                     37:      $    1HA,1HB,1HC,1HD,1HE,1HF,1HG,1HH,1HI,1HJ,
                     38:      $    1HK,1HL,1HM,1HN,1HO,1HP,1HQ,1HR,1HS,1HT,
                     39:      $    1HU,1HV,1HW,1HX,1HY,1HZ,1H ,1H(,1H),1H;,
                     40:      $    1H:,1H+,1H-,1H*,1H/,1H\\,1H=,1H.,1H,,1H',
                     41:      $    1H<,1H>/
                     42: C
                     43: C     ALTERNATE CHARACTER SET
                     44: C
                     45:       DATA ALPHB /1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,
                     46:      $    1Ha,1Hb,1Hc,1Hd,1He,1Hf,1Hg,1Hh,1Hi,1Hj,
                     47:      $    1Hk,1Hl,1Hm,1Hn,1Ho,1Hp,1Hq,1Hr,1Hs,1Ht,
                     48:      $    1Hu,1Hv,1Hw,1Hx,1Hy,1Hz,1H ,1H(,1H),1H;,
                     49:      $    1H|,1H+,1H-,1H*,1H/,1H$,1H=,1H.,1H,,1H",
                     50:      $    1H[,1H]/
                     51: C
                     52:       DATA EPS/14,25,28,36/,FLOPS/15,21,24,25/
                     53:       DATA EYE/14,34,14,36/,RAND/27,10,23,13/
                     54: C
                     55:       IF (INIT .GT. 0) GO TO 90
                     56: C
                     57: C     RTE = UNIT NUMBER FOR TERMINAL INPUT
                     58: C     WTE = UNIT NUMBER FOR TERMINAL OUTPUT
                     59: C     HIO = UNIT NUMBER FOR HELP FILE
                     60: C
                     61:       RTE = 5
                     62:       WTE = 6
                     63:       HIO = 9
                     64:       RIO = RTE
                     65:       WIO = 0
                     66: C
                     67:       IF (INIT .GE. 0) WRITE(WTE,100)
                     68:   100 FORMAT(//0X,'     < M A T L A B >'
                     69:      $  /0X,'   Version of 11/01/83')
                     70: C
                     71: C     ASK HELPER TO OPEN HELP FILE
                     72:       BUF(1) = 0
                     73:       CALL HELPER(BUF)
                     74: C
                     75: C     RANDOM NUMBER SEED
                     76:       RAN(1) = 0
                     77: C
                     78: C     INITIAL LINE LIMIT
                     79:       LCT(2) = 25000
                     80: C
                     81:       ALFL = 52
                     82:       CASE = 1
                     83: C     CASE = 1 for file names in lower case
                     84:       DO 20 I = 1, ALFL
                     85:          ALFA(I) = ALPHA(I)
                     86:          ALFB(I) = ALPHB(I)
                     87:    20 CONTINUE
                     88: C
                     89:       VSIZE = 50005
                     90:       LSIZE = 48
                     91:       PSIZE = 32
                     92:       BOT = LSIZE-3
                     93:       CALL WSET(5,0.0D0,0.0D0,STKR(VSIZE-4),STKI(VSIZE-4),1)
                     94:       CALL PUTID(IDSTK(1,LSIZE-3),EPS)
                     95:       LSTK(LSIZE-3) = VSIZE-4
                     96:       MSTK(LSIZE-3) = 1
                     97:       NSTK(LSIZE-3) = 1
                     98:       S = 1.0D0
                     99:    30 S = S/2.0D0
                    100:       T = 1.0D0 + S
                    101:       IF (T .GT. 1.0D0) GO TO 30
                    102:       STKR(VSIZE-4) = 2.0D0*S
                    103:       CALL PUTID(IDSTK(1,LSIZE-2),FLOPS)
                    104:       LSTK(LSIZE-2) = VSIZE-3
                    105:       MSTK(LSIZE-2) = 1
                    106:       NSTK(LSIZE-2) = 2
                    107:       CALL PUTID(IDSTK(1,LSIZE-1), EYE)
                    108:       LSTK(LSIZE-1) = VSIZE-1
                    109:       MSTK(LSIZE-1) = -1
                    110:       NSTK(LSIZE-1) = -1
                    111:       STKR(VSIZE-1) = 1.0D0
                    112:       CALL PUTID(IDSTK(1,LSIZE), RAND)
                    113:       LSTK(LSIZE) = VSIZE
                    114:       MSTK(LSIZE) = 1
                    115:       NSTK(LSIZE) = 1
                    116:       FMT = 1
                    117:       FLP(1) = 0
                    118:       FLP(2) = 0
                    119:       DDT = 0
                    120:       RAN(2) = 0
                    121:       PTZ = 0
                    122:       PT = PTZ
                    123:       ERR = 0
                    124:       IF (INIT .LT. 0) RETURN
                    125: C
                    126:    90 CALL PARSE
                    127:       IF (FUN .EQ. 1) CALL MATFN1
                    128:       IF (FUN .EQ. 2) CALL MATFN2
                    129:       IF (FUN .EQ. 3) CALL MATFN3
                    130:       IF (FUN .EQ. 4) CALL MATFN4
                    131:       IF (FUN .EQ. 5) CALL MATFN5
                    132:       IF (FUN .EQ. 6) CALL MATFN6
                    133:       IF (FUN .EQ. 21) CALL MATFN1
                    134:       IF (FUN .NE. 99) GO TO 90
                    135:       RETURN
                    136:       END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.