Fatal_Messages

 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.

Severe_Messages

 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/.

Error_Messages

 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.

Warning_Messages

 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.

Informational_Messages

 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.