The two categories of array-valued intrinsic functions are known as ``transformational" and ``elemental" functions. A transformational function accepts an input array and produces a different array as the result-it ``transforms" the input array into something else, possibly even a differently shaped array, or even a scalar. (A transformational function can even transform a scalar into an array.) CSHIFT is an example of a transformational function, albeit a very simple one with a result that is conformable with its (first) argument. Intrinsic function MATMUL (matrix multiplication) is an example of a transformational function that returns an array result of different shape than (either of) its arguments. The reduction functions, SUM, PRODUCT, COUNT, etc., are examples of transformational functions that ``reduce" array arguments to scalar results. The Fortran 90 array transformational intrinsic functions (42 in all) are listed in Table 4.
Table 4: Array Valued Functions.