c SEGVs in loop.c with -O2. character*80 function nxtlin(lun,ierr,itok) character onechr*1,twochr*2,thrchr*3 itok=0 do while (.true.) read (lun,'(a)',iostat=ierr) nxtlin if (nxtlin(1:1).ne.'#') then ito=0 do 10 it=1,79 if (nxtlin(it:it).ne.' ' .and. nxtlin(it+1:it+1).eq.' ') $ then itast=0 itstrt=0 do itt=ito+1,it if (nxtlin(itt:itt).eq.'*') itast=itt enddo itstrt=ito+1 do while (nxtlin(itstrt:itstrt).eq.' ') itstrt=itstrt+1 enddo if (itast.gt.0) then nchrs=itast-itstrt if (nchrs.eq.1) then onechr=nxtlin(itstrt:itstrt) read (onechr,*) itokn elseif (nchrs.eq.2) then twochr=nxtlin(itstrt:itstrt+1) read (twochr,*) itokn elseif (nchrs.eq.3) then thrchr=nxtlin(itstrt:itstrt+2) read (thrchr,*) itokn elseif (nchrs.eq.4) then thrchr=nxtlin(itstrt:itstrt+3) read (thrchr,*) itokn endif itok=itok+itokn else itok=itok+1 endif ito=it+1 endif 10 continue return endif enddo return end