Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP Fortran Compiler for HP-UX: HP Fortran Programmer's Reference > Chapter 10 HP Fortran statements

ALLOCATABLE (statement and attribute)

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

Declares an allocatable array with deferred shape.

Syntax

The syntax of a type declaration statement with the ALLOCATABLE attribute is:

type, attrib-list :: entity-list
type

is a valid type specification (INTEGER, REAL, LOGICAL, CHARACTER, TYPE(type-name), etc.), as described in Chapter 5 “Data types and data objects”.

attrib-list

is a comma-separated list of attributes including ALLOCATABLE and optionally those attributes compatible with it, namely:

Table 10-2 Title not available (ALLOCATABLE (statement and attribute))

DIMENSION

PUBLIC

TARGET

PRIVATE

SAVE

 

entity-list

is a comma-separated list of entities. Each entity is of the form:

array-name [( deferred-shape-spec-list )]

If ( deferred-shape-spec-list ) is omitted, it must be specified in another declaration statement.

array-name

is the name of an array being given the attribute ALLOCATABLE.

deferred-shape-spec-list

is a comma-separated list of colons, each colon representing one dimension. Thus the rank of the array is equal to the number of colons specified.

The syntax of the ALLOCATABLE statement is:

ALLOCATABLE [::] array-name [(deferred-shape-spec-list)]
     [,array-name [(deferred-shape-spec-list)]]...

If (deferred-shape-spec-list) is omitted from the ALLOCATABLE statement, it must be specified in another declaration statement, such as a type or DIMENSION statement.

The ALLOCATED intrinsic inquiry function is described in “ALLOCATED(ARRAY)”. It can be used to determine whether an allocatable array is currently allocated.

Description

The ALLOCATABLE attribute or statement is used to declare an array whose extents in all its dimensions will be specified when an ALLOCATE statement is executed at run-time; for this reason it is known as “deferred-shape”. When an allocatable array is declared, only its name and rank are given.

Examples

The following statements declare a rank-one deferred-shape array and illustrate its use with different extents.

! mls is deferred shape.
INTEGER, ALLOCATABLE :: mls(:)
ALLOCATE (mls (3)) ! Allocate 3 elements.
DEALLOCATE (mls) ! mls is no longer allocated
ALLOCATE (mls (-n:n)) ! Allocate with different extent

Related statements

ALLOCATE and DEALLOCATE

Related concepts

See “Allocatable arrays” for more information about allocatable arrays and the conditions applying to their use.

Array pointers provide a more general mechanism for the manipulation of deferred-shape arrays; see “Array pointers”.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.