SUBROUTINE IEXPDR(SD,INDEX,NXIND,NXKAB,NZX,NZY,FREQ,XP,YP,ZP) PARAMETER (NLEV1=51) CHARACTER*3 XBTYPE, YBTYPE, SDPLOT, RDPLOT CHARACTER*80 TITLE,TITLEX,TITLEY CHARACTER*28 SDUNIT CHARACTER*80 FILENM CHARACTER*40 WORD COMMON /XAX/X1,XL,XLEFT,XRIGHT,XSCALE,XINC,DX, % X1PL,XLPL,NX,X1GRID,XLGRID,DIVX,XVAL(100),NXVAL COMMON /YAX/Y1,YL,YUP,YDOWN,YSCALE,YINC,DY, % Y1PL,YLPL,NY,Y1GRID,YLGRID,DIVY,YVAL(100),NYVAL COMMON /XAXC/TITLEX, XBTYPE COMMON /YAXC/TITLEY, YBTYPE COMMON /ZAX/ZMIN,ZMAX,ZINC,NLEV,ZLEV(NLEV1) COMMON /PARA/LABPT,NSM,NDIV,CAY,NARC,NRNG,HGTPT,HGT, $LABC(51),LWGT(51) COMMON /PARAC/TITLE, SDPLOT, RDPLOT DIMENSION XP(1),YP(1),ZP(1) C 200 FORMAT(A80) 360 FORMAT(A40) 400 FORMAT(F15.4) 420 FORMAT(F15.4,3X,A28) 500 FORMAT(1X,' WARNING : ACCEPTABLE VALUES FOR NDIV ARE 1,2 AND 4 ',/, & ' ACTUAL VALUE IS ',I3,'. PLOTTING IS DONE WITH NDIV = 1 ') 600 FORMAT(1X,'NLEV = ',' THIS PROGRAM ALLOWS ONLY 51 LEVELS FOR', % ' CONTOURING',/,'EXECUTION TERMINATED') 700 FORMAT(1X,'NX,NY TOO LARGE',/,1X,'EXECUTION', % 1X,'TERMINATED BECAUSE ARRAY SIZE LIMITATIONS',/) 810 FORMAT(3F10.3) C READ(55,200)TITLE READ(55,200)FILENM CALL FILETYPE(' ',FILENM,55,17) XBTYPE='LIN' READ(55,200)TITLEX READ(55,400)X1 READ(55,400)XL READ(55,400)XLEFT READ(55,400)XRIGHT READ(55,360) WORD CALL AXLEN(XBTYPE,XLEFT,XRIGHT,WORD,XSCALE,XLEN,55) C READ(55,400)XSCALE READ(55,400)XINC X1GRID=AMAX1(X1,XLEFT) XLGRID=AMIN1(XL,XRIGHT) YBTYPE='LIN' READ(55,200)TITLEY READ(55,400)YUP READ(55,400)YDOWN READ(55,360) WORD CALL AXLEN(YBTYPE,YUP,YDOWN,WORD,YSCALE,YLEN,55) C READ(55,400)YSCALE READ(55,400)YINC READ(55,400)DUMMY NPX=IFIX(DUMMY) READ(55,400)DUMMY NPY=IFIX(DUMMY) READ(55,400)DIVX IF(DIVX.EQ.0.0)DIVX=1.0E-3 READ(55,400)DIVY IF(DIVY.EQ.0.0)DIVY=1.0 READ(55,400)FLAGRC READ(55,400)YL READ(55,400)Y1 Y1GRID=AMIN1(Y1,YDOWN) YLGRID=AMAX1(YL,YUP) READ(55,420) SD, SDUNIT SDPLOT='m ' CALL UNIT(SDUNIT,SDPLOT) READ(55,400)DUMMY NX=IFIX(DUMMY) READ(55,400)DUMMY NY=IFIX(DUMMY) IF(NX*NY.LE.NZX*NZY)GOTO 1000 WRITE(6,700) STOP 1000 CONTINUE READ(55,400)FREQ DX=(XLGRID-X1GRID)/(NX-1) DY=(YLGRID-Y1GRID)/(NY-1) I1OLD=0 NX10=NX/10 NXIND=MIN0(57,NX) NXKAB=MAX0(7,NX10+2) READ(55,400)DUMMY READ(55,400)CAY READ(55,400)DUMMY NRNG=IFIX(DUMMY) C SECTION TO DETERMINE THE CONTOURLEVELS (ARRAY ZLEV). READ(55,400)ZMIN READ(55,400)ZMAX READ(55,400)ZINC C TYPE 4 INFORMATION READ(55,400)X1PL READ(55,400)DUMMY READ(55,400)Y1PL READ(55,400)DUMMY NSM=IFIX(DUMMY) READ(55,400)HGTPT READ(55,400)HGT READ(55,400)DUMMY LABPT=IFIX(DUMMY) READ(55,400)DUMMY NDIV=IFIX(DUMMY) READ(55,400)DUMMY NARC=IFIX(DUMMY) READ(55,400)DUMMY LABC(1)=IFIX(DUMMY) READ(55,400)DUMMY LWGT1=IFIX(DUMMY) IF(ABS(ZINC).GT.0.0)GOTO 2000 NLEV=1 ZLEV(1)=ZMIN GO TO 5000 2000 CONTINUE NLEV=ABS((ZMAX-ZMIN)/ZINC)+1 IF(NLEV.LE.NLEV1) GO TO 3000 WRITE(6,600)NLEV STOP 3000 CONTINUE DO 4000 I=1,NLEV LABC(I)=LABC(1) ZLEV(I)=(I-1)*ZINC+ZMIN LWGT(I)=LWGT1 IF(MOD(IFIX(ZLEV(I)+0.5),10).EQ.0 )LWGT(I)=LWGT1+1 4000 CONTINUE 5000 CONTINUE IF( (NDIV.NE.1) .AND. & (NDIV.NE.2) .AND. & (NDIV.NE.4) ) THEN WRITE(6,500) NDIV NDIV=1 END IF C C READING OF ACTUAL DATA C READ(17,*)INDEX READ(17,810) (XP(I),YP(I),ZP(I),I=1,INDEX) C CLOSE(17) DO 6000 I=1,INDEX XP(I)=XP(I)*1.0E3 6000 CONTINUE C RETURN END