pls.parseopts( args, pls.PL_PARSE_FULL | pls.PL_PARSE_NOPROGRAM );
pls.parseopts( args, PLStream.PL_PARSE_FULL | PLStream.PL_PARSE_NOPROGRAM );
    public x08( String[] args )    {        int i, j, k;	final int LEVELS = 10;        double[] x = new double[ XPTS ];        double[] y = new double[ YPTS ];        double[][] z = new double[XPTS][YPTS];	double clevel[] = new double[LEVELS];        double clev_null [] = new double[0];        double xx, yy, r;	double zmin=Double.MAX_VALUE, zmax=Double.MIN_VALUE;        int ifshade;    // Parse and process command line arguments.        pls.parseopts( args, pls.PL_PARSE_FULL | pls.PL_PARSE_NOPROGRAM );        boolean rosen = true;    // Initialize plplot.        pls.init();        for( i=0; i < XPTS; i++ ) {	   x[i] = (double) (i - (XPTS/2)) / (double) (XPTS/2);	   if (rosen)	     x[i] *=  1.5;	}        for( j=0; j < YPTS; j++ ) {	   y[j] = (double) (j - (YPTS/2)) / (double) (YPTS/2);	   if (rosen)	     y[j] += 0.5;	}        for( i = 0; i < XPTS; i++ )        {            xx = x[i];            for( j = 0; j < YPTS; j++ )            {	       yy = y[j];	       if (rosen) {		  z[i][j] = Math.pow(1. - xx,2.) + 100 *				     Math.pow(yy - Math.pow(xx,2.),2.);	          /* The log argument may be zero for just the right grid.  */		  if (z[i][j] > 0.)		    z[i][j] = Math.log(z[i][j]);		  else		    z[i][j] = -5.; /* -MAXFLOAT would mess-up up the scale */	       }	       else {		  r = Math.sqrt(xx * xx + yy * yy);		  z[i][j] = Math.exp(-r * r) * Math.cos(2.0 * Math.PI * r);	       }	       if (zmin > z[i][j])		 zmin = z[i][j];	       if (zmax < z[i][j])		 zmax = z[i][j];            }        }	double step = (zmax-zmin)/(LEVELS+1);	for (i=0; i<LEVELS; i++)	    clevel[i] = zmin + step*(i+1);        pls.lightsource( 1., 1., 1. );        for( k = 0; k < 2; k++ )        {	   for( ifshade = 0; ifshade < 4; ifshade++)	   {	      pls.adv(0);	      pls.vpor(0.0, 1.0, 0.0, 0.9);	      pls.wind(-1.0, 1.0, -0.9, 1.1);	      pls.col0(3);	      pls.mtex("t", 1.0, 0.5, 0.5, title[k]);	      pls.col0(1);	      if(rosen)		pls.w3d( 1.0, 1.0, 1.0, -1.5, 1.5, -0.5, 1.5, zmin, zmax,			   alt[k], az[k] );	      else		pls.w3d( 1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, zmin, zmax,			   alt[k], az[k] );	      pls.box3( "bnstu", "x axis", 0.0, 0,			"bnstu", "y axis", 0.0, 0,			"bcdmnstuv", "z axis", 0.0, 0 );	      pls.col0(2);	      if (ifshade == 0) { /* diffuse light surface plot */		 cmap1_init(1);		 // with new interface haven't yet made null work so have		 // to put in specific zero-length array.		 pls.surf3d( x, y, z, 0, clev_null );	      } else if (ifshade == 1) { /* magnitude colored plot */		 cmap1_init(0);		 pls.surf3d( x, y, z, pls.MAG_COLOR, clev_null );	      } else if (ifshade == 2) { /*  magnitude colored plot with faceted squares */		 cmap1_init(0);		 pls.surf3d( x, y, z, pls.MAG_COLOR | pls.FACETED, clev_null );	      } else {                   /* magnitude colored plot with contours */		 cmap1_init(0);		 pls.surf3d( x, y, z, pls.MAG_COLOR | pls.SURF_CONT | pls.BASE_CONT, clevel );	      }	   }        }        pls.end();    }