From James Van Buskirk in comp.lang.fortran There is a buglet in the description of CMPLX in the standard: "If X is complex, it is as if X were real with the value REAL(X,KIND) and Y were present with the value AIMAG(X,KIND)." Nice concise prose, but AIMAG doesn't take a KIND optional argument. Maybe REAL(AIMAG(X),KIND) ?