program raxer4 structure /header/ union map byte bline(4096) end map map INTEGER*2 iline(2048) end map map character*10 device character*10 version character*20 crystal character*12 cry_sys real*4 cell(6) character*12 space real*4 mosaic character*80 memo integer*4 res1(21) character*12 date character*20 operator character*4 target real*4 wave character*20 monochro !mon name real*4 mono_2 !monoch 2theta dgr character*20 collimator character*4 filter real*4 camera_len !mm real*4 kvma(2) !X-ray power integer*4 res2(39) character*4 axis(2) real*4 phi0 !phi0 real*4 phist !phistart real*4 phiend !phiend integer*4 osc real*4 ex_time real*4 xray(2) !x,z - xray beam pos. num of pixels real*4 circle(3) !omega, chi 2theta dgr integer*4 res3(52) integer*4 pix_num(2) !x z number of pixels real*4 pix_size(2) !x z pix size (mm) integer*4 record(2) !rec length and number integer*4 read_start integer*4 ip_num real*4 ratio !hi/lo ratio real*4 fading(2) integer*4 res4(53) end map end union union map byte bline2(4096) end map map INTEGER*2 iline2(2048) end map end union end structure record /header/ header CHARACTER DAT*12,TIM*12,filedate*23 CHARACTER*80 TITLE CHARACTER*50 INFILE,OUTFILE CHARACTER*50 FILENAME CHARACTER*40 FNAME,ASTRING,outfilmx CHARACTER*1 OUTSTRING(3800),HSTRING(16),BOXFLAG LOGICAL EFLG integer*2 h,k,l DATA HSTRING/'0','1','2','3','4','5','6','7','8','9','A','B','C', - 'D','E','F'/ R64K=256*256 R32K=128*256 WRITE(6,1000) 1000 FORMAT(//' RAXIS-2 image averager.) 5001 WRITE(6,1100) 1100 FORMAT(/'$Input 1'st filename (CR to quit): ') READ(5,1200) INFILE 1200 FORMAT(A) IF (INFILE(:5).EQ.' ') STOP INQUIRE(FILE=INFILE, NAME=FILENAME,EXIST=EFLG) IF (EFLG) GOTO 5 write(6,11001) goto 5001 11001 format(/' FILE DOES NOT EXIST ') 5 OPEN (UNIT=1,FILE=INFILE,STATUS='OLD',readonly, . access='direct',recl=1024) c--- 5002 WRITE(6,1102) 1102 FORMAT(/'$Input 1'st filename (CR to quit): ') READ(5,1200) INFILE IF (INFILE(:5).EQ.' ') STOP INQUIRE(FILE=INFILE, NAME=FILENAME,EXIST=EFLG) IF (EFLG) GOTO 6 write(6,11001) stop '2nd input file does not exist' c goto 5002 6 OPEN (UNIT=2,FILE=INFILE,STATUS='OLD',readonly, . access='direct',recl=1024) c--- WRITE(6,1103) 1103 FORMAT(/'$Enter output filename (CR to quit): ') READ(5,1200) OUTFILE OPEN (UNIT=3,FILE=OUTFILE,STATUS='unknown', . access='direct',recl=1024) c CALL DATE(DAT) c CALL TIME(TIM) c write(3,'(A)') '50 772 moveto'// c & ' (Image File: '//FILENAME//' Printed:'//DAT//TIM//') show' C read HEADER into bline, encode into titles: c READ(2) header.BLINE 155 FORMAT (4096A1) PIX=HEADER.PIX_size(1) 72 FORMAT(' ',A80) READ(1) header.BLINE READ(2) header.BLINE2 c--------marave below here write(3) header.BLINE DO 200 I=1,1900 READ(1,end=860) HEADER.BLINE READ(2,end=860) HEADER.BLINE2 DO 190 J=1,1200 IX=ILINE(J) IF (IX.LT.0.) IX=IX+I64K IY=ILINE2(J) IF (IY.LT.0.) IY=IY+I64K IX=(IX+IY)/2 IF (IX.GE.I32K) IX=IX-I64K 190 ILINE2(J)=IX 200 write(3) BLINE2 CLOSE(UNIT=2) CLOSE(UNIT=3) WRITE(6,*)'DELETE ',FILENAME,' (Y/N)' READ(5,1200),ANSWER IF (ANSWER(:1).NE.'Y') GOTO 5 C IF (ANSWER(:1).NE.'Y').AND.(ANSWER(:1).NE.'y') GOTO 5 write(6,*)'DELETING ',FILENAME J=LIB$SPAWN('DEL '//FILENAME) C FILENAME RETURNED BY INQUIRE, HAS VERSION #. GOTO 5 END