Various notes on trickier aspects of Fortran 95
These are very useful for working on arrays, and avoid having to use generic procedures with a different actual procedure for each array rank, like you had to in Fortran 90.
However, they have to be pure, which means you can't have any
print statments (no great loss) but neither can you have any if
statements or blocks, which is a little annoying. But, there is a
workaround for this: the merge intrinsic function.