The problem is that the IO routines assume kind==size, and complex numbers are handled as two reals, advancing a pointer between doing the IO. For types with padding such as complex(10) this breaks as the pointer is advanced 10 bytes instead of 12 (or 16 on IA64, x86-64).
It should be noted that the patch proposed for 24174 also fixes complex(10) formatted output. -- Summary: Complex(10) formatted IO is broken. Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jblomqvi at cc dot hut dot fi GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24305