Compaq Fortran
User Manual for
OpenVMS Alpha Systems


Previous Contents Index

A.5 Compiler Command-Line Differences

This section summarizes the differences between Compaq Fortran and Compaq Fortran 77 for OpenVMS Systems command lines.

The following commands initiate compilation on OpenVMS systems:
Platform Language Command
OpenVMS Alpha systems Compaq Fortran FORTRAN
OpenVMS Alpha systems Compaq Fortran 77 FORTRAN/OLD_F77
OpenVMS VAX systems Compaq Fortran 77 FORTRAN

On Compaq Tru64 UNIX Alpha systems, Compaq Fortran uses the f90 command and Compaq Fortran 77 uses the f77 command.

Most qualifiers are the same between Compaq Fortran for OpenVMS Alpha systems and Compaq Fortran 77 for OpenVMS Alpha systems.

A.5.1 Qualifiers Not Available on OpenVMS VAX Systems

Table A-2 lists Compaq Fortran compiler qualifiers that have no equivalent Compaq Fortran 77 Version 6.4 for OpenVMS VAX Systems qualifiers.

Table A-2 Compaq Fortran Qualifiers Without Equivalents in Compaq Fortran 77 for OpenVMS VAX Systems
Qualifier Description
/ARCHITECTURE= keyword Specifies the type of Alpha architecture code instructions generated for a particular program unit being compiled (see Section 2.3.5).
/ASSUME=ALT_PARAM 1 Allows the alternate syntax for PARAMETER statements. The alternate form has no parentheses surrounding the list, and the form of the constant, rather than implicit or explicit typing, determines the data type of the variable (see Section 2.3.6).
/ASSUME=BYTERECL 1 Controls the size of the byte units for the value of the record length specifier in OPEN and INQUIRE statements (see Section 2.3.6).
/ASSUME=FP_CONSTANT 1 Controls whether constants are evaluated in single or double precision (see Section 2.3.6). Compaq Fortran 77 always evaluates single-precision constants in double precision.
/ASSUME=MINUS0 1 Controls whether the compiler uses Fortran 95 standard semantics for the IEEE floating-point value of -0.0 (minus zero) in the SIGN intrinsic, if the processor is capable of distinguishing the difference between -0.0 and +0.0 (see Section 2.3.6).
/BY_REF_CALL Allows character constant actual arguments to be associated with numeric dummy arguments (allowed by Compaq Fortran 77 for OpenVMS VAX Systems; see Section 2.3.8).
/CHECK=FP_EXCEPTIONS Controls whether messages about IEEE floating-point exceptional values are reported at run time (see Section 2.3.9).
/CHECK=POWER Controls whether the compiler evaluates and returns a result for certain arithmetic expressions containing floating- point numbers and exponentiation (see Section 2.3.9).
/DOUBLE_SIZE Makes DOUBLE PRECISION declarations REAL (KIND=16) instead of REAL (KIND=8) (see Section 2.3.14).
/FAST Sets several qualifiers that improve run-time performance (see Section 2.3.18).
/FLOAT Controls the format used for floating-point data (REAL or COMPLEX) in memory, including the selection of either VAX F_float or IEEE S_float for KIND=4 data and VAX G_float, VAX D_float, or IEEE T_float for KIND=8 data (see Section 2.3.19). Compaq Fortran 77 for OpenVMS VAX Systems provides the /[NO]G_FLOAT qualifier.
/GRANULARITY Controls the granularity of data access for shared data (see Section 2.3.20).
/IEEE_MODE Controls how floating-point exceptions are handled for IEEE data (see Section 2.3.21).
/INTEGER_SIZE Controls the size of INTEGER and LOGICAL declarations (see Section 2.3.23).
/MODULE Controls where module files (.F90$MOD) are placed. If you omit this qualifier or specify /NOMODULE, the .F90$MOD files are placed in your current default directory (see Section 2.3.28).
/NAMES Controls whether external names are converted to uppercase, lowercase, or as is (see Section 2.3.29).
/OPTIMIZE Most keywords are not available on Compaq Fortran 77 for OpenVMS VAX Systems, including INLINE, LOOPS, PIPELINE, TUNE, and UNROLL (see Section 2.3.32).
/REAL_SIZE Controls the size of REAL and COMPLEX declarations (see Section 2.3.34).
/REENTRANCY Specifies whether code generated for the main program and Fortran procedures it calls will rely on threaded or asynchronous reentrancy (see Section 2.3.36).
/ROUNDING_MODE Controls how floating-point calculations are rounded for IEEE data (see Section 2.3.37).
/SEPARATE_COMPILATION Controls whether the Compaq Fortran compiler:
  • Places individual compilation units as separate modules in the object file like Compaq Fortran 77 for OpenVMS VAX Systems (/SEPARATE_COMPILATION)
  • Groups compilation units as a single module in the object file (/NOSEPARATE_COMPILATION, the default), which allows more interprocedure optimizations.

For more information, see Section 2.3.38.

