C calculate vectors to all lattice points up to a certain order C (in real space for now) and compare with spacings of alternative C cells to get relation. C 40 REAL A(3),GAM(3),B(3,3) INTEGER M(3) character*11 cstring C. ybc 010115 prim cell: c data A /252.93, 209.08, 253.59/ c data GAM /90.00, 103.49, 90.00/ C. rbc 0905-c4: c DATA A /195.438,195.438,73.998/ c DATA GAM /90.0,90.0,90.0/ C. rbc-31: c DATA A /275.444, 275.444, 147.504/ c DATA GAM /90.00,90.0,90.000/ C DATA A /141.,141.,142./ C DATA GAM /90.,90.,90./ C bfr primitive- DATA A /123.0, 123.3, 123.3/ DATA GAM /109.1, 109.9, 109.2/ WRITE(6,"(6F10.4)") (A(I),I=1,3),(GAM(I),I=1,3) 60 PI=4*ATAN(1.0) WRITE(6,*) "pi=",PI DO 70 I=1,3 70 GAM(I)=GAM(I)*PI/180 WRITE(6,"(6F10.4)") (A(I),I=1,3),(GAM(I),I=1,3) 82 WRITE(6,*) "what spacing are you looking for?" READ(5,*)TARG 110 B(1,1)=A(1) 120 B(1,2)=0. 130 B(1,3)=0. 140 B(2,1)=A(2)*COS(GAM(3)) 150 B(2,2)=A(2)*SIN(GAM(3)) 160 B(2,3)=0. 170 B(3,1)=A(3)*COS(GAM(2)) 180 B(3,2)=A(3)*(COS(GAM(1))-COS(GAM(2))*COS(GAM(3)))/SIN(GAM(3)) 190 B(3,3)=SQRT (A(3)**2-(B(3,1)**2+B(3,2)**2)) 200 WRITE (6,*) DO 205 I=1,3 205 WRITE(6,"(3F12.4)")(B(I,J),J=1,3) C300 CONTINUE occ=1.0 bfact=20.0 310 DO 430 I=1,7 M(1)=I-4 320 do 430 J=1,7 M(2)=J-4 330 do 430 K=1, 7 M(3)=K-4 C C do 400 II=1,3 A(II)=0 370 DO 400 JJ=1,3 400 A(II)=A(II)+M(JJ)*B(JJ,II) D=0 do 405 II=1,3 405 D=D+A(II)**2 D=SQRT(D) 406 IF (ABS(D-TARG).gt.5) GOTO 410 write(6,409)(M(II),II=1,3),(A(II),II=1,3),D 409 FORMAT (3I4,4F10.1) 410 ires=100*I+10*J+K c write(6,*)i,j,k,ires 430 continue c write (6,431) "ATOM ",ires," CA ALA A", ires,(A(ii),ii=1,3),occ,bfact c . 431 format (A6,I5,A11,i4,' ',3f8.3,2f6.2) cATOM 3103 O1D HEM A 2 15.332 -8.749 60.863 1.00 20.00360 DO 400 II=1,3 500 END