SUBROUTINE PREGRD(Z,NPX,NPY,NPXRD,NPYRD,XP,YP,ZP,INDEX,NPXYZ) DIMENSION Z(NPXRD,NPYRD),XP(1),YP(1),ZP(1) COMMON /STEP/ XSTEP, YSTEP 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 C 200 FORMAT(1X,'MAX ALLOWED NUMBER OF INPUT DATA POINTS ', $'IS ',I5,/,' PRESENT CASE REQUESTS ',I5,' X ',I5,' DATA POINTS', $/,' EXECUTION IS TERMINATED BECAUSE OF ARRAY SIZE ', $'LIMITATION',/,' STOP IN SUB "PREGRD" ') C J1X= (X1GRID-X1)/XSTEP J1X= MAX(1,J1X) J2X= (XLGRID-X1)/XSTEP + 2 J2X= MIN(J2X,NPX) NPXNEW= (J2X-J1X) + 1 C IF(Y1.LT.YL) THEN I1Y= ABS((MIN(Y1GRID,YLGRID)-Y1)/YSTEP) I1Y= MAX(1,I1Y) I2Y= ABS((MAX(Y1GRID,YLGRID)-Y1)/YSTEP) + 2 I2Y= MIN(I2Y,NPY) ELSE I1Y= ABS((MIN(Y1GRID,YLGRID)-MIN(Y1,YL))/YSTEP) I1Y= MAX(1,I1Y) I2Y= ABS((MAX(Y1GRID,YLGRID)-MIN(Y1,YL))/YSTEP) + 2 I2Y= MIN(I2Y,NPY) END IF NPYNEW= (I2Y-I1Y) + 1 C IF(NPXNEW*NPYNEW.GT.NPXYZ) THEN IPARA= NPXYZ WRITE(6,200) IPARA, NPXNEW, NPYNEW STOP END IF INDEX=0 DO 2000 I=I1Y,I2Y YMARCH=Y1 - (I-1)*YSTEP DO 2000 J=J1X,J2X INDEX=INDEX+1 XP(INDEX)=X1+(J-1)*XSTEP YP(INDEX)=YMARCH ZP(INDEX)=Z(J,I) 2000 CONTINUE RETURN END