/SEVERITY 1 Changes compiler diagnostic warning messages to have a severity of error instead of warning (see Section 2.3.39).
/SOURCE_FORM Controls whether the compiler expects free or fixed form source (see Section 2.3.41).
/STANDARD Flags extensions to the Fortran 90 or Fortran 95 standards (see Section 2.3.42).
/SYNTAX_ONLY Requests that only syntax checking occurs and no object file is created (see Section 2.3.44).
/WARNINGS Certain keywords are not available on Compaq Fortran 77 for OpenVMS VAX Systems (see Section 2.3.48).
/VMS Requests that Compaq Fortran use certain Compaq Fortran 77 for OpenVMS VAX Systems conventions (see Section 2.3.47).


1This qualifier applies only to Compaq Fortran and does not apply to Compaq Fortran 77 on any platform.

A.5.2 Qualifiers Specific to Compaq Fortran 77 for OpenVMS VAX Systems

This section summarizes Compaq Fortran 77 for OpenVMS VAX Systems compiler options that have no equivalent Compaq Fortran options.

Table A-3 lists compilation options that are specific to Compaq Fortran 77 for OpenVMS VAX Systems Version 6.4.

Table A-3 Compaq Fortran 77 for OpenVMS VAX Systems Options Not in Compaq Fortran
Compaq Fortran 77 for OpenVMS VAX Systems Qualifier Description
/BLAS=(INLINE,MAPPED) Specifies whether Compaq Fortran 77 for OpenVMS VAX Systems recognizes and inlines or maps the Basic Linear Algebra Subroutines (BLAS).
/CHECK=ASSERTIONS Enables or disables assertion checking.
/DESIGN=[NO]COMMENTS
/DESIGN=[NO]PLACEHOLDERS
Analyzes program for design information.
/DIRECTIVES=DEPENDENCE Specifies whether specified compiler directives are used at compilation.
/PARALLEL=(MANUAL or AUTOMATIC) Supports parallel processing.
/SHOW=(DATA_DEPENDENCIES,DICTIONARY,LOOPS) Control whether the listing file includes:
  • Diagnostics about loops that are ineligible for dependence analysis and data dependencies that inhibit vectorization or autodecomposition (DATA_DEPENDENCIES)
  • Source lines from included Common Data Dictionary records (DICTIONARY)
  • Reports about loop structures after compilation (LOOPS).
/VECTOR Requests vector processing.
/WARNINGS=INLINE Controls whether the compiler prints informational diagnostic messages when it is unable to generate inline code for a reference to an intrinsic routine. Other /WARNINGS keywords are only available with Compaq Fortran 77 for OpenVMS VAX Systems, including TRUNCATED_SOURCE.

All CPAR$ directives and certain CDEC$ directives associated with directed (manual) decomposition and their associated qualifiers or keywords are also specific to Compaq Fortran 77 for OpenVMS VAX Systems.

For More Information:

A.6 Interoperability with Translated Shared Images

Compaq Fortran provides the ability to interoperate with translated shared images. That is, when creating a native Compaq Fortran image, you can add certain qualifiers to the FORTRAN and LINK command lines to allow the resulting image to interoperate with translated shared images at image activation (run time).

To allow the use of translated shared images:

The created executable image contains code that allows the resulting executable image to interoperate with shared (installed) images, including allowing the Compaq Fortran 77 for OpenVMS VAX Systems RTL (FORRTL_TV) to work with the Compaq Fortran RTL (DEC$FORRTL).

For More Information:

See Migrating an Applications from OpenVMS VAX to OpenVMS Alpha.

A.7 Porting Compaq Fortran 77 for OpenVMS VAX Systems Data

Record types are identical for Compaq Fortran 77 on OpenVMS VAX systems and Compaq Fortran on OpenVMS Alpha systems.

If you need to convert unformatted floating-point data, keep in mind that Compaq Fortran 77 for OpenVMS VAX Systems programs (VAX hardware) stores:

Compaq Fortran programs (running on Alpha hardware) store REAL*4, REAL*8, COMPLEX*8, and COMPLEX*16 data in one of the formats shown in Table A-4 and REAL*16 data in X_float format.

Table A-4 Floating-Point Data Formats on OpenVMS VAX and OpenVMS Alpha Systems
Data Declaration OpenVMS VAX Formats OpenVMS Alpha Formats
REAL*4 and COMPLEX*8 VAX F_float VAX F_float or IEEE S_float
REAL*8 and COMPLEX*16 VAX D_float or VAX G_float VAX D_float 1, VAX G_float, or IEEE T_float
REAL*16 VAX H_float X_float format. You can convert VAX H_float REAL*16 data to Alpha X_float format.


1The D_float format on Alpha systems has less precision during computations than on VAX systems.

The floating-point data types supported by Compaq Fortran on OpenVMS Alpha systems are described in Chapter 8.

Example A-1 shows the use of the CVT$CONVERT_FLOAT RTL routine to convert VAX S_float data to VAX F_float format. This allows the converted value to be used as an argument to the LIB$WAIT routine.

The parameter definitions used in the CVT$CONVERT_FLOAT argument list (such as CVT$K_IEEE_S) are included from the $CVTDEF library module in FORSYSDEF. The S_float value read as an argument is contained in the variable F_IN; the F_float value is returned by CVT$CONVERT_FLOAT to variable F_OUT.

Example A-1 Using the CVT$CONVERT_FLOAT Routine

