INTEGER*2 H(70000),K(70000),L(70000),ord(70000),DERI,NDERI integer*4 N,I,ii,nspots REAL*4 FMEAN(70000,3),SIG(70000,3),ratio(70000) REAL*4 FOM(70000),PHASE(70000) CHARACTER FNAME*40,ASTRING*95 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 *,'***<<<>>>****' type *,'NAT AND 1ST DERI AND PHASES WILL BE WRITTEN TO DAT.RFL' 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='Dat.rfl',STATUS='NEW') C 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 (A95) IF (ASTRING(26:29).NE.'DERI') GOTO 45 55 READ (2,50,END=200)ASTRING IF (ASTRING(26:29).EQ.'DERI') GOTO 55 IF (ASTRING(26:29).EQ.' R O') GOTO 55 IF (ASTRING(26:29).EQ.' ') GOTO 55 IF (ASTRING(7:19).EQ.' reflections ') goto 200 C14000 reflections in above list ;STRING AT END OF LIST C1234567890123456789 DSTRING=ASTRING(26:29) DERI=0 DO 60 I=1,NDERI 60 IF (DSTRING.EQ.DERIS(I)) DERI=I IF (DERI.EQ.0) THEN IF (NDERI.EQ.0) THEN IF (DSTRING.NE.'NATI') GOTO 55 !ENSURE 'NATI' IS DERI 1 ENDIF NDERI=NDERI+1 DERI=NDERI DERIS(DERI)=DSTRING WRITE(6,*)DSTRING,DERI ENDIF IF (ASTRING(:12).EQ.' ') GOTO 70 IF (II.EQ.70000)GOTO 100 II=II+1 decode(95,63,ASTRING) H(II),K(II),L(II) 63 format(3I4) 70 IF (ASTRING(38:39).EQ.'*R') THEN C (THAT SPOT REJECTED, SKIP IT) II=II-1 GOTO 55 ENDIF if (deri.eq.1) then DECODE(95,71,ASTRING)FMEAN(II,DERI),SIG(II,DERI), 6 FOM(II), PHASE(II) else DECODE(95,71,ASTRING)FMEAN(II,DERI),SIG(II,DERI) endif C (NOTE SIG HERE IS SIGF/F) 71 FORMAT(29X,2F8.1,41X,F4.2,F4.0) c WRITE(6,*) H(II),K(II),L(II),FMEAN(II,DERI),SIG(II,DERI), c 6 PHASE(II),FOM(II) GOTO 55 100 WRITE(6,*)'STOPPING READING- ARRAYS FULL WITH 70000 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) goto 210 !'ONLY USE IF FP AND FH AVAILABLE if (fmean(i,2).eq.0) goto 210 if (fmean(i,3).eq.0) goto 210 WRITE(3,211)H(I),K(I),L(I),FMEAN(I,1),sig(i,1)*fmean(i,1)/100., 6 FMEAN(I,2),sig(i,2)*fmean(i,2)/100., 6 FMEAN(I,3),sig(i,3)*fmean(i,3)/100.,FOM(I),PHASE(I) 210 continue 211 FORMAT(3I4, 10F8.2) close(unit=3) close(unit=4) 501 end