Must be corrected before the program can be compiled. Compilation stops at the point where the fatal error is encountered. An object file is not produced (linking does not occur).The fatal messages follow (in alphabetical order):
o MESSAGE: Adjustable array used in invalid context
EXPLANATION: A reference to an adjustable array was made in a context where such a reference is not allowed.
o MESSAGE: Aggregate reference where scalar reference required
EXPLANATION: An aggregate reference was used where a scalar reference was required.
o MESSAGE: Alternate return label used in invalid context
EXPLANATION: An alternate return argument cannot be used in a function reference.
o MESSAGE: Alternate return specifier invalid in FUNCTION subprogram
EXPLANATION: The argument list of a FUNCTION declaration contains an asterisk, or a RETURN statement in a function subprogram specifies an alternate return. The following example shows a FUNCTION declaration that contains an asterisk:
INTEGER FUNCTION TCB(ARG,*,X)
The following example shows a RETURN statement in a function subprogram that specifies an alternate return.
FUNCTION IMAX . . . RETURN I
o MESSAGE: Arithmetic expression where character value required
EXPLANATION: An expression that must be of type CHARACTER was of another data type.
o MESSAGE: Assumed size array name used in invalid context
EXPLANATION: An assumed-size array name was used in a context in which the size of the array was required, for example, in an I/O list.
o MESSAGE: Automatic class variable not permitted here
EXPLANATION: Specified automatic variable cannot be used in this context.
o MESSAGE: Character expression where arithmetic value required
EXPLANATION: An expression that must be arithmetic (INTEGER, REAL, LOGICAL, or COMPLEX) was of type CHARACTER.
o MESSAGE: Character substring limits out of order
EXPLANATION: The first character position of a substring expression was greater than the last character position. For example:
C(5:3)
o MESSAGE: Conflicting values for xxx
EXPLANATION: Command line error. For example:
$ f77 -convert vaxg -convert ibm x.f
Only one -convert value may be specified.
o MESSAGE: Compiler expression stack overflow
EXPLANATION: An expression was too complex or too many actual arguments were included in a subprogram reference. A maximum of 255 actual arguments can be compiled. You can subdivide a complex expression or reduce the number of arguments.
o MESSAGE: DO or IF statement incorrectly nested
EXPLANATION: One of the following conditions was encountered:
- A statement label specified in a DO statement was used previously. For example:
10 I = I + 1 J = J + 1 DO 10 K=1,10
- A DO loop contains an incomplete DO loop or IF block. For example:
DO 10 I=1,10 J = J + 1 DO 20 K=1,10 J = J + K 10 CONTINUE
The start of the incomplete IF block can be a block IF, ELSE IF, or ELSE statement:
DO 10 I=1,10 J = J + I IF (J .GT. 20) THEN J = J - 1 ELSE J = J + 1 10 CONTINUE END IF
o MESSAGE: DO and IF statements nested too deeply
EXPLANATION: DO loops and block IF statements cannot be nested beyond 128 levels.
o MESSAGE: Duplicated keyword in I/O statement
EXPLANATION: Each keyword subparameter in an I/O statement or auxiliary I/O statement can be specified only once.
o MESSAGE: END [STRUCTURE|UNION|MAP] must match top
EXPLANATION: A STRUCTURE, UNION, or MAP statement did not have a corresponding END STRUCTURE, END UNION, or END MAP statement, respectively.
o MESSAGE: ENTRY dummy variable previously used in executable statement
EXPLANATION: The dummy arguments of an ENTRY statement were not used in a previous executable statement in the same program unit.
o MESSAGE: EQUIVALENCE statement incorrectly expands a common block
EXPLANATION: An EQUIVALENCE statement cannot cause a common block to be extended back past the first element specified in the COMMON statement.
o MESSAGE: Error limit exceeded; compilation terminated
EXPLANATION: The number of error-level and fatal-error errors has reached the limit given in -error_limit nn (or the default of 30 errors). Recompile with a larger -error_limit value or correct the errors displayed up to the point of termination and then recompile.
o MESSAGE: Fatal BE error
EXPLANATION: Internal error related to error code passing between the compiler front end and back end. Submit an SPR.
o MESSAGE: Field name not defined for this structure
EXPLANATION: A field name not defined in a structure was used in a qualified reference.
o MESSAGE: Format specifier in error
EXPLANATION: The format specifier in an I/O statement was invalid. It must be one of the following:
- Label of a FORMAT statement - Asterisk (*) in a list-directed I/O statement - Run-time format specifier: variable, array element, or character substring reference - Integer variable that was assigned a FORMAT label by an ASSIGN statement
o MESSAGE: INCLUDE files nested too deeply
EXPLANATION: A maximum of 10 levels of nested INCLUDE files are allowed.
o MESSAGE: Inconsistent function data types
EXPLANATION: The function name and entry points in a function subprogram must be consistent within one of three groups of data types:
Group 1: All numeric types except COMPLEX*16 Group 2: COMPLEX*16 Group 3: Character
Example:
CHARACTER*15 FUNCTION I REAL*4 G ENTRY G
o MESSAGE: Inconsistent use of statement label
EXPLANATION: Labels of executable statements were confused with labels of FORMAT statements or with labels of nonexecutable statements. For example:
GO TO 10 10 FORMAT (I5)
o MESSAGE: Incorrect keyword in OPEN, CLOSE, or INQUIRE statement
EXPLANATION: An OPEN, CLOSE, or INQUIRE statement contained a keyword that was not valid for that statement.
o MESSAGE: Incorrect length modifier in declaration
EXPLANATION: An unacceptable length was specified in a data type declaration. For example:
INTEGER PIPES*8
o MESSAGE: Internal error, xxxxxxxxxxx
EXPLANATION: Internal error. The xxxxxxxxx is replaced by information about the error. Submit an SPR.
o MESSAGE: Invalid argument to %VAL, %REF or %LOC
EXPLANATION: The argument specified for one of the built-in functions was not valid. For example:
%VAL (3.5D0) - Error: Argument cannot be REAL*8, character, or complex. %LOC (X+Y) - Error: Argument must not be an expression.
o MESSAGE: Invalid ASSIGN variable
EXPLANATION: Attempted to use an ASSIGN variable in an invalid context, such as trying to assign a value to a pointer variable. For example:
POINTER (P,A) ASSIGN 1 TO P GOTO P
o MESSAGE: Invalid control structure using ELSE IF, ELSE, or END IF
EXPLANATION: The order of ELSE IF, ELSE, or END IF statements was incorrect.
ELSE IF, ELSE, and END IF statements cannot stand alone. ELSE IF and ELSE must be preceded by either a block IF statement or an ELSE IF statement. END IF must be preceded by either a block IF, ELSE IF, or ELSE statement. For example:
DO 10 I=1,10 J = J + I ELSE IF (J .LE. K) THEN
Error: The ELSE IF is preceded by a DO statement
IF (J .LT. K) THEN J = I + J ELSE J = I - J ELSE IF (J .EQ. K) THEN END IF
Error: The ELSE IF is preceded by an ELSE statement
o MESSAGE: Invalid DO parameters in implied-DO list
EXPLANATION: An invalid control parameter was detected in an implied-DO list in a DATA statement;for example, an increment of zero.
o MESSAGE: Invalid equivalence of two variables in common
EXPLANATION: Variables in common blocks cannot be equivalenced to each other.
o MESSAGE: Invalid I/O list element for input statement
EXPLANATION: An input statement I/O list contained an invalid element, such as an expression or a constant.
o MESSAGE: Invalid I/O specification for this type of I/O statement
EXPLANATION: A syntax error was found in the portion of an I/O statement that precedes the I/O list. For example:
TYPE (6), J WRITE 100, J
o MESSAGE: Invalid keyword for this type of I/O statement
EXPLANATION: An I/O statement contained a keyword that cannot be used with that type of I/O statement.
o MESSAGE: Invalid NAMELIST element
EXPLANATION: A dummy argument or element other than variable or array name appeared in a NAMELIST declaration.
o MESSAGE: Invalid operation in implied-DO list
EXPLANATION: An invalid operation was attempted in an implied-DO list in a DATA statement, for example, a function reference in the subscript or substring expression of an array or character substring reference. For example:
DATA (A(SIN(REAL(I))), I=1,10) /101./
o MESSAGE: Invalid reference to name in implied-DO list
EXPLANATION: A control parameter expression in an implied-DO list in a DATA statement contained a name that was not the name of a control variable within the scope of any implied-DO list. For example:
DATA (A(J), J=1,10),(B(I), I=J,K) /1001./
Both J and K in the second implied-DO list are invalid names.
o MESSAGE: Invalid use of function name in CALL statement
EXPLANATION: A CALL statement referred to a subprogram name that was used as a CHARACTER or COMPLEX*16 function. For example:
IMPLICIT CHARACTER*10(C) CSCAL = CFUNC(X) CALL CFUNC(X)
o MESSAGE: Invalid use of record or array name
EXPLANATION: A statement in the program violated one of the following rules:
- An aggregate cannot be assigned to a nonaggregate or to an aggregate with a structure that is not the same. - An array name reference cannot be qualified. - Aggregate references cannot be used in I/O lists of formatted I/O statements.
o MESSAGE: Label in ASSIGN statement exceeds INTEGER*2 range
EXPLANATION: A label whose value is assigned to an INTEGER*2 variable by an ASSIGN statement must not be separated by more than 32K bytes from the beginning of the code for the program unit.
o MESSAGE: Left side of assignment must be variable or array element
EXPLANATION: The symbolic name to which the value of an expression is assigned must be a variable, array element, or character substring reference.
o MESSAGE: Missing constant
EXPLANATION: A required constant was not found.
o MESSAGE: Missing keyword
EXPLANATION: A required keyword, such as TO, was omitted from a statement such as ASSIGN 10 TO I.
o MESSAGE: Missing operator or delimiter symbol
EXPLANATION: Two terms of an expression were not separated by an operator, or a punctuation mark (such as a comma) was omitted. For example:
CIRCUM = 3.14 DIAM ! * is missing IF (I 10,20,30 ! ) is missing
o MESSAGE: Missing or invalid use of UNIT or FILE specifier in INQUIRE statement
EXPLANATION: An INQUIRE statement must have a UNIT specifier or a FILE specifier, but not both.
o MESSAGE: Missing statement label
EXPLANATION: A required statement label reference was omitted.
o MESSAGE: Missing variable or constant
EXPLANATION: An expression or a term of an expression was omitted. For example:
WRITE ( ) DIST = *TIME
o MESSAGE: Missing variable or subprogram name
EXPLANATION: A required variable name or subprogram name was not found.
o MESSAGE: Multiple declaration of name
EXPLANATION: A name appeared in two or more inconsistent declaration statements or a dummy argument was specified in an EQUIVALENCE statement.
o MESSAGE: Multiply defined field name
EXPLANATION: Each field name within the same level of a given structure declaration must be unique.
o MESSAGE: Multiply defined STRUCTURE name
EXPLANATION: A STRUCTURE name must be unique among STRUCTURE names.
o MESSAGE: Name previously used with conflicting data type
EXPLANATION: A data type was assigned to a name that had already been used in a context that required a different data type.
o MESSAGE: Nonconstant subscript where constant required
EXPLANATION: Subscript and substring expressions used in DATA and EQUIVALENCE statements must be constants.
o MESSAGE: Non-integer expression where integer value required
EXPLANATION: An expression that must be of type integer was of some other data type.
o MESSAGE: Non-logical expression where logical value required
EXPLANATION: An expression that must have a LOGICAL data type has another data type.
o MESSAGE: No source file specified
EXPLANATION: A command line was entered that specified only library file names and no source files to compile.
o MESSAGE: Number of subscripts does not match array declaration
EXPLANATION: Too many or too few dimensions than were declared for the array were referenced.
o MESSAGE: Only one of: xxx, xxx, xxx may be specified
EXPLANATION: Command line error. For example:
$ f77 -call_shared -non_shared x.f
Only one of the following options can be used at a time: -call_shared, -non_shared, or -shared.
o MESSAGE: Open failure on INCLUDE file
EXPLANATION: The specified file could not be opened, possibly due to an incorrect file specification, nonexistent file, unmounted volume, or a protection violation.
o MESSAGE: Operation not permissible on these data types
EXPLANATION: An invalid operation was specified, such as an .AND. of two real variables.
o MESSAGE: Passed-length character name used in invalid context
EXPLANATION: A reference to a passed-length character array or variable was made in a context where such a reference is not allowed.
o MESSAGE: Program storage requirements exceed addressable memory
EXPLANATION: The storage space allocated to the variables and arrays of the program unit exceeded the addressing range of the machine.
o MESSAGE: Requested source is not available on ULTRIX
EXPLANATION: The program attempted to use one of the following VAX FORTRAN I/O features that are not available on ULTRIX or DEC OSF/1 systems, such as using the DICTIONARY statement or using an INCLUDE statement for a text module from a library file.
o MESSAGE: Statement cannot appear in logical IF statement
EXPLANATION: A logical IF statement must not contain a DO statement or another logical IF, IF THEN, ELSE IF, ELSE, END IF, or END statement.
o MESSAGE: Statement not allowed within structure; structure definition closed
EXPLANATION: A statement not allowed in a structure declaration block was encountered. When this situation occurs, the compiler assumes that you omitted one or more END STRUCTURE statements.
o MESSAGE: Statement too complex
EXPLANATION: A statement was too complex to be compiled. It must be subdivided into two or more statements.
o MESSAGE: Structure field is missing a field name
EXPLANATION: Unnamed fields are not allowed. The effect of an unnamed field can be achieved by using %FILL in place of a field name in a typed data declaration.
o MESSAGE: Structure name in RECORD statement not defined
EXPLANATION: Either a RECORD statement did not contain a structure name enclosed within slashes or the structure name contained in a RECORD statement was not defined in a structure declaration.
o MESSAGE: STRUCTUREs/UNIONs/MAPs nested too deeply
EXPLANATION: The combined nesting level limit for structures, unions, and maps is 20 levels.
o MESSAGE: Subqualifier not allowed with negated qualifier
EXPLANATION: A negated qualifier specified on the command line also specified subqualifier values; for example: -nocheck underflow.
o MESSAGE: Subscripted reference to non-array variable
EXPLANATION: A variable that is not defined as an array cannot appear with subscripts.
o MESSAGE: Syntax error in implied-DO
EXPLANATION: Improper syntax was detected in an implied-DO list in data initialization, for instance, improperly nested parentheses.
o MESSAGE: Syntax error in INCLUDE file specification
EXPLANATION: The file-name string was not acceptable (invalid syntax, invalid qualifier, undefined device, and so on).
o MESSAGE: Syntax error in I/O list
EXPLANATION: Improper syntax was detected in an I/O list.
o MESSAGE: This language feature is not supported on this system
EXPLANATION: Attempted to use an unsupported feature. Such features may be supported by VAX FORTRAN but are not available on this platform, such as declaring data as REAL*16 and the %DESCR built-in function. See your DEC Fortran user manual for information about VAX FORTRAN compatibility.
o MESSAGE: Too many named common blocks
EXPLANATION: DEC Fortran allows a maximum of 250 named common blocks. You must reduce the number in your program.
o MESSAGE: Unclosed DO loop or IF block
EXPLANATION: The terminal statement of a DO loop or the END IF statement of an IF block was not found. For example:
DO 20 I=1,10 X = Y END
o MESSAGE: Undefined statement label
EXPLANATION: A reference was made to a statement label that was not defined in the program unit or a nonexecutable statement label was used where an executable statement label was required.
o MESSAGE: Undimensioned array or statement function definition out of order
EXPLANATION: Either a statement function definition was found among executable statements or an assignment statement involving an undimensioned array was found.
o MESSAGE: Unit specifier keyword missing in I/O statement
EXPLANATION: An I/O statement must include a unit specifier subparameter.
o MESSAGE: Variable inconsistently equivalenced to itself
EXPLANATION: EQUIVALENCE statements specified inconsistent relationships between variables or array elements. For example:
EQUIVALENCE (A(1), A(2))
o MESSAGE: Variable name, constant, or expression invalid in this context
EXPLANATION: An entity was used incorrectly; for example, the name of a subprogram was used where an arithmetic expression was required.
Must be corrected before the program can be compiled. An object file is not produced (linking does not occur).The severe messages follow (in alphabetical order):
o MESSAGE: Implied DO loop increment is 0
EXPLANATION: The value of the implied DO loop increment was zero.
o MESSAGE: This DATA implied-DO list name must be subscripted
EXPLANATION: In a DATA statement, an implied DO loop referred to a variable missing a subscript. For example:
INTEGER A(10) DATA (A,I=3,5) /3*20/
The correct use for this example is DATA (A(I),I=3,5) /3*20/.
Must be corrected before the program can be compiled. An object file is not produced (linking does not occur).The error messages follow (in alphabetical order):
o MESSAGE: Adjustable array bound contains invalid data item
EXPLANATION: A dimension declarator expression for an adjustable array contained an operand other than a constant, variable in a common block, or variable associated with a subprogram dummy argument.
o MESSAGE: Alternate return omitted in SUBROUTINE or ENTRY statement
EXPLANATION: An asterisk was missing in the argument list of a subroutine for which an alternate return was specified. For example:
ENTRY ABC(Q,R) . . . RETURN 1
o MESSAGE: Arithmetic error while evaluating constant or constant expression
EXPLANATION: The specified value of a constant was too large or too small to be represented.
o MESSAGE: Character name incorrectly initialized with numeric value
EXPLANATION: A character data item with a length greater than one was initialized with a numeric value in a DATA statement. For example:
CHARACTER*4 A DATA A/14/
o MESSAGE: Character scalar memory reference or array required for internal files
EXPLANATION: Attempted use of internal file I/O using a type of variable that is not valid. For more information, see your DEC Fortran user manual.
o MESSAGE: Constant in format item out of range
EXPLANATION: A numeric value in a FORMAT statement exceeds the allowable range. See the DEC Fortran Language Reference Manual for information about range limits.
o MESSAGE: Declaration of globally visible name conflicts with a previous declaration
EXPLANATION: The name specified in a PROGRAM, BLOCK DATA, COMMON, ENTRY, FUNCTION, or SUBROUTINE statement has already been used. For instance, a COMMON block has the same name as an external routine.
o MESSAGE: ENTRY within DO loop or IF block
EXPLANATION: An ENTRY statement is not allowed within the range of a DO loop or IF block.
o MESSAGE: Extra characters following a valid statement
EXPLANATION: Superfluous text was found at the end of a syntactically correct statement. Check for typing or syntax errors.
o MESSAGE: Extra number in format list
EXPLANATION: A format list contained an extraneous number. For example:
FORMAT (I4,3)
o MESSAGE: Format groups nested too deeply
EXPLANATION: Format groups cannot be nested beyond eight levels.
o MESSAGE: Format item cannot be signed
EXPLANATION: A signed constant is valid only with the P format code.
o MESSAGE: Format item contains meaningless character
EXPLANATION: An invalid character or a syntax error was detected in a FORMAT statement.
o MESSAGE: Inconsistent statement function reference
EXPLANATION: The actual arguments in a statement function reference did not agree in either order, number, or data type with the formal arguments declared.
o MESSAGE: Invalid ASSOCIATEVARIABLE specification
EXPLANATION: An ASSOCIATEVARIABLE specification in an OPEN or DEFINE FILE statement was a dummy argument or an array element.
o MESSAGE: Invalid character after a backslash
EXPLANATION: In a character literal, the character specified after the backslash (\) was not one of the allowable characters (such as \n for new line) used to produce a nonprinting character. For information on the allowable characters for C-style escape sequences, see the DEC Fortran Language Reference Manual.
o MESSAGE: Invalid character used in constant
EXPLANATION: An invalid character was detected in a constant. Only the characters 0-9, A-F, and a-f are valid for hexadecimal constants. The entire hexadecimal constant is set to zero.
o MESSAGE: Invalid repeat count in data initialization, count ignored
EXPLANATION: The repeat count in a data initialization was not an unsigned, nonzero integer constant. When this error is encountered, the count is ignored.
o MESSAGE: Invalid use of intrinsic function name as actual argument
EXPLANATION: A generic intrinsic function name was used as an actual argument.
o MESSAGE: I/O list not permitted with namelist I/O
EXPLANATION: An I/O statement with a namelist specifier incorrectly contained an I/O list.
o MESSAGE: Missing apostrophe in character constant
EXPLANATION: A character constant must be enclosed in apostrophes.
o MESSAGE: Missing exponent after E, D, or Q
EXPLANATION: A floating-point constant was specified in E, D, or Q notation, but the exponent was omitted.
o MESSAGE: Missing number in format list
EXPLANATION: An expected number was missing from a format list. For example:
FORMAT (F6.)
o MESSAGE: Missing separator between format items
EXPLANATION: A required separator character was omitted between fields in a FORMAT statement.
o MESSAGE: Missing variable or common name
EXPLANATION: A name of a variable or a common block that is required by a compiler directive statement or a VOLATILE statement was omitted.
o MESSAGE: More than 7 dimensions specified
EXPLANATION: An array can be defined as having up to seven dimensions.
o MESSAGE: Multiple definition of statement label
EXPLANATION: The same label appeared on more than one statement. When this error is encountered, the first occurrence of the label is used.
o MESSAGE: Nonstandard operation
EXPLANATION: One of the following operations was detected:
- Logical operand and a nonlogical operand were used in the same operation. - Real type expression and a complex type expression were used in the same statement. - Character operand and a noncharacter operand were used in the same operation. - Nonlogical expression was assigned to a logical variable. - Noncharacter expression was assigned to a character variable. - Character dummy argument appeared in a concatenation operation and the result of the expression was not assigned to a character variable. - Logical operators were used with nonlogical operands. - Arithmetic operators were used with nonnumeric operands.
o MESSAGE: Outer level structure is missing a structure name
EXPLANATION: An outer level STRUCTURE statement must have a structure name in order for a RECORD statement to be able to reference the structure declaration.
o MESSAGE: Preprocessor record: error opening specified file
EXPLANATION: Internal information from cpp is not in the correct format. This could be caused by a pound sign (#) character in column 1 of the Fortran source code that is not a cpp directive or internal information from cpp.
o MESSAGE: Preprocessor record file spec misspelled
EXPLANATION: Internal information from cpp is not in the correct format, possibly caused by a pound sign (#) character in column 1 of the Fortran source code that is not a cpp directive or internal information from cpp.
o MESSAGE: Preprocessor record line number not integer
EXPLANATION: Internal information from cpp is not in the correct format, possibly caused by a pound sign (#) character in column 1 of the Fortran source code that is not a cpp directive or internal information from cpp.
o MESSAGE: Preprocessor record missing file spec
EXPLANATION: Internal information from cpp is not in the correct format, possibly caused by a pound sign (#) character in column 1 of the Fortran source code that is not a cpp directive or internal information from cpp.
o MESSAGE: Preprocessor record missing line number
EXPLANATION: Internal information from cpp is not in the correct format, possibly caused by a pound sign (#) character in column 1 of the Fortran source code that is not a cpp directive or internal information from cpp.
o MESSAGE: Statement not allowed within structure definition
EXPLANATION: A statement not allowed in a structure declaration block was encountered. Structure declaration blocks can only include the following statements: typed data declaration statements, RECORD statements, UNION/END UNION statements, MAP/END MAP statements, and STRUCTURE/END STRUCTURE statements.
o MESSAGE: Statement not valid in this program unit
EXPLANATION: A program unit contained a statement that is not allowed; for example, a BLOCK DATA subprogram containing an executable statement.
o MESSAGE: Statement out of order
EXPLANATION: The order of statements was invalid. When this error is encountered, the statement found to be out of order is ignored.
o MESSAGE: Subscript or substring expression value out of bounds
EXPLANATION: An array element beyond the specified dimensions or a character substring outside the specified bounds was referenced.
o MESSAGE: Substring reference used in invalid context
EXPLANATION: A substring reference to a variable or array that is not of type character was detected. For example:
REAL X(10) Y = X(J:K)
o MESSAGE: Syntax error in IMPLICIT statement
EXPLANATION: Improper syntax was used in an IMPLICIT statement.
o MESSAGE: Too many continuation lines
EXPLANATION: You cannot use more than 99 continuation lines.
o MESSAGE: Unbalanced parentheses in format list
EXPLANATION: The number of right parentheses must match the number of left parentheses.
o MESSAGE: Undimensioned array reference or scalar is subscripted
EXPLANATION: The variable appearing in a DATA statement or namelist has not been dimensioned, yet appears with a subscript.
o MESSAGE: Unknown keyword value
EXPLANATION: The specified keyword value is not valid. For more information, see the DEC Fortran Language Reference Manual.
o MESSAGE: Untyped name, must be explicitly typed
EXPLANATION: The displayed name was not defined in any data type declaration statement, and an IMPLICIT NONE statement was specified. Check that the name was not accidentally created by an undetected syntax error. For example:
DO 10 I = 1.10
The apparent DO statement is really an assignment to the accidentally created variable DO10I.
o MESSAGE: %VAL or %REF used in invalid context
EXPLANATION: The argument list built-in functions %VAL and %REF cannot be used outside an actual argument list. For example:
X = %REF(Y)
o MESSAGE: Variable cannot be reinitialized (xxxx)
EXPLANATION: Attempted to initialize a variable more than once, such as in a DATA statement.
o MESSAGE: Zero-length string
EXPLANATION: The length specified for a character or Hollerith constant must not be zero.
Should be investigated by checking the statements to which warning diagnostic messages refer. 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.Warning messages are produced unless you specify the -w or -nowarn option on the f77 command line.
The warning messages follow (in alphabetical order):
o MESSAGE: Actual argument data type (actual_type) not equal to routine's dummy argument type (dummy_type)
EXPLANATION: A mismatch was detected between an actual parameter type and the dummy type in the called routine. This may be caused by a programming error which needs to be corrected. For example:
CALL FOO ( 1.5 ) ... SUBROUTINE FOO ( X ) DOUBLE PRECISION X
Since the 1.5 is a REAL number (not DOUBLE PRECISION), this can result in a variety of problems, depending upon the passing mechanism of the system. In this case the "1.5" should be changed to "1.5D0".
o MESSAGE: Alignment of common block is inconsistent with previous declaration
EXPLANATION: Occurs when using CDEC$ OPTIONS/ALIGN if same COMMON is declared in multiple pieces within a single compilation unit and /ALIGN has changed between pieces. For example:
CDEC$ OPTIONS /ALIGN=COMMON=NATURAL COMMON /COM1/ A,B ! common elements are ! naturally aligned CDEC$ END OPTIONS
CDEC$ OPTIONS /ALIGN=COMMON=PACKED COMMON /COM1/ C,D ! common elements are packed CDEC$ END OPTIONS END
o MESSAGE: Argument data type error, not equal to the routine's dummy argument type
EXPLANATION: A mismatch was detected between an actual parameter type and the dummy type in the called routine. This can be caused by a programming error which needs to be corrected.
o MESSAGE: Error limit exceeded; compilation terminated
EXPLANATION: The number of error-level and fatal-error errors has reached the limit given in -errorlimit nn (or the default of 30 errors). Recompile with a larger -errorlimit value or correct the errors displayed up to the point of termination and then recompile.
o MESSAGE: Alignment of variable or array is inconsistent with its data type
EXPLANATION: Scalar or array data cannot be naturally aligned when alignment had been requested (-align xxxx) option), possibly because of an EQUIVALENCE statement. See your DEC Fortran user manual for alignment information.
o MESSAGE: Arguments incompatible with intrinsic function, assumed EXTERNAL
EXPLANATION: A function reference was made using an intrinsic function name, but the argument list does not agree in order, number, or type with the intrinsic function requirements. When this error is encountered, the function is assumed to be supplied by you as an EXTERNAL function.
o MESSAGE: Assignment to DO variable within loop
EXPLANATION: The control variable of a DO loop was altered within the range of a DO statement.
o MESSAGE: CDEC$ OPTIONS directives nested too deeply - this one ignored
EXPLANATION: CDEC$ OPTIONS directives cannot be nested beyond 100 levels.
o MESSAGE: Constant size exceeds variable size in data initialization
EXPLANATION: A constant used for data initialization was larger than its corresponding variable.
o MESSAGE: Count of Hollerith constant too large, reduced
EXPLANATION: The value specified by the integer preceding the H was greater than the number of characters remaining in the source statement.
o MESSAGE: EQUIVALENCE may not be used to put a SAVE variable into COMMON
EXPLANATION: You cannot use an EQUIVALENCE statement to put variables declared with the SAVE statement into a COMMON data block. For example:
common/c1/ a,b,c dimension x(3) save x equivalence (x(1),a) end
In this case, the SAVE statement is ignored.
o MESSAGE: Expression does not contribute to result
EXPLANATION: Part of a concatenated character string expression is beyond the number of characters required to completely fill the assignment. In the following example, TEST will not be used:
CHARACTER NEW, OLD, TEST NEW(1:10) = OLD(1:10)//TEST
o MESSAGE: Extra characters in source line were truncated
EXPLANATION: The compiler read a source line with a statement field that exceeds the maximum column width. The compiler truncates such lines at column 72 or 132, depending on the value of -extend_source or the OPTIONS statement option in effect.
o MESSAGE: Extra comma in format list
EXPLANATION: A format list contained an extra comma. For example:
FORMAT (I4,)
o MESSAGE: Inconsistent declaration for an AUTOMATIC variable
EXPLANATION: Data declared as automatic (AUTOMATIC statement or -automatic option) can not be made equivalent to another variable using a EQUIVALENCE statement, nor can it be initialized using a DATA statement or any data declaration statement (such as REAL or INTEGER statement that gives it a value).
o MESSAGE: Invalid END= keyword, ignored
EXPLANATION: The END keyword was used illegally in a WRITE or direct access READ statement.
o MESSAGE: Invalid initialization of variable not in common
EXPLANATION: An attempt was made in a BLOCK DATA subprogram to initialize a variable that was not in a common block.
o MESSAGE: Invalid statement label ignored
EXPLANATION: An improperly formed statement label (namely, a label containing letters) was detected in columns 1 to 5 of an initial line. When this error is encountered, the statement label is ignored.
o MESSAGE: Length specified must match CHARACTER FUNCTION declaration
EXPLANATION: The length specifications for all ENTRY names in a character function subprogram must be the same. For example:
CHARACTER*15 FUNCTION F CHARACTER*20 G ENTRY G
o MESSAGE: Letter mentioned twice in IMPLICIT statement, last type used
EXPLANATION: A letter was given an implicit data type more than once. When this error is encountered, the last data type given is used.
o MESSAGE: Lower bound greater than upper bound in array declaration
EXPLANATION: The upper bound of a dimension declarator must be equal to or greater than the lower bound.
o MESSAGE: Missing END statement, END is assumed
EXPLANATION: An END statement was missing at the end of the last input file. When this error is encountered, an END statement is inserted.
o MESSAGE: Multiple declaration of data type for variable, first type used
EXPLANATION: A variable appeared in more than one data type declaration statement. When this error is encountered, the first type declaration is used.
o MESSAGE: Name longer than 31 characters
EXPLANATION: A symbolic name cannot exceed 31 characters. When this error is encountered, the symbolic name is truncated to 31 characters.
o MESSAGE: Name used in INTRINSIC statement is not an intrinsic function
EXPLANATION: A function name that appeared in the INTRINSIC statement was not an intrinsic function.
o MESSAGE: No matching CDEC$ END OPTIONS for CDEC$ OPTIONS
EXPLANATION: A CDEC$ OPTIONS directive must be terminated by CDEC$ END OPTIONS.
o MESSAGE: No matching CDEC$ OPTIONS for CDEC$ END OPTIONS
EXPLANATION: A CDEC$ END OPTIONS directive terminates a CDEC$ OPTIONS section.
o MESSAGE: Non-blank characters truncated in string constant
EXPLANATION: A character or Hollerith constant was converted to a data type that was not large enough to contain all of the significant characters.
o MESSAGE: Non-zero digits truncated in hex constant
EXPLANATION: A hexadecimal constant was converted to a data type that was not large enough to contain all the significant digits.
o MESSAGE: No value
EXPLANATION: A value returned by a function is undefined.
o MESSAGE: Number of names exceeds number of values in data initialization
EXPLANATION: The number of constants specified in a DATA statement must match the number of variables or array elements to be initialized. When a mismatch occurs, any extra variables or array elements are not initialized.
o MESSAGE: Number of values exceeds number of names in data initialization
EXPLANATION: The number of variables or array elements to be initialized must match the number of constants specified in data initialization. When a mismatch occurs, any extra constant values are ignored.
o MESSAGE: Pointer and integer declarations conflict, using pointer declaration
EXPLANATION: If a pointer variable is also declared to be an integer of specific size (for example, INTEGER*4), and if a pointer requires a different size on this platform (for example, INTEGER*8 on DEC OSF/1 on AXP systems), the required pointer size is used instead of the integer size. This may affect COMMON sizes and equivalenced variables.
o MESSAGE: Program may contain only one main entry routine
EXPLANATION: Two or more main program units were found, possibly caused by missing FUNCTION or SUBROUTINE statements.
o MESSAGE: Record contains one or more misaligned fields
EXPLANATION: One or more fields are not naturally aligned in a RECORD structure because the -vms or -align norecords option was specified (causing DEC Fortran to pack records instead of naturally aligning them).
o MESSAGE: Record too long - record truncated
EXPLANATION: Source file line exceeded the maximum line length.
o MESSAGE: Redundant continuation mark ignored
EXPLANATION: A continuation mark was detected where an initial line is required. When this error is encountered, the continuation mark is ignored.
o MESSAGE: Statement cannot terminate a DO loop
EXPLANATION: The terminal statement of a DO loop cannot be a GO TO, arithmetic IF, RETURN, block IF, ELSE, ELSE IF, END IF, DO, or END statement.
o MESSAGE: String constant truncated to maximum length
EXPLANATION: A character or Hollerith constant can contain up to 2000 characters.
o MESSAGE: String too long - truncated to 31 characters
EXPLANATION: A character constant specified in a CDEC$ TITLE, CDEC$ SUBTITLE, or CDEC$ IDENT directive exceeded 31 characters. The truncated character value will be used.
o MESSAGE: This feature is unsupported on ULTRIX
EXPLANATION: The program attempted to use a VAX FORTRAN I/O feature that is not available on ULTRIX or DEC OSF/1 systems. If the resulting program is run on either system, this construct will be ignored. See your DEC Fortran user manual for information on VAX FORTRAN compatibility.
o MESSAGE: This intrinsic routine name is not supported on this system, assumed EXTERNAL
EXPLANATION: The specified intrinsic name is not known and is assumed to be EXTERNAL.
o MESSAGE: Unexpected Hollerith constant in integer context, integer value will be used
EXPLANATION: A Hollerith constant was specified in a context where an integer value was expected.
o MESSAGE: Use of implicit with declaration warnings
EXPLANATION: An IMPLICIT statement was used in a program compiled with the -warn declarations option.
o MESSAGE: Value for xxx out of range, defaulting to xxx
EXPLANATION: Command line error. For example:
$ f77 -O15 x.f
The range of values allowed for -O is 0-4. 15 is out of range. The default value of 4 is used instead.
o MESSAGE: Variable is used before its value has been defined
EXPLANATION: The specified variable has not been assigned a value before it is used in an assignment or similar statement.
You can disable this message by compiling with -warn nouninitialized.
Not an error message and does not call for corrective action. However, the informational message informs you that either a correct DEC Fortran statement may have unexpected results or you have used a DEC Fortran extension to FORTRAN-77.The informational messages follow (in alphabetical order):
o MESSAGE: Default STATUS='UNKNOWN' used in OPEN statement
EXPLANATION: The OPEN statement default STATUS='UNKNOWN' may cause an old file to be inadvertently modified.
o MESSAGE: Do loop increment is 0
EXPLANATION: The value of the DO loop increment was zero.
o MESSAGE: Duplicate IDENT ignored
EXPLANATION: Two or more CDEC$ IDENT directives were used in a source module to specify the identification field of the object module. The first CDEC$ IDENT directive is used.
o MESSAGE: Extension to FORTRAN-77: Character required
EXPLANATION: A character variable was initialized with a noncharacter value by means of a DATA statement.
o MESSAGE: Extension to FORTRAN-77: Concatenation of dummy argument
EXPLANATION: A character dummy argument appeared as an operand in a concatenation operation.
o MESSAGE: Extension to FORTRAN-77: DATA statement out of order
EXPLANATION: A DATA statement occurred prior to a declaration statement. All DATA statements must occur after the declaration section of a program.
o MESSAGE: Extension to FORTRAN-77: Function or Entry name undefined
EXPLANATION: A value was not assigned to either the function name or the entry point name within the body of the function.
o MESSAGE: Extension to FORTRAN-77: Integer expression required
EXPLANATION: One of the following items was not of type integer:
- Logical unit number - Record specifier, REC=recspec - Arithmetic expression of a computed GOTO statement - RETURN [I] - Subscript expression - Array dimension bounds - Character substring bounds expressions
o MESSAGE: Extension to FORTRAN-77: Logical expression required
EXPLANATION: One of the following syntax extensions was detected:
- Numeric expression in a logical IF statement - Numeric expression in a block IF statement - Value other than .TRUE. or .FALSE. assigned to a logical variable - Logical variable initialized with a nonlogical value by means of a DATA statement
o MESSAGE: Extension to FORTRAN-77: Missing array subscripts
EXPLANATION: Only one subscript was used to reference a multidimensional array in an EQUIVALENCE statement.
o MESSAGE: Extension to FORTRAN-77: Mixed numeric and character elements in COMMON
EXPLANATION: A common block must not contain both numeric and character data.
o MESSAGE: Extension to FORTRAN-77: Mixed numeric and character elements in EQUIVALENCE
EXPLANATION: A numeric variable or numeric array element cannot be equivalenced to a character variable or character array element.
o MESSAGE: Extension to FORTRAN-77: More than 19 continuation lines
EXPLANATION: More than 19 continuation lines were defined for the statement.
o MESSAGE: Extension to FORTRAN-77: Negative implied-DO iteration count
EXPLANATION: The iteration count of an implied DO was negative.
o MESSAGE: Extension to FORTRAN-77: Nonstandard branch into block
EXPLANATION: A nonstandard branch into a DO loop or IF block was detected.
o MESSAGE: Extension to FORTRAN-77: nonstandard comment
EXPLANATION: FORTRAN-77 allows only the characters "C" and "*" to begin a comment line; "c", "D", "d", and "!" are extensions to FORTRAN-77.
o MESSAGE: Extension to FORTRAN-77: nonstandard constant
EXPLANATION: The following constant forms are extensions to FORTRAN-77:
Form Example ---- ------- Hollerith nH..... Typeless 'xxxx'X or 'oooo'O Hexadecimal Zxxxx Complex with PARAMETER components COMPLEX*16 (www.xxxDn, yyy.zzzDn)
o MESSAGE: Extension to FORTRAN-77: nonstandard continuation character
EXPLANATION: A nonstandard character was used as a continuation indicator.
o MESSAGE: Extension to FORTRAN-77; nonstandard data type specification
EXPLANATION: The following DATA type specifications are extensions to FORTRAN-77. The FORTRAN-77 equivalent is given where available. This message is issued when these types are used in the IMPLICIT statement or in a numeric type statement.
Extension Standard --------- -------- BYTE -- LOGICAL*1 -- LOGICAL*2 LOGICAL (with -noi4 specified) LOGICAL*4 LOGICAL INTEGER*1 -- INTEGER*2 INTEGER (with -noi4 specified) INTEGER*4 INTEGER REAL*4 REAL REAL*8 DOUBLE PRECISION COMPLEX*8 COMPLEX COMPLEX*16 -- DOUBLE COMPLEX --
o MESSAGE: Extension to FORTRAN-77: Nonstandard DATA initialization
EXPLANATION: An element was initialized in either of the following ways:
- In a blank common block - Outside the BLOCK DATA structure (and the element is in a named COMMON block)
o MESSAGE: Extension to FORTRAN-77: nonstandard FORMAT statement item
EXPLANATION: The following format field descriptors are extensions to FORTRAN-77:
Descriptor Aspect ---------- ------ $ All forms A,L,I,F,E,G,D Default field width forms P Without scale factor
o MESSAGE: Extension to FORTRAN-77: Nonstandard function return type
EXPLANATION: A function or entry point was declared with a nonstandard data type.
o MESSAGE: Extension to FORTRAN-77: nonstandard intrinsic function
EXPLANATION: A nonstandard intrinsic function was used.
o MESSAGE: Extension to FORTRAN-77: nonstandard keyword
EXPLANATION: A nonstandard keyword was used.
o MESSAGE: Extension to FORTRAN-77: nonstandard lexical item
EXPLANATION: One of the following nonstandard lexical items was used:
- Alternate return specifier with an ampersand (&) in a CALL statement - Apostrophe (') form of record specifier in a direct access I/O statement - Variable format expression
o MESSAGE: Extension to FORTRAN-77: Nonstandard loop expression
EXPLANATION: The upper-bound expression, lower-bound expression, or increment expression of a DO loop was not of type integer, real, or double precision.
o MESSAGE: Extension to FORTRAN-77: nonstandard name
EXPLANATION: A name longer than six characters or one that contained a dollar sign ($) or an underscore (_) was used.
o MESSAGE: Extension to FORTRAN-77: nonstandard operator
EXPLANATION: The operators .XOR., %VAL, %REF, and %LOC are extensions to FORTRAN-77. The standard form of .XOR. is .NEQV. The % operators are extensions provided to allow access to non-FORTRAN parts of the VMS environment.
o MESSAGE: Extension to FORTRAN-77: nonstandard statement type
EXPLANATION: A nonstandard statement type was used.
o MESSAGE: Extension to FORTRAN-77: nonstandard syntax
EXPLANATION: One of the following syntax extensions was specified:
PARAMETER name = value --> Error: No parentheses type name/value/ --> Error: Data initialization in type declaration DATA (ch(exp1:exp2),i=lb,ub,inc)/values/) --> Error:Substring initialization with implied-DO in DATA statement CALL name(arg2,,arg3) --> Error: Null actual argument READ (...),iolist --> Error: Comma between I/O control and element lists PARAMETER (name2=ABS(name1)) --> Error: Function use in PARAMETER statement e1 ** -e2 --> Error: Two consecutive operators
o MESSAGE: Extension to FORTRAN-77: Nonstandard use of array
EXPLANATION: One of the following extensions was detected:
- An array was used as a FILE specification in an OPEN statement. - The file name of an INQUIRE statement was a numeric scalar reference or a numeric array name reference.
o MESSAGE: Extension to FORTRAN-77: Nonstandard use of field reference
EXPLANATION: A record reference (for example, record-name.field-name) was used in a program compiled with -stand syntax.
o MESSAGE: Extension to FORTRAN-77: tab indentation or lowercase source
EXPLANATION: The use of tab indentation or lowercase letters in source code is an extension to FORTRAN-77.
o MESSAGE: Invalid qualifier or qualifier value in OPTIONS statement
EXPLANATION: An invalid qualifier or qualifier value was specified in the OPTIONS statement. When this error is encountered, the qualifier is ignored.
o MESSAGE: No path to this statement
EXPLANATION: Program control could not reach this statement. When this situation occurs, the statement is deleted. For example:
10 I = I + 1 GO TO 10 STOP
You can disable this message by compiling with -warn nounreachable.
o MESSAGE: Not yet implemented
EXPLANATION: The specified feature has not been implemented.
o MESSAGE: Routine xxx does not return a value
EXPLANATION: A subroutine which doesn't return a value was used where a value is expected. For example:
T = SUB(J) ... SUBROUTINE SUB(I)
o MESSAGE: Statement function xxx is never called
EXPLANATION: A statement function (named xxx) was declared but never used. This could be caused by a missing DIMENSION statement that caused a variable assignment to be interpreted as a statement function.
You can disable this message by compiling with -warn nouncalled.
o MESSAGE: Unrecognized directive ignored
EXPLANATION: A directive was detected in the first five columns of a source code statement. The directive was not recognized or the remainder of the directive contains illegal syntax.