program cellcif character*80 s real u(3,3) call getarg(1,s) a=0. b=0. c=0. aa=0. bb=0. cc=0. open(9,file=s) 1 read(9,80,end=99,err=99)s 80 format(a80) if(s(1:14).eq.'_cell_length_a')read(s(25:39),*)a if(s(1:14).eq.'_cell_length_b')read(s(25:39),*)b if(s(1:14).eq.'_cell_length_c')read(s(25:39),*)c if(s(1:17).eq.'_cell_angle_alpha')read(s(25:38),*)aa if(s(1:17).eq.'_cell_angle_beta ')read(s(25:38),*)bb if(s(1:17).eq.'_cell_angle_gamma')read(s(25:38),*)cc goto 1 99 close(9) 98 write(6,600)a,b,c,aa,bb,cc 600 format( 1' a = ',f12.4,' b = ',f12.4,' c = ',f12.4,/, 2' alpha = ',f12.4,' beta = ',f12.4,' gamma = ',f12.4) if( a.eq.0..or. b.eq.0..or. c.eq.0..or. 1 aa.eq.0..or.bb.eq.0..or.cc.eq.0.)then write(6,601) 601 format(' Input a b c alpha beta gamma: ',$) read(5,*)a,b,c,aa,bb,cc goto 98 endif pi=4.*atan(1.) aa=aa*pi/180. bb=bb*pi/180. cc=cc*pi/180. u(1,1)=a u(1,2)=0. u(1,3)=0. u(2,1)=b*cos(cc) u(2,3)=b*(cos(aa)-cos(cc)*cos(bb))/sin(bb) u(2,2)=b*sqrt(sin(bb)**2-cos(aa)**2-cos(cc)**2- 12.*cos(aa)*cos(cc)*cos(bb))/sin(bb) u(3,1)=c*cos(bb) u(3,3)=c*sin(bb) u(3,2)=0.0 open(9,file='CELL.TXT') do 2 i=1,3 write(9,90)(u(i,j),j=1,3) 2 write(6,90)(u(i,j),j=1,3) 90 format(3f12.4) close(9) end