| Functions & Pointer |
| |
| Pointers |
| |
| What are Pointers? |
Pointer is a type of variable which stores other variables called
targets. |
| |
 |
| A pointer is a new type of variable which may reference the data
stored by other variables (called targets) or areas of dynamically
allocated memory. Pointers have been included in Fortran 90, but
not in the usual way as in most other languages, with pointer
as a specific data type. |
| Pointers provide: |
| A flexible alternative to allocatable arrays. |
| The tools to create and manipulate dynamic data structures. |
| Pointers and targets: |
| It is useful to have variables where the space referenced by the
variable can be changed as well as the values stored in that space. |
 |
| The pointer often uses less space than the target. |
| reference to the pointer will in general be a reference to the
target. |
| A POINTER is a variable declared with the POINTER attribute. |
| REAL, POINTER
:: P |
| REAL, DIMENSION(:,:),
POINTER :: Pt |
| The first declaration specifies that the name P is a pointer to
a scalar REAL target; the second specifies that Pt is a pointer
to a rank 2 array of reals. Pointers cannot point to literals. |
| From the above statements we have: |
| the declaration fixes the type, kind and rank of any possible
target. |
| pointers to arrays are always declared with deferred-shape array
specifications. |
| the rank of a target is fixed but the shape may vary. |
| |
| |
|
| |
| |