! This program converts IEEE S_float data to VAX F_float format 
!    
! Compile with:   $  F90/FLOAT=IEEE_FLOAT 
!    
    PROGRAM CONVERT 
    INCLUDE '($CVTDEF)' 
    REAL(KIND=4)  F_IN 
    REAL(KIND=4)  F_OUT 
    INTEGER ISTAT 
 
    F_IN = 20.0 
       
    PRINT *,' Sample S_float input value is ', F_IN 
 
    ISTAT=CVT$CONVERT_FLOAT(F_IN, %VAL(CVT$K_IEEE_S), F_OUT, & 
              %VAL(CVT$K_VAX_F), %VAL(CVT$M_ROUND_TO_NEAREST)) 
 
    PRINT *,'Return status ISTAT',ISTAT 
 
!   IF (.NOT. ISTAT) CALL LIB$SIGNAL(%VAL(ISTAT)) 
 
    PRINT *, ' Waiting for specified time ' 
 
    CALL LIB$WAIT (F_OUT) 
    STOP 
    END PROGRAM CONVERT 

A.8 VAX H_float Representation

This section describes the REAL*16 VAX H_float data formats used on OpenVMS VAX systems. On Alpha systems, REAL*16 (extended precision) data is always stored in IEEE X_float format.

With VAX floating-point data types, the binary radix point is to the left of the most-significant bit.

The REAL*16 H_float format is available only on OpenVMS VAX systems; REAL*16 on Alpha systems use X_float format (see Section 8.4.4).

As shown in Figure A-1, REAL*16 H_float data is 16 contiguous bytes starting on an arbitrary byte boundary. The bits are labeled from the right, 0 through 127.

Figure A-1 VAX H_float REAL*16 Representation (VAX Systems)


The form of a REAL*16 (H_float) data is sign magnitude with bit 15 the sign bit, bits 14:0 an excess 16384 binary exponent, and bits 127:16 a normalized 113-bit fraction with the redundant most significant fraction bit not represented.

The value of H_float data is in the approximate range 0.84*10**--4932 through 0.59*10**4932. The precision of H_float data is approximately one part in 2**112 or typically 33 decimal digits.


Appendix B
Diagnostic Messages

Diagnostic messages related to a Compaq Fortran program can come from the compiler, the linker, or the Compaq Fortran run-time system:

These messages are displayed on your terminal or in your log file. The format of the messages is as follows:

%facility-severity-mnemonic, message_text

The contents of the fields of information in diagnostic messages are as follows:
% The percent sign identifies the line as a message.
facility A two-, three-, or four-letter facility code that identifies the origin of the message, whether it came from the compiler (F90), the linker (LINK), or the run-time system (FOR, SS, or MTH).
severity A single character that determines message severity. The four levels of error message severity are: Fatal (F), Error (E), Warning (W), and Informational (I). The definition of each severity level depends on the facility issuing the message.
mnemonic A 6- to 9-character name that uniquely identifies that message.
message_text Explains the event that caused the message to be generated.

B.1 Diagnostic Messages from the Compaq Fortran Compiler

A diagnostic message issued by the compiler describes the detected error and, in some cases, contains an indication of the action taken by the compiler in response to the error.

Besides reporting errors detected in source program syntax, the compiler issues messages indicating errors that involve the compiler itself, such as I/O errors.

B.1.1 Source Program Diagnostic Messages

The severity level of source program diagnostic messages, in order of greatest to least severity, are as follows:
Severity Code Description
F Fatal; must be corrected before the program can be compiled. No object file is produced if an F-severity error is detected during compilation.
E Error; should be corrected. No object file is produced if an F-severity error is detected during compilation.
W Warning; should be investigated by checking the statements to which W-severity diagnostic messages apply. Warnings are issued for statements that use acceptable, but nonstandard, syntax and for statements corrected by the compiler. An object file is produced, but the program results may be incorrect.

Note that W-severity messages are produced unless the /NOWARNINGS qualifier is specified in the FORTRAN command.

I Information; not an error message and does not call for corrective action. However, the I-severity message informs you that either a correct Compaq Fortran statement may have unexpected results or you have used a Compaq Fortran extension to the Fortran 90 or Fortran 95 standard.

Typing mistakes are a likely cause of syntax errors; they can cause the compiler to generate misleading diagnostic messages. Beware especially of the following:

Because a diagnostic message indicates only the immediate cause, you should always check the entire source statement carefully.

The following examples show how source program diagnostic messages are displayed in interactive mode on your screen.


  40    FORMAT (I3,) 
..................^ 
%F90-E-ERROR, An extra comma appears in the format list. 
at line number 13 in file DISK$:[USER]SAMP_MESS.FOR;4 
 
        GO TO 66 
..............^ 
%F90-E-ERROR, This label is undefined.   [66] 
at line number 18 in file DISK$:[USER]SAMP_MESS.FOR;4 

Example B-1 shows how these messages appear in listings.

Example B-1 Sample Diagnostic Messages (Listing Format)

 
MORTGAGE                   30-MAR-1995 14:19:21   Compaq Fortran Xn.n-xxx   Page  1 
                           30-MAR-1995 14:18:48   DISK$:[USER]SAMP_MESS.F90;1 
 
      1 !     Program to calculate monthly mortgage payments 
      2 
      3       PROGRAM MORTGAGE 
      4 
      5       TYPE 10 
      6   10  FORMAT (' ENTER AMOUNT OF MORTGAGE ') 
      7       ACCEPT 20, IPV 
      8   20  FORMAT (I6) 
      9 
     10       TYPE 30 
     11   30  FORMAT (' ENTER LENGTH OF MORTGAGE IN MONTHS ') 
     12       ACCEPT 40, IMON 
     13   40  FORMAT (I3,) 
        ................1  
