Annotation of 43BSDTahoe/new/help/src/f77/error_msgs, revision 1.1

1.1     ! root        1: .TI F77/ERROR_MSGS "Sep. 4, 1985"
        !             2: Interpreting Execution Error Messages
        !             3: 
        !             4: .SH
        !             5: 1. Types of Errors
        !             6: .LP
        !             7: Execution error messages for Fortran programs are generated by the Fortran
        !             8: I/O library (error number = -1 or > 99),
        !             9: by the UNIX system routines ( 0 < error number < 99),
        !            10: and by the UNIX signal handler (no error number printed).
        !            11: .SH
        !            12: 2. Fortran I/O Library Error Messages
        !            13: .LP
        !            14: Here are examples of two common I/O errors; 
        !            15: for a complete list of the Fortran I/O library error messages,
        !            16: see "help f77 io_err_msgs".
        !            17: The first error results from trying to read beyond the end of a file:
        !            18: .nf
        !            19: 
        !            20:        dofio: [-1] end of file
        !            21:        logical unit 5, named 'stdin'
        !            22:        lately: reading sequential formatted external I/O
        !            23:        format: (i10)
        !            24:        *** Execution terminated
        !            25: 
        !            26: .fi
        !            27: The first line names the system routine, dofio(), that issued
        !            28: the error message, gives the error message number, -1, and a short description
        !            29: of the error.
        !            30: The second line shows that the error involved Fortran logical unit 5
        !            31: and file 'stdin' (standard input).
        !            32: The other lines tell the type of I/O being attempted,
        !            33: the format being used, and that execution was terminated due to the error.
        !            34: If the program had been compiled with the '-g' flag for debugging,
        !            35: the last line would instead be:
        !            36: 
        !            37:        Illegal instruction (core dumped)
        !            38: 
        !            39: and an image of memory at the time of the error would be written to the
        !            40: file 'core'.
        !            41: .LP
        !            42: The second example is a little more complex:
        !            43: .nf
        !            44: 
        !            45:        dofio: [115] invalid data for integer format term
        !            46:        logical unit 5, named 'stdin'
        !            47:        lately: reading sequential formatted external I/O
        !            48:        format: (i10)
        !            49:        part of last data: 22|e8   
        !            50:        *** Execution terminated
        !            51: 
        !            52: .fi
        !            53: The program tried to read ``22e8'' with an ``i5'' format term.
        !            54: The I/O library is complaining that the letter ``e'' is not
        !            55: a valid input character when reading integers.
        !            56: There is a new line, listing the data being read, which was
        !            57: not present in the previous error message.
        !            58: A vertical bar, ``|'', is put next to the input character the
        !            59: formatting routines were scanning when the error was detected.
        !            60: This line is only generated when doing I/O with disk files.
        !            61: In this example, the program was invoked by:
        !            62: 
        !            63:        a.out < data
        !            64: 
        !            65: The program is reading a disk file via the redirection
        !            66: of standard input.
        !            67: .LP
        !            68: Any error detected during I/O processing will cause the program
        !            69: to abort unless the I/O statement included an 'err=' clause to
        !            70: provide a branch on error or an 'iostat=' clause to save the
        !            71: error code.
        !            72: Read statements may include 'end=' to branch  on end-of-file.
        !            73: .SH
        !            74: 3. Signal Handler Error Messages
        !            75: .LP
        !            76: Most arithmetic errors and other errors causing hardware interrupts cause a
        !            77: signal to be sent to the process that caused the error.
        !            78: If, as is typical with Fortran programs,
        !            79: the process has not been set up to handle signals, then
        !            80: the process is terminated with an 
        !            81: appropriate (although sometimes mysterious) error message.
        !            82: These error messages usually appear with no numbers;  
        !            83: however under certain circumstances, the error numbers may also appear.
        !            84: .LP
        !            85: The most common of these messages are reproduced and explained here:
        !            86: 
        !            87: .nf
        !            88:        *** Arithmetic Exception: Floating point overflow
        !            89:        *** Execution Terminated
        !            90: .fi
        !            91: 
        !            92: The program tried to generate a floating point number greater in absolute value 
        !            93: than approximately 1.7e+38.
        !            94: 
        !            95: .nf
        !            96:        *** Arithmetic Exception: Integer divide by 0
        !            97:        *** Execution Terminated
        !            98: .fi
        !            99: 
        !           100: The program divided by an integer zero; this is mathematically undefined.
        !           101: 
        !           102: .nf
        !           103:        *** Arithmetic Exception: Floating divide by zero
        !           104:        *** Execution Terminated
        !           105: .fi
        !           106: 
        !           107: The program divided by a floating point zero; this is mathematically undefined.
        !           108: 
        !           109: .nf
        !           110:        *** Arithmetic Exception: Integer overflow
        !           111:        *** Execution Terminated
        !           112: .fi
        !           113: 
        !           114: The program tried to generate an integer outside the VAX's range of integers,
        !           115: either greater than 2**31-1 (2147483647) or less than -2**31 (-2147483648).
        !           116: This interrupt is not normally enabled; to catch this error, you need to
        !           117: call subroutine traper() in each subprogram (see "man 3f traper").
        !           118: 
        !           119: .nf
        !           120:        *** Arithmetic Exception: Floating point underflow
        !           121:        *** Execution Terminated
        !           122: .fi
        !           123: 
        !           124: The program tried to generate a floating point number whose absolute value
        !           125: is less than 2.9e-39.  This trap is not normally enabled; to enable it you
        !           126: must call subroutine traper() in each subprogram (see "man 3f traper").
        !           127: 
        !           128: .nf
        !           129:        *** Segmentation violation
        !           130:        *** Execution Terminated
        !           131: .fi
        !           132: 
        !           133: The program tried to reference beyond the current bounds of its memory.
        !           134: This is usually caused by using invalid subscripts for an array;
        !           135: recompiling and rerunning with the ``-C'' flag will catch many of these 
        !           136: errors.
        !           137: 
        !           138: .nf
        !           139:        *** Bus error
        !           140:        *** Execution Terminated
        !           141: .fi
        !           142: 
        !           143: The program has tried to store in a protected area such as the code for
        !           144: the program.  This is often caused
        !           145: by using an invalid subscript when storing into an array; recompiling and
        !           146: rerunning with the ``-C'' option will find many of these errors.
        !           147: This may also be caused by calling a subprogram passing fewer actual arguments
        !           148: than are declared and used in the subprogram.
        !           149: It can also occur when
        !           150: a subroutine or function is passed as an argument to a subprogram when
        !           151: the subprogram is expecting a variable or array and the
        !           152: subprogram tries to store in the argument.
        !           153: Storing on top of a constant, e.g.:
        !           154: .nf
        !           155: 
        !           156:        call sub(0)
        !           157:        ...
        !           158:        subroutine sub(ival)
        !           159:        ival = min0(ival,3000)
        !           160: 
        !           161: .fi
        !           162: also causes this error.
        !           163: 
        !           164: .nf
        !           165:        *** Illegal instruction
        !           166:        *** Execution Terminated
        !           167: .fi
        !           168: 
        !           169: This may mean that your program is overwriting itself.  This is uncommon
        !           170: because the program code and variable storage are in different areas of
        !           171: memory and the program code is normally protected.
        !           172: 
        !           173: .nf
        !           174:        *** Illegal operand
        !           175:        *** Execution Terminated
        !           176: .fi
        !           177: 
        !           178: An invalid floating point number (exponent value of 0, sign value of 1)
        !           179: was used in a floating point computation.  This is a reserved operand in
        !           180: the floating point logic of the VAX.  If an integer multiple of
        !           181: 32768 is used as a real, this interrupt will be generated.
        !           182: .LP
        !           183: For a complete list of signals, see "man 2 sigvec" or "man 3c signal".
        !           184: .LP
        !           185: The user can regain control after signal handler errors via 
        !           186: the signal() subroutine (see "man 3f signal").
        !           187: Unfortunately, after regaining control, there is currently no way to
        !           188: resume exactly where you left off.
        !           189: .SH
        !           190: 4. Errors due to unsuccessful system calls
        !           191: .LP
        !           192: This type of message is less common than the other two types.
        !           193: Here are two examples.
        !           194: The following messages result from trying to read from a file for which
        !           195: you do not have read permission:
        !           196: 
        !           197: .nf
        !           198:        fort.1: [13] Permission denied
        !           199:        logical unit 1, named 'fort.1'
        !           200:        *** Execution Terminated
        !           201: .fi
        !           202: 
        !           203: and the following resulted when trying to read from unit 6, standard
        !           204: output:
        !           205: 
        !           206: .nf
        !           207:        read sfe: [9] Bad file number
        !           208:        logical unit 6, named 'stdout'
        !           209:        lately: reading sequential formatted external IO
        !           210:        format: (i5)
        !           211:        *** Execution Terminated
        !           212: .fi
        !           213: 
        !           214: Unfortunately, these errors are numbered using the same number range as
        !           215: the signal errors described above.  For example, an error 24 could either
        !           216: be the system call error 24, too many files open, or signal message
        !           217: 24, cpu time limit exceeded.  The context usually makes it clear
        !           218: which type of error has occurred; also the signal messages normally
        !           219: appear without numbers.

unix.superglobalmegacorp.com

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