C********************************************************************** C PROGRAM TO CONVERT FOFC TABLES TO THREE REFLNS PER LINE C********************************************************************** INTEGER H(4),K(4),L(4),NO(4),NC(4),MAX,HH(4),KK(4),LL(4) REAL FO(4),FC(4),S(4) CHARACTER FILE1*12,FILE2*12,COMP*46 N=3 NLIN=4 NP=1 1 WRITE(*,*)' PLEASE TYPE THE INPUT FILE NAME:' READ(*,'(A12)')FILE1 OPEN(UNIT=1,FILE=FILE1,STATUS='OLD',ERR=10) GOTO 11 10 WRITE(*,*)' FILE NOT FOUND???' GOTO 1 11 CONTINUE 2 WRITE(*,*)' PLEASE TYPE OUTPUT FILE NAME:' READ(*,'(A12)')FILE2 OPEN(UNIT=2,FILE=FILE2,STATUS='NEW',ERR=12) GOTO 13 12 WRITE(*,*)' FILE ALREADY EXISTS???' GOTO 2 13 CONTINUE WRITE(*,*)' PLEASE TYPE NAME/FORMULA OF THE COMPOUND:' READ(*,'(A46)')COMP WRITE(*,*)' ' WRITE(*,*)' EDIT THE OUTPUT FILE USING MICROSOFT WINWORD' WRITE(*,*)' AND FOLLOW THE INSTRUCTIONS GIVEN THERE' WRITE(*,*)' ' WRITE(2,*)' USING MICROSOFT WINWORD, BLOCK THE FULL FILE AND' WRITE(2,*)' CHANGE FONT: COURIER NEW; SIZE: 7 & BOLD.' WRITE(2,*)' Replace $$$ by TOTAL NUMBER OF PAGES' WRITE(2,*)' DELETE THE FIRST FOUR LINES!!!!!' CALL HEAD(COMP,NP) 50 READ(1,60,END=100,ERR=50)(H(I),K(I),L(I),FC(I),FO(I),S(I), 1 I=1,N) 60 FORMAT(3I4,2F12.2,F10.2) DO 70 I=1,N NREF=NREF+1 FC(I)=10.0*FC(I) FO(I)=10.0*FO(I) NC(I)=NINT(FC(I)) NO(I)=NINT(FO(I)) HH(I)=H(I) KK(I)=K(I) LL(I)=L(I) 70 CONTINUE WRITE(2,80)(H(I),K(I),L(I),NO(I),NC(I),I=1,N) 80 FORMAT(3I4,2I9,2(5X,3I4,2I9)) NLIN=NLIN+1 IF(NLIN.EQ.81) THEN NP=NP+1 NLIN=4 CALL HEAD(COMP,NP) ELSE ENDIF GOTO 50 100 CONTINUE DO 110 I=1,N IF((H(I).EQ.0.0.AND.K(I).EQ.0.0.AND.L(I).EQ.0.0).OR. 1 (H(I).EQ.HH(I).AND.K(I).EQ.KK(I).AND.L(I).EQ.LL(I))) THEN MAX=I-1 NO(I)=NINT(FO(I)) NC(I)=NINT(FC(I)) GOTO 120 ELSE NREF=NREF+1 ENDIF 110 CONTINUE 120 CONTINUE WRITE(2,80)(H(I),K(I),L(I),NO(I),NC(I),I=1,MAX) WRITE(*,*)' TOTAL REFLECTIONS =',NREF WRITE(*,*)' TOTAL PAGES =',NP WRITE(2,'(1X,104A1)')('-',I=1,104) STOP ' DONE' END C********************************************************************** SUBROUTINE HEAD(COMP,NP) CHARACTER ACS1*29,ACS2*6,COMP*60 N=3 WRITE(2,14)COMP,NP 14 FORMAT(2X,'Observed and Calculated Structure Factors for ', 1 A42,' PAGE ',I2,'/$$$') WRITE(2,'(1X,104A1)')('-',I=1,104) ACS1=' H K L 10Fo^2 10Fc^2' ACS2=' ' WRITE(2,20)ACS1,(ACS2,ACS1,I=1,N-1) 20 FORMAT(1X,A29,2(A6,A29)) WRITE(2,'(1X,104A1)')('-',I=1,104) RETURN END C**********************************************************************