%F90-E-ERROR, An extra comma appears in the format list. 
at line number 13 in file DISK$:[USER]SAMP_MESS.F90;1 
     14       TYPE 50 
     15   50  FORMAT (' ENTER ANNUAL INTEREST RATE ') 
     16       ACCEPT 60, YINT 
     17   60  FORMAT (F6.4) 
     18       GO TO 66 
        ............1  
%F90-E-ERROR, This label is undefined.   [66] 
at line number 18 in file DISK$:[USER]SAMP_MESS.F90;1 
     19   65  YI = YINT/12     ! Get monthly rate 
     20       IMON = -IMON 
     21       FIPV = IPV * YI 
     22       YI = YI + 1 
     23       FIMON = YI**IMON 
     24       FIMON = 1 - FIMON 
     25       FMNTHLY = FIPV/FIMON 
     26 
     27       TYPE 70, FMNTHLY 
     28   70  FORMAT (' MONTHLY PAYMENT EQUALS ',F7.3 ) 
     29       STOP 
     30       END PROGRAM MORTGAGE 

B.1.2 Compiler-Fatal Diagnostic Messages

Conditions can be encountered of such severity that compilation must be terminated at once. These conditions are caused by hardware errors, software errors, and errors that require changing the FORTRAN command. Printed messages have the form:

%F90-F-MNEMONIC, error_text

The first line of the message contains the appropriate file specification or keyword involved in the error. The operating system supplies more specific information about the error whenever possible. For example, a file read error might produce the following error message:


%F90-F-ERROR, error reading _DBA0:[SMITH]MAIN.FOR;3 
-RMS-W-RTB, 512 byte record too big for user's buffer 
-F90-F-ABORT, abort 

The secondary operating system (in this case the RMS facility) message provides helpful information about the actual cause of the error, as described in the OpenVMS System Messages and Recovery Procedures Reference Manual or the equivalent OpenVMS HELP/MESSAGE facility.

B.2 Messages from the Compaq Fortran Run-Time System

Errors that occur during execution of your Compaq Fortran program are reported by diagnostic messages from the Compaq Fortran Run-Time Library (RTL). These messages may result from hardware conditions, file system errors, errors detected by RMS, errors that occur during transfer of data between the program and an internal record, computations that cause overflow or underflow, incorrect calls to the Compaq Fortran RTL, problems in array descriptions, and conditions detected by the operating system.

As described in Section 7.1, the severity of run-time diagnostic messages can be fatal (F), error (E), warning (W), and informational (I).

The following example shows how run-time messages appear:


%FOR-F-ADJARRDIM, adjustable array dimension error

Table B-1 is an alphabetical list of run-time diagnostic messages---without the message prefixes FOR, SS, and MTH. (Refer to Table 7-1 for a list of the messages in error-number sequence.) For each message, Table B-1 gives a mnemonic, the message number, the severity of the message, the message text, and an explanation of the message.

You can also view a description of specified messages using the following command:


$ HELP FORTRAN RUN_TIME

This displays the mnemonics of all Compaq Fortran run-time diagnostic messages. You can abbreviate the HELP command words and specify a specific error mnemonic, such as:


$ HELP FORTRAN RUN FILNOTFOU

Table B-1 Run-Time Error Messages and Explanations
Mnemonic Number Severity Code, Message Text, and Explanation
ADJARRDIM 93 F, adjustable array dimension error

Upon entry to a subprogram, one of the following errors was detected during the evaluation of dimensioning information:

  • An upper-dimension bound was less than a lower-dimension bound.
  • The dimensions implied an array that was larger than addressable memory.
ASSERTERR 145 F, assertion error

The Compaq Fortran RTL encountered an assertion error. Please report the problem to Compaq.

ATTACCNON 36 F, attempt to access non-existent record

One of the following conditions occurred:

  • A direct access READ, FIND, or DELETE statement attempted to access a nonexistent record from a relative organization file.
  • A direct access READ or FIND statement attempted to access beyond the end of a sequential organization file.
  • A keyed access READ statement attempted to access a nonexistent record from an indexed organization file.
BACERR 23 F, BACKSPACE error

During execution of a BACKSPACE statement, One of the following conditions occurred:

  • The file was not a sequential organization file.
  • The file was not opened for sequential access. (A unit opened for append access must not be backspaced until a REWIND statement is executed for that unit.)
  • RMS (Record Management Services) detected an error condition during execution of a BACKSPACE statement.
BUG_CHECK 8 F, internal consistency check failure

Internal severe error. Please check that the program is correct. Recompile if an error existed in the program.

If this error persists, report the problem to Compaq.

CLOERR 28 F, CLOSE error

An error condition was detected by RMS during execution of a CLOSE statement.

DELERR 55 F, DELETE error

During execution of a DELETE statement, one of the following conditions occurred:

  • On a direct access DELETE, the file that did not have relative organization.
  • On a current record DELETE, the file did not have relative or indexed organization, or the file was opened for direct access.
  • RMS detected an error condition during execution of a DELETE statement.
