If an expression mixes type, the compiler must automatically convert (promote) one type to another. Default types have an implied ordering:
For example, if an INTEGER is mixed with a REAL the INTEGER is promoted to (represented as) a REAL and then the calculation performed.
Consider,
int*real*dp*c
the types are coerced as follows: int to REAL int*real to DOUBLE PRECISION and (int*real)*dp to COMPLEX. The above expression is COMPLEX valued.
For more information, click here