If pointee_name is of character type, it must be a variable typed CHARACTER*(*).
If pointee_name is an array declarator, it must be explicit shape, (constant or nonconstant bounds), or assumed-size.
An array of Cray pointers is not allowed.
A Cray pointer cannot be:
Pointed to by another Cray pointer or by a Fortran pointer.
A component of a structure.
Declared to be any other data type.