DIRIO_KEY 258 F, direct-access I/O to unit open for keyed access

The OPEN statement for this unit number specified keyed access and the I/O statement specifies direct access. Check the OPEN statement and make sure the I/O statement uses the correct unit number and type of access. (For more information on statements, see the Compaq Fortran Language Reference Manual.)

DUPFILSPE 21 F, duplicate file specifications

Multiple attempts were made to specify file attributes without an intervening close operation. A DEFINE FILE statement was followed by another DEFINE FILE statement or by an OPEN statement.

ENDDURREA 24 F, end-of-file during read

One of the following conditions occurred:

  • An RMS end-of-file condition was encountered during execution of a READ statement that did not contain an END, ERR, or IOSTAT specification.
  • An end-of-file record written by the ENDFILE statement was encountered during execution of a READ statement that did not contain an END, ERR, or IOSTAT specification.
  • An attempt was made to read past the end of an internal file character string or array during execution of a READ statement that did not contain an END, ERR, or IOSTAT specification.
ENDFILERR 33 F, ENDFILE error

One of the following conditions occurred:

  • The file was not a sequential organization file with variable-length records.
  • The file was not opened for sequential or append access.
  • An unformatted file did not contain segmented records.
  • RMS detected an error during execution of an ENDFILE statement.
ENDRECDUR 268 F, end of record during read

An end-of-record condition was encountered during execution of a nonadvancing I/O READ statement that did not specify the EOR branch specifier.

ERRDURREA 39 F, error during read

RMS detected an error condition during execution of a READ statement.

ERRDURWRI 38 F, error during write

RMS detected an error condition during execution of a WRITE statement.

FILNAMSPE 43 F, file name specification error

A file-name specification given to an OPEN or INQUIRE statement was not acceptable to RMS.

FILNOTFOU 29 F, file not found

A file with the specified name could not be found during an open operation.

FINERR 57 F, FIND error

RMS detected an error condition during execution of a FIND statement.

FLOCONFAI 95 E, floating point conversion failed

The attempted unformatted read or write of nonnative floating-point data failed. One of the following conditions occurred for a nonnative floating-point value:

  • When using VAX data types in memory (/FLOAT=G_FLOAT or /FLOAT=D_FLOAT), the value exceeded the allowable maximum value for the equivalent native format and was set equal to invalid.
  • When using VAX data types in memory (/FLOAT=G_FLOAT or /FLOAT=D_FLOAT), the value was infinity (plus or minus), Not-a-Number (NaN), or otherwise invalid and was set to invalid.
  • When using IEEE data types in memory (/FLOAT=IEEE_FLOAT), the value exceeded the allowable maximum value for the equivalent native format and was set equal to infinity (plus or minus).
  • When using IEEE data types in memory (/FLOAT=IEEE_FLOAT), the value was infinity (plus or minus) and was set to infinity (plus or minus).
  • When using IEEE data types in memory (/FLOAT=IEEE_FLOAT), the value was invalid and was set to Not-a-Number (NaN).

Make sure the correct file was specified. Make sure the record layout matches the format Compaq Fortran is expecting. Check that the correct nonnative floating-point data format was specified, as described in Chapter 9.

FLODIV0EXC 299 I, nn divide-by-zero traps

The total number of floating-point divide-by-zero traps encountered during program execution was nn. This summary message appears at program completion.

FLOINCEXC 297 I, nn floating invalid traps

The total number of floating-point invalid data traps encountered during program execution was nn. This summary message appears at program completion.

FLOOVEMAT 88 F, floating overflow in math library

A floating overflow condition was detected during execution of a math library procedure.

FLOOVREXC 298 I, nn floating overflow traps

The total number of floating-point overflow traps encountered during program execution was nn. This summary message appears at program completion.

FLOUNDEXC 300 I, nn floating underflow traps

The total number of floating-point underflow traps encountered during program execution was nn. This summary message appears at program completion.

FLOUNDMAT 89 E, floating underflow in math library

A floating underflow condition was detected during execution of a math library procedure. The result returned was zero.

FLTDIV 73 E, zero divide

During a floating-point or decimal arithmetic operation, an attempt was made to divide by 0.0.

FLTINE 140 F, floating inexact

A floating-point arithmetic or conversion operation gave a result that differs from the mathematically exact result. This trap is reported if the rounded result of an IEEE operation is not exact.

FLTINV 65 E, floating invalid

During an arithmetic operation, the floating-point values used in a calculation were invalid for the type of operation requested, or invalid exceptional values. For example, when requesting a log of the floating-point values 0.0 or a negative number.

For certain arithmetic expressions, specifying the /CHECK=NOPOWER qualifier can suppress this message (see Section 2.3.9). For information on allowing exceptional IEEE values, see Section 2.3.21.

FLTOVF 72 E, arithmetic trap, floating overflow

During an arithmetic operation, a floating-point value exceeded the largest representable value for that data type. The result returned was the reserved operand, -0.

FLTUND 74 E, floating underflow

During an arithmetic operation, a floating-point value became less than the smallest finite value for that data type and was replaced with a value of zero. When using the /FLOAT=IEEE_FLOAT, depending on the values of the /IEEE_MODE qualifier, the underflowed result was either set to zero or allowed to gradually underflow. See Chapter 8 for ranges of the various data types.

