Previous | Contents | Index |
Table 7-1 lists the Fortran-specific errors processed by the Compaq Fortran RTL. For each error, the table shows the Fortran-specific message mnemonic (follows either FOR$_ or FOR$IOS_ for condition symbols), the Fortran-specific message number, the severity (fatal, error, or informational), the message text. For more detailed descriptions of errors processed by the Compaq Fortran RTL, see Table B-1.
Mnemonic | Number1 | Severity | Message Text |
---|---|---|---|
NOTFORSPE 2 | 1 | F | not a Fortran-specific error |
BUG_CHECK | 8 | F | internal consistency check failure |
SYNERRNAM | 17 | F | syntax error in NAMELIST input |
TOOMANVAL | 18 | F | too many values for NAMELIST variable |
INVREFVAR | 19 | F | invalid reference to variable in NAMELIST input |
REWERR | 20 | F | REWIND error |
DUPFILSPE | 21 | F | duplicate file specifications |
INPRECTOO | 22 | F | input record too long |
BACERR | 23 | F | BACKSPACE error |
ENDDURREA | 24 | F | end-of-file during read |
RECNUMOUT | 25 | F | record number outside range |
OPEDEFREQ | 26 | F | OPEN or DEFINE FILE required |
TOOMANREC | 27 | F | too many records in I/O statement |
CLOERR | 28 | F | CLOSE error |
FILNOTFOU | 29 | F | file not found |
OPEFAI | 30 | F | open failure |
MIXFILACC | 31 | F | mixed file access modes |
INVLOGUNI | 32 | F | invalid logical unit number |
ENDFILERR | 33 | F | ENDFILE error |
UNIALROPE | 34 | F | unit already open |
SEGRECFOR | 35 | F | segmented record format error |
ATTACCNON | 36 | F | attempt to access non-existent record |
INCRECLEN | 37 | F | inconsistent record length |
ERRDURWRI | 38 | F | error during write |
ERRDURREA | 39 | F | error during read |
RECIO_OPE | 40 | F | recursive I/O operation |
INSVIRMEM | 41 | F | insufficient virtual memory |
NO_SUCDEV | 42 | F | no such device |
FILNAMSPE | 43 | F | file name specification error |
INCRECTYP | 44 | F | inconsistent record type |
KEYVALERR | 45 | F | keyword value error in OPEN statement |
INCOPECLO | 46 | F | inconsistent OPEN/CLOSE parameters |
WRIREAFIL | 47 | F | write to READONLY file |
INVARGFOR | 48 | F | invalid argument to Fortran Run-Time Library |
INVKEYSPE | 49 | F | invalid key specification |
INCKEYCHG | 50 | F | inconsistent key change or duplicate key |
INCFILORG | 51 | F | inconsistent file organization |
SPERECLOC | 52 | F | specified record locked |
NO_CURREC | 53 | F | no current record |
REWRITERR | 54 | F | REWRITE error |
DELERR | 55 | F | DELETE error |
UNLERR | 56 | F | UNLOCK error |
FINERR | 57 | F | FIND error |
FMYSYN | 58 | I | format syntax error at or near xxx |
LISIO_SYN 3 | 59 | F | list-directed I/O syntax error |
INFFORLOO | 60 | F | infinite format loop |
FORVARMIS 3 | 61 | F or I 4 | format/variable-type mismatch |
SYNERRFOR | 62 | F | syntax error in format |
OUTCONERR 3,4 | 63 | E or I 4 | output conversion error |
INPCONERR 3 | 64 | F | input conversion error |
FLTINV | 65 | E | floating invalid |
OUTSTAOVE | 66 | F | output statement overflows record |
INPSTAREQ | 67 | F | input statement requires too much data |
VFEVALERR 3 | 68 | F | variable format expression value error |
INTOVF | 70 | F | integer overflow |
INTDIV | 71 | F | integer divide by zero |
FLTOVF | 72 | E | floating overflow |
FLTDIV | 73 | E | floating divide by zero |
FLTUND | 74 | E | floating underflow |
SUBRNG | 77 | F | subscript out of range |
WRONUMARG | 80 | F | wrong number of arguments |
INVARGMAT | 81 | F | invalid argument to math library |
UNDEXP 5 | 82 | F | undefined exponentiation |
LOGZERNEG 5 | 83 | F | logarithm of zero or negative value |
SQUROONEG 5 | 84 | F | square root of negative value |
SIGLOSMAT 5 | 87 | F | significance lost in math library |
FLOOVEMAT 5 | 88 | F | floating overflow in math library |
FLOUNDMAT | 89 | E | floating underflow in math library |
ADJARRDIM 6 | 93 | F | adjustable array dimension error |
INVMATKEY | 94 | F | invalid key match specifier for key direction |
FLOCONFAI | 95 | E | floating point conversion failed |
FLTINE | 140 | F | floating inexact |
ROPRAND | 144 | F | reserved operand |
ASSERTERR | 145 | F | assertion error |
NULPTRERR | 146 | F | null pointer error |
STKOVF | 147 | F | stack overflow |
STRLENERR | 148 | F | string length error |
SUBSTRERR | 149 | F | substring error |
RANGEERR | 150 | F | range error |
INVREALLOC | 151 | F | allocatable array is already allocated |
RESACQFAI | 152 | F | unresolved contention for Compaq Fortran RTL global resource |
INVDEALLOC | 153 | F | allocatable array is not allocated |
UNFIO_FMT | 256 | F | unformatted I/O to unit open for formatted transfers |
FMTIO_UNF | 257 | F | formatted I/O to unit open for unformatted transfers |
DIRIO_KEY | 258 | F | direct-access I/O to unit open for keyed access |
SEQIO_DIR | 259 | F | sequential-access I/O to unit open for direct access |
KEYIO_DIR | 260 | F | keyed-access I/O to unit open for direct access |
OPERREQDIS | 264 | F | operation requires file to be on disk or tape |
OPEREQSEQ | 265 | F | operation requires sequential file organization and access |
ENDRECDUR | 268 | F | end of record during read |
FLOINCEXC | 297 | I | nn floating invalid traps |
FLOOVREXC | 298 | I | nn floating overflow traps |
FLODIV0EXC | 299 | I | nn divide-by-zero traps |
FLOUNDEXC | 300 | I | nn floating underflow traps |
The message mnemonic shown in the first column is part of the condition status code symbols signaled by the Compaq Fortran RTL I/O support routines. You can define these symbolic values in your program by including the library module $FORDEF or $FORIOSDEF from the system-supplied default library FORSYSDEF.TLB:
If you will be using the IOSTAT specifier for error handling, you should include the $FORIOSDEF library module (instead of $FORDEF) from the FORSYSDEF.TLB library (see Section 7.2.2).
The standard Compaq Fortran error numbers that are generally compatible with other versions of Compaq Fortran are shown in the second column. Most of these error values are returned to IOSTAT variables when an I/O error is detected.
The codes in the third column indicate the severity of the error conditions (see Section 7.1.2).
For more detailed descriptions of errors processed by the Compaq Fortran RTL, see Table B-1 or type the following DCL command to obtain a list of mnemonics (such as ADJARRDIM):
$ HELP FORTRAN ERROR RUN_TIME |
For More Information:
This chapter describes the following topics:
In figures in this chapter, the symbol :A specifies the address of the byte containing bit 0, which is the starting address of the represented data element.
Compaq Fortran expects numeric data to be in native little endian order, in which the least-significant, right-most bit (bit 0) or byte has a lower address than the most-significant, left-most bit (or byte).
For More Information:
Table 8-1 lists the intrinsic data types provided by Compaq Fortran, the storage required, and valid numeric ranges.
Data Type | Bytes | Description |
---|---|---|
BYTE (INTEGER*1) | 1 (8 bits) | A BYTE declaration is a signed integer data type equivalent to INTEGER*1 or INTEGER (KIND=1). |
INTEGER | 1, 2, 4, or 8 | Signed integer whose size is controlled by a kind type parameter or, if a kind type parameter (or size specifier) is omitted, certain FORTRAN command qualifiers (see Section 8.2.1). |
INTEGER (KIND=1)
INTEGER*1 |
1 (8 bits) | Signed integer value from --128 to 127 (--2**7 to 2**7--1). Unsigned values from 0 to 255 (2**8-1) 1. |
INTEGER (KIND=2)
INTEGER*2 |
2 (16 bits) | Signed integer value from --32,768 to 32,767 (--2**15 to 2**15--1). Unsigned values from 0 to 65535 (2**16-1) 1. |
INTEGER (KIND=4)
INTEGER*4 |
4 (32 bits) | Signed integer value from --2,147,483,648 to 2,147,483,647 (--2**31 to 2**31--1). Unsigned values from 0 to 4,294,967,295 (2**32-1) 1. |
INTEGER (KIND=8)
INTEGER*8 |
8 (64 bits) | Signed integer value from --9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (--2**63 to 2**63--1). |
LOGICAL | 1, 2, 4, or 8 | Logical value whose size is controlled by a kind type parameter or, if a kind type parameter (or size specifier) is omitted, certain FORTRAN command qualifiers (see Section 8.3). |
LOGICAL (KIND=1)
LOGICAL*1 |
1 (8 bits) | Logical values .TRUE. or .FALSE. 2 |
LOGICAL (KIND=2)
LOGICAL*2 |
2 (16 bits) | Logical values .TRUE. or .FALSE. 2 |
LOGICAL (KIND=4)
LOGICAL*4 |
4 (32 bits) | Logical values .TRUE. or .FALSE. 2 |
LOGICAL (KIND=8)
LOGICAL*8 |
8 (64 bits) | Logical values .TRUE. or .FALSE. 2 |
REAL | 4 or 8 | Real floating-point numbers whose size is controlled by a kind type parameter or, if a kind type parameter (or size specifier) is omitted, by using the FORTRAN command /REAL_SIZE qualifier. To control the floating-point format used in memory, use the FORTRAN command /FLOAT qualifier. |
REAL (KIND=4)
REAL*4 |
4 (32 bits) |
Single-precision real
floating-point values in IEEE S_float or VAX F_float formats.
IEEE S_float normalized values range from 1.17549435E--38 to 3.40282347E38. Values between 1.17549429E--38 and 1.40129846E--45 are denormalized 3. VAX F_float values range from 0.293873588E--38 to 1.7014117E38. |
DOUBLE PRECISION
REAL (KIND=8) REAL*8 |
8 (64 bits) |
Double-precision real
floating-point values in IEEE T_float, VAX G_float, or VAX D_float
formats.
IEEE T_float normalized values range from 2.2250738585072013D--308 to 1.7976931348623158D308. Values between 2.2250738585072008D--308 and 4.94065645841246544D--324 are denormalized 3. VAX G_float values range from 0.5562684646268004D--308 to 0.89884656743115785407D308. VAX D_float values range from 0.2938735877055719D--38 to 1.70141183460469229D38. You can change the data size of DOUBLE PRECISION declarations from REAL (KIND=8) to REAL (KIND=16) with the FORTRAN command /DOUBLE_SIZE qualifier. |
REAL (KIND=16)
REAL*16 |
16 (128 bits) | Extended-precision real floating-point values in Alpha IEEE-like X_float format ranging from 6.4751751194380251109244389582276465524996Q-4966 to 1.189731495357231765085759326628007016196477Q4932. The smallest normalized number is 3.362103143112093506262677817321753Q-4932. |
COMPLEX | 8 or 16 | Complex floating-point numbers whose size is controlled by a kind type parameter or, if a kind type parameter (or size specifier) is omitted, the FORTRAN command /REAL_SIZE qualifier. To control the floating-point format used in memory, use the FORTRAN command /FLOAT qualifier. |
COMPLEX (KIND=4)
COMPLEX*8 |
8 (64 bits) |
Single-precision complex floating-point values in a pair of
floating-point parts: real and imaginary. Use the IEEE S_float or VAX
F_float format.
IEEE S_float real and imaginary parts range from 1.17549435E--38 to 3.40282347E38. Values between 1.17549429E--38 and 1.40129846E--45 are denormalized 3. VAX F_float real and imaginary parts range from 0.293873588E--38 to 1.7014117E38. |
DOUBLE COMPLEX
COMPLEX (KIND=8) COMPLEX*16 |
16 (128 bits) |
Double-precision complex floating-point values in a pair of parts: real
and imaginary. Use the IEEE T_float, VAX G_float, or VAX D_float format.
IEEE T_float format real and imaginary parts each range from 2.2250738585072013D-308 to 1.7976931348623158D308. Values between 2.2250738585072008D--308 and 4.94065645841246544D--324 are denormalized 3. VAX G_float format real and imaginary parts each range from 0.5562684646268004D--308 to 0.89884656743115785407D308. VAX D_float format real and imaginary parts each range from 0.2938735877055719D--38 to 1.70141183460469229D38. |
CHARACTER | 1 byte (8 bits) per character | Character data represented by character code convention. Character declarations can be in the form CHARACTER(LEN= n), CHARACTER( n), or CHARACTER* n, where n is the number of bytes or n can be (*) to indicate passed-length format. |
HOLLERITH | 1 byte (8 bits) per Hollerith character | Hollerith constants. |
In addition to the intrinsic numeric data types, you can define nondecimal (binary, octal, or hexadecimal) constants as explained in the Compaq Fortran Language Reference Manual.
Previous | Next | Contents | Index |