Top: f77 Up: 9,1 - Compilation
Previous: 9,1 - Compilation Next: 9,1,2 - Severe_Messages


Section 9,1,1: 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.


Top: f77 Up: 9,1 - Compilation
Previous: 9,1 - Compilation Next: 9,1,2 - Severe_Messages