FMTIO_UNF 257 F, formatted I/O to unit open for unformatted transfers

Attempted formatted I/O (such as list-directed or namelist I/O) to a unit where the OPEN statement indicated the file was unformatted (FORM specifier). Check that the correct unit (file) was specified.

If the FORM specifier was not specified in the OPEN statement and the file should contain formatted data, specify FORM='FORMATTED' in the OPEN statement. Otherwise, if appropriate, use unformatted I/O.

FMYSYN 58 I, format syntax error at or near xxx

Check the statement containing xx, a character substring from the format string, for a format syntax error. For information about FORMAT statements, refer to the Compaq Fortran Language Reference Manual.

FORVARMIS 61 F or I, format/variable-type mismatch

An attempt was made either to read or write a real variable with an integer field descriptor (I, L, O, Z, B), or to read or write an integer or logical variable with a real field descriptor (D, E, or F). If /CHECK=NOFORMAT is in effect (see Section 2.3.9), the severity is I (program continues). If execution continues, the following actions occurred:

  • If I, L, O, Z, B, conversion as if INTEGER (KIND=4).
  • If D, E, or F, conversion as if REAL (KIND=4).

To suppress this error message, see Section 2.3.9.

INCFILORG 51 F, inconsistent file organization

One of the following conditions occurred:

  • The file organization specified in an OPEN statement did not match the organization of the existing file.
  • The file organization of the existing file was inconsistent with the specified access mode; that is, direct access was specified with an indexed organization file, or keyed access was specified with a sequential or relative organization file.
INCKEYCHG 50 F, inconsistent key change or duplicate key

A WRITE or REWRITE statement accessing an indexed organization file caused a key field to change or be duplicated. This condition was not allowed by the attributes of the file, as established when the file was created.

INCOPECLO 46 F, inconsistent OPEN/CLOSE parameters

Specifications in an OPEN or CLOSE statement were inconsistent. Some invalid combinations follow:

  • ACTION= ' READ ' or READONLY with STATUS= ' NEW ' or STATUS= ' SCRATCH '
  • ACCESS= ' APPEND ' with READONLY, ACTION= ' READ ' , STATUS= ' NEW ' , or STATUS= ' SCRATCH '
  • DISPOSE='SAVE', 'PRINT', or 'SUBMIT' with STATUS='SCRATCH'
  • DISPOSE='DELETE' with READONLY or ACTION= ' READ '
  • ACCESS= ' APPEND ' with STATUS= ' REPLACE '
  • ACCESS= ' DIRECT ' or ' KEYED ' with POSITION= ' APPEND ' , ' ASIS ' , or ' REWIND '
INCRECLEN 37 F, inconsistent record length

One of the following occurred:

  • An attempt was made to create a new relative, indexed, or direct access file without specifying a record length.
  • An existing file was opened in which the record length did not match the record size given in an OPEN or DEFINE FILE statement.
  • An attempt was made to write to a relative, indexed, or direct access file that was not correctly created or opened.
INCRECTYP 44 F, inconsistent record type

The RECORDTYPE value in an OPEN statement did not match the record type attribute of the existing file that was opened.

INFFORLOO 60 F, infinite format loop

The format associated with an I/O statement that included an I/O list had no field descriptors to use in transferring those values.

INPCONERR 64 F, input conversion error

During a formatted input operation, an invalid character was detected in an input field, or the input value overflowed the range representable in the input variable. The value of the variable was set to zero.

INPRECTOO 22 F, input record too long

A record was read that exceeded the explicit or default record length specified when the file was opened. To read the file, use an OPEN statement with a RECL value of the appropriate size.

INPSTAREQ 67 F, input statement requires too much data

Attempted to read more data than exists in a record with an unformatted READ statement or with a formatted sequential READ statement from a file opened with a PAD specifier value of ' NO ' .

INSVIRMEM 41 F, insufficient virtual memory

The Compaq Fortran Run-Time Library attempted to exceed its virtual page limit while dynamically allocating space. Inform your system manager that process quotas and/or system parameters need to be increased. For information about virtual memory use, see Section 1.1 and the Compaq Fortran Installation Guide for OpenVMS Alpha Systems.

INTDIV 71 F, integer zero divide

During an integer arithmetic operation, an attempt was made to divide by zero. The result of the operation was set to the dividend, which is equivalent to division by one (1).

INTOVF 70 F, integer overflow

During an arithmetic operation, an integer value exceeded its range. The result of the operation was the correct low-order part. Consider specifying a larger integer data size (or use the /INTEGER_SIZE qualifier for INTEGER declarations without a kind or specifier.) See Chapter 8 for ranges of the various integer data types.

INVARGFOR 48 F, invalid argument to Fortran Run-Time Library

The Compaq Fortran compiler passed an invalid coded argument to the Run-Time Library. This can occur if the compiler is newer than the Compaq Fortran RTL in use.

INVARGMAT 81 F, invalid argument to math library

One of the mathematical procedures detected an invalid argument value.

INVDEALLOC 153 F, allocatable array is not allocated

A Fortran allocatable array or pointer must already be allocated when you attempt to deallocate it. You must allocate the array or pointer before it can again be deallocated.

