Complex constants and variables

Nice summary from my view. I always have to double-check cmplx() calls have a kind parameter if not using default real; and until I found someone else using it it had not occurred to me cmplx could take just one value. So I have been surprised by

program testit
write(*,*)cmplx(10)  ! did not know a single value was legal for a long time
write(*,*)cmplx(20.0d0,20.0d0) ! had to learn this returns default real kind
write(*,*)(20.0d0,20.0d0)  ! and so was not sure this would return double
end program testit

and I think %im and %re were around for a long time before I knew it, and even longer before I knew they would be used on the LHS; although I am not sure that is a common miss.

x%im=10.0d0
x%re=30.0d0

those were my personal surprises. I hate cmplx() defaulting to default real enough I was using my own generic function just called COMPLEX for a while; but it ends up some compilers have a procedure of the same name, and so it was confusing.