C* RAXIS2MRC.FOR C* DERIVED FROM LABEL.FOR********************************************** C C COMMON //NX,NY,NZ,IXMIN,IYMIN,IZMIN,IXMAX,IYMAX,IZMAX DIMENSION ALINE(9998),TITLE(20),NXYZ(3),MXYZ(3),NXYZST(3) DIMENSION IXYZMIN(3),IXYZMAX(3),OUT(9998) DIMENSION LABELS(20,10),CELL(6) COMPLEX CLINE(4999),COUT(4999) CHARACTER*50 INFILE,OUTFILE REAL*8 DOUBLMEAN CHARACTER*1 BLINE(4096),BLINE2(2400) INTEGER*2 ILINE(2048),ILINE2(1200) EQUIVALENCE (BLINE,ILINE),(BLINE2,ILINE2) EQUIVALENCE (NX,NXYZ), (ALINE,CLINE), (OUT,COUT), (BLINE,ILINE) EQUIVALENCE (IXYZMIN, IXMIN), (IXYZMAX, IXMAX) CHARACTER*20 DEVNAMVERS EQUIVALENCE (DEVNAMVERS,BLINE(1)) CHARACTER*32 CRYSTAL EQUIVALENCE (CRYSTAL,BLINE(21)) REAL*4 CELLPAR(6) EQUIVALENCE (CELLPAR,BLINE(53)) CHARACTER*12 SPACEGROUP EQUIVALENCE (SPACEGROUP,BLINE(77)) REAL*4 MOSAICITY EQUIVALENCE (MOSAICITY,BLINE(89)) CHARACTER*80 MEMO EQUIVALENCE (MEMO,BLINE(93)) CHARACTER*36 DATOPERTARG EQUIVALENCE (DATOPERTARG,BLINE(257)) REAL*4 WAVELENGTH EQUIVALENCE (WAVELENGTH,BLINE(293)) CHARACTER*20 MONOCHROM EQUIVALENCE (MONOCHROM,BLINE(297)) REAL*4 TWOTHETA EQUIVALENCE (TWOTHETA,BLINE(317)) CHARACTER*24 COLLFILT EQUIVALENCE (COLLFILT,BLINE(321)) REAL*4 CAMLENGTH EQUIVALENCE (CAMLENGTH,BLINE(345)) REAL*4 XRAYPRM(2) EQUIVALENCE (XRAYPRM,BLINE(349)) CHARACTER*8 AXES EQUIVALENCE (AXES,BLINE(513)) REAL*4 PHI(3) EQUIVALENCE (PHI,BLINE(521)) INTEGER*4 NOSCIL EQUIVALENCE (NOSCIL,BLINE(533)) REAL*4 EXPOSURE EQUIVALENCE (EXPOSURE,BLINE(537)) REAL*4 BEAMCENTER(2) EQUIVALENCE (BEAMCENTER,BLINE(541)) INTEGER*4 NXY(2) EQUIVALENCE (NXY,BLINE(769)) I64K=256*256 I32K=I64K/2 DATA NXYZST/3*0/, CNV/57.29578/ C 40 WRITE(6,1000) 1000 FORMAT(//' R-AXIS HEADER DUMP PROGRAM', . ' V 940105'/) 50 WRITE(6,1100) 1100 FORMAT('$Input filename (CR to quit): ') READ(5,1200) INFILE 1200 FORMAT(A) IF (INFILE(:5).EQ.' ') STOP write (6,*)INFILE OPEN (UNIT=1,FILE=INFILE,readonly,STATUS='OLD',access='direct', . recl=1024) C read HEADER into bline, encode into titles: c READ(1) (BLINE(II),II=1,780) READ(1) BLINE 155 FORMAT (4096A1) write(6,*)'nx,ny=',(nxy(i),i=1,2) c WRITE(6,'(20I4)')(BLINE(I),I=513,1024) if (nxy(1).ne.1900) then type *,'Swapping Bytes!' do 160 i=1,6 160 call byteswap(cellpar(i)) do 161 i=1,2 161 call byteswap(beamcenter(i)) do 162 i=1,3 162 call byteswap(phi(i)) call byteswap(wavelength) call byteswap(camlength) call byteswap(exposure) end if TYPE *,'DEVNAM: ',DEVNAMVERS TYPE *,'CRYSTAL: ',CRYSTAL TYPE *,'CELLPAR: ',CELLPAR TYPE *,'SPACE GROUP: ',SPACEGROUP TYPE *,'COMMENT: ',MEMO(:70) TYPE *,'DATE,OPERATOR, TARGET: ',DATOPERTARG TYPE *,'WAVELENGTH: ',WAVELENGTH TYPE *,'MONOCHROM: ',MONOCHROM TYPE *,'COLLIMATOR, FILTER: ',COLLFILT TYPE *,'CAMERA LENGTH: ',CAMLENGTH TYPE *,'MOUNT, BEAM AXES: ',AXES TYPE *,'BEAMCENTER: ',(BEAMCENTER(I),I=1,2) TYPE *,'EXPOSURE, PHI(1-3):',EXPOSURE, (PHI(I),I=1,3) CLOSE (UNIT=1) GOTO 50 END subroutine byteswap(value) real*4 value,exch1,exch2 character*1 exbyt1(4),exbyt2(4) equivalence (exch1,exbyt1(1)) equivalence (exch2,exbyt2(1)) exch1=value exbyt2(1)=exbyt1(2) exbyt2(2)=exbyt1(1) exbyt2(3)=exbyt1(4) exbyt2(4)=exbyt1(3) c value= 4.0*exch2 !if run on vms-type machine (but file access needs fixing) value= exch2/4.0 !if run on unix machine return end