double xx, yy, argx, argy, distort;
double xx, yy;
    void plot5()    {        int i, j;        double[][] xg0 = new double[XPTS][YPTS];        double[][] yg0 = new double[XPTS][YPTS];        double[][] z = new double[XPTS][YPTS];        double[][] w = new double[XPTS][YPTS];	        double xx, yy, argx, argy, distort;	final int[] mark = {1500};        final int[] space = {1500};	final int[] mark0 = {};        final int[] space0 = {};	    /* Set up function arrays */       	for (i = 0; i < XPTS; i++) {            xx = (double) (i - (XPTS / 2)) / (double) (XPTS / 2);            for (j = 0; j < YPTS; j++) {                yy = (double) (j - (YPTS / 2)) / (double) (YPTS / 2) - 1.0;                z[i][j] = xx * xx - yy * yy;                w[i][j] = 2 * xx * yy;            }	}    /* Set up grids */		for (i = 0; i < XPTS; i++) {            for (j = 0; j < YPTS; j++) {            // Replacement for mypltr of x09c.c                xx = tr[0] * i + tr[1] * j + tr[2];                yy = tr[3] * i + tr[4] * j + tr[5];		            // Note these are one-dimensional because of arrangement of            // zeros in the final tr definition above.	    // But I haven't found out yet, how with swig to overload	    // one- and two-dimensional array arguments so for now make 	    // xg0 --> yg1 two-dimensional.                xg0[i][j] = xx;                yg0[i][j] = yy;            }	}    // Plot using scaled identity transform used to create xg0 and yg0	pls.env(-1.0, 1.0, -1.0, 1.0, 0, 0);	pls.col0(2);        pls.cont(z, 1, XPTS, 1, YPTS, clevel, xg0, yg0 );	pls.styl(mark, space);	pls.col0(3);        pls.cont(w, 1, XPTS, 1, YPTS, clevel, xg0, yg0 );	pls.styl(mark0, space0);	pls.col0(1);	pls.lab("X Coordinate", "Y Coordinate", "Streamlines of flow");        pls.flush();    }