C C C MARXER.FOR C* ********************************************** C CHARACTER*80 TITLE CHARACTER*50 INFILE,OUTFILE,FILENAME CHARACTER*40 FNAME,ASTRING real sigcut integer*2 h,k,l LOGICAL EFLG write(6,*) 'convert lcfdump or mtzdump to xtlview .fin (name temp.fin)' write(6,*) 'is this (1)mtzdump (hkl f sigf) or (2)lcfdump', . ' (hkl s f sigf)?' read(5,*) flag WRITE(6,1000) 1000 FORMAT(//' Enter name of file to format for .fin:') 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') WRITE (6,1500) 1500 format ('$ Enter the Sigma cutoff for output .fin:') READ (5,*) Sigcut WRITE(6,1600) 1600 FORMAT('$Output filename: ') READ(5,1200) OUTFILE OPEN(UNIT=3,FILE=OUTFILE,STATUS='unknown') c OPEN (UNIT=3,FILE='temp.fin',STATUS='NEW') if (flag.gt.1) goto 400 200 read(2,220,end=990)h,k,l,fp1,sigfp1, fp2, sigfp2 220 format (3I4, 4f10.2) IF (fp1.le.0.0) then fp1=0.0 sigfp1=9999.0 end if IF (fp2.le.0.0) then fp2=0.0 sigfp2=9999.0 end if goto 250 a1=fp1/sigfp1 a2=fp2/sigfp2 aa=max(a1, a2) IF (a.lt.sigcut) goto 200 250 write(3,300)h,k,l,fp1,sigfp1,fp2,sigfp2 300 FORMAT (3I4,4F10.2) goto 200 400 read(2,*,end=990)h,k,l,x,fp,sigfp a=fp/sigfp If (a.lt.sigcut) goto 400 write(3,300)h,k,l,fp,sigfp,fp,sigfp goto 400 990 CLOSE(UNIT=2) CLOSE (UNIT=3) END