C- READ 1024 BYTES AT A TIME. C- READ INTO ARRAY COMMON WITH 256 REAL*4, 256 INT*4, 1 BYTE STRINGS C- PICK OUT THE VALUES FOR A CCP4 DENSITY MAP, BE THEY CHARACTER, INTEGER, C- OR REAL (DENSITIES ARE REAL). CHARACTER*1 BLINE(1024) CHARACTER*36 RECLINE(30) EQUIVALENCE (RECLINE(1),BLINE(1)) real*4 rline(256),TCELL(6),CELL(6) EQUIVALENCE (RLINE(1),BLINE(1)),(TCELL(1),RLINE(11)) INTEGER*4 LINT(256) EQUIVALENCE (LINT(1),BLINE(1)) CHARACTER*80 TTITLE,TITLE,TSYMTRY,SYMTRY EQUIVALENCE (TTITLE,RLINE(57)) EQUIVALENCE (TSYMTRY,RLINE(1)) CHARACTER*50 INFILE,OUTFILE,FILENAME DIMENSION RMAP(400,400) WRITE(6,1000) 1000 FORMAT(//' PROGRAM T READ CCP4 MAP FILES') 5 WRITE(6,1100) 1100 FORMAT(/'$Input filename (CR to quit): ') READ(5,1200) INFILE 1200 FORMAT(A) C IF (INFILE(:5).EQ.' ') STOP C INQUIRE(FILE=INFILE, NAME=FILENAME,EXIST=EFLG) C IF (.NOT.EFLG) GOTO 5 OPEN (UNIT=2,FILE=INFILE,STATUS='OLD',FORM='UNFORMATTED') OPEN (UNIT=3,FILE='ENVEL.MAP',STATUS='NEW',FORM='UNFORMATTED', & RECL=256, RECORDTYPE='FIXED', CARRIAGECONTROL='NONE') READ(2)(RLINE(I),I=1,256) WRITE(3)(RLINE(I),I=1,256) NFAST=LINT(1) NMED=LINT(2) NSLOW=LINT(3) C (NORIEN IS A GUESS) NORIEN=LINT(4) DO 290 I=1,6 290 CELL(I)=TCELL(I) NX=LINT(8) NY=LINT(9) NZ=LINT(10) RMYST=RLINE(55) TITLE=TTITLE WRITE(6,*)'NFAST, MEDIUM, SLOW=',NFAST,NMED,NSLOW WRITE(6,*)'MAPTYPE=',NORIEN WRITE(6,*)'CELL: ',(CELL(I),I=1,6) WRITE(6,*)'NX, NY, NZ=',NX, NY, NZ WRITE(6,*)'DENSITY STDDEV=',RMYST WRITE(6,*) TITLE READ(2)(RLINE(I),I=1,256) SYMTRY=TSYMTRY WRITE(6,*)SYMTRY WRITE(6,*)'Enter THRESHOLD density for envelope:' read(5,*) THRESH C WRITE(6,*)'ENTER 1 FOR DELAY BETWEEN SECTIONS, 0 FOR NO DELAY' C READ(5,*)IDELAY DO 296 IJ=21,256 IF (RLINE(IJ).GT.THRESH) THEN RLINE(IJ)=1 ELSE RLINE(IJ)=0 ENDIF 296 CONTINUE WRITE(3)(RLINE(I),I=1,256) II=21 DO 325 I=1,NSLOW C WRITE(6,*) WRITE(6,*)'SECTION ',I DO 300 J=1,NMED DO 300 K=1,NFAST IF (II.GT.256) THEN READ(2,END=900)(RLINE(IJ),IJ=1,256) DO 298 IJ=1,256 IF (RLINE(IJ).GT.THRESH) THEN RLINE(IJ)=1 ELSE RLINE(IJ)=0 ENDIF 298 CONTINUE WRITE(3)(RLINE(IJ),IJ=1,256) II=1 ENDIF RMAP(J,K)=RLINE(II) 300 II=II+1 325 CONTINUE 380 CLOSE(UNIT=2) CLOSE(UNIT=3) STOP 'NORMAL END' 900 STOP 'END OF FILE BEFORE END OF MAP' END