program fixstruct parameter (n0=100000) character*50 s(n0),s50,sn(n0) open(9,file='STRUCT.LST') k=0 1 read(9,90,end=900,err=900)s50 90 format(a50) k=k+1 if(k.gt.n0)call report('too many structures') s(k)=s50 goto 1 900 rewind 9 do 3 i=1,k 3 sn(i)=' ' do 4 i=1,k do 5 iend=len(s(i)),1,-1 5 if(s(i)(iend:iend).eq.'.')goto 6 6 read(s(i)(iend+1:len(s(i))),*)io if(io.gt.n0)call report('inreasonable number') 4 sn(io)=s(i) do 2 i=1,k 2 if(sn(i).ne.' ')write(9,90)sn(i) close(9) write(6,*)'STRUCT.LST rewritten ',k,' lines' stop end subroutine report(s) character*(*) s write(6,*)s stop end