C According to Z.O., should use F=sqr(I) if I > sigma(I) C else use F=SQR(sigma(I)). p. 167 HKL manual C C MARXER.FOR C* ********************************************** C CHARACTER*80 TITLE CHARACTER*50 INFILE,OUTFILE,FILENAME CHARACTER*40 FNAME,ASTRING real*4 INT integer*4 nneg integer*2 h,k,l LOGICAL EFLG nneg=0 WRITE(6,1000) 1000 FORMAT(//' Enter name of file w h,k,l,I,sigma to convert:') 5 write(6,1100) 1100 FORMAT(/'$Input filename (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,readonly,STATUS='OLD') c [skip over first 3 lines) do 140 i=1,3 140 read(2,'(A)')astring WRITE(6,1600) 1600 FORMAT('$Output filename: ') READ(5,1200) OUTFILE OPEN(UNIT=3,FILE=OUTFILE,STATUS='unknown') c OPEN (UNIT=3,FILE='temp.rfl',STATUS='NEW') 200 read(2,*,end=990)h,k,l,int,sigmaI if (int.le.0.) then nneg=nneg+1 fobs=0. sigmaF=1. else fobs=sqrt(int) sigmaF=sigmaI/(2*fobs) end if write(3,300)h,k,l,fobs,sigmaF 300 FORMAT (3I4,F10.2,4F8.2) goto 200 990 CLOSE(UNIT=2) CLOSE (UNIT=3) write(6,*)nneg,' negative reflections set to zero!' END