SUBROUTINE IPAREQ(SD,NPX,NPY,NPXRD,NPYRD,NXIND,NXKAB, & NZX,NZY,Z,FREQ,EXTP,FORM,BUFFER,NRANGE) PARAMETER (NLEV1=51) CHARACTER*3 XBTYPE, YBTYPE, FORM, EXTP, SDPLOT, RDPLOT CHARACTER*80 TITLE,TITLEX,TITLEY CHARACTER*28 SDUNIT CHARACTER*40 WORD CHARACTER*80 FILENM DIMENSION SECTOR(28), Z(NZX,NZY), BUFFER(NRANGE) COMMON/ HSFLAG/ IFIRST,ILAST,CYL,FOM,PRB,SEG,ISEG, & IFR,SDFLAG,NCL COMMON /PARA/LABPT,NSM,NDIV,CAY,NARC,NRNG,HGTPT,HGT, & LABC(51),LWGT(51) COMMON /PARAC/TITLE, SDPLOT, RDPLOT COMMON /SNAPSHOT/ SCFAC COMMON /STEP/ XSTEP, YSTEP COMMON /XAX/X1,XL,XLEFT,XRIGHT,XSCALE,XINC,DX, & X1PL,XLPL,NX,X1GRID,XLGRID,DIVX,XVAL(100),NXVAL COMMON /XAXC/TITLEX, XBTYPE COMMON /YAX/Y1,YL,YUP,YDOWN,YSCALE,YINC,DY, & Y1PL,YLPL,NY,Y1GRID,YLGRID,DIVY,YVAL(100),NYVAL COMMON /YAXC/TITLEY, YBTYPE COMMON /ZAX/ZMIN,ZMAX,ZINC,NLEV,ZLEV(NLEV1) 200 FORMAT(A80) 201 FORMAT(1X,/,' **** TITLE ON PLOT : ',/, & 1X,A80,/) 360 FORMAT(A40) 400 FORMAT(F15.4) 600 FORMAT(1X,' WARNING : ACCEPTABLE VALUES FOR NDIV ARE 1,2 AND 4 ',/, & ' ACTUAL VALUE IS ',I3,'. PLOTTING IS DONE WITH NDIV = 1 ') 700 FORMAT(1X,' TOO MANY GRID POINTS (NX,NY TOO LARGE)',/, & ' EXECUTION TERMINATED BECAUSE OF ARRAY SIZE LIMITATIONS',/) C XBTYPE='LIN' YBTYPE='LIN' C READ(55,200)TITLE WRITE(6,201)TITLE C READ(55,200)FILENM IF (IFIRST.GT.0) THEN IFIRST=0 CALL FILETYPE(FORM,FILENM,55,17) END IF C READ(55,200)TITLEX READ(55,400)X1 READ(55,400)XL RMAX=MAX(X1,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 XINC=SIGN(XINC,XRIGHT-XLEFT) C 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 YINC=ABS(YINC) IF( YUP .GT. YDOWN ) YINC=-YINC C READ(55,400)DUMMY NPX=NINT(DUMMY) C XSTEP=ABS(XL-X1)/(NPX-1) IF( (X1-XL)*(XLEFT-XRIGHT) .GT. 0.0 ) THEN IF(X1.LT.XL) THEN NPXRD= (MIN(XL,XRIGHT)-X1)/XSTEP + 2 NPXRD=MIN(NPXRD,NPX) IF(ABS( (X1+XSTEP*(NPXRD-2))-MIN(XL,XRIGHT)).LT.XSTEP*1.E-2) & NPXRD=NPXRD-1 XL=X1+XSTEP*(NPXRD-1) ELSE NPXRD= (X1-MAX(XL,XRIGHT))/XSTEP + 2 NPXRD=MIN(NPXRD,NPX) IF(ABS(X1-XSTEP*(NPXRD-2)-MAX(XL,XRIGHT)).LT.XSTEP*1.E-2) & NPXRD=NPXRD-1 XL=X1-XSTEP*(NPXRD-1) END IF ELSE IF(X1.LT.XL) THEN NPXRD= (MIN(XL,XLEFT)-X1)/XSTEP + 2 NPXRD=MIN(NPXRD,NPX) IF(ABS(X1+XSTEP*(NPXRD-2)-MIN(XL,XLEFT)).LT.XSTEP*1.E-2) & NPXRD=NPXRD-1 XL=X1+XSTEP*(NPXRD-1) ELSE NPXRD= (X1-MAX(XL,XLEFT))/XSTEP + 2 NPXRD=MIN(NPXRD,NPX) IF(ABS(X1-XSTEP*(NPXRD-2)-MAX(XL,XLEFT)).LT.XSTEP*1.E-2) & NPXRD=NPXRD-1 XL=X1-XSTEP*(NPXRD-1) END IF END IF C IF(EXTP.EQ.'GRD') THEN X1GRID=XLEFT XLGRID=XRIGHT ELSE IF(XLEFT .LT. XRIGHT) THEN X1GRID=MAX(MIN(X1,XL),XLEFT) XLGRID=MIN(MAX(X1,XL),XRIGHT) ELSE X1GRID=MIN(XLEFT,MAX(X1,XL)) XLGRID=MAX(XRIGHT,MIN(X1,XL)) END IF END IF C READ(55,400)DUMMY NPY=NINT(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 YMIN=MIN(Y1,YL) YMAX=MAX(Y1,YL) YAXMIN=MIN(YUP,YDOWN) YAXMAX=MAX(YUP,YDOWN) YGRIDMIN=MAX(YMIN,YAXMIN) YGRIDMAX=MIN(YMAX,YAXMAX) YSTEP=(Y1-YL)/(NPY-1) IF(EXTP.EQ.'GRD') THEN Y1GRID=YDOWN YLGRID=YUP ELSE IF(YL .LT. Y1) THEN IY1=((YGRIDMIN+1.0E-3*YSTEP)-YL)/YSTEP + 1 IY1=MAX(1,IY1) IY2=((YGRIDMAX-1.0E-3*YSTEP)-YL)/YSTEP + 2 IY2=MIN(IY2,NPY) Y1=YL + (IY2-1)*YSTEP YL=YL + (IY1-1)*YSTEP NPYRD= IY2 - IY1 +1 ELSE IY1=((YGRIDMAX-1.0E-3*YSTEP)-YL)/YSTEP + 1 IY1=MAX(1,IY1) IY2=((YGRIDMIN+1.0E-3*YSTEP)-YL)/YSTEP + 2 IY2=MIN(IY2,NPY) Y1=YL + (IY2-1)*YSTEP YL=YL + (IY1-1)*YSTEP NPYRD= IY2 - IY1 +1 END IF IF(YUP .LT. YDOWN) THEN YLGRID=YGRIDMIN Y1GRID=YGRIDMAX ELSE YLGRID=YGRIDMAX Y1GRID=YGRIDMIN END IF END IF NPYRD=MIN(NPYRD,NPY) CALL NOVALUE(SDFLAG,SD,55,SDUNIT) SDPLOT='m ' CALL UNIT(SDUNIT,SDPLOT) READ(55,400)DUMMY NX=(DUMMY/FLOAT(NPX))*FLOAT(NPXRD) READ(55,400)DUMMY NY=(DUMMY/FLOAT(NPY))*FLOAT(NPYRD) DY=(YLGRID-Y1GRID)/(NY-1) IF(NX*NY. GT. NZX*NZY) THEN WRITE(6,700) STOP END IF READ(55,400)FREQ DX=(XLGRID-X1GRID)/(NX-1) NX10=NX/10 NXIND=MIN0(57,NX) NXKAB=MAX0(7,NX10+2) READ(55,*) SCFAC READ(55,400)CAY READ(55,400)DUMMY NRNG=NINT(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,*) SIGMA READ(55,400)Y1PL READ(55,400)DUMMY NSM=NINT(DUMMY) READ(55,400)HGTPT READ(55,400)HGT READ(55,400)DUMMY LABPT=NINT(DUMMY) READ(55,400)DUMMY NDIV=NINT(DUMMY) IF( (NDIV.NE.1) .AND. & (NDIV.NE.2) .AND. & (NDIV.NE.4) ) THEN WRITE(6,600) NDIV NDIV=1 END IF READ(55,400)DUMMY NARC=NINT(DUMMY) READ(55,400)DUMMY LABC(1)=NINT(DUMMY) READ(55,400)DUMMY LWGT1=NINT(DUMMY) CCCCCC CALL BOTTOM CALL REDATA(Z,NPX,NPY,NPXRD,IY1,IY2,NPYRD,SECTOR,FORM,FLAGRC) C CLOSE(17) NPX=NPXRD NPY=NPYRD C CALL ZZLEV(NLEV,NLEV1,ZLEV,ZMIN,ZMAX,ZINC, & LABC,LWGT,LWGT1) RETURN END