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 / error.for < prev    next >
Encoding:
Text File  |  1991-04-13  |  4.7 KB  |  213 lines

  1.       SUBROUTINE ERROR (N)
  2.       IMPLICIT NONE
  3. C
  4.       INTEGER N
  5. C
  6.       INCLUDE MATLAB$KOM:SIZEPARMS.INC
  7.       INCLUDE MATLAB$KOM:VSTK.KOM
  8.       INCLUDE MATLAB$KOM:RECU.KOM
  9.       INCLUDE MATLAB$KOM:ALFS.KOM
  10.       INCLUDE MATLAB$KOM:IOP.KOM
  11.       INCLUDE MATLAB$KOM:COM.KOM
  12. C
  13.       INTEGER ERRMSG(8), BLH, BEL, COLOR1, COLOR2, K, LUNIT, I, LB, LT
  14. C
  15. C ***      SET BEL TO CTRL-G IF POSSIBLE
  16.       DATA ERRMSG / 1H/, 1H-, 1H-, 1HE, 1HR, 1HR, 1HO, 1HR /
  17.       DATA BLH / 1H  /, BEL / 1H  /
  18.       DATA COLOR1 / Z'9B33326D' /, COLOR2 / Z'9B30306D' /
  19. C
  20. C
  21.       K = LPT(2)-LPT(1)
  22.       IF (K.LT.1) K = 1
  23.       LUNIT = WTE
  24. C
  25. 98    CONTINUE
  26.       WRITE (LUNIT, 100) COLOR1, (BLH, I = 1, K),
  27.      .                   (ERRMSG(I), I = 1, 8), COLOR2, BEL
  28. 100   FORMAT (1X, A4, 80A1, A4)
  29.       GO TO ( 1,  2,  3,  4,  5,  6,  7,  8,  9, 10,
  30.      .       11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
  31.      .       21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
  32.      .       31, 32, 33, 34, 35, 36, 37, 38, 39, 40), N
  33. C
  34. 1     CONTINUE
  35.       WRITE (LUNIT, 900) 'IMPROPER MULTIPLE ASSIGNMENT'
  36. 900   FORMAT (1X, A)
  37.       GO TO 99
  38. C
  39. 2     CONTINUE
  40.       WRITE (LUNIT, 900) 'IMPROPER FACTOR'
  41.       GO TO 99
  42. C
  43. 3     CONTINUE
  44.       WRITE (LUNIT, 900) 'EXPECT RIGHT PARENTHESIS'
  45.       GO TO 99
  46. C
  47. 4     CONTINUE
  48.       DO 94 I = 1, 4
  49.         K = IDS(I,PT+1)
  50.         BUF(I) = ALFA(K+1)
  51. 94    CONTINUE
  52.       WRITE (LUNIT, 104) (BUF(I), I = 1, 4)
  53. 104   FORMAT (' UNDEFINED VARIABLE: ', 4A1)
  54.       GO TO 99
  55. C
  56. 5     CONTINUE
  57.       WRITE (LUNIT, 900) 'COLUMN LENGTHS DO NOT MATCH'
  58.       GO TO 99
  59. C
  60. 6     CONTINUE
  61.       WRITE (LUNIT, 900) 'ROW LENGTHS DO NOT MATCH'
  62.       GO TO 99
  63. C
  64. 7     CONTINUE
  65.       WRITE (LUNIT, 900) 'TEXT TOO LONG'
  66.       GO TO 99
  67. C
  68. 8     CONTINUE
  69.       WRITE (LUNIT, 900) 'INCOMPATIBLE FOR ADDITION'
  70.       GO TO 99
  71. C
  72. 9     CONTINUE
  73.       WRITE (LUNIT, 900) 'INCOMPATIBLE FOR SUBTRACTION'
  74.       GO TO 99
  75. C
  76. 10    CONTINUE
  77.       WRITE (LUNIT, 900) 'INCOMPATIBLE FOR MULTIPLICATION'
  78.        GO TO 99
  79. C
  80. 11    CONTINUE
  81.       WRITE (LUNIT, 900) 'INCOMPATIBLE FOR RIGHT DIVISION'
  82.       GO TO 99
  83. C
  84. 12    CONTINUE
  85.       WRITE (LUNIT, 900) 'INCOMPATIBLE FOR LEFT DIVISION'
  86.       GO TO 99
  87. C
  88. 13    CONTINUE
  89.       WRITE (LUNIT, 900) 'IMPROPER ASSIGNMENT TO PERMANENT VARIABLE'
  90.       GO TO 99
  91. C
  92. 14    CONTINUE
  93.       WRITE (LUNIT, 900) 'EYE-DENTITY UNDEFINED BY CONTEXT'
  94.       GO TO 99
  95. C
  96. 15    CONTINUE
  97.       WRITE (LUNIT, 900) 'IMPROPER ASSIGNMENT TO SUBMATRIX'
  98.       GO TO 99
  99. C
  100. 16    CONTINUE
  101.       WRITE (LUNIT, 900) 'IMPROPER COMMAND'
  102.       GO TO 99
  103. C
  104. 17    CONTINUE
  105.       LB = VSIZE-LSTK(BOT)+1
  106.       LT = ERR+LSTK(BOT)
  107.       WRITE (LUNIT, 117) LB, LT, VSIZE
  108. 117   FORMAT (' TOO MUCH MEMORY REQUIRED', /,
  109.      .        '  ', I7, ' VARIABLES,', I7, ' TEMPORARIES,',
  110.      .              I7, ' AVAILABLE.')
  111.       GO TO 99
  112. C
  113. 18    CONTINUE
  114.       WRITE (LUNIT, 900) 'TOO MANY NAMES'
  115.       GO TO 99
  116. C
  117. 19    CONTINUE
  118.       WRITE (LUNIT, 900) 'MATRIX IS SINGULAR TO WORKING PRECISION'
  119.       GO TO 99
  120. C
  121. 20    CONTINUE
  122.       WRITE (LUNIT, 900) 'MATRIX MUST BE SQUARE'
  123.       GO TO 99
  124. C
  125. 21    CONTINUE
  126.       WRITE (LUNIT, 900) 'SUBSCRIPT OUT OF RANGE'
  127.       GO TO 99
  128. C
  129. 22    CONTINUE
  130.       WRITE (LUNIT, 122) (RSTK(I), I = 1, PT)
  131. 122   FORMAT (' RECURSION DIFFICULTIES', 10I4)
  132.       GO TO 99
  133. C
  134. 23    CONTINUE
  135.       WRITE (LUNIT, 900) 'ONLY 1, 2 OR INF NORM OF MATRIX'
  136.       GO TO 99
  137. C
  138. 24    CONTINUE
  139.       WRITE (LUNIT, 900) 'NO CONVERGENCE'
  140.       GO TO 99
  141. C
  142. 25    CONTINUE
  143.       WRITE (LUNIT, 900) 'CAN NOT USE FUNCTION NAME AS VARIABLE'
  144.       GO TO 99
  145. C
  146. 26    CONTINUE
  147.       WRITE (LUNIT, 900) 'TOO COMPLICATED (STACK OVERFLOW)'
  148.       GO TO 99
  149. C
  150. 27    CONTINUE
  151.       WRITE (LUNIT, 900) 'DIVISION BY ZERO IS A NO-NO'
  152.       GO TO 99
  153. C
  154. 28    CONTINUE
  155.       WRITE (LUNIT, 900) 'EMPTY MACRO'
  156.       GO TO 99
  157. C
  158. 29    CONTINUE
  159.       WRITE (LUNIT, 900) 'NOT POSITIVE DEFINITE'
  160.       GO TO 99
  161. C
  162. 30    CONTINUE
  163.       WRITE (LUNIT, 900) 'IMPROPER EXPONENT'
  164.       GO TO 99
  165. C
  166. 31    CONTINUE
  167.       WRITE (LUNIT, 900) 'IMPROPER STRING'
  168.       GO TO 99
  169. C
  170. 32    CONTINUE
  171.       WRITE (LUNIT, 900) 'SINGULARITY OF LOG OR ATAN'
  172.       GO TO 99
  173. C
  174. 33    CONTINUE
  175.       WRITE (LUNIT, 900) 'TOO MANY COLONS'
  176.       GO TO 99
  177. C
  178. 34    CONTINUE
  179.       WRITE (LUNIT, 900) 'IMPROPER FOR CLAUSE'
  180.       GO TO 99
  181. C
  182. 35    CONTINUE
  183.       WRITE (LUNIT, 900) 'IMPROPER WHILE OR IF CLAUSE'
  184.       GO TO 99
  185. C
  186. 36    CONTINUE
  187.       WRITE (LUNIT, 900) 'ARGUMENT OUT OF RANGE'
  188.       GO TO 99
  189. C
  190. 37    CONTINUE
  191.       WRITE (LUNIT, 900) 'IMPROPER MACRO'
  192.       GO TO 99
  193. C
  194. 38    CONTINUE
  195.       WRITE (LUNIT, 900) 'IMPROPER FILE NAME'
  196.       GO TO 99
  197. C
  198. 39    CONTINUE
  199.       WRITE (LUNIT, 900) 'INCORRECT NUMBER OF ARGUMENTS'
  200.       GO TO 99
  201. C
  202. 40    CONTINUE
  203.       WRITE (LUNIT, 900) 'EXPECT STATEMENT TERMINATOR'
  204.       GO TO 99
  205. C
  206. 99    CONTINUE
  207.       ERR = N
  208.       IF (LUNIT.EQ.WIO .OR. WIO.EQ.0) RETURN
  209.       LUNIT = WIO
  210.       GO TO 98
  211. C
  212.       END
  213.