Currently, the declared type is used for MOLD= in TRANSFER. It seems as if the effective type should be used instead.
This is a tracker bug as the standard is a bit ambiguous about it; I assume that there will be an IR (interpretation request) about it.
Currently, F2008 just has:
MOLD shall be a scalar or array of any type. If it is a variable, it need not be defined.
Result Characteristics. The result is of the same type and type parameters as MOLD.