INVKEYSPE 49 F, invalid key specification

A key specification in an OPEN statement or in a keyed access READ statement was invalid. For example, the key length may have been zero or greater than 255 bytes, or the key length may not conform to the key specification of the existing file.

INVLOGUNI 32 F, invalid logical unit number

A logical unit number less than zero or greater than 2,147,483,647 was used in an I/O statement.

INVMATKEY 94 F, invalid key match specifier for key direction

A keyed READ used an invalid key match specifier for the direction of that key. Use KEYGE and KEYGT only on ascending keys. Use KEYLE and KEYLT only on descending keys. Use KEYNXT and KEYNXTNE to avoid enforcement of key direction and match specifier.

INVREALLOC 151 F, allocatable array is already allocated

A Fortran allocatable array must not already be allocated when you attempt to allocate it. You must deallocate the array before it can again be allocated.

INVREFVAR 19 F, invalid reference to variable in NAMELIST input

The variable in error is shown as "varname" in the message text. One of the following conditions occurred:

  • The variable was not a member of the namelist group.
  • An attempt was made to subscript the scalar variable.
  • A subscript of the array variable was out-of-bounds.
  • An array variable was specified with too many or too few subscripts for the variable.
  • An attempt was made to specify a substring of a noncharacter variable or array name.
  • A substring specifier of the character variable was out-of-bounds.
  • A subscript or substring specifier of the variable was not an integer constant.
  • An attempt was made to specify a substring using an unsubscripted array variable.
KEYIO_DIR 260 F, keyed-access I/O to unit open for direct access

The OPEN for this unit number specified direct access and the I/O statement specifies keyed access. Check the OPEN statement and make sure the I/O statement uses the correct unit number and type of access. (For more information on statements, see the Compaq Fortran Language Reference Manual.)

KEYVALERR 45 F, keyword value error in OPEN statement

An improper value was specified for an OPEN or CLOSE statement keyword specifier requiring a value.

LISIO_SYN 59 F, list-directed I/O syntax error

The data in a list-directed input record had an invalid format, or the type of the constant was incompatible with the corresponding variable. The value of the variable was unchanged.

LOGZERNEG 83 F, logarithm of zero or negative value

An attempt was made to take the logarithm of zero or a negative number. The result returned was --0.

MIXFILACC 31 F, mixed file access modes

One of the following conditions occurred:

  • An attempt was made to use both formatted and unformatted operations on the same unit.
  • An attempt was made to use an invalid combination of access modes on a unit, such as direct and sequential. The only valid combination is sequential and keyed access on a unit opened with ACCESS='KEYED'.
  • An attempt was made to execute a Fortran I/O statement on a logical unit that was opened by a program coded in a language other than Fortran.
NOTFORSPE 1 F, not a Fortran-specific error

An error occurred in the user program or in the Compaq Fortran RTL that was not a Fortran-specific error.

NO_CURREC 53 F, no current record

A REWRITE or current record DELETE operation was attempted when no current record was defined. To define the current record, execute a successful READ statement. You can optionally perform an INQUIRE statement on the logical unit after the READ statement and before the REWRITE statement. No other operations on the logical unit may be performed between the READ and REWRITE statements.

NO_SUCDEV 42 F, no such device

A file specification included an invalid or unknown device name when an OPEN operation was attempted.

NULPTRERR 146 F, null pointer error

Attempted to use a pointer that does not contain an address. Modify the source program, recompile, and relink.

OPEDEFREQ 26 F, OPEN or DEFINE FILE required for keyed or direct access

One of the following conditions occurred:

  • A direct access READ, WRITE, FIND, or DELETE statement specified a file that was not opened with a DEFINE FILE statement or with an OPEN statement specifying ACCESS='DIRECT'.
  • A keyed access READ statement specified a file that was not opened with an OPEN statement specifying ACCESS='KEYED'.
OPEFAI 30 F, open failure

An error was detected by RMS while attempting to open a file in an OPEN, INQUIRE, or other I/O statement. This message is issued when the error condition is not one of the more common conditions for which specific error messages are provided. It can occur when an OPEN operation was attempted for one of the following:

  • Segmented file that was not on a disk or a raw magnetic tape
  • Standard process I/O file that had been closed
OPEREQSEQ 265 F, operation requires sequential file organization and access

Attempted BACKSPACE operation for a unit that is not connected to a sequential file opened for sequential access. Make sure the BACKSPACE statement specified the right unit number and the OPEN statement specified the correct file and access.

OPERREQDIS 264 F, operation requires file to be on disk or tape

Attempted BACKSPACE operation for a unit that is not connected to a disk or tape device. Make sure the BACKSPACE statement specified the right unit number and the OPEN statement specified the correct device.

OUTCONERR 63 E or I, output conversion error

During a formatted output operation, the value of a particular number could not be output in the specified field length without loss of significant digits. If /CHECK=NOOUTPUT_CONVERSION is in effect (see Section 2.3.9), the severity is I (program continues). When /CHECK=NOOUTPUT_CONVERSION is in effect or if no ERR address is defined for the I/O statement encountering this error, the program continues and the entire overflowed field is filled with asterisks to indicate the error in the output record.

OUTSTAOVE 66 F, output statement overflows record

An output statement attempted to transfer more data than would fit in the maximum record size.

