INTEGER*2 H(33000),K(33000),L(33000),ord(33000),DERI,NDERI integer*4 N,I,ii,nspots REAL*4 FMEAN(33000,4),SIG(33000,4),ratio(33000) CHARACTER FNAME*40,ASTRING*70 CHARACTER*4 DSTRING,DERIS(10) R32K=128*256 TYPE *,'READ PROTEIN REFL LIST FILE ' C TYPE*,'USING PROFILE FITTED INTENSITY AND ' C TYPE*,'SPOTS WITH NEGATIVE SIGMA (DENZO ', C & 'POSITIVE SIGMA' type *,'***<<<>>>****' 30 TYPE *,'ENTER FILE NAME (Q TO QUIT):' 35 read(5,40)FNAME IF (FNAME.EQ.'Q') GOTO 501 40 FORMAT (A40) OPEN(UNIT=2,FILE=FNAME,STATUS='OLD') C TYPE *,'ENTER FILE NAME FOR OUTPUT:' C read(5,40)FNAME OPEN(UNIT=3,FILE='nat.rfl',STATUS='NEW') OPEN(UNIT=4,FILE='der.rfl',STATUS='NEW') NDERI=0 C READ THROUGH DEF AT TOP OF FILE TO FIRST HEADER 45 READ (2,50)ASTRING C TYPE*, ASTRING 50 FORMAT (A70) IF (ASTRING(25:28).NE.'DERI') GOTO 45 55 READ (2,50,END=200)ASTRING IF (ASTRING(25:28).EQ.'DERI') GOTO 55 IF (ASTRING(25:28).EQ.' ') GOTO 55 IF (ASTRING(6:18).EQ.' reflections ') goto 200 C14000 reflections in above list ;STRING AT END OF LIST C1234567890123456789 DSTRING=ASTRING(25:28) DERI=0 DO 60 I=1,NDERI 60 IF (DSTRING.EQ.DERIS(I)) DERI=I IF (DERI.EQ.0) THEN NDERI=NDERI+1 DERI=NDERI DERIS(DERI)=DSTRING WRITE(6,*)DSTRING,DERI ENDIF IF (ASTRING(:11).EQ.' ') GOTO 70 IF (II.EQ.33000)GOTO 100 II=II+1 decode(70,63,ASTRING) H(II),K(II),L(II) 63 format(I3,2I4) 70 IF (ASTRING(37:38).EQ.'*R') GOTO 55 C (THAT SPOT REJECTED, SKIP IT) DECODE(70,71,ASTRING)FMEAN(II,DERI),SIG(II,DERI) C (NOTE SIG HERE IS SIGF/F) 71 FORMAT(28X,2F8.1) GOTO 55 100 WRITE(6,*)'STOPPING READING- ARRAYS FULL WITH 33000 SPOTS' 200 NSPOTS=II close(unit=2) WRITE(6,*)'NUMBER OF REFLECTIONS:',NSPOTS c WRITE (6,201)(DERIS(I),I=1,NDERI),(DERIS(I),I=1,NDERI) 201 FORMAT(' ',' H K L ',10A8) DO 210 I=1,nspots if ((fmean(i,1).eq.0).or.(fmean(i,2).eq.0)) goto 210 WRITE(3,211)H(I),K(I),L(I),FMEAN(I,1),sig(i,1)*fmean(i,1)/100. WRITE(4,211)H(I),K(I),L(I),FMEAN(I,2),sig(i,2)*fmean(i,2)/100. 210 continue 211 FORMAT(3I4, 2F8.2) close(unit=3) close(unit=4) 501 end