Integer operators apply to only integer operands. Real operators apply to only real operands, or to combinations of byte, logical, integer, and real operands. Double precision operators apply to only double precision operands, and any operand of lower precision is promoted to double precision. The new least significant bits of the new double precision number are set to zero. Promoting a real operand does not increase the accuracy of the operand.
Complex operators apply to only complex operands.
Any integer operands are promoted to real, and they are then used as the real part of a complex operand, with the imaginary part set to zero. Numeric operations are allowed on logical variables. The compiler implicitly converts the logical to the appropriate numeric. Logical operations are allowed on integers, bytes, and characters. If you use these features, your program may not be portable.