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 |