ifort gets this rigt. $ cat internal-reversion.f90 character(len=20), dimension(2) :: line(2) integer, dimension(2) :: a a = 2 write (unit=line,fmt='("a",I4)') a print *,line(1) print *,line(2) end $ gfortran internal-reversion.f90 $ ./a.out a 2 a 2
$ ifort internal-reversion.f90 $ ./a.out a 2 a 2 $ gfortran -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.1/configure --prefix=/home/ig25 --enable-languages=c,f95 Thread model: posix gcc version 4.1.0 20050811 (experimental) -- Summary: missing format reversion for internal write Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P2 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23364