00 real*4 mat(100,3),slope(3),rint(3) character*32 line character*40 flname,outname,matfile,base,tail character*2 number,zero data zero/'00'/ real*4 oscstrt WRITE(6,*)'PROGRAM TO READ REFIX .MAT FILES' WRITE(6,*)' 920928' WRITE(6,*) write(6,*)' Enter basename of .MAT files (bcxx):' read(5,11) base write(6,*)' Enter tail of .MAT files (pf.mat):' read(5,11) tail c write(6,*)'base=',base write(6,*)' Enter numbers of first and last images in series:' read(5,*) n1,n2 11 format(a40) do 150 i=n1,n2 encode(2,81,number) i 81 format(i2) j=0 101 j=j+1 if(number(j:j).eq.' ') goto 101 number=zero(:j-1)//number(j:) j=index(base,' ')-1 matfile=base(:j)//number//tail C write(6,*)j,base(:j),number,matfile c write(6,*) matfile open(unit=2,file=matfile,status='old') do 50 j=1,7 50 read(2,11)line read(2,51)astar,bstar,cstar read(2,51)rotz,roty,rotx write(6,61) matfile,rotz,roty,rotx,astar,cstar k=1+i-n1 mat(k,1)=rotz mat(k,2)=roty mat(k,3)=rotx 51 format(6f12.4) 61 format(' ',a12,6f12.4) 150 close (unit=2) C calculate best fit values, slopes for angles: write(6,201) do 200 j=1,3 n=0 sumx=0 sumy=0 sumxx=0 sumxy=0 do 190 k=1,1+n2-n1 x=k-1 y=mat(k,j) n=n+1 sumx=sumx+x sumy=sumy+y sumxx=sumxx+x*x 190 sumxy=sumxy+x*y denom=n*sumxx-sumx*sumx slope(j)=(n*sumxy-sumx*sumy)/denom rint(j)=(sumy*sumxx-sumx*sumxy)/denom serr=0 do 195 k=1,1+n2-n1 err=mat(k,j)-(rint(j)+(k-1)*slope(j)) c write(6,*)k-1,mat(k,j),rint(j)+(k-1)*slope(j),err 195 serr=serr+err*err serr=sqrt(serr/n) 200 write(6,*)rint(j),slope(j),serr 201 format(' intercept slope rms err') 211 format(f12.4,f8.5,f8.5) open (unit=3,file='rdmat.mat',status='new') write(3,*) 2 write(3,*) 1+n2-n1 write(3,*) 6 do 300 i=n1,n2 write(3,*) i do 300 k=1,5 300 write(3,*) mat(1+i-n1,k) close (unit=3) stop end