home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / libs / matlab.lzh / MATLAB / MATLAB.LZH / Source / MatLab / Matlab.for < prev    next >
Encoding:
Text File  |  1991-05-02  |  5.0 KB  |  171 lines

  1.       SUBROUTINE MATLAB (INIT)
  2.       IMPLICIT NONE
  3. C
  4. C INIT =0: ORDINARY FIRST ENTRY
  5. C      >0: SUBSEQUENT ENTRIES
  6. C      <0: SILENT INITIALIZATION (SEE MATZ)
  7. C
  8.       INTEGER INIT
  9. C
  10.       INCLUDE MATLAB$KOM:SIZEPARMS.INC
  11.       INCLUDE MATLAB$KOM:VSTK.KOM
  12.       INCLUDE MATLAB$KOM:ALFS.KOM
  13.       INCLUDE MATLAB$KOM:RECU.KOM
  14.       INCLUDE MATLAB$KOM:IOP.KOM
  15.       INCLUDE MATLAB$KOM:COM.KOM
  16.       INCLUDE MATLAB$KOM:MATPLT.KOM
  17.       INCLUDE MATLAB$KOM:SAV.KOM
  18. C
  19.       INCLUDE AMIGA$KOM:INTUIT.INC
  20. C
  21.       INCLUDE DIGLIB$KOM:window.inc
  22.       INCLUDE DIGLIB$KOM:PLTPRM.PRM
  23.       INCLUDE DIGLIB$KOM:GCCLIP.PRM
  24. C         REMOVE GCCOFF FROM INSIDE PLTSIZE.PRM BEFORE INCLUDING HERE
  25. C      INCLUDE DIGLIB$KOM:GCCOFF.PRM
  26.       INCLUDE DIGLIB$KOM:GCCPAR.PRM
  27.       INCLUDE DIGLIB$KOM:GCCPOS.PRM
  28.       INCLUDE DIGLIB$KOM:PLTCOM.PRM
  29.       INCLUDE DIGLIB$KOM:PLTSIZ.PRM
  30.       INCLUDE DIGLIB$KOM:PLTCLP.PRM
  31.       INCLUDE DIGLIB$KOM:GCDCHR.PRM
  32.       INCLUDE DIGLIB$KOM:GCDPRM.PRM
  33.       INCLUDE DIGLIB$KOM:GCDSEL.PRM
  34.       INCLUDE DIGLIB$KOM:GCLTYP.PRM
  35.       INCLUDE DIGLIB$KOM:GCVPOS.PRM
  36. C
  37.       DOUBLE PRECISION S, T
  38.       INTEGER EPS(4), FLOPS(4), EYE(4), RAND(4)
  39.       INTEGER LCOLR1, LCOLR2, LCOLR3, LCOLR4, I
  40. C
  41. C MATLAB CHARACTER SET
  42. C            0       10       20       30       40       50
  43. C
  44. C     0      0        A        K        U   COLON  :  LESS   <
  45. C     1      1        B        L        V   PLUS   +  GREAT  >
  46. C     2      2        C        M        W   MINUS  -
  47. C     3      3        D        N        X   STAR   *
  48. C     4      4        E        O        Y   SLASH  /
  49. C     5      5        F        P        Z   BSLASH \
  50. C     6      6        G        Q  BLANK     EQUAL  =
  51. C     7      7        H        R  LPAREN (  DOT    .
  52. C     8      8        I        S  RPAREN )  COMMA  ,
  53. C     9      9        J        T  SEMI   ;  QUOTE  '
  54. C
  55.       INTEGER ALPHA(52), ALPHB(52)
  56. C
  57.       DATA ALPHA / 1H0, 1H1, 1H2, 1H3, 1H4, 1H5, 1H6, 1H7, 1H8, 1H9,
  58.      .             1HA, 1HB, 1HC, 1HD, 1HE, 1HF, 1HG, 1HH, 1HI, 1HJ,
  59.      .             1HK, 1HL, 1HM, 1HN, 1HO, 1HP, 1HQ, 1HR, 1HS, 1HT,
  60.      .             1HU, 1HV, 1HW, 1HX, 1HY, 1HZ, 1H , 1H(, 1H), 1H;,
  61.      .             1H:, 1H+, 1H-, 1H*, 1H/, 1H\, 1H=, 1H., 1H,, 1H',
  62.      .             1H<, 1H> /
  63. C
  64. C ALTERNATE CHARACTER SET
  65.       DATA ALPHB / 1H0, 1H1, 1H2, 1H3, 1H4, 1H5, 1H6, 1H7, 1H8, 1H9,
  66.      .             1Ha, 1Hb, 1Hc, 1Hd, 1He, 1Hf, 1Hg, 1Hh, 1Hi, 1Hj,
  67.      .             1Hk, 1Hl, 1Hm, 1Hn, 1Ho, 1Hp, 1Hq, 1Hr, 1Hs, 1Ht,
  68.      .             1Hu, 1Hv, 1Hw, 1Hx, 1Hy, 1Hz, 1H , 1H(, 1H), 1H;,
  69.      .             1H|, 1H+, 1H-, 1H*, 1H/, 1H$, 1H=, 1H., 1H,, 1H",
  70.      .             1H[, 1H] /
  71. C
  72.       DATA EPS / 14, 25, 28, 36 /, FLOPS / 15, 21, 24, 25 /
  73.       DATA EYE / 14, 34, 14, 36 /, RAND / 27, 10, 23, 13 /
  74. C
  75. C AMIGA CURSOR COLOR STUFF
  76.       DATA LCOLR1 / Z'9B313B33' /, LCOLR2 / Z'333B3431' /
  77.       DATA LCOLR3 / Z'3B376D00' /, LCOLR4 / Z'9B30306D' /
  78. C
  79. C
  80. C ***      START BY SETTING THE AMIGA PLOT START STATUS TO FALSE
  81.       PLTST = .FALSE.
  82.       BNHERE = .FALSE.
  83.       PLTMAX = 0
  84. C
  85.       IF (INIT.GT.0) GO TO 90
  86. C
  87. C ***      RTE = UNIT NUMBER FOR TERMINAL INPUT
  88.       RTE = 9
  89.       CALL FILES (RTE, BUF)
  90.       RIO = RTE
  91. C
  92. C ***      WTE = UNIT NUMBER FOR TERMINAL OUTPUT
  93.       WTE = 9
  94.       CALL FILES (WTE, BUF)
  95.       WIO = 0
  96. C
  97.       IF (INIT.GE.0) WRITE (WTE, 100) LCOLR1, LCOLR2, LCOLR3, LCOLR4,
  98.      .                                LCOLR1, LCOLR2, LCOLR3, LCOLR4
  99. 100   FORMAT (//, 7X, 2A4, A3, '< AMIGA MATLAB >', A4, /,
  100.      .        6X, 2A4, A3, 'Version of 5/01/91', A4)
  101. C
  102. C ***      HIO = UNIT NUMBER FOR HELP FILE
  103.       HIO = 11
  104.       CALL FILES (HIO, BUF)
  105. C
  106. C ***      RANDOM NUMBER SEED
  107.       RAN(1) = 0
  108. C
  109. C ***      INITIAL LINE LIMIT
  110.       LCT(2) = 25
  111. C
  112.       ALFL = 52
  113.       CASE = 0
  114. C
  115. C ***      CASE = 1 for file names in lower case
  116.       DO 20 I = 1, ALFL
  117.         ALFA(I) = ALPHA(I)
  118.         ALFB(I) = ALPHB(I)
  119. 20    CONTINUE
  120. C
  121.       VSIZE = VARSIZE
  122.       LSIZE = 48
  123.       PSIZE = 32
  124.       BOT = LSIZE-3
  125.       CALL WSET (5, 0.0D0, 0.0D0, STKR(VSIZE-4), STKI(VSIZE-4), 1)
  126.       CALL PUTID (IDSTK(1,LSIZE-3), EPS)
  127.       LSTK(LSIZE-3) = VSIZE-4
  128.       MSTK(LSIZE-3) = 1
  129.       NSTK(LSIZE-3) = 1
  130.       S = 1.0D0
  131. 30    CONTINUE
  132.       S = S/2.0D0
  133.       T = 1.0D0+S
  134.       IF (T.GT.1.0D0) GO TO 30
  135.       STKR(VSIZE-4) = 2.0D0*S
  136.       CALL PUTID (IDSTK(1,LSIZE-2), FLOPS)
  137.       LSTK(LSIZE-2) = VSIZE-3
  138.       MSTK(LSIZE-2) = 1
  139.       NSTK(LSIZE-2) = 2
  140.       CALL PUTID (IDSTK(1,LSIZE-1), EYE)
  141.       LSTK(LSIZE-1) = VSIZE-1
  142.       MSTK(LSIZE-1) = -1
  143.       NSTK(LSIZE-1) = -1
  144.       STKR(VSIZE-1) = 1.0D0
  145.       CALL PUTID (IDSTK(1,LSIZE), RAND)
  146.       LSTK(LSIZE) = VSIZE
  147.       MSTK(LSIZE) = 1
  148.       NSTK(LSIZE) = 1
  149.       FMT = 1
  150.       FLP(1) = 0
  151.       FLP(2) = 0
  152.       DDT = 0
  153.       RAN(2) = 0
  154.       PTZ = 0
  155.       PT = PTZ
  156.       ERR = 0
  157.       IF (INIT.LT.0) RETURN
  158. C
  159. 90    CONTINUE
  160.       CALL PARSE
  161.       IF (FUN.EQ.1) CALL MATFN1
  162.       IF (FUN.EQ.2) CALL MATFN2
  163.       IF (FUN.EQ.3) CALL MATFN3
  164.       IF (FUN.EQ.4) CALL MATFN4
  165.       IF (FUN.EQ.5) CALL MATFN5
  166.       IF (FUN.EQ.6) CALL MATFN6
  167.       IF (FUN.EQ.21) CALL MATFN1
  168.       IF (FUN.NE.99) GO TO 90
  169.       RETURN
  170.       END
  171.