http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52537
--- Comment #9 from Hossein Talebi <talebi.hossein at gmail dot com> 2012-06-07 16:03:09 UTC --- I think I found where the problem is. It is not with the trim(). It is mostly with read (st_input_all(j),*,IOSTAT=ios) I50(1:50). I attach a self contained program. With intel it takes 11sec but for gfortran takes 40sec. The input file is 404MB. program fileread integer :: linenum integer :: j,ferror, ios,i character (len=200) :: st_input character (len=200) :: st_input_all(5373122) integer :: funit2 integer :: I50(0:50) integer G_elid, nn !, pEidf, pEconnf,pEmatidf integer, allocatable :: element_tab(:), Elements(:,:) linenum=0; ferror=0; open (funit2, file = "/data/msh/bigmesh.elements", access = 'sequential',iostat=ferror) if (ferror/=0) then STOP "error reading the file" endif print *, "reading the file..." G_elid=0 do j=1,5373122 read (funit2,"(A200)",iostat=ferror) st_input_all(j) if (G_elid== 5373121 ) then print *, st_input_all(j) endif enddo G_elid=0 do j=1,5373122 G_elid=G_elid+1 read (st_input_all(j),*,IOSTAT=ios) I50(1:50) if (G_elid== 5373121 ) then print *, I50 endif enddo close(funit2) print *, I50 STOP "permix I am stopped" end program fileread