This function returns a result with a physical representation identical to that
of SOURCE but interpreted with the type and type parameters of MOLD.
SOURCE and MOLD may be of any type and may be scalar or array valued. SIZE is a
scalar giving the size of the result. The result is of the same type and type
parameters as MOLD.
Case (i): If MOLD is a scalar and SIZE is absent, the result is a scalar.
Case (ii): If MOLD is array valued and SIZE is absent, the result is array
valued and of rank one. Its size is as small as possible such that its physical
representation is not shorter than that of SOURCE.
Case (iii): If SIZE is present, the result is array valued of rank one and