character*80 line character*40 flname,FILENAME,sym(20) character*10 sg LOGICAL EFLG WRITE(6,*)'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.' flname='sfc:symop.lib' goto 6 5 write(6,*)' Enter name of symop.lib file:' read(5,11) flname 11 format(a40) 6 INQUIRE(FILE=flname, NAME=FILENAME,EXIST=EFLG) IF (.NOT.EFLG) GOTO 5 open(unit=2,file=flname,status='old') 30 read(2,31,END=900) line 31 format(a80) call check(line,iflag) if (iflag.ne.0) goto 30 c35 decode (80,'(BN,i4)',line),nsg c decode (80,'(12x,A10)',line),sg 35 sg=line(13:22) read(line,'(BN,i4)') nsg i=0 40 read(2,31,END=900) line call check(line,iflag) if (iflag.eq.0) goto 50 c write(6,*) line 42 j=index(line,'*') if (j.ne.0) then i=i+1 sym(i)=line(1:j-1) line=line(j+1:) c write(6,*)i,sym(i) goto 42 endif if (line.ne.' ') then i=i+1 sym(i)=line endif goto 40 50 write (6,*) sg, nsg do 55 j=1,i 55 write(6,*)sym(j) goto 35 900 close (unit=2) end subroutine check(line,iflag) character*80 line character*1 char iflag=0 do 40 i=1,4 char=line(i:i) c write(6,*) char,ichar(char) if ((char.lt.'0').and.(char.ne.' ')) iflag=1 if (char.gt.'9') iflag=1 40 continue if (line(1:4).eq.' ') iflag=1 return end