character*77 astring,string(10000) character*40 infile,filename integer*2 h,k,l,hkl(10000,3),VECT(3),MAT(3,3,12) logical eflg WRITE (6,*)'NAME OF SYMOP FILE?' READ(5,*) INFILE OPEN (UNIT=2,FILE=INFILE,STATUS='OLD') READ(2,*) NSOPS DO 3 K=1,NSOPS DO 3 I=1,3 3 READ(2,*) (MAT(I,J,K),J=1,3) CLOSE (UNIT=2) 5 WRITE(6,1100) 1100 FORMAT(/'$DENZO output reflection file? (CR to quit): ') READ(5,1200) INFILE 1200 FORMAT(A) IF (INFILE(:5).EQ.' ') STOP INQUIRE(FILE=INFILE, NAME=FILENAME,EXIST=EFLG) IF (.NOT.EFLG) GOTO 5 OPEN (UNIT=2,FILE=INFILE,STATUS='OLD') DO 345 I=1,5 345 READ (2,350)ASTRING C TYPE*, ASTRING 350 FORMAT (A77) N1=0 N2=0 C 355 READ (2,360)X 360 FORMAT (F7.4) 370 N1=N1+1 READ(2,350,END=500)string(n1) decode(77,101,string(n1),ERR=500) hkl(n1,1),hkl(n1,2),hkl(n1,3) IF (HKL(N1,1).EQ.-999) GOTO 500 C WRITE (5,*) STRING(N1) C WRITE(6,*)(HKL(N1,K),K=1,3) 101 FORMAT (I4,2I4,I2,F8.0,F8.1,F7.2,F6.1,F6.3,F7.1,F7.1,F6.3,F8.1) goto 370 500 CLOSE (UNIT=2) N1=N1-1 write(6,*)'number of reflections:',n1 do 600 i=1,n1 C WRITE(6,*) STRING(I) DO 600 KK=1,NSOPS DO 530 II=1,3 VECT(II)=0 DO 530 J=1,3 530 VECT(II)=VECT(II)+HKL(I,J)*MAT(II,J,KK) DO 600 L=1,2 IF (L.EQ.2) THEN DO 540 J=1,3 540 VECT(J)=-VECT(J) END IF C WRITE(6,*)(VECT(J),J=1,3) do 600 j=i+1,n1 flag=1 do 550 k=1, 3 550 if (VECT(k).ne.hkl(j,k)) flag=0 if (flag.eq.1) write(6,*)I,':',(VECT(K),K=1,3),J,':',(HKL(J,K),K=1,3) if (flag.eq.1) write(6,557)string(i),string(j) 557 format(A77,/,A77) 600 continue GOTO 5