C C C TEYSEC.FOR C* ********************************************** C COMMON //NX,NY,NZ,IXMIN,IYMIN,IZMIN,IXMAX,IYMAX,IZMAX DIMENSION NXYZ(3),MXYZ(3),NXYZST(3) c CHARACTER*80 TITLE DIMENSION IXYZMIN(3),IXYZMAX(3) CHARACTER*50 INFILE,OUTFILE,FILENAME CHARACTER*40 FNAME,ASTRING CHARACTER*1 OUTSTRING(1200),HSTRING(16),BOXFLAG LOGICAL EFLG character LABEL*80,title*80,junk*2 C character*1 aline(28),bline(131072),CLINE(131072) integer*2 inta(14),xcoor,ycoor,zcoor,X2,Z2 integer*4 linta(7),n,ii,ylayer REAL*4 REALB(65536),D(11,11,3) C D(11,11,3) IS FOR HOLDING 3 SECTIONS ABOUT POINT. C ,1 IS X,Y PLANE, ,2 IS XZ PLANE, ,3 IS YZ PLANE. C IN EACH, (6,6,K) IS THE POINT REQUESTED. C SO: D(X,Y,1), D(X,Z,2), D(Y,Z,3) pi=4*ATAN(1.) R64K=256*256 R32K=128*256 WRITE(6,1000) 1000 FORMAT(//' PLOT X,Y X,Z AND Y,Z PLANES CENTERED ABOUT A '// . ' SPECIFIED POINT IN A .TEY MAP.'// . 'This assumes the TEY map has Y sections, with X fast.'// . ' If Z sections with X fast, reverse y and z on labels.') 5 WRITE(6,1100) 1100 FORMAT(/'$Input filename (CR to quit): ') READ(5,1200) INFILE 1200 FORMAT(A) IF (INFILE(:5).EQ.' ') STOP INQUIRE(FILE=INFILE, NAME=FILENAME,EXIST=EFLG) WRITE(6,*)'INFILE=',INFILE,'EFLG=',EFLG,' FILENAME=',FILENAME IF (.NOT.EFLG) GOTO 5 8 write(6,*)' Enter X, Y, AND Z COORDINATES OF THE POINT TO DISPLAY:' WRITE(6,*) '(-1,1,1 TO QUIT)' read(5,*) XCOOR, YCOOR, ZCOOR IF (XCOOR.LT.0) STOP OPEN (UNIT=2,FILE=INFILE,STATUS='OLD',form='unformatted') read(2) title 11 format (A2,a80) write(6,*)title c TYPE *,'READING IMAGE.' c DMEAN=0 c DMAX=-1E32 c DMIN=1E32 NY=0 IYMIN=10000 IYMAX=-10000 do 19 i=1,11 do 19 j=1,11 do 19 k=1,3 19 d(i,j,k)=0 20 read(2) (linta(i),i=2,6) 21 format(A2,24a1) c write(6,31) (inta(i),i=1,12) 31 format(' ',14i6) ylayer=linta(2) if(ylayer.LT.0) goto 985 IF (ylayer.lt.iymin)iymin=ylayer IF (ylayer.gt.iymax)iymax=ylayer IXMIN=linta(3) IXMAX=linta(4) IZMIN=linta(5) IZMAX=linta(6) C write(6,33) ylayer,IXMIN,IXMAX,IZMIN,IZMAX 33 FORMAT(' ylayer:',I5,' IXMIN:',I5,' IXMAX:',I5,' IZMIN:',I5, . ' IZMAX',I5) nx=(1+IXMAX-IXMIN) nz=(1+IZMAX-IZMIN) ny=NY+1 n=nx*nz read(2) (realb(ii),ii=1,n) IF ((YLAYER-YCOOR).GT.5) GOTO 985 IF (IABS(YLAYER-YCOOR).LE.5) THEN Y=6+YLAYER-YCOOR DO 113 X=1,11 X2=XCOOR+X-6 C WRITE(6,*)' X2,IXMIN,ZCOOR,IZMIN,INDEX:', C . X2,IXMIN,ZCOOR,IZMIN,1+(X2-IXMIN)+(ZCOOR-IZMIN)*NX C NOTE X2 AND Z2 CAN BE ZERO, 0,0 POINT IS INDEX 1. 113 if (x2.ge.0) D(X,Y,1)=REALB(1+(X2-IXMIN)+(ZCOOR-IZMIN)*NX) DO 114 Z=1,11 Z2=ZCOOR+Z-6 C WRITE(6,*)' XCOOR,IXMIN,Z2,IZMIN,INDEX:', C . XCOOR,IXMIN,Z2,IZMIN,1+(XCOOR-IXMIN)+(Z2-IZMIN)*NX 114 if (z2.ge.0) D(Y,Z,3)=REALB(1+(XCOOR-IXMIN)+(Z2-IZMIN)*NX) IF (YLAYER.EQ.YCOOR) THEN DO 115 X=1,11 X2=XCOOR+X-6 DO 115 Z=1,11 Z2=ZCOOR+Z-6 115 if ((x2.ge.0).and.(z2.ge.0)) D(X,Z,2)= . REALB(1+(X2-IXMIN)+(Z2-IZMIN)*NX) ENDIF ENDIF 120 goto 20 985 continue 130 CLOSE (UNIT=2) c rem out next 3 lines for autoscale: write(6,*)'Scale factor to divide density by?' read(5,*)dmax goto 215 200 dmax=0. do 210 k=1,3 do 210 j=1,11 do 210 i=1,11 210 if (d(i,j,k).gt.dmax) dmax = d(i,j,k) write(6,*)' dmax=',dmax C write(6,*)'x-y plane:' 215 write(6,*)'y x-------> ' do 220 j=1,11 220 write(6,221)(int(99*d(i,j,1)/dmax),i=1,11) 221 format(' |',11i3,t40,'|',11i3) write(6,*)'V' c write(6,*)'x-z plane: y-z plane:' write(6,*)'z x-------> z y------->' do 230 j=1,11 230 write(6,221)(int(99*d(i,j,2)/dmax),i=1,11), . (int(99*d(i,j,3)/dmax),i=1,11) write(6,*)'V V' c write(6,*)'y-z plane:' c do 240 j=1,11 c240 write(6,221)(int(99*d(i,j,3)/dmax),i=1,11) goto 8 END