%EXTERNALROUTINE QRMESS (%INTEGER ERRNO, %INTEGERNAME FLAG, LEN, %STRINGNAME STR) ! ERRNO - ERROR NUMBER ! FLAG - PASSED AS -1 IF ERROR NUMBER OUT OF RANGE, ELSE PASSED AS 0 ! LEN - LENGTH OF ERROR MESSAGE RETURNED ! STR - ERROR MESSAGE STRING RETURNED %SWITCH MESS1 (1:75) %SWITCH MESS2 (101:200) %SWITCH MESS3 (401:424) %IF 1 <= ERRNO <= 9 %OR 50 <= ERRNO <= 75 %THEN -> MESS1(ERRNO) %IF 101 <= ERRNO <= 200 %THEN -> MESS2(ERRNO) %IF 401 <= ERRNO <= 424 %THEN -> MESS3(ERRNO) FLAG = -1 %RETURN MESS1(1): STR = "Real overflow" ; -> END MESS1(2): STR = "Real underflow" ; -> END MESS1(3): STR = "Integer overflow" ; -> END MESS1(4): STR = "Decimal overflow" ; -> END MESS1(5): STR = "Zero divide" ; -> END MESS1(6): STR = "Array bounds exceeded" ; -> END MESS1(7): STR = "Capacity exceeded" ; -> END MESS1(8): STR = "Illegal operation" ; -> END MESS1(9): STR = "Address error" ; -> END MESS1(50): STR = "SQRT arg negative" ; -> END MESS1(51): STR = "LOG arg negative" ; -> END MESS1(52): STR = "LOG arg zero" ; -> END MESS1(53): STR = "EXP arg out of range" ; -> END MESS1(54): STR = "SIN arg out of range" ; -> END MESS1(55): STR = "COS arg out of range" ; -> END MESS1(56): STR = "TAN arg out of range" ; -> END MESS1(57): STR = "TAN arg inappropriate" ; -> END MESS1(58): STR = "ASIN arg out of range" ; -> END MESS1(59): STR = "ACOS arg out of range" ; -> END MESS1(60): STR = "Arc TAN args zero" ; -> END MESS1(61): STR = "SINH arg out of range" ; -> END MESS1(62): STR = "COSH arg out of range" ; -> END MESS1(63): STR = "LGAMMA arg not positive" ; -> END MESS1(64): STR = "LGAMMA arg too large" ; -> END MESS1(65): STR = "GAMMA arg out of range" ; -> END MESS1(66): STR = "COT arg out of range" ; -> END MESS1(67): STR = "COT arg inappropriate" ; -> END MESS1(68): STR = "Real exponentiation fault" ; -> END MESS1(69): STR = "Complex exponentiation fault" ; -> END MESS1(70): STR = "RADIUS args too large" ; -> END MESS1(71): STR = "ARCTAN args zero" ; -> END MESS1(72): STR = "ARCSIN arg out of range" ; -> END MESS1(73): STR = "ARCCOS arg out of range" ; -> END MESS1(74): STR = "HYPSIN arg out of range" ; -> END MESS1(75): STR = "HYPCOS arg out of range" ; -> END MESS2(101): STR = "Missing left bracket" ; -> END MESS2(102): STR = "Missing right bracket" ; -> END MESS2(103): STR = "Negative sign incorrect" ; -> END MESS2(104): STR = "Invalid format" ; -> END MESS2(105): STR = "Decimal field too wide" ; -> END MESS2(106): STR = "Format width zero invalid" ; -> END MESS2(107): STR = "Repetition factor invalid" ; -> END MESS2(108): STR = "Null literal invalid" ; -> END MESS2(109): STR = "Integer field too large" ; -> END MESS2(110): STR = "No width field allowed" ; -> END MESS2(111): STR = "Literal in input format" ; -> END MESS2(112): STR = "Minimum digits greater than width" ; -> END MESS2(114): STR = "Non-repeatable edit desc" ; -> END MESS2(115): STR = "Comma required" ; -> END MESS2(116): STR = "Decimal point not allowed" ; -> END MESS2(117): STR = "Unit not connected" ; -> END MESS2(118): STR = "File already connected" ; -> END MESS2(119): STR = "Access conflict" ; -> END MESS2(120): STR = "RECL conflict" ; -> END MESS2(121): STR = "Form conflict" ; -> END MESS2(122): STR = "Status conflict" ; -> END MESS2(123): STR = "Invalid status" ; -> END MESS2(124): STR = "Form not suitable" ; -> END MESS2(125): STR = "Specifier not recognised" ; -> END MESS2(126): STR = "Specifiers inconsistent" ; -> END MESS2(127): STR = "Illegal specifier value" ; -> END MESS2(128): STR = "Invalid filename" ; -> END MESS2(129): STR = "No filename specified" ; -> END MESS2(130): STR = "Record length not specified" ; -> END MESS2(132): STR = "Value separator missing" ; -> END MESS2(133): STR = "No digits specified" ; -> END MESS2(134): STR = "Invalid scaling" ; -> END MESS2(135): STR = "Invalid logical value" ; -> END MESS2(136): STR = "Invalid character value" ; -> END MESS2(137): STR = "Value not recognised" ; -> END MESS2(138): STR = "Invalid repetition value" ; -> END MESS2(139): STR = "Illegal repetition factor" ; -> END MESS2(140): STR = "Invalid integer" ; -> END MESS2(141): STR = "Invalid real" ; -> END MESS2(142): STR = "Invalid subscript(s)" ; -> END MESS2(143): STR = "Invalid complex constant" ; -> END MESS2(144): STR = "Variable is not an array" ; -> END MESS2(145): STR = "Equals sign missing after name" ; -> END MESS2(146): STR = "Variable not in NAMELIST list" ; -> END MESS2(147): STR = "Invalid item" ; -> END MESS2(148): STR = "Invalid character" ; -> END MESS2(149): STR = "Invalid variable name" ; -> END MESS2(150): STR = "Literal not terminated" ; -> END MESS2(151): STR = "Channel not defined" ; -> END MESS2(152): STR = "File does not exist" ; -> END MESS2(153): STR = "Input file ended" ; -> END MESS2(154): STR = "Wrong length record" ; -> END MESS2(155): STR = "Incompatible format descriptor" ; -> END MESS2(156): STR = "Read after write" ; -> END MESS2(157): STR = "Write after ENDFILE" ; -> END MESS2(158): STR = "Record number out of range" ; -> END MESS2(159): STR = "No format descriptor for data item" ; -> END MESS2(160): STR = "DECODE/ENCODE buffer fault" ; -> END MESS2(161): STR = "Invalid record size" ; -> END MESS2(162): STR = "No write permission for file" ; -> END MESS2(163): STR = "Physical end of tape" ; -> END MESS2(164): STR = "Invalid channel number" ; -> END MESS2(165): STR = "Too many files defined" ; -> END MESS2(166): STR = "Invalid record size" ; -> END MESS2(167): STR = "Invalid filename &" ; -> END MESS2(168): STR = "File already exists" ; -> END MESS2(169): STR = "Output file capacity exceeded" ; -> END MESS2(170): STR = "Unrecoverable system I/O error" ; -> END MESS2(171): STR = "Invalid operation on file" ; -> END MESS2(172): STR = "Wrong length record" ; -> END MESS2(173): STR = "No access permission" ; -> END MESS2(174): STR = "Invalid file description" ; -> END MESS2(175): STR = "File not available" ; -> END MESS2(176): STR = "File already open" ; -> END MESS2(177): STR = "Addresses inside out" ; -> END MESS2(178): STR = "File not open" ; -> END MESS2(179): STR = "File description incorrect for D.A." ; -> END MESS2(180): STR = "File record size incorrect for D.A." ; -> END MESS2(181): STR = "Facility not available" ; -> END MESS2(182): STR = "I/O error-unspecified" ; -> END MESS2(183): STR = "Illegal I/O operation" ; -> END MESS2(184): STR = "Format text too large" ; -> END MESS2(185): STR = "File has conflicting use" ; -> END MESS2(186): STR = "Blank field not permitted" ; -> END MESS2(187): STR = "Invalid format specification" ; -> END MESS2(188): STR = "RECL too large" ; -> END MESS2(189): STR = "NREC too large" ; -> END MESS2(191): STR = "F77JINIT not called" ; -> END MESS2(192): STR = "Delete status invalid" ; -> END MESS2(193): STR = "Not connected for unformatted I/O" ; -> END MESS2(194): STR = "Not connected for formatted I/O" ; -> END MESS2(195): STR = "BACKSPACE not allowed" ; -> END MESS2(196): STR = "Illegal BACKSPACE" ; -> END MESS2(197): STR = "DA workfiles not available" ; -> END MESS2(198): STR = "No filetype for a new DA file" ; -> END MESS2(199): STR = "Number of DA records not specified" ; -> END MESS2(200): STR = "Direct-access not a file property" ; -> END MESS3(401): STR = "Unassigned variable" ; -> END MESS3(402): STR = "Adjustable dimension bound is unassigned" ; -> END MESS3(403): STR = "Assigned value is invalid" ; -> END MESS3(404): STR = "Assigned label is not in specified list" ; -> END MESS3(405): STR = "Integer is not assigned with a format label" ; -> END MESS3(406): STR = "Array bound exceeded" ; -> END MESS3(407): STR = "Array parameter upper bound is less than lower bound" ; -> END MESS3(408): STR = "Array parameter declared size is greater than actual" ; -> END MESS3(409): STR = "Assumed size array requires zero last dimension" ; -> END MESS3(410): STR = "Character array param only valid for FORT77 call" ; -> END MESS3(411): STR = "Invalid character substring position value" ; -> END MESS3(412): STR = "Character param declared size is greater than actual" ; -> END MESS3(415): STR = "Do loop increment is zero" ; -> END MESS3(418): STR = "Recursive call to a procedure" ; -> END MESS3(419): STR = "Wrong type or size of function" ; -> END MESS3(421): STR = "Wrong number of parameters" ; -> END MESS3(422): STR = "Wrong type or size of parameter" ; -> END MESS3(424): STR = "Negative unit number specified" END: LEN = LENGTH(STR) FLAG = 0 %RETURN MESS1(*): MESS2(*): MESS3(*): FLAG = -1 %END ! %ENDOFFILE