RANGEERR 150 F, range error

An integer value appears in a context where the value of the integer is outside the permissible range.

RECIO_OPE 40 F, recursive I/O operation

While processing an I/O statement for a logical unit, another I/O operation on the same logical unit was attempted. One of the following conditions may have occurred:

  • A function subprogram that performs I/O to the same logical unit was referenced in an expression in an I/O list or variable format expression.
  • An I/O statement was executed at AST level for the same logical unit.
  • An exception handler (or a procedure it called) executed an I/O statement in response to a signal from an I/O statement for the same logical unit.
RECNUMOUT 25 F, record number outside range

A direct access READ, WRITE, or FIND statement specified a record number outside the range specified when the file was created.

RESACQFAI 152 F, unresolved contention for Compaq Fortran RTL global resource.

Failed to acquire a Compaq Fortran RTL global resource for a reentrant routine.

For a multithreaded program, the requested global resource is held by a different thread in your program.

For a program using asynchronous handlers, the requested global resource is held by the calling part of the program (such as the main program) and your asynchronous handler attempted to acquire the same global resource.

REWERR 20 F, REWIND error

One of the following conditions occurred:

  • The file was not a sequential organization file.
  • The file was not opened for sequential or append access.
  • RMS detected an error condition during execution of a REWIND statement.
REWRITERR 54 F, REWRITE error

RMS detected an error condition during execution of a REWRITE statement.

ROPRAND 144 F, reserved operand

The Compaq Fortran encountered a reserved operand. Please report the problem to Compaq.

SEGRECFOR 35 F, segmented record format error

An invalid segmented record control data word was detected in an unformatted sequential file. The file was probably either created with RECORDTYPE='FIXED' or 'VARIABLE' in effect, or was created by a program written in a language other than Fortran.

SEQIO_DIR 259 F, sequential-access I/O to unit open for direct access

The OPEN for this unit number specified direct access and the I/O statement specifies sequential access. Check the OPEN statement and make sure the I/O statement uses the correct unit number and type of access. (For more information on statements, see the Compaq Fortran Language Reference Manual.)

SIGLOSMAT 87 F, significance lost in math library

The magnitude of an argument or the magnitude of the ratio of the arguments to a math library function was so large that all significance in the result was lost. The result returned was the reserved operand, -0.

SPERECLOC 52 F, specified record locked

A read operation or direct access write, find, or delete operation was attempted on a record that was locked by another user.

SQUROONEG 84 F, square root of negative value

An argument required the evaluation of the square root of a negative value. The result returned was the reserved operand, -0.

STKOVF 147 F, stack overflow

The Compaq Fortran RTL encountered a stack overflow while executing your program.

STRLENERR 148 F, string length error

During a string operation, an integer value appears in a context where the value of the integer is outside the permissible string length range. Try recompiling with /CHECK=BOUNDS or examine source code.

SUBRNG 77 F, subscript out of range

An array reference was detected outside the declared array bounds.

SUBSTRERR 149 F, substring error

An array subscript is outside the dimensioned boundaries of an array. Try recompiling with /CHECK=BOUNDS or examine source code.

SYNERRFOR 62 F, syntax error in format

A syntax error was encountered while the Compaq Fortran RTL was processing a format stored in an array or character variable.

SYNERRNAM 17 F, syntax error in NAMELIST input "text"

The syntax of input to a namelist-directed READ statement was incorrect. (The part of the record in which the error was detected is shown as "text" in the message text.)

TOOMANREC 27 F, too many records in I/O statement

One of the following conditions occurred:

  • An attempt was made to read or write more than one record with an ENCODE or DECODE statement.
  • An attempt was made to write more records than existed.
TOOMANVAL 18 F, too many values for NAMELIST variable "varname"

An attempt was made to assign too many values to a variable during a namelist-directed READ statement. (The name of the variable is shown as "varname" in the message text.)

UNDEXP 82 F, undefined exponentiation

An exponentiation that is mathematically undefined was attempted, for example, 0.**0. The result returned for floating-point operations was --0, and for integer operations, zero.

UNFIO_FMT 256 F, unformatted I/O to unit open for formatted transfers

Attempted unformatted I/O to a unit where the OPEN statement indicated the file was formatted (FORM specifier). Check that the correct unit (file) was specified.

If the FORM specifier was not specified in the OPEN statement and the file should contain unformatted data, specify FORM= ' UNFORMATTED ' in the OPEN statement. Otherwise, if appropriate, use formatted I/O (such as list-directed or namelist I/O).

UNIALROPE 34 F, unit already open

A DEFINE FILE statement specified a logical unit that was already opened.

UNLERR 56 F, UNLOCK error

RMS detected an error condition during execution of an UNLOCK statement.

VFEVALERR 68 F, variable format expression value error

The value of a variable format expression was not within the range acceptable for its intended use; for example, a field width was less than or equal to zero. A value of one was assumed, except for a P edit descriptor, for which a value of zero was assumed.

WRIREAFIL 47 F, write to READONLY file

A write operation was attempted to a file that was declared ACTION= ' READ ' or READONLY in the OPEN statement that is currently in effect.

WRONUMARG 80 F, wrong number of arguments

An improper number of arguments was used to call a math library procedure.


Previous Next Contents Index