Numeric

 Statement format:

type[*n] v [*n][/clist/][,v [*n][/clist/]]...

type Is any of the following data type specifiers:

BYTE (equivalent to INTEGER*1) DOUBLE PRECISION LOGICAL COMPLEX INTEGER DOUBLE COMPLEX REAL

n Is an integer that specifies (in bytes) the length of "v". It overrides the length that is implied by the data type.

The value of n must specify an acceptable length for the type of "v" (see the "DEC Fortran Language Reference Manual"). BYTE, DOUBLE PRECISION, and DOUBLE COMPLEX data types have one acceptable length; thus, for these data types, the "n" specifier is invalid.

If an array declarator is used, the "n" specifier must be positioned immediately after the array name.

v Is the symbolic name of a constant, variable, array, statement function or function subprogram, or array declarator.

clist Is a list of constants, as in a DATA statement. If "v" is the symbolic name of a constant, the "clist" cannot be present.

A numeric data type declaration statement can define arrays by including array declarators in the list.

A numeric type declaration statement can assign initial values to variables or arrays if it specifies a list of constants (the "clist"). The specified constants initialize only the variable or array that immediately precedes them. The "clist" cannot have more than one element unless it initializes an array. When the "clist" initializes an array, it must contain a value for every element in the array.

Character

 Format:

CHARACTER[*len[,] v[*len] [/clist/] [,v[*len] [/clist/]]...

len Is an unsigned integer constant, an integer constant expression enclosed in parentheses, or an asterisk (*) enclosed in parentheses. The value of "len" specifies the length of the character data elements.

v Is the symbolic name of a constant, variable, array, statement function or function subprogram, or array declarator. The name can optionally be followed by a data type length specifier (*len or *(*)).

clist Is a list of constants, as in a DATA statement. If "v" is the symbolic name of a constant, "clist" must not be present.

If you use CHARACTER*len, "len" is the default length specification for that list. If an item in that list does not have a length specification, the item's length is "len". However, if an item does have a length specification, it overrides the default length specified in CHARACTER*len.

When an asterisk length specification *(*) is used for a function name or dummy argument, it assumes the length of the corresponding function reference or actual argument. Similarly, when an asterisk length specification is used for the symbolic name of a constant, the name assumes the length of the actual constant it represents. For example, STRING assumes a 9-byte length in the following statements:

CHARACTER*(*) STRING PARAMETER (STRING = 'VALUE IS:')

The length specification must range from 1 to 2**31-1 on RISC processors. If no length is specified, a length of 1 is assumed.

Character type declaration statements can define arrays if they include array declarators in their list. The array declarator goes first if both an array declarator and a length are specified.

A character type declaration statement can assign initial values to variables or arrays if it specifies a list of constants (the clist). The specified constants initialize only the variable or array that immediately precedes them. The "clist" cannot have more than one element unless it initializes an array. When the "clist" initializes an array, it must contain a value for every element in the array.