Entity Declaration List
Standard: F77 F90 F95 F2003
<Syntax>
 entity-decl-list ::= entity-decl [ , entity-decl ]...

entity-decl::=object-name [ clen ] [ dims ] [ initialisation ]
 | function-name [ clen ]

clen::=* int-literal-constant
 | * ( char-len )

 dims ::= ( array-spec )

initialisation::== expression
 | => NULL()

The entity-decl-list is used in both Type Declaration statements and Component Definition statements.
<Semantics>
The entity-decl-list names the entities being declared. If clen is present, it specifies the CHARACTER length for that entity (overriding the length in the type-spec). If dims is present, it specifies the DIMENSION attribute for that entity (overriding any DIMENSION clause).

In a type declaration statement, if the PARAMETER clause is present then value must be present: it specifies the value of the parameter. If the PARAMETER clause is not present, initialisation implies the SAVE attribute and specifies the initial value of the variable.

In a component definition statement, if initialisation is present it specifies default initialisation for that component. This will set the initial value of the component to that value whenever a new variable of the type is created.

An initialisation is permitted to be a reference to the NULL intrinsic function if and only if the entity is a pointer, and this specifies that the pointer is initially disassociated. Note that if the entity is allocatable, no initialisation is permitted (the initial state of all allocatable entities is unallocated).

<Related>
Attributes, CHARACTER type, Component Definition statement, DIMENSION attribute, NULL intrinsic function, Type Declaration statement.