This chapter describes the messages that the compiler produces. These messages include the sign-on message and diagnostic messages for remarks, warnings, and errors. The compiler always displays any error messages, along with the erroneous source line, on the screen. You can use the -v option to display more information about the compiler, assembler, and linker invocations and about the host system.
Diagnostic messages provide syntactic and semantic information about your source text. Syntactic information can include, for example, syntax errors. Semantic information includes, for example, unreachable code.
You can specify that the compiler displays error messages at a certain level with the -Minform option.The compiler messages refer to a severity level, a message number, and the line number where the error occurs.
The compiler can also display internal error messages on standard error. If your compilation produces any internal errors, contact your Portland Group technical support representative.
If you use the listing file option -Mlist, the compiler places diagnostic messages after the source lines in the listing file, in the following format:
PGHPF-etype-enum-message (filename: line)
This section presents the error messages generated by the compiler. The compiler displays error messages in the program listing and on standard output; it can also display internal error messages on standard error. If a compilation produces any internal errors, contact your PGI representative.
V 0 "Internal compiler error. $ $"
This message indicates an error in the compiler, rather than a user error - although it may be possible for a user error to cause an internal error. The severity may vary; if it is informative or warning, correct object code was probably generated.
Regardless of the severity or cause, internal errors should be reported to the compiler maintenance group.
F 1 "Source input file name not specified"
On the command line, source file name should be specified either before all the switches, or after them.
F 2 "Unable to open source input file: $"
Source file name misspelled, file not in current working directory, or file is read protected.
F 3 "Unable to open listing file"
Probably, user does not have write permission for the current working directory.
F 4 "Unable to open object file"
Probably, user does not have write permission for the current working directory.
F 5 "Unable to open temporary file"
Compiler uses directory "/usr/tmp" or "/tmp" in which to create temporary files. If neither of these directories is available on the node on which the compiler is being used, this error will occur.
S 6 "Input file empty"
Source input file does not contain any Fortran statements other than comments or compiler directives.
F 7 "Subprogram $ too large to compile at this optimization level"
Internal compiler data structure overflow, working storage exhausted, or some other non-recoverable problem related to the size of the subprogram. If this error occurs at opt 2 (-O2) , reducing the opt level to 1 (-O1) may work around the problem. Moving the subprogram being compiled to its own source file may eliminate the problem. If this error occurs while compiling a subprogram of fewer than 2000 statements it should be reported to the compiler maintenance group as a possible compiler problem.
F 8 "Error limit exceeded"
The compiler gives up after 50 severe errors.
F 9 "Unable to open assembly file"
Probably, user does not have write permission for the current working directory.
F 10 "File write error occurred $"
Probably, file system is full.
S 11 "Unrecognized command line switch: $"
Refer to PDS reference document for list of allowed compiler switches.
S 12 "Value required for command line switch: $"
Certain switches require an immediately following value, such as "-opt 2".
S 13 "Unrecognized value specified for command line switch: $" S 14 "Ambiguous command line switch: $"
Too short an abbreviation was used for one of the switches.
W 15 "Hexadecimal or octal constant truncated to fit data type" I 16 "Identifier, $, truncated to 31 chars"
An identifier may be at most 31 characters in length; characters after the 31st are ignored.
S 17 "Unable to open include file: $"
File is missing, read protected, or maximum include depth (10) exceeded. Remember that the file name should be enclosed in quotes.
S 18 "Illegal label field"
The label field (first five characters) of the indicated line contains a non-numeric character.
S 19 "Illegally placed continuation line"
A continuation line does not follow an initial line, or more than 99 continuation lines were specified.
S 20 "Unrecognized compiler directive"
Refer to PDS reference manual for list of allowed compiler directives.
S 21 "Label field of continuation line is not blank"
The first five characters of a continuation line must be blank.
S 22 "Unexpected end of file - missing END statement" S 23 "Syntax error - unbalanced $"
Unbalanced parentheses or brackets.
W 24 "CHARACTER or Hollerith constant truncated to fit data type"
A character or hollerith constant was converted to a data type that was not large enough to contain all of the characters in the constant. This type conversion occurs when the constant is used in an arithmetic expression or is assigned to a non-character variable. The character or hollerith constant is truncated on the right, that is, if 4 characters are needed then the first 4 are used and the remaining characters are discarded.
W 25 "Illegal character ($) - ignored"
The current line contains a character, possibly non-printing, which is not a legal Fortran character (characters inside of character or Hollerith constants cannot cause this error). As a general rule, all non-printing characters are treated as white space characters (blanks and tabs); no error message is generated when this occurs. If for some reason, a non-printing character is not treated as a white space character, its hex representation is printed in the form dd where each d is a hex digit.
S 26 "Unmatched quote" S 27 "Illegal integer constant: $"
Integer constant is too large for 32 bit word.
S 28 "Illegal real or double precision constant: $" S 29 "Illegal $ constant: $"
Illegal hexadecimal, octal, or binary constant. A hexadecimal constant consists of digits 0..9 and letters A..F or a..f; any other character in a hexadecimal constant is illegal. An octal constant consists of digits 0..7; any other digit or character in an octal constant is illegal. A binary constant consists of digits 0 or 7; any other digit or character in a binary constant is illegal.
S 30 "Explicit shape must be specified for $" S 31 "Illegal data type length specifier for $"
The data type length specifier (e.g. 4 in INTEGER*4) is not a constant expression that is a member of the set of allowed values for this particular data type.
W 32 "Data type length specifier not allowed for $"
The data type length specifier (e.g. 4 in INTEGER*4) is not allowed in the given syntax (e.g. DIMENSION A(10)*4).
S 33 "Illegal use of constant $"
A constant was used in an illegal context, such as on the left side of an assignment statement or as the target of a data initialization statement.
S 34 "Syntax error at or near $" I 35 "Predefined intrinsic $ loses intrinsic property"
An intrinsic name was used in a manner inconsistent with the language definition for that intrinsic. The compiler, based on the context, will treat the name as a variable or an external function.
S 36 "Illegal implicit character range"
First character must alphabetically precede second.
S 37 "Contradictory data type specified for $"
The indicated identifier appears in more than one type specification statement and different data types are specified for it.
S 38 "Symbol, $, has not been explicitly declared"
The indicated identifier must be declared in a type statement; this is required when the IMPLICIT NONE statement occurs in the subprogram.
W 39 "Symbol, $, appears illegally in a SAVE statement"
An identifier appearing in a SAVE statement must be a local variable or array.
S 40 "Illegal common variable $"
Indicated identifier is a dummy variable, is already in a common block, or has previously been defined to be something other than a variable or array.
W 41 "Illegal use of dummy argument $"
This error can occur in several situations. It can occur if dummy arguments were specified on a PROGRAM statement. It can also occur if a dummy argument name occurs in a DATA, COMMON, SAVE, or EQUIVALENCE statement.
A program statement must have an empty argument list.
S 42 "$ is a duplicate dummy argument" S 43 "Illegal attempt to redefine $ $"
An attempt was made to define a symbol in a manner inconsistent with an earlier definition of the same symbol. This can happen for a number of reasons. The message attempts to indicate the situation that occurred.
An attempt was made to redefine an intrinsic function. A symbol that represents an intrinsic function may be redefined if that symbol has not been previously verified to be an intrinsic function. For example, the intrinsic fsin() can be defined to be an integer array. If a symbol is verified to be an intrinsic function via the INTRINSIC statement or via an intrinsic function reference then it must be referred to as an intrinsic function for the remainder of the program unit.
An attempt was made to redefine a symbol that was previously defined. An example of this is to declare a symbol to be a PARAMETER which was previously declared to be a subprogram argument.
S 44 "Multiple declaration for symbol $"
A redundant declaration of a symbol has occurred. For example, an attempt was made to declare a symbol as an ENTRY when that symbol was previously declared as an ENTRY.
S 45 "Data type of entry point $ disagrees with function $"
The current function has entry points with data types inconsistent with the data type of the current function. For example, the function returns type character and an entry point returns type complex.
S 46 "Data type length specifier in wrong position"
The CHARACTER data type specifier has a different position for the length specifier from the other data types. Suppose, we want to declare arrays ARRAYA and ARRAYB to have 8 elements each having an element length of 4 bytes. The difference is that ARRAYA is character and ARRAYB is integer.
The declarations would be CHARACTER ARRAYA(8)*4 and INTEGER ARRAYB*4(8).
S 47 "More than seven dimensions specified for array" S 48 "Illegal use of '*' in declaration of array $"
An asterisk may be used only as the upper bound of the last dimension.
S 49 "Illegal use of '*' in non-subroutine subprogram"
The alternate return specifier '*' is legal only in the subroutine statement. Programs, functions, and block data are not allowed to have alternate return specifiers.
S 50 " Assumed size array, $, is not a dummy argument"" S 51 "Unrecognized built-in % function"
The allowable built-in functions are %VAL, %REF, %LOC, and %FILL. One was encountered that did not match one of these allowed forms.
S 52 "Illegal argument to %VAL or %LOC" S 53 "%REF or %VAL not legal in this context"
The built-in functions %REF and %VAL can only be used as actual parameters in procedure calls.
W 54 "Implicit character $ used in a previous implicit statement"
An implicit character has been given an implied data type more than once. The implied data type for the implicit character is changed anyway.
W 55 "Multiple implicit none statements"
The IMPLICIT NONE statement can occur only once in a subprogram.
W 56 "Implicit type declaration"
The -dclchk switch and an implicit declaration following an IMPLICIT
NONE statement will produce a warning message for IMPLICIT statements.
S 57 "Illegal equivalence of dummy variable, $"
Dummy arguments may not appear in EQUIVALENCE statements.
S 58 "Equivalenced variables $ and $ not in same common block"
A common block variable must not be equivalenced with a variable in another common block.
S 59 "Conflicting equivalence between $ and $"
The indicated equivalence implies a storage layout inconsistent with other equivalences.
S 60 "Illegal equivalence of structure variable, $"
STRUCTURE and UNION variables may not appear in EQUIVALENCE statements.
S 61 "Equivalence of $ and $ extends common block backwards" W 62 "Equivalence forces $ to be unaligned"
EQUIVALENCE statements have defined an address for the variable which has an alignment not optimal for variables of its data type. This can occur when INTEGER and CHARACTER data are equivalenced, for instance.
I 63 "Gap in common block $ before $" S 64 "Illegal use of $ in DATA statement implied DO loop"
The indicated variable is referenced where it is not an active implied DO index variable.
S 65 "Repeat factor less than or equal to zero" S 66 "Too few data constants in initialization statement" S 67 "Too many data constants in initialization statement" S 68 "Numeric initializer for CHARACTER $ out of range 0 through 255"
A CHARACTER*1 variable or character array element can be initialized to an integer, octal, or hexadecimal constant if that constant is in the range 0 through 255.
S 69 "Illegal implied DO expression"
The only operations allowed within an implied DO expression are integer +, -, *, and /.
S 70 "Incorrect sequence of statements $"
The statement order is incorrect. For instance, an IMPLICIT NONE statement must precede a specification statement which in turn must precede an executable statement.
S 71 "Executable statements not allowed in block data" S 72 "Assignment operation illegal to $ $"
The destination of an assignment operation must be a variable, array reference, or vector reference. The assignment operation may be by way of an assignment statement, a data statement, or the index variable of an implied DO-loop. The compiler has determined that the identifier used as the destination, is not a storage location. The error message attempts to indicate the type of entity used.
An assignment to an entry point that was not a function procedure was attempted.
An assignment to an external procedure or a Fortran intrinsic name was attempted. if the identifier is the name of an entry point that is not a function, an external procedure.
S 73 "Intrinsic or predeclared, $, cannot be passed as an argument" S 74 "Illegal number or type of arguments to $"
The indicated symbol is an intrinsic or generic function, or a predeclared subroutine or function, requiring a certain number of arguments of a fixed data type.
S 75 "Subscript, substring, or argument illegal in this context for $"
This can happen if you try to doubly index an array such as ra(2)(3).
This also applies to substring and function references.
S 76 "Subscripts specified for non-array variable $" S 77 "Subscripts omitted from array $" S 78 "Wrong number of subscripts specified for $" S 79 "Keyword form of intrinsic argument illegal in this context for $" S 80 "Subscript for array $ is out of bounds" S 81 "Illegal selector $ $" S 82 "Illegal substring expression for variable $"
Substring expressions must be of type integer and if constant must be greater than zero.
S 83 "Vector expression used where scalar expression required"
A vector expression was used in an illegal context. For example, iscalar = iarray, where a scalar is assigned the value of an array. Also, character and record references are not vectorizable.
S 84 "Illegal use of symbol $ $"
This message is used for many different errors.
S 85 "Incorrect number of arguments to statement function $" S 86 "Dummy argument to statement function must be a variable" S 87 "Non-constant expression where constant expression required" S 88 "Recursive subroutine or function call of $"
A function may not call itself.
S 89 "Illegal use of symbol, $, with character length = *"
Symbols of type CHARACTER*(*) must be dummy variables and must not be used as statement function dummy parameters and statement function names. Also, a dummy variable of type CHARACTER*(*) cannot be used as a function.
S 90 "Hollerith constant more than 4 characters"
In certain contexts, Hollerith constants may not be more than 4 characters long.
S 91 "Constant expression of wrong data type" S 92 "Illegal use of variable length character expression"
A character expression used as an actual argument, or in certain contexts within I/O statements, must not consist of a concatenation involving a passed length character variable.
W 93 "Type conversion of expression performed"
An expression of some data type appears in a context which requires an expression of some other data type. The compiler generates code to convert the expression into the required type.
S 94 "Variable $ is of wrong data type $"
The indicated variable is used in a context which requires a variable of some other data type.
S 95 "Expression has wrong data type"
An expression of some data type appears in a context which requires an expression of some other data type.
S 96 "Illegal complex comparison"
The relations .LT., .GT., .GE., and .LE. are not allowed for complex values.
S 97 "Statement label $ has been defined more than once"
More than one statement with the indicated statement number occurs in the subprogram.
S 98 "Divide by zero" S 99 "Illegal use of $"
Indicates many types of illegal language usage. Examples: Aggregate record references may only appear in aggregate assignment statements, unformatted I/O statements, and as parameters to subprograms. They may not appear, for example, in expressions. Also, records with differing structure types may not be assigned to one another.
S 100 "Expression cannot be promoted to a vector"
An expression was used that required a scalar quantity to be promoted to a vector illegally. For example, the assignment of a character constant string to a character array. Records, too, cannot be promoted to vectors.
S 101 "Vector operation not allowed on $"
Record and character typed entities may only be referenced as scalar quantities.
S 102 "Arithmetic IF expression has wrong data type"
The parenthetical expression of an arithmetic if statement must be an integer, real, or double precision scalar expression.
S 103 "Type conversion of subscript expression for $"
The data type of a subscript expression must be integer. If it is not, it is converted.
S 104 "Illegal control structure $"
This message is issued for a number of errors involving IF-THEN statements and DO loops. If the line number specified is the last line (END statement) of the subprogram, the error is probably an unterminated DO loop or IF-THEN statement.
S 105 "Unmatched ELSEIF, ELSE or ENDIF statement"
An ELSEIF, ELSE, or ENDIF statement cannot be matched with a preceding IF-THEN statement.
S 106 "DO index variable must be a scalar variable"
The DO index variable cannot be an array name, a subscripted variable, a PARAMETER name, a function name, a structure name, etc.
S 107 "Illegal assigned goto variable $" S 108 "Illegal variable, $, in NAMELIST group $"
A NAMELIST group can only consist of arrays and scalars which are not dummy arguments and pointer-based variables.
I 109 "Overflow in $ constant $, constant truncated at left"
A non-decimal (hexadecimal, octal, or binary) constant requiring more than 64-bits produces an overflow. The constant is truncated at left (e.g. '1234567890abcdef1'x will be '234567890abcdef1'x).
I 110 " " I 111 "Underflow of real or double precision constant" I 112 "Overflow of real or double precision constant" S 113 "Label $ is referenced but never defined" S 114 "Cannot initialize $" W 115 "Assignment to DO variable $ in loop" S 116 "Illegal use of pointer-based variable $ $" S 117 "Statement not allowed within a $ definition"
Illegal language usage. An example would be to use an assignment statement within a STRUCTURE definition.
S 118 "Statement not allowed in DO, IF, or WHERE block" I 119 "Redundant specification for $"
Data type of indicated symbol specified more than once.
I 120 "Label $ is defined but never referenced" I 121 "Operation requires logical or integer data types"
An operation in an expression was attempted on data having a data type incompatible with the operation. For example, a logical expression can consist of only logical elements of type integer or logical. Real data would be invalid.
I 122 "Character string truncated"
Character string or Hollerith constant appearing in a DATA statement or PARAMETER statement has been truncated to fit the declared size of the corresponding identifier.
W 123 "Hollerith length specification too big, reduced"
The length specifier field of a hollerith constant specified more characters than were present in the character field of the hollerith constant. The length specifier was reduced to agree with the number of characters present.
S 124 "Relational expression mixes character with numeric data"
A relational expression is used to compare two arithmetic expressions or two character expressions. A character expression cannot be compared to an arithmetic expression.
I 125 "Dummy procedure $ not declared EXTERNAL"
A dummy argument which is not declared in an EXTERNAL statement is used as the subprogram name in a CALL statement, or is called as a function, and is therefore assumed to be a dummy procedure. This message can result from a failure to declare a dummy array.
I 126 "Name $ is not an intrinsic function" I 127 "Optimization level for $ changed to opt 1 $" W 128 "Integer constant truncated to fit data type: $ "
An integer constant will be truncated when assigned to data types smaller than 32-bits, such as a BYTE.
I 129 "Floating point overflow. Check constants and constant expressions" I 130 "Floating point underflow. Check constants and constant expressions" I 131 "Integer overflow. Check floating point expressions cast to integer" I 132 "Floating pt. invalid oprnd. Check constants and constant expressions" I 133 "Divide by 0.0. Check constants and constant expressions" S 134 "Illegal attribute $ $" W 135 "Missing STRUCTURE name field"
A STRUCTURE name field is required on the outermost structure.
W 136 "Field-namelist not allowed"
The field-namelist field of the STRUCTURE statement is disallowed on the outermost structure.
W 137 "Field-namelist is required in nested structures" W 138 "Multiply defined STRUCTURE member name $"
A member name was used more than once within a structure.
W 139 "Structure $ in RECORD statement not defined"
A RECORD statement contains a reference to a STRUCTURE that has not yet been defined.
S 140 "Variable $ is not a RECORD" S 141 "RECORD required on left of ." S 142 "$ is not a member of this RECORD" S 143 "$ requires initializer " W 144 "NEED ERROR MESSAGE $ $"
This is used as a temporary message for compiler development.
W 145 "%FILL only valid within STRUCTURE block"
The %FILL special name was used outside of a STRUCTURE multiline statement. It is only valid when used within a STRUCTURE multiline statement even though it is ignored.
S 146 "Expression must be character type" S 147 "Character expression not allowed in this context" S 148 " Reference to $ required "
Error reported when a specific reference is expected in the statement being processed. For example, an aggregate reference to a record may have been expected during statement compilation but another data type was found instead.
S 149 "Record where arithmetic value required"
An aggregate record reference was encountered when an arithmetic expression was expected.
S 150 "Structure, Record, or member $ not allowed in this context"
A structure, record, or member reference was found in a context which is not supported. For example, the use of structures, records, or members within a data statement is disallowed.
S 151 "Empty STRUCTURE, UNION, or MAP"
STRUCTURE - ENDSTRUCTURE, UNION - ENDUNION MAP - ENDMAP declaration contains no members.
S 152 "All dimension specifiers must be ':'" S 153 "Array objects are not conformable $" S 154 "DISTRIBUTE target, $, must be a processor" S 155 "$ $" S 156 "Number of colons and triplets must be equal in ALIGN $ with $" S 157 "Illegal subscript use of ALIGN dummy $ - $" S 158 "Alternate return not specified in SUBROUTINE or ENTRY"
An alternate return can only be used if alternate return specifiers appeared in the SUBROUTINE or ENTRY statements.
S 159 "Alternate return illegal in FUNCTION subprogram"
An alternate return cannot be used in a FUNCTION.
S 160 "ENDSTRUCTURE, ENDUNION, or ENDMAP does not match top" S 161 "Vector subscript must be rank-one array" W 162 "Not equal test of loop control variable $ replaced with < or > test." S 163 " " S 164 "Overlapping data initializations of $"
An attempt was made to data initialize a variable or array element already initialized.
S 165 "$ appeared more than once as a subprogram"
A subprogram name appeared more than once in the source file. The message is applicable only when an assembly file is the output of the compiler.
S 166 "$ cannot be a common block and a subprogram"
A name appeared as a common block name and a subprogram name. The message is applicable only when an assembly file is the output of the compiler.
I 167 "Inconsistent size of common block $"
A common block occurs in more than one subprogram of a source file and its size is not identical. The maximum size is chosen. The message is applicable only when an assembly file is the output of the compiler.
S 168 "Incompatible size of common block $"
A common block occurs in more than one subprogram of a source file and is initialized in one subprogram. Its initialized size was found to be less than its size in the other subprogram(s). The message is applicable only when an assembly file is the output of the compiler.
W 169 "Multiple data initializations of common block $"
A common block is initialized in more than one subprogram of a source file. Only the first set of initializations apply. The message is applicable only when an assembly file is the output of the compiler.
W 170 "F90 extension: $"
Use of a nonstandard feature. A description of the feature is provided.
W 171 "F90 extension: nonstandard statement type $" W 172 "F90 extension: numeric initialization of CHARACTER $"
A CHARACTER*1 variable or array element was initialized with a numeric value.
W 173 "F90 extension: nonstandard use of data type length specifier" W 174 "F90 extension: type declaration contains data initialization" W 175 "F90 extension: IMPLICIT range contains nonalpha characters" W 176 "F90 extension: nonstandard operator $" W 177 "F90 extension: nonstandard use of keyword argument $" W 178 " " W 179 "F90 extension: use of structure field reference $" W 180 "F90 extension: nonstandard form of constant" W 181 "F90 extension: & alternate return" W 182 "F90 extension: mixed non-character and character elements in COMMON $" W 183 "F90 extension: mixed non-character and character EQUIVALENCE ($,$)" W 184 "Mixed type elements (numeric and/or character types) in COMMON $" W 185 "Mixed numeric and/or character type EQUIVALENCE ($,$)" S 186 "Argument missing for formal argument $" S 187 "Too many arguments specified for $" S 188 "Argument number $ to $: type mismatch" S 189 "Argument number $ to $: array element type mismatch" S 190 "Argument number $ to $: non-conformable arrays" S 191 "Argument number $ to $ cannot be an assumed-size array" S 192 "Argument number $ to $ must be a label" W 193 "Argument number $ to $ does not match INTENT (OUT)" W 194 "INTENT(IN) argument cannot be defined - $ " S 195 "Statement may not appear in an INTERFACE block" S 196 "Deferred-shape specifiers are required for $" S 197 "Invalid qualifier or qualifier value (/$) in OPTIONS statement"
An illegal qualifier was found or a value was specified for a qualifier which does not expect a value. In either case, the qualifier for which the error occurred is indicated in the error message.
S 198 "$ $ in ALLOCATE/DEALLOCATE" W 199 "Unaligned memory reference"
A memory reference occurred whose address does not meet its data alignment requirement.
S 200 "Missing UNIT/FILE specifier" S 201 "Illegal I/O specifier - $" S 202 "Repeated I/O specifier - $" S 203 "FORMAT statement has no label" S 204 "" S 205 "Illegal specification of scale factor"
The integer following + or - has been omitted, or P does not follow the integer value.
S 206 "Repeat count is zero" S 207 "Integer constant expected in edit descriptor" S 208 "Period expected in edit descriptor" S 209 "Illegal edit descriptor" S 210 "Exponent width not used in the Ew.dEe or Gw.dEe edit descriptors" S 211 "Internal I/O not allowed in this I/O statement" S 212 "Illegal NAMELIST I/O"
Namelist I/O cannot be performed with internal, unformatted, formatted, and list-directed I/O. Also, I/O lists must not be present.
S 213 "$ is not a NAMELIST group name" S 214 "Input item is not a variable reference" S 215 "Assumed sized array name cannot be used as an I/O item or specifier"
An assumed sized array was used as an item to be read or written or as an I/O specifier (i.e., FMT = array-name). In these contexts the size of the array must be known.
S 216 "STRUCTURE/UNION cannot be used as an I/O item" S 217 "ENCODE/DECODE buffer must be a variable, array, or array element" S 218 " " S 219 " " S 220 " " S 221 "#elif after #else"
A preprocessor #elif directive was found after a #else directive; only #endif is allowed in this context.
S 222 "#else after #else"
A preprocessor #else directive was found after a #else directive; only #endif is allowed in this context.
S 223 "#if-directives too deeply nested"
Preprocessor #if directive nesting exceeded the maximum allowed (currently 10).
S 224 "Actual parameters too long for $"
The total length of the parameters in a macro call to the indicated macro exceeded the maximum allowed (currently 2048).
W 225 "Argument mismatch for $"
The number of arguments supplied in the call to the indicated macro did not agree with the number of parameters in the macro's definition.
F 226 "Can't find include file $"
The indicated include file could not be opened. The -I switch can be used to specify directories to search for INCLUDE files or MODULES.
S 227 "Definition too long for $"
The length of the macro definition of the indicated macro exceeded the maximum allowed (currently 2048).
S 228 "EOF in comment"
The end of a file was encountered while processing a comment.
S 229 "EOF in macro call to $"
The end of a file was encountered while processing a call to the indicated macro.
S 230 "EOF in string"
The end of a file was encountered while processing a quoted string.
S 231 "Formal parameters too long for $"
The total length of the parameters in the definition of the indicated macro exceeded the maximum allowed (currently 2048).
S 232 "Identifier too long"
The length of an identifier exceeded the maximum allowed (currently 2048).
S 233 " " W 234 "Illegal directive name"
The sequence of characters following a # sign was not an identifier.
W 235 "Illegal macro name"
A macro name was not an identifier.
S 236 "Illegal number $"
The indicated number contained a syntax error.
F 237 "Line too long"
The input source line length exceeded the maximum allowed (currently 2048).
W 238 "Missing #endif"
End of file was encountered before a required #endif directive was found.
W 239 "Missing argument list for $"
A call of the indicated macro had no argument list.
S 240 "Number too long"
The length of a number exceeded the maximum allowed (currently 2048).
W 241 "Redefinition of symbol $"
The indicated macro name was redefined.
I 242 "Redundant definition for symbol $"
A definition for the indicated macro name was found that was the same as a previous definition.
F 243 "String too long"
The length of a quoted string exceeded the maximum allowed (currently 2048).
S 244 "Syntax error in #define, formal $ not identifier"
A formal parameter that was not an identifier was used in a macro definition.
W 245 "Syntax error in #define, missing blank after name or arglist"
There was no space or tab between a macro name or argument list and the macro's definition.
S 246 "Syntax error in #if"
A syntax error was found while parsing the expression following a #if or #elif directive.
S 247 "Syntax error in #include"
The #include directive was not correctly formed.
W 248 "Syntax error in #line"
A #line directive was not correctly formed.
W 249 "Syntax error in #module"
A #module directive was not correctly formed.
W 250 "Syntax error in #undef"
A #undef directive was not correctly formed.
W 251 "Token after #ifdef must be identifier"
The #ifdef directive was not followed by an identifier.
W 252 "Token after #ifndef must be identifier"
The #ifndef directive was not followed by an identifier.
S 253 "Too many actual parameters to $"
The number of actual arguments to the indicated macro exceeded the maximum allowed (currently 31).
S 254 "Too many formal parameters to $"
The number of formal arguments to the indicated macro exceeded the maximum allowed (currently 31).
F 255 "Too much pushback"
The preprocessor ran out of space while processing a macro expansion. The macro may be recursive.
W 256 "Undefined directive $"
The identifier following a # was not a directive name.
S 257 "EOF in #include directive"
End of file was encountered while processing a #include directive.
S 258 "Unmatched #elif"
A #elif directive was encountered with no preceding #if or #elif directive.
S 259 "Unmatched #else"
A #else directive was encountered with no preceding #if or #elif directive.
S 260 "Unmatched #endif"
A #endif directive was encountered with no preceding #if, #ifdef, or #ifndef directive.
S 261 "Include files nested too deeply"
The nesting depth of #include directives exceeded the maximum (currently 20).
S 262 "Unterminated macro definition for $"
A newline was encountered in the formal parameter list for the indicated macro.
S 263 "Unterminated string or character constant"
A newline with no preceding backslash was found in a quoted string.
I 264 "Possible nested comment"
The characters /* were found within a comment.
S 265 " " S 266 " " S 267 " " W 268 "Cannot inline subprogram; common block mismatch" W 269 "Cannot inline subprogram; argument type mismatch" F 270 "Missing -exlib option" W 271 "Can't inline $ - wrong number of arguments" I 272 "Argument of inlined function not used" S 273 "Inline library not specified on command line (-inlib switch)" F 274 "Unable to access file $/TOC" S 275 "Unable to open file $ while extracting or inlining" F 276 "Assignment to constant actual parameter in inlined subprogram" I 277 "Inlining of function $ may result in recursion" I 279 " Possible use of $ before definition in $" W 280 "Syntax error in directive $" W 281 "Directive ignored - $ $" S 301 "$ must be TEMPLATE or PROCESSOR" S 302 "Unmatched END$ statement"
An END statement was encountered that did not match the matching begin statement. An example would be an END INTERFACE encounter without a properly placed INTERFACE statement preceding it.
S 303 "END statement for $ required in an interface block" S 304 "EXIT/CYCLE statement must appear in a DO/DOWHILE loop$$" S 305 "$ cannot be named, $" S 306 "$ names more than one construct" S 307 "$ must have the construct name $" W 308 "EXIT/CYCLE statement may not be a DO termination statement" S 309 "Incorrect name, $, specified in END statement" S 310 "$ $" W 311 "Non-replicated mapping for $ array, $, ignored"
One reason this message might occur is that arrays with the SEQUENCE attribute cannot be mapped. Other reasons may be that this is a character array that was not mapped. Certain derived type mappings may be ignored as well.
W 312 "Array $ should be declared SEQUENCE" W 313 "Sub-program $ called within INDEPENDENT loop not PURE" E 313 Sub-program $ called within INDEPENDENT loop not PURE " I 314 "IPA: actual argument $ is a label, but dummy argument $ is not an asterisk "
The call passes a label to the subprogram; the corresponding dummy argument in the subprogram should be an asterisk to declare this as the alternate return.
I 315 "IPA: routine $, $ constant dummy arguments"
This many dummy arguments are being replaced by constants due to interprocedural analysis.
I 316 "IPA: routine $, $ INTENT(IN) dummy arguments"
This many dummy arguments are being marked as INTENT(IN)due to interprocedural analysis.
I 317 "IPA: routine $, $ array alignments propagated"
This many array alignments were propagated by interprocedural analysis.
I 318 "IPA: routine $, $ distribution formats propagated"
This many array distribution formats were propagated by interprocedural analysis.
I 319 "IPA: routine $, $ distribution targets propagated"
This many array distribution targets were propagated by interprocedural analysis.
I 320 "IPA: routine $, $ common blocks optimized"
This many mapped common blocks were optimized by interprocedural analysis.
I 321 "IPA: routine $, $ common blocks not optimized"
This many mapped common blocks were not optimized by interprocedural analysis, either because they were declared differently in different routines, or they did not appear in the main program.
I 322 "IPA: analyzing main program $"
Interprocedural analysis is building the call graph and propagating information with the named main program.
I 323 "IPA: collecting information for $"
Interprocedural analysis is saving information for the current subprogram for subsequent analysis and propagation.
W 324 "IPA file $ appears to be out of date" W 325 "IPA file $ is for wrong subprogram: $" W 326 "Unable to open file $ to propagate IPA information to $" I 327 "IPA: $ subprograms analyzed" I 328 "IPA: $ dummy arguments replaced by constants" I 329 "IPA: $ INTENT(IN) dummy arguments should be INTENT(INOUT)" I 330 "IPA: $ dummy arguments changed to INTENT(IN)" I 331 "IPA: $ inherited array alignments replaced" I 332 "IPA: $ transcriptive distribution formats replaced" I 333 "IPA: $ transcriptive distribution targets replaced" I 334 "IPA: $ descriptive/prescriptive array alignments verified" I 335 "IPA: $ descriptive/prescriptive distribution formats verified" I 336 "IPA: $ descriptive/prescriptive distribution targets verified" I 337 "IPA: $ common blocks optimized" I 338 "IPA: $ common blocks not optimized" S 339 "Bad IPA contents file: $" S 340 "Bad IPA file format: $" S 341 "Unable to create file $ while analyzing IPA information" S 342 "Unable to open file $ while analyzing IPA information" S 343 "Unable to open IPA contents file $" S 344 "Unable to create file $ while collecting IPA information" F 345 "Internal error in $: table overflow"
Analysis failed due to a table overflowing its maximum size.
W 346 "Subprogram $ appears twice"
The subprogram appears twice in the same source file; IPA will ignore the first appearance.
F 347 "Missing -ipalib option"
Interprocedural analysis, enabled with the -ipacollect, -ipaanalyze, or -ipapropagate options, requires the -ipalib option to specify the library directory.
W 348 "Common /$/ $ has different distribution target"
The array was declared in a common block with a different distribution target in another subprogram.
W 349 "Common /$/ $ has different distribution format"
The array was declared in a common block with a different distribution format in another subprogram.
W 350 "Common /$/ $ has different alignment"
The array was declared in a common block with a different alignment in another subprogram.
W 351 "Wrong number of arguments passed to $"
The subroutine or function statement for the given subprogram has a different number of dummy arguments than appear in the call.
W 352 "Wrong number of arguments passed to $ when bound to $"
The subroutine or function statement for the given subprogram has a different number of dummy arguments than appear in the call to the EXTERNAL name given.
W 353 "Subprogram $ is missing"
A call to a subroutine or function with this name appears, but it could not be found or analyzed.
I 354 "Subprogram $ is not called"
No calls to the given subroutine or function appear anywhere in the program.
W 355 "Missing argument in call to $"
A nonoptional argument is missing in a call to the given subprogram.
I 356 "Array section analysis incomplete"
Interprocedural analysis for array section arguments is incomplete; some information may not be available for optimization.
I 357 "Expression analysis incomplete"
Interprocedural analysis for expression arguments is incomplete; some information may not be available for optimization.
W 358 "Dummy argument $ is EXTERNAL, but actual is not subprogram"
The call statement passes a scalar or array to a dummy argument that is declared EXTERNAL.
W 359 "SUBROUTINE $ passed to FUNCTION dummy argument $"
The call statement passes a subroutine name to a dummy argument that is used as a function.
W 360 "FUNCTION $ passed to FUNCTION dummy argument $ with different result type"
The call statement passes a function argument to a function dummy argument, but the dummy has a different result type.
W 361 "FUNCTION $ passed to SUBROUTINE dummy argument $"
The call statement passes a function name to a dummy argument that is used as a subroutine.
W 362 "Argument $ has a different type than dummy argument $"
The type of the actual argument is different than the type of the corresponding dummy argument.
W 363 "Dummy argument $ is a POINTER but actual argument $ is not"
The dummy argument is a pointer, so the actual argument must be also.
W 364 "Array or array expression passed to scalar dummy argument $"
The actual argument is an array, but the dummy argument is a scalar variable.
W 365 "Scalar or scalar expression passed to array dummy argument $"
The actual argument is a scalar variable, but the dummy argument is an array.
F 366 "Internal error: interprocedural analysis fails"
An internal error occurred during interprocedural analysis; please report this to the compiler maintenance group. If user errors were reported when collecting IPA information or during IPA analysis, correcting them may avoid this error.
I 367 "Array $ bounds cannot be matched to formal argument"
Passing a nonsequential array to a sequential dummy argument may require copying the array to sequential storage. The most common cause is passing an ALLOCATABLE array or array expression to a dummy argument that is declared with explicit bounds. Declaring the dummy argument as assumed shape, with bounds (:,:,:), will remove this warning.
W 368 "Array-valued expression passed to scalar dummy argument $"
The actual argument is an array-valued expression, but the dummy argument is a scalar variable.
W 369 "Dummy argument $ has different rank than actual argument"
The actual argument is an array or array-valued expression with a different rank than the dummy argument.
W 370 "Dummy argument $ has different shape than actual argument"
The actual argument is an array or array-valued expression with a different shape than the dummy argument; this may require copying the actual argument into sequential storage.
W 371 "Dummy argument $ is INTENT(IN) but may be modified"
The dummy argument was declared as INTENT(IN), but analysis has found that the argument may be modified; the INTENT(IN) declaration should be changed.
W 372 "Cannot propagate alignment from $ to $"
The most common cause is when passing an array with an inherited alignment to a dummy argument with noninherited alignment.
I 373 "Cannot propagate distribution format from $ to $"
The most common cause is when passing an array with a transcriptive distribution format to a dummy argument with prescriptive or descriptive distribution format.
I 374 "Cannot propagate distribution target from $ to $"
The most common cause is when passing an array with a transcriptive distribution target to a dummy argument with prescriptive or descriptive distribution target.
I 375 "Distribution format mismatch between $ and $"
Usually this arises when the actual and dummy arguments are distributed in different dimensions.
I 376 "Alignment stride mismatch between $ and $"
This may arise when the actual argument has a different stride in its alignment to its template than does the dummy argument.
I 377 "Alignment offset mismatch between $ and $"
This may arise when the actual argument has a different offset in its alignment to its template than does the dummy argument.
I 378 "Distribution target mismatch between $ and $"
This may arise when the actual and dummy arguments have different distribution target sizes.
I 379 "Alignment of $ is too complex"
The alignment specification of the array is too complex for interprocedural analysis to verify or propagate; the program will work correctly, but without the benefit of IPA.
I 380 "Distribution format of $ is too complex"
The distribution format specification of the array is too complex for interprocedural analysis to verify or propagate; the program will work correctly, but without the benefit of IPA.
I 381 "Distribution target of $ is too complex"
The distribution target specification of the array is too complex for interprocedural analysis to verify or propagate; the program will work correctly, but without the benefit of IPA.
I 382 "IPA: $ subprograms analyzed"
Interprocedural analysis succeeded in finding and analyzing this many subprograms in the whole program.
I 383 "IPA: $ dummy arguments replaced by constants"
Interprocedural analysis has found this many dummy arguments in the whole program that can be replaced by constants.
I 384 "IPA: $ dummy arguments changed to INTENT(IN)"
Interprocedural analysis has found this many dummy arguments in the whole program that are not modified and can be declared as INTENT(IN).
W 385 "IPA: $ INTENT(IN) dummy arguments should be INTENT(INOUT)"
Interprocedural analysis has found this many dummy arguments in the whole program that were declared as INTENT(IN) but should be INTENT(INOUT).
I 386 "IPA: $ array alignments propagated"
Interprocedural analysis has found this many array dummy arguments that could have the inherited array alignment replaced by a descriptive alignment.
I 387 "IPA: $ array alignments verified"
Interprocedural analysis has verified that the prescriptive or descriptive alignments of this many array dummy arguments match the alignments of the actual argument.
I 388 "IPA: $ array distribution formats propagated"
Interprocedural analysis has found this many array dummy arguments that could have the transcriptive distribution format replaced by a descriptive format.
I 389 "IPA: $ array distribution formats verified"
Interprocedural analysis has verified that the prescriptive or descriptive distribution formats of this many array dummy arguments match the formats of the actual argument.
I 390 "IPA: $ array distribution targets propagated"
Interprocedural analysis has found this many array dummy arguments that could have the transcriptive distribution target replaced by a descriptive target.
I 391 "IPA: $ array distribution targets verified"
Interprocedural analysis has verified that the prescriptive or descriptive distribution targets of this many array dummy arguments match the targets of the actual argument.
I 392 "IPA: $ common blocks optimized"
Interprocedural analysis has found this many common blocks that could be optimized.
I 393 "IPA: $ common blocks not optimized"
Interprocedural analysis has found this many common blocks that could not be optimized, either because the common block was not declared in the main program, or because it was declared differently in different subprograms.
I 394 "IPA: $ replaced by constant value"
The dummy argument was replaced by a constant as per interprocedural analysis.
I 395 "IPA: $ changed to INTENT(IN)"
The dummy argument was changed to INTENT(IN) as per interprocedural analysis.
I 396 "IPA: array alignment propagated to $"
The template alignment for the dummy argument was changed as per interprocedural analysis.
I 397 "IPA: distribution format propagated to $"
The distribution format for the dummy argument was changed as per interprocedural analysis.
I 398 "IPA: distribution target propagated to $"
The distribution target for the dummy argument was changed as per interprocedural analysis.
I 399 "IPA: common block $ not optimized"
The given common block was not optimized by interprocedural analysis either because it was not declared in the main program, or because it was declared differently in different subprograms.
E 400 "IPA: dummy argument $ is an asterisk, but actual argument is not a label"
The subprogram expects an alternate return label for this argument.
E 401 "Actual argument $ is a subprogram, but Dummy argument $ is not declared EXTERNAL"
The call statement passes a function or subroutine name to a dummy argument that is a scalar variable or array.
E 402 "Actual argument $ is illegal" E 403 "Actual argument $ and formal argument $ have different ranks"
The actual and formal array arguments differ in rank, which is allowed only if both arrays are declared with the HPF SEQUENCE attribute.
E 404 "Sequential array section of $ in argument $ is not contiguous"
When passing an array section to a formal argument that has the HPF SEQUENCE attribute, the actual argument must be a whole array with the HPF SEQUENCE attribute, or an array section of such an array where the section is a contiguous sequence of elements.
E 405 "Array expression argument $ may not be passed to sequential dummy argument $"
When the dummy argument has the HPF SEQUENCE attribute, the actual argument must be a whole array with the HPF SEQUENCE attribute or a contiguous array section of such an array, unless an INTERFACE block is used.
E 406 "Actual argument $ and formal argument $ have different character lengths"
The actual and formal array character arguments have different character lengths, which is allowed only if both character arrays are declared with the HPF SEQUENCE attribute, unless an INTERFACE block is used.
W 407 "Argument $ has a different character length than dummy argument $"
The character length of the actual argument is different than the length specified for the corresponding dummy argument.
W 408 "Specified main program $ is not a PROGRAM"
The main program specified on the command line is a subroutine, function, or block data subprogram.
W 409 "More than one main program in IPA directory: $ and $"
There is more than one main program analyzed in the IPA directory shown. The first one found is used.
W 410 "No main program found; IPA analysis fails."
The main program must appear in the IPA directory for analysis to proceed.
W 411 "Formal argument $ is DYNAMIC but actual argument is an expression" W 412 "Formal argument $ is DYNAMIC but actual argument $ is not" I 413 "Formal argument $ has two reaching distributions and may be a candidate for cloning" I 414 "$ and $ may be aliased and one of them is assigned"
Interprocedural analysis has determined that two formal arguments because the same variable is passed in both argument positions, or one formal argument and a global or COMMON variable may be aliased, because the global or COMMON variable is passed as an actual argument. If either alias is assigned in the subroutine, unexpected results may occur;
this message alerts the user that this situation is disallowed by the Fortran standard.
F 415 "IPA fails: incorrect IPA file"
Interprocedural analysis saves its information in special IPA files in the specified IPA directory. One of these files has been renamed or corrupted. This can arise when there are two files with the same prefix, such as 'a.hpf' and 'a.f90'.
E 416 "Argument $ has the SEQUENCE attribute, but the dummy parameter $ does not"
When an actual argument is an array with the SEQUENCE attribute, the dummy parameter must have the SEQUENCE attribute or an INTERFACE block must be used.
E 417 "Interface block for $ is a SUBROUTINE but should be a FUNCTION" E 418 "Interface block for $ is a FUNCTION but should be a SUBROUTINE" E 419 "Interface block for $ is a FUNCTION has wrong result type" W 420 "Earlier $ directive overrides $ directive" W 421 "$ directive can only appear in a function or subroutine" E 422 "Nonconstant DIM= argument is not supported" E 423 "Constant DIM= argument is out of range" E 424 "Equivalence using substring or vector triplets is not allowed" E 425 "A record is not allowed in this context" E 426 "WORD type cannot be converted" E 427 "Interface block for $ has wrong number of arguments" E 428 "Interface block for $ should have $" E 429 "Interface block for $ should not have $" E 430 "Interface block for $ has wrong $" W 431 "Program is too large for Interprocedural Analysis to complete" W 432 "Illegal type conversion $" E 433 "Subprogram $ called within INDEPENDENT loop not LOCAL" W 434 "Incorrect home array specification ignored" S 435 "Array declared with zero size"
An array was declared with a zero or negative dimension bound, as 'real a(-1)', or an upper bound less than the lower bound, as 'real a(4:2)'.
W 436 "Independent loop not parallelized$" W 437 "Type $ will be mapped to $"
Where DOUBLE PRECISION is not supported, it is mapped to REAL, and similarly for COMPLEX(16) or COMPLEX*32.