Next: Parallel I/O Up: Elemental Reference of Previous: Elemental Reference of
It is perhaps worth outlining the reasons for the extra constraints imposed on pure procedures in order for them to be referenced elementally.
The result of an elemental function or ``output'' arguments of a subroutine are not allowed to have the POINTER attribute because Fortran 90 does not permit an array of pointers to be referenced. The ``input'' arguments of an elemental reference are prohibited from having the POINTER attribute for consistency with the output arguments or result.
In an elemental reference, any actual argument that is a function must have a result whose shape agrees with that of the corresponding function dummy procedure. That is, elemental usage does not extend to function arguments, as Fortran 90 does not support the concept of an ``array'' of functions.
Finally, the length of any character dummy argument or a character dummy result cannot depend on argument values (though it can be assumed, or depend on the lengths of other character arguments). This ensures that under elemental reference, all elements of an array argument or result of character type will have the same length, as required by Fortran 90.