 |
» |
|
|
 |
Declares entities of type character. SyntaxCHARACTER [char-selector] [[, attrib-list] ::] entity-list |
 |
- char-selector
specifies the length and kind of the character variable.
It takes one of the following forms: ([LEN=]len-spec[, KIND=kind-param]) (len-spec, [KIND=]kind-param) (KIND=kind-param[, LEN=len-spec])
where kind-param (if specified)
must be 1, the default; len-spec is either
an asterisk (*)
or a specification expression; and len-const
is an integer constant. In the last form, len-param
is enclosed in parentheses, and the optional comma may be included
only if the double colon does not appear in the type declaration
statement. If len-spec evaluates to a
negative value, a zero-length string is declared. If len-spec
is unspecified, the default is 1. - attrib-list
is a list of one or more of the following attributes,
separated by commas: If attrib-list is present, it must
be followed by the double colon. For information about individual
attributes, see the corresponding statement in this chapter. - entity-list
is a list of entities, separated by commas. Each
entity takes the form: name[(array-spec)][*len-spec][=initialization-expr] where name is the name of a variable
or function, array-spec is a comma-separated
list of dimension bounds, len-spec is
either an asterisk (*) or a specification expression, and
initialization-expr is a character constant
expression. If initialization-expr is
present, entity-list must be preceded
by the double colon.
DescriptionThe CHARACTER
statement is used to declare the length and properties of character
data. It is constrained by the rules for all type declaration statements,
including the requirement that it precede all executable statements. To indicate that the length of a character can vary, you may
use an assumed character length parameter by specifying an asterisk
(*) for len-param.
The asterisk may be used only when doing the following: Declaring the type of a function.
The function must not be an internal or module function, nor must
it be array-valued, pointer-valued, or recursive. Declaring a dummy argument of a procedure. Declaring a named constant (see the PARAMETER
statement).
ExamplesThe following are valid declarations: CHARACTER c1, c2 CHARACTER(LEN=80) :: text(0:25) CHARACTER(2, 1), PARAMETER :: limit="ZZ" ! initialize an array, using an array constructor CHARACTER(4) :: response(3) = (/"Yes.", "No!!", "Huh?"/) ! use slashes as initialization delimiters, an HP extension CHARACTER*10 c1/"Tom"/,c2/"Jones"/ ! note, no double colon |
The following are valid uses of the assumed length parameter: CHARACTER(*) dummy_arg_name CHARACTER(*), PARAMETER :: hello="Hi Sam" CHARACTER(LEN=*), PARAMETER :: hello="Hi Sam" |
Assuming that c
is an ordinary variable and not the dummy argument to a procedure,
the following declaration is an illegal use of the assumed length
parameter: CHARACTER*(*) c ! illegal |
Related conceptsFor related information, see the following:
|