Next: Generalized Data References Up: High Performance Fortran Journal Previous: Nested WHERE statements
Proposal: ALLOCATE, DEALLOCATE, and NULLIFY statements may appear in the body of a FORALL.
Rationale: These are just another kind of assignment. They may have a kind of side effect (storage management), but it is a benign side effect (even milder than random number generation).
Example: TYPE SCREEN INTEGER, POINTER :: P(:,:) END TYPE SCREEN TYPE(SCREEN) :: S(N) INTEGER IERR(N) ... ! Lots of arrays with different aspect ratios FORALL (J=1:N) ALLOCATE(S(J) IF(ANY(IERR)) GO TO 99999